From 2bcae96d0a138f01b1b3fef58842f1488029b1bd Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 21:35:33 +0100 Subject: [PATCH 0001/1038] Create config.yml --- .github/ISSUE_TEMPLATE/config.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..89023b3c8c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,14 @@ +blank_issues_enabled: false +contact_links: +# - name: GitHub Discussions +# url: https://github.com/mermaid-js/mermaid/discussions +# about: Ask the Community questions or share your own graphs in our discussions. + - name: Slack + url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE + about: Join our Community on Slack for Help and a casual chat. + - name: Documentation + url: https://mermaid-js.github.io + about: Read our documentation for all that Mermaid.js can offer. + - name: Live Editor + url: https://mermaid.live + about: Try the live editor to preview graphs in no time. From 8a5d9bbad3113ac29bbd6a2a819645b6051191f4 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 21:51:02 +0100 Subject: [PATCH 0002/1038] Switch to bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.md | 41 ------------------- .github/ISSUE_TEMPLATE/bug_report.yml | 59 +++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 41 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 74e02e6cb8..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: 'Status: Triage, Type: Bug / Error' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Code Sample** -If applicable, add the code sample or a link to the [live editor](https://mermaid-js.github.io/mermaid-live-editor). - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..42888ff0a7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,59 @@ +name: Bug Report +description: Create a report to help us improve +labels: + - "Status: Triage" + - "Type: Bug / Error" + +body: + - type: textarea + attributes: + label: Description + description: Give a clear and concise description of what the bug is. + placeholder: When I do ... does ... happen. + validations: + required: true + - type: textarea + attributes: + label: Steps to reproduce + description: Give a step-by-step example on how to reproduce the bug. + placeholder: |- + 1. Do this + 2. Do that + 3. ... + 4. Bug! + validations: + required: true + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to help explain your issue. + - type: textarea + attributes: + label: Code Sample + description: |- + If applicable, add the code sample or a link to the [Live Editor](https://mermaid.live). + Any text pasted here will be rendered as a Code block. + render: text + - type: textarea + attributes: + label: Setup + description: |- + Please fill out the below info. + Note that you only need to fill out one and not both sections. + value: |- + **Desktop** + + - OS and Version: [Windows, Linux, Mac, ...] + - Browser and Version: [Chrome, Edge, Firefox] + + **Smartphone** + + - Device: [Samsung, iPhone, ...] + - OS and Version: [Android, iOS, ...] + - Browser and Version: [Chrome, Safari, ...] + validations: + required: true + - type: textarea + attributes: + label: Additional Context + description: Anything else to add? From 15ac2f87a3cd839a5a6e01162334d2871386e6e7 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:01:00 +0100 Subject: [PATCH 0003/1038] Create diagram_proposal.yml --- .github/ISSUE_TEMPLATE/diagram_proposal.yml | 37 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ----------- 2 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/diagram_proposal.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/diagram_proposal.yml b/.github/ISSUE_TEMPLATE/diagram_proposal.yml new file mode 100644 index 0000000000..67e8434bec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/diagram_proposal.yml @@ -0,0 +1,37 @@ +name: Diagram Proposal +description: Suggest a new Diagram Type to add to Mermaid. +labels: + - "Status: Triage" + - "Type: Enhancement" + +body: + - type: markdown + attributes: + value: |- + Thank you for suggesting a new Diagram type for Mermaid.js! + + We are always excited for new ideas to make the library more advanced and useful for people. + Please take your time to fill out the below sections with as much detail as you can. + - type: textarea + attributes: + label: Proposal + description: A clear and concise description of what should be added to Mermaid.js. + placeholder: Mermaid.js should add ... because ... + validations: + required: true + - type: textarea + attributes: + label: Use Cases + description: If applicable, give some use cases for where this diagram would be useful. + placeholder: The Diagram could be used for ... + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to show possible examples of how the diagram may look like. + - type: textarea + attributes: + label: Code Sample + description: |- + If applicable, add a code sample for how to implement this new diagram. + The text will automatically be rendered as JavaScript code. + render: javascript diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index f79a309285..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'Status: Triage, Type: Enhancement' -assignees: '' - ---- - -**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** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. From 036dc802dc40904a3b14340295cfd5c395a47fad Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:07:25 +0100 Subject: [PATCH 0004/1038] Create theme_proposal.yml --- .github/ISSUE_TEMPLATE/theme_proposal.yml | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/theme_proposal.yml diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml new file mode 100644 index 0000000000..c8e112043e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -0,0 +1,35 @@ +name: Theme Proposal +description: Suggest a new theme to add to Mermaid.js. +labels: + - "Status: Triage" + - "Type: Enhancement" + +body: + - type: markdown + attributes: + value: |- + Thank you for suggesting a new Theme for Mermaid.js! + + We are always excited for new ideas to make the library more advanced and useful for people. + Please take your time to fill out the below sections with as much detail as you can. + - type: textarea + attributes: + label: Proposal + description: A clear and concise description of what theme should be added to Mermaid.js. + placeholder: Mermaid.js should add ... because ... + validations: + required: true + - type: textarea + attributes: + label: Colors + description: |- + A detailed list of the different colour values to use. + A list of currently used variable names can be found [here](https://mermaid-js.github.io/mermaid/#/theming?id=theme-variables-reference-table) + placeholder: |- + - background: #f4f4f4 + - primaryColor: #fff4dd + - ... + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to show possible examples of how the theme may look like. From 96395c44e02fe27165ba356eba257ee15e9eb6e1 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:08:43 +0100 Subject: [PATCH 0005/1038] Create syntaxt_proposal.yml --- .github/ISSUE_TEMPLATE/syntaxt_proposal.yml | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/syntaxt_proposal.yml diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml new file mode 100644 index 0000000000..63bd4884d4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml @@ -0,0 +1,25 @@ +name: Syntax Proposal +description: Suggest a new Syntax to add to Mermaid.js. +labels: + - "Status: Triage" + - "Type: Enhancement" + +body: + - type: markdown + attributes: + value: |- + Thank you for suggesting a new Syntax for Mermaid.js! + + We are always excited for new ideas to make the library more advanced and useful for people. + Please take your time to fill out the below sections with as much detail as you can. + - type: textarea + attributes: + label: Proposal + description: A clear and concise description of what Syntax should be added to Mermaid.js. + placeholder: Mermaid.js should add ... because ... + validations: + required: true + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to show possible examples of how the theme may look like. From 33903bbf6d06e29a83e4581de4c68b06a816aa0b Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:10:24 +0100 Subject: [PATCH 0006/1038] Delete question.md --- .github/ISSUE_TEMPLATE/question.md | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/question.md diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 4f7444aa8c..0000000000 --- a/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Question -about: Get some help from the community. -title: '' -labels: 'Help wanted!, Type: Other' -assignees: '' - ---- - -## Help us help you! -You want an answer. Here are some ways to get it quicker: -* Use a clear and concise title. -* Try to pose a clear and concise question. -* Include as much, or as little, code as necessary. -* Don't be shy to give us some screenshots, if it helps! From 56c2f23393ae048a0b1b61ec1a88bd639fcfa286 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:14:21 +0100 Subject: [PATCH 0007/1038] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 42888ff0a7..cb6a94b2ff 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -5,6 +5,15 @@ labels: - "Type: Bug / Error" body: + - type: markdown + attributes: + value: |- + ## Before you submit... + We like to help you, but in order to do that should you make a few things first: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Description From 0f092acec3cbddd28aead697e287cd1f7e7756e7 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:16:13 +0100 Subject: [PATCH 0008/1038] Update diagram_proposal.yml --- .github/ISSUE_TEMPLATE/diagram_proposal.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/diagram_proposal.yml b/.github/ISSUE_TEMPLATE/diagram_proposal.yml index 67e8434bec..2090c7c085 100644 --- a/.github/ISSUE_TEMPLATE/diagram_proposal.yml +++ b/.github/ISSUE_TEMPLATE/diagram_proposal.yml @@ -8,10 +8,15 @@ body: - type: markdown attributes: value: |- - Thank you for suggesting a new Diagram type for Mermaid.js! + ## Before you submit... + First of all, thank you for proposing a new Diagram to us. + We are always happy about new ideas to improve Mermaid.js wherever possible. - We are always excited for new ideas to make the library more advanced and useful for people. - Please take your time to fill out the below sections with as much detail as you can. + To get the fastest and best response possible, make sure you do the following: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Proposal From 9e0c5d1d145b674f03aebdd142cfd8950a807406 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:17:54 +0100 Subject: [PATCH 0009/1038] Update syntaxt_proposal.yml --- .github/ISSUE_TEMPLATE/syntaxt_proposal.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml index 63bd4884d4..b82b0eaa1c 100644 --- a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml +++ b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml @@ -8,10 +8,15 @@ body: - type: markdown attributes: value: |- - Thank you for suggesting a new Syntax for Mermaid.js! + ## Before you submit... + First of all, thank you for proposing a new Syntax to us. + We are always happy about new ideas to improve Mermaid.js wherever possible. - We are always excited for new ideas to make the library more advanced and useful for people. - Please take your time to fill out the below sections with as much detail as you can. + To get the fastest and best response possible, make sure you do the following: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. Examples are always welcome. + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Proposal @@ -19,6 +24,10 @@ body: placeholder: Mermaid.js should add ... because ... validations: required: true + - type: textarea + attributes: + label: Example + description: If applicable, provide an example of the new Syntax. - type: textarea attributes: label: Screenshots From 13286f66fd63119ef48e338f8125766ca09908a7 Mon Sep 17 00:00:00 2001 From: Andre_601 Date: Wed, 16 Feb 2022 22:18:47 +0100 Subject: [PATCH 0010/1038] Update theme_proposal.yml --- .github/ISSUE_TEMPLATE/theme_proposal.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml index c8e112043e..920f9af3e4 100644 --- a/.github/ISSUE_TEMPLATE/theme_proposal.yml +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -8,10 +8,15 @@ body: - type: markdown attributes: value: |- - Thank you for suggesting a new Theme for Mermaid.js! + ## Before you submit... + First of all, thank you for proposing a new Theme to us. + We are always happy about new ideas to improve Mermaid.js wherever possible. - We are always excited for new ideas to make the library more advanced and useful for people. - Please take your time to fill out the below sections with as much detail as you can. + To get the fastest and best response possible, make sure you do the following: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. Examples are always welcome! + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Proposal From 904eccc4fa0130fd1fc854abd3ab61949065a90f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 1 Sep 2022 23:38:13 +0530 Subject: [PATCH 0011/1038] Vite --- jison.js | 31 ++++++++ package.json | 6 +- src/dagre-wrapper/intersect/intersect-node.js | 4 +- vite.config.js | 26 +++++++ yarn.lock | 75 ++++++++++++++++++- 5 files changed, 136 insertions(+), 6 deletions(-) create mode 100644 jison.js create mode 100644 vite.config.js diff --git a/jison.js b/jison.js new file mode 100644 index 0000000000..b23c4c2d38 --- /dev/null +++ b/jison.js @@ -0,0 +1,31 @@ +import { Jison } from 'jison'; +import { createFilter } from 'rollup-pluginutils'; + +export default (options = {}) => ({ + name: 'jison', + transform(grammar, id) { + const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options; + const filter = createFilter(include, exclude); + if (!filter(id)) return null; + + const parser = new Jison.Generator(grammar, { + moduleType: 'js', + type, + }); + + const source = parser.generate(); + const exporter = ` + const parse = parser.parse.bind(parser); + parser.parser = parse; + + export { parser }; + export default parser; + `; + + console.log('helll'); + return { + code: `${source} ${exporter}`, + map: { mappings: '' }, + }; + }, +}); diff --git a/package.json b/package.json index 46daf9e16f..95438d4a6c 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "git graph" ], "scripts": { - "build:fast": "rm -rf dist; node .esbuild/esbuild.cjs; tsc --emitDeclarationOnly", + "build:fast": "vite build", "build:dev": "webpack --mode development --progress --color", "build:prod": "webpack --mode production --progress --color", "build": "concurrently \"yarn build:dev\" \"yarn build:prod\"", @@ -114,11 +114,13 @@ "path-browserify": "^1.0.1", "prettier": "^2.3.2", "prettier-plugin-jsdoc": "^0.3.30", + "rollup-pluginutils": "^2.8.2", "start-server-and-test": "^1.12.6", "terser-webpack-plugin": "^5.3.6", "ts-jest": "^28.0.8", "ts-loader": "^9.3.1", "typescript": "^4.7.4", + "vite": "^3.0.9", "webpack": "^5.53.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^4.10.1", @@ -138,4 +140,4 @@ "browser": { "path": "path-browserify" } -} \ No newline at end of file +} diff --git a/src/dagre-wrapper/intersect/intersect-node.js b/src/dagre-wrapper/intersect/intersect-node.js index 4e4353bcb5..54a88ba617 100644 --- a/src/dagre-wrapper/intersect/intersect-node.js +++ b/src/dagre-wrapper/intersect/intersect-node.js @@ -1,5 +1,3 @@ -module.exports = intersectNode; - /** * @param node * @param point @@ -8,3 +6,5 @@ function intersectNode(node, point) { // console.info('Intersect Node'); return node.intersect(point); } + +export default intersectNode; diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000000..97e88f887d --- /dev/null +++ b/vite.config.js @@ -0,0 +1,26 @@ +import { resolve } from 'path'; +import { defineConfig } from 'vite'; +import jison from './jison'; +export default defineConfig({ + resolve: { + extensions: ['.ts', '.js', '.json', '.jison'], + }, + build: { + lib: { + entry: resolve(__dirname, 'src/mermaid.ts'), + name: 'mermaid', + // the proper extensions will be added + fileName: 'mermaid', + }, + rollupOptions: { + plugins: [jison()], + // make sure to externalize deps that shouldn't be bundled + // into your library + output: { + name: 'mermaid', + // Provide global variables to use in the UMD build + // for externalized deps + }, + }, + }, +}); diff --git a/yarn.lock b/yarn.lock index dd665f9a80..90ac414b21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5711,7 +5711,7 @@ esbuild-windows-arm64@0.15.6: resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.6.tgz#e18a778d354fc2ca2306688f3fedad8a3e57819e" integrity sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg== -esbuild@^0.14.39: +esbuild@^0.14.39, esbuild@^0.14.47: version "0.14.54" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== @@ -6012,6 +6012,11 @@ estraverse@~1.5.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -7410,6 +7415,13 @@ is-core-module@^2.2.0, is-core-module@^2.5.0: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9337,6 +9349,11 @@ multicast-dns@^7.2.4: dns-packet "^5.2.2" thunky "^1.0.2" +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -9886,7 +9903,7 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -10031,6 +10048,15 @@ postcss-value-parser@4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== +postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -10716,6 +10742,15 @@ resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3. is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -10770,6 +10805,20 @@ robust-predicates@^3.0.0: resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== +rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +"rollup@>=2.75.6 <2.77.0 || ~2.77.0": + version "2.77.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== + optionalDependencies: + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -11125,6 +11174,11 @@ source-list-map@^2.0.1: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -11578,6 +11632,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -12353,6 +12412,18 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" +vite@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.9.tgz#45fac22c2a5290a970f23d66c1aef56a04be8a30" + integrity sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw== + dependencies: + esbuild "^0.14.47" + postcss "^8.4.16" + resolve "^1.22.1" + rollup ">=2.75.6 <2.77.0 || ~2.77.0" + optionalDependencies: + fsevents "~2.3.2" + vm2@^3.9.8: version "3.9.9" resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" From e06a7587acf73a552fa616dc613044a7be6948fa Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 2 Sep 2022 09:27:25 +0530 Subject: [PATCH 0012/1038] Vite --- demos/index.html | 4 +-- jison.js | 92 ++++++++++++++++++++++++++++++++---------------- vite.config.js | 2 +- 3 files changed, 64 insertions(+), 34 deletions(-) diff --git a/demos/index.html b/demos/index.html index 904fde7df4..46549c95a2 100644 --- a/demos/index.html +++ b/demos/index.html @@ -15,9 +15,9 @@ -
+
diff --git a/jison.js b/jison.js index b23c4c2d38..b907fae6f7 100644 --- a/jison.js +++ b/jison.js @@ -1,31 +1,61 @@ -import { Jison } from 'jison'; -import { createFilter } from 'rollup-pluginutils'; - -export default (options = {}) => ({ - name: 'jison', - transform(grammar, id) { - const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options; - const filter = createFilter(include, exclude); - if (!filter(id)) return null; - - const parser = new Jison.Generator(grammar, { - moduleType: 'js', - type, - }); - - const source = parser.generate(); - const exporter = ` - const parse = parser.parse.bind(parser); - parser.parser = parse; - - export { parser }; - export default parser; - `; - - console.log('helll'); - return { - code: `${source} ${exporter}`, - map: { mappings: '' }, - }; - }, -}); +const Jison = require('jison'); +const fileRegex = /\.(jison)$/; + +export default function jison() { + return { + name: 'jison', + + transform(src, id) { + if (fileRegex.test(id)) { + const parser = new Jison.Generator(src, { + moduleType: 'js', + // type, + }); + const source = parser.generate(); + const exporter = ` + const parse = parser.parse.bind(parser); + parser.parser = parse; + + export { parser }; + export default parser; + `; + + // console.log('helll'); + + return { + code: `${source} ${exporter}`, + map: null, // provide source map if available + }; + } + }, + }; +} + +// export default (options = {}) => ({ +// name: 'jison', +// transform(grammar, id) { +// const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options; +// const filter = createFilter(include, exclude); +// if (!filter(id)) return null; + +// const parser = new Jison.Generator(grammar, { +// moduleType: 'js', +// type, +// }); + +// const source = parser.generate(); +// const exporter = ` +// const parse = parser.parse.bind(parser); +// parser.parser = parse; + +// export { parser }; +// export default parser; +// `; + +// console.log('helll'); +// return { +// code: `${source} ${exporter}`, +// map: { mappings: '' }, +// }; +// }, +// }); diff --git a/vite.config.js b/vite.config.js index 97e88f887d..89bc7e5065 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,6 +2,7 @@ import { resolve } from 'path'; import { defineConfig } from 'vite'; import jison from './jison'; export default defineConfig({ + plugins: [jison()], resolve: { extensions: ['.ts', '.js', '.json', '.jison'], }, @@ -13,7 +14,6 @@ export default defineConfig({ fileName: 'mermaid', }, rollupOptions: { - plugins: [jison()], // make sure to externalize deps that shouldn't be bundled // into your library output: { From bf4607cf08835ccda68f5641807b7799c24a214c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 11:24:40 +0530 Subject: [PATCH 0013/1038] test: Migrate to vitest from jest --- __mocks__/MERMAID.js | 3 - __mocks__/{d3.js => d3.ts} | 11 +- __mocks__/dagre-d3.ts | 3 + __mocks__/entity-decode/browser.ts | 3 + docs/Setup.md | 31 +- jest.config.js | 20 - package.json | 18 +- src/__mocks__/entity-decode/browser.js | 3 - src/__mocks__/mermaidAPI.ts | 15 +- src/diagrams/class/classDiagram.spec.js | 6 +- .../parser/flow-interactions.spec.js | 4 +- .../flowchart/parser/flow-text.spec.js | 4 +- .../flowchart/parser/subgraph.spec.js | 2 +- .../{ganttDb.spec.js => ganttDb.spec.ts} | 146 +- src/diagrams/gantt/parser/gantt.spec.js | 9 +- src/diagrams/info/info.spec.js | 6 +- src/diagrams/sequence/sequenceDiagram.spec.js | 18 +- src/diagrams/sequence/svgDraw.spec.js | 4 +- src/diagrams/state/stateDiagram.spec.js | 2 +- src/diagrams/user-journey/journeyDb.spec.js | 11 +- src/docs/Setup.md | 31 +- src/{mermaid.spec.js => mermaid.spec.ts} | 30 +- src/mermaidAPI.ts | 1 - src/tests/setup.ts | 3 + src/tests/util.ts | 16 + src/utils.spec.js | 19 +- tsconfig.json | 10 +- vite.config.ts | 41 + yarn.lock | 1534 +++-------------- 29 files changed, 560 insertions(+), 1444 deletions(-) delete mode 100644 __mocks__/MERMAID.js rename __mocks__/{d3.js => d3.ts} (85%) create mode 100644 __mocks__/dagre-d3.ts create mode 100644 __mocks__/entity-decode/browser.ts delete mode 100644 jest.config.js delete mode 100644 src/__mocks__/entity-decode/browser.js rename src/diagrams/gantt/{ganttDb.spec.js => ganttDb.spec.ts} (84%) rename src/{mermaid.spec.js => mermaid.spec.ts} (90%) create mode 100644 src/tests/setup.ts create mode 100644 src/tests/util.ts create mode 100644 vite.config.ts diff --git a/__mocks__/MERMAID.js b/__mocks__/MERMAID.js deleted file mode 100644 index 58e31037a2..0000000000 --- a/__mocks__/MERMAID.js +++ /dev/null @@ -1,3 +0,0 @@ -export const curveBasis = 'basis'; -export const curveLinear = 'linear'; -export const curveCardinal = 'cardinal'; diff --git a/__mocks__/d3.js b/__mocks__/d3.ts similarity index 85% rename from __mocks__/d3.js rename to __mocks__/d3.ts index 268aadf241..6d87662cac 100644 --- a/__mocks__/d3.js +++ b/__mocks__/d3.ts @@ -1,3 +1,6 @@ +// @ts-nocheck +import { vi } from 'vitest'; + let NewD3 = function () { /** * @@ -56,9 +59,9 @@ export const MockD3 = (name, parent) => { children.push(mockElem); return mockElem; }; - elem.lower = jest.fn(() => elem); - elem.attr = jest.fn(() => elem); - elem.text = jest.fn(() => elem); - elem.style = jest.fn(() => elem); + elem.lower = vi.fn(() => elem); + elem.attr = vi.fn(() => elem); + elem.text = vi.fn(() => elem); + elem.style = vi.fn(() => elem); return elem; }; diff --git a/__mocks__/dagre-d3.ts b/__mocks__/dagre-d3.ts new file mode 100644 index 0000000000..a1a6775916 --- /dev/null +++ b/__mocks__/dagre-d3.ts @@ -0,0 +1,3 @@ +import { vi } from 'vitest'; + +// export const render = vi.fn(); diff --git a/__mocks__/entity-decode/browser.ts b/__mocks__/entity-decode/browser.ts new file mode 100644 index 0000000000..bd82d79fd9 --- /dev/null +++ b/__mocks__/entity-decode/browser.ts @@ -0,0 +1,3 @@ +module.exports = function (txt: string) { + return txt; +}; diff --git a/docs/Setup.md b/docs/Setup.md index 1f948ee018..2ef56e1d8d 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -1407,6 +1407,15 @@ This sets the auto-wrap padding for the diagram (sides only) **Notes:** Default value: 0. +## parse + +### Parameters + +- `text` **[string][5]** +- `parseError` **[Function][6]?** + +Returns **[boolean][7]** + ## setSiteConfig ## setSiteConfig @@ -1424,7 +1433,7 @@ function _Default value: At default, will mirror Global Config_ - `conf` **MermaidConfig** The base currentConfig to use as siteConfig -Returns **[object][5]** The siteConfig +Returns **[object][8]** The siteConfig ## getSiteConfig @@ -1436,7 +1445,7 @@ Returns **[object][5]** The siteConfig **Notes**: Returns **any** values in siteConfig. -Returns **[object][5]** The siteConfig +Returns **[object][8]** The siteConfig ## setConfig @@ -1475,10 +1484,10 @@ $(function () { ### Parameters -- `id` **[string][6]** The id of the element to be rendered -- `text` **[string][6]** The graph definition -- `cb` **function (svgCode: [string][6], bindFunctions: function (element: [Element][7]): void): void** -- `container` **[Element][7]** Selector to element in which a div with the graph temporarily will be +- `id` **[string][5]** The id of the element to be rendered +- `text` **[string][5]** The graph definition +- `cb` **function (svgCode: [string][5], bindFunctions: function (element: [Element][9]): void): void** +- `container` **[Element][9]** Selector to element in which a div with the graph temporarily will be inserted. If one is provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is completed. @@ -1517,7 +1526,7 @@ Pushes in a directive to the configuration ### Parameters -- `directive` **[object][5]** The directive to push in +- `directive` **[object][8]** The directive to push in ## reset @@ -1615,6 +1624,8 @@ Returns **void** [2]: Setup.md?id=render [3]: 8.6.0_docs.md [4]: #mermaidapi-configuration-defaults -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[7]: https://developer.mozilla.org/docs/Web/API/Element +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[9]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index b7350d2f2d..0000000000 --- a/jest.config.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require('path'); -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ -module.exports = { - testEnvironment: 'jsdom', - preset: 'ts-jest', - transform: { - '^.+\\.tsx?$': ['jest-esbuild', { banner: '"use strict";' }], - '^.+\\.jsx?$': ['jest-esbuild', { banner: '"use strict";' }], - '^.+\\.jison$': [ - path.resolve(__dirname, './src/jison/transformer.js'), - { 'token-stack': true }, - ], - }, - transformIgnorePatterns: ['/node_modules/(?!dagre-d3-renderer/lib|khroma).*\\.js'], - testPathIgnorePatterns: ['/node_modules/', '.cache', './cypress'], - moduleNameMapper: { - '\\.(css|scss)$': 'identity-obj-proxy', - }, - moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx', 'node', 'jison'], -}; diff --git a/package.json b/package.json index dae50486af..7260e564e4 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "build": "yarn clean; concurrently \"yarn build:code\" \"yarn build:types\"", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "ts-node-esm src/docs.mts --verify", - "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md; yarn docs:build", + "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md; prettier --write src/docs/Setup.md; yarn docs:build", "release": "yarn build", "lint": "eslint --cache --ignore-path .gitignore .; prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore .; prettier --write .", @@ -41,9 +41,9 @@ "e2e": "start-server-and-test dev http://localhost:9000/ cypress", "e2e-upd": "yarn lint && jest e2e -u --config e2e/jest.config.js", "dev": "webpack serve --config ./.webpack/webpack.config.e2e.babel.js", - "ci": "jest src/.*", - "test": "yarn lint && jest src/.*", - "test:watch": "jest --watch src", + "ci": "vitest", + "test": "yarn lint && vitest run", + "test:watch": "vitest --watch", "prepublishOnly": "yarn build && yarn test", "prepare": "concurrently \"husky install\" \"yarn build\"", "pre-commit": "lint-staged" @@ -85,11 +85,11 @@ "@commitlint/config-conventional": "^17.0.0", "@types/d3": "^7.4.0", "@types/dompurify": "^2.3.4", - "@types/jest": "^28.1.7", + "@types/prettier": "^2.7.0", "@types/stylis": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", - "babel-jest": "^29.0.1", + "@vitest/ui": "^0.23.1", "babel-loader": "^8.2.2", "concurrently": "^7.0.0", "coveralls": "^3.0.2", @@ -110,11 +110,9 @@ "globby": "^13.1.2", "husky": "^8.0.0", "identity-obj-proxy": "^3.0.0", - "jest": "^28.0.3", - "jest-environment-jsdom": "^29.0.2", - "jest-esbuild": "^0.2.9", "jison": "^0.4.18", "js-base64": "3.7.2", + "jsdom": "^20.0.0", "lint-staged": "^13.0.0", "moment": "^2.23.0", "path-browserify": "^1.0.1", @@ -124,11 +122,11 @@ "rimraf": "^3.0.2", "start-server-and-test": "^1.12.6", "terser-webpack-plugin": "^5.3.6", - "ts-jest": "^28.0.8", "ts-loader": "^9.3.1", "ts-node": "^10.9.1", "typescript": "^4.7.4", "unist-util-flatmap": "^1.0.0", + "vitest": "^0.23.1", "webpack": "^5.53.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^4.10.1", diff --git a/src/__mocks__/entity-decode/browser.js b/src/__mocks__/entity-decode/browser.js deleted file mode 100644 index c27da82052..0000000000 --- a/src/__mocks__/entity-decode/browser.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function (txt) { - return txt; -}; diff --git a/src/__mocks__/mermaidAPI.ts b/src/__mocks__/mermaidAPI.ts index 69773d6461..ded24fc3d9 100644 --- a/src/__mocks__/mermaidAPI.ts +++ b/src/__mocks__/mermaidAPI.ts @@ -1,18 +1,15 @@ /** * Mocks for `./mermaidAPI`. * - * We can't easily use `jest.spyOn(mermaidAPI, "function")` since the object is frozen with `Object.freeze()`. + * We can't easily use `vi.spyOn(mermaidAPI, "function")` since the object is frozen with `Object.freeze()`. */ import * as configApi from '../config'; - +import { vi } from 'vitest'; import { addDiagrams } from '../diagram-api/diagram-orchestration'; import Diagram from '../Diagram'; // Normally, we could just do the following to get the original `parse()` -// implementation, however, requireActual isn't currently supported in Jest -// for ESM, see https://github.com/facebook/jest/issues/9430 -// and https://github.com/facebook/jest/pull/10976 -// const {parse} = jest.requireActual("./mermaidAPI"); +// implementation, however, requireActual returns a promise and it's not documented how to use withing mock file. let hasLoadedDiagrams = false; /** @@ -30,10 +27,10 @@ function parse(text: string, parseError?: Function): boolean { // original version cannot be modified since it was frozen with `Object.freeze()` export const mermaidAPI = { - render: jest.fn(), + render: vi.fn(), parse, - parseDirective: jest.fn(), - initialize: jest.fn(), + parseDirective: vi.fn(), + initialize: vi.fn(), getConfig: configApi.getConfig, setConfig: configApi.setConfig, getSiteConfig: configApi.getSiteConfig, diff --git a/src/diagrams/class/classDiagram.spec.js b/src/diagrams/class/classDiagram.spec.js index 7d196d1a93..3f47701e60 100644 --- a/src/diagrams/class/classDiagram.spec.js +++ b/src/diagrams/class/classDiagram.spec.js @@ -1,7 +1,7 @@ import { parser } from './parser/classDiagram'; import classDb from './classDb'; - -const spyOn = jest.spyOn; +import { vi } from 'vitest'; +const spyOn = vi.spyOn; describe('class diagram, ', function () { describe('when parsing an info graph it', function () { @@ -14,7 +14,7 @@ describe('class diagram, ', function () { parser.parse(str); }); - xit('should handle a leading newline axa', function () { + it.skip('should handle a leading newline axa', function () { const str = '\nclassDiagram\n' + 'class Car'; try { diff --git a/src/diagrams/flowchart/parser/flow-interactions.spec.js b/src/diagrams/flowchart/parser/flow-interactions.spec.js index 34125b153f..7d3e3ed047 100644 --- a/src/diagrams/flowchart/parser/flow-interactions.spec.js +++ b/src/diagrams/flowchart/parser/flow-interactions.spec.js @@ -1,8 +1,8 @@ import flowDb from '../flowDb'; import flow from './flow'; import { setConfig } from '../../../config'; - -const spyOn = jest.spyOn; +import { vi } from 'vitest'; +const spyOn = vi.spyOn; setConfig({ securityLevel: 'strict', diff --git a/src/diagrams/flowchart/parser/flow-text.spec.js b/src/diagrams/flowchart/parser/flow-text.spec.js index e58d76780c..e990f41b42 100644 --- a/src/diagrams/flowchart/parser/flow-text.spec.js +++ b/src/diagrams/flowchart/parser/flow-text.spec.js @@ -284,7 +284,7 @@ describe('[Text] when parsing', () => { expect(edges[0].text).toBe('text including graph space and v'); }); - // xit('should handle text on open links',function(){ + // it.skip('should handle text on open links',function(){ // const res = flow.parser.parse('graph TD;A-- text including graph space --B'); // // const vert = flow.parser.yy.getVertices(); @@ -324,7 +324,7 @@ describe('[Text] when parsing', () => { expect(vert['C'].type).toBe('round'); expect(vert['C'].text).toBe('Chimpansen hoppar åäö
- ÅÄÖ'); }); - // xit('should handle åäö, minus and space and br',function(){ + // it.skip('should handle åäö, minus and space and br',function(){ // const res = flow.parser.parse('graph TD; A[Object(foo,bar)]-->B(Thing);'); // // const vert = flow.parser.yy.getVertices(); diff --git a/src/diagrams/flowchart/parser/subgraph.spec.js b/src/diagrams/flowchart/parser/subgraph.spec.js index 185797ea8a..aa8e9217fe 100644 --- a/src/diagrams/flowchart/parser/subgraph.spec.js +++ b/src/diagrams/flowchart/parser/subgraph.spec.js @@ -62,7 +62,7 @@ describe('when parsing subgraphs', function () { expect(subgraph.id).toBe('some-id'); }); - xit('should handle subgraph without id and space in title', function () { + it.skip('should handle subgraph without id and space in title', function () { const res = flow.parser.parse('graph TB\nsubgraph Some Title\n\ta1-->a2\nend'); const subgraphs = flow.parser.yy.getSubGraphs(); expect(subgraphs.length).toBe(1); diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.ts similarity index 84% rename from src/diagrams/gantt/ganttDb.spec.js rename to src/diagrams/gantt/ganttDb.spec.ts index 4d1c3860b8..0588df3ae3 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.ts @@ -1,5 +1,8 @@ +// @ts-nocheck import moment from 'moment-mini'; import ganttDb from './ganttDb'; +import { it, describe } from 'vitest'; +import { convert } from '../../tests/util'; describe('when using the ganttDb', function () { beforeEach(function () { @@ -7,15 +10,60 @@ describe('when using the ganttDb', function () { }); describe('when using duration', function () { - it.each` + it.each([{ str: '1d', expected: moment.duration(1, 'd') }])( + 'should %s resulting in $o duration', + ({ str, expected }) => { + expect(ganttDb.parseDuration(str)).toEqual(expected); + } + ); + + // it.only('should parse', () => { + // expect( + // convert(` + // str | expected + // ${'1d'} | ${moment.duration(1, 'd')} + // ${'2w'} | ${moment.duration(2, 'w')} + // ${'1ms'} | ${moment.duration(1, 'ms')} + // ${'0.1s'} | ${moment.duration(100, 'ms')} + // ${'1f'} | ${moment.duration.invalid()} + // `) + // ).toMatchInlineSnapshot(` + // [ + // { + // "expected": "P1D", + // "str": "1d", + // }, + // { + // "expected": "P14D", + // "str": "2w", + // }, + // { + // "expected": "PT0.001S", + // "str": "1ms", + // }, + // { + // "expected": "PT0.1S", + // "str": "0.1s", + // }, + // { + // "expected": "Invalid date", + // "str": "1f", + // }, + // ] + // `); + // }); + + it.each( + convert` str | expected ${'1d'} | ${moment.duration(1, 'd')} ${'2w'} | ${moment.duration(2, 'w')} ${'1ms'} | ${moment.duration(1, 'ms')} ${'0.1s'} | ${moment.duration(100, 'ms')} ${'1f'} | ${moment.duration.invalid()} - `('should $str resulting in $expected duration', ({ str, expected }) => { - expect(ganttDb.parseDuration(str)).toEqual(expected); + ` + )('should $str resulting in $expected duration', ({ str, expected }) => { + expect(ganttDb.parseDuration(str).toString()).not.toEqual(expected); }); }); @@ -31,7 +79,7 @@ describe('when using the ganttDb', function () { ganttDb.clear(); }); - it.each` + it.each(convert` fn | expected ${'getTasks'} | ${[]} ${'getAccTitle'} | ${''} @@ -42,22 +90,54 @@ describe('when using the ganttDb', function () { ${'getExcludes'} | ${[]} ${'getSections'} | ${[]} ${'endDatesAreInclusive'} | ${false} - `('should clear $fn', ({ fn, expected }) => { + `)('should clear $fn', ({ fn, expected }) => { expect(ganttDb[fn]()).toEqual(expected); }); }); - it.each` + it.each(convert` testName | section | taskName | taskData | expStartDate | expEndDate | expId | expTask - ${'should handle fixed dates'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2013-01-12'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 12)} | ${'id1'} | ${'test1'} - ${'should handle duration (days) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2d'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 3)} | ${'id1'} | ${'test1'} - ${'should handle duration (hours) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2h'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 2)} | ${'id1'} | ${'test1'} - ${'should handle duration (minutes) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2m'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 0, 2)} | ${'id1'} | ${'test1'} - ${'should handle duration (seconds) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2s'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 0, 0, 2)} | ${'id1'} | ${'test1'} - ${'should handle duration (weeks) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2w'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 15)} | ${'id1'} | ${'test1'} - ${'should handle fixed dates without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,2013-01-12'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 12)} | ${'task1'} | ${'test1'} - ${'should handle duration instead of a fixed date to determine end date without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,4d'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 5)} | ${'task1'} | ${'test1'} - `('$testName', ({ section, taskName, taskData, expStartDate, expEndDate, expId, expTask }) => { + ${'should handle fixed dates'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2013-01-12'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 12)} | ${'id1'} | ${'test1'} + ${'should handle duration (days) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2d'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 3)} | ${'id1'} | ${'test1'} + ${'should handle duration (hours) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2h'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 1, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (minutes) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2m'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 1, 0, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (seconds) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2s'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 1, 0, 0, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (weeks) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2w'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 15)} | ${'id1'} | ${'test1'} + ${'should handle fixed dates without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,2013-01-12'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 12)} | ${'task1'} | ${'test1'} + ${'should handle duration instead of a fixed date to determine end date without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,4d'} | ${new Date( + 2013, + 0, + 1 + )} | ${new Date(2013, 0, 5)} | ${'task1'} | ${'test1'} + `)('$testName', ({ section, taskName, taskData, expStartDate, expEndDate, expId, expTask }) => { ganttDb.setDateFormat('YYYY-MM-DD'); ganttDb.addSection(section); ganttDb.addTask(taskName, taskData); @@ -68,14 +148,32 @@ describe('when using the ganttDb', function () { expect(tasks[0].task).toEqual(expTask); }); - it.each` + it.each(convert` section | taskName1 | taskName2 | taskData1 | taskData2 | expStartDate2 | expEndDate2 | expId2 | expTask2 - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id1,1d'} | ${new Date(2013, 0, 15)} | ${undefined} | ${'id2'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id3,1d'} | ${new Date(new Date().setHours(0, 0, 0, 0))} | ${undefined} | ${'id2'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'after id1,1d'} | ${new Date(2013, 0, 15)} | ${undefined} | ${'task1'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2013-01-26'} | ${new Date(2013, 0, 15)} | ${new Date(2013, 0, 26)} | ${'task1'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2d'} | ${new Date(2013, 0, 15)} | ${new Date(2013, 0, 17)} | ${'task1'} | ${'test2'} - `( + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id1,1d'} | ${new Date( + 2013, + 0, + 15 + )} | ${undefined} | ${'id2'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id3,1d'} | ${new Date( + new Date().setHours(0, 0, 0, 0) + )} | ${undefined} | ${'id2'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'after id1,1d'} | ${new Date( + 2013, + 0, + 15 + )} | ${undefined} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2013-01-26'} | ${new Date( + 2013, + 0, + 15 + )} | ${new Date(2013, 0, 26)} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2d'} | ${new Date( + 2013, + 0, + 15 + )} | ${new Date(2013, 0, 17)} | ${'task1'} | ${'test2'} + `)( '$testName', ({ section, @@ -381,11 +479,11 @@ describe('when using the ganttDb', function () { }); }); - it.each` + it.each(convert` type | expected ${'hide'} | ${'off'} ${'style'} | ${'stoke:stroke-width:5px,stroke:#00f,opacity:0.5'} - `('should ${type} today marker', ({ expected }) => { + `)('should ${type} today marker', ({ expected }) => { ganttDb.setTodayMarker(expected); expect(ganttDb.getTodayMarker()).toEqual(expected); }); diff --git a/src/diagrams/gantt/parser/gantt.spec.js b/src/diagrams/gantt/parser/gantt.spec.js index 42b30dbf2c..9e56752491 100644 --- a/src/diagrams/gantt/parser/gantt.spec.js +++ b/src/diagrams/gantt/parser/gantt.spec.js @@ -1,7 +1,8 @@ import { parser } from './gantt'; import ganttDb from '../ganttDb'; - -const spyOn = jest.spyOn; +import { convert } from '../../../tests/util'; +import { vi } from 'vitest'; +const spyOn = vi.spyOn; const parserFnConstructor = (str) => { return () => { parser.parse(str); @@ -92,14 +93,14 @@ describe('when parsing a gantt diagram it', function () { expect(tasks[0].id).toEqual('des1'); expect(tasks[0].task).toEqual('Design jison grammar'); }); - it.each` + it.each(convert` tags | milestone | done | crit | active ${'milestone'} | ${true} | ${false} | ${false} | ${false} ${'done'} | ${false} | ${true} | ${false} | ${false} ${'crit'} | ${false} | ${false} | ${true} | ${false} ${'active'} | ${false} | ${false} | ${false} | ${true} ${'crit,milestone,done'} | ${true} | ${true} | ${true} | ${false} - `('should handle a task with tags $tags', ({ tags, milestone, done, crit, active }) => { + `)('should handle a task with tags $tags', ({ tags, milestone, done, crit, active }) => { const str = 'gantt\n' + 'dateFormat YYYY-MM-DD\n' + diff --git a/src/diagrams/info/info.spec.js b/src/diagrams/info/info.spec.js index 69a969fb13..e9c2881667 100644 --- a/src/diagrams/info/info.spec.js +++ b/src/diagrams/info/info.spec.js @@ -1,8 +1,10 @@ +import { parser } from './parser/info'; +import infoDb from './infoDb'; describe('when parsing an info graph it', function () { var ex; beforeEach(function () { - ex = require('./parser/info').parser; - ex.yy = require('./infoDb'); + ex = parser; + ex.yy = infoDb; }); it('should handle an info definition', function () { diff --git a/src/diagrams/sequence/sequenceDiagram.spec.js b/src/diagrams/sequence/sequenceDiagram.spec.js index 808eb567ef..7b10ded12b 100644 --- a/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/src/diagrams/sequence/sequenceDiagram.spec.js @@ -29,15 +29,15 @@ describe('more than one sequence diagram', () => { Alice->Bob:Hello Bob, how are you? Bob-->Alice: I am good thanks!`); expect(diagram1.db.getMessages()).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "from": "Alice", "message": "Hello Bob, how are you?", "to": "Bob", "type": 5, "wrap": false, }, - Object { + { "from": "Bob", "message": "I am good thanks!", "to": "Alice", @@ -52,15 +52,15 @@ describe('more than one sequence diagram', () => { Bob-->Alice: I am good thanks!`); expect(diagram2.db.getMessages()).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "from": "Alice", "message": "Hello Bob, how are you?", "to": "Bob", "type": 5, "wrap": false, }, - Object { + { "from": "Bob", "message": "I am good thanks!", "to": "Alice", @@ -77,15 +77,15 @@ describe('more than one sequence diagram', () => { John-->Alice: I am good thanks!`); expect(diagram3.db.getMessages()).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "from": "Alice", "message": "Hello John, how are you?", "to": "John", "type": 5, "wrap": false, }, - Object { + { "from": "John", "message": "I am good thanks!", "to": "Alice", diff --git a/src/diagrams/sequence/svgDraw.spec.js b/src/diagrams/sequence/svgDraw.spec.js index 14dd9a2027..580dafe896 100644 --- a/src/diagrams/sequence/svgDraw.spec.js +++ b/src/diagrams/sequence/svgDraw.spec.js @@ -1,5 +1,5 @@ -const svgDraw = require('./svgDraw').default; -const { MockD3 } = require('d3'); +import svgDraw from './svgDraw'; +import { MockD3 } from 'd3'; describe('svgDraw', function () { describe('drawRect', function () { diff --git a/src/diagrams/state/stateDiagram.spec.js b/src/diagrams/state/stateDiagram.spec.js index 144dd16e58..d2bbb409e3 100644 --- a/src/diagrams/state/stateDiagram.spec.js +++ b/src/diagrams/state/stateDiagram.spec.js @@ -389,7 +389,7 @@ describe('state diagram, ', function () { }); }); describe('when parsing an ignored info graph it', function () { - xit('should handle if statements', function () { + it.skip('should handle if statements', function () { const str = `stateDiagram\n [*] --> "Order Submitted" if "Payment Accepted" then diff --git a/src/diagrams/user-journey/journeyDb.spec.js b/src/diagrams/user-journey/journeyDb.spec.js index 3a17ca2029..78955c794c 100644 --- a/src/diagrams/user-journey/journeyDb.spec.js +++ b/src/diagrams/user-journey/journeyDb.spec.js @@ -1,4 +1,5 @@ import journeyDb from './journeyDb'; +import { convert } from '../../tests/util'; describe('when using the journeyDb', function () { beforeEach(function () { @@ -13,13 +14,13 @@ describe('when using the journeyDb', function () { journeyDb.clear(); }); - it.each` + it.each(convert` fn | expected ${'getTasks'} | ${[]} ${'getAccTitle'} | ${''} ${'getSections'} | ${[]} ${'getActors'} | ${[]} - `('should clear $fn', ({ fn, expected }) => { + `)('should clear $fn', ({ fn, expected }) => { expect(journeyDb[fn]()).toEqual(expected); }); }); @@ -31,18 +32,18 @@ describe('when using the journeyDb', function () { journeyDb.addTask('test2', '1: id2'); journeyDb.clear(); }); - it.each` + it.each(convert` fn | expected ${'getTasks'} | ${[]} ${'getAccTitle'} | ${''} ${'getAccDescription'} | ${''} ${'getSections'} | ${[]} - `('should clear $fn', ({ fn, expected }) => { + `)('should clear $fn', ({ fn, expected }) => { expect(journeyDb[fn]()).toEqual(expected); }); }); - describe('tasks and actors should be added', function () { + it('tasks and actors should be added', function () { journeyDb.setAccTitle('Shopping'); journeyDb.setAccDescription('A user journey for family shopping'); journeyDb.addSection('Journey to the shops'); diff --git a/src/docs/Setup.md b/src/docs/Setup.md index a9d8e87e20..41e7068255 100644 --- a/src/docs/Setup.md +++ b/src/docs/Setup.md @@ -1405,6 +1405,15 @@ This sets the auto-wrap padding for the diagram (sides only) **Notes:** Default value: 0. +## parse + +### Parameters + +- `text` **[string][5]** +- `parseError` **[Function][6]?** + +Returns **[boolean][7]** + ## setSiteConfig ## setSiteConfig @@ -1422,7 +1431,7 @@ function _Default value: At default, will mirror Global Config_ - `conf` **MermaidConfig** The base currentConfig to use as siteConfig -Returns **[object][5]** The siteConfig +Returns **[object][8]** The siteConfig ## getSiteConfig @@ -1434,7 +1443,7 @@ Returns **[object][5]** The siteConfig **Notes**: Returns **any** values in siteConfig. -Returns **[object][5]** The siteConfig +Returns **[object][8]** The siteConfig ## setConfig @@ -1473,10 +1482,10 @@ $(function () { ### Parameters -- `id` **[string][6]** The id of the element to be rendered -- `text` **[string][6]** The graph definition -- `cb` **function (svgCode: [string][6], bindFunctions: function (element: [Element][7]): void): void** -- `container` **[Element][7]** Selector to element in which a div with the graph temporarily will be +- `id` **[string][5]** The id of the element to be rendered +- `text` **[string][5]** The graph definition +- `cb` **function (svgCode: [string][5], bindFunctions: function (element: [Element][9]): void): void** +- `container` **[Element][9]** Selector to element in which a div with the graph temporarily will be inserted. If one is provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is completed. @@ -1515,7 +1524,7 @@ Pushes in a directive to the configuration ### Parameters -- `directive` **[object][5]** The directive to push in +- `directive` **[object][8]** The directive to push in ## reset @@ -1613,6 +1622,8 @@ Returns **void** [2]: Setup.md?id=render [3]: 8.6.0_docs.md [4]: #mermaidapi-configuration-defaults -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[7]: https://developer.mozilla.org/docs/Web/API/Element +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[9]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/src/mermaid.spec.js b/src/mermaid.spec.ts similarity index 90% rename from src/mermaid.spec.js rename to src/mermaid.spec.ts index c6014dfff1..fda02b52d4 100644 --- a/src/mermaid.spec.js +++ b/src/mermaid.spec.ts @@ -1,17 +1,17 @@ import mermaid from './mermaid'; import { mermaidAPI } from './mermaidAPI'; import flowDb from './diagrams/flowchart/flowDb'; +// @ts-ignore import flowParser from './diagrams/flowchart/parser/flow'; import flowRenderer from './diagrams/flowchart/flowRenderer'; import Diagram from './Diagram'; +import { vi, describe, it, beforeEach, afterEach } from 'vitest'; +const spyOn = vi.spyOn; -const spyOn = jest.spyOn; - -// mocks the mermaidAPI.render function (see `./__mocks__/mermaidAPI`) -jest.mock('./mermaidAPI'); +vi.mock('./mermaidAPI'); afterEach(() => { - jest.restoreAllMocks(); + vi.restoreAllMocks(); }); describe('when using mermaid and ', function () { @@ -70,7 +70,7 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any; label: string }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('normal'); @@ -87,7 +87,7 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('normal'); @@ -103,7 +103,7 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('none'); @@ -119,7 +119,7 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any; style: any }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('none'); @@ -135,7 +135,7 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any; curve: any }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('none'); @@ -153,7 +153,11 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function ( + start: any, + end: any, + options: { arrowhead: any; label: string; style: any } + ) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('none'); @@ -171,7 +175,7 @@ describe('when using mermaid and ', function () { const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any; style: any }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B'); expect(options.arrowhead).toBe('none'); @@ -189,7 +193,7 @@ describe('when using mermaid and ', function () { diag.db.getVertices(); const edges = diag.db.getEdges(); const mockG = { - setEdge: function (start, end, options) { + setEdge: function (start: any, end: any, options: { arrowhead: any; style: any }) { expect(start).toContain('flowchart-A-'); expect(end).toContain('flowchart-B-'); expect(options.arrowhead).toBe('none'); diff --git a/src/mermaidAPI.ts b/src/mermaidAPI.ts index 2f8cca4314..3f3e97d3b0 100644 --- a/src/mermaidAPI.ts +++ b/src/mermaidAPI.ts @@ -39,7 +39,6 @@ import { evaluate } from './diagrams/common/common'; let hasLoadedDiagrams = false; /** - * * @param text * @param parseError */ diff --git a/src/tests/setup.ts b/src/tests/setup.ts new file mode 100644 index 0000000000..e8058c5179 --- /dev/null +++ b/src/tests/setup.ts @@ -0,0 +1,3 @@ +import { vi } from 'vitest'; +vi.mock('d3'); +vi.mock('dagre-d3'); diff --git a/src/tests/util.ts b/src/tests/util.ts new file mode 100644 index 0000000000..d0ad0b0431 --- /dev/null +++ b/src/tests/util.ts @@ -0,0 +1,16 @@ +export const convert = (template: TemplateStringsArray, ...params: any[]) => { + const header = template[0] + .trim() + .split('|') + .map((s) => s.trim()); + if (header.length === 0 || params.length % header.length !== 0) { + throw new Error('Table column count mismatch'); + } + const chunkSize = header.length; + const out = []; + for (let i = 0; i < params.length; i += chunkSize) { + const chunk = params.slice(i, i + chunkSize); + out.push(Object.fromEntries(chunk.map((v, i) => [header[i], v]))); + } + return out; +}; diff --git a/src/utils.spec.js b/src/utils.spec.js index 37f004a7ef..6c7d69200e 100644 --- a/src/utils.spec.js +++ b/src/utils.spec.js @@ -1,3 +1,4 @@ +import { vi, describe, it, expect, beforeEach } from 'vitest'; import utils from './utils'; import assignWithDepth from './assignWithDepth'; import { detectType } from './diagram-api/detectType'; @@ -306,14 +307,22 @@ describe('when calculating SVG size', function () { }); describe('when initializing the id generator', function () { - it('should return a random number generator based on Date', function (done) { + beforeEach(() => { + // tell vitest we use mocked time + vi.useFakeTimers(); + }); + + afterEach(() => { + // restoring date after each test run + vi.useRealTimers(); + }); + + it('should return a random number generator based on Date', function () { const idGenerator = new utils.initIdGenerator(false); expect(typeof idGenerator.next).toEqual('function'); const lastId = idGenerator.next(); - setTimeout(() => { - expect(idGenerator.next() > lastId).toBe(true); - done(); - }, 5); + vi.advanceTimersByTime(1000); + expect(idGenerator.next() > lastId).toBe(true); }); it('should return a non random number generator', function () { diff --git a/tsconfig.json b/tsconfig.json index 8acf035d72..31ba0ee7dd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,8 +11,9 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "target": "ES6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, "lib": [ + "DOM", "ES2021" ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, // "jsx": "preserve", /* Specify what JSX code is generated. */ @@ -33,7 +34,10 @@ // "paths": {} /* Specify a set of entries that re-map imports to additional lookup locations. */, // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [] /* Specify multiple folders that act like `./node_modules/@types`. */, - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + "types": [ + "vitest/globals" + ] /* Specify type package names to be included without being referenced in a source file. */, + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ "resolveJsonModule": true /* Enable importing .json files */, // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ @@ -100,5 +104,5 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "include": ["./src/**/*.ts", "./package.json"] + "include": ["./src/**/*.ts", "./package.json", "src/mermaid.spec.ts"] } diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000000..7e567f8006 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,41 @@ +import jison from 'jison'; +import { defineConfig } from 'vitest/config'; + +const fileRegex = /\.(jison)$/; + +/** Transforms jison to js. */ +export function jisonPlugin() { + return { + name: 'transform-jison', + + transform(src: string, id: string) { + if (fileRegex.test(id)) { + return { + // @ts-ignore + code: new jison.Generator(src, { 'token-stack': true }).generate(), + map: null, // provide source map if available + }; + } + }, + }; +} + +export default defineConfig({ + resolve: { + extensions: ['.jison', '.js', '.ts', '.json'], + }, + plugins: [jisonPlugin()], + test: { + // coverage: { + // enabled: true, + // }, + environment: 'jsdom', + globals: true, + mockReset: true, + clearMocks: true, + deps: { + inline: ['dagre-d3', 'd3'], + }, + setupFiles: ['src/tests/setup.ts'], + }, +}); diff --git a/yarn.lock b/yarn.lock index cd6dd69d4d..2f71eb1248 100644 --- a/yarn.lock +++ b/yarn.lock @@ -232,7 +232,7 @@ postcss-value-parser "4.1.0" throat "5.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== @@ -266,7 +266,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.14.6": +"@babel/core@^7.14.6": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== @@ -305,7 +305,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.12.1", "@babel/generator@^7.18.13", "@babel/generator@^7.7.2": +"@babel/generator@^7.12.1", "@babel/generator@^7.18.13": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== @@ -662,7 +662,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd" integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw== -"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.12.3", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": +"@babel/parser@^7.10.5", "@babel/parser@^7.12.3", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== @@ -877,14 +877,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -961,7 +954,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -982,7 +975,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -996,7 +989,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -1045,20 +1038,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" - integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" @@ -1488,7 +1474,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": +"@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1497,7 +1483,7 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== @@ -1513,7 +1499,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.12.1", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== @@ -1522,11 +1508,6 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - "@braintree/sanitize-url@^6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz#fe364f025ba74f6de6c837a84ef44bdb1d61e68f" @@ -1806,277 +1787,6 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - 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" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" - micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== - dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - -"@jest/environment@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.2.tgz#9e4b6d4c9bce5bfced6f63945d8c8e571394f572" - integrity sha512-Yf+EYaLOrVCgts/aTS5nGznU4prZUPa5k9S63Yct8YSOKj2jkdS17hHSUKhk5jxDFMyCy1PXknypDw7vfgc/mA== - dependencies: - "@jest/fake-timers" "^29.0.2" - "@jest/types" "^29.0.2" - "@types/node" "*" - jest-mock "^29.0.2" - -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== - dependencies: - jest-get-type "^28.0.2" - -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== - dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" - -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== - dependencies: - "@jest/types" "^28.1.3" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" - -"@jest/fake-timers@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.2.tgz#6f15f4d8eb1089d445e3f73473ddc434faa2f798" - integrity sha512-2JhQeWU28fvmM5r33lxg6BxxkTKaVXs6KMaJ6eXSM8ml/MaWkt2BvbIO8G9KWAJFMdBXWbn+2h9OK1/s5urKZA== - dependencies: - "@jest/types" "^29.0.2" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.0.2" - jest-mock "^29.0.2" - jest-util "^29.0.2" - -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" - -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== - dependencies: - "@jridgewell/trace-mapping" "^0.3.13" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== - dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== - dependencies: - "@jest/test-result" "^28.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - slash "^3.0.0" - -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/transform@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.1.tgz#fdaa5d9e135c9bd7addbe65bedd1f15ad028cc7e" - integrity sha512-6UxXtqrPScFdDhoip8ys60dQAIYppQinyR87n9nlasR/ZnFfJohKToqzM29KK4gb9gHRv5oDFChdqZKE0SIhsg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.0.1" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.0.1" - jest-regex-util "^29.0.0" - jest-util "^29.0.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== - dependencies: - "@jest/schemas" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jest/types@^29.0.1", "@jest/types@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.2.tgz#5a5391fa7f7f41bf4b201d6d2da30e874f95b6c1" - integrity sha512-5WNMesBLmlkt1+fVkoCjHa0X3i3q8zc4QLTDkdHgCa2gyPZc7rdlZBWgVLqwS1860ZW5xJuCDwAzqbGaXIr/ew== - dependencies: - "@jest/schemas" "^29.0.0" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -2117,7 +1827,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -2151,6 +1861,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + "@sideway/address@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.3.tgz#d93cce5d45c5daec92ad76db492cc2ee3c64ab27" @@ -2168,30 +1883,11 @@ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== -"@sinclair/typebox@^0.24.1": - version "0.24.20" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" - integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== - "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -2229,39 +1925,6 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== -"@types/babel__core@^7.1.14": - version "7.1.17" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.17.tgz#f50ac9d20d64153b510578d84f9643f9a3afbe64" - integrity sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -2287,6 +1950,18 @@ "@types/node" "*" "@types/responselike" "*" +"@types/chai-subset@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" + integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== + "@types/connect-history-api-fallback@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" @@ -2571,13 +2246,6 @@ resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA== -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -2590,42 +2258,6 @@ dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^28.1.7": - version "28.1.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" - integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== - dependencies: - expect "^28.0.0" - pretty-format "^28.0.0" - -"@types/jsdom@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791" - integrity sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - "@types/json-buffer@~3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" @@ -2690,10 +2322,10 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.1.5": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== +"@types/prettier@^2.7.0": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" + integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== "@types/qs@*": version "6.9.7" @@ -2749,21 +2381,11 @@ dependencies: "@types/node" "*" -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - "@types/stylis@^4.0.2": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.0.2.tgz#311c62d68a23dfb01462d54b04549484a4c5cb2a" integrity sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg== -"@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== - "@types/trusted-types@*": version "2.0.2" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" @@ -2781,18 +2403,6 @@ dependencies: "@types/node" "*" -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== - dependencies: - "@types/yargs-parser" "*" - "@types/yauzl@^2.9.1": version "2.9.2" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" @@ -2927,6 +2537,13 @@ "@typescript-eslint/types" "5.36.1" eslint-visitor-keys "^3.3.0" +"@vitest/ui@^0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.23.1.tgz#de3e95b7cc01137767d64c4a8464f2d586009925" + integrity sha512-W1ygPK4aTyLTPsf6NX3gZFbH0X1ipNzlHhxTRnZ4/HpQXs/qKw5NDY45/U2yC66Fevj5kXHI1tdrNfN00NouFQ== + dependencies: + sirv "^2.0.2" + "@wdio/config@7.16.11": version "7.16.11" resolved "https://registry.yarnpkg.com/@wdio/config/-/config-7.16.11.tgz#c35a0efb9c7ec6c80e3324e9818f636010087e97" @@ -3285,7 +2902,7 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.1.0, ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.1.0, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -3336,11 +2953,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" @@ -3351,7 +2963,7 @@ ansi-styles@~1.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -3452,6 +3064,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3513,32 +3130,6 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== - dependencies: - "@jest/transform" "^28.1.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-jest@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.1.tgz#db50de501fc8727e768f5aa417496cb871ee1ba0" - integrity sha512-wyI9r8tqwsZEMWiIaYjdUJ6ztZIO4DMWpGq7laW34wR71WtRS+D/iBEtXOP5W2aSYCVUQMsypRl/xiJYZznnTg== - dependencies: - "@jest/transform" "^29.0.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-loader@^8.2.2: version "8.2.5" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" @@ -3556,37 +3147,6 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - 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" - -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.0.tgz#ae4873399a199ede93697a15919d3d0f614a2eb1" - integrity sha512-B9oaXrlxXHFWeWqhDPg03iqQd2UN/mg/VdZOsLaqAVBkztru3ctTryAI4zisxLEEgmcUnLTKewqx0gGifoXD3A== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-polyfill-corejs2@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" @@ -3611,40 +3171,6 @@ babel-plugin-polyfill-regenerator@^0.4.0: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.2" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== - dependencies: - babel-plugin-jest-hoist "^28.1.3" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.0.tgz#52d7f1afe3a15d14a3c5ab4349cbd388d98d330b" - integrity sha512-B5Ke47Xcs8rDF3p1korT3LoilpADCwbG93ALqtvqu6Xpf4d8alKkrCBTExbNzdHJcIuEPpfYvEaFFRGee2kUgQ== - dependencies: - babel-plugin-jest-hoist "^29.0.0" - babel-preset-current-node-syntax "^1.0.0" - babelify@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" @@ -3814,20 +3340,6 @@ browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.21.0: node-releases "^2.0.5" update-browserslist-db "^1.0.4" -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -3941,11 +3453,6 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - caniuse-lite@^1.0.30001359: version "1.0.30001390" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz" @@ -3961,6 +3468,19 @@ ccount@^1.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== +chai@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" + integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + chalk@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -4006,11 +3526,6 @@ chalk@~0.4.0: has-color "~0.1.0" strip-ansi "~0.1.0" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - character-entities-html4@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" @@ -4036,6 +3551,11 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + check-more-types@2.24.0, check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" @@ -4066,11 +3586,6 @@ ci-info@^3.2.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - cjson@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" @@ -4183,21 +3698,11 @@ cloneable-readable@^1.0.0: process-nextick-args "^2.0.0" readable-stream "^2.3.5" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: version "1.0.6" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -4576,7 +4081,7 @@ conventional-recommended-bump@6.1.0: meow "^8.0.0" q "^1.5.1" -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.5.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -5133,17 +4638,19 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.0.0, deepmerge@^4.2.2: +deepmerge@^4.0.0: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== @@ -5253,7 +4760,7 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-newline@^3.0.0, detect-newline@^3.1.0: +detect-newline@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== @@ -5272,11 +4779,6 @@ detective@^5.2.0: defined "^1.0.0" minimist "^1.1.1" -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -5494,11 +4996,6 @@ electron-to-chromium@^1.4.172: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.177.tgz#b6a4436eb788ca732556cd69f384b8a3c82118c5" integrity sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg== -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" @@ -5556,6 +5053,11 @@ entities@^4.2.0, entities@^4.3.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== +entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + envinfo@^7.7.3: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" @@ -5792,7 +5294,7 @@ esbuild-windows-arm64@0.15.6: resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.6.tgz#e18a778d354fc2ca2306688f3fedad8a3e57819e" integrity sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg== -esbuild@^0.14.39, esbuild@^0.14.48: +esbuild@^0.14.39: version "0.14.54" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== @@ -5861,11 +5363,6 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -6199,11 +5696,6 @@ executable@^4.1.1: dependencies: pify "^2.2.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -6217,17 +5709,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^28.0.0, expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== - dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - express@^4.17.3: version "4.17.3" resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" @@ -6335,7 +5816,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -6371,13 +5852,6 @@ faye-websocket@~0.10.0: dependencies: websocket-driver ">=0.5.1" -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -6625,7 +6099,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -6658,6 +6132,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + get-intrinsic@^1.0.2: version "1.1.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" @@ -6667,11 +6146,6 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.3" -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - get-pkg-repo@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" @@ -6846,7 +6320,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -7138,11 +6612,6 @@ html-entities@^2.3.2: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - html-void-elements@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" @@ -7490,6 +6959,13 @@ is-core-module@^2.2.0, is-core-module@^2.5.0: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -7559,11 +7035,6 @@ is-fullwidth-code-point@^4.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -7762,48 +7233,6 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - 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" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - iterm2-version@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/iterm2-version/-/iterm2-version-4.2.0.tgz#b78069f747f34a772bc7dc17bda5bd9ed5e09633" @@ -7812,190 +7241,6 @@ iterm2-version@^4.1.0: app-path "^3.2.0" plist "^3.0.1" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== - dependencies: - execa "^5.0.0" - p-limit "^3.1.0" - -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - p-limit "^3.1.0" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== - dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.3" - "@jest/types" "^28.1.3" - babel-jest "^28.1.3" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.1.3" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== - dependencies: - detect-newline "^3.0.0" - -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== - dependencies: - "@jest/types" "^28.1.3" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" - -jest-environment-jsdom@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.0.2.tgz#d616a19416d0dda5155b854d301197fb6092dff0" - integrity sha512-hWqC9FQI5yT04lTd4VJnzT5QObxq0xrSrqpGkqsYfxPeJYjyhriI7W2oJC5HZ1UbhnvA+8GS1nzgPsstvRpdVw== - dependencies: - "@jest/environment" "^29.0.2" - "@jest/fake-timers" "^29.0.2" - "@jest/types" "^29.0.2" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.0.2" - jest-util "^29.0.2" - jsdom "^20.0.0" - -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" - -jest-esbuild@^0.2.9: - version "0.2.9" - resolved "https://registry.yarnpkg.com/jest-esbuild/-/jest-esbuild-0.2.9.tgz#c4c103e510400ad8a080753fd990dfe5a2a76025" - integrity sha512-GfcQgHf8XPwUydEurYTRdrhrDblVFXtgOsKmE/7KADxbsC0c5xpxQBarak4X7K0wl5XXfTmw7Qtat2V0/ssreg== - dependencies: - debug "^4.3.4" - esbuild "^0.14.48" - -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== - dependencies: - "@jest/types" "^28.1.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-haste-map@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.1.tgz#472212f93ef44309bf97d191f93ddd2e41169615" - integrity sha512-gcKOAydafpGoSBvcj/mGCfhOKO8fRLkAeee1KXGdcJ1Pb9O2nnOl4I8bQSIID2MaZeMHtLLgNboukh/pUGkBtg== - dependencies: - "@jest/types" "^29.0.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.0.0" - jest-util "^29.0.1" - jest-worker "^29.0.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-image-snapshot@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz#559d7ade69e9918517269cef184261c80029a69e" @@ -8011,242 +7256,6 @@ jest-image-snapshot@4.2.0: rimraf "^2.6.2" ssim.js "^3.1.1" -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== - dependencies: - chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.2.tgz#b2781dfb6a2d1c63830d9684c5148ae3155c6154" - integrity sha512-kcJAgms3ckJV0wUoLsAM40xAhY+pb9FVSZwicjFU9PFkaTNmqh9xd99/CzKse48wPM1ANUQKmp03/DpkY+lGrA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.0.2" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - -jest-mock@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.2.tgz#d7810966a6338aca6a440c3cd9f19276477840ad" - integrity sha512-giWXOIT23UCxHCN2VUfUJ0Q7SmiqQwfSFXlCaIhW5anITpNQ+3vuLPQdKt5wkuwM37GrbFyHIClce8AAK9ft9g== - dependencies: - "@jest/types" "^29.0.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-regex-util@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" - integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== - -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" - -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.1.3" - graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - natural-compare "^1.4.0" - pretty-format "^28.1.3" - semver "^7.3.5" - -jest-util@^28.0.0, jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.0.1, jest-util@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.2.tgz#c75c5cab7f3b410782f9570a60c5558b5dfb6e3a" - integrity sha512-ozk8ruEEEACxqpz0hN9UOgtPZS0aN+NffwQduR5dVlhN+eN47vxurtvgZkYZYMpYrsmlAEx1XabkB3BnN0GfKQ== - dependencies: - "@jest/types" "^29.0.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== - dependencies: - "@jest/types" "^28.1.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.1.3" - -jest-watcher@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== - dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" - string-length "^4.0.1" - jest-worker@^27.4.5: version "27.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.0.tgz#99ee77e4d06168107c27328bd7f54e74c3a48d59" @@ -8256,34 +7265,6 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.1.tgz#fb42ff7e05e0573f330ec0cf781fc545dcd11a31" - integrity sha512-+B/2/8WW7goit7qVezG9vnI1QP3dlmuzi2W0zxazAQQ8dcDIA63dDn6j4pjOGBARha/ZevcwYQtNIzCySbS7fQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^28.0.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== - dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" - import-local "^3.0.2" - jest-cli "^28.1.3" - jison-lex@0.3.x: version "0.3.4" resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" @@ -8546,11 +7527,6 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - kleur@^4.0.3: version "4.1.4" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" @@ -8593,11 +7569,6 @@ lead@^1.0.0: dependencies: flush-write-stream "^1.0.2" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -8715,6 +7686,11 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +local-pkg@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" + integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -8755,11 +7731,6 @@ lodash.ismatch@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - lodash.merge@^4.6.1, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -8818,6 +7789,13 @@ longest-streak@^3.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== +loupe@^2.3.1: + version "2.3.4" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" + integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + dependencies: + get-func-name "^2.0.0" + lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -8845,25 +7823,18 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" -make-error@1.x, make-error@^1.1.1: +make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -9425,6 +8396,11 @@ mri@^1.1.0: resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -9448,6 +8424,11 @@ multicast-dns@^7.2.4: dns-packet "^5.2.2" thunky "^1.0.2" +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -9502,11 +8483,6 @@ node-forge@^1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - node-releases@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" @@ -9768,7 +8744,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -9905,7 +8881,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0, parse-json@^5.2.0: +parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -9941,11 +8917,11 @@ parse5@6.0.1: integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" + integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== dependencies: - entities "^4.3.0" + entities "^4.4.0" parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -9997,7 +8973,7 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -10031,6 +9007,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -10053,7 +9034,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -10083,7 +9064,7 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pirates@^4.0.4, pirates@^4.0.5: +pirates@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== @@ -10142,6 +9123,15 @@ postcss-value-parser@4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== +postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -10171,25 +9161,6 @@ pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-format@^28.0.0, pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== - dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.2.tgz#7f7666a7bf05ba2bcacde61be81c6db64f6f3be6" - integrity sha512-wp3CdtUa3cSJVFn3Miu5a1+pxc1iPIQTenOAn+x5erXeN1+ryTcLesV5pbK/rlW5EKwp27x38MoYfNGaNXDDhg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -10200,14 +9171,6 @@ process-nextick-args@~1.0.6: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - property-information@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e" @@ -10393,11 +9356,6 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -react-is@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== - read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -10830,17 +9788,12 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1, resolve@^1.9.0: +resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.3.2, resolve@^1.8.1, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -10848,6 +9801,15 @@ resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3. is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -10902,6 +9864,13 @@ robust-predicates@^3.0.0: resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== +rollup@~2.78.0: + version "2.78.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" + integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== + optionalDependencies: + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -11019,7 +9988,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.7, semver@7.x, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -11155,10 +10124,14 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +sirv@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.2.tgz#128b9a628d77568139cff85703ad5497c46a4760" + integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^3.0.0" slash@^3.0.0: version "3.0.0" @@ -11262,6 +10235,11 @@ source-list-map@^2.0.1: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -11273,14 +10251,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@^0.5.16, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -11428,13 +10398,6 @@ ssim.js@^3.1.1: resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - standard-version@^9.0.0: version "9.3.2" resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.3.2.tgz#28db8c1be66fd2d736f28f7c5de7619e64cd6dab" @@ -11529,14 +10492,6 @@ string-argv@^0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" @@ -11625,11 +10580,6 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -11662,6 +10612,13 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-literal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634" + integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA== + dependencies: + acorn "^8.7.1" + stylis@^4.0.10: version "4.1.1" resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.1.tgz#e46c6a9bbf7c58db1e65bb730be157311ae1fe12" @@ -11693,7 +10650,7 @@ supports-color@^6.0.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -11707,13 +10664,10 @@ supports-color@^8.0.0, supports-color@^8.1.0, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== symbol-tree@^3.2.4: version "3.2.4" @@ -11733,14 +10687,6 @@ term-img@^4.0.0: ansi-escapes "^4.1.0" iterm2-version "^4.1.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.6: version "5.3.6" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" @@ -11762,15 +10708,6 @@ terser@^5.14.1: commander "^2.20.0" source-map-support "~0.5.20" -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -11836,6 +10773,21 @@ tiny-lr@^1.1.0: object-assign "^4.1.0" qs "^6.4.0" +tinybench@^2.1.3: + version "2.1.5" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.1.5.tgz#6864341415ff0f912ed160cfd90b7f833ece674c" + integrity sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ== + +tinypool@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" + integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== + +tinyspy@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" + integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== + tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -11843,11 +10795,6 @@ tmp@~0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - to-absolute-glob@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" @@ -11905,6 +10852,11 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +totalist@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd" + integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw== + tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -11969,20 +10921,6 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -ts-jest@^28.0.8: - version "28.0.8" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73" - integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^28.0.0" - json5 "^2.2.1" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "^21.0.1" - ts-loader@^9.3.1: version "9.3.1" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.3.1.tgz#fe25cca56e3e71c1087fe48dc67f4df8c59b22d4" @@ -12060,7 +10998,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -12389,15 +11327,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -12553,6 +11482,35 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" +"vite@^2.9.12 || ^3.0.0-0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" + integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== + dependencies: + esbuild "^0.15.6" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + optionalDependencies: + fsevents "~2.3.2" + +vitest@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.1.tgz#da3f79a88a6570e4d8c1fe8cf5e2d997be2dc3bd" + integrity sha512-kn9pG+h6VA3yj/xRvwgLKEd33rOlzMqJEg3tl5HSm3WUPlkY1Lr1FK8RN1uIqVKvFxmz6HGU3EQW+xW2kazRkQ== + dependencies: + "@types/chai" "^4.3.3" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + chai "^4.3.6" + debug "^4.3.4" + local-pkg "^0.4.2" + strip-literal "^0.4.0" + tinybench "^2.1.3" + tinypool "^0.2.4" + tinyspy "^1.0.2" + vite "^2.9.12 || ^3.0.0-0" + vm2@^3.9.8: version "3.9.9" resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" @@ -12625,13 +11583,6 @@ wait-on@6.0.0: minimist "^1.2.5" rxjs "^7.1.0" -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" @@ -12904,14 +11855,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" @@ -13005,11 +11948,6 @@ yargs-parser@^21.0.0: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== -yargs-parser@^21.0.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs@17.4.1, yargs@^17.0.0, yargs@^17.3.1: version "17.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" From 766e111ac1138749f1ee639ac77f2fa7128701db Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 11:27:20 +0530 Subject: [PATCH 0014/1038] Fix mindmap import --- src/diagrams/mindmap/mindmap.spec.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/diagrams/mindmap/mindmap.spec.js b/src/diagrams/mindmap/mindmap.spec.js index 2b88a579d5..d194c094ea 100644 --- a/src/diagrams/mindmap/mindmap.spec.js +++ b/src/diagrams/mindmap/mindmap.spec.js @@ -1,10 +1,11 @@ import * as mindmapDB from './mindmapDb'; +import { parser } from './parser/mindmap'; describe('when parsing a mindmap ', function () { let mindmap; beforeEach(function () { - mindmap = require('./parser/mindmap').parser; - mindmap.yy = require('./mindmapDb'); + mindmap = parser; + mindmap.yy = mindmapDB; mindmap.yy.clear(); }); describe('hiearchy', function () { From 0ee0862fae93835ce84cd69063fa7a0648159c9a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 12:47:39 +0530 Subject: [PATCH 0015/1038] Add coverage --- package.json | 3 +- yarn.lock | 118 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 114 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index bc5c441cc1..9cc425a04f 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "dev": "webpack serve --config ./.webpack/webpack.config.e2e.babel.js", "ci": "vitest", "test": "yarn lint && vitest run", - "test:watch": "vitest --watch", + "test:watch": "vitest --coverage --watch", "prepublishOnly": "yarn build && yarn test", "prepare": "concurrently \"husky install\" \"yarn build\"", "pre-commit": "lint-staged" @@ -91,6 +91,7 @@ "@types/stylis": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", + "@vitest/coverage-c8": "^0.23.1", "@vitest/ui": "^0.23.1", "babel-loader": "^8.2.2", "concurrently": "^7.0.0", diff --git a/yarn.lock b/yarn.lock index a0234ece2b..23aec9c074 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1508,6 +1508,11 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "@braintree/sanitize-url@^6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz#fe364f025ba74f6de6c837a84ef44bdb1d61e68f" @@ -1787,6 +1792,11 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -1827,7 +1837,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -2258,6 +2268,11 @@ dependencies: "@types/node" "*" +"@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + "@types/json-buffer@~3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" @@ -2537,6 +2552,14 @@ "@typescript-eslint/types" "5.36.1" eslint-visitor-keys "^3.3.0" +"@vitest/coverage-c8@^0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@vitest/coverage-c8/-/coverage-c8-0.23.1.tgz#6834f8ec5e35be56c03039276be83fd1580ab68c" + integrity sha512-si3vK1h3BHdoGfb5J2jXstthROHwDW+yqVNGO/NOPG8642+d1RO/jFFvF3OSSYFEsxxcDL0uywEVcXCjGuPYdA== + dependencies: + c8 "^7.12.0" + vitest "0.23.1" + "@vitest/ui@^0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.23.1.tgz#de3e95b7cc01137767d64c4a8464f2d586009925" @@ -3383,6 +3406,24 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +c8@^7.12.0: + version "7.12.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14" + integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.3" + find-up "^5.0.0" + foreground-child "^2.0.0" + istanbul-lib-coverage "^3.2.0" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.1.4" + rimraf "^3.0.2" + test-exclude "^6.0.0" + v8-to-istanbul "^9.0.0" + yargs "^16.2.0" + yargs-parser "^20.2.9" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -4081,7 +4122,7 @@ conventional-recommended-bump@6.1.0: meow "^8.0.0" q "^1.5.1" -convert-source-map@^1.5.0, convert-source-map@^1.7.0: +convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -5997,6 +6038,14 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -6337,6 +6386,18 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -6617,6 +6678,11 @@ html-entities@^2.3.2: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + html-void-elements@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" @@ -7238,6 +7304,28 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-reports@^3.1.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + iterm2-version@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/iterm2-version/-/iterm2-version-4.2.0.tgz#b78069f747f34a772bc7dc17bda5bd9ed5e09633" @@ -7828,7 +7916,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -8323,7 +8411,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -10718,6 +10806,15 @@ terser@^5.14.1: commander "^2.20.0" source-map-support "~0.5.20" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -11332,6 +11429,15 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +v8-to-istanbul@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -11499,7 +11605,7 @@ vinyl@^2.0.0, vinyl@^2.1.0: optionalDependencies: fsevents "~2.3.2" -vitest@^0.23.1: +vitest@0.23.1, vitest@^0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.1.tgz#da3f79a88a6570e4d8c1fe8cf5e2d997be2dc3bd" integrity sha512-kn9pG+h6VA3yj/xRvwgLKEd33rOlzMqJEg3tl5HSm3WUPlkY1Lr1FK8RN1uIqVKvFxmz6HGU3EQW+xW2kazRkQ== @@ -11943,7 +12049,7 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2, yargs-parser@^20.2.3: +yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== From f27dff21864f58c1f2b1a4e2cd6074c852f96a0a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 12:52:48 +0530 Subject: [PATCH 0016/1038] Trim down vite config --- vite.config.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 7e567f8006..ca3739e713 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,7 @@ -import jison from 'jison'; +import { Generator } from 'jison'; import { defineConfig } from 'vitest/config'; -const fileRegex = /\.(jison)$/; +const fileRegex = /\.jison$/; /** Transforms jison to js. */ export function jisonPlugin() { @@ -10,9 +10,10 @@ export function jisonPlugin() { transform(src: string, id: string) { if (fileRegex.test(id)) { + console.log('Transforming', id); return { // @ts-ignore - code: new jison.Generator(src, { 'token-stack': true }).generate(), + code: new Generator(src, { 'token-stack': true }).generate(), map: null, // provide source map if available }; } @@ -26,16 +27,8 @@ export default defineConfig({ }, plugins: [jisonPlugin()], test: { - // coverage: { - // enabled: true, - // }, environment: 'jsdom', globals: true, - mockReset: true, - clearMocks: true, - deps: { - inline: ['dagre-d3', 'd3'], - }, setupFiles: ['src/tests/setup.ts'], }, }); From c7ba253e7cc640daee2be0b49b91bed45e76b005 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 13:34:56 +0530 Subject: [PATCH 0017/1038] Cleanup --- src/diagrams/gantt/ganttDb.spec.ts | 36 ------------------------------ 1 file changed, 36 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.spec.ts b/src/diagrams/gantt/ganttDb.spec.ts index 0588df3ae3..799a4a54e3 100644 --- a/src/diagrams/gantt/ganttDb.spec.ts +++ b/src/diagrams/gantt/ganttDb.spec.ts @@ -17,42 +17,6 @@ describe('when using the ganttDb', function () { } ); - // it.only('should parse', () => { - // expect( - // convert(` - // str | expected - // ${'1d'} | ${moment.duration(1, 'd')} - // ${'2w'} | ${moment.duration(2, 'w')} - // ${'1ms'} | ${moment.duration(1, 'ms')} - // ${'0.1s'} | ${moment.duration(100, 'ms')} - // ${'1f'} | ${moment.duration.invalid()} - // `) - // ).toMatchInlineSnapshot(` - // [ - // { - // "expected": "P1D", - // "str": "1d", - // }, - // { - // "expected": "P14D", - // "str": "2w", - // }, - // { - // "expected": "PT0.001S", - // "str": "1ms", - // }, - // { - // "expected": "PT0.1S", - // "str": "0.1s", - // }, - // { - // "expected": "Invalid date", - // "str": "1f", - // }, - // ] - // `); - // }); - it.each( convert` str | expected From 18201d326c31454cafe79104b2e7518666cc00d2 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 13:39:36 +0530 Subject: [PATCH 0018/1038] Fix formatting --- src/diagrams/gantt/ganttDb.spec.ts | 78 ++++++------------------------ 1 file changed, 15 insertions(+), 63 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.spec.ts b/src/diagrams/gantt/ganttDb.spec.ts index 799a4a54e3..035e74e864 100644 --- a/src/diagrams/gantt/ganttDb.spec.ts +++ b/src/diagrams/gantt/ganttDb.spec.ts @@ -59,48 +59,17 @@ describe('when using the ganttDb', function () { }); }); + // prettier-ignore it.each(convert` testName | section | taskName | taskData | expStartDate | expEndDate | expId | expTask - ${'should handle fixed dates'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2013-01-12'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 12)} | ${'id1'} | ${'test1'} - ${'should handle duration (days) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2d'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 3)} | ${'id1'} | ${'test1'} - ${'should handle duration (hours) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2h'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 1, 2)} | ${'id1'} | ${'test1'} - ${'should handle duration (minutes) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2m'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 1, 0, 2)} | ${'id1'} | ${'test1'} - ${'should handle duration (seconds) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2s'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 1, 0, 0, 2)} | ${'id1'} | ${'test1'} - ${'should handle duration (weeks) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2w'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 15)} | ${'id1'} | ${'test1'} - ${'should handle fixed dates without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,2013-01-12'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 12)} | ${'task1'} | ${'test1'} - ${'should handle duration instead of a fixed date to determine end date without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,4d'} | ${new Date( - 2013, - 0, - 1 - )} | ${new Date(2013, 0, 5)} | ${'task1'} | ${'test1'} + ${'should handle fixed dates'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2013-01-12'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 12)} | ${'id1'} | ${'test1'} + ${'should handle duration (days) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2d'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 3)} | ${'id1'} | ${'test1'} + ${'should handle duration (hours) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2h'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (minutes) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2m'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 0, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (seconds) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2s'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 0, 0, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (weeks) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2w'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 15)} | ${'id1'} | ${'test1'} + ${'should handle fixed dates without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,2013-01-12'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 12)} | ${'task1'} | ${'test1'} + ${'should handle duration instead of a fixed date to determine end date without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,4d'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 5)} | ${'task1'} | ${'test1'} `)('$testName', ({ section, taskName, taskData, expStartDate, expEndDate, expId, expTask }) => { ganttDb.setDateFormat('YYYY-MM-DD'); ganttDb.addSection(section); @@ -112,31 +81,14 @@ describe('when using the ganttDb', function () { expect(tasks[0].task).toEqual(expTask); }); + // prettier-ignore it.each(convert` section | taskName1 | taskName2 | taskData1 | taskData2 | expStartDate2 | expEndDate2 | expId2 | expTask2 - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id1,1d'} | ${new Date( - 2013, - 0, - 15 - )} | ${undefined} | ${'id2'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id3,1d'} | ${new Date( - new Date().setHours(0, 0, 0, 0) - )} | ${undefined} | ${'id2'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'after id1,1d'} | ${new Date( - 2013, - 0, - 15 - )} | ${undefined} | ${'task1'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2013-01-26'} | ${new Date( - 2013, - 0, - 15 - )} | ${new Date(2013, 0, 26)} | ${'task1'} | ${'test2'} - ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2d'} | ${new Date( - 2013, - 0, - 15 - )} | ${new Date(2013, 0, 17)} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id1,1d'} | ${new Date(2013, 0, 15)} | ${undefined} | ${'id2'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id3,1d'} | ${new Date(new Date().setHours(0, 0, 0, 0))} | ${undefined} | ${'id2'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'after id1,1d'} | ${new Date(2013, 0, 15)} | ${undefined} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2013-01-26'} | ${new Date(2013, 0, 15)} | ${new Date(2013, 0, 26)} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2d'} | ${new Date(2013, 0, 15)} | ${new Date(2013, 0, 17)} | ${'task1'} | ${'test2'} `)( '$testName', ({ From a61d95a005175b7b48e8ebd8ddc42add560deae4 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 13:42:39 +0530 Subject: [PATCH 0019/1038] Add doc --- src/tests/util.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tests/util.ts b/src/tests/util.ts index d0ad0b0431..9ec74e629a 100644 --- a/src/tests/util.ts +++ b/src/tests/util.ts @@ -1,3 +1,6 @@ +/* + * Used to convert Tagged Template literals to object arrays as required by vitest. + */ export const convert = (template: TemplateStringsArray, ...params: any[]) => { const header = template[0] .trim() From 5905787beac7904e17857b7beb314a711b6da8ef Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 13:43:29 +0530 Subject: [PATCH 0020/1038] Fix tsconfig --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 31ba0ee7dd..0ffa0002ee 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -104,5 +104,5 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "include": ["./src/**/*.ts", "./package.json", "src/mermaid.spec.ts"] + "include": ["./src/**/*.ts", "./package.json"] } From 407927c8ec544333bd4619abeab8e9c8bf220e26 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 7 Sep 2022 18:04:43 +0530 Subject: [PATCH 0021/1038] Fix test --- src/diagrams/gantt/ganttDb.spec.ts | 2 +- src/tests/util.ts | 29 +++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.spec.ts b/src/diagrams/gantt/ganttDb.spec.ts index 035e74e864..d186d47b60 100644 --- a/src/diagrams/gantt/ganttDb.spec.ts +++ b/src/diagrams/gantt/ganttDb.spec.ts @@ -27,7 +27,7 @@ describe('when using the ganttDb', function () { ${'1f'} | ${moment.duration.invalid()} ` )('should $str resulting in $expected duration', ({ str, expected }) => { - expect(ganttDb.parseDuration(str).toString()).not.toEqual(expected); + expect(ganttDb.parseDuration(str)).toEqual(expected); }); }); diff --git a/src/tests/util.ts b/src/tests/util.ts index 9ec74e629a..76f8572e3d 100644 --- a/src/tests/util.ts +++ b/src/tests/util.ts @@ -1,6 +1,31 @@ /* - * Used to convert Tagged Template literals to object arrays as required by vitest. - */ +Used to convert jest's Tagged Template literals to object arrays as required by vitest. + +Example: + +Jest code +```ts +it.each` +str | expected +${'1d'} | ${moment.duration(1, 'd')} +${'2w'} | ${moment.duration(2, 'w')} +`('should parse $str to $expected duration', ({ str, expected }) => { + expect(yourFunction(str)).toEqual(expected); + }); +``` + +Vitest code +```ts +it.each(convert` +str | expected +${'1d'} | ${moment.duration(1, 'd')} +${'2w'} | ${moment.duration(2, 'w')} +`)('should parse $str to $expected duration', ({ str, expected }) => { + expect(yourFunction(str)).toEqual(expected); + }); +``` +*/ + export const convert = (template: TemplateStringsArray, ...params: any[]) => { const header = template[0] .trim() From 5434cfc89dace52517a591b55ffbb0cd0fde9777 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Sep 2022 10:52:51 +0530 Subject: [PATCH 0022/1038] feat: Remove webpack --- .esbuild/serve.cjs | 108 ++++++++++++++---------- .esbuild/util.cjs | 10 ++- .webpack/loaders/jison.js | 25 ------ .webpack/webpack.config.babel.js | 46 ---------- .webpack/webpack.config.base.js | 71 ---------------- .webpack/webpack.config.e2e.babel.js | 26 ------ package.json | 10 +-- yarn.lock | 121 +++++++++++++++++++++++++++ 8 files changed, 195 insertions(+), 222 deletions(-) delete mode 100644 .webpack/loaders/jison.js delete mode 100644 .webpack/webpack.config.babel.js delete mode 100644 .webpack/webpack.config.base.js delete mode 100644 .webpack/webpack.config.e2e.babel.js diff --git a/.esbuild/serve.cjs b/.esbuild/serve.cjs index c54ff1e9f1..30fff7ec09 100644 --- a/.esbuild/serve.cjs +++ b/.esbuild/serve.cjs @@ -1,53 +1,71 @@ const esbuild = require('esbuild'); const http = require('http'); -const path = require('path'); -const { iifeBuild } = require('./util.cjs'); +const { iifeBuild, esmBuild, getEntryPoints } = require('./util.cjs'); +const express = require('express'); -// Start esbuild's server on a random local port -esbuild - .serve( - { - servedir: path.join(__dirname, '..'), +// Start 2 esbuild servers. One for IIFE and one for ESM +// Serve 2 static directories: demo & cypress/platform +// Have 3 entry points: +// mermaid: './src/mermaid', +// e2e: './cypress/platform/viewer.js', +// 'bundle-test': './cypress/platform/bundle-test.js', + +const getEntryPointsAndExtensions = (format) => { + return { + entryPoints: { + ...getEntryPoints(format === 'iife' ? '' : '.esm'), + e2e: 'cypress/platform/viewer.js', + 'bundle-test': 'cypress/platform/bundle-test.js', }, - iifeBuild({ minify: false }) - ) - .then((result) => { - // The result tells us where esbuild's local server is - const { host, port } = result; + outExtension: { '.js': format === 'iife' ? '.js' : '.mjs' }, + }; +}; - // Then start a proxy server on port 3000 - http - .createServer((req, res) => { - if (req.url.includes('mermaid.js')) { - req.url = '/dist/mermaid.js'; +const generateHandler = (server) => { + return (req, res) => { + const options = { + hostname: server.host, + port: server.port, + path: req.url, + method: req.method, + headers: req.headers, + }; + // Forward each incoming request to esbuild + const proxyReq = http.request(options, (proxyRes) => { + // If esbuild returns "not found", send a custom 404 page + if (proxyRes.statusCode === 404) { + if (!req.url.endsWith('.html')) { + res.writeHead(404, { 'Content-Type': 'text/html' }); + res.end('

A custom 404 page

'); + return; } - const options = { - hostname: host, - port: port, - path: req.url, - method: req.method, - headers: req.headers, - }; + } + // Otherwise, forward the response from esbuild to the client + res.writeHead(proxyRes.statusCode, proxyRes.headers); + proxyRes.pipe(res, { end: true }); + }); + // Forward the body of the request to esbuild + req.pipe(proxyReq, { end: true }); + }; +}; - // Forward each incoming request to esbuild - const proxyReq = http.request(options, (proxyRes) => { - // If esbuild returns "not found", send a custom 404 page - console.error('pp', req.url); - if (proxyRes.statusCode === 404) { - if (!req.url.endsWith('.html')) { - res.writeHead(404, { 'Content-Type': 'text/html' }); - res.end('

A custom 404 page

'); - return; - } - } - - // Otherwise, forward the response from esbuild to the client - res.writeHead(proxyRes.statusCode, proxyRes.headers); - proxyRes.pipe(res, { end: true }); - }); +(async () => { + const iifeServer = await esbuild.serve( + {}, + { + ...iifeBuild({ minify: false }), + ...getEntryPointsAndExtensions('iife'), + } + ); + const esmServer = await esbuild.serve( + {}, + { ...esmBuild({ minify: false }), ...getEntryPointsAndExtensions('esm') } + ); + const app = express(); - // Forward the body of the request to esbuild - req.pipe(proxyReq, { end: true }); - }) - .listen(3000); - }); + app.use(express.static('demos')); + app.use(express.static('cypress/platform')); + app.all('/mermaid.js', generateHandler(iifeServer)); + app.all('/mermaid.esm.mjs', generateHandler(esmServer)); + app.listen(3000); +})(); diff --git a/.esbuild/util.cjs b/.esbuild/util.cjs index 0cddb7e45c..d9b783747a 100644 --- a/.esbuild/util.cjs +++ b/.esbuild/util.cjs @@ -26,12 +26,14 @@ const buildOptions = (override = {}) => { }; }; -const getOutFiles = (extension) => { +const getEntryPoints = (extension) => { return { [`mermaid${extension}`]: 'src/mermaid.ts', [`diagramAPI${extension}`]: 'src/diagram-api/diagramAPI.ts', }; }; +exports.getEntryPoints = getEntryPoints; + /** * Build options for mermaid.esm.* build. * @@ -43,7 +45,7 @@ const getOutFiles = (extension) => { exports.esmBuild = (override = { minify: true }) => { return buildOptions({ format: 'esm', - entryPoints: getOutFiles(`.esm${override.minify ? '.min' : ''}`), + entryPoints: getEntryPoints(`.esm${override.minify ? '.min' : ''}`), outExtension: { '.js': '.mjs' }, ...override, }); @@ -61,7 +63,7 @@ exports.esmBuild = (override = { minify: true }) => { exports.esmCoreBuild = (override) => { return buildOptions({ format: 'esm', - entryPoints: getOutFiles(`.core`), + entryPoints: getEntryPoints(`.core`), outExtension: { '.js': '.mjs' }, external: ['require', 'fs', 'path', ...Object.keys(dependencies)], platform: 'neutral', @@ -79,7 +81,7 @@ exports.esmCoreBuild = (override) => { */ exports.iifeBuild = (override = { minify: true }) => { return buildOptions({ - entryPoints: getOutFiles(override.minify ? '.min' : ''), + entryPoints: getEntryPoints(override.minify ? '.min' : ''), format: 'iife', ...override, }); diff --git a/.webpack/loaders/jison.js b/.webpack/loaders/jison.js deleted file mode 100644 index 0d5ebc7e5b..0000000000 --- a/.webpack/loaders/jison.js +++ /dev/null @@ -1,25 +0,0 @@ -const { Generator } = require('jison'); -const validate = require('schema-utils'); - -const schema = { - title: 'Jison Parser options', - type: 'object', - properties: { - 'token-stack': { - type: 'boolean', - }, - debug: { - type: 'boolean', - }, - }, - additionalProperties: false, -}; - -module.exports = function jisonLoader(source) { - const options = this.getOptions(); - (validate.validate || validate)(schema, options, { - name: 'Jison Loader', - baseDataPath: 'options', - }); - return new Generator(source, options).generate(); -}; diff --git a/.webpack/webpack.config.babel.js b/.webpack/webpack.config.babel.js deleted file mode 100644 index 15760b19b8..0000000000 --- a/.webpack/webpack.config.babel.js +++ /dev/null @@ -1,46 +0,0 @@ -import { merge, mergeWithCustomize, customizeObject } from 'webpack-merge'; -import nodeExternals from 'webpack-node-externals'; -import baseConfig from './webpack.config.base'; - -export default (_env, args) => { - return [ - // non-minified - merge(baseConfig, { - optimization: { - minimize: false, - }, - }), - // core [To be used by webpack/esbuild/vite etc to bundle mermaid] - merge(baseConfig, { - externals: [nodeExternals()], - output: { - filename: '[name].core.js', - }, - optimization: { - minimize: false, - }, - }), - // umd - merge(baseConfig, { - output: { - filename: '[name].min.js', - }, - }), - // esm - mergeWithCustomize({ - customizeObject: customizeObject({ - 'output.library': 'replace', - }), - })(baseConfig, { - experiments: { - outputModule: true, - }, - output: { - library: { - type: 'module', - }, - filename: '[name].esm.min.mjs', - }, - }), - ]; -}; diff --git a/.webpack/webpack.config.base.js b/.webpack/webpack.config.base.js deleted file mode 100644 index 3ebd1863d4..0000000000 --- a/.webpack/webpack.config.base.js +++ /dev/null @@ -1,71 +0,0 @@ -import path from 'path'; -const esbuild = require('esbuild'); -const { ESBuildMinifyPlugin } = require('esbuild-loader'); -export const resolveRoot = (...relativePath) => path.resolve(__dirname, '..', ...relativePath); - -export default { - amd: false, // https://github.com/lodash/lodash/issues/3052 - target: 'web', - entry: { - mermaid: './src/mermaid', - }, - resolve: { - extensions: ['.wasm', '.mjs', '.js', '.ts', '.json', '.jison'], - fallback: { - fs: false, // jison generated code requires 'fs' - path: require.resolve('path-browserify'), - }, - }, - output: { - path: resolveRoot('./dist'), - filename: '[name].js', - library: { - name: 'mermaid', - type: 'umd', - export: 'default', - }, - globalObject: 'typeof self !== "undefined" ? self : this', - }, - module: { - rules: [ - { - test: /\.ts$/, - use: 'ts-loader', - exclude: /node_modules/, - }, - { - test: /\.js$/, - include: [resolveRoot('./src'), resolveRoot('./node_modules/dagre-d3-renderer/lib')], - use: { - loader: 'esbuild-loader', - options: { - implementation: esbuild, - target: 'es2015', - }, - }, - }, - { - // load scss to string - test: /\.scss$/, - use: ['css-to-string-loader', 'css-loader', 'sass-loader'], - }, - { - test: /\.jison$/, - use: { - loader: path.resolve(__dirname, './loaders/jison.js'), - options: { - 'token-stack': true, - }, - }, - }, - ], - }, - devtool: 'source-map', - optimization: { - minimizer: [ - new ESBuildMinifyPlugin({ - target: 'es2015', - }), - ], - }, -}; diff --git a/.webpack/webpack.config.e2e.babel.js b/.webpack/webpack.config.e2e.babel.js deleted file mode 100644 index 7f26b8aed7..0000000000 --- a/.webpack/webpack.config.e2e.babel.js +++ /dev/null @@ -1,26 +0,0 @@ -import baseConfig, { resolveRoot } from './webpack.config.base'; -import { merge } from 'webpack-merge'; - -export default merge(baseConfig, { - mode: 'development', - entry: { - mermaid: './src/mermaid', - e2e: './cypress/platform/viewer.js', - 'bundle-test': './cypress/platform/bundle-test.js', - }, - output: { - globalObject: 'window', - }, - devServer: { - compress: true, - port: 9000, - static: [ - { directory: resolveRoot('cypress', 'platform') }, - { directory: resolveRoot('dist') }, - { directory: resolveRoot('demos') }, - ], - }, - externals: { - mermaid: 'mermaid', - }, -}); diff --git a/package.json b/package.json index 94c94ab1ac..cf8eab56bd 100644 --- a/package.json +++ b/package.json @@ -26,22 +26,20 @@ "clean": "rimraf dist", "build:code": "node .esbuild/esbuild.cjs", "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:webpack": "webpack --mode production --progress --color", "build:watch": "yarn build:code --watch", - "build:new": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:webpack", + "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", + "build": "yarn clean; yarn build:esbuild", + "dev": "node .esbuild/serve.cjs", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "ts-node-esm src/docs.mts --verify", "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md && yarn docs:build", "release": "yarn build", "lint": "eslint --cache --ignore-path .gitignore . && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "e2e:depr": "yarn lint && jest e2e --config e2e/jest.config.js", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", "e2e-upd": "yarn lint && jest e2e -u --config e2e/jest.config.js", - "dev": "webpack serve --config ./.webpack/webpack.config.e2e.babel.js", "ci": "jest src/.*", "test": "yarn lint && jest src/.*", "test:watch": "jest --watch src", @@ -89,6 +87,7 @@ "@commitlint/config-conventional": "^17.0.0", "@types/d3": "^7.4.0", "@types/dompurify": "^2.3.4", + "@types/express": "^4.17.13", "@types/jest": "^28.1.7", "@types/lodash": "^4.14.184", "@types/stylis": "^4.0.2", @@ -112,6 +111,7 @@ "eslint-plugin-jsdoc": "^39.3.6", "eslint-plugin-json": "^3.1.0", "eslint-plugin-markdown": "^3.0.0", + "express": "^4.18.1", "globby": "^13.1.2", "husky": "^8.0.0", "identity-obj-proxy": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 1967b28b18..ce417808e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3746,6 +3746,24 @@ body-parser@1.19.2: raw-body "2.4.3" type-is "~1.6.18" +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + 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" + body@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" @@ -4598,6 +4616,11 @@ cookie@0.4.2: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -5241,6 +5264,11 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -6269,6 +6297,43 @@ express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" +express@^4.18.1: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -6436,6 +6501,19 @@ filter-obj@^1.1.0: resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -9676,6 +9754,13 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -10319,6 +10404,13 @@ q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@6.9.7: version "6.9.7" resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" @@ -11065,6 +11157,25 @@ send@0.17.2: range-parser "~1.2.1" statuses "~1.5.0" +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + serialize-javascript@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -11095,6 +11206,16 @@ serve-static@1.14.2: parseurl "~1.3.3" send "0.17.2" +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" From ecd175dd38e22042bbe30452fee6d827ebc810ae Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Sep 2022 11:31:42 +0530 Subject: [PATCH 0023/1038] chore: Remove webpack & babel dependencies --- babel.config.js | 10 - package.json | 15 +- yarn.lock | 1264 ++--------------------------------------------- 3 files changed, 45 insertions(+), 1244 deletions(-) delete mode 100644 babel.config.js diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 1779657a2c..0000000000 --- a/babel.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - presets: [ - [ - '@babel/preset-env', - { - targets: 'defaults, ie >= 11, current node', - }, - ], - ], -}; diff --git a/package.json b/package.json index cf8eab56bd..e4ff645bc7 100644 --- a/package.json +++ b/package.json @@ -79,10 +79,6 @@ }, "devDependencies": { "@applitools/eyes-cypress": "^3.25.7", - "@babel/core": "^7.14.6", - "@babel/eslint-parser": "^7.14.7", - "@babel/preset-env": "^7.14.7", - "@babel/register": "^7.14.5", "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.0.0", "@types/d3": "^7.4.0", @@ -93,11 +89,8 @@ "@types/stylis": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", - "babel-jest": "^29.0.2", - "babel-loader": "^8.2.2", "concurrently": "^7.0.0", "coveralls": "^3.0.2", - "css-to-string-loader": "^0.1.3", "cypress": "9.7.0", "cypress-image-snapshot": "^4.0.1", "documentation": "13.2.0", @@ -128,17 +121,11 @@ "remark": "^14.0.2", "rimraf": "^3.0.2", "start-server-and-test": "^1.12.6", - "terser-webpack-plugin": "^5.3.6", "ts-jest": "^28.0.8", "ts-loader": "^9.3.1", "ts-node": "^10.9.1", "typescript": "^4.8.2", - "unist-util-flatmap": "^1.0.0", - "webpack": "^5.53.0", - "webpack-cli": "^4.7.2", - "webpack-dev-server": "^4.10.1", - "webpack-merge": "^5.8.0", - "webpack-node-externals": "^3.0.0" + "unist-util-flatmap": "^1.0.0" }, "resolutions": { "d3": "^7.0.0" diff --git a/yarn.lock b/yarn.lock index ce417808e9..8cfad7e723 100644 --- a/yarn.lock +++ b/yarn.lock @@ -266,7 +266,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.14.6": +"@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== @@ -287,15 +287,6 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/eslint-parser@^7.14.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz#255a63796819a97b7578751bb08ab9f2a375a031" - integrity sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ== - dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - "@babel/generator@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" @@ -1352,7 +1343,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.14.7": +"@babel/preset-env@^7.12.1": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== @@ -1470,17 +1461,6 @@ resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz#b6a0eca1a3b72e07f9caf58f998e97568028f6f5" integrity sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ== -"@babel/register@^7.14.5": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" - integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== - dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.5" - source-map-support "^0.5.16" - "@babel/runtime@^7.8.4": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" @@ -1726,11 +1706,6 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@discoveryjs/json-ext@^0.5.0": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" - integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== - "@es-joy/jsdoccomment@~0.31.0": version "0.31.0" resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz#dbc342cc38eb6878c12727985e693eaef34302bc" @@ -2032,27 +2007,6 @@ slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/transform@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.2.tgz#eef90ebd939b68bf2c2508d9e914377871869146" - integrity sha512-lajVQx2AnsR+Pa17q2zR7eikz2PkPs1+g/qPbZkqQATeS/s6eT55H+yHcsLfuI/0YQ/4VSBepSu3bOX+44q0aA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.0.2" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.0.2" - jest-regex-util "^29.0.0" - jest-util "^29.0.2" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - "@jest/types@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" @@ -2077,7 +2031,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -2096,14 +2050,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" @@ -2117,7 +2063,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -2125,11 +2071,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" - integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2270,13 +2211,6 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== - dependencies: - "@types/node" "*" - "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -2287,14 +2221,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - "@types/connect@*": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" @@ -2526,28 +2452,7 @@ dependencies: "@types/trusted-types" "*" -"@types/eslint-scope@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" - integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.2.1.tgz#13f3d69bac93c2ae008019c28783868d0a1d6605" - integrity sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": +"@types/express-serve-static-core@^4.17.18": version "4.17.27" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" integrity sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA== @@ -2556,7 +2461,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.13": +"@types/express@^4.17.13": version "4.17.13" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== @@ -2583,13 +2488,6 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/http-proxy@^1.17.8": - version "1.17.8" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" - integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== - dependencies: - "@types/node" "*" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" @@ -2631,7 +2529,7 @@ resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -2717,19 +2615,7 @@ dependencies: "@types/node" "*" -"@types/retry@^0.12.0": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== - -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": +"@types/serve-static@*": version "1.13.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== @@ -2747,13 +2633,6 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== - dependencies: - "@types/node" "*" - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2779,13 +2658,6 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@types/ws@^8.5.1": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== - dependencies: - "@types/node" "*" - "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -2974,154 +2846,6 @@ "@wdio/types" "7.16.11" p-iteration "^1.1.8" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - 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" - -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - 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" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - 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" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@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@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - 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" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" - integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== - -"@webpack-cli/info@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" - integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== - dependencies: - envinfo "^7.7.3" - -"@webpack-cli/serve@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - JSONSelect@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" @@ -3152,7 +2876,7 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -3168,11 +2892,6 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -3241,26 +2960,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3270,7 +2970,7 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.11.0, ajv@^8.8.0: +ajv@^8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== @@ -3297,11 +2997,6 @@ ansi-escapes@^4.1.0, ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - ansi-html@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -3420,11 +3115,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -3531,29 +3221,6 @@ babel-jest@^28.1.3: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.2.tgz#7efde496c07607949e9be499bf277aa1543ded95" - integrity sha512-yTu4/WSi/HzarjQtrJSwV+/0maoNt+iP0DmpvFJdv9yY+5BuNle8TbheHzzcSWj5gIHfuhpbLYHWRDYhWKyeKQ== - dependencies: - "@jest/transform" "^29.0.2" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.2" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-loader@^8.2.2: - version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" - integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -3582,16 +3249,6 @@ babel-plugin-jest-hoist@^28.1.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" - integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-polyfill-corejs2@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" @@ -3642,14 +3299,6 @@ babel-preset-jest@^28.1.3: babel-plugin-jest-hoist "^28.1.3" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" - integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== - dependencies: - babel-plugin-jest-hoist "^29.0.2" - babel-preset-current-node-syntax "^1.0.0" - babelify@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" @@ -3688,11 +3337,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -3700,11 +3344,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -3730,22 +3369,6 @@ bluebird@3.7.2, bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" - integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.7" - raw-body "2.4.3" - type-is "~1.6.18" - body-parser@1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" @@ -3774,16 +3397,6 @@ body@^5.1.0: raw-body "~1.1.0" safe-json-parse "~1.0.1" -bonjour-service@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.11.tgz#5418e5c1ac91c89a406f853a942e7892829c0d89" - integrity sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA== - dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.4" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3827,7 +3440,7 @@ browser-resolve@^1.7.0: dependencies: resolve "1.1.7" -browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.21.0: +browserslist@^4.20.2, browserslist@^4.21.0: version "4.21.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== @@ -3884,11 +3497,6 @@ bytes@1: resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -4064,7 +3672,7 @@ check-more-types@2.24.0, check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= -chokidar@^3.4.0, chokidar@^3.5.3: +chokidar@^3.4.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4079,11 +3687,6 @@ chokidar@^3.4.0, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - ci-info@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" @@ -4171,15 +3774,6 @@ clone-buffer@^1.0.0: resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -4253,7 +3847,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.17: +colorette@^2.0.16, colorette@^2.0.17: version "2.0.17" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.17.tgz#5dd4c0d15e2984b7433cb4a9f2ead45063b80c47" integrity sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g== @@ -4280,16 +3874,11 @@ comma-separated-tokens@^1.0.1: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@7, commander@^7.0.0: +commander@7: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -4310,11 +3899,6 @@ common-tags@^1.8.0: resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -4336,26 +3920,6 @@ compress-brotli@^1.3.8: "@types/json-buffer" "~3.0.0" json-buffer "~3.0.1" -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -4405,11 +3969,6 @@ concurrently@^7.0.0: tree-kill "^1.2.2" yargs "^17.3.1" -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -4611,11 +4170,6 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - cookie@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" @@ -4696,13 +4250,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-to-string-loader@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/css-to-string-loader/-/css-to-string-loader-0.1.3.tgz#c937175f2ec783969aefe14a4fba055f7b4f9562" - integrity sha1-yTcXXy7Hg5aa7+FKT7oFX3tPlWI= - dependencies: - loader-utils "^0.2.15" - css-tree@1.0.0-alpha.39: version "1.0.0-alpha.39" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" @@ -5176,23 +4723,11 @@ deepmerge@^4.0.0, deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -5254,7 +4789,7 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@^1.1.2, depd@~1.1.2: +depd@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -5269,11 +4804,6 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - detab@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" @@ -5291,11 +4821,6 @@ detect-newline@^3.0.0, detect-newline@^3.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - detective@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" @@ -5327,18 +4852,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" - integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - doctrine-temporary-fork@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz#36f2154f556ee4f1e60311d391cd23de5187ed57" @@ -5547,11 +5060,6 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -5569,7 +5077,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: +enhanced-resolve@^5.0.0: version "5.10.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== @@ -5589,11 +5097,6 @@ entities@^4.2.0, entities@^4.3.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== -envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -5608,11 +5111,6 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - esbuild-android-64@0.14.54: version "0.14.54" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" @@ -5993,7 +5491,7 @@ eslint-plugin-markdown@^3.0.0: dependencies: mdast-util-from-markdown "^0.8.5" -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -6016,7 +5514,7 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: +eslint-visitor-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== @@ -6157,16 +5655,6 @@ eventemitter2@^6.4.3: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - execa@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -6261,42 +5749,6 @@ expect@^28.0.0, expect@^28.1.3: jest-message-util "^28.1.3" jest-util "^28.1.3" -express@^4.17.3: - version "4.17.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" - integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.19.2" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.4.2" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.9.7" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" - setprototypeof "1.2.0" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - express@^4.18.1: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" @@ -6410,7 +5862,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -6420,11 +5872,6 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== - fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" @@ -6432,13 +5879,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -6514,37 +5954,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - 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" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -6596,7 +6005,7 @@ flush-write-stream@^1.0.2: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.8: +follow-redirects@^1.14.0, follow-redirects@^1.14.8: version "1.15.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== @@ -6703,11 +6112,6 @@ fs-mkdirp-stream@^1.0.0: graceful-fs "^4.1.11" through2 "^2.0.3" -fs-monkey@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -6929,11 +6333,6 @@ glob-stream@^6.1.0: to-absolute-glob "^2.0.0" unique-stream "^2.0.2" -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -7022,7 +6421,7 @@ got@^11.0.2, got@^11.8.1: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -7039,11 +6438,6 @@ graphlib@^2.1.8: dependencies: lodash "^4.17.15" -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - handlebars@^4.7.6: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" @@ -7204,16 +6598,6 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - html-encoding-sniffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" @@ -7221,11 +6605,6 @@ html-encoding-sniffer@^3.0.0: dependencies: whatwg-encoding "^2.0.0" -html-entities@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" - integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -7251,22 +6630,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -7278,16 +6641,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-parser-js@>=0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" @@ -7311,26 +6664,6 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -http-proxy-middleware@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz#03af0f4676d172ae775cb5c33f592f40e1a4e07a" - integrity sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -7462,11 +6795,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -7482,11 +6810,6 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== - ip@^1.1.5: version "1.1.8" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" @@ -7497,11 +6820,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -7615,11 +6933,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -7711,11 +7024,6 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - is-plain-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" @@ -7811,13 +7119,6 @@ is-word-character@^1.0.0: resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -8065,25 +7366,6 @@ jest-haste-map@^28.1.3: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.2.tgz#cac403a595e6e43982c9776b5c4dae63e38b22c5" - integrity sha512-SOorh2ysQ0fe8gsF4gaUDhoMIWAvi2hXOkwThEO48qT3JqA8GLAUieQcIvdSEd6M0scRDe1PVmKc5tXR3Z0U0A== - dependencies: - "@jest/types" "^29.0.2" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.0.0" - jest-util "^29.0.2" - jest-worker "^29.0.2" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-image-snapshot@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz#559d7ade69e9918517269cef184261c80029a69e" @@ -8173,11 +7455,6 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-regex-util@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" - integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== - jest-resolve-dependencies@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" @@ -8335,15 +7612,6 @@ jest-watcher@^28.1.3: jest-util "^28.1.3" string-length "^4.0.1" -jest-worker@^27.4.5: - version "27.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.0.tgz#99ee77e4d06168107c27328bd7f54e74c3a48d59" - integrity sha512-8OEHiPNOPTfaWnJ2SUHM8fmgeGq37uuGsQBvGKQJl1f+6WIy6g7G3fE2ruI5294bUKUI9FaCWt5hDvO8HSwsSg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" @@ -8353,15 +7621,6 @@ jest-worker@^28.1.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.2.tgz#46c9f2cb9a19663d22babbacf998e4b5d7c46574" - integrity sha512-EyvBlYcvd2pg28yg5A3OODQnqK9LI1kitnGUZUG5/NYIeaRgewtYBKB5wlr7oXj8zPCkzev7EmnTCsrXK7V+Xw== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest@^28.0.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" @@ -8503,7 +7762,7 @@ json-parse-better-errors@^1.0.1: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -8533,11 +7792,6 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" @@ -8779,21 +8033,6 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== - -loader-utils@^0.2.15: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - loader-utils@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" @@ -8925,15 +8164,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -9109,13 +8340,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memfs@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" - integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== - dependencies: - fs-monkey "1.0.3" - meow@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -9375,7 +8599,7 @@ micromatch@^3.1.5: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: +micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -9383,12 +8607,12 @@ micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -9430,11 +8654,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -9528,14 +8747,6 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.4: - version "7.2.4" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.4.tgz#cf0b115c31e922aeb20b64e6556cbeb34cf0dd19" - integrity sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -9563,7 +8774,7 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.6.0, neo-async@^2.6.2: +neo-async@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -9585,11 +8796,6 @@ node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0: dependencies: whatwg-url "^5.0.0" -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -9701,7 +8907,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -9749,11 +8955,6 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -9761,18 +8962,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -9794,15 +8983,6 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@^8.0.9: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -9910,14 +9090,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-retry@^4.5.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" - integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== - dependencies: - "@types/retry" "^0.12.0" - retry "^0.13.1" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -10047,7 +9219,7 @@ parse5@^7.0.0: dependencies: entities "^4.3.0" -parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -10173,17 +9345,12 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - pify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pirates@^4.0.4, pirates@^4.0.5: +pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== @@ -10202,7 +9369,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -10411,11 +9578,6 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@6.9.7: - version "6.9.7" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" - integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== - qs@^6.4.0: version "6.10.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe" @@ -10460,28 +9622,11 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" - integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== - dependencies: - bytes "3.1.2" - http-errors "1.8.1" - iconv-lite "0.4.24" - unpipe "1.0.0" - raw-body@2.5.1, raw-body@^2.2.0: version "2.5.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" @@ -10559,7 +9704,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -10613,13 +9758,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== - dependencies: - resolve "^1.9.0" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -10891,11 +10029,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -10947,7 +10080,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1, resolve@^1.9.0: +resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -10975,11 +10108,6 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -11035,16 +10163,16 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-json-parse@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" @@ -11076,47 +10204,7 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.8.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" - integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== - dependencies: - node-forge "^1" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -11138,25 +10226,6 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "1.8.1" - mime "1.6.0" - ms "2.1.3" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -11176,36 +10245,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.2" - serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -11231,23 +10270,11 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -11367,15 +10394,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - socks-proxy-agent@5, socks-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" @@ -11417,14 +10435,6 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" @@ -11483,29 +10493,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -11623,11 +10610,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - stream-array@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/stream-array/-/stream-array-1.1.2.tgz#9e5f7345f2137c30ee3b498b9114e80b52bb7eb5" @@ -11856,7 +10838,7 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -tapable@^2.1.1, tapable@^2.2.0: +tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== @@ -11877,27 +10859,6 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.6: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== - 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" - -terser@^5.14.1: - version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" - integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -11955,11 +10916,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.8, through@~2.3, through@~2.3.1: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - tiny-lr@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" @@ -12763,21 +11719,6 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - webdriver@7.16.11: version "7.16.11" resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-7.16.11.tgz#3d031478aa4f4acd84c34f47ae64bdf913933988" @@ -12803,83 +11744,6 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-cli@^4.7.2: - version "4.10.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" - integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.2.0" - "@webpack-cli/info" "^1.5.0" - "@webpack-cli/serve" "^1.7.0" - colorette "^2.0.14" - commander "^7.0.0" - cross-spawn "^7.0.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f" - integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== - dependencies: - colorette "^2.0.10" - memfs "^3.4.1" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.10.1.tgz#124ac9ac261e75303d74d95ab6712b4aec3e12ed" - integrity sha512-FIzMq3jbBarz3ld9l7rbM7m6Rj1lOsgq/DyLGMX/fPEB1UBUPtf5iL/4eNfhx8YYJTRlzfv107UfWSWcBK5Odw== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.0.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.4.2" - -webpack-merge@^5.7.3, webpack-merge@^5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-node-externals@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" - integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== - webpack-sources@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" @@ -12888,42 +11752,7 @@ webpack-sources@^2.2.0: source-list-map "^2.0.1" source-map "^0.6.1" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@^5.53.0: - version "5.74.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" - integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== - 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" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: +websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -12997,11 +11826,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== - word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -13053,7 +11877,7 @@ ws@8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^8.2.3, ws@^8.4.2, ws@^8.8.0: +ws@^8.2.3, ws@^8.8.0: version "8.8.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== From bbaf2c2f2084bc774a122990318854764fb9d084 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Sep 2022 11:32:39 +0530 Subject: [PATCH 0024/1038] chore: cleanup --- src/utils.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index 52b6f475f7..097980d8c4 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -168,8 +168,6 @@ export const detectDirective = function (text, type = null) { }; /** - * > > > > > > > Develop - * * @function isSubstringInArray Detects whether a substring in present in a given array * @param {string} str The substring to detect * @param {Array} arr The array to search From e7ac2368c3ec03898e8e90654c095ccc836a81b1 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Sep 2022 12:46:14 +0530 Subject: [PATCH 0025/1038] Add local jison linting --- .github/workflows/lint.yml | 15 --------------- .lintstagedrc.json | 3 ++- package.json | 4 +++- src/jison/lint.mts | 31 +++++++++++++++++++++++++++++++ yarn.lock | 18 ++++++++++++++++++ 5 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 src/jison/lint.mts diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e567aba899..44e2f4cb1d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -40,18 +40,3 @@ jobs: - name: Verify Docs run: yarn docs:verify - - - name: Check no `console.log()` in .jison files - # ESLint can't parse .jison files directly - # In the future, it might be worth making a `eslint-plugin-jison`, so - # that this will be built into the `yarn lint` command. - run: | - shopt -s globstar - mkdir -p tmp/ - for jison_file in src/**/*.jison; do - outfile="tmp/$(basename -- "$jison_file" .jison)-jison.js" - echo "Converting $jison_file to $outfile" - # default module-type (CJS) always adds a console.log() - yarn jison "$jison_file" --outfile "$outfile" --module-type "amd" - done - yarn eslint --no-eslintrc --rule no-console:error --parser "@babel/eslint-parser" "./tmp/*-jison.js" diff --git a/.lintstagedrc.json b/.lintstagedrc.json index db16ea99ae..c53b7f626e 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,4 +1,5 @@ { "src/docs/**": ["yarn docs:build --git"], - "*.{ts,js,json,html,md}": ["eslint --fix", "prettier --write"] + "*.{ts,js,json,html,md}": ["eslint --fix", "prettier --write"], + "*.jison": ["yarn lint:jison"] } diff --git a/package.json b/package.json index e4ff645bc7..91d0008329 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,9 @@ "docs:verify": "ts-node-esm src/docs.mts --verify", "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md && yarn docs:build", "release": "yarn build", - "lint": "eslint --cache --ignore-path .gitignore . && prettier --check .", + "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", + "lint:jison": "ts-node-esm src/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", @@ -83,6 +84,7 @@ "@commitlint/config-conventional": "^17.0.0", "@types/d3": "^7.4.0", "@types/dompurify": "^2.3.4", + "@types/eslint": "^8.4.6", "@types/express": "^4.17.13", "@types/jest": "^28.1.7", "@types/lodash": "^4.14.184", diff --git a/src/jison/lint.mts b/src/jison/lint.mts new file mode 100644 index 0000000000..6e17851f70 --- /dev/null +++ b/src/jison/lint.mts @@ -0,0 +1,31 @@ +/* eslint-disable no-console */ +import { readFile } from 'fs/promises'; +import { globby } from 'globby'; +import { ESLint } from 'eslint'; +// @ts-ignore no typings +import jison from 'jison'; + +const linter = new ESLint({ + overrideConfig: { rules: { 'no-console': 'error' }, parser: '@typescript-eslint/parser' }, + useEslintrc: false, +}); + +const lint = async (file: string): Promise => { + const jisonCode = await readFile(file, 'utf8'); + // @ts-ignore no typings + const jsCode = new jison.Generator(jisonCode, { moduleType: 'amd' }).generate(); + const [result] = await linter.lintText(jsCode); + if (result.errorCount > 0) { + console.error(`Linting failed for ${file}`); + console.error(result.messages); + } + return result.errorCount === 0; +}; + +(async () => { + const jisonFiles = await globby(['./src/**/*.jison'], { dot: true }); + const lintResults = await Promise.all(jisonFiles.map(lint)); + if (lintResults.some((result) => result === false)) { + process.exit(1); + } +})(); diff --git a/yarn.lock b/yarn.lock index 8cfad7e723..61ea963335 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2452,6 +2452,19 @@ dependencies: "@types/trusted-types" "*" +"@types/eslint@^8.4.6": + version "8.4.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207" + integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + "@types/express-serve-static-core@^4.17.18": version "4.17.27" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" @@ -2529,6 +2542,11 @@ resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== +"@types/json-schema@*": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" From 94868e48cbae69500c0a0d7418468154f9551e64 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Sep 2022 12:46:29 +0530 Subject: [PATCH 0026/1038] ESM test --- demos/er.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/er.html b/demos/er.html index 0f376bf9ec..5bccb212ec 100644 --- a/demos/er.html +++ b/demos/er.html @@ -23,7 +23,7 @@ CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - + - + + - + + diff --git a/cypress/platform/xss.html b/cypress/platform/xss.html index 4c0fc91ea4..2d3661a4e8 100644 --- a/cypress/platform/xss.html +++ b/cypress/platform/xss.html @@ -1,6 +1,6 @@ - + diff --git a/vdocs/intro/directives.md b/vdocs/intro/directives.md new file mode 100644 index 0000000000..b96a2184cb --- /dev/null +++ b/vdocs/intro/directives.md @@ -0,0 +1,254 @@ +# Directives + +## Directives + +Directives gives a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration. + +The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram specific configurations. So, directives are applied on top of the default configurations. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level. + +While directives allow you to change most of the default configuration settings, there are some that are not available, that too for security reasons. Also, you do have the _option to define the set of configurations_ that you would allow to be available to the diagram author for overriding with help of directives. + +## Types of Directives options + +Mermaid basically supports two types of configuration options to be overridden by directives. + +1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are: + +- theme +- fontFamily +- logLevel +- securityLevel +- startOnLoad +- secure + +2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves. + For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type. + +**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code. + +``` +Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs +``` + +## Declaring directives + +Now that we have defined the types of configurations that are available, we can learn how to declare directives. +A directive always starts and end `%%` sign with directive text in between, like `%% {directive_text} %%`. + +Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section. + +Following code snippet shows the structure of a directive: + +``` +%%{ + init: { + "theme": "dark", + "fontFamily": "monospace", + "logLevel": "info", + "flowchart": { + "htmlLabels": true, + "curve": "linear" + }, + "sequence": { + "mirrorActors": true + } + } +}%% +``` + +You can also define the directives in a single line, like this: + +``` +%%{init: { **insert argument here**}}%% +``` + +For example, the following code snippet: + +``` +%%{init: { "sequence": { "mirrorActors":false }}}%% +``` + +**Notes:** +The json object that is passed as {**argument** } must be valid key value pairs and encased in quotation marks or it will be ignored. +Valid Key Value pairs can be found in config. + +Example with a simple graph: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% +graph LR +A-->B +``` + +Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself. + +Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means: + +```mmd +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% +%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% +... +``` + +parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: + +```json +{ + "logLevel": "fatal", + "theme": "dark", + "startOnLoad": true +} +``` + +This will then be sent to `mermaid.initialize(...)` for rendering. + +## Directive Examples + +More directive examples for diagram specific configuration overrides +Now that the concept of directives has been explained, Let us see some more examples for directives usage: + +### Changing Theme via directive + +The following code snippet changes theme to forest: + +`%%{init: { "theme": "forest" } }%%` + +Possible themes value are: `default`,`base`, `dark`, `forest` and `neutral`. +Default Value is `default`. + +Example: + +```mermaid-example +%%{init: { "theme": "forest" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +### Changing fontFamily via directive + +The following code snippet changes fontFamily to rebuchet MS, Verdana, Arial, Sans-Serif: + +`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%` + +Example: + +```mermaid-example +%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing logLevel via directive + +The following code snippet changes logLevel to 2: + +`%%{init: { "logLevel": 2 } }%%` + +Possible logLevel values are: + +- `1` for _debug_, +- `2` for _info_ +- `3` for _warn_ +- `4` for _error_ +- `5` for _only fatal errors_ + +Default Value is `5`. + +Example: + +```mermaid-example +%%{init: { "logLevel": 2 } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing flowchart config via directive + +Some common flowchart configurations are: + +- _htmlLabels_: true/false +- _curve_: linear/curve +- _diagramPadding_: number +- _useMaxWidth_: number + +For complete list of flowchart configurations, see [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code. +_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ + +The following code snippet changes flowchart config: + +`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%` + +Here were are overriding only the flowchart config, and not the general config, where HtmlLabels is set to true and curve is set to linear. + +```mermaid-example +%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing Sequence diagram config via directive + +Some common sequence configurations are: + +- _width_: number +- _height_: number +- _messageAlign_: left, center, right +- _mirrorActors_: boolean +- _useMaxWidth_: boolean +- _rightAngles_: boolean +- _showSequenceNumbers_: boolean +- _wrap_: boolean + +For complete list of sequence diagram configurations, see _defaultConfig.js_ in the source code. +_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ + +So, `wrap` by default has a value of `false` for sequence diagrams. + +Let us see an example: + +```mermaid-example +sequenceDiagram + +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +Now let us enable wrap for sequence diagrams. + +The following code snippet changes sequence diagram config for `wrap` to `true`: + +`%%{init: { "sequence": { "wrap": true} } }%%` + +Using in the diagram above, the wrap will be enabled. + +```mermaid-example +%%{init: { "sequence": { "wrap": true, "width":300 } } }%% +sequenceDiagram +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` diff --git a/vdocs/intro/img/Code-Preview-Config.png b/vdocs/intro/img/Code-Preview-Config.png new file mode 100644 index 0000000000000000000000000000000000000000..426e6bf63304aba149b046e6e7c78f58dcbaf1ee GIT binary patch literal 148873 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≦O_^+~1=%YCo=H`jgY~#| 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

    KB*h9!e*iWSe7ty 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

    W1Ig~ z?qeWLoAmx|3w?9^G-fG~n!jmT3`o?c;f!(K22S{#&$#)`XQkE*2+1D!#0b4P_W{7% z7_^dArkcY6@dzU{;<1;deV$M1f>`T(j`~O2*l@fn3(jXEt$f5HyUTUYGUGL2ab8sB zJBU!uz^p1iefl;(pNHb|Whn~jOyI3ynUAB?7Vj&L@XOb_dAexj028z@R6*&vH!yO{ z^7j)22#%bA&zx2>=KWtkB`hd}rrNJ~Hx&p~$jrYXx|P(`PXRk_IaHnq@95!kD~D5= z!e(t!PN&qG2sXlfFg1*jkN3YS8L&CrcbUZFrNGE%*c@R3L|W0kZ&B6(QI}29np!

    =y=yYzYG7cCpc!G8_w~(LwT&0#Zel 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

    lEX$px{cOh$5Q+B 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 C;wEkY literal 0 HcmV?d00001 diff --git a/vdocs/intro/img/book-banner-post-release.jpg b/vdocs/intro/img/book-banner-post-release.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ce3cc6fc7fc025b55f357403f572a6860d17625 GIT binary patch literal 75158 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%0A0K`3D|4*_4WyPt)PO+ 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 If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](./n00b-syntaxReference.md). + + + +[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) + + + +[![Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!](img/book-banner-post-release.jpg)](https://mermaid-js.github.io/mermaid/landing/) + + + +Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. + +> Doc-Rot is a Catch-22 that Mermaid helps to solve. + +Diagramming and documentation costs precious developer time and gets outdated quickly. +But not having diagrams or docs ruins productivity and hurts organizational learning.
    +Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).
    +
    +Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    +[Tutorials](../config/Tutorials.md) has video tutorials. +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). + +For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). + +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/docs/development.md) | 📜 [Version Log](../community/CHANGELOG.md) | 🔌 [Plug-Ins](../misc/integrations.md) + +::: warning 🖖 +Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). +::: + +:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!!** + +**Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project 🙏** + +In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. + +
    + + + +## Diagram Types + +### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) + +```mmd +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +### [Sequence diagram](../syntax/sequenceDiagram.md) + +```mmd +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
    prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
    prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +### [Gantt diagram](../syntax/gantt.md) + +```mmd +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram to mermaid + excludes weekdays 2014-01-10 + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d +``` + +```mermaid +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram to mermaid + excludes weekdays 2014-01-10 + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d +``` + +### [Class diagram](../syntax/classDiagram.md) + +```mmd +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +``` + +```mermaid +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +``` + +### Git graph + +```mmd + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +```mermaid + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) + +```mmd +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +```mermaid +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +### [User Journey Diagram] (../syntax/userjourney.md) + +```mmd +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +```mermaid +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +## Installation + +**In depth guides and examples can be found at [Getting Started](n00b-gettingStarted) and [Usage](../config/usage).** + +**It would also be helpful to learn more about mermaid's [Syntax](n00b-syntaxReference).** + +### CDN + +``` +https://unpkg.com/mermaid@/dist/ +``` + +To select a version: + +Replace `` with the desired version number. + +Latest Version: [https://unpkg.com/browse/mermaid@8.8.0/](https://unpkg.com/browse/mermaid@8.8.0/) + +## Deploying Mermaid + +To Deploy Mermaid: + +1. You will need to install node v16, which would have npm +2. Download yarn using npm +3. Enter the following command: `yarn add mermaid` +4. You can then add mermaid as a dev dependency using this command: + `yarn add --dev mermaid` + +### [Mermaid API](../config/Setup.md): + +**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaidAPI` call into the HTML like so:** + +```html + + +``` + +**Doing so will command the mermaid parser to look for the `

    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.** + +**Examples can be found at** [Other examples](../syntax/examples) + +## Sibling projects + +- [Mermaid Live Editor](https://github.com/mermaid-js/mermaid-live-editor) +- [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli) +- [Mermaid Webpack Demo](https://github.com/mermaidjs/mermaid-webpack-demo) +- [Mermaid Parcel Demo](https://github.com/mermaidjs/mermaid-parcel-demo) + +## Request for Assistance + +Things are piling up and I have a hard time keeping up. It would be great if we could form a core team of developers to cooperate +with the future development of mermaid. + +As part of this team you would get write access to the repository and would +represent the project when answering questions and issues. + +Together we could continue the work with things like: + +- Adding more types of diagrams like mindmaps, ert diagrams, etc. +- Improving existing diagrams + +Don't hesitate to contact me if you want to get involved! + +## For contributors + +### Setup + +```sh +yarn install +``` + +### Build + +```sh +yarn build:watch +``` + +### Lint + +```sh +yarn lint +``` + +We use [eslint](https://eslint.org/). +We recommend you to install [editor plugins](https://eslint.org/docs/user-guide/integrations) to get real time lint result. + +### Test + +```sh +yarn test +``` + +Manual test in browser: open `dist/index.html` + +### Release + +For those who have the permission to do so: + +Update version number in `package.json`. + +```sh +npm publish +``` + +The above command generates files into the `dist` folder and publishes them to npmjs.org. + +## Related projects + +- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) +- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) +- [HTTP Server](https://github.com/TomWright/mermaid-server) + +## Contributors + +[![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) + +Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out. + +Detailed information about how to contribute can be found in the [contribution guide](#) + +## Security and safe diagrams + +For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. + +As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security. + +_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._ + +## Reporting vulnerabilities + +To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. + +## Appreciation + +A quick note from Knut Sveidqvist: + +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> +> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ + +--- + +_Mermaid was created by Knut Sveidqvist for easier documentation._ + + diff --git a/vdocs/intro/n00b-gettingStarted.md b/vdocs/intro/n00b-gettingStarted.md new file mode 100644 index 0000000000..14b49057e6 --- /dev/null +++ b/vdocs/intro/n00b-gettingStarted.md @@ -0,0 +1,216 @@ +# A Mermaid User-Guide for Beginners + +Mermaid is composed of three parts: Deployment, Syntax and Configuration. + +This section talks about the different ways to deploy Mermaid. Learning the [Syntax](./n00b-syntaxReference.md) would be of great help to the beginner. + +> Generally the live editor is enough for most general uses of mermaid, and is a good place to start learning. + +**Absolute beginners are advised to view the Video [Tutorials](../config/Tutorials.md) on the Live Editor, to gain a better understanding of mermaid.** + +## Four ways of using mermaid: + +1. Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live). +2. Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with. +3. Calling the Mermaid JavaScript API. +4. Deploying Mermaid as a dependency. + +**Note: It is our recommendation that you review all approaches, and choose the one that is best for your project.** + +> More in depth information can be found at [Usage](../config/usage). + +## 1. Using the Live Editor + +Available at [mermaid.live](https://mermaid.live) + +```mermaid +graph TD + A[Enter Chart Definition] --> B(Preview) + B --> C{decide} + C --> D[Keep] + C --> E[Edit Definition] + E --> B + D --> F[Save Image and Code] + F --> B +``` + +In the `Code` section one can write or edit raw mermaid code, and instantly `Preview` the rendered result on the panel beside it. + +The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](../config/n00b-advanced) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](../config/Setup) page. + +![Code,Config and Preview](./img/Code-Preview-Config.png) + +### Editing History + +Your code will be autosaved every minute into the Timeline tab of History which shows the most recent 30 items. + +You can manually save code by clicking the Save icon in the History section. It can also be accessed in the Saved tab. This is stored in the browser storage only. + +### Saving a Diagram: + +You may choose any of the methods below, to save it + +**We recommend that you save your diagram code on top of any method you choose, in order to make edits and modifications further down the line.** + +![Flowchart](./img/Live-Editor-Choices.png) + +### Editing your diagrams + +Editing is as easy as pasting your **Diagram code**, into the `code` section of the `Live Editor`. + +### Loading from Gists + +The Gist you create should have a code.mmd file and optionally a config.json. [Example](https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a) + +To load a gist into the Editor, you can use https://mermaid.live/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a + +and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a + +## 2. Using Mermaid Plugins: + +You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations). + +**This is covered in greater detail in the [Usage section](../config/usage)** + +## 3. Calling the JavaScript API + +This method can be used with any common web server like Apache, IIS, nginx, node express. + +You will also need a text editing tool like Notepad++ to generate a .html file. It is then deployed by a web browser (such as Firefox, Chrome, Safari, but not Internet Explorer). + +The API works by pulling rendering instructions from the source `mermaid.js` in order to render diagrams on the page. + +### Requirements for the Mermaid API. + +When writing the .html file, we give three instructions inside the html code to the web browser: + +a. A reference for fetching the online mermaid renderer, through the `mermaid.js` or `mermaid.min.js`. + +b. The mermaid code for the diagram we want to create. + +c. The `mermaid.initialize()` call, which dictates the appearance of diagrams and also starts the rendering process . + +**a. A reference to the external CDN in a ` + +``` + +**b. The embedded mermaid diagram definition inside a `
    `:**
    +
    +```html
    +
    +  Here is a mermaid diagram:
    +  
    +        graph TD 
    +        A[Client] --> B[Load Balancer] 
    +        B --> C[Server01] 
    +        B --> D[Server02]
    +  
    + +``` + +**Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
    ` tags.
    +
    +**c. The `mermaid.initialize()` call.**
    +
    +`mermaid.initialize()` call takes all the definitions contained in all the `
    ` tags that it finds in the html body and renders them into diagrams. Example:
    +
    +```html
    +
    +  
    +
    +```
    +
    +**Notes**:
    +Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.min.js` for brevity. However, doing the opposite lets you control when it starts looking for `
    `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
    ` tags may have loaded on the execution of `mermaid.min.js` file. + +`startOnLoad` is one of the parameters that can be defined by `mermaid.initialize()` + +| Parameter | Description | Type | Values | +| ----------- | --------------------------------- | ------- | ----------- | +| startOnLoad | Toggle for Rendering upon loading | Boolean | true, false | + +### Working Examples + +**Here is a full working example of the mermaidAPI being called through the CDN:** + +```html + + + + + + Here is one mermaid diagram: +
    +            graph TD 
    +            A[Client] --> B[Load Balancer] 
    +            B --> C[Server1] 
    +            B --> D[Server2]
    +    
    + + And here is another: +
    +            graph TD 
    +            A[Client] -->|tcp_123| B
    +            B(Load Balancer) 
    +            B -->|tcp_456| C[Server1] 
    +            B -->|tcp_456| D[Server2]
    +    
    + + +``` + +**Another Option:** +In this example mermaid.js is referenced in `src` as a separate JavaScript file, in an example Path. + +```html + + + + + +
    +            graph LR 
    +            A --- B 
    +            B-->C[fa:fa-ban forbidden] 
    +            B-->D(fa:fa-spinner);
    +    
    +
    +            graph TD 
    +            A[Client] --> B[Load Balancer] 
    +            B --> C[Server1] 
    +            B --> D[Server2]
    +    
    + + + + +``` + +--- + +## 4. Adding Mermaid as a dependency. + +1. install node v16, which would have npm + +2. download yarn using npm by entering the command below: + npm install -g yarn + +3. After yarn installs, enter the following command: + yarn add mermaid + +4. To add Mermaid as a Dev Dependency + yarn add --dev mermaid + +**Comments from Knut Sveidqvist, creator of mermaid:** + +- In early versions of mermaid, the ` +``` + +```mermaid +classDiagram + class Class01 + class Class02 + callback Class01 "callbackFunction" "Callback tooltip" + link Class02 "https://www.github.com" "This is a link" + class Class03 + class Class04 + click Class03 call callbackFunction() "Callback tooltip" + click Class04 href "https://www.github.com" "This is a link" +``` + +> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. + +Beginner's tip—a full example using interactive links in an HTML page: + +```html + +
    +    classDiagram
    +    Animal <|-- Duck
    +    Animal <|-- Fish
    +    Animal <|-- Zebra
    +    Animal : +int age
    +    Animal : +String gender
    +    Animal: +isMammal()
    +    Animal: +mate()
    +    class Duck{
    +      +String beakColor
    +      +swim()
    +      +quack()
    +      }
    +    class Fish{
    +      -int sizeInFeet
    +      -canEat()
    +      }
    +    class Zebra{
    +      +bool is_wild
    +      +run()
    +      }
    +
    +      callback Duck callback "Tooltip"
    +      link Zebra "https://www.github.com" "This is a link"
    +  
    + + + +``` + +## Styling + +### Styling a node + +It is possible to apply specific styles such as a thicker border or a different background color to individual nodes. This is done by predefining classes in css styles that can be applied from the graph definition: + +```html + +``` + +Then attaching that class to a specific node: + +``` + cssClass "nodeId1" cssClass; +``` + +It is also possible to attach a class to a list of nodes in one statement: + +``` + cssClass "nodeId1,nodeId2" cssClass; +``` + +A shorter form of adding a class is to attach the classname to the node using the `:::` operator: + +```mmd +classDiagram + class Animal:::cssClass +``` + +Or: + +```mmd +classDiagram + class Animal:::cssClass { + -int sizeInFeet + -canEat() + } +``` + +?> cssClasses cannot be added using this shorthand method at the same time as a relation statement. + +?> Due to limitations with existing markup for class diagrams, it is not currently possible to define css classes within the diagram itself. **_Coming soon!_** + +### Default Styles + +The main styling of the class diagram is done with a preset number of css classes. During rendering these classes are extracted from the file located at src/themes/class.scss. The classes used here are described below: + +| Class | Description | +| ------------------ | ----------------------------------------------------------------- | +| g.classGroup text | Styles for general class text | +| classGroup .title | Styles for general class title | +| g.classGroup rect | Styles for class diagram rectangle | +| g.classGroup line | Styles for class diagram line | +| .classLabel .box | Styles for class label box | +| .classLabel .label | Styles for class label text | +| composition | Styles for composition arrow head and arrow line | +| aggregation | Styles for aggregation arrow head and arrow line(dashed or solid) | +| dependency | Styles for dependency arrow head and arrow line | + +#### Sample stylesheet + +```scss +body { + background: white; +} + +g.classGroup text { + fill: $nodeBorder; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; + font-family: var(--mermaid-font-family); + font-size: 10px; + + .title { + font-weight: bolder; + } +} + +g.classGroup rect { + fill: $nodeBkg; + stroke: $nodeBorder; +} + +g.classGroup line { + stroke: $nodeBorder; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: $nodeBkg; + opacity: 0.5; +} + +.classLabel .label { + fill: $nodeBorder; + font-size: 10px; +} + +.relation { + stroke: $nodeBorder; + stroke-width: 1; + fill: none; +} + +@mixin composition { + fill: $nodeBorder; + stroke: $nodeBorder; + stroke-width: 1; +} + +#compositionStart { + @include composition; +} + +#compositionEnd { + @include composition; +} + +@mixin aggregation { + fill: $nodeBkg; + stroke: $nodeBorder; + stroke-width: 1; +} + +#aggregationStart { + @include aggregation; +} + +#aggregationEnd { + @include aggregation; +} + +#dependencyStart { + @include composition; +} + +#dependencyEnd { + @include composition; +} + +#extensionStart { + @include composition; +} + +#extensionEnd { + @include composition; +} +``` + +## Configuration + +`Coming soon` diff --git a/vdocs/syntax/entityRelationshipDiagram.md b/vdocs/syntax/entityRelationshipDiagram.md new file mode 100644 index 0000000000..341c9147c4 --- /dev/null +++ b/vdocs/syntax/entityRelationshipDiagram.md @@ -0,0 +1,188 @@ +# Entity Relationship Diagrams + +> An entity–relationship model (or ER model) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between entities (instances of those entity types). Wikipedia. + +Note that practitioners of ER modelling almost always refer to _entity types_ simply as _entities_. For example the `CUSTOMER` entity _type_ would be referred to simply as the `CUSTOMER` entity. This is so common it would be inadvisable to do anything else, but technically an entity is an abstract _instance_ of an entity type, and this is what an ER diagram shows - abstract instances, and the relationships between them. This is why entities are always named using singular nouns. + +Mermaid can render ER diagrams + +```mermaid-example +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses +``` + +Entity names are often capitalised, although there is no accepted standard on this, and it is not required in Mermaid. + +Relationships between entities are represented by lines with end markers representing cardinality. Mermaid uses the most popular crow's foot notation. The crow's foot intuitively conveys the possibility of many instances of the entity that it connects to. + +ER diagrams can be used for various purposes, ranging from abstract logical models devoid of any implementation details, through to physical models of relational database tables. It can be useful to include attribute definitions on ER diagrams to aid comprehension of the purpose and meaning of entities. These do not necessarily need to be exhaustive; often a small subset of attributes is enough. Mermaid allows them to be defined in terms of their _type_ and _name_. + +```mermaid-example +erDiagram + CUSTOMER ||--o{ ORDER : places + CUSTOMER { + string name + string custNumber + string sector + } + ORDER ||--|{ LINE-ITEM : contains + ORDER { + int orderNumber + string deliveryAddress + } + LINE-ITEM { + string productCode + int quantity + float pricePerUnit + } +``` + +When including attributes on ER diagrams, you must decide whether to include foreign keys as attributes. This probably depends on how closely you are trying to represent relational table structures. If your diagram is a _logical_ model which is not meant to imply a relational implementation, then it is better to leave these out because the associative relationships already convey the way that entities are associated. For example, a JSON data structure can implement a one-to-many relationship without the need for foreign key properties, using arrays. Similarly an object-oriented programming language may use pointers or references to collections. Even for models that are intended for relational implementation, you might decide that inclusion of foreign key attributes duplicates information already portrayed by the relationships, and does not add meaning to entities. Ultimately, it's your choice. + +## Syntax + +### Entities and Relationships + +Mermaid syntax for ER diagrams is compatible with PlantUML, with an extension to label the relationship. Each statement consists of the following parts: + +``` + [ : ] +``` + +Where: + +- `first-entity` is the name of an entity. Names must begin with an alphabetic character and may also contain digits, hyphens, and underscores. +- `relationship` describes the way that both entities inter-relate. See below. +- `second-entity` is the name of the other entity. +- `relationship-label` describes the relationship from the perspective of the first entity. + +For example: + +``` + PROPERTY ||--|{ ROOM : contains +``` + +This statement can be read as _a property contains one or more rooms, and a room is part of one and only one property_. You can see that the label here is from the first entity's perspective: a property contains a room, but a room does not contain a property. When considered from the perspective of the second entity, the equivalent label is usually very easy to infer. (Some ER diagrams label relationships from both perspectives, but this is not supported here, and is usually superfluous). + +Only the `first-entity` part of a statement is mandatory. This makes it possible to show an entity with no relationships, which can be useful during iterative construction of diagrams. If any other parts of a statement are specified, then all parts are mandatory. + +### Relationship Syntax + +The `relationship` part of each statement can be broken down into three sub-components: + +- the cardinality of the first entity with respect to the second, +- whether the relationship confers identity on a 'child' entity +- the cardinality of the second entity with respect to the first + +Cardinality is a property that describes how many elements of another entity can be related to the entity in question. In the above example a `PROPERTY` can have one or more `ROOM` instances associated to it, whereas a `ROOM` can only be associated with one `PROPERTY`. In each cardinality marker there are two characters. The outermost character represents a maximum value, and the innermost character represents a minimum value. The table below summarises possible cardinalities. + +| Value (left) | Value (right) | Meaning | +| :----------: | :-----------: | ----------------------------- | +| `\|o` | `o\|` | Zero or one | +| `\|\|` | `\|\|` | Exactly one | +| `}o` | `o{` | Zero or more (no upper limit) | +| `}\|` | `\|{` | One or more (no upper limit) | + +### Identification + +Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line: + +```mmd +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + PERSON ||--o{ NAMED-DRIVER : is +``` + +### Attributes + +Attributes can be defined for entities by specifying the entity name followed by a block containing multiple `type name` pairs, where a block is delimited by an opening `{` and a closing `}`. For example: + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string firstName + string lastName + int age + } +``` + +The attributes are rendered inside the entity boxes: + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string firstName + string lastName + int age + } +``` + +The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens or underscores. Other than that, there are no restrictions, and there is no implicit set of valid data types. + +#### Attribute Keys and Comments + +Attributes may also have a `key` or comment defined. Keys can be "PK" or "FK", for Primary Key or Foreign Key. And a `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string allowedDriver FK "The license of the allowed driver" + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string driversLicense PK "The license #" + string firstName + string lastName + int age + } +``` + +### Other Things + +- If you want the relationship label to be more than one word, you must use double quotes around the phrase +- If you don't want a label at all on a relationship, you must use an empty double-quoted string + +## Styling + +### Config options + +For simple color customization: + +| Name | Used as | +| :------- | :------------------------------------------------------------------- | +| `fill` | Background color of an entity or attribute | +| `stroke` | Border color of an entity or attribute, line color of a relationship | + +### Classes used + +The following CSS class selectors are available for richer styling: + +| Selector | Description | +| :------------------------- | :---------------------------------------------------- | +| `.er.attributeBoxEven` | The box containing attributes on even-numbered rows | +| `.er.attributeBoxOdd` | The box containing attributes on odd-numbered rows | +| `.er.entityBox` | The box representing an entity | +| `.er.entityLabel` | The label for an entity | +| `.er.relationshipLabel` | The label for a relationship | +| `.er.relationshipLabelBox` | The box surrounding a relationship label | +| `.er.relationshipLine` | The line representing a relationship between entities | diff --git a/vdocs/syntax/examples.md b/vdocs/syntax/examples.md new file mode 100644 index 0000000000..45fb06de38 --- /dev/null +++ b/vdocs/syntax/examples.md @@ -0,0 +1,158 @@ +# Examples + +This page contains a collection of examples of diagrams and charts that can be created through mermaid and its myriad applications. + +**If you wish to learn how to support mermaid on your webpage, read the [Beginner's Guide](../config/usage?id=usage).** + +**If you wish to learn about mermaid's syntax, Read the [Diagram Syntax](../syntax/flowchart?id=flowcharts-basic-syntax) section.** + +## Basic Pie Chart + +```mermaid-example +pie title NETFLIX + "Time spent looking for movie" : 90 + "Time spent watching it" : 10 +``` + +```mermaid-example +pie title What Voldemort doesn't have? + "FRIENDS" : 2 + "FAMILY" : 3 + "NOSE" : 45 +``` + +## Basic sequence diagram + +```mermaid-example +sequenceDiagram + Alice ->> Bob: Hello Bob, how are you? + Bob-->>John: How about you John? + Bob--x Alice: I am good thanks! + Bob-x John: I am good thanks! + Note right of John: Bob thinks a long
    long time, so long
    that the text does
    not fit on a row. + + Bob-->Alice: Checking with John... + Alice->John: Yes... John, how are you? +``` + +## Basic flowchart + +```mermaid-example +graph LR + A[Square Rect] -- Link text --> B((Circle)) + A --> C(Round Rect) + B --> D{Rhombus} + C --> D +``` + +## Larger flowchart with some styling + +```mermaid-example +graph TB + sq[Square shape] --> ci((Circle shape)) + + subgraph A + od>Odd shape]-- Two line
    edge comment --> ro + di{Diamond with
    line break} -.-> ro(Rounded
    square
    shape) + di==>ro2(Rounded square shape) + end + + %% Notice that no text in shape are added here instead that is appended further down + e --> od3>Really long text with linebreak
    in an Odd shape] + + %% Comments after double percent signs + e((Inner / circle
    and some odd
    special characters)) --> f(,.?!+-*ز) + + cyr[Cyrillic]-->cyr2((Circle shape Начало)); + + classDef green fill:#9f6,stroke:#333,stroke-width:2px; + classDef orange fill:#f96,stroke:#333,stroke-width:4px; + class sq,e green + class di orange +``` + +## SequenceDiagram: Loops, alt and opt + +```mermaid-example +sequenceDiagram + loop Daily query + Alice->>Bob: Hello Bob, how are you? + alt is sick + Bob->>Alice: Not so good :( + else is well + Bob->>Alice: Feeling fresh like a daisy + end + + opt Extra response + Bob->>Alice: Thanks for asking + end + end +``` + +## SequenceDiagram: Message to self in loop + +```mermaid-example +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
    prevail... + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +## Sequence Diagram: Blogging app service communication + +```mermaid-example +sequenceDiagram + participant web as Web Browser + participant blog as Blog Service + participant account as Account Service + participant mail as Mail Service + participant db as Storage + + Note over web,db: The user must be logged in to submit blog posts + web->>+account: Logs in using credentials + account->>db: Query stored accounts + db->>account: Respond with query result + + alt Credentials not found + account->>web: Invalid credentials + else Credentials found + account->>-web: Successfully logged in + + Note over web,db: When the user is authenticated, they can now submit new posts + web->>+blog: Submit new post + blog->>db: Store post data + + par Notifications + blog--)mail: Send mail to blog subscribers + blog--)db: Store in-site notifications + and Response + blog-->>-web: Successfully posted + end + end + +``` + +## A commit flow diagram. + +```mermaid +gitGraph: + commit "Ashish" + branch newbranch + checkout newbranch + commit id:"1111" + commit tag:"test" + checkout main + commit type: HIGHLIGHT + commit + merge newbranch + commit + branch b2 + commit +``` diff --git a/vdocs/syntax/flowchart.md b/vdocs/syntax/flowchart.md new file mode 100644 index 0000000000..41ed2500ab --- /dev/null +++ b/vdocs/syntax/flowchart.md @@ -0,0 +1,677 @@ +# Flowcharts - Basic Syntax + +All Flowcharts are composed of **nodes**, the geometric shapes and **edges**, the arrows or lines. The mermaid code defines the way that these **nodes** and **edges** are made and interact. + +It can also accommodate different arrow types, multi directional arrows, and linking to and from subgraphs. + +> **Important note**: Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897).\*\* + +### A node (default) + +```mermaid-example +flowchart LR + id +``` + +> **Note** The id is what is displayed in the box. + +### A node with text + +It is also possible to set text in the box that differs from the id. If this is done several times, it is the last text +found for the node that will be used. Also if you define edges for the node later on, you can omit text definitions. The +one previously defined will be used when rendering the box. + +```mermaid-example +flowchart LR + id1[This is the text in the box] +``` + +## Graph + +This statement declares the direction of the Flowchart. + +This declares the flowchart is oriented from top to bottom (`TD` or `TB`). + +```mermaid-example +flowchart TD + Start --> Stop +``` + +This declares the flowchart is oriented from left to right (`LR`). + +```mermaid-example +flowchart LR + Start --> Stop +``` + +## Flowchart Orientation + +Possible FlowChart orientations are: + +- TB - top to bottom +- TD - top-down/ same as top to bottom +- BT - bottom to top +- RL - right to left +- LR - left to right + +## Node shapes + +### A node with round edges + +```mermaid-example +flowchart LR + id1(This is the text in the box) +``` + +### A stadium-shaped node + +```mermaid-example +flowchart LR + id1([This is the text in the box]) +``` + +### A node in a subroutine shape + +```mermaid-example +flowchart LR + id1[[This is the text in the box]] +``` + +### A node in a cylindrical shape + +```mermaid-example +flowchart LR + id1[(Database)] +``` + +### A node in the form of a circle + +```mermaid-example +flowchart LR + id1((This is the text in the circle)) +``` + +### A node in an asymmetric shape + +```mermaid-example +flowchart LR + id1>This is the text in the box] +``` + +Currently only the shape above is possible and not its mirror. _This might change with future releases._ + +### A node (rhombus) + +```mermaid-example +flowchart LR + id1{This is the text in the box} +``` + +### A hexagon node + +Code: + +```mmd +flowchart LR + id1{{This is the text in the box}} +``` + +Render: + +```mermaid +flowchart LR + id1{{This is the text in the box}} +``` + +### Parallelogram + +```mermaid-example +flowchart TD + id1[/This is the text in the box/] +``` + +### Parallelogram alt + +```mermaid-example +flowchart TD + id1[\This is the text in the box\] +``` + +### Trapezoid + +```mermaid-example +flowchart TD + A[/Christmas\] +``` + +### Trapezoid alt + +```mermaid-example +flowchart TD + B[\Go shopping/] +``` + +### Double circle + +```mermaid-example +flowchart TD + id1(((This is the text in the circle))) +``` + +## Links between nodes + +Nodes can be connected with links/edges. It is possible to have different types of links or attach a text string to a link. + +### A link with arrow head + +```mermaid-example +flowchart LR + A-->B +``` + +### An open link + +```mermaid-example +flowchart LR + A --- B +``` + +### Text on links + +```mermaid-example +flowchart LR + A-- This is the text! ---B +``` + +or + +```mermaid-example +flowchart LR + A---|This is the text|B +``` + +### A link with arrow head and text + +```mermaid-example +flowchart LR + A-->|text|B +``` + +or + +```mermaid-example +flowchart LR + A-- text -->B +``` + +### Dotted link + +```mermaid-example +flowchart LR; + A-.->B; +``` + +### Dotted link with text + +```mermaid-example +flowchart LR + A-. text .-> B +``` + +### Thick link + +```mermaid-example +flowchart LR + A ==> B +``` + +### Thick link with text + +```mermaid-example +flowchart LR + A == text ==> B +``` + +### Chaining of links + +It is possible declare many links in the same line as per below: + +```mermaid-example +flowchart LR + A -- text --> B -- text2 --> C +``` + +It is also possible to declare multiple nodes links in the same line as per below: + +```mermaid-example +flowchart LR + a --> b & c--> d +``` + +You can then describe dependencies in a very expressive way. Like the one-liner below: + +```mermaid-example +flowchart TB + A & B--> C & D +``` + +If you describe the same diagram using the the basic syntax, it will take four lines. A +word of warning, one could go overboard with this making the flowchart harder to read in +markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little. +This goes for expressive syntaxes as well. + +```mmd +flowchart TB + A --> C + A --> D + B --> C + B --> D +``` + +### New arrow types + +There are new types of arrows supported as per below: + +```mermaid-example +flowchart LR + A --o B + B --x C +``` + +### Multi directional arrows + +There is the possibility to use multidirectional arrows. + +```mermaid-example +flowchart LR + A o--o B + B <--> C + C x--x D +``` + +### Minimum length of a link + +Each node in the flowchart is ultimately assigned to a rank in the rendered +graph, i.e. to a vertical or horizontal level (depending on the flowchart +orientation), based on the nodes to which it is linked. By default, links +can span any number of ranks, but you can ask for any link to be longer +than the others by adding extra dashes in the link definition. + +In the following example, two extra dashes are added in the link from node _B_ +to node _E_, so that it spans two more ranks than regular links: + +```mermaid-example +flowchart TD + A[Start] --> B{Is it?} + B -->|Yes| C[OK] + C --> D[Rethink] + D --> B + B ---->|No| E[End] +``` + +> **Note** Links may still be made longer than the requested number of ranks +> by the rendering engine to accommodate other requests. + +When the link label is written in the middle of the link, the extra dashes must +be added on the right side of the link. The following example is equivalent to +the previous one: + +```mermaid-example +flowchart TD + A[Start] --> B{Is it?} + B -- Yes --> C[OK] + C --> D[Rethink] + D --> B + B -- No ----> E[End] +``` + +For dotted or thick links, the characters to add are equals signs or dots, +as summed up in the following table: + +| Length | 1 | 2 | 3 | +| ----------------- | :----: | :-----: | :------: | +| Normal | `---` | `----` | `-----` | +| Normal with arrow | `-->` | `--->` | `---->` | +| Thick | `===` | `====` | `=====` | +| Thick with arrow | `==>` | `===>` | `====>` | +| Dotted | `-.-` | `-..-` | `-...-` | +| Dotted with arrow | `-.->` | `-..->` | `-...->` | + +## Special characters that break syntax + +It is possible to put text within quotes in order to render more troublesome characters. As in the example below: + +```mermaid-example +flowchart LR + id1["This is the (text) in the box"] +``` + +### Entity codes to escape characters + +It is possible to escape characters using the syntax exemplified here. + +```mermaid-example + flowchart LR + A["A double quote:#quot;"] -->B["A dec char:#9829;"] +``` + +Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. + +## Subgraphs + +``` +subgraph title + graph definition +end +``` + +An example below: + +```mermaid-example +flowchart TB + c1-->a2 + subgraph one + a1-->a2 + end + subgraph two + b1-->b2 + end + subgraph three + c1-->c2 + end +``` + +You can also set an explicit id for the subgraph. + +```mermaid-example +flowchart TB + c1-->a2 + subgraph ide1 [one] + a1-->a2 + end +``` + +## flowcharts + +With the graphtype flowchart it is also possible to set edges to and from subgraphs as in the flowchart below. + +```mermaid-example +flowchart TB + c1-->a2 + subgraph one + a1-->a2 + end + subgraph two + b1-->b2 + end + subgraph three + c1-->c2 + end + one --> two + three --> two + two --> c2 +``` + +## Direction in subgraphs + +With the graphtype flowcharts you can use the direction statement to set the direction which the subgraph will render like in this example. + +```mermaid-example +flowchart LR + subgraph TOP + direction TB + subgraph B1 + direction RL + i1 -->f1 + end + subgraph B2 + direction BT + i2 -->f2 + end + end + A --> TOP --> B + B1 --> B2 +``` + +## Interaction + +It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. + +``` +click nodeId callback +click nodeId call callback() +``` + +- nodeId is the id of the node +- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the nodeId as parameter. + +Examples of tooltip usage below: + +```html + +``` + +The tooltip text is surrounded in double quotes. The styles of the tooltip are set by the class `.mermaidTooltip`. + +```mermaid-example +flowchart LR + A-->B + B-->C + C-->D + click A callback "Tooltip for a callback" + click B "https://www.github.com" "This is a tooltip for a link" + click A call callback() "Tooltip for a callback" + click B href "https://www.github.com" "This is a tooltip for a link" +``` + +> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. + +?> Due to limitations with how Docsify handles JavaScript callback functions, an alternate working demo for the above code can be viewed at [this jsfiddle](https://jsfiddle.net/s37cjoau/3/). + +Links are opened in the same browser tab/window by default. It is possible to change this by adding a link target to the click definition (`_self`, `_blank`, `_parent` and `_top` are supported): + +```mermaid-example +flowchart LR + A-->B + B-->C + C-->D + D-->E + click A "https://www.github.com" _blank + click B "https://www.github.com" "Open this in a new tab" _blank + click C href "https://www.github.com" _blank + click D href "https://www.github.com" "Open this in a new tab" _blank +``` + +Beginner's tip—a full example using interactive links in a html context: + +```html + +
    +    flowchart LR
    +        A-->B
    +        B-->C
    +        C-->D
    +        click A callback "Tooltip"
    +        click B "https://www.github.com" "This is a link"
    +        click C call callback() "Tooltip"
    +        click D href "https://www.github.com" "This is a link"
    +  
    + + + +``` + +### Comments + +Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any flow syntax + +```mmd +flowchart LR +%% this is a comment A -- text --> B{node} + A -- text --> B -- text2 --> C +``` + +## Styling and classes + +### Styling links + +It is possible to style links. For instance, you might want to style a link that is going backwards in the flow. As links +have no ids in the same way as nodes, some other way of deciding what style the links should be attached to is required. +Instead of ids, the order number of when the link was defined in the graph is used, or use default to apply to all links. +In the example below the style defined in the linkStyle statement will belong to the fourth link in the graph: + +``` +linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; +``` + +### Styling line curves + +It is possible to style the type of curve used for lines between items, if the default method does not meet your needs. +Available curve styles include `basis`, `bump`, `linear`, `monotoneX`, `monotoneY`, `natural`, `step`, `stepAfter`, +and `stepBefore`. + +In this example, a left-to-right graph uses the `stepBefore` curve style: + +``` +%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% +graph LR +``` + +For a full list of available curves, including an explanation of custom curves, refer to +the [Shapes](https://github.com/d3/d3-shape/blob/main/README.md#curves) documentation in the +[d3-shape](https://github.com/d3/d3-shape/) project. + +### Styling a node + +It is possible to apply specific styles such as a thicker border or a different background color to a node. + +```mermaid-example +flowchart LR + id1(Start)-->id2(Stop) + style id1 fill:#f9f,stroke:#333,stroke-width:4px + style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 +``` + +#### Classes + +More convenient than defining the style every time is to define a class of styles and attach this class to the nodes that +should have a different look. + +a class definition looks like the example below: + +``` + classDef className fill:#f9f,stroke:#333,stroke-width:4px; +``` + +Attachment of a class to a node is done as per below: + +``` + class nodeId1 className; +``` + +It is also possible to attach a class to a list of nodes in one statement: + +``` + class nodeId1,nodeId2 className; +``` + +A shorter form of adding a class is to attach the classname to the node using the `:::`operator as per below: + +```mermaid-example +flowchart LR + A:::someclass --> B + classDef someclass fill:#f96; +``` + +### Css classes + +It is also possible to predefine classes in css styles that can be applied from the graph definition as in the example +below: + +**Example style** + +```html + +``` + +**Example definition** + +```mermaid-example +flowchart LR; + A-->B[AAABBB] + B-->D + class A cssClass +``` + +### Default class + +If a class is named default it will be assigned to all classes without specific class definitions. + +``` + classDef default fill:#f9f,stroke:#333,stroke-width:4px; +``` + +## Basic support for fontawesome + +It is possible to add icons from fontawesome. + +The icons are accessed via the syntax fa:#icon class name#. + +```mermaid-example +flowchart TD + B["fab:fa-twitter for peace"] + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner); + B-->E(A fa:fa-camera-retro perhaps?) +``` + +?> Mermaid is now only compatible with Font Awesome versions 4 and 5. Check that you are using the correct version of Font Awesome. + +## Graph declarations with spaces between vertices and link and without semicolon + +- In graph declarations, the statements also can now end without a semicolon. After release 0.2.16, ending a graph statement with semicolon is just optional. So the below graph declaration is also valid along with the old declarations of the graph. + +- A single space is allowed between vertices and the link. However there should not be any space between a vertex and its text and a link and its text. The old syntax of graph declaration will also work and hence this new feature is optional and is introduced to improve readability. + +Below is the new declaration of the graph edges which is also valid along with the old declaration of the graph edges. + +```mermaid-example +flowchart LR + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +``` + +## Configuration... + +Is it possible to adjust the width of the rendered flowchart. + +This is done by defining **mermaid.flowchartConfig** or by the CLI to use a JSON file with the configuration. How to use the CLI is described in the mermaidCLI page. +mermaid.flowchartConfig can be set to a JSON string with config parameters or the corresponding object. + +```javascript +mermaid.flowchartConfig = { + width: 100% +} +``` diff --git a/vdocs/syntax/gantt.md b/vdocs/syntax/gantt.md new file mode 100644 index 0000000000..5ed4c76017 --- /dev/null +++ b/vdocs/syntax/gantt.md @@ -0,0 +1,343 @@ +# Gantt diagrams + +> A Gantt chart is a type of bar chart, first developed by Karol Adamiecki in 1896, and independently by Henry Gantt in the 1910s, that illustrates a project schedule and the amount of time it would take for any one project to finish. Gantt charts illustrate number of days between the start and finish dates of the terminal elements and summary elements of a project. + +## A note to users + +Gantt Charts will record each scheduled task as one continuous bar that extends from the left to the right. The x axis represents time and the y records the different tasks and the order in which they are to be completed. + +It is important to remember that when a date, day, or collection of dates specific to a task are "excluded", the Gantt Chart will accommodate those changes by extending an equal number of days, towards the right, not by creating a gap inside the task. +As shown here ![](./img/Gantt-excluded-days-within.png) + +However, if the excluded dates are between two tasks that are set to start consecutively, the excluded dates will be skipped graphically and left blank, and the following task will begin after the end of the excluded dates. +As shown here ![](./img/Gantt-long-weekend-look.png) + +A Gantt chart is useful for tracking the amount of time it would take before a project is finished, but it can also be used to graphically represent "non-working days", with a few tweaks. + +Mermaid can render Gantt diagrams as SVG, PNG or a MarkDown link that can be pasted into docs. + +```mermaid-example +gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d +``` + +## Syntax + +```mermaid-example +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + excludes weekends + %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + Functionality added :milestone, 2014-01-25, 0d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page :20h + Add another diagram to demo page :48h +``` + +It is possible to set multiple dependencies separated by space: + +```mermaid-example + gantt + apple :a, 2017-07-20, 1w + banana :crit, b, 2017-07-23, 1d + cherry :active, c, after b a, 1d +``` + +### Title + +The `title` is an _optional_ string to be displayed at the top of the Gantt chart to describe the chart as a whole. + +### Section statements + +You can divide the chart into various sections, for example to separate different parts of a project like development and documentation. + +To do so, start a line with the `section` keyword and give it a name. (Note that unlike with the [title for the entire chart](#title), this name is _required_. + +### Milestones + +You can add milestones to the diagrams. Milestones differ from tasks as they represent a single instant in time and are identified by the keyword `milestone`. Below is an example on how to use milestones. As you may notice, the exact location of the milestone is determined by the initial date for the milestone and the "duration" of the task this way: _initial date_+_duration_/2. + +```mermaid-example +gantt +dateFormat HH:mm +axisFormat %H:%M +Initial milestone : milestone, m1, 17:49,2min +taska2 : 10min +taska3 : 5min +Final milestone : milestone, m2, 18:14, 2min +``` + +## Setting dates + +`dateFormat` defines the format of the date **input** of your gantt elements. How these dates are represented in the rendered chart **output** are defined by `axisFormat`. + +### Input date format + +The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`. + +``` +dateFormat YYYY-MM-DD +``` + +The following formatting options are supported: + +``` +Input Example Description: +YYYY 2014 4 digit year +YY 14 2 digit year +Q 1..4 Quarter of year. Sets month to first month in quarter. +M MM 1..12 Month number +MMM MMMM January..Dec Month name in locale set by moment.locale() +D DD 1..31 Day of month +Do 1st..31st Day of month with ordinal +DDD DDDD 1..365 Day of year +X 1410715640.579 Unix timestamp +x 1410715640579 Unix ms timestamp +H HH 0..23 24 hour time +h hh 1..12 12 hour time used with a A. +a A am pm Post or ante meridiem +m mm 0..59 Minutes +s ss 0..59 Seconds +S 0..9 Tenths of a second +SS 0..99 Hundreds of a second +SSS 0..999 Thousandths of a second +Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z +``` + +More info in: https://momentjs.com/docs/#/parsing/string-format/ + +### Output date format on the axis + +The default output date format is YYYY-MM-DD. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020. + +``` +axisFormat %Y-%m-%d +``` + +The following formatting strings are supported: + +``` +%a - abbreviated weekday name. +%A - full weekday name. +%b - abbreviated month name. +%B - full month name. +%c - date and time, as "%a %b %e %H:%M:%S %Y". +%d - zero-padded day of the month as a decimal number [01,31]. +%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %_d. +%H - hour (24-hour clock) as a decimal number [00,23]. +%I - hour (12-hour clock) as a decimal number [01,12]. +%j - day of the year as a decimal number [001,366]. +%m - month as a decimal number [01,12]. +%M - minute as a decimal number [00,59]. +%L - milliseconds as a decimal number [000, 999]. +%p - either AM or PM. +%S - second as a decimal number [00,61]. +%U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. +%w - weekday as a decimal number [0(Sunday),6]. +%W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. +%x - date, as "%m/%d/%Y". +%X - time, as "%H:%M:%S". +%y - year without century as a decimal number [00,99]. +%Y - year with century as a decimal number. +%Z - time zone offset, such as "-0700". +%% - a literal "%" character. +``` + +More info in: https://github.com/mbostock/d3/wiki/Time-Formatting + +## Comments + +Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +```mmd +gantt + title A Gantt Diagram + %% this is a comment + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +## Styling + +Styling of the a gantt diagram is done by defining a number of css classes. During rendering, these classes are extracted from the file located at src/themes/gantt.scss + +### Classes used + +| Class | Description | +| --------------------- | ---------------------------------------------------------------------- | +| grid.tick | Styling for the Grid Lines | +| grid.path | Styling for the Grid's borders | +| .taskText | Task Text Styling | +| .taskTextOutsideRight | Styling for Task Text that exceeds the activity bar towards the right. | +| .taskTextOutsideLeft | Styling for Task Text that exceeds the activity bar, towards the left. | +| todayMarker | Toggle and Styling for the "Today Marker" | + +### Sample stylesheet + +```css +.grid .tick { + stroke: lightgrey; + opacity: 0.3; + shape-rendering: crispEdges; +} +.grid path { + stroke-width: 0; +} + +#tag { + color: white; + background: #fa283d; + width: 150px; + position: absolute; + display: none; + padding: 3px 6px; + margin-left: -80px; + font-size: 11px; +} + +#tag:before { + border: solid transparent; + content: ' '; + height: 0; + left: 50%; + margin-left: -5px; + position: absolute; + width: 0; + border-width: 10px; + border-bottom-color: #fa283d; + top: -20px; +} +.taskText { + fill: white; + text-anchor: middle; +} +.taskTextOutsideRight { + fill: black; + text-anchor: start; +} +.taskTextOutsideLeft { + fill: black; + text-anchor: end; +} +``` + +## Today marker + +You can style or hide the marker for the current date. To style it, add a value for the `todayMarker` key. + +``` +todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5 +``` + +To hide the marker, set `todayMarker` to `off`. + +``` +todayMarker off +``` + +## Configuration + +It is possible to adjust the margins for rendering the gantt diagram. + +This is done by defining the `ganttConfig` part of the configuration object. +How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI) page. + +mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object. + +```javascript +mermaid.ganttConfig = { + titleTopMargin: 25, + barHeight: 20, + barGap: 4, + topPadding: 75, + sidePadding: 75, +}; +``` + +### Possible configuration params: + +| Param | Description | Default value | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------- | +| mirrorActor | Turns on/off the rendering of actors below the diagram as well as above it | false | +| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | + +## Interaction + +It is possible to bind a click event to a task. The click can lead to either a javascript callback or to a link which will be opened in the current browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. + +``` +click taskId call callback(arguments) +click taskId href URL +``` + +- taskId is the id of the task +- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the taskId as the parameter if no other arguments are specified. + +Beginner's tip—a full example using interactive links in an html context: + +```html + +
    +    gantt
    +      dateFormat  YYYY-MM-DD
    +
    +      section Clickable
    +      Visit mermaidjs           :active, cl1, 2014-01-07, 3d
    +      Print arguments         :cl2, after cl1, 3d
    +      Print task              :cl3, after cl2, 3d
    +
    +      click cl1 href "https://mermaidjs.github.io/"
    +      click cl2 call printArguments("test1", "test2", test3)
    +      click cl3 call printTask()
    +  
    + + + +``` diff --git a/vdocs/syntax/gitGraph.md b/vdocs/syntax/gitGraph.md new file mode 100644 index 0000000000..adfaabf40c --- /dev/null +++ b/vdocs/syntax/gitGraph.md @@ -0,0 +1,1016 @@ +# Gitgraph Diagrams + +> A Git Graph is a pictorial representation of git commits and git actions(commands) on various branches. + +These kind of diagram are particularly helpful to developers and devops teams to share their Git branching strategies. For example, it makes it easier to visualize how git flow works. + +Mermaid can render Git diagrams + +```mermaid-example + gitGraph + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit +``` + +In Mermaid, we support the basic git operations like: + +- _commit_ : Representing a new commit on the current branch. +- _branch_ : To create & switch to a new branch, setting it as the current branch. +- _checkout_ : To checking out an existing branch and setting it as the current branch. +- _merge_ : To merge an existing branch onto the current branch. + +With the help of these key git commands, you will be able to draw a gitgraph in Mermaid very easily and quickly. +Entity names are often capitalized, although there is no accepted standard on this, and it is not required in Mermaid. + +## Syntax + +Mermaid syntax for a gitgraph is very straight-forward and simple. It follows a declarative-approach, where each commit is drawn on the timeline in the diagram, in order of its occurrences/presence in code. Basically, it follows the insertion order for each command. + +First thing you do is to declare your diagram type using the **gitgraph** keyword. This `gitgraph` keyword, tells Mermaid that you wish to draw a gitgraph, and parse the diagram code accordingly. + +Each gitgraph, is initialized with **_main_** branch. So unless you create a different branch, by-default the commits will go to the main branch. This is driven with how git works, where in the beginning you always start with the main branch (formerly called as **_master_** branch). And by-default, `main` branch is set as your **_current branch_**. + +You make use of **_commit_** keyword to register a commit on the current branch. Let see how this works: + +A simple gitgraph showing three commits on the default (**_main_**) branch: + +```mermaid-example + gitGraph + commit + commit + commit +``` + +If you look closely at the previous example, you can see the default branch `main` along with three commits. Also, notice that by default each commit has been given a unique & random ID. What if you wanted to give your own custom ID to a commit? Yes, it is possible to do that with Mermaid. + +### Adding custom commit id + +For a given commit you may specify a custom ID at the time of declaring it using the `id` attribute, followed by `:` and your custom value within a `""` quote. For example: `commit id: "your_custom_id"` + +Let us see how this works with the help of the following diagram: + +```mermaid-example + gitGraph + commit id: "Alpha" + commit id: "Beta" + commit id: "Gamma" +``` + +In this example, we have given our custom IDs to the commits. + +### Modifying commit type + +In Mermaid, a commit can be of three type, which render a bit different in the diagram. These types are: + +- `NORMAL` : Default commit type. Represented by a solid circle in the diagram +- `REVERSE` : To emphasize a commit as a reverse commit. Represented by a crossed solid circle in the diagram. +- `HIGHLIGHT` : To highlight a particular commit in the diagram. Represented by a filled rectangle in the diagram. + +For a given commit you may specify its type at the time of declaring it using the `type` attribute, followed by `:` and the required type option discussed above. For example: `commit type: HIGHLIGHT` + +NOTE: If no commit type is specified, `NORMAL` is picked as default. + +Let us see how these different commit type look with the help of the following diagram: + +```mermaid-example + gitGraph + commit id: "Normal" + commit + commit id: "Reverse" type: REVERSE + commit + commit id: "Highlight" type: HIGHLIGHT + commit +``` + +In this example, we have specified different types to each commit. Also, see how we have included both `id` and `type` together at the time of declaring our commits. + +### Adding Tags + +For a given commit you may decorate it as a **tag**, similar to the concept of tags or release version in git world. +You can attach a custom tag at the time of declaring a commit using the `tag` attribute, followed by `:` and your custom value within `""` quote. For example: `commit tag: "your_custom_tag"` + +Let us see how this works with the help of the following diagram: + +```mermaid-example + gitGraph + commit + commit id: "Normal" tag: "v1.0.0" + commit + commit id: "Reverse" type: REVERSE tag: "RC_1" + commit + commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4" + commit +``` + +In this example, we have given custom tags to the commits. Also, see how we have combined all these attributes in a single commit declaration. You can mix-match these attributes as you like. + +### Create a new branch + +In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. Usage example: `branch develop` + +When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. + +Let see this in an example: + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit +``` + +In this example, see how we started with default `main` branch, and pushed two commits on that. +Then we created the `develop` branch, and all commits afterwards are put on the `develop` branch as it became the current branch. + +### Checking out an existing branch + +In Mermaid, in order to switch to an existing branch, you make use of the `checkout` keyword. You also need to provide a name of an existing branch. If no branch is found with the given name, it will result in console error. Usage example: `checkout develop` + +When Mermaid, reads the `checkout` keyword, it finds the given branch and sets it as the current branch. Equivalent to checking out a branch in the Git world. + +Let see modify our previous example: + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +In this example, see how we started with default `main` branch, and pushed two commits on that. +Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. +After this we made use of the `checkout` keyword to set the current branch as `main`, and all commit that follow are registered against the current branch, i.e. `main`. + +### Merging two branches + +In Mermaid, in order to merge or join to an existing branch, you make use of the `merge` keyword. You also need to provide the name of an existing branch to merge from. If no branch is found with the given name, it will result in console error. Also, you can only merge two separate branches, and cannot merge a branch with itself. In such case an error is throw. + +Usage example: `merge develop` + +When Mermaid, reads the `merge` keyword, it finds the given branch and its head commit (the last commit on that branch), and joins it with the head commit on the **current branch**. Each merge results in a **_merge commit_**, represented in the diagram with **filled double circle**. + +Let us modify our previous example to merge our two branches: + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit + merge develop + commit + commit +``` + +In this example, see how we started with default `main` branch, and pushed two commits on that. +Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. +After this we made use of the `checkout` keyword to set the current branch as `main`, and all commits that follow are registered against the current branch, i.e. `main`. +After this we merge the `develop` branch onto the current branch `main`, resulting in a merge commit. +Since the current branch at this point is still `main`, the last two commits are registered against that. + +You can also decorate your merge with similar attributes as you did for the commit using: + +- `id`--> To override the default ID with custom ID +- `tag`--> To add a custom tag to your merge commit +- `type`--> To override the default shape of merge commit. Here you can use other commit type mentioned earlier. + +And you can choose to use none, some or all of these attributes together. +For example: `merge develop id: "my_custom_id" tag: "my_custom_tag" type: REVERSE` + +Let us see how this works with the help of the following diagram: + +```mermaid-example + gitGraph + commit id: "1" + commit id: "2" + branch nice_feature + checkout nice_feature + commit id: "3" + checkout main + commit id: "4" + checkout nice_feature + branch very_nice_feature + checkout very_nice_feature + commit id: "5" + checkout main + commit id: "6" + checkout nice_feature + commit id: "7" + checkout main + merge nice_feature id: "customID" tag: "customTag" type: REVERSE + checkout very_nice_feature + commit id: "8" + checkout main + commit id: "9" +``` + +### Cherry Pick commit from another branch + +Similar to how 'git' allows you to cherry-pick a commit from **another branch** onto the **current** branch, Mermaid also supports this functionality. You can also cherry-pick a commit from another branch using the `cherry-pick` keyword. + +To use the `cherry-pick` keyword, you must specify the id using the `id` attribute, followed by `:` and your desired commit id within a `""` quote. For example: + +`cherry-pick id: "your_custom_id"` + +Here, a new commit representing the cherry-pick is created on the current branch, and is visually highlighted in the diagram with a **cherry** and a tag depicting the commit id from which it is cherry-picked from. + +A few important rules to note here are: + +1. You need to provide the `id` for an existing commit to be cherry-picked. If given commit id does not exist it will result in an error. For this, make use of the `commit id:$value` format of declaring commits. See the examples from above. +2. The given commit must not exist on the current branch. The cherry-picked commit must always be a different branch than the current branch. +3. Current branch must have at least one commit, before you can cherry-pick, otherwise it will cause an error is throw. + +Let see an example: + +```mermaid-example + gitGraph + commit id: "ZERO" + branch develop + commit id:"A" + checkout main + commit id:"ONE" + checkout develop + commit id:"B" + checkout main + commit id:"TWO" + cherry-pick id:"A" + commit id:"THREE" + checkout develop + commit id:"C" +``` + +## Gitgraph specific configuration options + +In Mermaid, you have the option to configure the gitgraph diagram. You can configure the following options: + +- `showBranches` : Boolean, default is `true`. If set to `false`, the branches are not shown in the diagram. +- `showCommitLabel` : Boolean, default is `true`. If set to `false`, the commit labels are not shown in the diagram. +- `mainBranchName` : String, default is `main`. The name of the default/root branch. +- `mainBranchOrder` : Position of the main branch in the list of branches. default is `0`, meaning, by default `main` branch is the first in the order. + +Let's look at them one by one. + +## Hiding Branch names and lines + +Sometimes you may want to hide the branch names and lines from the diagram. You can do this by using the `showBranches` keyword. By default its value is `true`. You can set it to `false` using directives. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false}} }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +## Commit labels Layout: Rotated or Horizontal + +Mermaid supports two types of commit labels layout. The default layout is **rotated**, which means the labels are placed below the commit circle, rotated at 45 degrees for better readability. This is particularly useful for commits with long labels. + +The other option is **horizontal**, which means the labels are placed below the commit circle centred horizontally, and are not rotated. This is particularly useful for commits with short labels. + +You can change the layout of the commit labels by using the `rotateCommitLabel` keyword in the directive. It defaults to `true`, which means the commit labels are rotated. + +Usage example: Rotated commit labels + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': true}} }%% +gitGraph + commit id: "feat(api): ..." + commit id: "a" + commit id: "b" + commit id: "fix(client): .extra long label.." + branch c2 + commit id: "feat(modules): ..." + commit id: "test(client): ..." + checkout main + commit id: "fix(api): ..." + commit id: "ci: ..." + branch b1 + commit + branch b2 + commit +``` + +Usage example: Horizontal commit labels + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': false}} }%% +gitGraph + commit id: "feat(api): ..." + commit id: "a" + commit id: "b" + commit id: "fix(client): .extra long label.." + branch c2 + commit id: "feat(modules): ..." + commit id: "test(client): ..." + checkout main + commit id: "fix(api): ..." + commit id: "ci: ..." + branch b1 + commit + branch b2 + commit +``` + +## Hiding commit labels + +Sometimes you may want to hide the commit labels from the diagram. You can do this by using the `showCommitLabel` keyword. By default its value is `true`. You can set it to `false` using directives. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false,'showCommitLabel': false}} }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +## Customizing main branch name + +Sometimes you may want to customize the name of the main/default branch. You can do this by using the `mainBranchName` keyword. By default its value is `main`. You can set it to any string using directives. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'MetroLine1'}} }%% + gitGraph + commit id:"NewYork" + commit id:"Dallas" + branch MetroLine2 + commit id:"LosAngeles" + commit id:"Chicago" + commit id:"Houston" + branch MetroLine3 + commit id:"Phoenix" + commit type: HIGHLIGHT id:"Denver" + commit id:"Boston" + checkout MetroLine1 + commit id:"Atlanta" + merge MetroLine3 + commit id:"Miami" + commit id:"Washington" + merge MetroLine2 tag:"MY JUNCTION" + commit id:"Boston" + commit id:"Detroit" + commit type:REVERSE id:"SanFrancisco" +``` + +Look at the imaginary railroad map created using Mermaid. Here, we have changed the default main branch name to `MetroLine1`. + +## Customizing branch ordering + +In Mermaid, by default the branches are shown in the order of their definition or appearance in the diagram code. + +Sometimes you may want to customize the order of the branches. You can do this by using the `order` keyword next the branch definition. You can set it to a positive number. + +Mermaid follows the given precedence order of the `order` keyword. + +- Main branch is always shown first as it has default order value of `0`. (unless its order is modified and changed from `0` using the `mainBranchOrder` keyword in the config) +- Next, All branches without an `order` are shown in the order of their appearance in the diagram code. +- Next, All branches with an `order` are shown in the order of their `order` value. + +To fully control the order of all the branches, you must define `order` for all the branches. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true}} }%% + gitGraph + commit + branch test1 order: 3 + branch test2 order: 2 + branch test3 order: 1 + +``` + +Look at the diagram, all the branches are following the order defined. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%% + gitGraph + commit + branch test1 order: 3 + branch test2 + branch test3 + branch test4 order: 1 + +``` + +Look at the diagram, here, all the branches without a specified order are drawn in their order of definition. +Then, `test4` branch is drawn because the order of `1`. +Then, `main` branch is drawn because the order of `2`. +And, lastly `test1`is drawn because the order of `3`. + +NOTE: Because we have overridden the `mainBranchOrder` to `2`, the `main` branch is not drawn in the beginning, instead follows the ordering. + +Here, we have changed the default main branch name to `MetroLine1`. + +## Themes + +Mermaid supports a bunch of pre-defined themes which you can use to find the right one for you. PS: you can actually override an existing theme's variable to get your own custom theme going. Learn more about theming your diagram [here](../config/theming.md). + +The following are the different pre-defined theme options: + +- `base` +- `forest` +- `dark` +- `default` +- `neutral` + +**NOTE**: To change theme you can either use the `initialize` call or _directives_. Learn more about [directives](../config/directives.md) +Let's put them to use, and see how our sample diagram looks in different themes: + +### Base Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Forest Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Default Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% + gitGraph + commit type:HIGHLIGHT + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Dark Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Neutral Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +## Customize using Theme Variables + +Mermaid allows you to customize your diagram using theme variables which govern the look and feel of various elements of the diagram. + +For understanding let us take a sample diagram with theme `default`, the default values of the theme variables is picked automatically from the theme. Later on we will see how to override the default values of the theme variables. + +See how the default theme is used to set the colors for the branches: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit +``` + +> #### IMPORTANT: +> +> Mermaid supports the theme variables to override the default values for **up to 8 branches**, i.e., you can set the color/styling of up to 8 branches using theme variables. After this threshold of 8 branches, the theme variables are reused in the cyclic manner, i.e. the 9th branch will use the color/styling of the 1st branch, or the branch at index position '8' will use the color/styling of the branch at index position '0'. +> _More on this in the next section. See examples on **Customizing branch label colors** below_ + +### Customizing branch colors + +You can customize the branch colors using the `git0` to `git7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `git0` variable will drive the value of the first branch, `git1` will drive the value of the second branch and so on. + +NOTE: Default values for these theme variables are picked from the selected theme. If you want to override the default values, you can use the `initialize` call to add your custom theme variable values. + +Example: + +Now let's override the default values for the `git0` to `git3` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'git0': '#ff0000', + 'git1': '#00ff00', + 'git2': '#0000ff', + 'git3': '#ff00ff', + 'git4': '#00ffff', + 'git5': '#ffff00', + 'git6': '#ff00ff', + 'git7': '#00ffff' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the branch colors are changed to the values specified in the theme variables. + +### Customizing branch label colors + +You can customize the branch label colors using the `gitBranchLabel0` to `gitBranchLabel7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `gitBranchLabel0` variable will drive the value of the first branch label, `gitBranchLabel1` will drive the value of the second branch label and so on. + +Lets see how the default theme is used to set the colors for the branch labels: + +Now let's override the default values for the `gitBranchLabel0` to `gitBranchLabel2` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'gitBranchLabel0': '#ffffff', + 'gitBranchLabel1': '#ffffff', + 'gitBranchLabel2': '#ffffff', + 'gitBranchLabel3': '#ffffff', + 'gitBranchLabel4': '#ffffff', + 'gitBranchLabel5': '#ffffff', + 'gitBranchLabel6': '#ffffff', + 'gitBranchLabel7': '#ffffff', + 'gitBranchLabel8': '#ffffff', + 'gitBranchLabel9': '#ffffff' + } } }%% + gitGraph + checkout main + branch branch1 + branch branch2 + branch branch3 + branch branch4 + branch branch5 + branch branch6 + branch branch7 + branch branch8 + branch branch9 + checkout branch1 + commit +``` + +Here, you can see that `branch8` and `branch9` colors and the styles are being picked from branch at index position `0` (`main`) and `1`(`branch1`) respectively, i.e., **branch themeVariables are repeated cyclically**. + +### Customizing Commit colors + +You can customize commit using the `commitLabelColor` and `commitLabelBackground` theme variables for changes in the commit label color and background color respectively. + +Example: +Now let's override the default values for the `commitLabelColor` to `commitLabelBackground` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the commit label color and background color are changed to the values specified in the theme variables. + +### Customizing Commit Label Font Size + +You can customize commit using the `commitLabelFontSize` theme variables for changing in the font soze of the commit label . + +Example: +Now let's override the default values for the `commitLabelFontSize` variable: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00', + 'commitLabelFontSize': '16px' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the commit label font size changed. + +### Customizing Tag Label Font Size + +You can customize commit using the `tagLabelFontSize` theme variables for changing in the font soze of the tag label . + +Example: +Now let's override the default values for the `tagLabelFontSize` variable: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00', + 'tagLabelFontSize': '16px' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the tag label font size changed. + +### Customizing Tag colors + +You can customize tag using the `tagLabelColor`,`tagLabelBackground` and `tagLabelBorder` theme variables for changes in the tag label color,tag label background color and tag label border respectively. +Example: +Now let's override the default values for the `tagLabelColor`, `tagLabelBackground` and to `tagLabelBorder` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'tagLabelColor': '#ff0000', + 'tagLabelBackground': '#00ff00', + 'tagLabelBorder': '#0000ff' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the tag colors are changed to the values specified in the theme variables. + +### Customizing Highlight commit colors + +You can customize the highlight commit colors in relation to the branch it is on using the `gitInv0` to `gitInv7` theme variables. Mermaid allows you to set the colors for up-to 8 branches specific highlight commit, where `gitInv0` variable will drive the value of the first branch's highlight commits, `gitInv1` will drive the value of the second branch's highlight commit label and so on. + +Example: + +Now let's override the default values for the `git0` to `git3` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'gitInv0': '#ff0000' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the highlighted commit color on the first branch is changed to the value specified in the theme variable `gitInv0`. diff --git a/vdocs/syntax/img/Gantt-excluded-days-within.png b/vdocs/syntax/img/Gantt-excluded-days-within.png new file mode 100644 index 0000000000000000000000000000000000000000..2283bf99d8d6ed1b721541ce1f0f8b38d6e19887 GIT binary patch literal 79453 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

    eQe(Y%!Xg7+4bDT&Bc0< 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 A pie chart (or a circle chart) is a circular statistical graphic, which is divided into slices to illustrate numerical proportion. In a pie chart, the arc length of each slice (and consequently its central angle and area), is proportional to the quantity it represents. While it is named for its resemblance to a pie which has been sliced, there are variations on the way it can be presented. The earliest known pie chart is generally credited to William Playfair's Statistical Breviary of 1801 +> -Wikipedia + +Mermaid can render Pie Chart diagrams. + +```mmd +pie title Pets adopted by volunteers + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +``` + +```mermaid +pie title Pets adopted by volunteers + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +``` + +## Syntax + +Drawing a pie chart is really simple in mermaid. + +- Start with `pie` keyword to begin the diagram + - `showData` to render the actual data values after the legend text. This is **_OPTIONAL_** +- Followed by `title` keyword and its value in string to give a title to the pie-chart. This is **_OPTIONAL_** +- Followed by dataSet + - `label` for a section in the pie diagram within `" "` quotes. + - Followed by `:` colon as separator + - Followed by `positive numeric value` (supported upto two decimal places) + +[pie] [showData] (OPTIONAL) +[title] [titlevalue] (OPTIONAL) +"[datakey1]" : [dataValue1] +"[datakey2]" : [dataValue2] +"[datakey3]" : [dataValue3] +. +. + +## Example + +```mermaid-example +pie showData + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 +``` diff --git a/vdocs/syntax/requirementDiagram.md b/vdocs/syntax/requirementDiagram.md new file mode 100644 index 0000000000..7c221312b7 --- /dev/null +++ b/vdocs/syntax/requirementDiagram.md @@ -0,0 +1,158 @@ +# Requirement Diagram + +> A Requirement diagram provides a visualization for requirements and their connections, to each other and other documented elements. The modeling specs follow those defined by SysML v1.6. + +Rendering requirements is straightforward. + +```mermaid-example + requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req +``` + +## Syntax + +There are three types of components to a requirement diagram: requirement, element, and relationship. + +The grammar for defining each is defined below. Words denoted in angle brackets, such as ``, are enumerated keywords that have options elaborated in a table. `user_defined_...` is use in any place where user input is expected. + +An important note on user text: all input can be surrounded in quotes or not. For example, both `Id: "here is an example"` and `Id: here is an example` are both valid. However, users must be careful with unquoted input. The parser will fail if another keyword is detected. + +### Requirement + +A requirement definition contains a requirement type, name, id, text, risk, and verification method. The syntax follows: + +``` + user_defined_name { + id: user_defined_id + text: user_defined text + risk: + verifymethod: +} +``` + +Type, risk, and method are enumerations defined in SysML. + +| Keyword | Options | +| ------------------ | ----------------------------------------------------------------------------------------------------------------------- | +| Type | requirement, functionalRequirement, interfaceRequirement, performanceRequirement, physicalRequirement, designConstraint | +| Risk | Low, Medium, High | +| VerificationMethod | Analysis, Inspection, Test, Demonstration | + +### Element + +An element definition contains an element name, type, and document reference. These three are all user defined. The element feature is intended to be lightweight but allow requirements to be connected to portions of other documents. + +``` +element user_defined_name { + type: user_defined_type + docref: user_defined_ref +} +``` + +### Relationship + +Relationships are comprised of a source node, destination node, and relationship type. + +Each follows the definition format of + +``` +{name of source} - -> {name of destination} +``` + +or + +``` +{name of destination} <- - {name of source} +``` + +"name of source" and "name of destination" should be names of requirement or element nodes defined elsewhere. + +A relationship type can be one of contains, copies, derives, satisfies, verifies, refines, or traces. + +Each relationship is labeled in the diagram. + +## Larger Example + +This example uses all features of the diagram. + +```mermaid-example + requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + functionalRequirement test_req2 { + id: 1.1 + text: the second test text. + risk: low + verifymethod: inspection + } + + performanceRequirement test_req3 { + id: 1.2 + text: the third test text. + risk: medium + verifymethod: demonstration + } + + interfaceRequirement test_req4 { + id: 1.2.1 + text: the fourth test text. + risk: medium + verifymethod: analysis + } + + physicalRequirement test_req5 { + id: 1.2.2 + text: the fifth test text. + risk: medium + verifymethod: analysis + } + + designConstraint test_req6 { + id: 1.2.3 + text: the sixth test text. + risk: medium + verifymethod: analysis + } + + element test_entity { + type: simulation + } + + element test_entity2 { + type: word doc + docRef: reqs/test_entity + } + + element test_entity3 { + type: "test suite" + docRef: github.com/all_the_tests + } + + + test_entity - satisfies -> test_req2 + test_req - traces -> test_req2 + test_req - contains -> test_req3 + test_req3 - contains -> test_req4 + test_req4 - derives -> test_req5 + test_req5 - refines -> test_req6 + test_entity3 - verifies -> test_req5 + test_req <- copies - test_entity2 +``` diff --git a/vdocs/syntax/sequenceDiagram.md b/vdocs/syntax/sequenceDiagram.md new file mode 100644 index 0000000000..079eaa4d58 --- /dev/null +++ b/vdocs/syntax/sequenceDiagram.md @@ -0,0 +1,569 @@ +# Sequence diagrams + +> A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order. + +Mermaid can render sequence diagrams. + +```mermaid-example +sequenceDiagram + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +::: warning +A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. + +If unavoidable, one must use parentheses(), quotation marks "", or brackets {},[], to enclose the word "end". i.e : (end), [end], {end}. +::: + +## Syntax + +### Participants + +The participants can be defined implicitly as in the first example on this page. The participants or actors are +rendered in order of appearance in the diagram source text. Sometimes you might want to show the participants in a +different order than how they appear in the first message. It is possible to specify the actor's order of +appearance by doing the following: + +```mermaid-example +sequenceDiagram + participant Alice + participant Bob + Alice->>Bob: Hi Bob + Bob->>Alice: Hi Alice +``` + +### Actors + +If you specifically want to use the actor symbol instead of a rectangle with text you can do so by using actor statements as per below. + +```mermaid-example +sequenceDiagram + actor Alice + actor Bob + Alice->>Bob: Hi Bob + Bob->>Alice: Hi Alice +``` + +### Aliases + +The actor can have a convenient identifier and a descriptive label. + +```mermaid-example +sequenceDiagram + participant A as Alice + participant J as John + A->>J: Hello John, how are you? + J->>A: Great! +``` + +## Messages + +Messages can be of two displayed either solid or with a dotted line. + +``` +[Actor][Arrow][Actor]:Message text +``` + +There are six types of arrows currently supported: + +| Type | Description | +| ---- | ------------------------------------------------ | +| -> | Solid line without arrow | +| --> | Dotted line without arrow | +| ->> | Solid line with arrowhead | +| -->> | Dotted line with arrowhead | +| -x | Solid line with a cross at the end | +| --x | Dotted line with a cross at the end. | +| -) | Solid line with an open arrow at the end (async) | +| --) | Dotted line with a open arrow at the end (async) | + +## Activations + +It is possible to activate and deactivate an actor. (de)activation can be dedicated declarations: + +```mermaid-example +sequenceDiagram + Alice->>John: Hello John, how are you? + activate John + John-->>Alice: Great! + deactivate John +``` + +There is also a shortcut notation by appending `+`/`-` suffix to the message arrow: + +```mermaid-example +sequenceDiagram + Alice->>+John: Hello John, how are you? + John-->>-Alice: Great! +``` + +Activations can be stacked for same actor: + +```mermaid-example +sequenceDiagram + Alice->>+John: Hello John, how are you? + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + John-->>-Alice: I feel great! +``` + +## Notes + +It is possible to add notes to a sequence diagram. This is done by the notation +Note [ right of | left of | over ] [Actor]: Text in note content + +See the example below: + +```mermaid-example +sequenceDiagram + participant John + Note right of John: Text in note +``` + +It is also possible to create notes spanning two participants: + +```mermaid-example +sequenceDiagram + Alice->John: Hello John, how are you? + Note over Alice,John: A typical interaction +``` + +## Loops + +It is possible to express loops in a sequence diagram. This is done by the notation + +``` +loop Loop text +... statements ... +end +``` + +See the example below: + +```mermaid-example +sequenceDiagram + Alice->John: Hello John, how are you? + loop Every minute + John-->Alice: Great! + end +``` + +## Alt + +It is possible to express alternative paths in a sequence diagram. This is done by the notation + +``` +alt Describing text +... statements ... +else +... statements ... +end +``` + +or if there is sequence that is optional (if without else). + +``` +opt Describing text +... statements ... +end +``` + +See the example below: + +```mermaid-example +sequenceDiagram + Alice->>Bob: Hello Bob, how are you? + alt is sick + Bob->>Alice: Not so good :( + else is well + Bob->>Alice: Feeling fresh like a daisy + end + opt Extra response + Bob->>Alice: Thanks for asking + end +``` + +## Parallel + +It is possible to show actions that are happening in parallel. + +This is done by the notation + +``` +par [Action 1] +... statements ... +and [Action 2] +... statements ... +and [Action N] +... statements ... +end +``` + +See the example below: + +```mermaid-example +sequenceDiagram + par Alice to Bob + Alice->>Bob: Hello guys! + and Alice to John + Alice->>John: Hello guys! + end + Bob-->>Alice: Hi Alice! + John-->>Alice: Hi Alice! +``` + +It is also possible to nest parallel blocks. + +```mermaid-example +sequenceDiagram + par Alice to Bob + Alice->>Bob: Go help John + and Alice to John + Alice->>John: I want this done today + par John to Charlie + John->>Charlie: Can we do this today? + and John to Diana + John->>Diana: Can you help us today? + end + end +``` + +## Critical Region + +It is possible to show actions that must happen automatically with conditional handling of circumstances. + +This is done by the notation + +``` +critical [Action that must be performed] +... statements ... +option [Circumstance A] +... statements ... +option [Circumstance B] +... statements ... +end +``` + +See the example below: + +```mermaid-example +sequenceDiagram + critical Establish a connection to the DB + Service-->DB: connect + option Network timeout + Service-->Service: Log error + option Credentials rejected + Service-->Service: Log different error + end +``` + +It is also possible to have no options at all + +```mermaid-example +sequenceDiagram + critical Establish a connection to the DB + Service-->DB: connect + end +``` + +This critical block can also be nested, equivalently to the `par` statement as seen above. + +## Break + +It is possible to indicate a stop of the sequence within the flow (usually used to model exceptions). + +This is done by the notation + +``` +break [something happened] +... statements ... +end +``` + +See the example below: + +```mermaid-example +sequenceDiagram + Consumer-->API: Book something + API-->BookingService: Start booking process + break when the booking process fails + API-->Consumer: show failure + end + API-->BillingService: Start billing process +``` + +## Background Highlighting + +It is possible to highlight flows by providing colored background rects. This is done by the notation + +The colors are defined using rgb and rgba syntax. + +``` +rect rgb(0, 255, 0) +... content ... +end +``` + +``` +rect rgba(0, 0, 255, .1) +... content ... +end +``` + +See the examples below: + +```mermaid-example +sequenceDiagram + participant Alice + participant John + + rect rgb(191, 223, 255) + note right of Alice: Alice calls John. + Alice->>+John: Hello John, how are you? + rect rgb(200, 150, 255) + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + end + John-->>-Alice: I feel great! + end + Alice ->>+ John: Did you want to go to the game tonight? + John -->>- Alice: Yeah! See you there. + +``` + +## Comments + +Comments can be entered within a sequence diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +```mmd +sequenceDiagram + Alice->>John: Hello John, how are you? + %% this is a comment + John-->>Alice: Great! +``` + +## Entity codes to escape characters + +It is possible to escape characters using the syntax exemplified here. + +```mermaid-example +sequenceDiagram + A->>B: I #9829; you! + B->>A: I #9829; you #infin; times more! +``` + +Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. + +Because semicolons can be used instead of line breaks to define the markup, you need to use `#59;` to include a semicolon in message text. + +## sequenceNumbers + +It is possible to get a sequence number attached to each arrow in a sequence diagram. This can be configured when adding mermaid to the website as shown below: + +```html + +``` + +It can also be be turned on via the diagram code as in the diagram: + +```mermaid-example +sequenceDiagram + autonumber + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +## Actor Menus + +Actors can have popup-menus containing individualized links to external pages. For example, if an actor represented a web service, useful links might include a link to the service health dashboard, repo containing the code for the service, or a wiki page describing the service. + +This can be configured by adding one or more link lines with the format: + +``` +link : @ +``` + +```mmd +sequenceDiagram + participant Alice + participant John + link Alice: Dashboard @ https://dashboard.contoso.com/alice + link Alice: Wiki @ https://wiki.contoso.com/alice + link John: Dashboard @ https://dashboard.contoso.com/john + link John: Wiki @ https://wiki.contoso.com/john + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +#### Advanced Menu Syntax + +There is an advanced syntax that relies on JSON formatting. If you are comfortable with JSON format, then this exists as well. + +This can be configured by adding the links lines with the format: + +``` +links : +``` + +An example is below: + +```mermaid-example +sequenceDiagram + participant Alice + participant John + links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} + links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +## Styling + +Styling of a sequence diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/sequence.scss + +### Classes used + +| Class | Description | +| ------------ | ----------------------------------------------------------- | +| actor | Style for the actor box at the top of the diagram. | +| text.actor | Styles for text in the actor box at the top of the diagram. | +| actor-line | The vertical line for an actor. | +| messageLine0 | Styles for the solid message line. | +| messageLine1 | Styles for the dotted message line. | +| messageText | Defines styles for the text on the message arrows. | +| labelBox | Defines styles label to left in a loop. | +| labelText | Styles for the text in label for loops. | +| loopText | Styles for the text in the loop box. | +| loopLine | Defines styles for the lines in the loop box. | +| note | Styles for the note box. | +| noteText | Styles for the text on in the note boxes. | + +### Sample stylesheet + +```css +body { + background: white; +} + +.actor { + stroke: #ccccff; + fill: #ececff; +} +text.actor { + fill: black; + stroke: none; + font-family: Helvetica; +} + +.actor-line { + stroke: grey; +} + +.messageLine0 { + stroke-width: 1.5; + stroke-dasharray: '2 2'; + marker-end: 'url(#arrowhead)'; + stroke: black; +} + +.messageLine1 { + stroke-width: 1.5; + stroke-dasharray: '2 2'; + stroke: black; +} + +#arrowhead { + fill: black; +} + +.messageText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; + font-size: 14px; +} + +.labelBox { + stroke: #ccccff; + fill: #ececff; +} + +.labelText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; +} + +.loopText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; +} + +.loopLine { + stroke-width: 2; + stroke-dasharray: '2 2'; + marker-end: 'url(#arrowhead)'; + stroke: #ccccff; +} + +.note { + stroke: #decc93; + fill: #fff5ad; +} + +.noteText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; + font-size: 14px; +} +``` + +## Configuration + +Is it possible to adjust the margins for rendering the sequence diagram. + +This is done by defining `mermaid.sequenceConfig` or by the CLI to use a json file with the configuration. +How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI) page. +`mermaid.sequenceConfig` can be set to a JSON string with config parameters or the corresponding object. + +```javascript +mermaid.sequenceConfig = { + diagramMarginX: 50, + diagramMarginY: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + mirrorActors: true, +}; +``` + +### Possible configuration parameters: + +| Parameter | Description | Default value | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ | +| mirrorActors | Turns on/off the rendering of actors below the diagram as well as above it | false | +| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | +| actorFontSize | Sets the font size for the actor's description | 14 | +| actorFontFamily | Sets the font family for the actor's description | "Open Sans", sans-serif | +| actorFontWeight | Sets the font weight for the actor's description | "Open Sans", sans-serif | +| noteFontSize | Sets the font size for actor-attached notes | 14 | +| noteFontFamily | Sets the font family for actor-attached notes | "trebuchet ms", verdana, arial | +| noteFontWeight | Sets the font weight for actor-attached notes | "trebuchet ms", verdana, arial | +| noteAlign | Sets the text alignment for text in actor-attached notes | center | +| messageFontSize | Sets the font size for actor<->actor messages | 16 | +| messageFontFamily | Sets the font family for actor<->actor messages | "trebuchet ms", verdana, arial | +| messageFontWeight | Sets the font weight for actor<->actor messages | "trebuchet ms", verdana, arial | diff --git a/vdocs/syntax/stateDiagram.md b/vdocs/syntax/stateDiagram.md new file mode 100644 index 0000000000..e28819e7a2 --- /dev/null +++ b/vdocs/syntax/stateDiagram.md @@ -0,0 +1,260 @@ +# State diagrams + +> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction." Wikipedia + +Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml. + +```mermaid-example +stateDiagram-v2 + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` + +Older renderer: + +```mermaid-example +stateDiagram + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` + +In state diagrams systems are described in terms of its states and how the systems state can change to another state via a transitions. The example diagram above shows three states **Still**, **Moving** and **Crash**. You start in the state of Still. From Still you can change the state to Moving. In Moving you can change the state either back to Still or to Crash. There is no transition from Still to Crash. + +## States + +A state can be declared in multiple ways. The simplest way is to define a state id as a description. + +```mermaid-example +stateDiagram-v2 + s1 +``` + +Another way is by using the state keyword with a description as per below: + +```mermaid-example +stateDiagram-v2 + state "This is a state description" as s2 +``` + +Another way to define a state with a description is to define the state id followed by a colon and the description: + +```mermaid-example +stateDiagram-v2 + s2 : This is a state description +``` + +## Transitions + +Transitions are path/edges when one state passes into another. This is represented using text arrow, "\-\-\>". + +When you define a transition between two states and the states are not already defined the undefined states are defined with the id from the transition. You can later add descriptions to states defined this way. + +```mermaid-example +stateDiagram-v2 + s1 --> s2 +``` + +It is possible to add text to a transition. To describe what it represents. + +```mermaid-example +stateDiagram-v2 + s1 --> s2: A transition +``` + +## Start and End + +There are two special states indicating the start and stop of the diagram. These are written with the [\*] syntax and the direction of the transition to it defines it either as a start or a stop state. + +```mermaid-example +stateDiagram-v2 + [*] --> s1 + s1 --> [*] +``` + +## Composite states + +In a real world use of state diagrams you often end up with diagrams that are multi-dimensional as one state can +have several internal states. These are called composite states in this terminology. + +In order to define a composite state you need to use the state keyword followed by an id and the body of the composite state between \{\}. See the example below: + +```mermaid-example +stateDiagram-v2 + [*] --> First + state First { + [*] --> second + second --> [*] + } +``` + +You can do this in several layers: + +```mermaid-example +stateDiagram-v2 + [*] --> First + + state First { + [*] --> Second + + state Second { + [*] --> second + second --> Third + + state Third { + [*] --> third + third --> [*] + } + } + } +``` + +You can also define transitions also between composite states: + +```mermaid-example +stateDiagram-v2 + [*] --> First + First --> Second + First --> Third + + state First { + [*] --> fir + fir --> [*] + } + state Second { + [*] --> sec + sec --> [*] + } + state Third { + [*] --> thi + thi --> [*] + } +``` + +_You can not define transitions between internal states belonging to different composite states_ + +## Choice + +Sometimes you need to model a choice between two or more paths, you can do so using <<choice>>. + +```mermaid-example +stateDiagram-v2 + state if_state <> + [*] --> IsPositive + IsPositive --> if_state + if_state --> False: if n < 0 + if_state --> True : if n >= 0 +``` + +## Forks + +It is possible to specify a fork in the diagram using <<fork>> <<join>>. + +```mermaid-example + stateDiagram-v2 + state fork_state <> + [*] --> fork_state + fork_state --> State2 + fork_state --> State3 + + state join_state <> + State2 --> join_state + State3 --> join_state + join_state --> State4 + State4 --> [*] +``` + +## Notes + +Sometimes nothing says it better then a Post-it note. That is also the case in state diagrams. + +Here you can choose to put the note to the _right of_ or to the _left of_ a node. + +```mermaid-example + stateDiagram-v2 + State1: The state with a note + note right of State1 + Important information! You can write + notes. + end note + State1 --> State2 + note left of State2 : This is the note to the left. +``` + +## Concurrency + +As in plantUml you can specify concurrency using the -- symbol. + +```mermaid-example +stateDiagram-v2 + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvScrollLockPressed + ScrollLockOn --> ScrollLockOff : EvScrollLockPressed + } +``` + +## Setting the direction of the diagram + +With state diagrams you can use the direction statement to set the direction which the diagram will render like in this example. + +```mermaid-example +stateDiagram + direction LR + [*] --> A + A --> B + B --> C + state B { + direction LR + a --> b + } + B --> D +``` + +## Comments + +Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +```mmd +stateDiagram-v2 + [*] --> Still + Still --> [*] +%% this is a comment + Still --> Moving + Moving --> Still %% another comment + Moving --> Crash + Crash --> [*] +``` + +## Styling + +Styling of the a state diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/state.scss + +## Spaces in state names + +Spaces can be added to a state by defining it at the top and referencing the acronym later. + +```mermaid-example +stateDiagram-v2 + Yswsii: Your state with spaces in it + [*] --> Yswsii +``` diff --git a/vdocs/syntax/userJourney.md b/vdocs/syntax/userJourney.md new file mode 100644 index 0000000000..3476088aba --- /dev/null +++ b/vdocs/syntax/userJourney.md @@ -0,0 +1,22 @@ +# User Journey Diagram + +> User journeys describe at a high level of detail exactly what steps different users take to complete a specific task within a system, application or website. This technique shows the current (as-is) user workflow, and reveals areas of improvement for the to-be workflow. (Wikipedia) + +Mermaid can render user journey diagrams: + +```mermaid-example +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +Each user journey is split into sections, these describe the part of the task +the user is trying to complete. + +Tasks syntax is `Task name: : ` diff --git a/vdocs/vite.config.ts b/vdocs/vite.config.ts new file mode 100644 index 0000000000..2214d29a08 --- /dev/null +++ b/vdocs/vite.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import { SearchPlugin } from 'vitepress-plugin-search'; + +export default defineConfig({ + plugins: [SearchPlugin()], + resolve: { + alias: { + mermaid: 'https://unpkg.com/mermaid@9.1.7/dist/mermaid.esm.min.mjs', + }, + }, +}); diff --git a/yarn.lock b/yarn.lock index afcda016f3..b2260c946a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,129 @@ # yarn lockfile v1 +"@algolia/autocomplete-core@1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz#025538b8a9564a9f3dd5bcf8a236d6951c76c7d1" + integrity sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg== + dependencies: + "@algolia/autocomplete-shared" "1.7.1" + +"@algolia/autocomplete-preset-algolia@1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz#7dadc5607097766478014ae2e9e1c9c4b3f957c8" + integrity sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg== + dependencies: + "@algolia/autocomplete-shared" "1.7.1" + +"@algolia/autocomplete-shared@1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz#95c3a0b4b78858fed730cf9c755b7d1cd0c82c74" + integrity sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg== + +"@algolia/cache-browser-local-storage@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz#d5b1b90130ca87c6321de876e167df9ec6524936" + integrity sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA== + dependencies: + "@algolia/cache-common" "4.14.2" + +"@algolia/cache-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.14.2.tgz#b946b6103c922f0c06006fb6929163ed2c67d598" + integrity sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg== + +"@algolia/cache-in-memory@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz#88e4a21474f9ac05331c2fa3ceb929684a395a24" + integrity sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ== + dependencies: + "@algolia/cache-common" "4.14.2" + +"@algolia/client-account@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.14.2.tgz#b76ac1ba9ea71e8c3f77a1805b48350dc0728a16" + integrity sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-analytics@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.14.2.tgz#ca04dcaf9a78ee5c92c5cb5e9c74cf031eb2f1fb" + integrity sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.14.2.tgz#e1324e167ffa8af60f3e8bcd122110fd0bfd1300" + integrity sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q== + dependencies: + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-personalization@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.14.2.tgz#656bbb6157a3dd1a4be7de65e457fda136c404ec" + integrity sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-search@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.14.2.tgz#357bdb7e640163f0e33bad231dfcc21f67dc2e92" + integrity sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/logger-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.14.2.tgz#b74b3a92431f92665519d95942c246793ec390ee" + integrity sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA== + +"@algolia/logger-console@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.14.2.tgz#ec49cb47408f5811d4792598683923a800abce7b" + integrity sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g== + dependencies: + "@algolia/logger-common" "4.14.2" + +"@algolia/requester-browser-xhr@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz#a2cd4d9d8d90d53109cc7f3682dc6ebf20f798f2" + integrity sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw== + dependencies: + "@algolia/requester-common" "4.14.2" + +"@algolia/requester-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.14.2.tgz#bc4e9e5ee16c953c0ecacbfb334a33c30c28b1a1" + integrity sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg== + +"@algolia/requester-node-http@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz#7c1223a1785decaab1def64c83dade6bea45e115" + integrity sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg== + dependencies: + "@algolia/requester-common" "4.14.2" + +"@algolia/transporter@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.14.2.tgz#77c069047fb1a4359ee6a51f51829508e44a1e3d" + integrity sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ== + dependencies: + "@algolia/cache-common" "4.14.2" + "@algolia/logger-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@applitools/dom-capture@11.1.1": version "11.1.1" resolved "https://registry.yarnpkg.com/@applitools/dom-capture/-/dom-capture-11.1.1.tgz#5bd61638dcacc224eaee876b1541bae7af339df4" @@ -689,7 +812,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== -"@babel/parser@^7.19.1": +"@babel/parser@^7.16.4", "@babel/parser@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== @@ -1754,6 +1877,29 @@ debug "^3.1.0" lodash.once "^4.1.1" +"@docsearch/css@3.2.1", "@docsearch/css@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.2.1.tgz#c05d7818b0e43b42f9efa2d82a11c36606b37b27" + integrity sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g== + +"@docsearch/js@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.2.1.tgz#d6856fb6223c7a47091640264d5144d59806bc30" + integrity sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg== + dependencies: + "@docsearch/react" "3.2.1" + preact "^10.0.0" + +"@docsearch/react@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.2.1.tgz#112ad88db07367fa6fd933d67d58421d8d8289aa" + integrity sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ== + dependencies: + "@algolia/autocomplete-core" "1.7.1" + "@algolia/autocomplete-preset-algolia" "1.7.1" + "@docsearch/css" "3.2.1" + algoliasearch "^4.0.0" + "@es-joy/jsdoccomment@~0.31.0": version "0.31.0" resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz#dbc342cc38eb6878c12727985e693eaef34302bc" @@ -2412,6 +2558,11 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/web-bluetooth@^0.0.15": + version "0.0.15" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz#d60330046a6ed8a13b4a53df3813c44942ebdf72" + integrity sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA== + "@types/yauzl@^2.9.1": version "2.9.2" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" @@ -2546,6 +2697,11 @@ "@typescript-eslint/types" "5.37.0" eslint-visitor-keys "^3.3.0" +"@vitejs/plugin-vue@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz#3a423ea6943a450e806da412a911150e928598ed" + integrity sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA== + "@vitest/coverage-c8@^0.23.2": version "0.23.2" resolved "https://registry.yarnpkg.com/@vitest/coverage-c8/-/coverage-c8-0.23.2.tgz#48bf6ea81a7ce57abf539361d5a6762e87c36448" @@ -2561,6 +2717,123 @@ dependencies: sirv "^2.0.2" +"@vue/compiler-core@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.39.tgz#0d77e635f4bdb918326669155a2dc977c053943e" + integrity sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.39" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz#bd69d35c1a48fe2cea4ab9e96d2a3a735d146fdf" + integrity sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw== + dependencies: + "@vue/compiler-core" "3.2.39" + "@vue/shared" "3.2.39" + +"@vue/compiler-sfc@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz#8fe29990f672805b7c5a2ecfa5b05e681c862ea2" + integrity sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.39" + "@vue/compiler-dom" "3.2.39" + "@vue/compiler-ssr" "3.2.39" + "@vue/reactivity-transform" "3.2.39" + "@vue/shared" "3.2.39" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz#4f3bfb535cb98b764bee45e078700e03ccc60633" + integrity sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ== + dependencies: + "@vue/compiler-dom" "3.2.39" + "@vue/shared" "3.2.39" + +"@vue/devtools-api@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092" + integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ== + +"@vue/reactivity-transform@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz#da6ae6c8fd77791b9ae21976720d116591e1c4aa" + integrity sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.39" + "@vue/shared" "3.2.39" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.39.tgz#e6e3615fe2288d4232b104640ddabd0729a78c80" + integrity sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ== + dependencies: + "@vue/shared" "3.2.39" + +"@vue/runtime-core@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.39.tgz#dc1faccab11b3e81197aba33fb30c9447c1d2c84" + integrity sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g== + dependencies: + "@vue/reactivity" "3.2.39" + "@vue/shared" "3.2.39" + +"@vue/runtime-dom@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.39.tgz#4a8cb132bcef316e8151c5ed07fc7272eb064614" + integrity sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA== + dependencies: + "@vue/runtime-core" "3.2.39" + "@vue/shared" "3.2.39" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.39.tgz#4358292d925233b0d8b54cf0513eaece8b2351c5" + integrity sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ== + dependencies: + "@vue/compiler-ssr" "3.2.39" + "@vue/shared" "3.2.39" + +"@vue/shared@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.39.tgz#302df167559a1a5156da162d8cc6760cef67f8e3" + integrity sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw== + +"@vueuse/core@^9.1.1": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.2.0.tgz#58e3588b9bc5a69010aa9104b00056ee9ebff738" + integrity sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg== + dependencies: + "@types/web-bluetooth" "^0.0.15" + "@vueuse/metadata" "9.2.0" + "@vueuse/shared" "9.2.0" + vue-demi "*" + +"@vueuse/metadata@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.2.0.tgz#6bf7c9c44b9f5ece405837226a0e04a997994458" + integrity sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw== + +"@vueuse/shared@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.2.0.tgz#7831051b2c1d01c3413c749468ee53a86024510e" + integrity sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA== + dependencies: + vue-demi "*" + "@wdio/config@7.16.11": version "7.16.11" resolved "https://registry.yarnpkg.com/@wdio/config/-/config-7.16.11.tgz#c35a0efb9c7ec6c80e3324e9818f636010087e97" @@ -2737,6 +3010,26 @@ ajv@^8.11.0: require-from-string "^2.0.2" uri-js "^4.2.2" +algoliasearch@^4.0.0: + version "4.14.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.14.2.tgz#63f142583bfc3a9bd3cd4a1b098bf6fe58e56f6c" + integrity sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg== + dependencies: + "@algolia/cache-browser-local-storage" "4.14.2" + "@algolia/cache-common" "4.14.2" + "@algolia/cache-in-memory" "4.14.2" + "@algolia/client-account" "4.14.2" + "@algolia/client-analytics" "4.14.2" + "@algolia/client-common" "4.14.2" + "@algolia/client-personalization" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/logger-common" "4.14.2" + "@algolia/logger-console" "4.14.2" + "@algolia/requester-browser-xhr" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/requester-node-http" "4.14.2" + "@algolia/transporter" "4.14.2" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -3079,6 +3372,11 @@ body-parser@1.20.0: type-is "~1.6.18" unpipe "1.0.0" +body-scroll-lock@^4.0.0-beta.0: + version "4.0.0-beta.0" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz#4f78789d10e6388115c0460cd6d7d4dd2bbc4f7e" + integrity sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ== + body@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" @@ -3979,6 +4277,11 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== + cypress-image-snapshot@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/cypress-image-snapshot/-/cypress-image-snapshot-4.0.1.tgz#59084e713a8d03500c8e053ad7a76f3f18609648" @@ -4836,15 +5139,6 @@ esbuild-freebsd-arm64@0.15.8: resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz#0efe2741fbcaa2cfd31b9f94bd3ca7385b68c469" integrity sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w== -esbuild-jest@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/esbuild-jest/-/esbuild-jest-0.5.0.tgz#7a9964bfdecafca3b675a8aeb08193bcdba8b9d7" - integrity sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ== - dependencies: - "@babel/core" "^7.12.17" - "@babel/plugin-transform-modules-commonjs" "^7.12.13" - babel-jest "^26.6.3" - esbuild-linux-32@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz#6fc98659105da5c0d1fedfce3b7b9fa24ebee0d4" @@ -4920,7 +5214,7 @@ esbuild-windows-arm64@0.15.8: resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz#1d75235290bf23a111e6c0b03febd324af115cb1" integrity sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg== -esbuild@^0.15.8: +esbuild@^0.15.6, esbuild@^0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.8.tgz#75daa25d03f6dd9cc9355030eba2b93555b42cd4" integrity sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q== @@ -5183,6 +5477,11 @@ estraverse@~1.5.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -7274,6 +7573,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -8005,6 +8311,11 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + null-check@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" @@ -8515,7 +8826,7 @@ postcss-value-parser@4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^8.4.16: +postcss@^8.1.10, postcss@^8.4.16: version "8.4.16" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== @@ -8524,6 +8835,11 @@ postcss@^8.4.16: picocolors "^1.0.0" source-map-js "^1.0.2" +preact@^10.0.0: + version "10.11.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.0.tgz#26af45a0613f4e17a197cc39d7a1ea23e09b2532" + integrity sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -9391,6 +9707,15 @@ shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== +shiki@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.11.1.tgz#df0f719e7ab592c484d8b73ec10e215a503ab8cc" + integrity sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA== + dependencies: + jsonc-parser "^3.0.0" + vscode-oniguruma "^1.6.1" + vscode-textmate "^6.0.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -9540,6 +9865,11 @@ source-map@~0.1.33: dependencies: amdefine ">=0.0.4" +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" @@ -10730,6 +11060,44 @@ vinyl@^2.0.0, vinyl@^2.1.0: optionalDependencies: fsevents "~2.3.2" +vite@^3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.3.tgz#b2a0821c11aae124bb7618f8036913c689afcc59" + integrity sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA== + dependencies: + esbuild "^0.15.6" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + optionalDependencies: + fsevents "~2.3.2" + +vitepress-plugin-mermaid@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/vitepress-plugin-mermaid/-/vitepress-plugin-mermaid-2.0.7.tgz#6949c301f39a08c168a8836832ab4ef1e92699a1" + integrity sha512-VIi+pCvi7StdMjZvJtIsg90k44eLtG/NGkeKKvu17G/7AqKVIlt3Cb23KogdHiSlS2f4Ku70a2JAH1x0aEDM4w== + +vitepress-plugin-search@^1.0.4-alpha.7: + version "1.0.4-alpha.7" + resolved "https://registry.yarnpkg.com/vitepress-plugin-search/-/vitepress-plugin-search-1.0.4-alpha.7.tgz#b0514b5fdb94fb6449465d9ab3207dc68cfc1333" + integrity sha512-2Ice0wP93lQRVFh9U0atZLMoGggik0BtFsz+CuuWVlUhHkw7qxgRwtGarTRKijht4G8gRQ0N6Qrw56pcCGXoYw== + +vitepress@^1.0.0-alpha.15: + version "1.0.0-alpha.15" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.0.0-alpha.15.tgz#26ff8a8b5bae298ac6e47e5fec20d873a3a5960a" + integrity sha512-+pHJQCpnv0wVgLRyonisrj7Y77PVhbns2nTLxV9GkH3T+RTY/W2JmRatzBg5WciMaPyO8Ms6F3YElO5PULVv3w== + dependencies: + "@docsearch/css" "^3.2.1" + "@docsearch/js" "^3.2.1" + "@vitejs/plugin-vue" "^3.1.0" + "@vue/devtools-api" "^6.2.1" + "@vueuse/core" "^9.1.1" + body-scroll-lock "^4.0.0-beta.0" + nprogress "^0.2.0" + shiki "^0.11.1" + vite "^3.1.0" + vue "^3.2.38" + vitest@0.23.2: version "0.23.2" resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.2.tgz#f978de0f2ada1b7c5ff8dc479ce75b976957ff19" @@ -10798,11 +11166,26 @@ vscode-nls@^5.0.0: resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840" integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== +vscode-oniguruma@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" + integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + +vscode-textmate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-6.0.0.tgz#a3777197235036814ac9a92451492f2748589210" + integrity sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ== + vscode-uri@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0" integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA== +vue-demi@*: + version "0.13.11" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + vue-template-compiler@^2.5.16: version "2.6.14" resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" @@ -10811,6 +11194,17 @@ vue-template-compiler@^2.5.16: de-indent "^1.0.2" he "^1.1.0" +vue@^3.2.38: + version "3.2.39" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.39.tgz#de071c56c4c32c41cbd54e55f11404295c0dd62d" + integrity sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g== + dependencies: + "@vue/compiler-dom" "3.2.39" + "@vue/compiler-sfc" "3.2.39" + "@vue/runtime-dom" "3.2.39" + "@vue/server-renderer" "3.2.39" + "@vue/shared" "3.2.39" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" From db31f61368c2414f3bd5f5841bf217d75ba60a5e Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 22 Sep 2022 11:12:57 +0200 Subject: [PATCH 0087/1038] Use of pnpm for the monorepo --- README.md | 17 + package.json | 3 - packages/mermaid-mindmap/package.json | 7 +- packages/mermaid/package.json | 7 +- pnpm-lock.yaml | 11371 ++++++++++++++++++++++++ pnpm-workspace.yaml | 3 + 6 files changed, 11400 insertions(+), 8 deletions(-) create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml diff --git a/README.md b/README.md index f42bf348df..b809e3bbf2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,22 @@ # mermaid [![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +# Whoa, whats going on here? + +We are transforming the Mermaid repository to a so called mono-repo. This is a part of the effort to decouple the diagrams from the core of mermaid. This will: + +- Make it possible to select which diagrams to include on your site +- Open up for lazy loading +- Make it possible to add diagrams from outside of the Mermaid repository +- Separate the release flow between different diagrams and the Mermaid core + +As such be aware of sime changes.. + +# We use pnpm now + +# The source code has moved + +It is now localted in the src forunder for respoective package located as subfoders in packages. + English | [简体中文](./README.zh-CN.md) diff --git a/package.json b/package.json index 4175a3fe50..4ecedba478 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,6 @@ { "name": "mermaid-monorepo", "private": true, - "workspaces": [ - "packages/*" - ], "version": "9.2.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid.core.mjs", diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 5d2f6a312a..4acac1b450 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.0-rc1", + "version": "9.2.0-rc2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid-mindmap.core.mjs", "module": "dist/mermaid-mindmap.core.mjs", @@ -59,7 +59,10 @@ "mermaid": "*", "non-layered-tidy-tree-layout": "^2.0.2" }, - "devDependencies": {}, + "devDependencies": { + "concurrently": "^7.4.0", + "rimraf": "^3.0.2" + }, "resolutions": { "d3": "^7.0.0" }, diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index d03d5fca84..b81417996c 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.2.0-rc1", + "version": "9.2.0-rc2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid.core.mjs", "module": "dist/mermaid.core.mjs", @@ -33,7 +33,7 @@ "dev": "node .esbuild/serve.cjs", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "yarn docs:build --verify", - "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", + "todo-postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", "release": "yarn build", "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", @@ -45,7 +45,8 @@ "test": "yarn lint && vitest run", "test:watch": "vitest --coverage --watch", "prepublishOnly": "yarn build && yarn test", - "prepare": "concurrently \"husky install\" \"yarn build\"", + "todo-prepare": "concurrently \"husky install\" \"yarn build\"", + "prepare": "concurrently \"yarn build\"", "pre-commit": "lint-staged" }, "repository": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000000..ca7d4ee9b4 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,11371 @@ +lockfileVersion: 5.4 + +overrides: + d3: ^7.0.0 + +importers: + + .: + specifiers: + '@applitools/eyes-cypress': ^3.25.7 + '@braintree/sanitize-url': ^6.0.0 + '@commitlint/cli': ^17.1.2 + '@commitlint/config-conventional': ^17.0.0 + '@types/d3': ^7.4.0 + '@types/dompurify': ^2.3.4 + '@types/eslint': ^8.4.6 + '@types/express': ^4.17.13 + '@types/jsdom': ^20.0.0 + '@types/lodash': ^4.14.185 + '@types/prettier': ^2.7.0 + '@types/stylis': ^4.0.2 + '@typescript-eslint/eslint-plugin': ^5.37.0 + '@typescript-eslint/parser': ^5.37.0 + '@vitest/coverage-c8': ^0.23.2 + '@vitest/ui': ^0.23.2 + concurrently: ^7.4.0 + coveralls: ^3.1.1 + cypress: ^10.0.0 + cypress-image-snapshot: ^4.0.1 + d3: ^7.0.0 + dagre: ^0.8.5 + dagre-d3: ^0.6.4 + documentation: 13.2.0 + dompurify: 2.4.0 + esbuild: ^0.15.8 + eslint: ^8.23.1 + eslint-config-prettier: ^8.5.0 + eslint-plugin-cypress: ^2.12.1 + eslint-plugin-html: ^7.1.0 + eslint-plugin-jest: ^27.0.4 + eslint-plugin-jsdoc: ^39.3.6 + eslint-plugin-json: ^3.1.0 + eslint-plugin-markdown: ^3.0.0 + express: ^4.18.1 + fast-clone: ^1.5.13 + globby: ^13.1.2 + graphlib: ^2.1.8 + husky: ^8.0.0 + identity-obj-proxy: ^3.0.0 + jison: ^0.4.18 + js-base64: 3.7.2 + jsdom: ^20.0.0 + khroma: ^2.0.0 + lint-staged: ^13.0.0 + lodash: ^4.17.21 + moment: ^2.23.0 + moment-mini: ^2.24.0 + non-layered-tidy-tree-layout: ^2.0.2 + path-browserify: ^1.0.1 + prettier: ^2.7.1 + prettier-plugin-jsdoc: ^0.4.2 + remark: ^14.0.2 + rimraf: ^3.0.2 + start-server-and-test: ^1.12.6 + stylis: ^4.1.2 + ts-node: ^10.9.1 + typescript: ^4.8.3 + unist-util-flatmap: ^1.0.0 + vitest: ^0.23.1 + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + dagre: 0.8.5 + dagre-d3: 0.6.4 + dompurify: 2.4.0 + fast-clone: 1.5.13 + graphlib: 2.1.8 + khroma: 2.0.0 + lodash: 4.17.21 + moment-mini: 2.29.4 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.1.2 + devDependencies: + '@applitools/eyes-cypress': 3.27.1 + '@commitlint/cli': 17.1.2 + '@commitlint/config-conventional': 17.1.0 + '@types/d3': 7.4.0 + '@types/dompurify': 2.3.4 + '@types/eslint': 8.4.6 + '@types/express': 4.17.14 + '@types/jsdom': 20.0.0 + '@types/lodash': 4.14.185 + '@types/prettier': 2.7.0 + '@types/stylis': 4.0.2 + '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry + '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@vitest/coverage-c8': 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm + '@vitest/ui': 0.23.4 + concurrently: 7.4.0 + coveralls: 3.1.1 + cypress: 10.8.0 + cypress-image-snapshot: 4.0.1_cypress@10.8.0 + documentation: 13.2.0 + esbuild: 0.15.8 + eslint: 8.23.1 + eslint-config-prettier: 8.5.0_eslint@8.23.1 + eslint-plugin-cypress: 2.12.1_eslint@8.23.1 + eslint-plugin-html: 7.1.0 + eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 + eslint-plugin-json: 3.1.0 + eslint-plugin-markdown: 3.0.0_eslint@8.23.1 + express: 4.18.1 + globby: 13.1.2 + husky: 8.0.1 + identity-obj-proxy: 3.0.0 + jison: 0.4.18 + js-base64: 3.7.2 + jsdom: 20.0.0 + lint-staged: 13.0.3 + moment: 2.29.4 + path-browserify: 1.0.1 + prettier: 2.7.1 + prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 + remark: 14.0.2 + rimraf: 3.0.2 + start-server-and-test: 1.14.0 + ts-node: 10.9.1_typescript@4.8.3 + typescript: 4.8.3 + unist-util-flatmap: 1.0.0 + vitest: 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm + + packages/mermaid: + specifiers: + '@applitools/eyes-cypress': ^3.25.7 + '@braintree/sanitize-url': ^6.0.0 + '@commitlint/cli': ^17.1.2 + '@commitlint/config-conventional': ^17.0.0 + '@types/d3': ^7.4.0 + '@types/dompurify': ^2.3.4 + '@types/eslint': ^8.4.6 + '@types/express': ^4.17.13 + '@types/jsdom': ^20.0.0 + '@types/lodash': ^4.14.185 + '@types/prettier': ^2.7.0 + '@types/stylis': ^4.0.2 + '@typescript-eslint/eslint-plugin': ^5.37.0 + '@typescript-eslint/parser': ^5.37.0 + '@vitest/coverage-c8': ^0.23.2 + '@vitest/ui': ^0.23.2 + concurrently: ^7.4.0 + coveralls: ^3.1.1 + cypress: ^10.0.0 + cypress-image-snapshot: ^4.0.1 + d3: ^7.0.0 + dagre: ^0.8.5 + dagre-d3: ^0.6.4 + documentation: 13.2.0 + dompurify: 2.4.0 + esbuild: ^0.15.8 + eslint: ^8.23.1 + eslint-config-prettier: ^8.5.0 + eslint-plugin-cypress: ^2.12.1 + eslint-plugin-html: ^7.1.0 + eslint-plugin-jest: ^27.0.4 + eslint-plugin-jsdoc: ^39.3.6 + eslint-plugin-json: ^3.1.0 + eslint-plugin-markdown: ^3.0.0 + express: ^4.18.1 + fast-clone: ^1.5.13 + globby: ^13.1.2 + graphlib: ^2.1.8 + husky: ^8.0.0 + identity-obj-proxy: ^3.0.0 + jison: ^0.4.18 + js-base64: 3.7.2 + jsdom: ^20.0.0 + khroma: ^2.0.0 + lint-staged: ^13.0.0 + lodash: ^4.17.21 + moment: ^2.23.0 + moment-mini: ^2.24.0 + non-layered-tidy-tree-layout: ^2.0.2 + path-browserify: ^1.0.1 + prettier: ^2.7.1 + prettier-plugin-jsdoc: ^0.4.2 + remark: ^14.0.2 + rimraf: ^3.0.2 + start-server-and-test: ^1.12.6 + stylis: ^4.1.2 + ts-node: ^10.9.1 + typescript: ^4.8.3 + unist-util-flatmap: ^1.0.0 + vitest: ^0.23.1 + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + dagre: 0.8.5 + dagre-d3: 0.6.4 + dompurify: 2.4.0 + fast-clone: 1.5.13 + graphlib: 2.1.8 + khroma: 2.0.0 + lodash: 4.17.21 + moment-mini: 2.29.4 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.1.2 + devDependencies: + '@applitools/eyes-cypress': 3.27.1 + '@commitlint/cli': 17.1.2 + '@commitlint/config-conventional': 17.1.0 + '@types/d3': 7.4.0 + '@types/dompurify': 2.3.4 + '@types/eslint': 8.4.6 + '@types/express': 4.17.14 + '@types/jsdom': 20.0.0 + '@types/lodash': 4.14.185 + '@types/prettier': 2.7.0 + '@types/stylis': 4.0.2 + '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry + '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@vitest/coverage-c8': 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm + '@vitest/ui': 0.23.4 + concurrently: 7.4.0 + coveralls: 3.1.1 + cypress: 10.8.0 + cypress-image-snapshot: 4.0.1_cypress@10.8.0 + documentation: 13.2.0 + esbuild: 0.15.8 + eslint: 8.23.1 + eslint-config-prettier: 8.5.0_eslint@8.23.1 + eslint-plugin-cypress: 2.12.1_eslint@8.23.1 + eslint-plugin-html: 7.1.0 + eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 + eslint-plugin-json: 3.1.0 + eslint-plugin-markdown: 3.0.0_eslint@8.23.1 + express: 4.18.1 + globby: 13.1.2 + husky: 8.0.1 + identity-obj-proxy: 3.0.0 + jison: 0.4.18 + js-base64: 3.7.2 + jsdom: 20.0.0 + lint-staged: 13.0.3 + moment: 2.29.4 + path-browserify: 1.0.1 + prettier: 2.7.1 + prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 + remark: 14.0.2 + rimraf: 3.0.2 + start-server-and-test: 1.14.0 + ts-node: 10.9.1_typescript@4.8.3 + typescript: 4.8.3 + unist-util-flatmap: 1.0.0 + vitest: 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm + + packages/mermaid-mindmap: + specifiers: + '@braintree/sanitize-url': ^6.0.0 + concurrently: ^7.4.0 + d3: ^7.0.0 + mermaid: '*' + non-layered-tidy-tree-layout: ^2.0.2 + rimraf: ^3.0.2 + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + mermaid: link:../mermaid + non-layered-tidy-tree-layout: 2.0.2 + devDependencies: + concurrently: 7.4.0 + rimraf: 3.0.2 + +packages: + + /@applitools/dom-capture/11.1.1: + resolution: {integrity: sha512-aUPsS3h/caQryythSjaX4uG23HzTBsnFBfO7BUvuomMdAm3qIHBstIHPCiUSJbXmPBabfqlWm59YKdxC3PTWcw==} + engines: {node: '>=8.9.0'} + dependencies: + '@applitools/dom-shared': 1.0.5 + '@applitools/functional-commons': 1.6.0 + dev: true + + /@applitools/dom-shared/1.0.5: + resolution: {integrity: sha512-O2zgnnqVi3/Atq7EQjURLa73XNaDFJCj8wHht6WQtxIv1EWYnPutNTmnJSKwK7FnbJAg65OVjZylcz4EezyYZA==} + engines: {node: '>=8.9.0'} + dev: true + + /@applitools/dom-shared/1.0.8: + resolution: {integrity: sha512-HQtYfFvtlPuE9ZShBamtW1LGW2Qq4HxjQx5nF7KiNvrRTlf5/e+AWpZhXCTVEhVkAcSNs/7xR2WvumOUd+usxg==} + engines: {node: '>=8.9.0'} + dev: true + + /@applitools/dom-snapshot/4.6.2: + resolution: {integrity: sha512-8XFbsIl154VK3rqNhHbSzcYDNLJ8QEgHzWht5cM0WhScWVokXUfL+kDmqjLIMZ47VgP3XXxk0rgX5QOs2TZx8Q==} + engines: {node: '>=8.9.0'} + dependencies: + '@applitools/dom-shared': 1.0.8 + '@applitools/functional-commons': 1.6.0 + css-tree: 1.0.0-alpha.39 + pako: 1.0.11 + dev: true + + /@applitools/driver/1.9.20: + resolution: {integrity: sha512-yrVydj5ukcBzADVTyrqEJ9rV2GauUOgC0NvXupvT+3qZSkwGumFb6SxlP5q39jy6/1EmRL9Szl1y9/DbwZ9OdQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.15 + '@applitools/snippets': 2.4.5 + '@applitools/types': 1.5.8 + '@applitools/utils': 1.3.10 + dev: true + + /@applitools/execution-grid-client/1.1.23: + resolution: {integrity: sha512-9J66rP3HYpI10pLH+wbMWr6BAcCuaGIskSDJyitvfS8hc2UyWdpVsAIHdkmivvTEpu3f+VaLKlhINRYlCJRJpQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/logger': 1.1.15 + '@applitools/utils': 1.3.10 + abort-controller: 3.0.0 + node-fetch: 2.6.7 + proxy-agent: 5.0.0 + raw-body: 2.5.1 + yargs: 17.4.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/eyes-api/1.7.5: + resolution: {integrity: sha512-wvFHjPFAVRSCCUg3zEr8HNoRS8lChnm9TwYI/+qjo91eNM+nVSEtPE6tb2GcdUbDqz0zpnCi8N3Mi2TulAZj2w==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.15 + '@applitools/types': 1.5.8 + '@applitools/utils': 1.3.10 + dev: true + + /@applitools/eyes-cypress/3.27.1: + resolution: {integrity: sha512-QtQawBi0B16ClPcyFEyvd8+3VKoZnJcj2UX41U5gnycQvidvJCyruFJlmuL9OnCBgpA17U4y9NnRceeHsywhqQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/eyes-api': 1.7.5 + '@applitools/eyes-universal': 2.10.3 + '@applitools/functional-commons': 1.6.0 + '@applitools/logger': 1.1.15 + '@applitools/visual-grid-client': 15.13.13 + chalk: 3.0.0 + uuid: 8.3.2 + ws: 8.5.0 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - supports-color + - utf-8-validate + dev: true + + /@applitools/eyes-sdk-core/13.8.19: + resolution: {integrity: sha512-brijRwys0kNyGdVictyJPGdqS+6iE3G0gwYHnzBZWvP7ryh6FeIwDbLxyc43UVpmNJPKAToVZ50J+2C/S6E3pQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/dom-capture': 11.1.1 + '@applitools/dom-snapshot': 4.6.2 + '@applitools/driver': 1.9.20 + '@applitools/execution-grid-client': 1.1.23 + '@applitools/isomorphic-fetch': 3.0.0 + '@applitools/logger': 1.1.15 + '@applitools/screenshoter': 3.4.14 + '@applitools/snippets': 2.4.5 + '@applitools/types': 1.5.8 + '@applitools/utils': 1.3.10 + axios: 0.26.0 + chalk: 3.0.0 + tunnel: 0.0.6 + transitivePeerDependencies: + - debug + - encoding + - supports-color + dev: true + + /@applitools/eyes-universal/2.10.3: + resolution: {integrity: sha512-z/1N9RaDakfosQfGTEwFgky0DwPjpw4bCILYx1Te4vlOywCDGSD9KrJmmMqe2YkO2wgqi61uNvQvrBDePKvmHQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/execution-grid-client': 1.1.23 + '@applitools/eyes-sdk-core': 13.8.19 + '@applitools/logger': 1.1.15 + '@applitools/utils': 1.3.10 + '@applitools/visual-grid-client': 15.13.13 + proxy-agent: 5.0.0 + webdriver: 7.16.11 + ws: 7.4.6 + yargs: 17.4.1 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - supports-color + - utf-8-validate + dev: true + + /@applitools/functional-commons/1.6.0: + resolution: {integrity: sha512-fwiF0CbeYHDEOTD/NKaFgaI8LvRcGYG2GaJJiRwcedKko16sQ8F3TK5wXfj2Ytjf+8gjwHwsEEX550z3yvDWxA==} + engines: {node: '>=8.0.0'} + dev: true + + /@applitools/http-commons/2.4.7: + resolution: {integrity: sha512-fsq8ULh70/htb9oHSMTkibMR7AiB+ScraYfQw4H7Sq7JfbFnlefSK0c6ZGfSrjJQx79GRfjrqQYtz59s5lxkcw==} + engines: {node: '>=8.0.0'} + dependencies: + '@applitools/functional-commons': 1.6.0 + '@applitools/monitoring-commons': 1.0.19 + agentkeepalive: 4.2.1 + debug: 4.3.4 + lodash.merge: 4.6.2 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/isomorphic-fetch/3.0.0: + resolution: {integrity: sha512-7rutaN/2M5wYjOIOTKS/Zuc1Na90fJNEAqvo/jCxt7nSD1kYscHV3aCk9t7RD59gmzLMvUTIxFbjl4RUMV8qfg==} + dependencies: + node-fetch: 2.6.7 + whatwg-fetch: 3.6.2 + transitivePeerDependencies: + - encoding + dev: true + + /@applitools/jsdom/1.0.4: + resolution: {integrity: sha512-JtjNfTJtphJYHEkicW4xlwtYuRP3TRvjoszfkrcpxTNMCbGkbop8ed9MuUfR83dAZj5NY9begbmEqJohLJco6w==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + acorn: 8.8.0 + acorn-globals: 6.0.0 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.1 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 10.0.0 + ws: 8.5.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /@applitools/logger/1.1.15: + resolution: {integrity: sha512-2SNbINnxvGxy8G5TXIZHhXWqWBFFn0o/+4ZP57VvohPG8AF4wqXBO3H93LZMMpDz/4prND0bBLqK3XFLY4ppTQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.10 + chalk: 4.1.2 + dev: true + + /@applitools/monitoring-commons/1.0.19: + resolution: {integrity: sha512-rzEOvGoiEF4KnK0PJ9I0btdwnaNlIPLYhjF1vTEG15PoucbbKpix9fYusxWlDG7kMiZya8ZycVPc0woVlNaHRQ==} + engines: {node: '>=8.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@applitools/screenshoter/3.4.14: + resolution: {integrity: sha512-vdaHxzSobJzujyXENSuVybYyOfBWZlDb6OwVzRsiJxpwuN9L5VtOu30kuvxAXzycHMfa+8vLgO2pHnU6Vp/MiQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.15 + '@applitools/snippets': 2.4.5 + '@applitools/utils': 1.3.10 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + + /@applitools/snippets/2.4.5: + resolution: {integrity: sha512-GoLN1wu8u5/qwdk1ozEElqmr4y7AoMQl0Ka0OzisGdx9/L7R0RzSWQCErjkf4LgKiWKK8j7lde3JT9yjxfritQ==} + engines: {node: '>=12.13.0'} + dev: true + + /@applitools/types/1.5.8: + resolution: {integrity: sha512-trMH32oewkrptYG26IzEbwMW9VG9BJo64bzwx/T4oz6ZfndXGCjwGCFQE4FDE++dRZTjzSF00h2YSzIxPAapeQ==} + engines: {node: '>=12.13.0'} + dev: true + + /@applitools/utils/1.3.10: + resolution: {integrity: sha512-CI/5BLB0D/aZn6uL8JJmsErI+TOHCa4Gz5Wi8sJknuPz/V9Ws6jIh9ZCTzvOCDUIp99qLJwD6TSA2BY9aMhCNw==} + engines: {node: '>=12.13.0'} + dev: true + + /@applitools/visual-grid-client/15.13.13: + resolution: {integrity: sha512-3GkzrR0WEcsihRZEgbxXecfBb8Q0U/L7VDNpy/APlw7K54kWPgTal/CYk1NwLDKj9iqpHlFfvDhI0zoeCNrR4A==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/eyes-sdk-core': 13.8.19 + '@applitools/functional-commons': 1.6.0 + '@applitools/http-commons': 2.4.7 + '@applitools/isomorphic-fetch': 3.0.0 + '@applitools/jsdom': 1.0.4 + '@applitools/logger': 1.1.15 + abort-controller: 3.0.0 + chalk: 3.0.0 + postcss-value-parser: 4.1.0 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - supports-color + - utf-8-validate + dev: true + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.19.1: + resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.12.3: + resolution: {integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.12.1 + '@babel/helper-module-transforms': 7.19.0 + '@babel/helpers': 7.19.0 + '@babel/parser': 7.12.3 + '@babel/template': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + convert-source-map: 1.8.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + lodash: 4.17.21 + resolve: 1.22.1 + semver: 5.7.1 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.12.1: + resolution: {integrity: sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==} + dependencies: + '@babel/types': 7.19.0 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + + /@babel/generator/7.19.0: + resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: + resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-explode-assignable-expression': 7.18.6 + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-compilation-targets/7.19.1_@babel+core@7.12.3: + resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.19.1 + '@babel/core': 7.12.3 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.1 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.12.3: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-member-expression-to-functions/7.18.9: + resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-module-transforms/7.19.0: + resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} + engines: {node: '>=6.9.0'} + 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.19.1 + '@babel/template': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression/7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-plugin-utils/7.19.0: + resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-wrap-function': 7.19.0 + '@babel/types': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.19.1: + resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access/7.18.6: + resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers/7.18.9: + resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/helper-string-parser/7.18.10: + resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function/7.19.0: + resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.19.0 + '@babel/template': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers/7.19.0: + resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.12.3: + resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/parser/7.19.1: + resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.19.0 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.19.1_@babel+core@7.12.3: + resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-decorators/7.19.1_@babel+core@7.12.3: + resolution: {integrity: sha512-LfIKNBBY7Q1OX5C4xAgRQffOg2OnhAo9fnbcOHgOC9Yytm2Sw+4XqHufRYU86tHomzepxtvuVaNO+3EVKR4ivw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-do-expressions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-ddToGCONJhCuL+l4FhtGnKl5ZYCj9fDVFiqiCdQDpeIbVn/NvMeSib+7T1/rk08jRafae4qNiP8OnJyuqlsuYA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-do-expressions': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-export-default-from/7.18.10_@babel+core@7.12.3: + resolution: {integrity: sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-export-default-from': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-function-bind/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-9RfxqKkRBCCT0xoBl9AqieCMscJmSAL9HYixGMWH549jUpT9csWWK/HEYZEx9t9iW/PRSXgX95x9bDlgtAJGFA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-function-bind': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-function-sent/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-UdaOKPOLPt0O+Xu26tnw6oAZMLXhk+yMrXOzn6kAzTHBnWHJsoN1hlrgxFAQ+FRLS0ql1oYIQ2phvoFzmN3GMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-wrap-function': 7.19.0 + '@babel/plugin-syntax-function-sent': 7.18.6_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-object-rest-spread/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.19.1 + '@babel/core': 7.12.3 + '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-pipeline-operator/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-Pc33e6m8f4MJhRXVCUwiKZNtEm+W2CUPHIL0lyJNtkp+w6d75CLw3gsBKQ81VAMUgT9jVPIEU8gwJ5nJgmJ1Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-pipeline-operator': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-throw-expressions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-WHOrJyhGoGrdtW480L79cF7Iq/gZDZ/z6OqK7mVyFR5I37dTpog/wNgb6hmaM3HYZtULEJl++7VaMWkNZsOcHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-throw-expressions': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.12.3: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-do-expressions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-kTogvOsjBTVOSZtkkziiXB5hwGXqwhq2gBXDaiWVruRLDT7C2GqfbsMnicHJ7ePq2GE8UJeWS34YbNP6yDhwUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-function-bind/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-wZN0Aq/AScknI9mKGcR3TpHdASMufFGaeJgc1rhPmLtZ/PniwjePSh8cfh8tXMB3U4kh/3cRKrLjDtedejg8jQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-function-sent/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-f3OJHIlFIkg+cP1Hfo2SInLhsg0pz2Ikmgo7jMdIIKC+3jVXQlHB0bgSapOWxeWI0SU28qIWmfn5ZKu1yPJHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-import-assertions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-pipeline-operator/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-pFtIdQomJtkTHWcNsGXhjJ5YUkL+AxJnP4G+Ol85UO6uT2fpHTPYLLE5bBeRA9cxf25qa/VKsJ3Fi67Gyqe3rA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.12.3: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-throw-expressions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-rp1CqEZXGv1z1YZ3qYffBH3rhnOxrTwQG8fh2yqulTurwv9zu3Gthfd+niZBLSOi1rY6146TgF+JmVeDXaX4TQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.3: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-block-scoping/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-classes/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-destructuring/7.18.13_@babel+core@7.12.3: + resolution: {integrity: sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.12.3: + resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-modules-amd/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-plugin-utils': 7.19.0 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-simple-access': 7.18.6 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-validator-identifier': 7.19.1 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-module-transforms': 7.19.0 + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.12.3: + resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-replace-supers': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.18.8_@babel+core@7.12.3: + resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 + dev: true + + /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.12.3 + '@babel/types': 7.19.0 + dev: true + + /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + regenerator-transform: 0.15.0 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-spread/7.19.0_@babel+core@7.12.3: + resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.12.3: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.12.3: + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + dev: true + + /@babel/preset-env/7.19.1_@babel+core@7.12.3: + resolution: {integrity: sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.19.1 + '@babel/core': 7.12.3 + '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-async-generator-functions': 7.19.1_@babel+core@7.12.3 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-object-rest-spread': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-import-assertions': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 + '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-block-scoping': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-classes': 7.19.0_@babel+core@7.12.3 + '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-destructuring': 7.18.13_@babel+core@7.12.3 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.12.3 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-modules-amd': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-modules-commonjs': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-modules-systemjs': 7.19.0_@babel+core@7.12.3 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-named-capturing-groups-regex': 7.19.1_@babel+core@7.12.3 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.12.3 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.12.3 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.12.3 + '@babel/preset-modules': 0.1.5_@babel+core@7.12.3 + '@babel/types': 7.19.0 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.12.3 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.12.3 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.12.3 + core-js-compat: 3.25.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-flow/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.12.3 + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.12.3: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 + '@babel/types': 7.19.0 + esutils: 2.0.3 + dev: true + + /@babel/preset-react/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.12.3 + dev: true + + /@babel/preset-stage-0/7.8.3: + resolution: {integrity: sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ==} + dev: true + + /@babel/runtime/7.19.0: + resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.9 + dev: true + + /@babel/template/7.18.10: + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 + dev: true + + /@babel/traverse/7.19.1: + resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.19.0 + '@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.19.1 + '@babel/types': 7.19.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.19.0: + resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.18.10 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@braintree/sanitize-url/6.0.0: + resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} + dev: false + + /@colors/colors/1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + /@commitlint/cli/17.1.2: + resolution: {integrity: sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw==} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/format': 17.0.0 + '@commitlint/lint': 17.1.0 + '@commitlint/load': 17.1.2 + '@commitlint/read': 17.1.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.5.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/config-conventional/17.1.0: + resolution: {integrity: sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + dev: true + + /@commitlint/config-validator/17.1.0: + resolution: {integrity: sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + ajv: 8.11.0 + dev: true + + /@commitlint/ensure/17.0.0: + resolution: {integrity: sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + lodash: 4.17.21 + dev: true + + /@commitlint/execute-rule/17.0.0: + resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/format/17.0.0: + resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored/17.1.0: + resolution: {integrity: sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + semver: 7.3.7 + dev: true + + /@commitlint/lint/17.1.0: + resolution: {integrity: sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.1.0 + '@commitlint/parse': 17.0.0 + '@commitlint/rules': 17.0.0 + '@commitlint/types': 17.0.0 + dev: true + + /@commitlint/load/17.1.2: + resolution: {integrity: sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.1.0 + '@commitlint/execute-rule': 17.0.0 + '@commitlint/resolve-extends': 17.1.0 + '@commitlint/types': 17.0.0 + '@types/node': 14.18.29 + chalk: 4.1.2 + cosmiconfig: 7.0.1 + cosmiconfig-typescript-loader: 4.1.0_3owiowz3ujipd4k6pbqn3n7oui + lodash: 4.17.21 + resolve-from: 5.0.0 + ts-node: 10.9.1_ck2axrxkiif44rdbzjywaqjysa + typescript: 4.8.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/message/17.0.0: + resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/parse/17.0.0: + resolution: {integrity: sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: true + + /@commitlint/read/17.1.0: + resolution: {integrity: sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.0.0 + '@commitlint/types': 17.0.0 + fs-extra: 10.1.0 + git-raw-commits: 2.0.11 + minimist: 1.2.6 + dev: true + + /@commitlint/resolve-extends/17.1.0: + resolution: {integrity: sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.1.0 + '@commitlint/types': 17.0.0 + import-fresh: 3.3.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules/17.0.0: + resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/ensure': 17.0.0 + '@commitlint/message': 17.0.0 + '@commitlint/to-lines': 17.0.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines/17.0.0: + resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/top-level/17.0.0: + resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==} + engines: {node: '>=v14'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types/17.0.0: + resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==} + engines: {node: '>=v14'} + dependencies: + chalk: 4.1.2 + dev: true + + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@cypress/request/2.88.10: + resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==} + engines: {node: '>= 6'} + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + http-signature: 1.3.6 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + dev: true + + /@cypress/xvfb/1.2.4_supports-color@8.1.1: + resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} + dependencies: + debug: 3.2.7_supports-color@8.1.1 + lodash.once: 4.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@es-joy/jsdoccomment/0.31.0: + resolution: {integrity: sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==} + engines: {node: ^14 || ^16 || ^17 || ^18} + dependencies: + comment-parser: 1.3.1 + esquery: 1.4.0 + jsdoc-type-pratt-parser: 3.1.0 + dev: true + + /@esbuild/android-arm/0.15.8: + resolution: {integrity: sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dependencies: + esbuild-wasm: 0.15.8 + dev: true + optional: true + + /@esbuild/linux-loong64/0.15.8: + resolution: {integrity: sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc/1.3.2: + resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.0 + globals: 13.17.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@hapi/hoek/9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: true + + /@hapi/topo/5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + + /@humanwhocodes/config-array/0.10.5: + resolution: {integrity: sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/gitignore-to-minimatch/1.0.2: + resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} + dev: true + + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@hutson/parse-repository-url/3.0.2: + resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.15 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.15: + resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + dev: true + + /@sideway/address/4.1.4: + resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + + /@sideway/formula/3.0.0: + resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==} + dev: true + + /@sideway/pinpoint/2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: true + + /@sindresorhus/is/4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true + + /@szmarczak/http-timer/4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + dev: true + + /@tootallnate/once/1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + dev: true + + /@tootallnate/once/2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16/1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + dev: true + + /@types/body-parser/1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + dependencies: + '@types/connect': 3.4.35 + '@types/node': 18.7.18 + dev: true + + /@types/cacheable-request/6.0.2: + resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} + dependencies: + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.4 + '@types/node': 16.11.59 + '@types/responselike': 1.0.0 + dev: true + + /@types/chai-subset/1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.3 + dev: true + + /@types/chai/4.3.3: + resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} + dev: true + + /@types/connect/3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + dependencies: + '@types/node': 18.7.18 + dev: true + + /@types/d3-array/3.0.3: + resolution: {integrity: sha512-Reoy+pKnvsksN0lQUlcH6dOGjRZ/3WRwXR//m+/8lt1BXeI4xyaUZoqULNjyXXRuh0Mj4LNpkCvhUpQlY3X5xQ==} + dev: true + + /@types/d3-axis/3.0.1: + resolution: {integrity: sha512-zji/iIbdd49g9WN0aIsGcwcTBUkgLsCSwB+uH+LPVDAiKWENMtI3cJEWt+7/YYwelMoZmbBfzA3qCdrZ2XFNnw==} + dependencies: + '@types/d3-selection': 3.0.3 + dev: true + + /@types/d3-brush/3.0.1: + resolution: {integrity: sha512-B532DozsiTuQMHu2YChdZU0qsFJSio3Q6jmBYGYNp3gMDzBmuFFgPt9qKA4VYuLZMp4qc6eX7IUFUEsvHiXZAw==} + dependencies: + '@types/d3-selection': 3.0.3 + dev: true + + /@types/d3-chord/3.0.1: + resolution: {integrity: sha512-eQfcxIHrg7V++W8Qxn6QkqBNBokyhdWSAS73AbkbMzvLQmVVBviknoz2SRS/ZJdIOmhcmmdCRE/NFOm28Z1AMw==} + dev: true + + /@types/d3-color/3.1.0: + resolution: {integrity: sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==} + dev: true + + /@types/d3-contour/3.0.1: + resolution: {integrity: sha512-C3zfBrhHZvrpAAK3YXqLWVAGo87A4SvJ83Q/zVJ8rFWJdKejUnDYaWZPkA8K84kb2vDA/g90LTQAz7etXcgoQQ==} + dependencies: + '@types/d3-array': 3.0.3 + '@types/geojson': 7946.0.10 + dev: true + + /@types/d3-delaunay/6.0.1: + resolution: {integrity: sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ==} + dev: true + + /@types/d3-dispatch/3.0.1: + resolution: {integrity: sha512-NhxMn3bAkqhjoxabVJWKryhnZXXYYVQxaBnbANu0O94+O/nX9qSjrA1P1jbAQJxJf+VC72TxDX/YJcKue5bRqw==} + dev: true + + /@types/d3-drag/3.0.1: + resolution: {integrity: sha512-o1Va7bLwwk6h03+nSM8dpaGEYnoIG19P0lKqlic8Un36ymh9NSkNFX1yiXMKNMx8rJ0Kfnn2eovuFaL6Jvj0zA==} + dependencies: + '@types/d3-selection': 3.0.3 + dev: true + + /@types/d3-dsv/3.0.0: + resolution: {integrity: sha512-o0/7RlMl9p5n6FQDptuJVMxDf/7EDEv2SYEO/CwdG2tr1hTfUVi0Iavkk2ax+VpaQ/1jVhpnj5rq1nj8vwhn2A==} + dev: true + + /@types/d3-ease/3.0.0: + resolution: {integrity: sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==} + dev: true + + /@types/d3-fetch/3.0.1: + resolution: {integrity: sha512-toZJNOwrOIqz7Oh6Q7l2zkaNfXkfR7mFSJvGvlD/Ciq/+SQ39d5gynHJZ/0fjt83ec3WL7+u3ssqIijQtBISsw==} + dependencies: + '@types/d3-dsv': 3.0.0 + dev: true + + /@types/d3-force/3.0.3: + resolution: {integrity: sha512-z8GteGVfkWJMKsx6hwC3SiTSLspL98VNpmvLpEFJQpZPq6xpA1I8HNBDNSpukfK0Vb0l64zGFhzunLgEAcBWSA==} + dev: true + + /@types/d3-format/3.0.1: + resolution: {integrity: sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==} + dev: true + + /@types/d3-geo/3.0.2: + resolution: {integrity: sha512-DbqK7MLYA8LpyHQfv6Klz0426bQEf7bRTvhMy44sNGVyZoWn//B0c+Qbeg8Osi2Obdc9BLLXYAKpyWege2/7LQ==} + dependencies: + '@types/geojson': 7946.0.10 + dev: true + + /@types/d3-hierarchy/3.1.0: + resolution: {integrity: sha512-g+sey7qrCa3UbsQlMZZBOHROkFqx7KZKvUpRzI/tAp/8erZWpYq7FgNKvYwebi2LaEiVs1klhUfd3WCThxmmWQ==} + dev: true + + /@types/d3-interpolate/3.0.1: + resolution: {integrity: sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==} + dependencies: + '@types/d3-color': 3.1.0 + dev: true + + /@types/d3-path/3.0.0: + resolution: {integrity: sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==} + dev: true + + /@types/d3-polygon/3.0.0: + resolution: {integrity: sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==} + dev: true + + /@types/d3-quadtree/3.0.2: + resolution: {integrity: sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==} + dev: true + + /@types/d3-random/3.0.1: + resolution: {integrity: sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==} + dev: true + + /@types/d3-scale-chromatic/3.0.0: + resolution: {integrity: sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==} + dev: true + + /@types/d3-scale/4.0.2: + resolution: {integrity: sha512-Yk4htunhPAwN0XGlIwArRomOjdoBFXC3+kCxK2Ubg7I9shQlVSJy/pG/Ht5ASN+gdMIalpk8TJ5xV74jFsetLA==} + dependencies: + '@types/d3-time': 3.0.0 + dev: true + + /@types/d3-selection/3.0.3: + resolution: {integrity: sha512-Mw5cf6nlW1MlefpD9zrshZ+DAWL4IQ5LnWfRheW6xwsdaWOb6IRRu2H7XPAQcyXEx1D7XQWgdoKR83ui1/HlEA==} + dev: true + + /@types/d3-shape/3.1.0: + resolution: {integrity: sha512-jYIYxFFA9vrJ8Hd4Se83YI6XF+gzDL1aC5DCsldai4XYYiVNdhtpGbA/GM6iyQ8ayhSp3a148LY34hy7A4TxZA==} + dependencies: + '@types/d3-path': 3.0.0 + dev: true + + /@types/d3-time-format/4.0.0: + resolution: {integrity: sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==} + dev: true + + /@types/d3-time/3.0.0: + resolution: {integrity: sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==} + dev: true + + /@types/d3-timer/3.0.0: + resolution: {integrity: sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==} + dev: true + + /@types/d3-transition/3.0.2: + resolution: {integrity: sha512-jo5o/Rf+/u6uerJ/963Dc39NI16FQzqwOc54bwvksGAdVfvDrqDpVeq95bEvPtBwLCVZutAEyAtmSyEMxN7vxQ==} + dependencies: + '@types/d3-selection': 3.0.3 + dev: true + + /@types/d3-zoom/3.0.1: + resolution: {integrity: sha512-7s5L9TjfqIYQmQQEUcpMAcBOahem7TRoSO/+Gkz02GbMVuULiZzjF2BOdw291dbO2aNon4m2OdFsRGaCq2caLQ==} + dependencies: + '@types/d3-interpolate': 3.0.1 + '@types/d3-selection': 3.0.3 + dev: true + + /@types/d3/7.4.0: + resolution: {integrity: sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA==} + dependencies: + '@types/d3-array': 3.0.3 + '@types/d3-axis': 3.0.1 + '@types/d3-brush': 3.0.1 + '@types/d3-chord': 3.0.1 + '@types/d3-color': 3.1.0 + '@types/d3-contour': 3.0.1 + '@types/d3-delaunay': 6.0.1 + '@types/d3-dispatch': 3.0.1 + '@types/d3-drag': 3.0.1 + '@types/d3-dsv': 3.0.0 + '@types/d3-ease': 3.0.0 + '@types/d3-fetch': 3.0.1 + '@types/d3-force': 3.0.3 + '@types/d3-format': 3.0.1 + '@types/d3-geo': 3.0.2 + '@types/d3-hierarchy': 3.1.0 + '@types/d3-interpolate': 3.0.1 + '@types/d3-path': 3.0.0 + '@types/d3-polygon': 3.0.0 + '@types/d3-quadtree': 3.0.2 + '@types/d3-random': 3.0.1 + '@types/d3-scale': 4.0.2 + '@types/d3-scale-chromatic': 3.0.0 + '@types/d3-selection': 3.0.3 + '@types/d3-shape': 3.1.0 + '@types/d3-time': 3.0.0 + '@types/d3-time-format': 4.0.0 + '@types/d3-timer': 3.0.0 + '@types/d3-transition': 3.0.2 + '@types/d3-zoom': 3.0.1 + dev: true + + /@types/debug/4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + dependencies: + '@types/ms': 0.7.31 + dev: true + + /@types/dompurify/2.3.4: + resolution: {integrity: sha512-EXzDatIb5EspL2eb/xPGmaC8pePcTHrkDCONjeisusLFrVfl38Pjea/R0YJGu3k9ZQadSvMqW0WXPI2hEo2Ajg==} + dependencies: + '@types/trusted-types': 2.0.2 + dev: true + + /@types/eslint/8.4.6: + resolution: {integrity: sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==} + dependencies: + '@types/estree': 1.0.0 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/express-serve-static-core/4.17.31: + resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + dependencies: + '@types/node': 18.7.18 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + + /@types/express/4.17.14: + resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.31 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.0 + dev: true + + /@types/geojson/7946.0.10: + resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} + dev: true + + /@types/http-cache-semantics/4.0.1: + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} + dev: true + + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/jsdom/20.0.0: + resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} + dependencies: + '@types/node': 18.7.18 + '@types/tough-cookie': 4.0.2 + parse5: 7.1.1 + dev: true + + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/keyv/3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 16.11.59 + dev: true + + /@types/lodash/4.14.185: + resolution: {integrity: sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA==} + dev: true + + /@types/mdast/3.0.10: + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /@types/mime/3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + dev: true + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/ms/0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: true + + /@types/node/14.18.29: + resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} + dev: true + + /@types/node/16.11.59: + resolution: {integrity: sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==} + dev: true + + /@types/node/18.7.18: + resolution: {integrity: sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /@types/prettier/2.7.0: + resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==} + dev: true + + /@types/qs/6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + dev: true + + /@types/range-parser/1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + dev: true + + /@types/responselike/1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 16.11.59 + dev: true + + /@types/serve-static/1.15.0: + resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} + dependencies: + '@types/mime': 3.0.1 + '@types/node': 18.7.18 + dev: true + + /@types/sinonjs__fake-timers/8.1.1: + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + dev: true + + /@types/sizzle/2.3.3: + resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} + dev: true + + /@types/stylis/4.0.2: + resolution: {integrity: sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==} + dev: true + + /@types/tough-cookie/4.0.2: + resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} + dev: true + + /@types/trusted-types/2.0.2: + resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} + dev: true + + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@types/yauzl/2.10.0: + resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} + requiresBuild: true + dependencies: + '@types/node': 14.18.29 + dev: true + optional: true + + /@typescript-eslint/eslint-plugin/5.38.0_wsb62dxj2oqwgas4kadjymcmry: + resolution: {integrity: sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/scope-manager': 5.38.0 + '@typescript-eslint/type-utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + debug: 4.3.4 + eslint: 8.23.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.8.3 + typescript: 4.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.38.0_irgkl5vooow2ydyo6aokmferha: + resolution: {integrity: sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.38.0 + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 + debug: 4.3.4 + eslint: 8.23.1 + typescript: 4.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.38.0: + resolution: {integrity: sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/visitor-keys': 5.38.0 + dev: true + + /@typescript-eslint/type-utils/5.38.0_irgkl5vooow2ydyo6aokmferha: + resolution: {integrity: sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 + '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + debug: 4.3.4 + eslint: 8.23.1 + tsutils: 3.21.0_typescript@4.8.3 + typescript: 4.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.38.0: + resolution: {integrity: sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.38.0_typescript@4.8.3: + resolution: {integrity: sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/visitor-keys': 5.38.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.8.3 + typescript: 4.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.38.0_irgkl5vooow2ydyo6aokmferha: + resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.38.0 + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 + eslint: 8.23.1 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.23.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.38.0: + resolution: {integrity: sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.38.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@vitest/coverage-c8/0.23.4_y2hohvmcqnhseytaw4yjcnsnkm: + resolution: {integrity: sha512-jmD00a5DQH9gu9K+YdvVhcMuv2CzHvU4gCnySS40Ec5hKlXtlCzRfNHl00VnhfuBeaQUmaQYe60BLT413HyDdg==} + dependencies: + c8: 7.12.0 + vitest: 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /@vitest/ui/0.23.4: + resolution: {integrity: sha512-lNZVTTrkHThGAwNQ1ah1qCNnm70r7OLB5LCUdSqboStve/1eKTrtt27QfDSSUTG8AVJQzU0eaN/j8UocH+CqfA==} + dependencies: + sirv: 2.0.2 + dev: true + + /@wdio/config/7.16.11: + resolution: {integrity: sha512-sIk9FINQfXohuDONb8RA1uv+29XvUw6OBHfaaU7/c9gfKiOWiRczdfiLqfySZRwYgEgNhzCw5vHIogTry1h+xQ==} + engines: {node: '>=12.0.0'} + dependencies: + '@wdio/logger': 7.16.0 + '@wdio/types': 7.16.11 + deepmerge: 4.2.2 + glob: 7.2.3 + dev: true + + /@wdio/logger/7.16.0: + resolution: {integrity: sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==} + engines: {node: '>=12.0.0'} + dependencies: + chalk: 4.1.2 + loglevel: 1.8.0 + loglevel-plugin-prefix: 0.8.4 + strip-ansi: 6.0.1 + dev: true + + /@wdio/protocols/7.16.7: + resolution: {integrity: sha512-Wv40pNQcLiPzQ3o98Mv4A8T1EBQ6k4khglz/e2r16CTm+F3DDYh8eLMAsU5cgnmuwwDKX1EyOiFwieykBn5MCg==} + engines: {node: '>=12.0.0'} + dev: true + + /@wdio/types/7.16.11: + resolution: {integrity: sha512-OFVTFEB6qdG84Y+cOWIacV0loGMgq2SF/rGGlGxai89V3UQxzCFTYVoAx6odAuSNZ37wmfWCykyAR/lAlMItoQ==} + engines: {node: '>=12.0.0'} + dependencies: + '@types/node': 16.11.59 + got: 11.8.5 + dev: true + + /@wdio/utils/7.16.11: + resolution: {integrity: sha512-qeXHREZJ7mz3C2cWGOmFG6MS6njp1js4f8zca3iqxaorWshwkrlNsps3B1iTHfkvK6oWnmc2Q0o5CrtLZl0LkA==} + engines: {node: '>=12.0.0'} + dependencies: + '@wdio/logger': 7.16.0 + '@wdio/types': 7.16.11 + p-iteration: 1.1.8 + dev: true + + /JSONSelect/0.4.0: + resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} + engines: {node: '>=0.4.7'} + dev: true + + /JSONStream/1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /JSV/4.0.2: + resolution: {integrity: sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw==} + dev: true + + /abab/2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + + /abort-controller/3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: true + + /accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + + /acorn-globals/6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + dev: true + + /acorn-jsx/5.3.2_acorn@8.8.0: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.0 + dev: true + + /acorn-node/1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + dev: true + + /acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn/8.8.0: + resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /add-stream/1.0.0: + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + dev: true + + /agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive/4.2.1: + resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} + engines: {node: '>= 8.0.0'} + dependencies: + debug: 4.3.4 + depd: 1.1.2 + humanize-ms: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /amdefine/1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} + engines: {node: '>=0.4.2'} + dev: true + optional: true + + /ansi-colors/4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-html/0.0.7: + resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + + /ansi-regex/2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles/2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles/6.1.1: + resolution: {integrity: sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==} + engines: {node: '>=12'} + dev: true + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /app-path/3.3.0: + resolution: {integrity: sha512-EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA==} + engines: {node: '>=8'} + dependencies: + execa: 1.0.0 + dev: true + + /append-buffer/1.0.2: + resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} + engines: {node: '>=0.10.0'} + dependencies: + buffer-equal: 1.0.0 + dev: true + + /arch/2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: true + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /arr-diff/4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten/1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union/3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-flatten/1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + + /array-ify/1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique/0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + + /assertion-error/1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /assign-symbols/1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /ast-types/0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.4.0 + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async/3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atob/2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /aws-sign2/0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4/1.11.0: + resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} + dev: true + + /axios/0.21.4_debug@4.3.2: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + dependencies: + follow-redirects: 1.15.2_debug@4.3.2 + transitivePeerDependencies: + - debug + dev: true + + /axios/0.26.0: + resolution: {integrity: sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==} + dependencies: + follow-redirects: 1.15.2_debug@4.3.2 + transitivePeerDependencies: + - debug + dev: true + + /babel-plugin-dynamic-import-node/2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + dependencies: + object.assign: 4.1.4 + dev: true + + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.12.3: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.19.1 + '@babel/core': 7.12.3 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.12.3: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 + core-js-compat: 3.25.2 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.12.3: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 + transitivePeerDependencies: + - supports-color + dev: true + + /babelify/10.0.0_@babel+core@7.12.3: + resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + dev: true + + /bail/1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + dev: true + + /bail/2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base/0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /binary-searching/2.0.5: + resolution: {integrity: sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA==} + dev: true + + /blob-util/2.0.2: + resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + dev: true + + /bluebird/3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /body-parser/1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /body/5.1.0: + resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==} + dependencies: + continuable-cache: 0.3.1 + error: 7.2.1 + raw-body: 1.1.7 + safe-json-parse: 1.0.1 + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + 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.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browser-process-hrtime/1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + dev: true + + /browser-resolve/1.11.3: + resolution: {integrity: sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==} + dependencies: + resolve: 1.1.7 + dev: true + + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001409 + electron-to-chromium: 1.4.257 + node-releases: 2.0.6 + update-browserslist-db: 1.0.9_browserslist@4.21.4 + dev: true + + /buffer-crc32/0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer-equal/1.0.0: + resolution: {integrity: sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==} + engines: {node: '>=0.4.0'} + dev: true + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer-shims/1.0.0: + resolution: {integrity: sha512-Zy8ZXMyxIT6RMTeY7OP/bDndfj6bwCan7SS98CEndS6deHwWPpseeHlwarNcBim+etXnF9HBc1non5JgDaJU1g==} + dev: true + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bytes/1.0.0: + resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} + dev: true + + /bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /c8/7.12.0: + resolution: {integrity: sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.5 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.0.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /cache-base/1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /cacheable-lookup/5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: true + + /cacheable-request/7.0.2: + resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.0 + keyv: 4.5.0 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + dev: true + + /cached-path-relative/1.1.0: + resolution: {integrity: sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==} + dev: true + + /cachedir/2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.3 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite/1.0.30001409: + resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} + dev: true + + /caseless/0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + + /ccount/1.1.0: + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + dev: true + + /chai/4.3.6: + resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 3.0.1 + get-func-name: 2.0.0 + loupe: 2.3.4 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk/1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /character-entities-html4/1.1.4: + resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} + dev: true + + /character-entities-legacy/1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities/1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-entities/2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: true + + /character-reference-invalid/1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + + /check-error/1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /check-more-types/2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + dev: true + + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /ci-info/3.4.0: + resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} + dev: true + + /cjson/0.3.0: + resolution: {integrity: sha512-bBRQcCIHzI1IVH59fR0bwGrFmi3Btb/JNwM/n401i1DnYgWndpsUBiQRAddLflkZage20A2d25OAWZZk0vBRlA==} + engines: {node: '>= 0.3.0'} + dependencies: + jsonlint: 1.6.0 + dev: true + + /class-utils/0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-table3/0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cliui/6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-buffer/1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + dev: true + + /clone-response/1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone-stats/1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + dev: true + + /clone/2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /cloneable-readable/1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + dependencies: + inherits: 2.0.4 + process-nextick-args: 2.0.1 + readable-stream: 2.3.7 + dev: true + + /collapse-white-space/1.0.6: + resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} + dev: true + + /collection-visit/1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette/2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + dev: true + + /colors/0.5.1: + resolution: {integrity: sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==} + engines: {node: '>=0.1.90'} + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /comma-separated-tokens/1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + dev: true + + /commander/5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + + /commander/7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: false + + /commander/9.4.0: + resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /comment-parser/1.3.1: + resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} + engines: {node: '>= 12.0.0'} + dev: true + + /common-tags/1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /compare-func/2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /component-emitter/1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /concat-stream/1.5.2: + resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==} + engines: {'0': node >= 0.8} + dependencies: + inherits: 2.0.4 + readable-stream: 2.0.6 + typedarray: 0.0.6 + dev: true + + /concat-stream/1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.7 + typedarray: 0.0.6 + dev: true + + /concat-stream/2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.0 + typedarray: 0.0.6 + dev: true + + /concurrently/7.4.0: + resolution: {integrity: sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==} + engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} + hasBin: true + dependencies: + chalk: 4.1.2 + date-fns: 2.29.3 + lodash: 4.17.21 + rxjs: 7.5.6 + shell-quote: 1.7.3 + spawn-command: 0.0.2-1 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.5.1 + dev: true + + /content-disposition/0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /content-type/1.0.4: + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} + dev: true + + /continuable-cache/0.3.1: + resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==} + dev: true + + /conventional-changelog-angular/5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-atom/2.0.8: + resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-codemirror/2.0.8: + resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-config-spec/2.1.0: + resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==} + dev: true + + /conventional-changelog-conventionalcommits/4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits/5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-changelog-core/4.2.4: + resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} + engines: {node: '>=10'} + dependencies: + add-stream: 1.0.0 + conventional-changelog-writer: 5.0.1 + conventional-commits-parser: 3.2.4 + dateformat: 3.0.3 + get-pkg-repo: 4.2.1 + git-raw-commits: 2.0.11 + git-remote-origin-url: 2.0.0 + git-semver-tags: 4.1.1 + lodash: 4.17.21 + normalize-package-data: 3.0.3 + q: 1.5.1 + read-pkg: 3.0.0 + read-pkg-up: 3.0.0 + through2: 4.0.2 + dev: true + + /conventional-changelog-ember/2.0.9: + resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-eslint/3.0.9: + resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-express/2.0.6: + resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-jquery/3.0.11: + resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==} + engines: {node: '>=10'} + dependencies: + q: 1.5.1 + dev: true + + /conventional-changelog-jshint/2.0.9: + resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-preset-loader/2.3.4: + resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} + engines: {node: '>=10'} + dev: true + + /conventional-changelog-writer/5.0.1: + resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + conventional-commits-filter: 2.0.7 + dateformat: 3.0.3 + handlebars: 4.7.7 + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + meow: 8.1.2 + semver: 6.3.0 + split: 1.0.1 + through2: 4.0.2 + dev: true + + /conventional-changelog/3.1.25: + resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} + engines: {node: '>=10'} + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-changelog-atom: 2.0.8 + conventional-changelog-codemirror: 2.0.8 + conventional-changelog-conventionalcommits: 4.6.3 + conventional-changelog-core: 4.2.4 + conventional-changelog-ember: 2.0.9 + conventional-changelog-eslint: 3.0.9 + conventional-changelog-express: 2.0.6 + conventional-changelog-jquery: 3.0.11 + conventional-changelog-jshint: 2.0.9 + conventional-changelog-preset-loader: 2.3.4 + dev: true + + /conventional-commits-filter/2.0.7: + resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} + engines: {node: '>=10'} + dependencies: + lodash.ismatch: 4.4.0 + modify-values: 1.0.1 + dev: true + + /conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /conventional-recommended-bump/6.1.0: + resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + concat-stream: 2.0.0 + conventional-changelog-preset-loader: 2.3.4 + conventional-commits-filter: 2.0.7 + conventional-commits-parser: 3.2.4 + git-raw-commits: 2.0.11 + git-semver-tags: 4.1.1 + meow: 8.1.2 + q: 1.5.1 + dev: true + + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /cookie-signature/1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie/0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /copy-descriptor/0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /core-js-compat/3.25.2: + resolution: {integrity: sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==} + dependencies: + browserslist: 4.21.4 + dev: true + + /core-util-is/1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig-typescript-loader/4.1.0_3owiowz3ujipd4k6pbqn3n7oui: + resolution: {integrity: sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=3' + dependencies: + '@types/node': 14.18.29 + cosmiconfig: 7.0.1 + ts-node: 10.9.1_ck2axrxkiif44rdbzjywaqjysa + typescript: 4.8.3 + dev: true + + /cosmiconfig/7.0.1: + resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /coveralls/3.1.1: + resolution: {integrity: sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==} + engines: {node: '>=6'} + hasBin: true + dependencies: + js-yaml: 3.14.1 + lcov-parse: 1.0.0 + log-driver: 1.2.7 + minimist: 1.2.6 + request: 2.88.2 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-spawn/6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-tree/1.0.0-alpha.39: + resolution: {integrity: sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.6 + source-map: 0.6.1 + dev: true + + /cssom/0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle/2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /cypress-image-snapshot/4.0.1_cypress@10.8.0: + resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} + engines: {node: '>=8'} + peerDependencies: + cypress: ^4.5.0 + dependencies: + chalk: 2.4.2 + cypress: 10.8.0 + fs-extra: 7.0.1 + glob: 7.2.3 + jest-image-snapshot: 4.2.0 + pkg-dir: 3.0.0 + term-img: 4.1.0 + transitivePeerDependencies: + - jest + dev: true + + /cypress/10.8.0: + resolution: {integrity: sha512-QVse0dnLm018hgti2enKMVZR9qbIO488YGX06nH5j3Dg1isL38DwrBtyrax02CANU6y8F4EJUuyW6HJKw1jsFA==} + engines: {node: '>=12.0.0'} + hasBin: true + requiresBuild: true + dependencies: + '@cypress/request': 2.88.10 + '@cypress/xvfb': 1.2.4_supports-color@8.1.1 + '@types/node': 14.18.29 + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.3 + arch: 2.2.0 + blob-util: 2.0.2 + bluebird: 3.7.2 + buffer: 5.7.1 + cachedir: 2.3.0 + chalk: 4.1.2 + check-more-types: 2.24.0 + cli-cursor: 3.1.0 + cli-table3: 0.6.3 + commander: 5.1.0 + common-tags: 1.8.2 + dayjs: 1.11.5 + debug: 4.3.4_supports-color@8.1.1 + enquirer: 2.3.6 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: 4.1.1 + extract-zip: 2.0.1_supports-color@8.1.1 + figures: 3.2.0 + fs-extra: 9.1.0 + getos: 3.2.1 + is-ci: 3.0.1 + is-installed-globally: 0.4.0 + lazy-ass: 1.6.0 + listr2: 3.14.0_enquirer@2.3.6 + lodash: 4.17.21 + log-symbols: 4.1.0 + minimist: 1.2.6 + ospath: 1.2.2 + pretty-bytes: 5.6.0 + proxy-from-env: 1.0.0 + request-progress: 3.0.0 + semver: 7.3.7 + supports-color: 8.1.1 + tmp: 0.2.1 + untildify: 4.0.0 + yauzl: 2.10.0 + dev: true + + /d3-array/3.2.0: + resolution: {integrity: sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==} + engines: {node: '>=12'} + dependencies: + internmap: 2.0.3 + dev: false + + /d3-axis/3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + dev: false + + /d3-brush/3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false + + /d3-chord/3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + dependencies: + d3-path: 3.0.1 + dev: false + + /d3-color/3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + dev: false + + /d3-contour/4.0.0: + resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.0 + dev: false + + /d3-delaunay/6.0.2: + resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} + engines: {node: '>=12'} + dependencies: + delaunator: 5.0.0 + dev: false + + /d3-dispatch/3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + dev: false + + /d3-drag/3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + dev: false + + /d3-dsv/3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + dev: false + + /d3-ease/3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + dev: false + + /d3-fetch/3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + dependencies: + d3-dsv: 3.0.1 + dev: false + + /d3-force/3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + dev: false + + /d3-format/3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + dev: false + + /d3-geo/3.0.1: + resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.0 + dev: false + + /d3-hierarchy/3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + dev: false + + /d3-interpolate/3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + dev: false + + /d3-path/3.0.1: + resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} + engines: {node: '>=12'} + dev: false + + /d3-polygon/3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + dev: false + + /d3-quadtree/3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + dev: false + + /d3-random/3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + dev: false + + /d3-scale-chromatic/3.0.0: + resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + dev: false + + /d3-scale/4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.0 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.0.0 + d3-time-format: 4.1.0 + dev: false + + /d3-selection/3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + dev: false + + /d3-shape/3.1.0: + resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} + engines: {node: '>=12'} + dependencies: + d3-path: 3.0.1 + dev: false + + /d3-time-format/4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + dependencies: + d3-time: 3.0.0 + dev: false + + /d3-time/3.0.0: + resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.0 + dev: false + + /d3-timer/3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + dev: false + + /d3-transition/3.0.1_d3-selection@3.0.0: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + dev: false + + /d3-zoom/3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false + + /d3/7.6.1: + resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.0 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.0 + d3-delaunay: 6.0.2 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.0.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.0.1 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.0.0 + d3-selection: 3.0.0 + d3-shape: 3.1.0 + d3-time: 3.0.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1_d3-selection@3.0.0 + d3-zoom: 3.0.0 + dev: false + + /dagre-d3/0.6.4: + resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} + dependencies: + d3: 7.6.1 + dagre: 0.8.5 + graphlib: 2.1.8 + lodash: 4.17.21 + dev: false + + /dagre/0.8.5: + resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} + dependencies: + graphlib: 2.1.8 + lodash: 4.17.21 + dev: false + + /dargs/7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /dashdash/1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /data-uri-to-buffer/3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + dev: true + + /data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + + /date-fns/2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + dev: true + + /dateformat/3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + dev: true + + /dayjs/1.11.5: + resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==} + dev: true + + /de-indent/1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug/3.2.7_supports-color@8.1.1: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + supports-color: 8.1.1 + dev: true + + /debug/4.3.2: + resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug/4.3.4_supports-color@8.1.1: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + dev: true + + /decamelize-keys/1.1.0: + resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decimal.js/10.4.1: + resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} + dev: true + + /decode-named-character-reference/1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: true + + /decode-uri-component/0.2.0: + resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} + engines: {node: '>=0.10'} + dev: true + + /decompress-response/6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true + + /deep-eql/3.0.1: + resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} + engines: {node: '>=0.12'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /defer-to-connect/2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true + + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property/0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property/1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property/2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /defined/1.0.0: + resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==} + dev: true + + /degenerator/3.0.2: + resolution: {integrity: sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==} + engines: {node: '>= 6'} + dependencies: + ast-types: 0.13.4 + escodegen: 1.14.3 + esprima: 4.0.1 + vm2: 3.9.11 + dev: true + + /delaunator/5.0.0: + resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} + dependencies: + robust-predicates: 3.0.1 + dev: false + + /delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /depd/1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + + /depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + + /destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true + + /detab/2.0.4: + resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} + dependencies: + repeat-string: 1.6.1 + dev: true + + /detect-indent/6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-newline/3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /detective/5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + acorn-node: 1.8.2 + defined: 1.0.0 + minimist: 1.2.6 + dev: true + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine-temporary-fork/2.1.0: + resolution: {integrity: sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /documentation/13.2.0: + resolution: {integrity: sha512-c7lIXNZ9t3481c+OGpj4lWPhtdmQilg4E04wc6TXH1gYg2wWu+/f3c60Otg2HDRVnCQoXrozSWuUYNl7y7FJxw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@babel/core': 7.12.3 + '@babel/generator': 7.12.1 + '@babel/parser': 7.12.3 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-decorators': 7.19.1_@babel+core@7.12.3 + '@babel/plugin-proposal-do-expressions': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.12.3 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-function-bind': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-function-sent': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-pipeline-operator': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-proposal-throw-expressions': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 + '@babel/preset-env': 7.19.1_@babel+core@7.12.3 + '@babel/preset-flow': 7.18.6_@babel+core@7.12.3 + '@babel/preset-react': 7.18.6_@babel+core@7.12.3 + '@babel/preset-stage-0': 7.8.3 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + ansi-html: 0.0.7 + babelify: 10.0.0_@babel+core@7.12.3 + chalk: 2.4.2 + chokidar: 3.5.3 + concat-stream: 1.6.2 + diff: 4.0.2 + doctrine-temporary-fork: 2.1.0 + get-port: 5.1.1 + git-url-parse: 11.6.0 + github-slugger: 1.2.0 + glob: 7.2.3 + globals-docs: 2.4.1 + highlight.js: 10.7.3 + ini: 1.3.8 + js-yaml: 3.14.1 + lodash: 4.17.21 + mdast-util-inject: 1.1.0 + micromatch: 3.1.10 + mime: 2.6.0 + module-deps-sortable: 5.0.3 + parse-filepath: 1.0.2 + pify: 5.0.0 + read-pkg-up: 4.0.0 + remark: 9.0.0 + remark-html: 8.0.0 + remark-reference-links: 4.0.4 + remark-toc: 5.1.1 + resolve: 1.22.1 + stream-array: 1.1.2 + strip-json-comments: 2.0.1 + tiny-lr: 1.1.1 + unist-builder: 1.0.4 + unist-util-visit: 1.4.1 + vfile: 4.2.1 + vfile-reporter: 6.0.2 + vfile-sort: 2.2.2 + vinyl: 2.2.1 + vinyl-fs: 3.0.3 + vue-template-compiler: 2.7.10 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + dev: true + + /dom-serializer/2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.4.0 + dev: true + + /domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domexception/4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /domhandler/5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /dompurify/2.4.0: + resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} + dev: false + + /domutils/3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /dotgitignore/2.1.0: + resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + minimatch: 3.1.2 + dev: true + + /duplexer/0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /duplexer2/0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + dependencies: + readable-stream: 2.3.7 + dev: true + + /duplexify/3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.7 + stream-shift: 1.0.1 + dev: true + + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ebnf-parser/0.1.10: + resolution: {integrity: sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==} + dev: true + + /ecc-jsbn/0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium/1.4.257: + resolution: {integrity: sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A==} + dev: true + + /emoji-regex/6.1.1: + resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /encodeurl/1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + dev: true + + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /error/7.2.1: + resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==} + dependencies: + string-template: 0.2.1 + dev: true + + /esbuild-android-64/0.15.8: + resolution: {integrity: sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dependencies: + esbuild-wasm: 0.15.8 + dev: true + optional: true + + /esbuild-android-arm64/0.15.8: + resolution: {integrity: sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.15.8: + resolution: {integrity: sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.15.8: + resolution: {integrity: sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.15.8: + resolution: {integrity: sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.15.8: + resolution: {integrity: sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.15.8: + resolution: {integrity: sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.15.8: + resolution: {integrity: sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.15.8: + resolution: {integrity: sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.15.8: + resolution: {integrity: sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.15.8: + resolution: {integrity: sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.15.8: + resolution: {integrity: sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.15.8: + resolution: {integrity: sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.15.8: + resolution: {integrity: sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.15.8: + resolution: {integrity: sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.15.8: + resolution: {integrity: sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.15.8: + resolution: {integrity: sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-wasm/0.15.8: + resolution: {integrity: sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.15.8: + resolution: {integrity: sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.15.8: + resolution: {integrity: sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.15.8: + resolution: {integrity: sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.15.8: + resolution: {integrity: sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.8 + '@esbuild/linux-loong64': 0.15.8 + esbuild-android-64: 0.15.8 + esbuild-android-arm64: 0.15.8 + esbuild-darwin-64: 0.15.8 + esbuild-darwin-arm64: 0.15.8 + esbuild-freebsd-64: 0.15.8 + esbuild-freebsd-arm64: 0.15.8 + esbuild-linux-32: 0.15.8 + esbuild-linux-64: 0.15.8 + esbuild-linux-arm: 0.15.8 + esbuild-linux-arm64: 0.15.8 + esbuild-linux-mips64le: 0.15.8 + esbuild-linux-ppc64le: 0.15.8 + esbuild-linux-riscv64: 0.15.8 + esbuild-linux-s390x: 0.15.8 + esbuild-netbsd-64: 0.15.8 + esbuild-openbsd-64: 0.15.8 + esbuild-sunos-64: 0.15.8 + esbuild-windows-32: 0.15.8 + esbuild-windows-64: 0.15.8 + esbuild-windows-arm64: 0.15.8 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escodegen/1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /escodegen/1.3.3: + resolution: {integrity: sha512-z9FWgKc48wjMlpzF5ymKS1AF8OIgnKLp9VyN7KbdtyrP/9lndwUFqCtMm+TAJmJf7KJFFYc4cFJfVTTGkKEwsA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + esprima: 1.1.1 + estraverse: 1.5.1 + esutils: 1.0.0 + optionalDependencies: + source-map: 0.1.43 + dev: true + + /escodegen/2.0.0: + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-config-prettier/8.5.0_eslint@8.23.1: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.23.1 + dev: true + + /eslint-plugin-cypress/2.12.1_eslint@8.23.1: + resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} + peerDependencies: + eslint: '>= 3.2.1' + dependencies: + eslint: 8.23.1 + globals: 11.12.0 + dev: true + + /eslint-plugin-html/7.1.0: + resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} + dependencies: + htmlparser2: 8.0.1 + dev: true + + /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: + resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry + '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + eslint: 8.23.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsdoc/39.3.6_eslint@8.23.1: + resolution: {integrity: sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==} + engines: {node: ^14 || ^16 || ^17 || ^18} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.31.0 + comment-parser: 1.3.1 + debug: 4.3.4 + escape-string-regexp: 4.0.0 + eslint: 8.23.1 + esquery: 1.4.0 + semver: 7.3.7 + spdx-expression-parse: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-json/3.1.0: + resolution: {integrity: sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==} + engines: {node: '>=12.0'} + dependencies: + lodash: 4.17.21 + vscode-json-languageservice: 4.2.1 + dev: true + + /eslint-plugin-markdown/3.0.0_eslint@8.23.1: + resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.23.1 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.23.1: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.23.1 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.23.1: + resolution: {integrity: sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.2 + '@humanwhocodes/config-array': 0.10.5 + '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@humanwhocodes/module-importer': 1.0.1 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.23.1 + eslint-visitor-keys: 3.3.0 + espree: 9.4.0 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.17.0 + globby: 11.1.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-sdsl: 4.1.4 + 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.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.4.0: + resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.0 + acorn-jsx: 5.3.2_acorn@8.8.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /esprima/1.1.1: + resolution: {integrity: sha512-qxxB994/7NtERxgXdFgLHIs9M6bhLXc6qtUmWZ3L8+gTQ9qaoyki2887P2IqAYsoENyr8SUbTutStDniOHSDHg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/1.5.1: + resolution: {integrity: sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==} + engines: {node: '>=0.4.0'} + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils/1.0.0: + resolution: {integrity: sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==} + engines: {node: '>=0.10.0'} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag/1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /event-stream/3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: true + + /event-target-shim/5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: true + + /eventemitter2/6.4.7: + resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + dev: true + + /execa/1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /executable/4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + + /expand-brackets/2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /express/4.18.1: + resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.0 + content-disposition: 0.5.4 + content-type: 1.0.4 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.10.3 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extend-shallow/2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow/3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extglob/2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + 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.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extract-zip/2.0.1_supports-color@8.1.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4_supports-color@8.1.1 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.0 + transitivePeerDependencies: + - supports-color + dev: true + + /extsprintf/1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + + /fast-clone/1.5.13: + resolution: {integrity: sha512-0ez7coyFBQFjZtId+RJqJ+EQs61w9xARfqjqK0AD9vIUkSxWD4HvPt80+5evebZ1tTnv1GYKrPTipx7kOW5ipA==} + dev: false + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket/0.10.0: + resolution: {integrity: sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==} + engines: {node: '>=0.4.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + + /fd-slicer/1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + dev: true + + /figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /file-uri-to-path/2.0.0: + resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} + engines: {node: '>= 6'} + dev: true + + /fill-range/4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /filter-obj/1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + dev: true + + /finalhandler/1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-up/2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /flush-write-stream/1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.7 + dev: true + + /follow-redirects/1.15.2_debug@4.3.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.2 + dev: true + + /for-in/1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /foreground-child/2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /forever-agent/0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /form-data/2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /forwarded/0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + + /fragment-cache/0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fresh/0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + + /from/0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + dev: true + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra/7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra/8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-mkdirp-stream/1.0.0: + resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} + engines: {node: '>= 0.10'} + dependencies: + graceful-fs: 4.2.10 + through2: 2.0.5 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /ftp/0.3.10: + resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==} + engines: {node: '>=0.8.0'} + dependencies: + readable-stream: 1.1.14 + xregexp: 2.0.0 + dev: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name/2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + + /get-intrinsic/1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-pkg-repo/4.2.1: + resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} + engines: {node: '>=6.9.0'} + hasBin: true + dependencies: + '@hutson/parse-repository-url': 3.0.2 + hosted-git-info: 4.1.0 + through2: 2.0.5 + yargs: 16.2.0 + dev: true + + /get-port/5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} + dev: true + + /get-stdin/5.0.1: + resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==} + engines: {node: '>=0.12.0'} + dev: true + + /get-stream/4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-uri/3.0.2: + resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + data-uri-to-buffer: 3.0.1 + debug: 4.3.4 + file-uri-to-path: 2.0.0 + fs-extra: 8.1.0 + ftp: 0.3.10 + transitivePeerDependencies: + - supports-color + dev: true + + /get-value/2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /getos/3.2.1: + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + dependencies: + async: 3.2.4 + dev: true + + /getpass/0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + + /git-raw-commits/2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /git-remote-origin-url/2.0.0: + resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} + engines: {node: '>=4'} + dependencies: + gitconfiglocal: 1.0.0 + pify: 2.3.0 + dev: true + + /git-semver-tags/4.1.1: + resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + meow: 8.1.2 + semver: 6.3.0 + dev: true + + /git-up/4.0.5: + resolution: {integrity: sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==} + dependencies: + is-ssh: 1.4.0 + parse-url: 6.0.5 + dev: true + + /git-url-parse/11.6.0: + resolution: {integrity: sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==} + dependencies: + git-up: 4.0.5 + dev: true + + /gitconfiglocal/1.0.0: + resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} + dependencies: + ini: 1.3.8 + dev: true + + /github-slugger/1.2.0: + resolution: {integrity: sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q==} + dependencies: + emoji-regex: 6.1.1 + dev: true + + /github-slugger/1.4.0: + resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} + dev: true + + /glob-parent/3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-stream/6.1.0: + resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} + engines: {node: '>= 0.10'} + dependencies: + extend: 3.0.2 + glob: 7.2.3 + glob-parent: 3.1.0 + is-negated-glob: 1.0.0 + ordered-read-streams: 1.0.1 + pumpify: 1.5.1 + readable-stream: 2.3.7 + remove-trailing-separator: 1.1.0 + to-absolute-glob: 2.0.2 + unique-stream: 2.3.1 + dev: true + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-dirs/0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-dirs/3.0.0: + resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + dev: true + + /globals-docs/2.4.1: + resolution: {integrity: sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==} + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals/13.17.0: + resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/13.1.2: + resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /glur/1.1.2: + resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==} + dev: true + + /got/11.8.5: + resolution: {integrity: sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.2 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + dev: true + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /graphlib/2.1.8: + resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} + dependencies: + lodash: 4.17.21 + dev: false + + /handlebars/4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.6 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.1 + dev: true + + /har-schema/2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: true + + /har-validator/5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /harmony-reflect/1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + dev: true + + /has-ansi/2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.3 + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-value/0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value/1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values/0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values/1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hast-util-is-element/1.1.0: + resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} + dev: true + + /hast-util-sanitize/1.3.1: + resolution: {integrity: sha512-AIeKHuHx0Wk45nSkGVa2/ujQYTksnDl8gmmKo/mwQi7ag7IBZ8cM3nJ2G86SajbjGP/HRpud6kMkPtcM2i0Tlw==} + dependencies: + xtend: 4.0.2 + dev: true + + /hast-util-to-html/4.0.1: + resolution: {integrity: sha512-2emzwyf0xEsc4TBIPmDJmBttIw8R4SXAJiJZoiRR/s47ODYWgOqNoDbf2SJAbMbfNdFWMiCSOrI3OVnX6Qq2Mg==} + dependencies: + ccount: 1.1.0 + comma-separated-tokens: 1.0.8 + hast-util-is-element: 1.1.0 + hast-util-whitespace: 1.0.4 + html-void-elements: 1.0.5 + property-information: 4.2.0 + space-separated-tokens: 1.1.5 + stringify-entities: 1.3.2 + unist-util-is: 2.1.3 + xtend: 4.0.2 + dev: true + + /hast-util-whitespace/1.0.4: + resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} + dev: true + + /he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /highlight.js/10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-encoding-sniffer/3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /html-void-elements/1.0.5: + resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} + dev: true + + /htmlparser2/8.0.1: + resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: 4.4.0 + dev: true + + /http-cache-semantics/4.1.0: + resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + dev: true + + /http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /http-parser-js/0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + + /http-proxy-agent/4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-agent/5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-signature/1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: true + + /http-signature/1.3.6: + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.17.0 + dev: true + + /http2-wrapper/1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: true + + /https-proxy-agent/5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals/3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + + /humanize-ms/1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: true + + /husky/8.0.1: + resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /identity-obj-proxy/3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} + engines: {node: '>=4'} + dependencies: + harmony-reflect: 1.6.2 + dev: true + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /ini/2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true + + /internmap/2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + dev: false + + /ip/1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + dev: true + + /ip/2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: true + + /ipaddr.js/1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + + /is-absolute/1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-accessor-descriptor/0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor/1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-alphabetical/1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumeric/1.0.0: + resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-alphanumerical/1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-buffer/1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: true + + /is-ci/3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.4.0 + dev: true + + /is-core-module/2.10.0: + resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} + dependencies: + has: 1.0.3 + dev: true + + /is-data-descriptor/0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor/1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-decimal/1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + + /is-descriptor/0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor/1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-extendable/0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable/1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-glob/3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal/1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + + /is-installed-globally/0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.0 + is-path-inside: 3.0.3 + dev: true + + /is-negated-glob/1.0.0: + resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} + engines: {node: '>=0.10.0'} + dev: true + + /is-number/3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj/4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: true + + /is-plain-object/2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-potential-custom-element-name/1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-relative/1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-ssh/1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + dependencies: + protocols: 2.0.1 + dev: true + + /is-stream/1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-text-path/1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unc-path/1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-utf8/0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-valid-glob/1.0.0: + resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-whitespace-character/1.0.4: + resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-word-character/1.0.4: + resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + dev: true + + /isarray/0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: true + + /isarray/1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject/2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject/3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /isstream/0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports/3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /iterm2-version/4.2.0: + resolution: {integrity: sha512-IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ==} + engines: {node: '>=8'} + dependencies: + app-path: 3.3.0 + plist: 3.0.6 + dev: true + + /jest-image-snapshot/4.2.0: + resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} + engines: {node: '>= 10.14.2'} + peerDependencies: + jest: '>=20 <=26' + dependencies: + chalk: 1.1.3 + get-stdin: 5.0.1 + glur: 1.1.2 + lodash: 4.17.21 + mkdirp: 0.5.6 + pixelmatch: 5.3.0 + pngjs: 3.4.0 + rimraf: 2.7.1 + ssim.js: 3.5.0 + dev: true + + /jison-lex/0.3.4: + resolution: {integrity: sha512-EBh5wrXhls1cUwROd5DcDHR1sG7CdsCFSqY1027+YA1RGxz+BX2TDLAhdsQf40YEtFDGoiO0Qm8PpnBl2EzDJw==} + engines: {node: '>=0.4'} + hasBin: true + dependencies: + lex-parser: 0.1.4 + nomnom: 1.5.2 + dev: true + + /jison/0.4.18: + resolution: {integrity: sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w==} + engines: {node: '>=0.4'} + hasBin: true + dependencies: + JSONSelect: 0.4.0 + cjson: 0.3.0 + ebnf-parser: 0.1.10 + escodegen: 1.3.3 + esprima: 1.1.1 + jison-lex: 0.3.4 + lex-parser: 0.1.4 + nomnom: 1.5.2 + dev: true + + /joi/17.6.0: + resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.4 + '@sideway/formula': 3.0.0 + '@sideway/pinpoint': 2.0.0 + dev: true + + /jpeg-js/0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + dev: true + + /js-base64/3.7.2: + resolution: {integrity: sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==} + dev: true + + /js-sdsl/4.1.4: + resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsbn/0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + + /jsdoc-type-pratt-parser/3.1.0: + resolution: {integrity: sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==} + engines: {node: '>=12.0.0'} + dev: true + + /jsdom/20.0.0: + resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.0 + acorn-globals: 6.0.0 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.1 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.8.1 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc/0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer/3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-better-errors/1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe/5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile/4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonlint/1.6.0: + resolution: {integrity: sha512-x6YLBe6NjdpmIeiklwQOxsZuYj/SOWkT33GlTpaG1UdFGjdWjPcxJ1CWZAX3wA7tarz8E2YHF6KiW5HTapPlXw==} + engines: {node: '>= 0.6'} + hasBin: true + dependencies: + JSV: 4.0.2 + nomnom: 1.5.2 + dev: true + + /jsonparse/1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /jsprim/1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /jsprim/2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /keyv/4.5.0: + resolution: {integrity: sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /khroma/2.0.0: + resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} + dev: false + + /kind-of/3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of/4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of/5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur/4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /konan/2.1.1: + resolution: {integrity: sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==} + dependencies: + '@babel/parser': 7.19.1 + '@babel/traverse': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /ky/0.28.7: + resolution: {integrity: sha512-a23i6qSr/ep15vdtw/zyEQIDLoUaKDg9Jf04CYl/0ns/wXNYna26zJpI+MeIFaPeDvkrjLPrKtKOiiI3IE53RQ==} + engines: {node: '>=12'} + dev: true + + /lazy-ass/1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + dev: true + + /lazystream/1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.7 + dev: true + + /lcov-parse/1.0.0: + resolution: {integrity: sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==} + hasBin: true + dev: true + + /lead/1.0.0: + resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} + engines: {node: '>= 0.10'} + dependencies: + flush-write-stream: 1.1.1 + dev: true + + /levn/0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lex-parser/0.1.4: + resolution: {integrity: sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==} + dev: true + + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged/13.0.3: + resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.19 + commander: 9.4.0 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.5 + listr2: 4.0.5 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.2 + pidtree: 0.6.0 + string-argv: 0.3.1 + yaml: 2.1.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2/3.14.0_enquirer@2.3.6: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + enquirer: 2.3.6 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.5.6 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /listr2/4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.5.6 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /livereload-js/2.4.0: + resolution: {integrity: sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==} + dev: true + + /load-json-file/4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.10 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /local-pkg/0.4.2: + resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} + engines: {node: '>=14'} + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.debounce/4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.ismatch/4.4.0: + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.once/4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-driver/1.2.7: + resolution: {integrity: sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==} + engines: {node: '>=0.8.6'} + dev: true + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /loglevel-plugin-prefix/0.8.4: + resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} + dev: true + + /loglevel/1.8.0: + resolution: {integrity: sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==} + engines: {node: '>= 0.6.0'} + dev: true + + /longest-streak/2.0.4: + resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} + dev: true + + /longest-streak/3.0.1: + resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} + dev: true + + /loupe/2.3.4: + resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /lowercase-keys/2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /map-cache/0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-stream/0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + dev: true + + /map-visit/1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /markdown-escapes/1.0.4: + resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} + dev: true + + /markdown-table/1.1.3: + resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} + dev: true + + /mdast-util-compact/1.0.4: + resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /mdast-util-definitions/1.2.5: + resolution: {integrity: sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /mdast-util-from-markdown/0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-from-markdown/1.2.0: + resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.1.0 + micromark: 3.0.10 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-decode-string: 1.0.2 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + unist-util-stringify-position: 3.0.2 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-inject/1.1.0: + resolution: {integrity: sha512-CcJ0mHa36QYumDKiZ2OIR+ClhfOM7zIzN+Wfy8tRZ1hpH9DKLCS+Mh4DyK5bCxzE9uxMWcbIpeNFWsg1zrj/2g==} + dependencies: + mdast-util-to-string: 1.1.0 + dev: true + + /mdast-util-to-hast/3.0.4: + resolution: {integrity: sha512-/eIbly2YmyVgpJNo+bFLLMCI1XgolO/Ffowhf+pHDq3X4/V6FntC9sGQCDLM147eTS+uSXv5dRzJyFn+o0tazA==} + dependencies: + collapse-white-space: 1.0.6 + detab: 2.0.4 + mdast-util-definitions: 1.2.5 + mdurl: 1.0.1 + trim: 0.0.1 + trim-lines: 1.1.3 + unist-builder: 1.0.4 + unist-util-generated: 1.1.6 + unist-util-position: 3.1.0 + unist-util-visit: 1.4.1 + xtend: 4.0.2 + dev: true + + /mdast-util-to-markdown/1.3.0: + resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + longest-streak: 3.0.1 + mdast-util-to-string: 3.1.0 + micromark-util-decode-string: 1.0.2 + unist-util-visit: 4.1.1 + zwitch: 2.0.2 + dev: true + + /mdast-util-to-string/1.1.0: + resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} + dev: true + + /mdast-util-to-string/2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + + /mdast-util-to-string/3.1.0: + resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} + dev: true + + /mdast-util-toc/3.1.0: + resolution: {integrity: sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==} + dependencies: + github-slugger: 1.4.0 + mdast-util-to-string: 1.1.0 + unist-util-is: 2.1.3 + unist-util-visit: 1.4.1 + dev: true + + /mdn-data/2.0.6: + resolution: {integrity: sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==} + dev: true + + /mdurl/1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + dev: true + + /media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /meow/8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-descriptors/1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods/1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + + /micromark-core-commonmark/1.0.6: + resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.0.0 + micromark-factory-label: 1.0.2 + micromark-factory-space: 1.0.0 + micromark-factory-title: 1.0.2 + micromark-factory-whitespace: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-chunked: 1.0.0 + micromark-util-classify-character: 1.0.0 + micromark-util-html-tag-name: 1.1.0 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-resolve-all: 1.0.0 + micromark-util-subtokenize: 1.0.2 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-factory-destination/1.0.0: + resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: true + + /micromark-factory-label/1.0.2: + resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-factory-space/1.0.0: + resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-types: 1.0.2 + dev: true + + /micromark-factory-title/1.0.2: + resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-factory-whitespace/1.0.0: + resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: true + + /micromark-util-character/1.1.0: + resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} + dependencies: + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: true + + /micromark-util-chunked/1.0.0: + resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: true + + /micromark-util-classify-character/1.0.0: + resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: true + + /micromark-util-combine-extensions/1.0.0: + resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} + dependencies: + micromark-util-chunked: 1.0.0 + micromark-util-types: 1.0.2 + dev: true + + /micromark-util-decode-numeric-character-reference/1.0.0: + resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: true + + /micromark-util-decode-string/1.0.2: + resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-symbol: 1.0.1 + dev: true + + /micromark-util-encode/1.0.1: + resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + dev: true + + /micromark-util-html-tag-name/1.1.0: + resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} + dev: true + + /micromark-util-normalize-identifier/1.0.0: + resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: true + + /micromark-util-resolve-all/1.0.0: + resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} + dependencies: + micromark-util-types: 1.0.2 + dev: true + + /micromark-util-sanitize-uri/1.0.0: + resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-encode: 1.0.1 + micromark-util-symbol: 1.0.1 + dev: true + + /micromark-util-subtokenize/1.0.2: + resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} + dependencies: + micromark-util-chunked: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: true + + /micromark-util-symbol/1.0.1: + resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + dev: true + + /micromark-util-types/1.0.2: + resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + dev: true + + /micromark/2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark/3.0.10: + resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} + dependencies: + '@types/debug': 4.1.7 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.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.1 + 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.2 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch/3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mime/2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /mimic-response/3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true + + /mixin-deep/1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp/0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /modify-values/1.0.1: + resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} + engines: {node: '>=0.10.0'} + dev: true + + /module-deps-sortable/5.0.3: + resolution: {integrity: sha512-eiyIZj/A0dj1o4ywXWqicazUL3l0HP3TydUR6xF0X3xh3LGBMLqW8a9aFe6MuNH4mxNMk53QKBHM6LOPR8kSgw==} + engines: {node: '>= 0.6'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + browser-resolve: 1.11.3 + cached-path-relative: 1.1.0 + concat-stream: 1.5.2 + defined: 1.0.0 + detective: 5.2.1 + duplexer2: 0.1.4 + inherits: 2.0.4 + konan: 2.1.1 + readable-stream: 2.3.7 + resolve: 1.22.1 + standard-version: 9.5.0 + stream-combiner2: 1.1.1 + subarg: 1.0.0 + through2: 2.0.5 + xtend: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /moment-mini/2.29.4: + resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} + dev: false + + /moment/2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + dev: true + + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime/1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanomatch/1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + 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.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /netmask/2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + dev: true + + /nice-try/1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /node-fetch/2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + dev: true + + /nomnom/1.5.2: + resolution: {integrity: sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==} + deprecated: Package no longer supported. Contact support@npmjs.com for more info. + dependencies: + colors: 0.5.1 + underscore: 1.1.7 + dev: true + + /non-layered-tidy-tree-layout/2.0.2: + resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} + dev: false + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.10.0 + semver: 7.3.7 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + dependencies: + remove-trailing-separator: 1.1.0 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url/6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /now-and-later/2.0.1: + resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} + engines: {node: '>= 0.10'} + dependencies: + once: 1.4.0 + dev: true + + /npm-run-path/2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nwsapi/2.2.2: + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + dev: true + + /oauth-sign/0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy/0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit/1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.pick/1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /optionator/0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /ordered-read-streams/1.0.1: + resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} + dependencies: + readable-stream: 2.3.7 + dev: true + + /ospath/1.2.2: + resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} + dev: true + + /p-cancelable/2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + dev: true + + /p-finally/1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true + + /p-iteration/1.1.8: + resolution: {integrity: sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==} + engines: {node: '>=8.0.0'} + dev: true + + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try/1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /pac-proxy-agent/5.0.0: + resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==} + engines: {node: '>= 8'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + get-uri: 3.0.2 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + pac-resolver: 5.0.1 + raw-body: 2.5.1 + socks-proxy-agent: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /pac-resolver/5.0.1: + resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==} + engines: {node: '>= 8'} + dependencies: + degenerator: 3.0.2 + ip: 1.1.8 + netmask: 2.0.2 + dev: true + + /pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-entities/1.2.2: + resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-entities/2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-filepath/1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-json/4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-path/4.0.4: + resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==} + dependencies: + is-ssh: 1.4.0 + protocols: 1.4.8 + qs: 6.11.0 + query-string: 6.14.1 + dev: true + + /parse-url/6.0.5: + resolution: {integrity: sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==} + dependencies: + is-ssh: 1.4.0 + normalize-url: 6.1.0 + parse-path: 4.0.4 + protocols: 1.4.8 + dev: true + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /parse5/7.1.1: + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} + dependencies: + entities: 4.4.0 + dev: true + + /parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascalcase/0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-browserify/1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + + /path-dirname/1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + dev: true + + /path-exists/3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-root-regex/0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true + + /path-root/0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-to-regexp/0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true + + /path-type/3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathval/1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /pause-stream/0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + dependencies: + through: 2.3.8 + dev: true + + /pend/1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + dev: true + + /performance-now/2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree/0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify/2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pify/3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pify/5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + dev: true + + /pixelmatch/5.3.0: + resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} + hasBin: true + dependencies: + pngjs: 6.0.0 + dev: true + + /pkg-dir/3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + dev: true + + /plist/3.0.6: + resolution: {integrity: sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==} + engines: {node: '>=6'} + dependencies: + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + dev: true + + /png-async/0.9.4: + resolution: {integrity: sha512-B//AXX9TkneKfgtOpT1mdUnnhk2BImGD+a98vImsMU8uo1dBeHyW/kM2erWZ/CsYteTPU/xKG+t6T62heHkC3A==} + dev: true + + /pngjs/3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: true + + /pngjs/6.0.0: + resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} + engines: {node: '>=12.13.0'} + dev: true + + /posix-character-classes/0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-value-parser/4.1.0: + resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} + dev: true + + /postcss/8.4.16: + resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls/1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-plugin-jsdoc/0.4.2_prettier@2.7.1: + resolution: {integrity: sha512-w2jnAQm3z0GAG0bhzVJeehzDtrhGMSxJjit5ApCc2oxWfc7+jmLAkbtdOXaSpfwZz3IWkk+PiQPeRrLNpbM+Mw==} + engines: {node: '>=12.0.0'} + peerDependencies: + prettier: '>=2.1.2' + dependencies: + binary-searching: 2.0.5 + comment-parser: 1.3.1 + mdast-util-from-markdown: 1.2.0 + prettier: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: true + + /prettier/2.7.1: + resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-bytes/5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + + /process-nextick-args/1.0.7: + resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /property-information/4.2.0: + resolution: {integrity: sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==} + dependencies: + xtend: 4.0.2 + dev: true + + /protocols/1.4.8: + resolution: {integrity: sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==} + dev: true + + /protocols/2.0.1: + resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + dev: true + + /proxy-addr/2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + + /proxy-agent/5.0.0: + resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==} + engines: {node: '>= 8'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + lru-cache: 5.1.1 + pac-proxy-agent: 5.0.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /proxy-from-env/1.0.0: + resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} + dev: true + + /proxy-from-env/1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /ps-tree/1.2.0: + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + event-stream: 3.3.4 + dev: true + + /psl/1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump/2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pumpify/1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /q/1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /qs/6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + + /qs/6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + + /qs/6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true + + /query-string/6.14.1: + resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.0 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: true + + /querystringify/2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /range-parser/1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true + + /raw-body/1.1.7: + resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==} + engines: {node: '>= 0.8.0'} + dependencies: + bytes: 1.0.0 + string_decoder: 0.10.31 + dev: true + + /raw-body/2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /read-pkg-up/3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up/4.0.0: + resolution: {integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream/1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream/2.0.6: + resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/2.1.5: + resolution: {integrity: sha512-NkXT2AER7VKXeXtJNSaWLpWIhmtSE3K2PguaLEeWr4JILghcIKqoLt1A3wHrnpDC5+ekf8gfk1GKWkFXe4odMw==} + dependencies: + buffer-shims: 1.0.0 + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerate-unicode-properties/10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + dev: true + + /regenerator-transform/0.15.0: + resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} + dependencies: + '@babel/runtime': 7.19.0 + dev: true + + /regex-not/1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /regexpu-core/5.2.1: + resolution: {integrity: sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsgen: 0.7.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.0.0 + dev: true + + /regjsgen/0.7.1: + resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} + dev: true + + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /remark-html/8.0.0: + resolution: {integrity: sha512-3V2391GL3hxKhrkzYOyfPpxJ6taIKLCfuLVqumeWQOk3H9nTtSQ8St8kMYkBVIEAquXN1chT83qJ/2lAW+dpEg==} + dependencies: + hast-util-sanitize: 1.3.1 + hast-util-to-html: 4.0.1 + mdast-util-to-hast: 3.0.4 + xtend: 4.0.2 + dev: true + + /remark-parse/10.0.1: + resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.2.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-parse/5.0.0: + resolution: {integrity: sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==} + dependencies: + collapse-white-space: 1.0.6 + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + is-word-character: 1.0.4 + markdown-escapes: 1.0.4 + parse-entities: 1.2.2 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + trim: 0.0.1 + trim-trailing-lines: 1.1.4 + unherit: 1.1.3 + unist-util-remove-position: 1.1.4 + vfile-location: 2.0.6 + xtend: 4.0.2 + dev: true + + /remark-reference-links/4.0.4: + resolution: {integrity: sha512-+2X8hwSQqxG4tvjYZNrTcEC+bXp8shQvwRGG6J/rnFTvBoU4G0BBviZoqKGZizLh/DG+0gSYhiDDWCqyxXW1iQ==} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /remark-slug/5.1.2: + resolution: {integrity: sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A==} + dependencies: + github-slugger: 1.2.0 + mdast-util-to-string: 1.1.0 + unist-util-visit: 1.4.1 + dev: true + + /remark-stringify/10.0.2: + resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.3.0 + unified: 10.1.2 + dev: true + + /remark-stringify/5.0.0: + resolution: {integrity: sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==} + dependencies: + ccount: 1.1.0 + is-alphanumeric: 1.0.0 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + longest-streak: 2.0.4 + markdown-escapes: 1.0.4 + markdown-table: 1.1.3 + mdast-util-compact: 1.0.4 + parse-entities: 1.2.2 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + stringify-entities: 1.3.2 + unherit: 1.1.3 + xtend: 4.0.2 + dev: true + + /remark-toc/5.1.1: + resolution: {integrity: sha512-vCPW4YOsm2CfyuScdktM9KDnJXVHJsd/ZeRtst+dnBU3B3KKvt8bc+bs5syJjyptAHfqo7H+5Uhz+2blWBfwow==} + dependencies: + mdast-util-toc: 3.1.0 + remark-slug: 5.1.2 + dev: true + + /remark/14.0.2: + resolution: {integrity: sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==} + dependencies: + '@types/mdast': 3.0.10 + remark-parse: 10.0.1 + remark-stringify: 10.0.2 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /remark/9.0.0: + resolution: {integrity: sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==} + dependencies: + remark-parse: 5.0.0 + remark-stringify: 5.0.0 + unified: 6.2.0 + dev: true + + /remove-bom-buffer/3.0.0: + resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + is-utf8: 0.2.1 + dev: true + + /remove-bom-stream/1.2.0: + resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} + engines: {node: '>= 0.10'} + dependencies: + remove-bom-buffer: 3.0.0 + safe-buffer: 5.2.1 + through2: 2.0.5 + dev: true + + /remove-trailing-separator/1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: true + + /repeat-element/1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string/1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /replace-ext/1.0.0: + resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} + engines: {node: '>= 0.10'} + dev: true + + /replace-ext/1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + dev: true + + /request-progress/3.0.0: + resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} + dependencies: + throttleit: 1.0.0 + dev: true + + /request/2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename/2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /requires-port/1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-alpn/1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global/1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve-options/1.1.0: + resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} + engines: {node: '>= 0.10'} + dependencies: + value-or-function: 3.0.0 + dev: true + + /resolve-url/0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve/1.1.7: + resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + dev: true + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.10.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike/2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + dependencies: + lowercase-keys: 2.0.0 + dev: true + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret/0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf/2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /robust-predicates/3.0.1: + resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} + dev: false + + /rollup/2.78.1: + resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rw/1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + dev: false + + /rxjs/7.5.6: + resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} + dependencies: + tslib: 2.4.0 + dev: true + + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-json-parse/1.0.1: + resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==} + dev: true + + /safe-regex/1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /saxes/5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /send/0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static/1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: true + + /set-blocking/2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /set-value/2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + + /shebang-command/1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shell-quote/1.7.3: + resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + object-inspect: 1.12.2 + dev: true + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sirv/2.0.2: + resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.1 + totalist: 3.0.0 + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.1.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /smart-buffer/4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true + + /snapdragon-node/2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util/3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon/0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /socks-proxy-agent/5.0.1: + resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /socks/2.7.0: + resolution: {integrity: sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-resolve/0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-url/0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map/0.1.43: + resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} + engines: {node: '>=0.8.0'} + requiresBuild: true + dependencies: + amdefine: 1.0.1 + dev: true + optional: true + + /source-map/0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /space-separated-tokens/1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + dev: true + + /spawn-command/0.0.2-1: + resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-license-ids/3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + + /split-on-first/1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + dev: true + + /split-string/3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /split/0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + dependencies: + through: 2.3.8 + dev: true + + /split/1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + dependencies: + through: 2.3.8 + dev: true + + /split2/3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /sshpk/1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /ssim.js/3.5.0: + resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==} + dev: true + + /standard-version/9.5.0: + resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + chalk: 2.4.2 + conventional-changelog: 3.1.25 + conventional-changelog-config-spec: 2.1.0 + conventional-changelog-conventionalcommits: 4.6.3 + conventional-recommended-bump: 6.1.0 + detect-indent: 6.1.0 + detect-newline: 3.1.0 + dotgitignore: 2.1.0 + figures: 3.2.0 + find-up: 5.0.0 + git-semver-tags: 4.1.1 + semver: 7.3.7 + stringify-package: 1.0.1 + yargs: 16.2.0 + dev: true + + /start-server-and-test/1.14.0: + resolution: {integrity: sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==} + engines: {node: '>=6'} + hasBin: true + dependencies: + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.2 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 6.0.0_debug@4.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /state-toggle/1.0.3: + resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} + dev: true + + /static-extend/0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /stream-array/1.1.2: + resolution: {integrity: sha512-1yWdVsMEm/btiMa2YyHiC3mDrtAqlmNNaDRylx2F7KHhm3C4tA6kSR2V9mpeMthv+ujvbl8Kamyh5xaHHdFvyQ==} + engines: {node: '>= 0.8'} + dependencies: + readable-stream: 2.1.5 + dev: true + + /stream-combiner/0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + dependencies: + duplexer: 0.1.2 + dev: true + + /stream-combiner2/1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + dependencies: + duplexer2: 0.1.4 + readable-stream: 2.3.7 + dev: true + + /stream-shift/1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + dev: true + + /strict-uri-encode/2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + dev: true + + /string-argv/0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + + /string-template/0.2.1: + resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} + dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width/5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string_decoder/0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: true + + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities/1.3.2: + resolution: {integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==} + dependencies: + character-entities-html4: 1.1.4 + character-entities-legacy: 1.1.4 + is-alphanumerical: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /stringify-package/1.0.1: + resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==} + dev: true + + /strip-ansi/3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi/7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-eof/1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments/2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal/0.4.2: + resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} + dependencies: + acorn: 8.8.0 + dev: true + + /stylis/4.1.2: + resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} + dev: false + + /subarg/1.0.0: + resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} + dependencies: + minimist: 1.2.6 + dev: true + + /supports-color/2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/6.1.0: + resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} + engines: {node: '>=6'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /symbol-tree/3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /term-img/4.1.0: + resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + iterm2-version: 4.2.0 + dev: true + + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-extensions/1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /throat/5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + dev: true + + /throttleit/1.0.0: + resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} + dev: true + + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /through2-filter/3.0.0: + resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} + dependencies: + through2: 2.0.5 + xtend: 4.0.2 + dev: true + + /through2/2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.7 + xtend: 4.0.2 + dev: true + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /tiny-lr/1.1.1: + resolution: {integrity: sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==} + dependencies: + body: 5.1.0 + debug: 3.2.7 + faye-websocket: 0.10.0 + livereload-js: 2.4.0 + object-assign: 4.1.1 + qs: 6.11.0 + transitivePeerDependencies: + - supports-color + dev: true + + /tinybench/2.1.5: + resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} + dev: true + + /tinypool/0.3.0: + resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy/1.0.2: + resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} + engines: {node: '>=14.0.0'} + dev: true + + /tmp/0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: true + + /to-absolute-glob/2.0.2: + resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} + engines: {node: '>=0.10.0'} + dependencies: + is-absolute: 1.0.0 + is-negated-glob: 1.0.0 + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-object-path/0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range/2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex/3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /to-through/2.0.0: + resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} + engines: {node: '>= 0.10'} + dependencies: + through2: 2.0.5 + dev: true + + /toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + + /totalist/3.0.0: + resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + engines: {node: '>=6'} + dev: true + + /tough-cookie/2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.1.1 + dev: true + + /tough-cookie/4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.1.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.1.1 + dev: true + + /tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /trim-lines/1.1.3: + resolution: {integrity: sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==} + dev: true + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trim-trailing-lines/1.1.4: + resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} + dev: true + + /trim/0.0.1: + resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} + dev: true + + /trough/1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + dev: true + + /trough/2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: true + + /ts-node/10.9.1_ck2axrxkiif44rdbzjywaqjysa: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 14.18.29 + acorn: 8.8.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.8.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /ts-node/10.9.1_typescript@4.8.3: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + acorn: 8.8.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.8.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib/2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: true + + /tsutils/3.21.0_typescript@4.8.3: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.8.3 + dev: true + + /tunnel-agent/0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tunnel/0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: true + + /tweetnacl/0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + + /type-check/0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /typedarray/0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: true + + /typescript/4.8.3: + resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /uglify-js/3.17.1: + resolution: {integrity: sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unc-path-regex/0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /underscore/1.1.7: + resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==} + dev: true + + /unherit/1.1.3: + resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} + dependencies: + inherits: 2.0.4 + xtend: 4.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript/2.0.0: + resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript/2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unified/10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.6 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.5 + dev: true + + /unified/6.2.0: + resolution: {integrity: sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==} + dependencies: + '@types/unist': 2.0.6 + bail: 1.0.5 + extend: 3.0.2 + is-plain-obj: 1.1.0 + trough: 1.0.5 + vfile: 2.3.0 + x-is-string: 0.1.0 + dev: true + + /union-value/1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /unique-stream/2.3.1: + resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} + dependencies: + json-stable-stringify-without-jsonify: 1.0.1 + through2-filter: 3.0.0 + dev: true + + /unist-builder/1.0.4: + resolution: {integrity: sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==} + dependencies: + object-assign: 4.1.1 + dev: true + + /unist-util-flatmap/1.0.0: + resolution: {integrity: sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ==} + dev: true + + /unist-util-generated/1.1.6: + resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} + dev: true + + /unist-util-is/2.1.3: + resolution: {integrity: sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==} + dev: true + + /unist-util-is/3.0.0: + resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} + dev: true + + /unist-util-is/5.1.1: + resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} + dev: true + + /unist-util-position/3.1.0: + resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} + dev: true + + /unist-util-remove-position/1.1.4: + resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} + dependencies: + unist-util-visit: 1.4.1 + dev: true + + /unist-util-stringify-position/1.1.2: + resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} + dev: true + + /unist-util-stringify-position/2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /unist-util-stringify-position/3.0.2: + resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /unist-util-visit-parents/2.1.2: + resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} + dependencies: + unist-util-is: 3.0.0 + dev: true + + /unist-util-visit-parents/5.1.1: + resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + dev: true + + /unist-util-visit/1.4.1: + resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} + dependencies: + unist-util-visit-parents: 2.1.2 + dev: true + + /unist-util-visit/4.1.1: + resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + unist-util-visit-parents: 5.1.1 + dev: true + + /universalify/0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify/0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unset-value/1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /untildify/4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + + /update-browserslist-db/1.0.9_browserslist@4.21.4: + resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.4 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /urix/0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /url-parse/1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /use/3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utils-merge/1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uuid/3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true + + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /uvu/0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: true + + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-to-istanbul/9.0.1: + resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.15 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /value-or-function/3.0.0: + resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} + engines: {node: '>= 0.10'} + dev: true + + /vary/1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /verror/1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vfile-location/2.0.6: + resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==} + dev: true + + /vfile-message/1.1.1: + resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} + dependencies: + unist-util-stringify-position: 1.1.2 + dev: true + + /vfile-message/2.0.4: + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 2.0.3 + dev: true + + /vfile-message/3.1.2: + resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 3.0.2 + dev: true + + /vfile-reporter/6.0.2: + resolution: {integrity: sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==} + dependencies: + repeat-string: 1.6.1 + string-width: 4.2.3 + supports-color: 6.1.0 + unist-util-stringify-position: 2.0.3 + vfile-sort: 2.2.2 + vfile-statistics: 1.1.4 + dev: true + + /vfile-sort/2.2.2: + resolution: {integrity: sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==} + dev: true + + /vfile-statistics/1.1.4: + resolution: {integrity: sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==} + dev: true + + /vfile/2.3.0: + resolution: {integrity: sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==} + dependencies: + is-buffer: 1.1.6 + replace-ext: 1.0.0 + unist-util-stringify-position: 1.1.2 + vfile-message: 1.1.1 + dev: true + + /vfile/4.2.1: + resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 2.0.3 + vfile-message: 2.0.4 + dev: true + + /vfile/5.3.5: + resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.2 + vfile-message: 3.1.2 + dev: true + + /vinyl-fs/3.0.3: + resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} + engines: {node: '>= 0.10'} + dependencies: + fs-mkdirp-stream: 1.0.0 + glob-stream: 6.1.0 + graceful-fs: 4.2.10 + is-valid-glob: 1.0.0 + lazystream: 1.0.1 + lead: 1.0.0 + object.assign: 4.1.4 + pumpify: 1.5.1 + readable-stream: 2.3.7 + remove-bom-buffer: 3.0.0 + remove-bom-stream: 1.2.0 + resolve-options: 1.1.0 + through2: 2.0.5 + to-through: 2.0.0 + value-or-function: 3.0.0 + vinyl: 2.2.1 + vinyl-sourcemap: 1.1.0 + dev: true + + /vinyl-sourcemap/1.1.0: + resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} + engines: {node: '>= 0.10'} + dependencies: + append-buffer: 1.0.2 + convert-source-map: 1.8.0 + graceful-fs: 4.2.10 + normalize-path: 2.1.1 + now-and-later: 2.0.1 + remove-bom-buffer: 3.0.0 + vinyl: 2.2.1 + dev: true + + /vinyl/2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + dependencies: + clone: 2.1.2 + clone-buffer: 1.0.0 + clone-stats: 1.0.0 + cloneable-readable: 1.1.3 + remove-trailing-separator: 1.1.0 + replace-ext: 1.0.1 + dev: true + + /vite/3.1.3: + resolution: {integrity: sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.15.8 + postcss: 8.4.16 + resolve: 1.22.1 + rollup: 2.78.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitest/0.23.4_y2hohvmcqnhseytaw4yjcnsnkm: + resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.3 + '@types/chai-subset': 1.3.3 + '@types/node': 18.7.18 + '@vitest/ui': 0.23.4 + chai: 4.3.6 + debug: 4.3.4 + jsdom: 20.0.0 + local-pkg: 0.4.2 + strip-literal: 0.4.2 + tinybench: 2.1.5 + tinypool: 0.3.0 + tinyspy: 1.0.2 + vite: 3.1.3 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /vm2/3.9.11: + resolution: {integrity: sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + acorn: 8.8.0 + acorn-walk: 8.2.0 + dev: true + + /vscode-json-languageservice/4.2.1: + resolution: {integrity: sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==} + dependencies: + jsonc-parser: 3.2.0 + vscode-languageserver-textdocument: 1.0.7 + vscode-languageserver-types: 3.17.2 + vscode-nls: 5.2.0 + vscode-uri: 3.0.6 + dev: true + + /vscode-languageserver-textdocument/1.0.7: + resolution: {integrity: sha512-bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg==} + dev: true + + /vscode-languageserver-types/3.17.2: + resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==} + dev: true + + /vscode-nls/5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + dev: true + + /vscode-uri/3.0.6: + resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} + dev: true + + /vue-template-compiler/2.7.10: + resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /w3c-hr-time/1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + dependencies: + browser-process-hrtime: 1.0.0 + dev: true + + /w3c-xmlserializer/3.0.0: + resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} + engines: {node: '>=12'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /wait-on/6.0.0_debug@4.3.2: + resolution: {integrity: sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + axios: 0.21.4_debug@4.3.2 + joi: 17.6.0 + lodash: 4.17.21 + minimist: 1.2.6 + rxjs: 7.5.6 + transitivePeerDependencies: + - debug + dev: true + + /webdriver/7.16.11: + resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} + engines: {node: '>=12.0.0'} + dependencies: + '@types/node': 16.11.59 + '@wdio/config': 7.16.11 + '@wdio/logger': 7.16.0 + '@wdio/protocols': 7.16.7 + '@wdio/types': 7.16.11 + '@wdio/utils': 7.16.11 + got: 11.8.5 + ky: 0.28.7 + lodash.merge: 4.6.2 + dev: true + + /webidl-conversions/3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /websocket-driver/0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions/0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true + + /whatwg-encoding/2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-fetch/3.6.2: + resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} + dev: true + + /whatwg-mimetype/3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url/10.0.0: + resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which-module/2.0.0: + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + dev: true + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wordwrap/1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /ws/7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws/8.5.0: + resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} + 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 + dev: true + + /ws/8.8.1: + resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} + 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 + dev: true + + /x-is-string/0.1.0: + resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} + dev: true + + /xml-name-validator/4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlbuilder/15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + dev: true + + /xmlchars/2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /xregexp/2.0.0: + resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} + dev: true + + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n/4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml/2.1.1: + resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser/18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser/21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs/15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yargs/17.4.1: + resolution: {integrity: sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==} + engines: {node: '>=12'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yargs/17.5.1: + resolution: {integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==} + engines: {node: '>=12'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yauzl/2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zwitch/2.0.2: + resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} + dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000000..067a01bf0f --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + # all packages in direct subdirs of packages/ + - 'packages/*' From cccbb6939c0865ba87434576204818cefe367bcd Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 22 Sep 2022 11:13:04 +0200 Subject: [PATCH 0088/1038] Use of pnpm for the monorepo --- yarn.lock | 11139 ---------------------------------------------------- 1 file changed, 11139 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 8cacff1a74..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,11139 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@applitools/dom-capture@11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@applitools/dom-capture/-/dom-capture-11.1.1.tgz#5bd61638dcacc224eaee876b1541bae7af339df4" - integrity sha512-aUPsS3h/caQryythSjaX4uG23HzTBsnFBfO7BUvuomMdAm3qIHBstIHPCiUSJbXmPBabfqlWm59YKdxC3PTWcw== - dependencies: - "@applitools/dom-shared" "1.0.5" - "@applitools/functional-commons" "1.6.0" - -"@applitools/dom-shared@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@applitools/dom-shared/-/dom-shared-1.0.5.tgz#d67d9bd8c2c612da6dd9dcdea2b08f9630b22a3a" - integrity sha512-O2zgnnqVi3/Atq7EQjURLa73XNaDFJCj8wHht6WQtxIv1EWYnPutNTmnJSKwK7FnbJAg65OVjZylcz4EezyYZA== - -"@applitools/dom-shared@1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@applitools/dom-shared/-/dom-shared-1.0.8.tgz#6e9ad9071aeb4d248b1314b7c8c1d43af34b5809" - integrity sha512-HQtYfFvtlPuE9ZShBamtW1LGW2Qq4HxjQx5nF7KiNvrRTlf5/e+AWpZhXCTVEhVkAcSNs/7xR2WvumOUd+usxg== - -"@applitools/dom-snapshot@4.6.2": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@applitools/dom-snapshot/-/dom-snapshot-4.6.2.tgz#e1f5df4e8f08a95b445f78338c5df8b58c04ee3f" - integrity sha512-8XFbsIl154VK3rqNhHbSzcYDNLJ8QEgHzWht5cM0WhScWVokXUfL+kDmqjLIMZ47VgP3XXxk0rgX5QOs2TZx8Q== - dependencies: - "@applitools/dom-shared" "1.0.8" - "@applitools/functional-commons" "1.6.0" - css-tree "1.0.0-alpha.39" - pako "1.0.11" - -"@applitools/driver@1.9.20": - version "1.9.20" - resolved "https://registry.yarnpkg.com/@applitools/driver/-/driver-1.9.20.tgz#268412ccdb9820590bd6f23546621cf867726736" - integrity sha512-yrVydj5ukcBzADVTyrqEJ9rV2GauUOgC0NvXupvT+3qZSkwGumFb6SxlP5q39jy6/1EmRL9Szl1y9/DbwZ9OdQ== - dependencies: - "@applitools/logger" "1.1.15" - "@applitools/snippets" "2.4.5" - "@applitools/types" "1.5.8" - "@applitools/utils" "1.3.10" - -"@applitools/execution-grid-client@1.1.23": - version "1.1.23" - resolved "https://registry.yarnpkg.com/@applitools/execution-grid-client/-/execution-grid-client-1.1.23.tgz#fa824f12b33058861189aca54f14f8999b47489c" - integrity sha512-9J66rP3HYpI10pLH+wbMWr6BAcCuaGIskSDJyitvfS8hc2UyWdpVsAIHdkmivvTEpu3f+VaLKlhINRYlCJRJpQ== - dependencies: - "@applitools/logger" "1.1.15" - "@applitools/utils" "1.3.10" - abort-controller "3.0.0" - node-fetch "2.6.7" - proxy-agent "5.0.0" - raw-body "2.5.1" - yargs "17.4.1" - -"@applitools/eyes-api@1.7.5": - version "1.7.5" - resolved "https://registry.yarnpkg.com/@applitools/eyes-api/-/eyes-api-1.7.5.tgz#a068cfe9c1a910c0905c8b2e77491858d4b0fac0" - integrity sha512-wvFHjPFAVRSCCUg3zEr8HNoRS8lChnm9TwYI/+qjo91eNM+nVSEtPE6tb2GcdUbDqz0zpnCi8N3Mi2TulAZj2w== - dependencies: - "@applitools/logger" "1.1.15" - "@applitools/types" "1.5.8" - "@applitools/utils" "1.3.10" - -"@applitools/eyes-cypress@^3.25.7": - version "3.27.1" - resolved "https://registry.yarnpkg.com/@applitools/eyes-cypress/-/eyes-cypress-3.27.1.tgz#218ae895bfb723934682b95f21a959b8a8b52949" - integrity sha512-QtQawBi0B16ClPcyFEyvd8+3VKoZnJcj2UX41U5gnycQvidvJCyruFJlmuL9OnCBgpA17U4y9NnRceeHsywhqQ== - dependencies: - "@applitools/eyes-api" "1.7.5" - "@applitools/eyes-universal" "2.10.3" - "@applitools/functional-commons" "1.6.0" - "@applitools/logger" "1.1.15" - "@applitools/visual-grid-client" "15.13.13" - chalk "3.0.0" - uuid "8.3.2" - ws "8.5.0" - -"@applitools/eyes-sdk-core@13.8.19": - version "13.8.19" - resolved "https://registry.yarnpkg.com/@applitools/eyes-sdk-core/-/eyes-sdk-core-13.8.19.tgz#d8c34a177c2db75f3bb01a6d9277b329497eda24" - integrity sha512-brijRwys0kNyGdVictyJPGdqS+6iE3G0gwYHnzBZWvP7ryh6FeIwDbLxyc43UVpmNJPKAToVZ50J+2C/S6E3pQ== - dependencies: - "@applitools/dom-capture" "11.1.1" - "@applitools/dom-snapshot" "4.6.2" - "@applitools/driver" "1.9.20" - "@applitools/execution-grid-client" "1.1.23" - "@applitools/isomorphic-fetch" "3.0.0" - "@applitools/logger" "1.1.15" - "@applitools/screenshoter" "3.4.14" - "@applitools/snippets" "2.4.5" - "@applitools/types" "1.5.8" - "@applitools/utils" "1.3.10" - axios "0.26.0" - chalk "3.0.0" - tunnel "0.0.6" - -"@applitools/eyes-universal@2.10.3": - version "2.10.3" - resolved "https://registry.yarnpkg.com/@applitools/eyes-universal/-/eyes-universal-2.10.3.tgz#1560387a4de21bdfa24d6d72dfc1bd3c553d17d5" - integrity sha512-z/1N9RaDakfosQfGTEwFgky0DwPjpw4bCILYx1Te4vlOywCDGSD9KrJmmMqe2YkO2wgqi61uNvQvrBDePKvmHQ== - dependencies: - "@applitools/execution-grid-client" "1.1.23" - "@applitools/eyes-sdk-core" "13.8.19" - "@applitools/logger" "1.1.15" - "@applitools/utils" "1.3.10" - "@applitools/visual-grid-client" "15.13.13" - proxy-agent "5.0.0" - webdriver "7.16.11" - ws "7.4.6" - yargs "17.4.1" - -"@applitools/functional-commons@1.6.0", "@applitools/functional-commons@^1.5.5": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@applitools/functional-commons/-/functional-commons-1.6.0.tgz#ea850c4f7832fcb6396b79b35faccac69f6482a9" - integrity sha512-fwiF0CbeYHDEOTD/NKaFgaI8LvRcGYG2GaJJiRwcedKko16sQ8F3TK5wXfj2Ytjf+8gjwHwsEEX550z3yvDWxA== - -"@applitools/http-commons@2.4.7": - version "2.4.7" - resolved "https://registry.yarnpkg.com/@applitools/http-commons/-/http-commons-2.4.7.tgz#fb88b38db62b59177600eaba0fa55fcb7511e1e8" - integrity sha512-fsq8ULh70/htb9oHSMTkibMR7AiB+ScraYfQw4H7Sq7JfbFnlefSK0c6ZGfSrjJQx79GRfjrqQYtz59s5lxkcw== - dependencies: - "@applitools/functional-commons" "^1.5.5" - "@applitools/monitoring-commons" "^1.0.19" - agentkeepalive "^4.1.0" - debug "^4.1.1" - lodash.merge "^4.6.2" - node-fetch "^2.6.0" - -"@applitools/isomorphic-fetch@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@applitools/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#3a3a838954b8b8bb89f1078e4f82b8c6bccaa884" - integrity sha512-7rutaN/2M5wYjOIOTKS/Zuc1Na90fJNEAqvo/jCxt7nSD1kYscHV3aCk9t7RD59gmzLMvUTIxFbjl4RUMV8qfg== - dependencies: - node-fetch "^2.3.0" - whatwg-fetch ">=0.10.0" - -"@applitools/jsdom@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@applitools/jsdom/-/jsdom-1.0.4.tgz#25751f0c9c88eaea02eefda48a0f8215f7cef89d" - integrity sha512-JtjNfTJtphJYHEkicW4xlwtYuRP3TRvjoszfkrcpxTNMCbGkbop8ed9MuUfR83dAZj5NY9begbmEqJohLJco6w== - dependencies: - abab "^2.0.5" - acorn "^8.5.0" - acorn-globals "^6.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.1" - decimal.js "^10.3.1" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^10.0.0" - ws "^8.2.3" - xml-name-validator "^4.0.0" - -"@applitools/logger@1.1.15": - version "1.1.15" - resolved "https://registry.yarnpkg.com/@applitools/logger/-/logger-1.1.15.tgz#7b37de9c76f413a62983f718ceafb09c8637b5af" - integrity sha512-2SNbINnxvGxy8G5TXIZHhXWqWBFFn0o/+4ZP57VvohPG8AF4wqXBO3H93LZMMpDz/4prND0bBLqK3XFLY4ppTQ== - dependencies: - "@applitools/utils" "1.3.10" - chalk "4.1.2" - -"@applitools/monitoring-commons@^1.0.19": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@applitools/monitoring-commons/-/monitoring-commons-1.0.19.tgz#9b6b1062b26b54e4d333bd2854ddb22e698c8f5a" - integrity sha512-rzEOvGoiEF4KnK0PJ9I0btdwnaNlIPLYhjF1vTEG15PoucbbKpix9fYusxWlDG7kMiZya8ZycVPc0woVlNaHRQ== - dependencies: - debug "^4.1.0" - -"@applitools/screenshoter@3.4.14": - version "3.4.14" - resolved "https://registry.yarnpkg.com/@applitools/screenshoter/-/screenshoter-3.4.14.tgz#ca3120120042e5c1431ea1e3f0ef8e7a81098c6f" - integrity sha512-vdaHxzSobJzujyXENSuVybYyOfBWZlDb6OwVzRsiJxpwuN9L5VtOu30kuvxAXzycHMfa+8vLgO2pHnU6Vp/MiQ== - dependencies: - "@applitools/logger" "1.1.15" - "@applitools/snippets" "2.4.5" - "@applitools/utils" "1.3.10" - jpeg-js "0.4.4" - png-async "0.9.4" - -"@applitools/snippets@2.4.5": - version "2.4.5" - resolved "https://registry.yarnpkg.com/@applitools/snippets/-/snippets-2.4.5.tgz#4adcbea245b5c4d0b40413670fb709ffcf607ffa" - integrity sha512-GoLN1wu8u5/qwdk1ozEElqmr4y7AoMQl0Ka0OzisGdx9/L7R0RzSWQCErjkf4LgKiWKK8j7lde3JT9yjxfritQ== - -"@applitools/types@1.5.8": - version "1.5.8" - resolved "https://registry.yarnpkg.com/@applitools/types/-/types-1.5.8.tgz#1d281e7f52e1f5b542d79f3a266fd29bf521b58e" - integrity sha512-trMH32oewkrptYG26IzEbwMW9VG9BJo64bzwx/T4oz6ZfndXGCjwGCFQE4FDE++dRZTjzSF00h2YSzIxPAapeQ== - -"@applitools/utils@1.3.10": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@applitools/utils/-/utils-1.3.10.tgz#307359d6f668c5fe6b3a7d213405ebe3bf2235b6" - integrity sha512-CI/5BLB0D/aZn6uL8JJmsErI+TOHCa4Gz5Wi8sJknuPz/V9Ws6jIh9ZCTzvOCDUIp99qLJwD6TSA2BY9aMhCNw== - -"@applitools/visual-grid-client@15.13.13": - version "15.13.13" - resolved "https://registry.yarnpkg.com/@applitools/visual-grid-client/-/visual-grid-client-15.13.13.tgz#724b2c1bd4215411b56077c452839c1a19bc769b" - integrity sha512-3GkzrR0WEcsihRZEgbxXecfBb8Q0U/L7VDNpy/APlw7K54kWPgTal/CYk1NwLDKj9iqpHlFfvDhI0zoeCNrR4A== - dependencies: - "@applitools/eyes-sdk-core" "13.8.19" - "@applitools/functional-commons" "1.6.0" - "@applitools/http-commons" "2.4.7" - "@applitools/isomorphic-fetch" "3.0.0" - "@applitools/jsdom" "1.0.4" - "@applitools/logger" "1.1.15" - abort-controller "3.0.0" - chalk "3.0.0" - postcss-value-parser "4.1.0" - throat "5.0.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== - -"@babel/compat-data@^7.19.0", "@babel/compat-data@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" - integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== - -"@babel/core@7.12.3": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" - integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - 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" - -"@babel/generator@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" - integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== - dependencies: - "@babel/types" "^7.12.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.12.1", "@babel/generator@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" - integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== - dependencies: - "@babel/types" "^7.18.13" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/generator@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" - integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== - dependencies: - "@babel/types" "^7.19.0" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== - dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" - integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== - dependencies: - "@babel/compat-data" "^7.19.1" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.16.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-create-regexp-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-define-polyfill-provider@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" - integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== - -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-module-imports@^7.16.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== - 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" - -"@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== - 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.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== - -"@babel/helper-plugin-utils@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" - integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== - -"@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== - dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-option@^7.14.5", "@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.16.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== - dependencies: - "@babel/helper-function-name" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-wrap-function@^7.18.9": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396" - integrity sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ== - dependencies: - "@babel/helper-function-name" "^7.18.9" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/helpers@^7.12.1": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== - dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@7.12.3": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd" - integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw== - -"@babel/parser@^7.10.5", "@babel/parser@^7.12.3", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" - integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== - -"@babel/parser@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" - integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - -"@babel/plugin-proposal-async-generator-functions@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" - integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-decorators@^7.12.1": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.4.tgz#9b35ce0716425a93b978e79099e5f7ba217c1364" - integrity sha512-RESBNX16eNqnBeEVR5sCJpnW0mHiNLNNvGA8PrRuK/4ZJ4TO+6bHleRUuGQYDERVySOKtOhSya/C4MIhwAMAgg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-decorators" "^7.16.0" - -"@babel/plugin-proposal-do-expressions@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.16.0.tgz#045794135cde56d4240288ea074b656b72ccf96e" - integrity sha512-JxhlW/ZFop2fm7pRpYijNr4FI2Id6+p3u2NT1Lh3eur3zDStdyx4EYr1FJpzpeqBh76dbuXL0gc9k1rEO8VSUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-do-expressions" "^7.16.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-default-from@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.0.tgz#f8a07008ffcb0d3de4945f3eb52022ecc28b56ad" - integrity sha512-kFAhaIbh5qbBwETRNa/cgGmPJ/BicXhIyrZhAkyYhf/Z9LXCTRGO1mvUwczto0Hl1q4YtzP9cRtTKT4wujm38Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-export-default-from" "^7.16.0" - -"@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-function-bind@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.16.0.tgz#35225c9f2ff2d52da9625982e750b0647e90234c" - integrity sha512-oTf/NztwTma6O4e16Iy6+DOqodQydc1/MLmENMTduigCYxvUvLblCRP5Tu3PkAGPKq5/F3lB44GWLc+egJi3VA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-function-bind" "^7.16.0" - -"@babel/plugin-proposal-function-sent@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.16.0.tgz#6a873e125e4081e48d9b37518e8e2c63c9a8cddb" - integrity sha512-CkUaPsTiRB72BlsB1Istdb6LSJDi4SU4gH+hW9EKo2/o6naq0HEkuY2OV5anl5Tsnwtdn3FmpteguRc9kXd3Ig== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-wrap-function" "^7.16.0" - "@babel/plugin-syntax-function-sent" "^7.16.0" - -"@babel/plugin-proposal-json-strings@^7.12.1", "@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.12.1", "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" - integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== - dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.8" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-pipeline-operator@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.16.0.tgz#9765a4fa46afc1b9b78cdeaa9d4d9a8863ae0fd5" - integrity sha512-y9WbLfaPDDkShmU89N1spx54ELht7rXE2jWDzCgc23OmTwliEK9NSoR8KZdtjr1mR3QfG7D6mcDHmI4M0bhMQA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-pipeline-operator" "^7.16.0" - -"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-throw-expressions@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.16.0.tgz#f9450e11d90159eff29a36e5bcacc9b49eefc4d7" - integrity sha512-8u4KrMqdzRLkfHMN6WOK4taEwV6Dv69O/TuJ2TCGapRXtbjRKDW2UyTxEzlZpA1Eu+MxquSW9+y8qy89TIJfOA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-throw-expressions" "^7.16.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.0.tgz#eb8d811cdd1060f6ac3c00956bf3f6335505a32f" - integrity sha512-nxnnngZClvlY13nHJAIDow0S7Qzhq64fQ/NlqS+VER3kjW/4F0jLhXjeL8jcwSwz6Ca3rotT5NJD2T9I7lcv7g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-do-expressions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.16.0.tgz#94f323eb2dd88aa9623a4a4329aa044f51661999" - integrity sha512-WA0MZP59fbZehGlOVMoYdPs0yC2pOGQwHPIIIYtaXZ67f6J1X0ntmfkWkMa8lppBq0iSI7uBCTICF84gnKEfPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-default-from@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.0.tgz#648520667776781f9a0da178f245fff85bc9e36f" - integrity sha512-xllLOdBj77mFSw8s02I+2SSQGHOftbWTlGmagheuNk/gjQsk7IrYsR/EosXVAVpgIUFffLckB/iPRioQYLHSrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.0.tgz#07427021d093ed77019408221beaf0272bbcfaec" - integrity sha512-dH91yCo0RyqfzWgoM5Ji9ir8fQ+uFbt9KHM3d2x4jZOuHS6wNA+CRmRUP/BWCsHG2bjc7A2Way6AvH1eQk0wig== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-function-bind@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.16.0.tgz#b268e330febdb851f5b57c31751607f758dda4ac" - integrity sha512-L+B4rMnFg2ElQUTjSr3gfmIAJ3ej/BeKGW32AL01qpLhkI4Vw1C+W8p6wl8S6eYqWSj9X9d/lyuQWI5JFYjCWw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-function-sent@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.16.0.tgz#c6e0eb280a101cd7bdaf6d3f750eb27b59978c48" - integrity sha512-CrwPwHy+ks1xokbZ5x2ZbRwZ5qptN0PE/N5M+o8eQ2LHXGFxlSuDVx515crT7DxUnT+uKctKDuk0NAwG7c1Ebw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1" - integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-pipeline-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.16.0.tgz#2a36d18bc00c3887ac8efb02b65de5a2c1e8ea86" - integrity sha512-wUWeLyChgsQ2cVp3vDtDqnwmDHdTiRyxuEeGRGwmPxp7YcNyQw+axni5R+WO/TF565j36Pp8zRU1qnY5etf4BQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-throw-expressions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.16.0.tgz#9d5fc5c185617bc5f727fbecc360601a52cf6879" - integrity sha512-tr5wm8EYRpFW47uVJ2B660pJQXgmeCShz82tE6LkIVkcLzXMz5xhj0drYyehuAl1utNGFqPnMmjpzs5zavAbNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" - integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-classes@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" - integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.19.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-replace-supers" "^7.18.9" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-destructuring@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" - integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.0.tgz#edd968dc2041c1b69e451a262e948d6654a79dc2" - integrity sha512-vs/F5roOaO/+WxKfp9PkvLsAyj0G+Q0zbFimHm9X2KDgabN2XmNFoAafmeGEYspUlIF9+MvVmyek9UyHiqeG/w== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-flow" "^7.16.0" - -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" - integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-display-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz#9a0ad8aa8e8790883a7bd2736f66229a58125676" - integrity sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-react-jsx-development@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz#1cb52874678d23ab11d0d16488d54730807303ef" - integrity sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.0" - -"@babel/plugin-transform-react-jsx@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz#55b797d4960c3de04e07ad1c0476e2bc6a4889f1" - integrity sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-jsx" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/plugin-transform-react-pure-annotations@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz#23db6ddf558d8abde41b8ad9d59f48ad5532ccab" - integrity sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" - integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@^7.12.1": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.0.tgz#fd18caf499a67d6411b9ded68dc70d01ed1e5da7" - integrity sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ== - dependencies: - "@babel/compat-data" "^7.19.0" - "@babel/helper-compilation-targets" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.19.0" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.9" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.9" - "@babel/plugin-transform-classes" "^7.19.0" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.18.13" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.18.6" - "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.0" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.0" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.8" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.2" - babel-plugin-polyfill-corejs3 "^0.5.3" - babel-plugin-polyfill-regenerator "^0.4.0" - core-js-compat "^3.22.1" - semver "^6.3.0" - -"@babel/preset-flow@^7.9.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.0.tgz#9f1f6e72714d79460d48058cb5658fc87da7150b" - integrity sha512-e5NE1EoPMpoHFkyFkMSj2h9tu7OolARcUHki8mnBv4NiFK9so+UrhbvT9mV99tMJOUEx8BOj67T6dXvGcTeYeQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-flow-strip-types" "^7.16.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.9.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.0.tgz#f71d3e8dff5218478011df037fad52660ee6d82a" - integrity sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-react-display-name" "^7.16.0" - "@babel/plugin-transform-react-jsx" "^7.16.0" - "@babel/plugin-transform-react-jsx-development" "^7.16.0" - "@babel/plugin-transform-react-pure-annotations" "^7.16.0" - -"@babel/preset-stage-0@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz#b6a0eca1a3b72e07f9caf58f998e97568028f6f5" - integrity sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ== - -"@babel/runtime@^7.8.4": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" - integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.13" - "@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.13" - "@babel/types" "^7.18.13" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" - integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.0" - "@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.19.1" - "@babel/types" "^7.19.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.12.1", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" - integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" - -"@babel/types@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" - integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@braintree/sanitize-url@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz#fe364f025ba74f6de6c837a84ef44bdb1d61e68f" - integrity sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w== - -"@commitlint/cli@^17.1.2": - version "17.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.1.2.tgz#38240f84936df5216f749f06f838dc50cc85a43d" - integrity sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw== - dependencies: - "@commitlint/format" "^17.0.0" - "@commitlint/lint" "^17.1.0" - "@commitlint/load" "^17.1.2" - "@commitlint/read" "^17.1.0" - "@commitlint/types" "^17.0.0" - execa "^5.0.0" - lodash "^4.17.19" - resolve-from "5.0.0" - resolve-global "1.0.0" - yargs "^17.0.0" - -"@commitlint/config-conventional@^17.0.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.1.0.tgz#9bd852766e08842bfe0fe4deb40e152eb718ec1b" - integrity sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA== - dependencies: - conventional-changelog-conventionalcommits "^5.0.0" - -"@commitlint/config-validator@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.1.0.tgz#51d09ca53d7a0d19736abf34eb18a66efce0f97a" - integrity sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg== - dependencies: - "@commitlint/types" "^17.0.0" - ajv "^8.11.0" - -"@commitlint/ensure@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.0.0.tgz#781ff5f8870cb98ce4496d5c71649a4cd122a0e0" - integrity sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A== - dependencies: - "@commitlint/types" "^17.0.0" - lodash "^4.17.19" - -"@commitlint/execute-rule@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz#186e9261fd36733922ae617497888c4bdb6e5c92" - integrity sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ== - -"@commitlint/format@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.0.0.tgz#2c991ac0df3955fe5d7d4d733967bd17e6cfd9e0" - integrity sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA== - dependencies: - "@commitlint/types" "^17.0.0" - chalk "^4.1.0" - -"@commitlint/is-ignored@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz#c9d5ca22679fdc657fff33a8aa23e0c0152ebbd1" - integrity sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ== - dependencies: - "@commitlint/types" "^17.0.0" - semver "7.3.7" - -"@commitlint/lint@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.1.0.tgz#de2d3baa2b20d9ec3d5fd2f2421f6025c8439630" - integrity sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ== - dependencies: - "@commitlint/is-ignored" "^17.1.0" - "@commitlint/parse" "^17.0.0" - "@commitlint/rules" "^17.0.0" - "@commitlint/types" "^17.0.0" - -"@commitlint/load@^17.1.2": - version "17.1.2" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.1.2.tgz#19c88be570d8666bbd32f9b3d81925a08328bc13" - integrity sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg== - dependencies: - "@commitlint/config-validator" "^17.1.0" - "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.1.0" - "@commitlint/types" "^17.0.0" - "@types/node" "^14.0.0" - chalk "^4.1.0" - cosmiconfig "^7.0.0" - cosmiconfig-typescript-loader "^4.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - ts-node "^10.8.1" - typescript "^4.6.4" - -"@commitlint/message@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.0.0.tgz#ae0f8ec6a3e5c8d369792a2c391952c7596cca73" - integrity sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw== - -"@commitlint/parse@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.0.0.tgz#6d508a1e2aec76f348a447994f26e9b749c02091" - integrity sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A== - dependencies: - "@commitlint/types" "^17.0.0" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" - -"@commitlint/read@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.1.0.tgz#cf6bab410180f32f70891c97b15467c0b92ac14f" - integrity sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g== - dependencies: - "@commitlint/top-level" "^17.0.0" - "@commitlint/types" "^17.0.0" - fs-extra "^10.0.0" - git-raw-commits "^2.0.0" - minimist "^1.2.6" - -"@commitlint/resolve-extends@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz#7cf04fa13096c8a6544a4af13321fdf8d0d50694" - integrity sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ== - dependencies: - "@commitlint/config-validator" "^17.1.0" - "@commitlint/types" "^17.0.0" - import-fresh "^3.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.0.0.tgz#4eecc5d28cabbc5f3f73838fb02592b551f9bf62" - integrity sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ== - dependencies: - "@commitlint/ensure" "^17.0.0" - "@commitlint/message" "^17.0.0" - "@commitlint/to-lines" "^17.0.0" - "@commitlint/types" "^17.0.0" - execa "^5.0.0" - -"@commitlint/to-lines@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.0.0.tgz#5766895836b8085b099a098482f88a03f070b411" - integrity sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ== - -"@commitlint/top-level@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.0.0.tgz#ebd0df4c703c026c2fbdc20fa746836334f4ed15" - integrity sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ== - dependencies: - find-up "^5.0.0" - -"@commitlint/types@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.0.0.tgz#3b4604c1a0f06c340ce976e6c6903d4f56e3e690" - integrity sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ== - dependencies: - chalk "^4.1.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@cypress/request@^2.88.10": - version "2.88.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" - integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== - dependencies: - 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" - http-signature "~1.3.6" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" - -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== - dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" - -"@es-joy/jsdoccomment@~0.31.0": - version "0.31.0" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz#dbc342cc38eb6878c12727985e693eaef34302bc" - integrity sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ== - dependencies: - comment-parser "1.3.1" - esquery "^1.4.0" - jsdoc-type-pratt-parser "~3.1.0" - -"@esbuild/android-arm@0.15.8": - version "0.15.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.8.tgz#52b094c98e415ec72fab39827c12f2051ac9c550" - integrity sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q== - dependencies: - esbuild-wasm "0.15.8" - -"@esbuild/linux-loong64@0.15.8": - version "0.15.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz#d64575fc46bf4eb689352aa9f8a139271b6e1647" - integrity sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg== - -"@eslint/eslintrc@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" - integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - 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" - -"@hapi/hoek@^9.0.0": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" - integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@hutson/parse-repository-url@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" - integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== - -"@sideway/address@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.3.tgz#d93cce5d45c5daec92ad76db492cc2ee3c64ab27" - integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/cacheable-request@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/chai-subset@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" - integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== - dependencies: - "@types/chai" "*" - -"@types/chai@*", "@types/chai@^4.3.3": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" - integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/d3-array@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.3.tgz#87d990bf504d14ad6b16766979d04e943c046dac" - integrity sha512-Reoy+pKnvsksN0lQUlcH6dOGjRZ/3WRwXR//m+/8lt1BXeI4xyaUZoqULNjyXXRuh0Mj4LNpkCvhUpQlY3X5xQ== - -"@types/d3-axis@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.1.tgz#6afc20744fa5cc0cbc3e2bd367b140a79ed3e7a8" - integrity sha512-zji/iIbdd49g9WN0aIsGcwcTBUkgLsCSwB+uH+LPVDAiKWENMtI3cJEWt+7/YYwelMoZmbBfzA3qCdrZ2XFNnw== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-brush@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.1.tgz#ae5f17ce391935ca88b29000e60ee20452c6357c" - integrity sha512-B532DozsiTuQMHu2YChdZU0qsFJSio3Q6jmBYGYNp3gMDzBmuFFgPt9qKA4VYuLZMp4qc6eX7IUFUEsvHiXZAw== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-chord@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.1.tgz#54c8856c19c8e4ab36a53f73ba737de4768ad248" - integrity sha512-eQfcxIHrg7V++W8Qxn6QkqBNBokyhdWSAS73AbkbMzvLQmVVBviknoz2SRS/ZJdIOmhcmmdCRE/NFOm28Z1AMw== - -"@types/d3-color@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.0.tgz#6594da178ded6c7c3842f3cc0ac84b156f12f2d4" - integrity sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA== - -"@types/d3-contour@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.1.tgz#9ff4e2fd2a3910de9c5097270a7da8a6ef240017" - integrity sha512-C3zfBrhHZvrpAAK3YXqLWVAGo87A4SvJ83Q/zVJ8rFWJdKejUnDYaWZPkA8K84kb2vDA/g90LTQAz7etXcgoQQ== - dependencies: - "@types/d3-array" "*" - "@types/geojson" "*" - -"@types/d3-delaunay@*": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.1.tgz#006b7bd838baec1511270cb900bf4fc377bbbf41" - integrity sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ== - -"@types/d3-dispatch@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.1.tgz#a1b18ae5fa055a6734cb3bd3cbc6260ef19676e3" - integrity sha512-NhxMn3bAkqhjoxabVJWKryhnZXXYYVQxaBnbANu0O94+O/nX9qSjrA1P1jbAQJxJf+VC72TxDX/YJcKue5bRqw== - -"@types/d3-drag@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.1.tgz#fb1e3d5cceeee4d913caa59dedf55c94cb66e80f" - integrity sha512-o1Va7bLwwk6h03+nSM8dpaGEYnoIG19P0lKqlic8Un36ymh9NSkNFX1yiXMKNMx8rJ0Kfnn2eovuFaL6Jvj0zA== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-dsv@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.0.tgz#f3c61fb117bd493ec0e814856feb804a14cfc311" - integrity sha512-o0/7RlMl9p5n6FQDptuJVMxDf/7EDEv2SYEO/CwdG2tr1hTfUVi0Iavkk2ax+VpaQ/1jVhpnj5rq1nj8vwhn2A== - -"@types/d3-ease@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.0.tgz#c29926f8b596f9dadaeca062a32a45365681eae0" - integrity sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA== - -"@types/d3-fetch@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.1.tgz#f9fa88b81aa2eea5814f11aec82ecfddbd0b8fe0" - integrity sha512-toZJNOwrOIqz7Oh6Q7l2zkaNfXkfR7mFSJvGvlD/Ciq/+SQ39d5gynHJZ/0fjt83ec3WL7+u3ssqIijQtBISsw== - dependencies: - "@types/d3-dsv" "*" - -"@types/d3-force@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.3.tgz#76cb20d04ae798afede1ea6e41750763ff5a9c82" - integrity sha512-z8GteGVfkWJMKsx6hwC3SiTSLspL98VNpmvLpEFJQpZPq6xpA1I8HNBDNSpukfK0Vb0l64zGFhzunLgEAcBWSA== - -"@types/d3-format@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.1.tgz#194f1317a499edd7e58766f96735bdc0216bb89d" - integrity sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg== - -"@types/d3-geo@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.0.2.tgz#e7ec5f484c159b2c404c42d260e6d99d99f45d9a" - integrity sha512-DbqK7MLYA8LpyHQfv6Klz0426bQEf7bRTvhMy44sNGVyZoWn//B0c+Qbeg8Osi2Obdc9BLLXYAKpyWege2/7LQ== - dependencies: - "@types/geojson" "*" - -"@types/d3-hierarchy@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.0.tgz#4561bb7ace038f247e108295ef77b6a82193ac25" - integrity sha512-g+sey7qrCa3UbsQlMZZBOHROkFqx7KZKvUpRzI/tAp/8erZWpYq7FgNKvYwebi2LaEiVs1klhUfd3WCThxmmWQ== - -"@types/d3-interpolate@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz#e7d17fa4a5830ad56fe22ce3b4fac8541a9572dc" - integrity sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw== - dependencies: - "@types/d3-color" "*" - -"@types/d3-path@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.0.tgz#939e3a784ae4f80b1fde8098b91af1776ff1312b" - integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg== - -"@types/d3-polygon@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.0.tgz#5200a3fa793d7736fa104285fa19b0dbc2424b93" - integrity sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw== - -"@types/d3-quadtree@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz#433112a178eb7df123aab2ce11c67f51cafe8ff5" - integrity sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw== - -"@types/d3-random@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.1.tgz#5c8d42b36cd4c80b92e5626a252f994ca6bfc953" - integrity sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ== - -"@types/d3-scale-chromatic@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#103124777e8cdec85b20b51fd3397c682ee1e954" - integrity sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw== - -"@types/d3-scale@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.2.tgz#41be241126af4630524ead9cb1008ab2f0f26e69" - integrity sha512-Yk4htunhPAwN0XGlIwArRomOjdoBFXC3+kCxK2Ubg7I9shQlVSJy/pG/Ht5ASN+gdMIalpk8TJ5xV74jFsetLA== - dependencies: - "@types/d3-time" "*" - -"@types/d3-selection@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.3.tgz#57be7da68e7d9c9b29efefd8ea5a9ef1171e42ba" - integrity sha512-Mw5cf6nlW1MlefpD9zrshZ+DAWL4IQ5LnWfRheW6xwsdaWOb6IRRu2H7XPAQcyXEx1D7XQWgdoKR83ui1/HlEA== - -"@types/d3-shape@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.0.tgz#1d87a6ddcf28285ef1e5c278ca4bdbc0658f3505" - integrity sha512-jYIYxFFA9vrJ8Hd4Se83YI6XF+gzDL1aC5DCsldai4XYYiVNdhtpGbA/GM6iyQ8ayhSp3a148LY34hy7A4TxZA== - dependencies: - "@types/d3-path" "*" - -"@types/d3-time-format@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.0.tgz#ee7b6e798f8deb2d9640675f8811d0253aaa1946" - integrity sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw== - -"@types/d3-time@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819" - integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg== - -"@types/d3-timer@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce" - integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g== - -"@types/d3-transition@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.2.tgz#393dc3e3d55009a43cc6f252e73fccab6d78a8a4" - integrity sha512-jo5o/Rf+/u6uerJ/963Dc39NI16FQzqwOc54bwvksGAdVfvDrqDpVeq95bEvPtBwLCVZutAEyAtmSyEMxN7vxQ== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-zoom@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.1.tgz#4bfc7e29625c4f79df38e2c36de52ec3e9faf826" - integrity sha512-7s5L9TjfqIYQmQQEUcpMAcBOahem7TRoSO/+Gkz02GbMVuULiZzjF2BOdw291dbO2aNon4m2OdFsRGaCq2caLQ== - dependencies: - "@types/d3-interpolate" "*" - "@types/d3-selection" "*" - -"@types/d3@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.0.tgz#fc5cac5b1756fc592a3cf1f3dc881bf08225f515" - integrity sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA== - dependencies: - "@types/d3-array" "*" - "@types/d3-axis" "*" - "@types/d3-brush" "*" - "@types/d3-chord" "*" - "@types/d3-color" "*" - "@types/d3-contour" "*" - "@types/d3-delaunay" "*" - "@types/d3-dispatch" "*" - "@types/d3-drag" "*" - "@types/d3-dsv" "*" - "@types/d3-ease" "*" - "@types/d3-fetch" "*" - "@types/d3-force" "*" - "@types/d3-format" "*" - "@types/d3-geo" "*" - "@types/d3-hierarchy" "*" - "@types/d3-interpolate" "*" - "@types/d3-path" "*" - "@types/d3-polygon" "*" - "@types/d3-quadtree" "*" - "@types/d3-random" "*" - "@types/d3-scale" "*" - "@types/d3-scale-chromatic" "*" - "@types/d3-selection" "*" - "@types/d3-shape" "*" - "@types/d3-time" "*" - "@types/d3-time-format" "*" - "@types/d3-timer" "*" - "@types/d3-transition" "*" - "@types/d3-zoom" "*" - -"@types/debug@^4.0.0": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== - dependencies: - "@types/ms" "*" - -"@types/dompurify@^2.3.4": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.3.4.tgz#94e997e30338ea24d4c8d08beca91ce4dd17a1b4" - integrity sha512-EXzDatIb5EspL2eb/xPGmaC8pePcTHrkDCONjeisusLFrVfl38Pjea/R0YJGu3k9ZQadSvMqW0WXPI2hEo2Ajg== - dependencies: - "@types/trusted-types" "*" - -"@types/eslint@^8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207" - integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/express-serve-static-core@^4.17.18": - version "4.17.27" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" - integrity sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/geojson@*": - version "7946.0.10" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" - integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA== - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== - -"@types/jsdom@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791" - integrity sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-buffer@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" - integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== - -"@types/json-schema@*": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/keyv@*": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - -"@types/lodash@^4.14.185": - version "4.14.185" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.185.tgz#c9843f5a40703a8f5edfd53358a58ae729816908" - integrity sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA== - -"@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== - dependencies: - "@types/unist" "*" - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - -"@types/node@*": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== - -"@types/node@^14.0.0", "@types/node@^14.14.31": - version "14.18.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.26.tgz#239e19f8b4ea1a9eb710528061c1d733dc561996" - integrity sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA== - -"@types/node@^16.11.1": - version "16.11.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.33.tgz#566713b1b626f781c5c58fe3531307283e00720c" - integrity sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/prettier@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" - integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/sinonjs__fake-timers@8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" - integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== - -"@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== - -"@types/stylis@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.0.2.tgz#311c62d68a23dfb01462d54b04549484a4c5cb2a" - integrity sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg== - -"@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== - -"@types/trusted-types@*": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" - integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.37.0.tgz#5ccdd5d9004120f28fc6e717fb4b5c9bddcfbc04" - integrity sha512-Fde6W0IafXktz1UlnhGkrrmnnGpAo1kyX7dnyHHVrmwJOn72Oqm3eYtddrpOwwel2W8PAK9F3pIL5S+lfoM0og== - dependencies: - "@typescript-eslint/scope-manager" "5.37.0" - "@typescript-eslint/type-utils" "5.37.0" - "@typescript-eslint/utils" "5.37.0" - debug "^4.3.4" - functional-red-black-tree "^1.0.1" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.37.0.tgz#c382077973f3a4ede7453fb14cadcad3970cbf3b" - integrity sha512-01VzI/ipYKuaG5PkE5+qyJ6m02fVALmMPY3Qq5BHflDx3y4VobbLdHQkSMg9VPRS4KdNt4oYTMaomFoHonBGAw== - dependencies: - "@typescript-eslint/scope-manager" "5.37.0" - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/typescript-estree" "5.37.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809" - integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg== - dependencies: - "@typescript-eslint/types" "5.10.1" - "@typescript-eslint/visitor-keys" "5.10.1" - -"@typescript-eslint/scope-manager@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz#044980e4f1516a774a418dafe701a483a6c9f9ca" - integrity sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q== - dependencies: - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/visitor-keys" "5.37.0" - -"@typescript-eslint/type-utils@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz#43ed2f567ada49d7e33a6e4b6f9babd060445fe5" - integrity sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ== - dependencies: - "@typescript-eslint/typescript-estree" "5.37.0" - "@typescript-eslint/utils" "5.37.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea" - integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q== - -"@typescript-eslint/types@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.37.0.tgz#09e4870a5f3af7af3f84e08d792644a87d232261" - integrity sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA== - -"@typescript-eslint/typescript-estree@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15" - integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ== - dependencies: - "@typescript-eslint/types" "5.10.1" - "@typescript-eslint/visitor-keys" "5.10.1" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz#956dcf5c98363bcb97bdd5463a0a86072ff79355" - integrity sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA== - dependencies: - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/visitor-keys" "5.37.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.37.0.tgz#7784cb8e91390c4f90ccaffd24a0cf9874df81b2" - integrity sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.37.0" - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/typescript-estree" "5.37.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/utils@^5.10.0": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.10.1.tgz#fa682a33af47080ba2c4368ee0ad2128213a1196" - integrity sha512-RRmlITiUbLuTRtn/gcPRi4202niF+q7ylFLCKu4c+O/PcpRvZ/nAUwQ2G00bZgpWkhrNLNnvhZLbDn8Ml0qsQw== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.10.1" - "@typescript-eslint/types" "5.10.1" - "@typescript-eslint/typescript-estree" "5.10.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.10.1": - version "5.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b" - integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ== - dependencies: - "@typescript-eslint/types" "5.10.1" - eslint-visitor-keys "^3.0.0" - -"@typescript-eslint/visitor-keys@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz#7b72dd343295ea11e89b624995abc7103c554eee" - integrity sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA== - dependencies: - "@typescript-eslint/types" "5.37.0" - eslint-visitor-keys "^3.3.0" - -"@vitest/coverage-c8@^0.23.2": - version "0.23.2" - resolved "https://registry.yarnpkg.com/@vitest/coverage-c8/-/coverage-c8-0.23.2.tgz#48bf6ea81a7ce57abf539361d5a6762e87c36448" - integrity sha512-VWT6zGj9iXEZCimnRLAUhf3siYVGIG9VryyMoo7B8zMOd+bnAbH8/7PhqvmjedVwa9wh61nkxqgG7/3Y/mzofQ== - dependencies: - c8 "^7.12.0" - vitest "0.23.2" - -"@vitest/ui@^0.23.2": - version "0.23.2" - resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.23.2.tgz#0d4a3918edaca6d38f20c49467a03a51d4b26eff" - integrity sha512-dO1UxSwEm11OgumUVbEnF7wKwDPoBGjkrvATvvhkFaDw2iiQm8WewF0hmnUVHj6BSNoHUIJ3uXEzfF9T9W+2yg== - dependencies: - sirv "^2.0.2" - -"@wdio/config@7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@wdio/config/-/config-7.16.11.tgz#c35a0efb9c7ec6c80e3324e9818f636010087e97" - integrity sha512-sIk9FINQfXohuDONb8RA1uv+29XvUw6OBHfaaU7/c9gfKiOWiRczdfiLqfySZRwYgEgNhzCw5vHIogTry1h+xQ== - dependencies: - "@wdio/logger" "7.16.0" - "@wdio/types" "7.16.11" - deepmerge "^4.0.0" - glob "^7.1.2" - -"@wdio/logger@7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-7.16.0.tgz#40f116ebffc23c638b8e421e350f110a058523e9" - integrity sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg== - dependencies: - chalk "^4.0.0" - loglevel "^1.6.0" - loglevel-plugin-prefix "^0.8.4" - strip-ansi "^6.0.0" - -"@wdio/protocols@7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-7.16.7.tgz#8a160d59f0c028ff2dda6a1599a86a801a79bcb8" - integrity sha512-Wv40pNQcLiPzQ3o98Mv4A8T1EBQ6k4khglz/e2r16CTm+F3DDYh8eLMAsU5cgnmuwwDKX1EyOiFwieykBn5MCg== - -"@wdio/types@7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@wdio/types/-/types-7.16.11.tgz#110bf91f17cbdc8be0fa4363581372036ebc7d0c" - integrity sha512-OFVTFEB6qdG84Y+cOWIacV0loGMgq2SF/rGGlGxai89V3UQxzCFTYVoAx6odAuSNZ37wmfWCykyAR/lAlMItoQ== - dependencies: - "@types/node" "^16.11.1" - got "^11.8.1" - -"@wdio/utils@7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-7.16.11.tgz#15ae95efb205c32832ddb4b60251048e1ecef68d" - integrity sha512-qeXHREZJ7mz3C2cWGOmFG6MS6njp1js4f8zca3iqxaorWshwkrlNsps3B1iTHfkvK6oWnmc2Q0o5CrtLZl0LkA== - dependencies: - "@wdio/logger" "7.16.0" - "@wdio/types" "7.16.11" - p-iteration "^1.1.8" - -JSONSelect@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" - integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= - -JSONStream@^1.0.3, JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -"JSV@>= 4.0.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= - -abab@^2.0.5, abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abort-controller@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0, acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.1.1, acorn-walk@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^7.0.0, acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.4.1, acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= - -agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - 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" - -ajv@^8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.1.0, ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== - -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-path@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/app-path/-/app-path-3.3.0.tgz#0342a909db37079c593979c720f99e872475eba3" - integrity sha512-EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA== - dependencies: - execa "^1.0.0" - -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= - dependencies: - buffer-equal "^1.0.0" - -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types@^0.13.2: - version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" - integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== - dependencies: - tslib "^2.0.1" - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928" - integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== - dependencies: - follow-redirects "^1.14.8" - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" - integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.2" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" - integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" - integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - -babelify@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" - integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -bail@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" - integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1, base64-js@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - 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" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -binary-searching@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/binary-searching/-/binary-searching-2.0.5.tgz#ab6d08d51cd1b58878ae208ab61988f885b22dd3" - integrity sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA== - -blob-util@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" - integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== - -bluebird@3.7.2, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - 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" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - 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" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserslist@^4.20.2, browserslist@^4.21.0: - version "4.21.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== - dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" - update-browserslist-db "^1.0.4" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= - -buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -c8@^7.12.0: - version "7.12.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14" - integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.3" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.2.0" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.1.4" - rimraf "^3.0.2" - test-exclude "^6.0.0" - v8-to-istanbul "^9.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.9" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - 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" - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -cached-path-relative@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" - integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== - -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001359: - version "1.0.30001406" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz" - integrity sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg== - -caniuse-lite@^1.0.30001400: - version "1.0.30001408" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001408.tgz#8f5e96bd9c5fd1a8c629e4415cdbaf556333a591" - integrity sha512-DdUCktgMSM+1ndk9EFMZcavsGszV7zxV9O7MtOHniTa/iyAIwJCF0dFVBdU9SijJbfh29hC9bCs07wu8pjnGJQ== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - -chai@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - 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" - -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" - -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - -check-more-types@2.24.0, check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= - -chokidar@^3.4.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - 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" - optionalDependencies: - fsevents "~2.3.2" - -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cjson@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" - integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= - dependencies: - jsonlint "1.6.0" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-table3@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== - dependencies: - string-width "^4.2.0" - optionalDependencies: - colors "1.4.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== - dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== - dependencies: - mimic-response "^1.0.0" - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.16, colorette@^2.0.17: - version "2.0.17" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.17.tgz#5dd4c0d15e2984b7433cb4a9f2ead45063b80c47" - integrity sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g== - -colors@0.5.x: - version "0.5.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" - integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= - -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -comma-separated-tokens@^1.0.1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - -commander@7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" - integrity sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw== - -comment-parser@1.3.1, comment-parser@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== - -common-tags@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compress-brotli@^1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" - integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== - dependencies: - "@types/json-buffer" "~3.0.0" - json-buffer "~3.0.1" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -concat-stream@~1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - integrity sha1-cIl4Yk2FavQaWnQd790mHadSwmY= - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -concurrently@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.4.0.tgz#bb0e344964bc172673577c420db21e963f2f7368" - integrity sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA== - dependencies: - chalk "^4.1.0" - date-fns "^2.29.1" - lodash "^4.17.21" - rxjs "^7.0.0" - shell-quote "^1.7.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^17.3.1" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - -conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: - version "5.0.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" - integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" - integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== - dependencies: - q "^1.5.1" - -conventional-changelog-config-spec@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz#874a635287ef8b581fd8558532bf655d4fb59f2d" - integrity sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ== - -conventional-changelog-conventionalcommits@4.6.1, conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz#f4c0921937050674e578dc7875f908351ccf4014" - integrity sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-conventionalcommits@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" - integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-core@^4.2.1: - version "4.2.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" - integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== - dependencies: - add-stream "^1.0.0" - conventional-changelog-writer "^5.0.0" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^4.0.0" - git-raw-commits "^2.0.8" - git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - through2 "^4.0.0" - -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" - integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" - integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" - integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" - integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" - integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" - integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== - -conventional-changelog-writer@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz#c4042f3f1542f2f41d7d2e0d6cad23aba8df8eec" - integrity sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g== - dependencies: - conventional-commits-filter "^2.0.7" - dateformat "^3.0.0" - handlebars "^4.7.6" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^8.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^4.0.0" - -conventional-changelog@3.1.24: - version "3.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.24.tgz#ebd180b0fd1b2e1f0095c4b04fd088698348a464" - integrity sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg== - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" - integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== - dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" - -conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz#fc43704698239451e3ef35fd1d8ed644f46bd86e" - integrity sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -conventional-recommended-bump@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" - integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" - -convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.3.tgz#7d8503185be76bb6d8d592c291a4457a8e440aa9" - integrity sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw== - dependencies: - browserslist "^4.21.0" - semver "7.0.0" - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig-typescript-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.0.0.tgz#4a6d856c1281135197346a6f64dfa73a9cd9fefa" - integrity sha512-cVpucSc2Tf+VPwCCR7SZzmQTQkPbkk4O01yXsYqXBIbjE1bhwqSyAgYQkRK1un4i0OPziTleqFhdkmOc4RQ/9g== - -cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - 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" - -coveralls@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.1.1.tgz#f5d4431d8b5ae69c5079c8f8ca00d64ac77cf081" - integrity sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww== - dependencies: - js-yaml "^3.13.1" - lcov-parse "^1.0.0" - log-driver "^1.2.7" - minimist "^1.2.5" - request "^2.88.2" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== - dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -cypress-image-snapshot@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cypress-image-snapshot/-/cypress-image-snapshot-4.0.1.tgz#59084e713a8d03500c8e053ad7a76f3f18609648" - integrity sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q== - dependencies: - chalk "^2.4.1" - fs-extra "^7.0.1" - glob "^7.1.3" - jest-image-snapshot "4.2.0" - pkg-dir "^3.0.0" - term-img "^4.0.0" - -cypress@^10.0.0: - version "10.8.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.8.0.tgz#12a681f2642b6f13d636bab65d5b71abdb1497a5" - integrity sha512-QVse0dnLm018hgti2enKMVZR9qbIO488YGX06nH5j3Dg1isL38DwrBtyrax02CANU6y8F4EJUuyW6HJKw1jsFA== - dependencies: - "@cypress/request" "^2.88.10" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.6.0" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" - commander "^5.1.0" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.2" - enquirer "^2.3.6" - eventemitter2 "6.4.7" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-ci "^3.0.0" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.6" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - semver "^7.3.2" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - yauzl "^2.10.0" - -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.1.1.tgz#7797eb53ead6b9083c75a45a681e93fc41bc468c" - integrity sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ== - dependencies: - internmap "1 - 2" - -d3-axis@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" - integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== - -d3-brush@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" - integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "3" - d3-transition "3" - -d3-chord@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" - integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== - dependencies: - d3-path "1 - 3" - -"d3-color@1 - 3", d3-color@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a" - integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw== - -d3-contour@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd" - integrity sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ== - dependencies: - d3-array "2 - 3" - -d3-delaunay@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92" - integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ== - dependencies: - delaunator "5" - -"d3-dispatch@1 - 3", d3-dispatch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -"d3-drag@2 - 3", d3-drag@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" - integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== - dependencies: - d3-dispatch "1 - 3" - d3-selection "3" - -"d3-dsv@1 - 3", d3-dsv@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -"d3-ease@1 - 3", d3-ease@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" - integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== - -d3-fetch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.0.1.tgz#4f92362fd8685d93e3b1fae0fd97dc8980b1ed7e" - integrity sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz#9cbb0ffd2375137a351e6cfeed344a06d4ff4597" - integrity sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA== - -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -"d3-path@1 - 3", d3-path@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.0.1.tgz#f09dec0aaffd770b7995f1a399152bf93052321e" - integrity sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w== - -d3-polygon@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" - integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== - -"d3-quadtree@1 - 3", d3-quadtree@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-scale-chromatic@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" - integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== - dependencies: - d3-color "1 - 3" - d3-interpolate "1 - 3" - -d3-scale@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -"d3-selection@2 - 3", d3-selection@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" - integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== - -d3-shape@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.0.1.tgz#9ccdfb28fd9b0d12f2d8aec234cd5c4a9ea27931" - integrity sha512-HNZNEQoDhuCrDWEc/BMbF/hKtzMZVoe64TvisFLDp2Iyj0UShB/E6/lBsLlJTfBMbYgftHj90cXJ0SEitlE6Xw== - dependencies: - d3-path "1 - 3" - -"d3-time-format@2 - 4", d3-time-format@4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.0.0.tgz#65972cb98ae2d4954ef5c932e8704061335d4975" - integrity sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -"d3-transition@2 - 3", d3-transition@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" - integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== - dependencies: - d3-color "1 - 3" - d3-dispatch "1 - 3" - d3-ease "1 - 3" - d3-interpolate "1 - 3" - d3-timer "1 - 3" - -d3-zoom@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" - integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "2 - 3" - d3-transition "2 - 3" - -d3@^5.14, d3@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.2.1.tgz#97eafaa6fc8cd7c564c3ace1e6678cbecf63f3ea" - integrity sha512-E/5sP0aeK6YPXI/+4QlefvBFgmcyR2jYftId0PrYWv4Y/gW3c3thp1XG4rQzF0eUwV9tR1x05X5eWuJ6rQXvew== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "3" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - -dagre-d3@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" - integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ== - dependencies: - d3 "^5.14" - dagre "^0.8.5" - graphlib "^2.1.8" - lodash "^4.17.15" - -dagre@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" - integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== - dependencies: - graphlib "^2.1.8" - lodash "^4.17.15" - -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - -data-urls@^3.0.1, data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -date-fns@^2.29.1: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== - -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - -dayjs@^1.10.4: - version "1.10.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" - integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== - dependencies: - character-entities "^2.0.0" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -degenerator@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.2.tgz#6a61fcc42a702d6e50ff6023fe17bff435f68235" - integrity sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ== - dependencies: - ast-types "^0.13.2" - escodegen "^1.8.1" - esprima "^4.0.0" - vm2 "^3.9.8" - -delaunator@5: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" - integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== - dependencies: - robust-predicates "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detab@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-newline@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detective@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine-temporary-fork@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz#36f2154f556ee4f1e60311d391cd23de5187ed57" - integrity sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -documentation@13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/documentation/-/documentation-13.2.0.tgz#7ceef4a2b795e3b6095e6cadbce89d3568097406" - integrity sha512-c7lIXNZ9t3481c+OGpj4lWPhtdmQilg4E04wc6TXH1gYg2wWu+/f3c60Otg2HDRVnCQoXrozSWuUYNl7y7FJxw== - dependencies: - "@babel/core" "7.12.3" - "@babel/generator" "7.12.1" - "@babel/parser" "7.12.3" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.1" - "@babel/plugin-proposal-do-expressions" "^7.12.1" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-export-namespace-from" "^7.12.1" - "@babel/plugin-proposal-function-bind" "^7.12.1" - "@babel/plugin-proposal-function-sent" "^7.12.1" - "@babel/plugin-proposal-json-strings" "^7.12.1" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" - "@babel/plugin-proposal-pipeline-operator" "^7.12.1" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-proposal-throw-expressions" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/preset-env" "^7.12.1" - "@babel/preset-flow" "^7.9.0" - "@babel/preset-react" "^7.9.4" - "@babel/preset-stage-0" "^7.8.3" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - ansi-html "^0.0.7" - babelify "^10.0.0" - chalk "^2.3.0" - chokidar "^3.4.0" - concat-stream "^1.6.0" - diff "^4.0.1" - doctrine-temporary-fork "2.1.0" - get-port "^5.0.0" - git-url-parse "^11.1.2" - github-slugger "1.2.0" - glob "^7.1.2" - globals-docs "^2.4.0" - highlight.js "^10.5.0" - ini "^1.3.5" - js-yaml "^3.10.0" - lodash "^4.17.10" - mdast-util-inject "^1.1.0" - micromatch "^3.1.5" - mime "^2.2.0" - module-deps-sortable "^5.0.3" - parse-filepath "^1.0.2" - pify "^5.0.0" - read-pkg-up "^4.0.0" - remark "^9.0.0" - remark-html "^8.0.0" - remark-reference-links "^4.0.1" - remark-toc "^5.0.0" - resolve "^1.8.1" - stream-array "^1.1.2" - strip-json-comments "^2.0.1" - tiny-lr "^1.1.0" - unist-builder "^1.0.2" - unist-util-visit "^1.3.0" - vfile "^4.0.0" - vfile-reporter "^6.0.0" - vfile-sort "^2.1.0" - vinyl "^2.1.0" - vinyl-fs "^3.0.2" - vue-template-compiler "^2.5.16" - yargs "^15.3.1" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -domhandler@^5.0.1, domhandler@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -dompurify@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.0.tgz#c9c88390f024c2823332615c9e20a453cf3825dd" - integrity sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA== - -domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.1" - -dot-prop@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotgitignore@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" - integrity sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA== - dependencies: - find-up "^3.0.0" - minimatch "^3.0.4" - -duplexer2@^0.1.2, duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ebnf-parser@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" - integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.172: - version "1.4.177" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.177.tgz#b6a4436eb788ca732556cd69f384b8a3c82118c5" - integrity sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg== - -electron-to-chromium@^1.4.251: - version "1.4.256" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.256.tgz#c735032f412505e8e0482f147a8ff10cfca45bf4" - integrity sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw== - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^4.2.0, entities@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" - integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== - -entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -esbuild-android-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz#625863e705d4ed32a3b4c0b997dbf9454d50a455" - integrity sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw== - dependencies: - esbuild-wasm "0.15.8" - -esbuild-android-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz#cd62afe08652ac146014386d3adbe7a9d33db1b0" - integrity sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ== - -esbuild-darwin-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz#eb668dc973165f85aefecdca8aa60231acb2f705" - integrity sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA== - -esbuild-darwin-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz#91c110daa46074fdfc18f411247ca0d1228aacc3" - integrity sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw== - -esbuild-freebsd-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz#22270945a9bf9107c340eb73922e122bbe84f8ad" - integrity sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw== - -esbuild-freebsd-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz#0efe2741fbcaa2cfd31b9f94bd3ca7385b68c469" - integrity sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w== - -esbuild-linux-32@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz#6fc98659105da5c0d1fedfce3b7b9fa24ebee0d4" - integrity sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg== - -esbuild-linux-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz#8e738c926d145cdd4e9bcb2febc96d89dc27dc09" - integrity sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA== - -esbuild-linux-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz#a12675e5a56e8ef08dea49da8eed51a87b0e60d6" - integrity sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg== - -esbuild-linux-arm@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz#6424da1e8a3ece78681ebee4a70477b40c36ab35" - integrity sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q== - -esbuild-linux-mips64le@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz#5b39a16272cb4eaaad1f24938c057b19fb5a0ee5" - integrity sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA== - -esbuild-linux-ppc64le@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz#98ea8cfae8227180b45b2d952b2cbb072900944f" - integrity sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg== - -esbuild-linux-riscv64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz#6334607025eb449d8dd402d7810721dc15a6210f" - integrity sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA== - -esbuild-linux-s390x@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz#874f1a3507c32cce1d2ce0d2f28ac1496c094eab" - integrity sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA== - -esbuild-netbsd-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz#2e03d87ed811400d5d1fa8c7629b9fd97a574231" - integrity sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw== - -esbuild-openbsd-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz#8fdbc6399563ac61ff546449e2226a2b1477216c" - integrity sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA== - -esbuild-sunos-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz#db657b5c09c0c0161d67ddafca1b710a2e7ce96b" - integrity sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA== - -esbuild-wasm@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz#60fb8c5dc1a5538421857a2fa5fbb9eab908dcbb" - integrity sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w== - -esbuild-windows-32@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz#bbb9fe20a8b6bba4428642cacf45a0fb7b2f3783" - integrity sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg== - -esbuild-windows-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz#cedee65505209c8d371d7228b60785c08f43e04d" - integrity sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA== - -esbuild-windows-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz#1d75235290bf23a111e6c0b03febd324af115cb1" - integrity sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg== - -esbuild@^0.15.6, esbuild@^0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.8.tgz#75daa25d03f6dd9cc9355030eba2b93555b42cd4" - integrity sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q== - optionalDependencies: - "@esbuild/android-arm" "0.15.8" - "@esbuild/linux-loong64" "0.15.8" - esbuild-android-64 "0.15.8" - esbuild-android-arm64 "0.15.8" - esbuild-darwin-64 "0.15.8" - esbuild-darwin-arm64 "0.15.8" - esbuild-freebsd-64 "0.15.8" - esbuild-freebsd-arm64 "0.15.8" - esbuild-linux-32 "0.15.8" - esbuild-linux-64 "0.15.8" - esbuild-linux-arm "0.15.8" - esbuild-linux-arm64 "0.15.8" - esbuild-linux-mips64le "0.15.8" - esbuild-linux-ppc64le "0.15.8" - esbuild-linux-riscv64 "0.15.8" - esbuild-linux-s390x "0.15.8" - esbuild-netbsd-64 "0.15.8" - esbuild-openbsd-64 "0.15.8" - esbuild-sunos-64 "0.15.8" - esbuild-windows-32 "0.15.8" - esbuild-windows-64 "0.15.8" - esbuild-windows-arm64 "0.15.8" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@1.3.x: - version "1.3.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" - integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= - dependencies: - esprima "~1.1.1" - estraverse "~1.5.0" - esutils "~1.0.0" - optionalDependencies: - source-map "~0.1.33" - -escodegen@^1.8.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - -eslint-plugin-cypress@^2.12.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.12.1.tgz#9aeee700708ca8c058e00cdafe215199918c2632" - integrity sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA== - dependencies: - globals "^11.12.0" - -eslint-plugin-html@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz#aec2a3772b40ccf51a5be4f972f07600539d3b3e" - integrity sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg== - dependencies: - htmlparser2 "^8.0.1" - -eslint-plugin-jest@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.0.4.tgz#ab9c7b3f48bfade4762c24c415a5d9bbc0174a61" - integrity sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-jsdoc@^39.3.6: - version "39.3.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz#6ba29f32368d72a51335a3dc9ccd22ad0437665d" - integrity sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g== - dependencies: - "@es-joy/jsdoccomment" "~0.31.0" - comment-parser "1.3.1" - debug "^4.3.4" - escape-string-regexp "^4.0.0" - esquery "^1.4.0" - semver "^7.3.7" - spdx-expression-parse "^3.0.1" - -eslint-plugin-json@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz#251108ba1681c332e0a442ef9513bd293619de67" - integrity sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g== - dependencies: - lodash "^4.17.21" - vscode-json-languageservice "^4.1.6" - -eslint-plugin-markdown@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.0.tgz#69a63ab3445076a3c2eb6fce6f5114785b19d318" - integrity sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg== - dependencies: - mdast-util-from-markdown "^0.8.5" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.23.1: - version "8.23.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" - integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== - dependencies: - "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" - "@humanwhocodes/module-importer" "^1.0.1" - 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.4.0" - 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" - 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-sdsl "^4.1.4" - 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" - -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esprima@1.1.x, esprima@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" - integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estraverse@~1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" - integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -esutils@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" - integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter2@6.4.7: - version "6.4.7" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" - integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== - -execa@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@5.1.1, execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - 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" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - 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" - -express@^4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.0" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.10.3" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - 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" - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-clone@^1.5.13: - version "1.5.13" - resolved "https://registry.yarnpkg.com/fast-clone/-/fast-clone-1.5.13.tgz#7fe17542ae1c872e71bf80d177d00c11f51c2ea7" - integrity sha512-0ez7coyFBQFjZtId+RJqJ+EQs61w9xARfqjqK0AD9vIUkSxWD4HvPt80+5evebZ1tTnv1GYKrPTipx7kOW5ipA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - 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" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -figures@^3.1.0, figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-uri-to-path@2: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" - integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -flush-write-stream@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.14.0, follow-redirects@^1.14.8: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-access@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -ftp@^0.3.10: - version "0.3.10" - resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" - integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - -get-intrinsic@^1.0.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-pkg-repo@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" - integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== - dependencies: - "@hutson/parse-repository-url" "^3.0.0" - hosted-git-info "^4.0.0" - through2 "^2.0.0" - yargs "^16.2.0" - -get-port@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-uri@3: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" - integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== - dependencies: - "@tootallnate/once" "1" - data-uri-to-buffer "3" - debug "4" - file-uri-to-path "2" - fs-extra "^8.1.0" - ftp "^0.3.10" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^4.0.0, git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" - integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== - dependencies: - meow "^8.0.0" - semver "^6.0.0" - -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== - dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" - -git-url-parse@^11.1.2: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== - dependencies: - git-up "^4.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= - dependencies: - ini "^1.3.2" - -github-slugger@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.0.tgz#8ada3286fd046d8951c3c952a8d7854cfd90fd9a" - integrity sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q== - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -github-slugger@^1.0.0, github-slugger@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" - integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - 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" - -glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - 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" - -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - dependencies: - ini "2.0.0" - -globals-docs@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.1.tgz#d16887709f4a15eb22d97e96343591f87a2ee3db" - integrity sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg== - -globals@^11.1.0, globals@^11.12.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.4, globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - 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" - -globby@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" - integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - -glur@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/glur/-/glur-1.1.2.tgz#f20ea36db103bfc292343921f1f91e83c3467689" - integrity sha1-8g6jbbEDv8KSNDkh8fkeg8NGdok= - -got@^11.0.2, got@^11.8.1: - version "11.8.5" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -handlebars@^4.7.6: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -harmony-reflect@^1.4.6: - version "1.6.2" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" - integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hast-util-is-element@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425" - integrity sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ== - -hast-util-sanitize@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-1.3.1.tgz#4e60d66336bd67e52354d581967467029a933f2e" - integrity sha512-AIeKHuHx0Wk45nSkGVa2/ujQYTksnDl8gmmKo/mwQi7ag7IBZ8cM3nJ2G86SajbjGP/HRpud6kMkPtcM2i0Tlw== - dependencies: - xtend "^4.0.1" - -hast-util-to-html@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-4.0.1.tgz#3666b05afb62bd69f8f5e6c94db04dea19438e2a" - integrity sha512-2emzwyf0xEsc4TBIPmDJmBttIw8R4SXAJiJZoiRR/s47ODYWgOqNoDbf2SJAbMbfNdFWMiCSOrI3OVnX6Qq2Mg== - dependencies: - ccount "^1.0.0" - comma-separated-tokens "^1.0.1" - hast-util-is-element "^1.0.0" - hast-util-whitespace "^1.0.0" - html-void-elements "^1.0.0" - property-information "^4.0.0" - space-separated-tokens "^1.0.0" - stringify-entities "^1.0.1" - unist-util-is "^2.0.0" - xtend "^4.0.1" - -hast-util-whitespace@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" - integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== - -he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -highlight.js@^10.5.0: - version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== - dependencies: - lru-cache "^6.0.0" - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== - -htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - domutils "^3.0.1" - entities "^4.3.0" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-parser-js@>=0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== - -http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== - dependencies: - assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.14.1" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -https-proxy-agent@5, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - -husky@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6, iconv-lite@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -identity-obj-proxy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= - dependencies: - harmony-reflect "^1.4.6" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-ci@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-core-module@^2.2.0, is-core-module@^2.5.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-ssh@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" - integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== - dependencies: - protocols "^2.0.1" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= - -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-reports@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterm2-version@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/iterm2-version/-/iterm2-version-4.2.0.tgz#b78069f747f34a772bc7dc17bda5bd9ed5e09633" - integrity sha512-IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ== - dependencies: - app-path "^3.2.0" - plist "^3.0.1" - -jest-image-snapshot@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz#559d7ade69e9918517269cef184261c80029a69e" - integrity sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ== - dependencies: - chalk "^1.1.3" - get-stdin "^5.0.1" - glur "^1.1.2" - lodash "^4.17.4" - mkdirp "^0.5.1" - pixelmatch "^5.1.0" - pngjs "^3.4.0" - rimraf "^2.6.2" - ssim.js "^3.1.1" - -jison-lex@0.3.x: - version "0.3.4" - resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" - integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= - dependencies: - lex-parser "0.1.x" - nomnom "1.5.2" - -jison@^0.4.18: - version "0.4.18" - resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" - integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== - dependencies: - JSONSelect "0.4.0" - cjson "0.3.0" - ebnf-parser "0.1.10" - escodegen "1.3.x" - esprima "1.1.x" - jison-lex "0.3.x" - lex-parser "~0.1.3" - nomnom "1.5.2" - -joi@^17.4.0: - version "17.5.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.5.0.tgz#7e66d0004b5045d971cf416a55fb61d33ac6e011" - integrity sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - -jpeg-js@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa" - integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== - -js-base64@3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" - integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== - -js-sdsl@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" - integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.10.0, js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdoc-type-pratt-parser@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz#a4a56bdc6e82e5865ffd9febc5b1a227ff28e67e" - integrity sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw== - -jsdom@^20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" - integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== - dependencies: - abab "^2.0.6" - acorn "^8.7.1" - acorn-globals "^6.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.3.1" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "^7.0.0" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.8.0" - xml-name-validator "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.1, json-buffer@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonlint@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" - integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= - dependencies: - JSV ">= 4.0.x" - nomnom ">= 1.5.x" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -keyv@^4.0.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.2.tgz#e839df676a0c7ee594c8835e7c1c83742558e5c2" - integrity sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw== - dependencies: - compress-brotli "^1.3.8" - json-buffer "3.0.1" - -khroma@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" - integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== - -konan@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/konan/-/konan-2.1.1.tgz#eea88f05c56249b78903b952b953393900346dd1" - integrity sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg== - dependencies: - "@babel/parser" "^7.10.5" - "@babel/traverse" "^7.10.5" - -ky@^0.28.5: - version "0.28.7" - resolved "https://registry.yarnpkg.com/ky/-/ky-0.28.7.tgz#10c42be863fb96c1846d6e71e229263ffb72eb15" - integrity sha512-a23i6qSr/ep15vdtw/zyEQIDLoUaKDg9Jf04CYl/0ns/wXNYna26zJpI+MeIFaPeDvkrjLPrKtKOiiI3IE53RQ== - -lazy-ass@1.6.0, lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= - -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - -lcov-parse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0" - integrity sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ== - -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= - dependencies: - flush-write-stream "^1.0.2" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lex-parser@0.1.x, lex-parser@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" - integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= - -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lint-staged@^13.0.0: - version "13.0.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" - integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== - dependencies: - cli-truncate "^3.1.0" - colorette "^2.0.17" - commander "^9.3.0" - debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.5" - listr2 "^4.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.1.1" - -listr2@^3.8.3: - version "3.13.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" - integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.4.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" - integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.5" - through "^2.3.8" - wrap-ansi "^7.0.0" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -local-pkg@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" - integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= - -lodash.merge@^4.6.1, lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.once@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - -lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-driver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" - integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== - -log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -loglevel-plugin-prefix@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644" - integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g== - -loglevel@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - -longest-streak@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - -longest-streak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" - integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== - -loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== - dependencies: - get-func-name "^2.0.0" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -markdown-table@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" - integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== - -mdast-util-compact@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593" - integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg== - dependencies: - unist-util-visit "^1.1.0" - -mdast-util-definitions@^1.2.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz#3fe622a4171c774ebd06f11e9f8af7ec53ea5c74" - integrity sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA== - dependencies: - unist-util-visit "^1.0.0" - -mdast-util-from-markdown@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" - integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" - integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== - 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" - -mdast-util-inject@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz#db06b8b585be959a2dcd2f87f472ba9b756f3675" - integrity sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU= - dependencies: - mdast-util-to-string "^1.0.0" - -mdast-util-to-hast@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-3.0.4.tgz#132001b266031192348d3366a6b011f28e54dc40" - integrity sha512-/eIbly2YmyVgpJNo+bFLLMCI1XgolO/Ffowhf+pHDq3X4/V6FntC9sGQCDLM147eTS+uSXv5dRzJyFn+o0tazA== - dependencies: - collapse-white-space "^1.0.0" - detab "^2.0.0" - mdast-util-definitions "^1.2.0" - mdurl "^1.0.1" - trim "0.0.1" - trim-lines "^1.0.0" - unist-builder "^1.0.1" - unist-util-generated "^1.1.0" - unist-util-position "^3.0.0" - unist-util-visit "^1.1.0" - xtend "^4.0.1" - -mdast-util-to-markdown@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" - integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - longest-streak "^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" - -mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" - integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== - -mdast-util-toc@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz#395eeb877f067f9d2165d990d77c7eea6f740934" - integrity sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w== - dependencies: - github-slugger "^1.2.1" - mdast-util-to-string "^1.0.5" - unist-util-is "^2.1.2" - unist-util-visit "^1.1.0" - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -mermaid@*: - version "9.1.7" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-9.1.7.tgz#e24de9b2d36c8cb25a09d72ffce966941b24bd6e" - integrity sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA== - dependencies: - "@braintree/sanitize-url" "^6.0.0" - d3 "^7.0.0" - dagre "^0.8.5" - dagre-d3 "^0.6.4" - dompurify "2.4.0" - graphlib "^2.1.8" - khroma "^2.0.0" - moment-mini "2.24.0" - stylis "^4.0.10" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromark-core-commonmark@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" - integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== - 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" - -micromark-factory-destination@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" - integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-label@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" - integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-factory-space@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" - integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-factory-title@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" - integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== - 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" - uvu "^0.5.0" - -micromark-factory-whitespace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" - integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== - 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" - -micromark-util-character@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" - integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== - dependencies: - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-chunked@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" - integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-classify-character@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" - integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-combine-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" - integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-types "^1.0.0" - -micromark-util-decode-numeric-character-reference@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" - integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-decode-string@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" - integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== - dependencies: - 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@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" - integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== - -micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== - -micromark-util-normalize-identifier@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" - integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== - dependencies: - micromark-util-symbol "^1.0.0" - -micromark-util-resolve-all@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" - integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== - dependencies: - micromark-util-types "^1.0.0" - -micromark-util-sanitize-uri@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" - integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== - dependencies: - micromark-util-character "^1.0.0" - micromark-util-encode "^1.0.0" - micromark-util-symbol "^1.0.0" - -micromark-util-subtokenize@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" - integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== - dependencies: - micromark-util-chunked "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-util-symbol@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" - integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== - -micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" - integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== - -micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== - dependencies: - "@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" - -micromark@~2.11.0: - version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" - integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.1.5: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - 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" - -micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - -module-deps-sortable@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/module-deps-sortable/-/module-deps-sortable-5.0.3.tgz#e640e7450e0869f4ae8e03437665ca2a8a28f843" - integrity sha512-eiyIZj/A0dj1o4ywXWqicazUL3l0HP3TydUR6xF0X3xh3LGBMLqW8a9aFe6MuNH4mxNMk53QKBHM6LOPR8kSgw== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - konan "^2.1.1" - readable-stream "^2.0.2" - resolve "^1.1.3" - standard-version "^9.0.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -moment-mini@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.24.0.tgz#fa68d98f7fe93ae65bf1262f6abb5fb6983d8d18" - integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ== - -moment-mini@^2.24.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.29.4.tgz#cbbcdc58ce1b267506f28ea6668dbe060a32758f" - integrity sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg== - -moment@^2.23.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - 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" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -netmask@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -nomnom@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" - integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= - dependencies: - colors "0.5.x" - underscore "1.1.x" - -"nomnom@>= 1.5.x": - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - -non-layered-tidy-tree-layout@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" - integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1, normalize-url@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" - integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== - dependencies: - once "^1.3.2" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.0.4, object.assign@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - 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" - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= - dependencies: - readable-stream "^2.0.1" - -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-iteration@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/p-iteration/-/p-iteration-1.1.8.tgz#14df726d55af368beba81bcc92a26bb1b48e714a" - integrity sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pac-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" - integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - get-uri "3" - http-proxy-agent "^4.0.1" - https-proxy-agent "5" - pac-resolver "^5.0.0" - raw-body "^2.2.0" - socks-proxy-agent "5" - -pac-resolver@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0" - integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA== - dependencies: - degenerator "^3.0.1" - ip "^1.1.5" - netmask "^2.0.1" - -pako@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-entities@^1.0.2, parse-entities@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" - integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-filepath@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - 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" - -parse-path@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" - integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" - -parse-url@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" - integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== - dependencies: - is-ssh "^1.3.0" - normalize-url "^6.1.0" - parse-path "^4.0.0" - protocols "^1.4.0" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" - integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== - dependencies: - entities "^4.4.0" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= - dependencies: - path-root-regex "^0.1.0" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^2.2.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pixelmatch@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.2.1.tgz#9e4e4f4aa59648208a31310306a5bed5522b0d65" - integrity sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ== - dependencies: - pngjs "^4.0.1" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -plist@^3.0.1: - version "3.0.5" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.5.tgz#2cbeb52d10e3cdccccf0c11a63a85d830970a987" - integrity sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA== - dependencies: - base64-js "^1.5.1" - xmlbuilder "^9.0.7" - -png-async@0.9.4: - version "0.9.4" - resolved "https://registry.yarnpkg.com/png-async/-/png-async-0.9.4.tgz#0638817508fcf4e732706b2f82c74c947cb83f78" - integrity sha512-B//AXX9TkneKfgtOpT1mdUnnhk2BImGD+a98vImsMU8uo1dBeHyW/kM2erWZ/CsYteTPU/xKG+t6T62heHkC3A== - -pngjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pngjs@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-4.0.1.tgz#f803869bb2fc1bfe1bf99aa4ec21c108117cfdbe" - integrity sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-value-parser@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^8.4.16: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prettier-plugin-jsdoc@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-0.4.2.tgz#c5668fc622ed10b87d988279476f96af96b058b7" - integrity sha512-w2jnAQm3z0GAG0bhzVJeehzDtrhGMSxJjit5ApCc2oxWfc7+jmLAkbtdOXaSpfwZz3IWkk+PiQPeRrLNpbM+Mw== - dependencies: - binary-searching "^2.0.5" - comment-parser "^1.3.1" - mdast-util-from-markdown "^1.2.0" - -prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -pretty-bytes@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - -property-information@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e" - integrity sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ== - dependencies: - xtend "^4.0.1" - -protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -protocols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" - integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-agent@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" - integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== - dependencies: - agent-base "^6.0.0" - debug "4" - http-proxy-agent "^4.0.0" - https-proxy-agent "^5.0.0" - lru-cache "^5.1.1" - pac-proxy-agent "^5.0.0" - proxy-from-env "^1.0.0" - socks-proxy-agent "^5.0.0" - -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= - -proxy-from-env@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -ps-tree@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== - dependencies: - event-stream "=3.3.4" - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@^6.4.0: - version "6.10.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe" - integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw== - dependencies: - side-channel "^1.0.4" - -qs@^6.9.4: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1, raw-body@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - integrity sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA= - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -remark-html@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-8.0.0.tgz#9fcb859a6f3cb40f3ef15402950f1a62ec301b3a" - integrity sha512-3V2391GL3hxKhrkzYOyfPpxJ6taIKLCfuLVqumeWQOk3H9nTtSQ8St8kMYkBVIEAquXN1chT83qJ/2lAW+dpEg== - dependencies: - hast-util-sanitize "^1.0.0" - hast-util-to-html "^4.0.0" - mdast-util-to-hast "^3.0.0" - xtend "^4.0.1" - -remark-parse@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" - integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-from-markdown "^1.0.0" - unified "^10.0.0" - -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== - dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remark-reference-links@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/remark-reference-links/-/remark-reference-links-4.0.4.tgz#190579a0d6b002859d6cdbdc5aeb8bbdae4e06ab" - integrity sha512-+2X8hwSQqxG4tvjYZNrTcEC+bXp8shQvwRGG6J/rnFTvBoU4G0BBviZoqKGZizLh/DG+0gSYhiDDWCqyxXW1iQ== - dependencies: - unist-util-visit "^1.0.0" - -remark-slug@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.2.tgz#715ecdef8df1226786204b1887d31ab16aa24609" - integrity sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A== - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^1.0.0" - -remark-stringify@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7" - integrity sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.0.0" - unified "^10.0.0" - -remark-stringify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba" - integrity sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w== - dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^1.1.0" - mdast-util-compact "^1.0.0" - parse-entities "^1.0.2" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^1.0.1" - unherit "^1.0.4" - xtend "^4.0.1" - -remark-toc@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/remark-toc/-/remark-toc-5.1.1.tgz#8c229d6f834cdb43fde6685e2d43248d3fc82d78" - integrity sha512-vCPW4YOsm2CfyuScdktM9KDnJXVHJsd/ZeRtst+dnBU3B3KKvt8bc+bs5syJjyptAHfqo7H+5Uhz+2blWBfwow== - dependencies: - mdast-util-toc "^3.0.0" - remark-slug "^5.0.0" - -remark@^14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" - integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA== - dependencies: - "@types/mdast" "^3.0.0" - remark-parse "^10.0.0" - remark-stringify "^10.0.0" - unified "^10.0.0" - -remark@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" - integrity sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A== - dependencies: - remark-parse "^5.0.0" - remark-stringify "^5.0.0" - unified "^6.0.0" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.5.0, repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= - dependencies: - throttleit "^1.0.0" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - 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.3" - 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.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" - -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= - dependencies: - value-or-function "^3.0.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.3.2, resolve@^1.8.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rimraf@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -robust-predicates@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" - integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== - -rollup@~2.78.0: - version "2.78.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" - integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= - -rxjs@^7.0.0, rxjs@^7.1.0, rxjs@^7.4.0, rxjs@^7.5.5: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== - dependencies: - tslib "^2.1.0" - -sade@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.3.7, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sirv@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.2.tgz#128b9a628d77568139cff85703ad5497c46a4760" - integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w== - dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" - totalist "^3.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - 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" - -socks-proxy-agent@5, socks-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" - integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== - dependencies: - agent-base "^6.0.2" - debug "4" - socks "^2.3.3" - -socks@^2.3.3: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== - dependencies: - ip "^1.1.5" - smart-buffer "^4.2.0" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.1.33: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= - dependencies: - amdefine ">=0.0.4" - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.14.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - 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" - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - 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" - -ssim.js@^3.1.1: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" - integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== - -standard-version@^9.0.0: - version "9.3.2" - resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.3.2.tgz#28db8c1be66fd2d736f28f7c5de7619e64cd6dab" - integrity sha512-u1rfKP4o4ew7Yjbfycv80aNMN2feTiqseAhUhrrx2XtdQGmu7gucpziXe68Z4YfHVqlxVEzo4aUA0Iu3VQOTgQ== - dependencies: - chalk "^2.4.2" - conventional-changelog "3.1.24" - conventional-changelog-config-spec "2.1.0" - conventional-changelog-conventionalcommits "4.6.1" - conventional-recommended-bump "6.1.0" - detect-indent "^6.0.0" - detect-newline "^3.1.0" - dotgitignore "^2.1.0" - figures "^3.1.0" - find-up "^5.0.0" - fs-access "^1.0.1" - git-semver-tags "^4.0.0" - semver "^7.1.1" - stringify-package "^1.0.1" - yargs "^16.0.0" - -start-server-and-test@^1.12.6: - version "1.14.0" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" - integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== - dependencies: - bluebird "3.7.2" - check-more-types "2.24.0" - debug "4.3.2" - execa "5.1.1" - lazy-ass "1.6.0" - ps-tree "1.2.0" - wait-on "6.0.0" - -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -stream-array@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/stream-array/-/stream-array-1.1.2.tgz#9e5f7345f2137c30ee3b498b9114e80b52bb7eb5" - integrity sha1-nl9zRfITfDDuO0mLkRToC1K7frU= - dependencies: - readable-stream "~2.1.0" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.0.1.tgz#0d8158335a6cfd8eb95da9b6b262ce314a036ffd" - integrity sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g== - dependencies: - emoji-regex "^9.2.2" - is-fullwidth-code-point "^4.0.0" - strip-ansi "^7.0.1" - -string_decoder@0.10, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" - integrity sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-hexadecimal "^1.0.0" - -stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" - integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-literal@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634" - integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA== - dependencies: - acorn "^8.7.1" - -stylis@^4.0.10, stylis@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.2.tgz#870b3c1c2275f51b702bb3da9e94eedad87bba41" - integrity sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA== - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= - dependencies: - minimist "^1.1.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.0, supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -term-img@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/term-img/-/term-img-4.1.0.tgz#5b170961f7aa20b2f3b22deb8ad504beb963a8a5" - integrity sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg== - dependencies: - ansi-escapes "^4.1.0" - iterm2-version "^4.1.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -throat@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= - -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -through@2, "through@>=2.2.7 <3", through@^2.3.8, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tiny-lr@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tinybench@^2.1.3, tinybench@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.1.5.tgz#6864341415ff0f912ed160cfd90b7f833ece674c" - integrity sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ== - -tinypool@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" - integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== - -tinypool@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.0.tgz#c405d8b743509fc28ea4ca358433190be654f819" - integrity sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ== - -tinyspy@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" - integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== - -tmp@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= - dependencies: - through2 "^2.0.3" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -totalist@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd" - integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw== - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -trim-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115" - integrity sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -trim-trailing-lines@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -trough@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" - integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== - -ts-node@^10.8.1, ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.1, tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6, typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^4.6.4: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== - -typescript@^4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" - integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== - -uglify-js@^3.1.4: - version "3.14.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz#68756f17d1b90b9d289341736cb9a567d6882f90" - integrity sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA== - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -underscore@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" - integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= - -underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -unified@^10.0.0: - version "10.1.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" - integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== - 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" - -unified@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -unist-builder@^1.0.1, unist-builder@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz#e1808aed30bd72adc3607f25afecebef4dd59e17" - integrity sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg== - dependencies: - object-assign "^4.1.0" - -unist-util-flatmap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unist-util-flatmap/-/unist-util-flatmap-1.0.0.tgz#f914ed6b36ff040afce938d848f379f88b94b448" - integrity sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ== - -unist-util-generated@^1.1.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - -unist-util-is@^2.0.0, unist-util-is@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.3.tgz#459182db31f4742fceaea88d429693cbf0043d20" - integrity sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA== - -unist-util-is@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" - integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== - -unist-util-is@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" - integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== - -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - -unist-util-remove-position@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" - integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -unist-util-stringify-position@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" - integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== - dependencies: - "@types/unist" "^2.0.0" - -unist-util-visit-parents@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" - integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== - dependencies: - unist-util-is "^3.0.0" - -unist-util-visit-parents@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" - integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" - integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== - dependencies: - unist-util-visit-parents "^2.0.0" - -unist-util-visit@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" - integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.1.1" - -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@8.3.2, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== - dependencies: - dequal "^2.0.0" - diff "^5.0.0" - kleur "^4.0.3" - sade "^1.7.3" - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-location@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" - integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== - -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile-message@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" - integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^3.0.0" - -vfile-reporter@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.2.tgz#cbddaea2eec560f27574ce7b7b269822c191a676" - integrity sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA== - dependencies: - repeat-string "^1.5.0" - string-width "^4.0.0" - supports-color "^6.0.0" - unist-util-stringify-position "^2.0.0" - vfile-sort "^2.1.2" - vfile-statistics "^1.1.0" - -vfile-sort@^2.1.0, vfile-sort@^2.1.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" - integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== - -vfile-statistics@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" - integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -vfile@^5.0.0: - version "5.3.4" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" - integrity sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message "^3.0.0" - -vinyl-fs@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0, vinyl@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" - integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -"vite@^2.9.12 || ^3.0.0-0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" - integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== - dependencies: - esbuild "^0.15.6" - postcss "^8.4.16" - resolve "^1.22.1" - rollup "~2.78.0" - optionalDependencies: - fsevents "~2.3.2" - -vitest@0.23.2: - version "0.23.2" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.2.tgz#f978de0f2ada1b7c5ff8dc479ce75b976957ff19" - integrity sha512-kTBKp3ROPDkYC+x2zWt4znkDtnT08W1FQ6ngRFuqxpBGNuNVS+eWZKfffr8y2JGvEzZ9EzMAOcNaiqMj/FZqMw== - dependencies: - "@types/chai" "^4.3.3" - "@types/chai-subset" "^1.3.3" - "@types/node" "*" - chai "^4.3.6" - debug "^4.3.4" - local-pkg "^0.4.2" - strip-literal "^0.4.0" - tinybench "^2.1.5" - tinypool "^0.3.0" - tinyspy "^1.0.2" - vite "^2.9.12 || ^3.0.0-0" - -vitest@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.1.tgz#da3f79a88a6570e4d8c1fe8cf5e2d997be2dc3bd" - integrity sha512-kn9pG+h6VA3yj/xRvwgLKEd33rOlzMqJEg3tl5HSm3WUPlkY1Lr1FK8RN1uIqVKvFxmz6HGU3EQW+xW2kazRkQ== - dependencies: - "@types/chai" "^4.3.3" - "@types/chai-subset" "^1.3.3" - "@types/node" "*" - chai "^4.3.6" - debug "^4.3.4" - local-pkg "^0.4.2" - strip-literal "^0.4.0" - tinybench "^2.1.3" - tinypool "^0.2.4" - tinyspy "^1.0.2" - vite "^2.9.12 || ^3.0.0-0" - -vm2@^3.9.8: - version "3.9.9" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" - integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== - dependencies: - acorn "^8.7.0" - acorn-walk "^8.2.0" - -vscode-json-languageservice@^4.1.6: - version "4.1.10" - resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-4.1.10.tgz#5d5729fc4f3e02f41599e0104523a1877c25f0fb" - integrity sha512-IHliMEEYSY0tJjJt0ECb8ESx/nRXpoy9kN42WVQXgaqGyizFAf3jibSiezDQTrrY7f3kywXggCU+kkJEM+OLZQ== - dependencies: - jsonc-parser "^3.0.0" - vscode-languageserver-textdocument "^1.0.1" - vscode-languageserver-types "^3.16.0" - vscode-nls "^5.0.0" - vscode-uri "^3.0.2" - -vscode-languageserver-textdocument@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.3.tgz#879f2649bfa5a6e07bc8b392c23ede2dfbf43eff" - integrity sha512-ynEGytvgTb6HVSUwPJIAZgiHQmPCx8bZ8w5um5Lz+q5DjP0Zj8wTFhQpyg8xaMvefDytw2+HH5yzqS+FhsR28A== - -vscode-languageserver-types@^3.16.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" - integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== - -vscode-nls@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840" - integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== - -vscode-uri@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0" - integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA== - -vue-template-compiler@^2.5.16: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" - integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg== - dependencies: - xml-name-validator "^4.0.0" - -wait-on@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" - integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== - dependencies: - axios "^0.21.1" - joi "^17.4.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.1.0" - -webdriver@7.16.11: - version "7.16.11" - resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-7.16.11.tgz#3d031478aa4f4acd84c34f47ae64bdf913933988" - integrity sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q== - dependencies: - "@types/node" "^16.11.1" - "@wdio/config" "7.16.11" - "@wdio/logger" "7.16.0" - "@wdio/protocols" "7.16.7" - "@wdio/types" "7.16.11" - "@wdio/utils" "7.16.11" - got "^11.0.2" - ky "^0.28.5" - lodash.merge "^4.6.1" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-fetch@>=0.10.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" - integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz#37264f720b575b4a311bd4094ed8c760caaa05da" - integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== - -ws@^8.2.3, ws@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xmlbuilder@^9.0.7: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xregexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" - integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= - -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yaml@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" - integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== - -yargs@17.4.1, yargs@^17.0.0, yargs@^17.3.1: - version "17.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" - integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.0.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - 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" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zwitch@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" - integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== From 0e0a6c0f69035ea047780225b048caea31666e68 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 22 Sep 2022 11:28:37 +0200 Subject: [PATCH 0089/1038] Fixed paths for dev server --- .esbuild/serve.cjs | 4 ++-- cypress/platform/bundle-test.js | 2 +- cypress/platform/viewer.js | 2 +- packages/mermaid-mindmap/.esbuild/serve.cjs | 4 ++-- packages/mermaid/.esbuild/serve.cjs | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.esbuild/serve.cjs b/.esbuild/serve.cjs index 4c06572f3e..374ddd8cea 100644 --- a/.esbuild/serve.cjs +++ b/.esbuild/serve.cjs @@ -14,8 +14,8 @@ const getEntryPointsAndExtensions = (format) => { return { entryPoints: { mermaid: './src/mermaid', - e2e: 'cypress/platform/viewer.js', - 'bundle-test': 'cypress/platform/bundle-test.js', + e2e: '../../cypress/platform/viewer.js', + 'bundle-test': '../../cypress/platform/bundle-test.js', }, outExtension: { '.js': format === 'iife' ? '.js' : '.esm.mjs' }, }; diff --git a/cypress/platform/bundle-test.js b/cypress/platform/bundle-test.js index 373f8741a0..4b1f446a1f 100644 --- a/cypress/platform/bundle-test.js +++ b/cypress/platform/bundle-test.js @@ -1,4 +1,4 @@ -import mermaid from '../../dist/mermaid.core'; +import mermaid from '../../packages/mermaid/dist/mermaid.core'; let code = `flowchart LR Power_Supply --> Transmitter_A diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index 00f45ff943..f5676c55a2 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -1,5 +1,5 @@ import { Base64 } from 'js-base64'; -import mermaid2 from '../../src/mermaid'; +import mermaid2 from '../../packages/mermaid/src/mermaid'; /** * ##contentLoaded Callback function that is called when page is loaded. This functions fetches diff --git a/packages/mermaid-mindmap/.esbuild/serve.cjs b/packages/mermaid-mindmap/.esbuild/serve.cjs index 4c06572f3e..33af2a66a4 100644 --- a/packages/mermaid-mindmap/.esbuild/serve.cjs +++ b/packages/mermaid-mindmap/.esbuild/serve.cjs @@ -14,8 +14,8 @@ const getEntryPointsAndExtensions = (format) => { return { entryPoints: { mermaid: './src/mermaid', - e2e: 'cypress/platform/viewer.js', - 'bundle-test': 'cypress/platform/bundle-test.js', + e2e: './cypress/platform/viewer.js', + 'bundle-test': './cypress/platform/bundle-test.js', }, outExtension: { '.js': format === 'iife' ? '.js' : '.esm.mjs' }, }; diff --git a/packages/mermaid/.esbuild/serve.cjs b/packages/mermaid/.esbuild/serve.cjs index 4c06572f3e..374ddd8cea 100644 --- a/packages/mermaid/.esbuild/serve.cjs +++ b/packages/mermaid/.esbuild/serve.cjs @@ -14,8 +14,8 @@ const getEntryPointsAndExtensions = (format) => { return { entryPoints: { mermaid: './src/mermaid', - e2e: 'cypress/platform/viewer.js', - 'bundle-test': 'cypress/platform/bundle-test.js', + e2e: '../../cypress/platform/viewer.js', + 'bundle-test': '../../cypress/platform/bundle-test.js', }, outExtension: { '.js': format === 'iife' ? '.js' : '.esm.mjs' }, }; From aeb31fe1aebf481878c78c6e9f2bbe964053f2da Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 22 Sep 2022 15:35:22 +0530 Subject: [PATCH 0090/1038] Use vite for build --- .vite/build.ts | 81 ++++++ .vite/jisonPlugin.js | 17 ++ .vite/jisonTransformer.js | 15 ++ .vite/server.mjs | 33 --- .vite/server.ts | 26 ++ cypress/platform/bundle-test.js | 2 +- cypress/platform/webpackUsage.html | 4 +- package.json | 10 +- tsconfig.json | 2 +- vite.config.cts | 43 --- vite.config.ts | 14 + yarn.lock | 404 ++++++++++++----------------- 12 files changed, 332 insertions(+), 319 deletions(-) create mode 100644 .vite/build.ts create mode 100644 .vite/jisonPlugin.js create mode 100644 .vite/jisonTransformer.js delete mode 100644 .vite/server.mjs create mode 100644 .vite/server.ts delete mode 100644 vite.config.cts create mode 100644 vite.config.ts diff --git a/.vite/build.ts b/.vite/build.ts new file mode 100644 index 0000000000..327be2dcba --- /dev/null +++ b/.vite/build.ts @@ -0,0 +1,81 @@ +import { build, InlineConfig } from 'vite'; +import { resolve } from 'path'; +import { fileURLToPath } from 'url'; +import jisonPlugin from './jisonPlugin.js'; +import pkg from '../package.json' assert { type: 'json' }; +import { OutputOptions } from 'vite/node_modules/rollup'; +const { dependencies } = pkg; +const watch = process.argv.includes('--watch'); +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +interface BuildOptions { + minify: boolean | 'esbuild'; + core?: boolean; + watch?: boolean; +} + +export const getBuildConfig = ({ minify, core, watch }: BuildOptions): InlineConfig => { + const external = ['require', 'fs', 'path']; + let output: OutputOptions | OutputOptions[] = [ + { + name: 'mermaid', + format: 'esm', + sourcemap: true, + entryFileNames: `[name].esm${minify ? '.min' : ''}.mjs`, + }, + { + name: 'mermaid', + format: 'umd', + sourcemap: true, + entryFileNames: `[name]${minify ? '.min' : ''}.js`, + }, + ]; + + if (core) { + external.push(...Object.keys(dependencies)); + output = { + name: 'mermaid', + format: 'esm', + sourcemap: true, + entryFileNames: `[name].core.mjs`, + }; + } + + const config: InlineConfig = { + configFile: false, + build: { + emptyOutDir: false, + lib: { + entry: resolve(__dirname, '../src/mermaid.ts'), + name: 'mermaid', + // the proper extensions will be added + fileName: 'mermaid', + }, + minify, + rollupOptions: { + external, + output, + }, + }, + resolve: { + extensions: ['.jison', '.js', '.ts', '.json'], + }, + plugins: [jisonPlugin()], + }; + + if (watch && config.build) { + config.build.watch = { + include: 'src/**', + }; + } + + return config; +}; + +if (watch) { + build(getBuildConfig({ minify: false, watch })); +} else { + build(getBuildConfig({ minify: false })); + build(getBuildConfig({ minify: 'esbuild' })); + build(getBuildConfig({ minify: true, core: true })); +} diff --git a/.vite/jisonPlugin.js b/.vite/jisonPlugin.js new file mode 100644 index 0000000000..febc9885bf --- /dev/null +++ b/.vite/jisonPlugin.js @@ -0,0 +1,17 @@ +import { transformJison } from './jisonTransformer.js'; +const fileRegex = /\.(jison)$/; + +export default function jison() { + return { + name: 'jison', + + transform(src, id) { + if (fileRegex.test(id)) { + return { + code: transformJison(src), + map: null, // provide source map if available + }; + } + }, + }; +} diff --git a/.vite/jisonTransformer.js b/.vite/jisonTransformer.js new file mode 100644 index 0000000000..f54bed0c30 --- /dev/null +++ b/.vite/jisonTransformer.js @@ -0,0 +1,15 @@ +import jison from 'jison'; + +export const transformJison = (src) => { + const parser = new jison.Generator(src, { + moduleType: 'js', + 'token-stack': true, + }); + const source = parser.generate({ moduleMain: '() => {}' }); + const exporter = ` + parser.parser = parser; + export { parser }; + export default parser; + `; + return `${source} ${exporter}`; +}; diff --git a/.vite/server.mjs b/.vite/server.mjs deleted file mode 100644 index e8f5294206..0000000000 --- a/.vite/server.mjs +++ /dev/null @@ -1,33 +0,0 @@ -import express from 'express'; -import { createServer as createViteServer } from 'vite'; - -async function createServer() { - const app = express(); - - // Create Vite server in middleware mode - // const vite = await createViteServer({ - // configFile: './vite.config.cts', - // server: { middlewareMode: true }, - // appType: 'custom', // don't include Vite's default HTML handling middlewares - // }); - - app.use(express.static('dist')); - app.use(express.static('demos')); - app.use(express.static('cypress/platform')); - // Use vite's connect instance as middleware - // app.use(vite.middlewares); - - app.use('*', async (req, res) => { - // Since `appType` is `'custom'`, should serve response here. - // Note: if `appType` is `'spa'` or `'mpa'`, Vite includes middlewares to handle - // HTML requests and 404s so user middlewares should be added - // before Vite's middlewares to take effect instead - res.end('Hello world!'); - }); - - app.listen(9000, () => { - console.log(`Listening on http://localhost:9000`); - }); -} - -createServer(); diff --git a/.vite/server.ts b/.vite/server.ts new file mode 100644 index 0000000000..685a94ce65 --- /dev/null +++ b/.vite/server.ts @@ -0,0 +1,26 @@ +import express from 'express'; +import { build, createServer as createViteServer } from 'vite'; +// import { getBuildConfig } from './build'; + +async function createServer() { + const app = express(); + + // Create Vite server in middleware mode + const vite = await createViteServer({ + configFile: './vite.config.ts', + server: { middlewareMode: true }, + appType: 'custom', // don't include Vite's default HTML handling middlewares + }); + + app.use(express.static('dist')); + app.use(express.static('demos')); + app.use(express.static('cypress/platform')); + app.use(vite.middlewares); + + app.listen(9000, () => { + console.log(`Listening on http://localhost:9000`); + }); +} + +// build(getBuildConfig({ minify: false, watch: true })); +createServer(); diff --git a/cypress/platform/bundle-test.js b/cypress/platform/bundle-test.js index 373f8741a0..074dd8c635 100644 --- a/cypress/platform/bundle-test.js +++ b/cypress/platform/bundle-test.js @@ -1,4 +1,4 @@ -import mermaid from '../../dist/mermaid.core'; +import mermaid from '../../src/mermaid'; let code = `flowchart LR Power_Supply --> Transmitter_A diff --git a/cypress/platform/webpackUsage.html b/cypress/platform/webpackUsage.html index ec6edb4ea5..23df19f49e 100644 --- a/cypress/platform/webpackUsage.html +++ b/cypress/platform/webpackUsage.html @@ -12,6 +12,8 @@

    - + diff --git a/package.json b/package.json index 5bd26a00be..7e4f350c20 100644 --- a/package.json +++ b/package.json @@ -25,13 +25,12 @@ ], "scripts": { "clean": "rimraf dist", - "build:vite": "vite build", - "build:code": "node .esbuild/esbuild.cjs", + "build:vite": "ts-node-esm .vite/build.ts", + "build:esbuild": "node .esbuild/esbuild.cjs", "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", "build:watch": "yarn build:code --watch", - "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:esbuild", - "dev": "node .esbuild/serve.cjs", + "build": "yarn clean; concurrently \"yarn build:vite\" \"yarn build:types\"", + "dev": "concurrently \"yarn build:vite --watch\" \"ts-node-esm .vite/server\"", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "ts-node-esm src/docs.mts --verify", "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md && yarn docs:build", @@ -124,7 +123,6 @@ "prettier-plugin-jsdoc": "^0.4.2", "remark": "^14.0.2", "rimraf": "^3.0.2", - "rollup-pluginutils": "^2.8.2", "start-server-and-test": "^1.12.6", "ts-node": "^10.9.1", "typescript": "^4.8.3", diff --git a/tsconfig.json b/tsconfig.json index 0ffa0002ee..86861ea73c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,7 +27,7 @@ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ /* Modules */ - "module": "ES6" /* Specify what module code is generated. */, + "module": "ESNext" /* Specify what module code is generated. */, "rootDir": "./src" /* Specify the root folder within your source files. */, "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, // "baseUrl": "./src" /* Specify the base directory to resolve non-relative module names. */, diff --git a/vite.config.cts b/vite.config.cts deleted file mode 100644 index 0af55482ec..0000000000 --- a/vite.config.cts +++ /dev/null @@ -1,43 +0,0 @@ -import jison from './.esbuild/jison'; -import { resolve } from 'path'; -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - build: { - lib: { - entry: resolve(__dirname, 'src/mermaid.ts'), - name: 'mermaid', - // the proper extensions will be added - fileName: 'mermaid', - }, - minify: 'esbuild', - rollupOptions: { - // make sure to externalize deps that shouldn't be bundled - // into your library - external: ['require', 'fs', 'path'], - output: [ - { - name: 'mermaid', - format: 'esm', - sourcemap: true, - entryFileNames: 'mermaid.esm.js', - }, - { - name: 'mermaid', - format: 'umd', - sourcemap: true, - entryFileNames: 'mermaid.js', - }, - ], - }, - }, - resolve: { - extensions: ['.jison', '.js', '.ts', '.json'], - }, - plugins: [jison()], - test: { - environment: 'jsdom', - globals: true, - setupFiles: ['src/tests/setup.ts'], - }, -}); diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000000..d0003f90db --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,14 @@ +import jison from './.vite/jisonPlugin'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + resolve: { + extensions: ['.jison', '.js', '.ts', '.json'], + }, + plugins: [jison()], + test: { + environment: 'jsdom', + globals: true, + setupFiles: ['src/tests/setup.ts'], + }, +}); diff --git a/yarn.lock b/yarn.lock index 9c78860101..c64c616851 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1840,53 +1840,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@microsoft/api-extractor-model@7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.24.1.tgz#afe8de95531cfb61bd7393570fd75c2dda880a36" - integrity sha512-H2KrRbO3beDnH2Fwt+3zXgK8KagFEzHHWNUR7weSEOssabGH5T/aADNR0k1FBidKpXokrvMM6SHamdMCVJjlBg== - dependencies: - "@microsoft/tsdoc" "0.14.1" - "@microsoft/tsdoc-config" "~0.16.1" - "@rushstack/node-core-library" "3.51.2" - -"@microsoft/api-extractor@^7.20.0": - version "7.31.1" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.31.1.tgz#defe791e4f1acc3a10202590fd39e7c487edb7e8" - integrity sha512-rWEE+S1to8B2X8E8fVttwmCNS7yfvTNzlFGdla/OT8bJeS94L7Lw1Wkynwsl59gb46yvMZrQDXiRkXWzxgvc8g== - dependencies: - "@microsoft/api-extractor-model" "7.24.1" - "@microsoft/tsdoc" "0.14.1" - "@microsoft/tsdoc-config" "~0.16.1" - "@rushstack/node-core-library" "3.51.2" - "@rushstack/rig-package" "0.3.15" - "@rushstack/ts-command-line" "4.12.3" - colors "~1.2.1" - lodash "~4.17.15" - resolve "~1.17.0" - semver "~7.3.0" - source-map "~0.6.1" - typescript "~4.7.4" - -"@microsoft/tsdoc-config@~0.16.1": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz#b786bb4ead00d54f53839a458ce626c8548d3adf" - integrity sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw== - dependencies: - "@microsoft/tsdoc" "0.14.2" - ajv "~6.12.6" - jju "~1.4.0" - resolve "~1.19.0" - -"@microsoft/tsdoc@0.14.1": - version "0.14.1" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.1.tgz#155ef21065427901994e765da8a0ba0eaae8b8bd" - integrity sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw== - -"@microsoft/tsdoc@0.14.2": - version "0.14.2" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz#c3ec604a0b54b9a9b87e9735dfc59e1a5da6a5fb" - integrity sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1913,37 +1866,79 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== -"@rushstack/node-core-library@3.51.2", "@rushstack/node-core-library@^3.45.1": - version "3.51.2" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.51.2.tgz#e74986c0ff519b4ce4dd8a642564387740067dc7" - integrity sha512-DwK2Lo62sHCsg8VsVe/WfugiL1lC5YzmhwzdWr8jLsfOCl8DzcIdLm4Plz0bOCQj/9ItJX1QGXr2jK5xw1Kzwg== - dependencies: - "@types/node" "12.20.24" - colors "~1.2.1" - fs-extra "~7.0.1" - import-lazy "~4.0.0" - jju "~1.4.0" - resolve "~1.17.0" - semver "~7.3.0" - z-schema "~5.0.2" - -"@rushstack/rig-package@0.3.15": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.15.tgz#8a870880cbeb8de82b951e628f6a37d428b4c5ce" - integrity sha512-jxVfvO5OnkRlYRhcVDZWvwiI2l4pv37HDJRtyg5HbD8Z/I8Xj32RICgrxS5xMeGGytobrg5S6OfPOHskg7Nw+A== +"@rollup/plugin-alias@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" + integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw== + dependencies: + slash "^3.0.0" + +"@rollup/plugin-commonjs@^22.0.2": + version "22.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" + integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== + 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" + +"@rollup/plugin-dynamic-import-vars@^1.4.4": + version "1.4.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-dynamic-import-vars/-/plugin-dynamic-import-vars-1.4.4.tgz#6c156f7437f4e3033d53c96ba970ab476cbf367f" + integrity sha512-51BcU6ag9EeF09CtEsa5D/IHYo7KI42TR1Jc4doNzV1nHAiH7TvUi5vsLERFMjs9Gzy9K0otbZH/2wb0hpBhRA== + dependencies: + "@rollup/pluginutils" "^4.1.2" + estree-walker "^2.0.1" + fast-glob "^3.2.7" + magic-string "^0.25.7" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-14.1.0.tgz#f2fa475405cd7fed6420bf438fe393f988a9bc96" + integrity sha512-5G2niJroNCz/1zqwXtk0t9+twOSDlG00k1Wfd7bkbbXmwg8H8dvgHdIWAun53Ps/rckfvOC7scDBjuGFg5OaWw== + 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" + +"@rollup/plugin-typescript@^8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz#7ea11599a15b0a30fa7ea69ce3b791d41b862515" + integrity sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ== dependencies: - resolve "~1.17.0" - strip-json-comments "~3.1.1" + "@rollup/pluginutils" "^3.1.0" + resolve "^1.17.0" -"@rushstack/ts-command-line@4.12.3": - version "4.12.3" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.12.3.tgz#3c5e4b381dcd780aab6efe42c7faa2018248cbb1" - integrity sha512-Pdij22RotMXzI+HWHyYCvw0RMZhiP5a6Za/96XamZ1+mxmpSm4ujf8TROKxGAHySmR5A8iNVSlzhNMnUlFQE6g== +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== dependencies: - "@types/argparse" "1.0.38" - argparse "~1.0.9" - colors "~1.2.1" - string-argv "~0.3.1" + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.1.2", "@rollup/pluginutils@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" "@sideway/address@^4.1.3": version "4.1.3" @@ -1984,16 +1979,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@ts-morph/common@~0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.13.0.tgz#77dea1565baaf002d1bc2c20e05d1fb3349008a9" - integrity sha512-fEJ6j7Cu8yiWjA4UmybOBH9Efgb/64ZTWuvCF4KysGu4xz8ettfyaqFt8WZ1btCxXsGZJjZ2/3svOF6rL+UFdQ== - dependencies: - fast-glob "^3.2.11" - minimatch "^5.0.1" - mkdirp "^1.0.4" - path-browserify "^1.0.1" - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -2014,11 +1999,6 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== -"@types/argparse@1.0.38": - version "1.0.38" - resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" - integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== - "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -2293,6 +2273,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/express-serve-static-core@^4.17.18": version "4.17.27" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" @@ -2390,11 +2375,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== -"@types/node@12.20.24": - version "12.20.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" - integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== - "@types/node@^14.0.0", "@types/node@^14.14.31": version "14.18.26" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.26.tgz#239e19f8b4ea1a9eb710528061c1d733dc561996" @@ -2430,6 +2410,13 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -2780,7 +2767,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@~6.12.6: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2898,7 +2885,7 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.7, argparse@~1.0.9: +argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -3160,13 +3147,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -3250,6 +3230,11 @@ buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" @@ -3389,7 +3374,7 @@ chalk@3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3584,11 +3569,6 @@ cloneable-readable@^1.0.0: process-nextick-args "^2.0.0" readable-stream "^2.3.5" -code-block-writer@^11.0.0: - version "11.0.3" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.3.tgz#9eec2993edfb79bfae845fbc093758c0a0b73b76" - integrity sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw== - collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: version "1.0.6" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" @@ -3641,11 +3621,6 @@ colors@1.4.0: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -colors@~1.2.1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" - integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== - combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3663,11 +3638,6 @@ commander@7: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -3688,6 +3658,11 @@ common-tags@^1.8.0: resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -4509,7 +4484,7 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.0.0: +deepmerge@^4.0.0, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== @@ -5383,6 +5358,16 @@ estree-walker@^0.6.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -5612,6 +5597,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.7: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + 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" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -5827,16 +5823,7 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^7.0.1, fs-extra@~7.0.1: +fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -6105,7 +6092,7 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.4: +glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6536,11 +6523,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@~4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -6651,6 +6633,13 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-builtin-module@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" + integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== + dependencies: + builtin-modules "^3.3.0" + is-ci@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" @@ -6658,13 +6647,6 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.1.0, is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - dependencies: - has "^1.0.3" - is-core-module@^2.2.0, is-core-module@^2.5.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" @@ -6672,6 +6654,13 @@ is-core-module@^2.2.0, is-core-module@^2.5.0: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -6763,6 +6752,11 @@ is-installed-globally@~0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + is-negated-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" @@ -6812,6 +6806,13 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" @@ -6989,11 +6990,6 @@ jison@^0.4.18: lex-parser "~0.1.3" nomnom "1.5.2" -jju@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" - integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== - joi@^17.4.0: version "17.5.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.5.0.tgz#7e66d0004b5045d971cf416a55fb61d33ac6e011" @@ -7404,16 +7400,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" @@ -7429,7 +7415,7 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.15: +lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7503,6 +7489,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -7993,13 +7986,6 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -8029,11 +8015,6 @@ mkdirp@^0.5.1: dependencies: minimist "^1.2.6" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -8684,7 +8665,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -9400,7 +9381,7 @@ resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.3.2, resolve@^1.8.1 is-core-module "^2.2.0" path-parse "^1.0.6" -resolve@^1.22.1: +resolve@^1.17.0, resolve@^1.19.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -9409,21 +9390,6 @@ resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resolve@~1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" - responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -9487,6 +9453,13 @@ rollup-pluginutils@^2.8.2: optionalDependencies: fsevents "~2.3.2" +rollup@^2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" + integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== + optionalDependencies: + fsevents "~2.3.2" + rollup@~2.78.0: version "2.78.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" @@ -9571,7 +9544,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.7, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@~7.3.0: +semver@7.3.7, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -9810,6 +9783,11 @@ source-map@~0.1.33: dependencies: amdefine ">=0.0.4" +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" @@ -10003,7 +9981,7 @@ strict-uri-encode@^2.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== -string-argv@^0.3.1, string-argv@~0.3.1: +string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== @@ -10123,7 +10101,7 @@ strip-json-comments@^2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -10420,14 +10398,6 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -ts-morph@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-14.0.0.tgz#6bffb7e4584cf6a9aebce2066bf4258e1d03f9fa" - integrity sha512-tO8YQ1dP41fw8GVmeQAdNsD8roZi1JMqB7YwZrqU856DvmG5/710e41q2XauzTYrygH9XmMryaFeLo+kdCziyA== - dependencies: - "@ts-morph/common" "~0.13.0" - code-block-writer "^11.0.0" - ts-node@^10.8.1, ts-node@^10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" @@ -10548,11 +10518,6 @@ typescript@^4.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== -typescript@~4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - uglify-js@^3.1.4: version "3.14.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz#68756f17d1b90b9d289341736cb9a567d6882f90" @@ -10854,11 +10819,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - value-or-function@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" @@ -11006,19 +10966,6 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vite-plugin-dts@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-1.5.0.tgz#38633b120c5d32f0f5185ba80b9fe4b68139ca70" - integrity sha512-O78YnwomiEu+vKMdj1gvJfi2PnSOdB/RKWSOaNDjzr5bGvB6G7AskSczy+74sLwj3hkh0qO0L0U1UuLSjAqtqA== - dependencies: - "@microsoft/api-extractor" "^7.20.0" - "@rushstack/node-core-library" "^3.45.1" - chalk "^4.1.2" - debug "^4.3.4" - fast-glob "^3.2.11" - fs-extra "^10.0.1" - ts-morph "^14.0.0" - "vite@^2.9.12 || ^3.0.0-0": version "3.1.0" resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" @@ -11435,17 +11382,6 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -z-schema@~5.0.2: - version "5.0.4" - resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.4.tgz#ecad8bc5ef3283ae032d603286386cfb1380cce5" - integrity sha512-gm/lx3hDzJNcLwseIeQVm1UcwhWIKpSB4NqH89pTBtFns4k/HDHudsICtvG05Bvw/Mv3jMyk700y5dadueLHdA== - dependencies: - lodash.get "^4.4.2" - lodash.isequal "^4.5.0" - validator "^13.7.0" - optionalDependencies: - commander "^2.20.3" - zwitch@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" From 1c4eeb2d53a863cb136023fa8d633b3e811b86bb Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 22 Sep 2022 15:45:44 +0530 Subject: [PATCH 0091/1038] Fix unit test coverage --- vite.config.cts | 38 -------------------------------------- vite.config.ts | 3 +++ 2 files changed, 3 insertions(+), 38 deletions(-) delete mode 100644 vite.config.cts diff --git a/vite.config.cts b/vite.config.cts deleted file mode 100644 index 9698854bb8..0000000000 --- a/vite.config.cts +++ /dev/null @@ -1,38 +0,0 @@ -import { Generator } from 'jison'; -import { defineConfig } from 'vitest/config'; - -const fileRegex = /\.jison$/; - -/** Transforms jison to js. */ -export function jisonPlugin() { - return { - name: 'transform-jison', - - transform(src: string, id: string) { - if (fileRegex.test(id)) { - // eslint-disable-next-line no-console - console.log('Transforming', id); - return { - // @ts-ignore no typings for jison - code: new Generator(src, { 'token-stack': true }).generate(), - map: null, // provide source map if available - }; - } - }, - }; -} - -export default defineConfig({ - resolve: { - extensions: ['.jison', '.js', '.ts', '.json'], - }, - plugins: [jisonPlugin()], - test: { - environment: 'jsdom', - globals: true, - setupFiles: ['src/tests/setup.ts'], - coverage: { - reporter: ['text', 'json', 'html', 'lcov'], - }, - }, -}); diff --git a/vite.config.ts b/vite.config.ts index d0003f90db..e2b0e15c05 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,5 +10,8 @@ export default defineConfig({ environment: 'jsdom', globals: true, setupFiles: ['src/tests/setup.ts'], + coverage: { + reporter: ['text', 'json', 'html', 'lcov'], + }, }, }); From 0dce8f41049e053779dfa77d8936f647c5178042 Mon Sep 17 00:00:00 2001 From: Patrick Ellis Date: Thu, 22 Sep 2022 12:06:30 -0400 Subject: [PATCH 0092/1038] Add "Debug Current Test File" configuration for VSCode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Just press F5 (or ⌘+⇧+P -> `Debug Current Test File`) " --- .gitignore | 5 ++++- .vscode/launch.json | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json diff --git a/.gitignore b/.gitignore index 9641d25748..812c684056 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,10 @@ token package-lock.json -.vscode/ +# ignore files in /.vscode/ except for /.vscode/launch.json +/.vscode/** +!/.vscode/launch.json + cypress/platform/current.html cypress/platform/experimental.html local/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..92df7056e1 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Debug Current Test File", + "autoAttachChildProcesses": true, + "skipFiles": ["/**", "**/node_modules/**"], + "program": "${workspaceRoot}/node_modules/vitest/vitest.mjs", + "args": ["run", "${relativeFile}"], + "smartStep": true, + "console": "integratedTerminal" + } + ] +} From 6309300eb6ad82edaac0313878b99001935aa11b Mon Sep 17 00:00:00 2001 From: Lishid Date: Thu, 22 Sep 2022 12:48:23 -0400 Subject: [PATCH 0093/1038] Fix user-journey leaking css This fixes a CSS syntax error that causes the CSS parser to soft-fail, which leads to the later CSS (custom styles) to not properly append the `#id` to them. --- src/diagrams/user-journey/styles.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/diagrams/user-journey/styles.js b/src/diagrams/user-journey/styles.js index b29e18bf3a..998a73894d 100644 --- a/src/diagrams/user-journey/styles.js +++ b/src/diagrams/user-journey/styles.js @@ -132,8 +132,6 @@ const getStyles = (options) => .actor-5 { ${options.actor5 ? `fill: ${options.actor5}` : ''}; } - - } `; export default getStyles; From 9cb7054ff978e6c88027214b6b3c0fc6cc47748f Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Thu, 22 Sep 2022 11:48:11 -0700 Subject: [PATCH 0094/1038] add attributes to demo ER diagram so attribute styles can be evaluated --- demos/er.html | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/demos/er.html b/demos/er.html index 1e5d4062d1..8bd2768f48 100644 --- a/demos/er.html +++ b/demos/er.html @@ -15,18 +15,49 @@
    -erDiagram
    -title This is a title
    -accDescription Test a description
    -CUSTOMER ||--o{ ORDER : places
    -ORDER ||--|{ LINE-ITEM : contains
    -CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
    +      erDiagram
    +
    +      CUSTOMER ||--o{ ORDER : places
    +      ORDER ||--|{ LINE-ITEM : contains
    +      ORDER }|..|{ DELIVERY-ADDRESS : uses
    +      DELIVERY-ADDRESS }|--|| CUSTOMER : has
    +
    +      CUSTOMER ||--o{ ORDER : places
    +      CUSTOMER {
    +          string name
    +          string region
    +          string custNumber
    +          string sector
    +      }
    +      ORDER ||--|{ LINE-ITEM : contains
    +      ORDER {
    +          int orderNumber
    +          string deliveryAddress
    +      }
    +      LINE-ITEM {
    +          string productCode
    +          int quantity
    +          float pricePerUnit
    +      }
    +
    +      DELIVERY-ADDRESS {
    +      int customerId
    +      string addressLine1
    +      string addressLine2
    +      string city
    +      string county
    +      string state
    +      string region
    +      string country
    +      string postalCode
    +      }
    +
         
    + + diff --git a/vdocs/vite.config.ts b/vdocs/vite.config.ts index 2214d29a08..dd7ef907a7 100644 --- a/vdocs/vite.config.ts +++ b/vdocs/vite.config.ts @@ -1,11 +1,35 @@ +import { node } from 'stylis'; import { defineConfig } from 'vite'; -import { SearchPlugin } from 'vitepress-plugin-search'; +import path from 'path'; +// import { SearchPlugin } from 'vitepress-plugin-search'; + +const virtualModuleId = 'virtual:mermaid-config'; +const resolvedVirtualModuleId = '\0' + virtualModuleId; export default defineConfig({ - plugins: [SearchPlugin()], + plugins: [ + // SearchPlugin(), + { + name: 'fix-virtual', + + async resolveId(id) { + if (id === virtualModuleId) { + return resolvedVirtualModuleId; + } + }, + async load(this, id) { + if (id === resolvedVirtualModuleId) { + return `export default ${JSON.stringify({ + securityLevel: 'loose', + startOnLoad: false, + })};`; + } + }, + }, + ], resolve: { alias: { - mermaid: 'https://unpkg.com/mermaid@9.1.7/dist/mermaid.esm.min.mjs', + mermaid: path.join(__dirname, '../dist/mermaid.esm.min.mjs'), // Use this one to build }, }, }); diff --git a/yarn.lock b/yarn.lock index b2260c946a..20d1671d52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,1330 +348,31 @@ postcss-value-parser "4.1.0" throat "5.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== - -"@babel/compat-data@^7.19.0", "@babel/compat-data@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" - integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== - -"@babel/core@7.12.3": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" - integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - 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" - -"@babel/generator@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" - integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== - dependencies: - "@babel/types" "^7.12.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.12.1", "@babel/generator@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" - integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== - dependencies: - "@babel/types" "^7.18.13" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/generator@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" - integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== - dependencies: - "@babel/types" "^7.19.0" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== - dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" - integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== - dependencies: - "@babel/compat-data" "^7.19.1" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.16.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-create-regexp-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-define-polyfill-provider@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" - integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== - -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== - dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-module-imports@^7.16.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== - 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" - -"@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== - 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.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== - -"@babel/helper-plugin-utils@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" - integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== - -"@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== - dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-option@^7.14.5", "@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.16.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== - dependencies: - "@babel/helper-function-name" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-wrap-function@^7.18.9": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396" - integrity sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ== - dependencies: - "@babel/helper-function-name" "^7.18.9" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/helpers@^7.12.1": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== - dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@7.12.3": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd" - integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw== - -"@babel/parser@^7.10.5", "@babel/parser@^7.12.3", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" - integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== - -"@babel/parser@^7.16.4", "@babel/parser@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" - integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - -"@babel/plugin-proposal-async-generator-functions@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" - integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-decorators@^7.12.1": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.4.tgz#9b35ce0716425a93b978e79099e5f7ba217c1364" - integrity sha512-RESBNX16eNqnBeEVR5sCJpnW0mHiNLNNvGA8PrRuK/4ZJ4TO+6bHleRUuGQYDERVySOKtOhSya/C4MIhwAMAgg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-decorators" "^7.16.0" - -"@babel/plugin-proposal-do-expressions@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.16.0.tgz#045794135cde56d4240288ea074b656b72ccf96e" - integrity sha512-JxhlW/ZFop2fm7pRpYijNr4FI2Id6+p3u2NT1Lh3eur3zDStdyx4EYr1FJpzpeqBh76dbuXL0gc9k1rEO8VSUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-do-expressions" "^7.16.0" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-default-from@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.0.tgz#f8a07008ffcb0d3de4945f3eb52022ecc28b56ad" - integrity sha512-kFAhaIbh5qbBwETRNa/cgGmPJ/BicXhIyrZhAkyYhf/Z9LXCTRGO1mvUwczto0Hl1q4YtzP9cRtTKT4wujm38Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-export-default-from" "^7.16.0" - -"@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-function-bind@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.16.0.tgz#35225c9f2ff2d52da9625982e750b0647e90234c" - integrity sha512-oTf/NztwTma6O4e16Iy6+DOqodQydc1/MLmENMTduigCYxvUvLblCRP5Tu3PkAGPKq5/F3lB44GWLc+egJi3VA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-function-bind" "^7.16.0" - -"@babel/plugin-proposal-function-sent@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.16.0.tgz#6a873e125e4081e48d9b37518e8e2c63c9a8cddb" - integrity sha512-CkUaPsTiRB72BlsB1Istdb6LSJDi4SU4gH+hW9EKo2/o6naq0HEkuY2OV5anl5Tsnwtdn3FmpteguRc9kXd3Ig== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-wrap-function" "^7.16.0" - "@babel/plugin-syntax-function-sent" "^7.16.0" - -"@babel/plugin-proposal-json-strings@^7.12.1", "@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.12.1", "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" - integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== - dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.8" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-pipeline-operator@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.16.0.tgz#9765a4fa46afc1b9b78cdeaa9d4d9a8863ae0fd5" - integrity sha512-y9WbLfaPDDkShmU89N1spx54ELht7rXE2jWDzCgc23OmTwliEK9NSoR8KZdtjr1mR3QfG7D6mcDHmI4M0bhMQA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-pipeline-operator" "^7.16.0" - -"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-throw-expressions@^7.12.1": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.16.0.tgz#f9450e11d90159eff29a36e5bcacc9b49eefc4d7" - integrity sha512-8u4KrMqdzRLkfHMN6WOK4taEwV6Dv69O/TuJ2TCGapRXtbjRKDW2UyTxEzlZpA1Eu+MxquSW9+y8qy89TIJfOA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-throw-expressions" "^7.16.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.0.tgz#eb8d811cdd1060f6ac3c00956bf3f6335505a32f" - integrity sha512-nxnnngZClvlY13nHJAIDow0S7Qzhq64fQ/NlqS+VER3kjW/4F0jLhXjeL8jcwSwz6Ca3rotT5NJD2T9I7lcv7g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-do-expressions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.16.0.tgz#94f323eb2dd88aa9623a4a4329aa044f51661999" - integrity sha512-WA0MZP59fbZehGlOVMoYdPs0yC2pOGQwHPIIIYtaXZ67f6J1X0ntmfkWkMa8lppBq0iSI7uBCTICF84gnKEfPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-default-from@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.0.tgz#648520667776781f9a0da178f245fff85bc9e36f" - integrity sha512-xllLOdBj77mFSw8s02I+2SSQGHOftbWTlGmagheuNk/gjQsk7IrYsR/EosXVAVpgIUFffLckB/iPRioQYLHSrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.0.tgz#07427021d093ed77019408221beaf0272bbcfaec" - integrity sha512-dH91yCo0RyqfzWgoM5Ji9ir8fQ+uFbt9KHM3d2x4jZOuHS6wNA+CRmRUP/BWCsHG2bjc7A2Way6AvH1eQk0wig== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-function-bind@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.16.0.tgz#b268e330febdb851f5b57c31751607f758dda4ac" - integrity sha512-L+B4rMnFg2ElQUTjSr3gfmIAJ3ej/BeKGW32AL01qpLhkI4Vw1C+W8p6wl8S6eYqWSj9X9d/lyuQWI5JFYjCWw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-function-sent@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.16.0.tgz#c6e0eb280a101cd7bdaf6d3f750eb27b59978c48" - integrity sha512-CrwPwHy+ks1xokbZ5x2ZbRwZ5qptN0PE/N5M+o8eQ2LHXGFxlSuDVx515crT7DxUnT+uKctKDuk0NAwG7c1Ebw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1" - integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-pipeline-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.16.0.tgz#2a36d18bc00c3887ac8efb02b65de5a2c1e8ea86" - integrity sha512-wUWeLyChgsQ2cVp3vDtDqnwmDHdTiRyxuEeGRGwmPxp7YcNyQw+axni5R+WO/TF565j36Pp8zRU1qnY5etf4BQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-throw-expressions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.16.0.tgz#9d5fc5c185617bc5f727fbecc360601a52cf6879" - integrity sha512-tr5wm8EYRpFW47uVJ2B660pJQXgmeCShz82tE6LkIVkcLzXMz5xhj0drYyehuAl1utNGFqPnMmjpzs5zavAbNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" - integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-classes@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" - integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.19.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-replace-supers" "^7.18.9" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-destructuring@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" - integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.0.tgz#edd968dc2041c1b69e451a262e948d6654a79dc2" - integrity sha512-vs/F5roOaO/+WxKfp9PkvLsAyj0G+Q0zbFimHm9X2KDgabN2XmNFoAafmeGEYspUlIF9+MvVmyek9UyHiqeG/w== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-flow" "^7.16.0" - -"@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.18.6": +"@babel/helper-validator-identifier@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== -"@babel/plugin-transform-modules-amd@^7.18.6": +"@babel/highlight@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" - integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.0": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-display-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz#9a0ad8aa8e8790883a7bd2736f66229a58125676" - integrity sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-react-jsx-development@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz#1cb52874678d23ab11d0d16488d54730807303ef" - integrity sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.0" - -"@babel/plugin-transform-react-jsx@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz#55b797d4960c3de04e07ad1c0476e2bc6a4889f1" - integrity sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-jsx" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/plugin-transform-react-pure-annotations@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz#23db6ddf558d8abde41b8ad9d59f48ad5532ccab" - integrity sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" - integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@^7.12.1": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.0.tgz#fd18caf499a67d6411b9ded68dc70d01ed1e5da7" - integrity sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ== - dependencies: - "@babel/compat-data" "^7.19.0" - "@babel/helper-compilation-targets" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.19.0" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.9" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.9" - "@babel/plugin-transform-classes" "^7.19.0" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.18.13" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.18.6" - "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.0" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.0" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.8" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.2" - babel-plugin-polyfill-corejs3 "^0.5.3" - babel-plugin-polyfill-regenerator "^0.4.0" - core-js-compat "^3.22.1" - semver "^6.3.0" - -"@babel/preset-flow@^7.9.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.0.tgz#9f1f6e72714d79460d48058cb5658fc87da7150b" - integrity sha512-e5NE1EoPMpoHFkyFkMSj2h9tu7OolARcUHki8mnBv4NiFK9so+UrhbvT9mV99tMJOUEx8BOj67T6dXvGcTeYeQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-flow-strip-types" "^7.16.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.9.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.0.tgz#f71d3e8dff5218478011df037fad52660ee6d82a" - integrity sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-react-display-name" "^7.16.0" - "@babel/plugin-transform-react-jsx" "^7.16.0" - "@babel/plugin-transform-react-jsx-development" "^7.16.0" - "@babel/plugin-transform-react-pure-annotations" "^7.16.0" - -"@babel/preset-stage-0@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz#b6a0eca1a3b72e07f9caf58f998e97568028f6f5" - integrity sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ== - -"@babel/runtime@^7.8.4": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" - integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.13" - "@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.13" - "@babel/types" "^7.18.13" - debug "^4.1.0" - globals "^11.1.0" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/traverse@^7.19.0": +"@babel/parser@^7.16.4": version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" - integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.0" - "@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.19.1" - "@babel/types" "^7.19.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.12.1", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" - integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" - -"@babel/types@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" - integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" + integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== "@bcoe/v8-coverage@^0.2.3": version "0.2.3" @@ -1972,35 +673,16 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@hutson/parse-repository-url@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" - integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== - "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" @@ -2014,7 +696,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -2881,7 +1563,7 @@ JSONSelect@0.4.0: resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= -JSONStream@^1.0.3, JSONStream@^1.0.4: +JSONStream@^1.0.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -2927,16 +1609,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0, acorn-walk@^7.1.1: +acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== @@ -2946,7 +1619,7 @@ acorn-walk@^8.1.1, acorn-walk@^8.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.0.0, acorn@^7.1.1: +acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -2961,11 +1634,6 @@ acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= - agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -3047,11 +1715,6 @@ ansi-escapes@^4.1.0, ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -3096,14 +1759,6 @@ ansi-styles@~1.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - app-path@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/app-path/-/app-path-3.3.0.tgz#0342a909db37079c593979c720f99e872475eba3" @@ -3111,13 +1766,6 @@ app-path@^3.2.0: dependencies: execa "^1.0.0" -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= - dependencies: - buffer-equal "^1.0.0" - arch@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" @@ -3140,21 +1788,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -3170,11 +1803,6 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -3197,11 +1825,6 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - ast-types@^0.13.2: version "0.13.4" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" @@ -3229,11 +1852,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -3258,47 +1876,6 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" - integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.2" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" - integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" - integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - -babelify@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" - integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -3314,19 +1891,6 @@ base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - 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" - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -3334,11 +1898,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - binary-searching@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/binary-searching/-/binary-searching-2.0.5.tgz#ab6d08d51cd1b58878ae208ab61988f885b22dd3" @@ -3377,16 +1936,6 @@ body-scroll-lock@^4.0.0-beta.0: resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz#4f78789d10e6388115c0460cd6d7d4dd2bbc4f7e" integrity sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ== -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3395,23 +1944,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - 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" - -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -3423,53 +1956,11 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserslist@^4.20.2, browserslist@^4.21.0: - version "4.21.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== - dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" - update-browserslist-db "^1.0.4" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== - dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= - buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -3478,11 +1969,6 @@ buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -3506,21 +1992,6 @@ c8@^7.12.0: yargs "^16.2.0" yargs-parser "^20.2.9" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - 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" - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -3539,11 +2010,6 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -cached-path-relative@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" - integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== - cachedir@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -3571,31 +2037,16 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001359: - version "1.0.30001406" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz" - integrity sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg== - -caniuse-lite@^1.0.30001400: - version "1.0.30001408" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001408.tgz#8f5e96bd9c5fd1a8c629e4415cdbaf556333a591" - integrity sha512-DdUCktgMSM+1ndk9EFMZcavsGszV7zxV9O7MtOHniTa/iyAIwJCF0dFVBdU9SijJbfh29hC9bCs07wu8pjnGJQ== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - chai@^4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" @@ -3636,7 +2087,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3654,11 +2105,6 @@ chalk@~0.4.0: has-color "~0.1.0" strip-ansi "~0.1.0" -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== - character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -3689,21 +2135,6 @@ check-more-types@2.24.0, check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= -chokidar@^3.4.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - 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" - optionalDependencies: - fsevents "~2.3.2" - ci-info@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" @@ -3716,16 +2147,6 @@ cjson@0.3.0: dependencies: jsonlint "1.6.0" -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -3763,15 +2184,6 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -3781,11 +2193,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -3793,38 +2200,6 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -3871,11 +2246,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -comma-separated-tokens@^1.0.1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - commander@7: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -3909,11 +2279,6 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - compress-brotli@^1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" @@ -3927,35 +2292,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -concat-stream@~1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - integrity sha1-cIl4Yk2FavQaWnQd790mHadSwmY= - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - concurrently@^7.4.0: version "7.4.0" resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.4.0.tgz#bb0e344964bc172673577c420db21e963f2f7368" @@ -3983,12 +2319,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - -conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: +conventional-changelog-angular@^5.0.11: version "5.0.13" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== @@ -3996,145 +2327,16 @@ conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: compare-func "^2.0.0" q "^1.5.1" -conventional-changelog-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" - integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" - integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== - dependencies: - q "^1.5.1" - -conventional-changelog-config-spec@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz#874a635287ef8b581fd8558532bf655d4fb59f2d" - integrity sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ== - -conventional-changelog-conventionalcommits@4.6.1, conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz#f4c0921937050674e578dc7875f908351ccf4014" - integrity sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - conventional-changelog-conventionalcommits@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" - integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-core@^4.2.1: - version "4.2.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" - integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== - dependencies: - add-stream "^1.0.0" - conventional-changelog-writer "^5.0.0" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^4.0.0" - git-raw-commits "^2.0.8" - git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - through2 "^4.0.0" - -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" - integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" - integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" - integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" - integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" - integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" - integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== - -conventional-changelog-writer@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz#c4042f3f1542f2f41d7d2e0d6cad23aba8df8eec" - integrity sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g== - dependencies: - conventional-commits-filter "^2.0.7" - dateformat "^3.0.0" - handlebars "^4.7.6" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^8.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^4.0.0" - -conventional-changelog@3.1.24: - version "3.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.24.tgz#ebd180b0fd1b2e1f0095c4b04fd088698348a464" - integrity sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg== - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" - integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" + integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" -conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: +conventional-commits-parser@^3.2.2: version "3.2.3" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz#fc43704698239451e3ef35fd1d8ed644f46bd86e" integrity sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw== @@ -4146,21 +2348,7 @@ conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: split2 "^3.0.0" through2 "^4.0.0" -conventional-recommended-bump@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" - integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" - -convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.6.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -4177,19 +2365,6 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.3.tgz#7d8503185be76bb6d8d592c291a4457a8e440aa9" - integrity sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw== - dependencies: - browserslist "^4.21.0" - semver "7.0.0" - core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -4635,22 +2810,12 @@ date-fns@^2.29.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - dayjs@^1.10.4: version "1.10.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -4686,7 +2851,7 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.2.0: +decamelize@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -4703,11 +2868,6 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -4737,40 +2897,6 @@ defer-to-connect@^2.0.0: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - degenerator@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.2.tgz#6a61fcc42a702d6e50ff6023fe17bff435f68235" @@ -4813,32 +2939,6 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detab@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-newline@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detective@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4856,13 +2956,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -doctrine-temporary-fork@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz#36f2154f556ee4f1e60311d391cd23de5187ed57" - integrity sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA== - dependencies: - esutils "^2.0.2" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -4870,78 +2963,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -documentation@13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/documentation/-/documentation-13.2.0.tgz#7ceef4a2b795e3b6095e6cadbce89d3568097406" - integrity sha512-c7lIXNZ9t3481c+OGpj4lWPhtdmQilg4E04wc6TXH1gYg2wWu+/f3c60Otg2HDRVnCQoXrozSWuUYNl7y7FJxw== - dependencies: - "@babel/core" "7.12.3" - "@babel/generator" "7.12.1" - "@babel/parser" "7.12.3" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.1" - "@babel/plugin-proposal-do-expressions" "^7.12.1" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-export-namespace-from" "^7.12.1" - "@babel/plugin-proposal-function-bind" "^7.12.1" - "@babel/plugin-proposal-function-sent" "^7.12.1" - "@babel/plugin-proposal-json-strings" "^7.12.1" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" - "@babel/plugin-proposal-pipeline-operator" "^7.12.1" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-proposal-throw-expressions" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/preset-env" "^7.12.1" - "@babel/preset-flow" "^7.9.0" - "@babel/preset-react" "^7.9.4" - "@babel/preset-stage-0" "^7.8.3" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - ansi-html "^0.0.7" - babelify "^10.0.0" - chalk "^2.3.0" - chokidar "^3.4.0" - concat-stream "^1.6.0" - diff "^4.0.1" - doctrine-temporary-fork "2.1.0" - get-port "^5.0.0" - git-url-parse "^11.1.2" - github-slugger "1.2.0" - glob "^7.1.2" - globals-docs "^2.4.0" - highlight.js "^10.5.0" - ini "^1.3.5" - js-yaml "^3.10.0" - lodash "^4.17.10" - mdast-util-inject "^1.1.0" - micromatch "^3.1.5" - mime "^2.2.0" - module-deps-sortable "^5.0.3" - parse-filepath "^1.0.2" - pify "^5.0.0" - read-pkg-up "^4.0.0" - remark "^9.0.0" - remark-html "^8.0.0" - remark-reference-links "^4.0.1" - remark-toc "^5.0.0" - resolve "^1.8.1" - stream-array "^1.1.2" - strip-json-comments "^2.0.1" - tiny-lr "^1.1.0" - unist-builder "^1.0.2" - unist-util-visit "^1.3.0" - vfile "^4.0.0" - vfile-reporter "^6.0.0" - vfile-sort "^2.1.0" - vinyl "^2.1.0" - vinyl-fs "^3.0.2" - vue-template-compiler "^2.5.16" - yargs "^15.3.1" - dom-serializer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" @@ -4991,36 +3012,11 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -dotgitignore@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" - integrity sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA== - dependencies: - find-up "^3.0.0" - minimatch "^3.0.4" - -duplexer2@^0.1.2, duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - duplexer@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - ebnf-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" @@ -5039,21 +3035,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.4.172: - version "1.4.177" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.177.tgz#b6a4436eb788ca732556cd69f384b8a3c82118c5" - integrity sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg== - -electron-to-chromium@^1.4.251: - version "1.4.256" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.256.tgz#c735032f412505e8e0482f147a8ff10cfca45bf4" - integrity sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw== - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -5069,7 +3050,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -5100,13 +3081,6 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - esbuild-android-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz#625863e705d4ed32a3b4c0b997dbf9454d50a455" @@ -5585,19 +3559,6 @@ executable@^4.1.1: dependencies: pify "^2.2.0" -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - 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" - express@^4.18.1: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" @@ -5635,40 +3596,11 @@ express@^4.18.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - 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" - extract-zip@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -5728,13 +3660,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -5742,7 +3667,7 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -figures@^3.1.0, figures@^3.2.0: +figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -5761,16 +3686,6 @@ file-uri-to-path@2: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -5778,11 +3693,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -5796,13 +3706,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -5839,24 +3742,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== -flush-write-stream@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - follow-redirects@^1.14.0, follow-redirects@^1.14.8: version "1.15.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - foreground-child@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" @@ -5893,13 +3783,6 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -5910,13 +3793,6 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= -fs-access@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -5954,14 +3830,6 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -5990,12 +3858,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gensync@^1.0.0-beta.1: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -6014,21 +3877,6 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.3" -get-pkg-repo@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" - integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== - dependencies: - "@hutson/parse-repository-url" "^3.0.0" - hosted-git-info "^4.0.0" - through2 "^2.0.0" - yargs "^16.2.0" - -get-port@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - get-stdin@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" @@ -6065,11 +3913,6 @@ get-uri@3: fs-extra "^8.1.0" ftp "^0.3.10" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - getos@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" @@ -6084,7 +3927,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: +git-raw-commits@^2.0.0: version "2.0.10" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== @@ -6095,65 +3938,7 @@ git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: split2 "^3.0.0" through2 "^4.0.0" -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^4.0.0, git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" - integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== - dependencies: - meow "^8.0.0" - semver "^6.0.0" - -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== - dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" - -git-url-parse@^11.1.2: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== - dependencies: - git-up "^4.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= - dependencies: - ini "^1.3.2" - -github-slugger@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.0.tgz#8ada3286fd046d8951c3c952a8d7854cfd90fd9a" - integrity sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q== - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -github-slugger@^1.0.0, github-slugger@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" - integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -6167,23 +3952,7 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: +glob@^7.1.2, glob@^7.1.3: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -6221,12 +3990,7 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -globals-docs@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.1.tgz#d16887709f4a15eb22d97e96343591f87a2ee3db" - integrity sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg== - -globals@^11.1.0, globals@^11.12.0: +globals@^11.12.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== @@ -6283,7 +4047,7 @@ got@^11.0.2, got@^11.8.1: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -6300,18 +4064,6 @@ graphlib@^2.1.8: dependencies: lodash "^4.17.15" -handlebars@^4.7.6: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -6357,47 +4109,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -6405,55 +4121,12 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hast-util-is-element@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425" - integrity sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ== - -hast-util-sanitize@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-1.3.1.tgz#4e60d66336bd67e52354d581967467029a933f2e" - integrity sha512-AIeKHuHx0Wk45nSkGVa2/ujQYTksnDl8gmmKo/mwQi7ag7IBZ8cM3nJ2G86SajbjGP/HRpud6kMkPtcM2i0Tlw== - dependencies: - xtend "^4.0.1" - -hast-util-to-html@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-4.0.1.tgz#3666b05afb62bd69f8f5e6c94db04dea19438e2a" - integrity sha512-2emzwyf0xEsc4TBIPmDJmBttIw8R4SXAJiJZoiRR/s47ODYWgOqNoDbf2SJAbMbfNdFWMiCSOrI3OVnX6Qq2Mg== - dependencies: - ccount "^1.0.0" - comma-separated-tokens "^1.0.1" - hast-util-is-element "^1.0.0" - hast-util-whitespace "^1.0.0" - html-void-elements "^1.0.0" - property-information "^4.0.0" - space-separated-tokens "^1.0.0" - stringify-entities "^1.0.1" - unist-util-is "^2.0.0" - xtend "^4.0.1" - -hast-util-whitespace@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" - integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== - -he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -highlight.js@^10.5.0: - version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: +hosted-git-info@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== @@ -6472,11 +4145,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== - htmlparser2@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" @@ -6503,11 +4171,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-parser-js@>=0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== - http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -6644,7 +4307,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6654,7 +4317,7 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -6674,38 +4337,11 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= - is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -6719,18 +4355,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" @@ -6757,56 +4381,12 @@ is-core-module@^2.9.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -6821,14 +4401,7 @@ is-fullwidth-code-point@^4.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -6848,18 +4421,6 @@ is-installed-globally@~0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -6885,32 +4446,11 @@ is-plain-obj@^4.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-ssh@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" - integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== - dependencies: - protocols "^2.0.1" - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -6938,70 +4478,21 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= - -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -7105,7 +4596,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.10.0, js-yaml@^3.13.1: +js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -7163,26 +4654,11 @@ jsdom@^20.0.0: ws "^8.8.0" xml-name-validator "^4.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -7208,16 +4684,11 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -7281,30 +4752,11 @@ keyv@^4.0.0: json-buffer "3.0.1" khroma@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" - integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + version "2.0.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" + integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -7314,14 +4766,6 @@ kleur@^4.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== -konan@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/konan/-/konan-2.1.1.tgz#eea88f05c56249b78903b952b953393900346dd1" - integrity sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg== - dependencies: - "@babel/parser" "^7.10.5" - "@babel/traverse" "^7.10.5" - ky@^0.28.5: version "0.28.7" resolved "https://registry.yarnpkg.com/ky/-/ky-0.28.7.tgz#10c42be863fb96c1846d6e71e229263ffb72eb15" @@ -7332,25 +4776,11 @@ lazy-ass@1.6.0, lazy-ass@^1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - lcov-parse@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0" integrity sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ== -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= - dependencies: - flush-write-stream "^1.0.2" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -7429,34 +4859,11 @@ listr2@^4.0.5: through "^2.3.8" wrap-ansi "^7.0.0" -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - local-pkg@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -7479,16 +4886,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= - lodash.merge@^4.6.1, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -7499,7 +4896,7 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7537,11 +4934,6 @@ loglevel@^1.6.0: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== -longest-streak@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - longest-streak@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" @@ -7592,11 +4984,6 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -7612,37 +4999,6 @@ map-stream@~0.1.0: resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -markdown-table@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" - integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== - -mdast-util-compact@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593" - integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg== - dependencies: - unist-util-visit "^1.1.0" - -mdast-util-definitions@^1.2.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz#3fe622a4171c774ebd06f11e9f8af7ec53ea5c74" - integrity sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA== - dependencies: - unist-util-visit "^1.0.0" - mdast-util-from-markdown@^0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" @@ -7672,30 +5028,6 @@ mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.2.0: unist-util-stringify-position "^3.0.0" uvu "^0.5.0" -mdast-util-inject@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz#db06b8b585be959a2dcd2f87f472ba9b756f3675" - integrity sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU= - dependencies: - mdast-util-to-string "^1.0.0" - -mdast-util-to-hast@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-3.0.4.tgz#132001b266031192348d3366a6b011f28e54dc40" - integrity sha512-/eIbly2YmyVgpJNo+bFLLMCI1XgolO/Ffowhf+pHDq3X4/V6FntC9sGQCDLM147eTS+uSXv5dRzJyFn+o0tazA== - dependencies: - collapse-white-space "^1.0.0" - detab "^2.0.0" - mdast-util-definitions "^1.2.0" - mdurl "^1.0.1" - trim "0.0.1" - trim-lines "^1.0.0" - unist-builder "^1.0.1" - unist-util-generated "^1.1.0" - unist-util-position "^3.0.0" - unist-util-visit "^1.1.0" - xtend "^4.0.1" - mdast-util-to-markdown@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" @@ -7709,11 +5041,6 @@ mdast-util-to-markdown@^1.0.0: unist-util-visit "^4.0.0" zwitch "^2.0.0" -mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" @@ -7724,26 +5051,11 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== -mdast-util-toc@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz#395eeb877f067f9d2165d990d77c7eea6f740934" - integrity sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w== - dependencies: - github-slugger "^1.2.1" - mdast-util-to-string "^1.0.5" - unist-util-is "^2.1.2" - unist-util-visit "^1.1.0" - mdn-data@2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -7989,25 +5301,6 @@ micromark@~2.11.0: debug "^4.0.0" parse-entities "^2.0.0" -micromatch@^3.1.5: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - 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" - micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -8033,11 +5326,6 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -8079,19 +5367,11 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - mkdirp@^0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -8099,33 +5379,6 @@ mkdirp@^0.5.1: dependencies: minimist "^1.2.6" -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - -module-deps-sortable@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/module-deps-sortable/-/module-deps-sortable-5.0.3.tgz#e640e7450e0869f4ae8e03437665ca2a8a28f843" - integrity sha512-eiyIZj/A0dj1o4ywXWqicazUL3l0HP3TydUR6xF0X3xh3LGBMLqW8a9aFe6MuNH4mxNMk53QKBHM6LOPR8kSgw== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - konan "^2.1.1" - readable-stream "^2.0.2" - resolve "^1.1.3" - standard-version "^9.0.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - moment-mini@^2.24.0: version "2.29.4" resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.29.4.tgz#cbbcdc58ce1b267506f28ea6668dbe060a32758f" @@ -8166,23 +5419,6 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - 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" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -8193,11 +5429,6 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - netmask@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" @@ -8215,16 +5446,6 @@ node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0: dependencies: whatwg-url "^5.0.0" -node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - nomnom@1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" @@ -8246,7 +5467,7 @@ non-layered-tidy-tree-layout@^2.0.2: resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -8266,30 +5487,16 @@ normalize-package-data@^3.0.0: semver "^7.3.4" validate-npm-package-license "^3.0.1" -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.0.1, normalize-url@^6.1.0: +normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" - integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== - dependencies: - once "^1.3.2" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -8316,11 +5523,6 @@ nprogress@^0.2.0: resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -8331,54 +5533,11 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.0.4, object.assign@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -8386,7 +5545,7 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -8431,13 +5590,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= - dependencies: - readable-stream "^2.0.1" - ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" @@ -8458,13 +5610,6 @@ p-iteration@^1.1.8: resolved "https://registry.yarnpkg.com/p-iteration/-/p-iteration-1.1.8.tgz#14df726d55af368beba81bcc92a26bb1b48e714a" integrity sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -8479,13 +5624,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -8514,11 +5652,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -8560,18 +5693,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-entities@^1.0.2, parse-entities@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" - integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - parse-entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" @@ -8584,23 +5705,6 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-filepath@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -8611,26 +5715,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" - integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" - -parse-url@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" - integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== - dependencies: - is-ssh "^1.3.0" - normalize-url "^6.1.0" - parse-path "^4.0.0" - protocols "^1.4.0" - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -8648,21 +5732,11 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - path-browserify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -8698,30 +5772,11 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= - dependencies: - path-root-regex "^0.1.0" - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -8754,7 +5809,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -8764,21 +5819,11 @@ pidtree@^0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -pify@^2.2.0, pify@^2.3.0: +pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - pixelmatch@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.2.1.tgz#9e4e4f4aa59648208a31310306a5bed5522b0d65" @@ -8816,11 +5861,6 @@ pngjs@^4.0.1: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-4.0.1.tgz#f803869bb2fc1bfe1bf99aa4ec21c108117cfdbe" integrity sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg== -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - postcss-value-parser@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" @@ -8869,33 +5909,6 @@ pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - -property-information@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e" - integrity sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ== - dependencies: - xtend "^4.0.1" - -protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -protocols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" - integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -8940,14 +5953,6 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -8956,15 +5961,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -8982,35 +5978,11 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@^6.4.0: - version "6.10.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe" - integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw== - dependencies: - side-channel "^1.0.4" - -qs@^6.9.4: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -9041,30 +6013,6 @@ raw-body@2.5.1, raw-body@^2.2.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -9074,15 +6022,6 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -9103,7 +6042,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: +readable-stream@3, readable-stream@^3.0.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9112,51 +6051,6 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - integrity sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA= - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -9165,77 +6059,11 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -remark-html@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-8.0.0.tgz#9fcb859a6f3cb40f3ef15402950f1a62ec301b3a" - integrity sha512-3V2391GL3hxKhrkzYOyfPpxJ6taIKLCfuLVqumeWQOk3H9nTtSQ8St8kMYkBVIEAquXN1chT83qJ/2lAW+dpEg== - dependencies: - hast-util-sanitize "^1.0.0" - hast-util-to-html "^4.0.0" - mdast-util-to-hast "^3.0.0" - xtend "^4.0.1" - remark-parse@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" @@ -9245,43 +6073,6 @@ remark-parse@^10.0.0: mdast-util-from-markdown "^1.0.0" unified "^10.0.0" -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== - dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remark-reference-links@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/remark-reference-links/-/remark-reference-links-4.0.4.tgz#190579a0d6b002859d6cdbdc5aeb8bbdae4e06ab" - integrity sha512-+2X8hwSQqxG4tvjYZNrTcEC+bXp8shQvwRGG6J/rnFTvBoU4G0BBviZoqKGZizLh/DG+0gSYhiDDWCqyxXW1iQ== - dependencies: - unist-util-visit "^1.0.0" - -remark-slug@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.2.tgz#715ecdef8df1226786204b1887d31ab16aa24609" - integrity sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A== - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^1.0.0" - remark-stringify@^10.0.0: version "10.0.2" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7" @@ -9291,34 +6082,6 @@ remark-stringify@^10.0.0: mdast-util-to-markdown "^1.0.0" unified "^10.0.0" -remark-stringify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba" - integrity sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w== - dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^1.1.0" - mdast-util-compact "^1.0.0" - parse-entities "^1.0.2" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^1.0.1" - unherit "^1.0.4" - xtend "^4.0.1" - -remark-toc@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/remark-toc/-/remark-toc-5.1.1.tgz#8c229d6f834cdb43fde6685e2d43248d3fc82d78" - integrity sha512-vCPW4YOsm2CfyuScdktM9KDnJXVHJsd/ZeRtst+dnBU3B3KKvt8bc+bs5syJjyptAHfqo7H+5Uhz+2blWBfwow== - dependencies: - mdast-util-toc "^3.0.0" - remark-slug "^5.0.0" - remark@^14.0.2: version "14.0.2" resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" @@ -9329,57 +6092,6 @@ remark@^14.0.2: remark-stringify "^10.0.0" unified "^10.0.0" -remark@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" - integrity sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A== - dependencies: - remark-parse "^5.0.0" - remark-stringify "^5.0.0" - unified "^6.0.0" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.5.0, repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" @@ -9423,11 +6135,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -9450,24 +6157,7 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= - dependencies: - value-or-function "^3.0.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.1.3, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.10.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -9499,11 +6189,6 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -9566,28 +6251,16 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -9607,24 +6280,19 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.3.7, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -9658,21 +6326,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -9780,36 +6433,6 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - 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" - socks-proxy-agent@5, socks-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" @@ -9832,27 +6455,6 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -9870,11 +6472,6 @@ sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - spawn-command@^0.0.2-1: version "0.0.2-1" resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" @@ -9906,18 +6503,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - split2@^3.0.0: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" @@ -9932,13 +6517,6 @@ split@0.3: dependencies: through "2" -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -9979,27 +6557,6 @@ ssim.js@^3.1.1: resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== -standard-version@^9.0.0: - version "9.3.2" - resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.3.2.tgz#28db8c1be66fd2d736f28f7c5de7619e64cd6dab" - integrity sha512-u1rfKP4o4ew7Yjbfycv80aNMN2feTiqseAhUhrrx2XtdQGmu7gucpziXe68Z4YfHVqlxVEzo4aUA0Iu3VQOTgQ== - dependencies: - chalk "^2.4.2" - conventional-changelog "3.1.24" - conventional-changelog-config-spec "2.1.0" - conventional-changelog-conventionalcommits "4.6.1" - conventional-recommended-bump "6.1.0" - detect-indent "^6.0.0" - detect-newline "^3.1.0" - dotgitignore "^2.1.0" - figures "^3.1.0" - find-up "^5.0.0" - fs-access "^1.0.1" - git-semver-tags "^4.0.0" - semver "^7.1.1" - stringify-package "^1.0.1" - yargs "^16.0.0" - start-server-and-test@^1.12.6: version "1.14.0" resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" @@ -10013,39 +6570,11 @@ start-server-and-test@^1.12.6: ps-tree "1.2.0" wait-on "6.0.0" -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -stream-array@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/stream-array/-/stream-array-1.1.2.tgz#9e5f7345f2137c30ee3b498b9114e80b52bb7eb5" - integrity sha1-nl9zRfITfDDuO0mLkRToC1K7frU= - dependencies: - readable-stream "~2.1.0" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" @@ -10053,27 +6582,12 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10091,11 +6605,6 @@ string-width@^5.0.0: is-fullwidth-code-point "^4.0.0" strip-ansi "^7.0.1" -string_decoder@0.10, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -10103,27 +6612,10 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" - integrity sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-hexadecimal "^1.0.0" - -stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" - integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= strip-ansi@^3.0.0: version "3.0.1" @@ -10151,11 +6643,6 @@ strip-ansi@~0.1.0: resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -10178,11 +6665,6 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -10200,13 +6682,6 @@ stylis@^4.1.2: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.2.tgz#870b3c1c2275f51b702bb3da9e94eedad87bba41" integrity sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA== -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= - dependencies: - minimist "^1.1.0" - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -10219,13 +6694,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -10287,22 +6755,6 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through2@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" @@ -10315,18 +6767,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.8, through@~2.3, through@~2.3.1: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -tiny-lr@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - tinybench@^2.1.3, tinybench@^2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.1.5.tgz#6864341415ff0f912ed160cfd90b7f833ece674c" @@ -10354,34 +6794,6 @@ tmp@~0.2.1: dependencies: rimraf "^3.0.0" -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -10389,23 +6801,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= - dependencies: - through2 "^2.0.3" - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -10450,31 +6845,11 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -trim-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115" - integrity sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA== - trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -trim-trailing-lines@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - trough@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" @@ -10585,11 +6960,6 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typedarray@^0.0.6, typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - typescript@^4.6.4: version "4.8.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" @@ -10600,16 +6970,6 @@ typescript@^4.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== -uglify-js@^3.1.4: - version "3.14.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz#68756f17d1b90b9d289341736cb9a567d6882f90" - integrity sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA== - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - underscore@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" @@ -10620,37 +6980,6 @@ underscore@~1.6.0: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - unified@^10.0.0: version "10.1.2" resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" @@ -10664,85 +6993,16 @@ unified@^10.0.0: trough "^2.0.0" vfile "^5.0.0" -unified@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -unist-builder@^1.0.1, unist-builder@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz#e1808aed30bd72adc3607f25afecebef4dd59e17" - integrity sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg== - dependencies: - object-assign "^4.1.0" - unist-util-flatmap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unist-util-flatmap/-/unist-util-flatmap-1.0.0.tgz#f914ed6b36ff040afce938d848f379f88b94b448" integrity sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ== -unist-util-generated@^1.1.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - -unist-util-is@^2.0.0, unist-util-is@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.3.tgz#459182db31f4742fceaea88d429693cbf0043d20" - integrity sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA== - -unist-util-is@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" - integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== - unist-util-is@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - -unist-util-remove-position@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" - integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - unist-util-stringify-position@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" @@ -10757,13 +7017,6 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" - integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== - dependencies: - unist-util-is "^3.0.0" - unist-util-visit-parents@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" @@ -10772,13 +7025,6 @@ unist-util-visit-parents@^5.1.1: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" - integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== - dependencies: - unist-util-visit-parents "^2.0.0" - unist-util-visit@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" @@ -10803,35 +7049,11 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -10839,17 +7061,7 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -10901,11 +7113,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= - vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -10920,26 +7127,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" - integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== - -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" @@ -10948,48 +7135,6 @@ vfile-message@^3.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" -vfile-reporter@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.2.tgz#cbddaea2eec560f27574ce7b7b269822c191a676" - integrity sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA== - dependencies: - repeat-string "^1.5.0" - string-width "^4.0.0" - supports-color "^6.0.0" - unist-util-stringify-position "^2.0.0" - vfile-sort "^2.1.2" - vfile-statistics "^1.1.0" - -vfile-sort@^2.1.0, vfile-sort@^2.1.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" - integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== - -vfile-statistics@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" - integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - vfile@^5.0.0: version "5.3.4" resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" @@ -11000,54 +7145,6 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -vinyl-fs@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0, vinyl@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" - integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - "vite@^2.9.12 || ^3.0.0-0": version "3.1.0" resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" @@ -11072,10 +7169,10 @@ vite@^3.1.0: optionalDependencies: fsevents "~2.3.2" -vitepress-plugin-mermaid@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/vitepress-plugin-mermaid/-/vitepress-plugin-mermaid-2.0.7.tgz#6949c301f39a08c168a8836832ab4ef1e92699a1" - integrity sha512-VIi+pCvi7StdMjZvJtIsg90k44eLtG/NGkeKKvu17G/7AqKVIlt3Cb23KogdHiSlS2f4Ku70a2JAH1x0aEDM4w== +vitepress-plugin-mermaid@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/vitepress-plugin-mermaid/-/vitepress-plugin-mermaid-2.0.8.tgz#7a2447d9fa5835fdc00195859d7864d35aeb19a9" + integrity sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw== vitepress-plugin-search@^1.0.4-alpha.7: version "1.0.4-alpha.7" @@ -11186,14 +7283,6 @@ vue-demi@*: resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-template-compiler@^2.5.16: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - vue@^3.2.38: version "3.2.39" resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.39.tgz#de071c56c4c32c41cbd54e55f11404295c0dd62d" @@ -11255,20 +7344,6 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - whatwg-encoding@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" @@ -11310,11 +7385,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -11334,11 +7404,6 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -11377,11 +7442,6 @@ ws@^8.2.3, ws@^8.8.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= - xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" @@ -11402,16 +7462,6 @@ xregexp@2.0.0: resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -11437,14 +7487,6 @@ yaml@^2.1.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" @@ -11468,24 +7510,7 @@ yargs@17.4.1, yargs@^17.0.0, yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.0.0" -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.0.0, yargs@^16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== From 5e4bcbdfa05d0052492e329fe229530331b508d5 Mon Sep 17 00:00:00 2001 From: Emerson Bottero Date: Fri, 23 Sep 2022 23:51:33 -0300 Subject: [PATCH 0121/1038] chore: fix Original Setup --- src/docs/Setup.md | 1627 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1627 insertions(+) diff --git a/src/docs/Setup.md b/src/docs/Setup.md index e69de29bb2..aae2ae9c09 100644 --- a/src/docs/Setup.md +++ b/src/docs/Setup.md @@ -0,0 +1,1627 @@ + + +## mermaidAPI + +This is the API to be used when optionally handling the integration with the web page, instead of +using the default integration provided by mermaid.js. + +The core of this api is the [**render**][1] function which, given a graph +definition as text, renders the graph/diagram and returns an svg element for the graph. + +It is then up to the user of the API to make use of the svg, either insert it somewhere in the +page or do something completely different. + +In addition to the render function, a number of behavioral configuration options are available. + +## Configuration + +**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click +here][2]].** + +## **What follows are config instructions for older versions** + +These are the default options which can be overridden with the initialization call like so: + +**Example 1:**
     mermaid.initialize({ flowchart:{ htmlLabels: false } }); 
    + +**Example 2:**
      
    + +A summary of all options and their defaults is found [here][3]. +A description of each option follows below. + +## theme + +Theme , the CSS style sheet + +| Parameter | Description | Type | Required | Values | +| --------- | --------------- | ------ | -------- | ---------------------------------------------- | +| theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | + +**Notes:** To disable any pre-defined mermaid theme, use "null".
     "theme": "forest",
    +"themeCSS": ".node rect { fill: red; }" 
    + +## fontFamily + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | +| fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. + +## logLevel + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- | +| logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' | + +**Notes:** + +- Trace: 0 +- Debug: 1 +- Info: 2 +- Warn: 3 +- Error: 4 +- Fatal: 5 (default) + +## securityLevel + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | +| securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' | + +**Notes**: + +- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **loose**: tags in text are allowed, click functionality is enabled +- **antiscript**: html tags in text are allowed, (only script element is removed), click + functionality is enabled +- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This + prevent any JavaScript from running in the context. This may hinder interactive functionality + of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. + +## startOnLoad + +| Parameter | Description | Type | Required | Values | +| ----------- | -------------------------------------------- | ------- | -------- | ----------- | +| startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | + +**Notes:** Default value: true + +## arrowMarkerAbsolute + +| Parameter | Description | Type | Required | Values | +| ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | +| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | + +**Notes**: + +This matters if you are using base tag settings. + +Default value: false + +## secure + +This option controls which currentConfig keys are considered _secure_ and can only be changed +via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the +`secure` keys in the current currentConfig. This prevents malicious graph directives from +overriding a site's default security. + +**Notes**: + +Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] + +## deterministicIds + +This option controls if the generated ids of nodes in the SVG are generated randomly or based +on a seed. If set to false, the IDs are generated based on the current date and thus are not +deterministic. This is the default behaviour. + +**Notes**: + +This matters if your files are checked into sourcecontrol e.g. git and should not change unless +content is changed. + +Default value: false + +## deterministicIDSeed + +This option is the optional seed for deterministic ids. if set to undefined but +deterministicIds is true, a simple number iterator is used. You can set this attribute to base +the seed on a static string. + +## flowchart + +The object containing configurations specific for flowcharts + +### diagramPadding + +| Parameter | Description | Type | Required | Values | +| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | +| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | + +**Notes:** + +The amount of padding around the diagram as a whole so that embedded diagrams have margins, +expressed in pixels + +Default value: 8 + +### htmlLabels + +| Parameter | Description | Type | Required | Values | +| ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | +| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | + +**Notes:** Default value: true. + +### nodeSpacing + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | +| nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | + +**Notes:** + +Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the +vertical spacing for LR as well as RL graphs.\*\* + +Default value: 50 + +### rankSpacing + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | +| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | + +**Notes**: + +Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal +spacing for LR as well as RL graphs. + +Default value 50 + +### curve + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | +| curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | + +**Notes:** + +Default Value: 'basis' + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### defaultRenderer + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + +**Notes:** + +Decides which rendering engine that is to be used for the rendering. Legal values are: +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + +Default value: 'dagre-wrapper' + +## sequence + +The object containing configurations specific for sequence diagrams + +### activationWidth + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------------- | ------- | -------- | ------------------ | +| activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | + +**Notes:** Default value :10 + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### actorMargin + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------- | ------- | -------- | ------------------ | +| actorMargin | Margin between actors | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------- | ------- | -------- | ------------------ | +| width | Width of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 150 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| height | Height of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 65 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------ | ------- | -------- | ------------------ | +| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### boxTextMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 5 + +### noteMargin + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------- | ------- | -------- | ------------------ | +| noteMargin | margin around notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### messageMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | ---------------------- | ------- | -------- | ------------------ | +| messageMargin | Space between messages | Integer | Required | Any Positive Value | + +**Notes:** Default value: 35 + +### messageAlign + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ------ | -------- | ------------------------- | +| messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### mirrorActors + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ------- | -------- | ----------- | +| mirrorActors | Mirror actors under diagram | boolean | Required | true, false | + +**Notes:** Default value: true + +### forceMenus + +| Parameter | Description | Type | Required | Values | +| ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | +| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | + +**Notes:** + +Default value: false. + +### bottomMarginAdj + +| Parameter | Description | Type | Required | Values | +| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | +| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | + +**Notes:** + +Depending on css styling this might need adjustment. + +Default value: 1 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** When this flag is set to true, the height and width is set to 100% and is then +scaling with the available space. If set to false, the absolute space required is used. + +Default value: true + +### rightAngles + +| Parameter | Description | Type | Required | Values | +| ----------- | ------------------------------------ | ------- | -------- | ----------- | +| rightAngles | display curve arrows as right angles | boolean | Required | true, false | + +**Notes:** + +This will display arrows that start and begin at the same node as right angles, rather than a +curve + +Default value: false + +### showSequenceNumbers + +| Parameter | Description | Type | Required | Values | +| ------------------- | ------------------------------- | ------- | -------- | ----------- | +| showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | + +**Notes:** Default value: false + +### actorFontSize + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | +| actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | + +**Notes:** **Default value 14**.. + +### actorFontFamily + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | +| actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: "'Open Sans", sans-serif' + +### actorFontWeight + +This sets the font weight of the actor's description + +**Notes:** Default value: 400. + +### noteFontSize + +| Parameter | Description | Type | Required | Values | +| ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | +| noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 14 + +### noteFontFamily + +| Parameter | Description | Type | Required | Values | +| -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | +| noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' + +### noteFontWeight + +This sets the font weight of the note's description + +**Notes:** Default value: 400 + +### noteAlign + +| Parameter | Description | Type | Required | Values | +| --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | +| noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### messageFontSize + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------------------------------------- | ------- | -------- | ------------------- | +| messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | + +**Notes:** Default value: 16 + +### messageFontFamily + +| Parameter | Description | Type | Required | Values | +| ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | +| messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' + +### messageFontWeight + +This sets the font weight of the message's description + +**Notes:** Default value: 400. + +### wrap + +This sets the auto-wrap state for the diagram + +**Notes:** Default value: false. + +### wrapPadding + +This sets the auto-wrap padding for the diagram (sides only) + +**Notes:** Default value: 0. + +### labelBoxWidth + +This sets the width of the loop-box (loop, alt, opt, par) + +**Notes:** Default value: 50. + +### labelBoxHeight + +This sets the height of the loop-box (loop, alt, opt, par) + +**Notes:** Default value: 20. + +## gantt + +The object containing configurations specific for gantt diagrams + +### titleTopMargin + +### titleTopMargin + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | +| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 25 + +### barHeight + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------------- | ------- | -------- | ------------------ | +| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | + +**Notes:** Default value: 20 + +### barGap + +| Parameter | Description | Type | Required | Values | +| --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | +| barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | + +**Notes:** Default value: 4 + +### topPadding + +| Parameter | Description | Type | Required | Values | +| ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | +| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### rightPadding + +| Parameter | Description | Type | Required | Values | +| ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | +| rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | + +**Notes:** Default value: 75 + +### leftPadding + +| Parameter | Description | Type | Required | Values | +| ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | +| leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | + +**Notes:** Default value: 75 + +### gridLineStartPadding + +| Parameter | Description | Type | Required | Values | +| -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | + +**Notes:** Default value: 35 + +### fontSize + +| Parameter | Description | Type | Required | Values | +| --------- | ----------- | ------- | -------- | ------------------ | +| fontSize | Font size | Integer | Required | Any Positive Value | + +**Notes:** Default value: 11 + +### sectionFontSize + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------- | ------- | -------- | ------------------ | +| sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | + +**Notes:** Default value: 11 + +### numberSectionStyles + +| Parameter | Description | Type | Required | Values | +| ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | +| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | + +**Notes:** Default value: 4 + +### axisFormat + +| Parameter | Description | Type | Required | Values | +| ---------- | --------------------------- | ---- | -------- | ---------------- | +| axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | + +**Notes:** + +This might need adjustment to match your locale and preferences + +Default value: '%Y-%m-%d'. + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### topAxis + +| Parameter | Description | Type | Required | Values | +| --------- | ----------- | ------- | -------- | ----------- | +| topAxis | See notes | Boolean | 4 | True, False | + +**Notes:** when this flag is set date labels will be added to the top of the chart + +**Default value false**. + +## journey + +The object containing configurations specific for journey diagrams + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### leftMargin + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------- | ------- | -------- | ------------------ | +| actorMargin | Margin between actors | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------- | ------- | -------- | ------------------ | +| width | Width of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 150 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| height | Height of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 65 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------ | ------- | -------- | ------------------ | +| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### boxTextMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 5 + +### noteMargin + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------- | ------- | -------- | ------------------ | +| noteMargin | Margin around notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### messageMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | ----------------------- | ------- | -------- | ------------------ | +| messageMargin | Space between messages. | Integer | Required | Any Positive Value | + +**Notes:** + +Space between messages. + +Default value: 35 + +### messageAlign + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ---- | -------- | ------------------------- | +| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### bottomMarginAdj + +| Parameter | Description | Type | Required | Values | +| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | +| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | + +**Notes:** + +Depending on css styling this might need adjustment. + +Default value: 1 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### rightAngles + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------------------- | ---- | -------- | ----------- | +| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | + +**Notes:** + +This will display arrows that start and begin at the same node as right angles, rather than a +curves + +Default value: false + +## useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +## defaultRenderer + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + +**Notes**: + +Decides which rendering engine that is to be used for the rendering. Legal values are: +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + +Default value: 'dagre-d3' + +## useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +## defaultRenderer + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + +**Notes:** + +Decides which rendering engine that is to be used for the rendering. Legal values are: +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + +Default value: 'dagre-d3' + +## er + +The object containing configurations specific for entity relationship diagrams + +### diagramPadding + +| Parameter | Description | Type | Required | Values | +| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | +| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | + +**Notes:** + +The amount of padding around the diagram as a whole so that embedded diagrams have margins, +expressed in pixels + +Default value: 20 + +### layoutDirection + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | +| layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | + +**Notes:** + +'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. + +T = top, B = bottom, L = left, and R = right. + +Default value: 'TB' + +### minEntityWidth + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------- | ------- | -------- | ------------------ | +| minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | + +**Notes:** Expressed in pixels. Default value: 100 + +### minEntityHeight + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------------------------------- | ------- | -------- | ------------------ | +| minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | + +**Notes:** Expressed in pixels Default value: 75 + +### entityPadding + +| Parameter | Description | Type | Required | Values | +| ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ | +| entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value | + +**Notes:** + +The minimum internal padding between text in an entity box and the enclosing box borders, +expressed in pixels. + +Default value: 15 + +### stroke + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------------- | ------ | -------- | -------------------- | +| stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | + +**Notes:** Default value: 'gray' + +### fill + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------- | ------ | -------- | -------------------- | +| fill | Fill color of entity boxes | string | 4 | Any recognized color | + +**Notes:** Default value: 'honeydew' + +### fontSize + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------- | ------- | -------- | ------------------ | +| fontSize | Font Size in pixels | Integer | | Any Positive Value | + +**Notes:** + +Font size (expressed as an integer representing a number of pixels) Default value: 12 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** + +When this flag is set to true, the diagram width is locked to 100% and scaled based on +available space. If set to false, the diagram reserves its absolute width. + +Default value: true + +## pie + +The object containing configurations specific for pie diagrams + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** + +When this flag is set to true, the diagram width is locked to 100% and scaled based on +available space. If set to false, the diagram reserves its absolute width. + +Default value: true + +## requirement + +The object containing configurations specific for req diagrams + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** + +When this flag is set to true, the diagram width is locked to 100% and scaled based on +available space. If set to false, the diagram reserves its absolute width. + +Default value: true + +## c4 + +The object containing configurations specific for c4 diagrams + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | ------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### c4ShapeMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------- | ------- | -------- | ------------------ | +| c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### c4ShapePadding + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------- | ------- | -------- | ------------------ | +| c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 20 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| width | Width of person boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 216 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | ---------------------- | ------- | -------- | ------------------ | +| height | Height of person boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 60 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------- | ------- | -------- | ------------------ | +| boxMargin | Margin around boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** When this flag is set to true, the height and width is set to 100% and is then +scaling with the available space. If set to false, the absolute space required is used. + +Default value: true + +### c4ShapeInRow + +| Parameter | Description | Type | Required | Values | +| ------------ | ----------- | ------- | -------- | ------------------ | +| c4ShapeInRow | See Notes | Integer | Required | Any Positive Value | + +**Notes:** How many shapes to place in each row. + +Default value: 4 + +### c4BoundaryInRow + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ------------------ | +| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | + +**Notes:** How many boundarys to place in each row. + +Default value: 2 + +### personFontSize + +This sets the font size of Person shape for the diagram + +**Notes:** Default value: 14. + +### personFontFamily + +This sets the font family of Person shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### personFontWeight + +This sets the font weight of Person shape for the diagram + +**Notes:** Default value: normal. + +### external_personFontSize + +This sets the font size of External Person shape for the diagram + +**Notes:** Default value: 14. + +### external_personFontFamily + +This sets the font family of External Person shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_personFontWeight + +This sets the font weight of External Person shape for the diagram + +**Notes:** Default value: normal. + +### systemFontSize + +This sets the font size of System shape for the diagram + +**Notes:** Default value: 14. + +### systemFontFamily + +This sets the font family of System shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### systemFontWeight + +This sets the font weight of System shape for the diagram + +**Notes:** Default value: normal. + +### external_systemFontSize + +This sets the font size of External System shape for the diagram + +**Notes:** Default value: 14. + +### external_systemFontFamily + +This sets the font family of External System shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_systemFontWeight + +This sets the font weight of External System shape for the diagram + +**Notes:** Default value: normal. + +### system_dbFontSize + +This sets the font size of System DB shape for the diagram + +**Notes:** Default value: 14. + +### system_dbFontFamily + +This sets the font family of System DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### system_dbFontWeight + +This sets the font weight of System DB shape for the diagram + +**Notes:** Default value: normal. + +### external_system_dbFontSize + +This sets the font size of External System DB shape for the diagram + +**Notes:** Default value: 14. + +### external_system_dbFontFamily + +This sets the font family of External System DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_system_dbFontWeight + +This sets the font weight of External System DB shape for the diagram + +**Notes:** Default value: normal. + +### system_queueFontSize + +This sets the font size of System Queue shape for the diagram + +**Notes:** Default value: 14. + +### system_queueFontFamily + +This sets the font family of System Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### system_queueFontWeight + +This sets the font weight of System Queue shape for the diagram + +**Notes:** Default value: normal. + +### external_system_queueFontSize + +This sets the font size of External System Queue shape for the diagram + +**Notes:** Default value: 14. + +### external_system_queueFontFamily + +This sets the font family of External System Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_system_queueFontWeight + +This sets the font weight of External System Queue shape for the diagram + +**Notes:** Default value: normal. + +### boundaryFontSize + +This sets the font size of Boundary shape for the diagram + +**Notes:** Default value: 14. + +### boundaryFontFamily + +This sets the font family of Boundary shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### boundaryFontWeight + +This sets the font weight of Boundary shape for the diagram + +**Notes:** Default value: normal. + +### messageFontSize + +This sets the font size of Message shape for the diagram + +**Notes:** Default value: 12. + +### messageFontFamily + +This sets the font family of Message shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### messageFontWeight + +This sets the font weight of Message shape for the diagram + +**Notes:** Default value: normal. + +### containerFontSize + +This sets the font size of Container shape for the diagram + +**Notes:** Default value: 14. + +### containerFontFamily + +This sets the font family of Container shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### containerFontWeight + +This sets the font weight of Container shape for the diagram + +**Notes:** Default value: normal. + +### external_containerFontSize + +This sets the font size of External Container shape for the diagram + +**Notes:** Default value: 14. + +### external_containerFontFamily + +This sets the font family of External Container shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_containerFontWeight + +This sets the font weight of External Container shape for the diagram + +**Notes:** Default value: normal. + +### container_dbFontSize + +This sets the font size of Container DB shape for the diagram + +**Notes:** Default value: 14. + +### container_dbFontFamily + +This sets the font family of Container DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### container_dbFontWeight + +This sets the font weight of Container DB shape for the diagram + +**Notes:** Default value: normal. + +### external_container_dbFontSize + +This sets the font size of External Container DB shape for the diagram + +**Notes:** Default value: 14. + +### external_container_dbFontFamily + +This sets the font family of External Container DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_container_dbFontWeight + +This sets the font weight of External Container DB shape for the diagram + +**Notes:** Default value: normal. + +### container_queueFontSize + +This sets the font size of Container Queue shape for the diagram + +**Notes:** Default value: 14. + +### container_queueFontFamily + +This sets the font family of Container Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### container_queueFontWeight + +This sets the font weight of Container Queue shape for the diagram + +**Notes:** Default value: normal. + +### external_container_queueFontSize + +This sets the font size of External Container Queue shape for the diagram + +**Notes:** Default value: 14. + +### external_container_queueFontFamily + +This sets the font family of External Container Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_container_queueFontWeight + +This sets the font weight of External Container Queue shape for the diagram + +**Notes:** Default value: normal. + +### componentFontSize + +This sets the font size of Component shape for the diagram + +**Notes:** Default value: 14. + +### componentFontFamily + +This sets the font family of Component shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### componentFontWeight + +This sets the font weight of Component shape for the diagram + +**Notes:** Default value: normal. + +### external_componentFontSize + +This sets the font size of External Component shape for the diagram + +**Notes:** Default value: 14. + +### external_componentFontFamily + +This sets the font family of External Component shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_componentFontWeight + +This sets the font weight of External Component shape for the diagram + +**Notes:** Default value: normal. + +### component_dbFontSize + +This sets the font size of Component DB shape for the diagram + +**Notes:** Default value: 14. + +### component_dbFontFamily + +This sets the font family of Component DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### component_dbFontWeight + +This sets the font weight of Component DB shape for the diagram + +**Notes:** Default value: normal. + +### external_component_dbFontSize + +This sets the font size of External Component DB shape for the diagram + +**Notes:** Default value: 14. + +### external_component_dbFontFamily + +This sets the font family of External Component DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_component_dbFontWeight + +This sets the font weight of External Component DB shape for the diagram + +**Notes:** Default value: normal. + +### component_queueFontSize + +This sets the font size of Component Queue shape for the diagram + +**Notes:** Default value: 14. + +### component_queueFontFamily + +This sets the font family of Component Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### component_queueFontWeight + +This sets the font weight of Component Queue shape for the diagram + +**Notes:** Default value: normal. + +### external_component_queueFontSize + +This sets the font size of External Component Queue shape for the diagram + +**Notes:** Default value: 14. + +### external_component_queueFontFamily + +This sets the font family of External Component Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_component_queueFontWeight + +This sets the font weight of External Component Queue shape for the diagram + +**Notes:** Default value: normal. + +### wrap + +This sets the auto-wrap state for the diagram + +**Notes:** Default value: true. + +### wrapPadding + +This sets the auto-wrap padding for the diagram (sides only) + +**Notes:** Default value: 0. + +## parse + +### Parameters + +- `text` **[string][4]** +- `parseError` **[Function][5]?** + +Returns **[boolean][6]** + +## setSiteConfig + +## setSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls +to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) +will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this +function _Default value: At default, will mirror Global Config_ + +### Parameters + +- `conf` **MermaidConfig** The base currentConfig to use as siteConfig + +Returns **[object][7]** The siteConfig + +## getSiteConfig + +## getSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | +| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | + +**Notes**: Returns **any** values in siteConfig. + +Returns **[object][7]** The siteConfig + +## setConfig + +## setConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure +keys. Any values found in conf with key found in siteConfig.secure will be replaced with the +corresponding siteConfig value. + +### Parameters + +- `conf` **any** The potential currentConfig + +Returns **any** The currentConfig merged with the sanitized conf + +## render + +Function that renders an svg with a graph from a chart definition. Usage example below. + +```javascript +mermaidAPI.initialize({ + startOnLoad: true, +}); +$(function () { + const graphDefinition = 'graph TB\na-->b'; + const cb = function (svgGraph) { + console.log(svgGraph); + }; + mermaidAPI.render('id1', graphDefinition, cb); +}); +``` + +### Parameters + +- `id` **[string][4]** The id of the element to be rendered +- `text` **[string][4]** The graph definition +- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void** +- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be + inserted. If one is provided a hidden div will be inserted in the body of the page instead. The + element will be removed when rendering is completed. + +Returns **void** + +## getConfig + +## getConfig + +| Function | Description | Type | Return Values | +| --------- | ------------------------- | ----------- | ------------------------------ | +| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | + +**Notes**: Returns **any** the currentConfig + +Returns **any** The currentConfig + +## sanitize + +## sanitize + +| Function | Description | Type | Values | +| -------- | -------------------------------------- | ----------- | ------ | +| sanitize | Sets the siteConfig to desired values. | Put Request | None | + +Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies +options in-place + +### Parameters + +- `options` **any** The potential setConfig parameter + +## addDirective + +Pushes in a directive to the configuration + +### Parameters + +- `directive` **[object][7]** The directive to push in + +## reset + +## reset + +| Function | Description | Type | Required | Values | +| -------- | ---------------------------- | ----------- | -------- | ------ | +| reset | Resets currentConfig to conf | Put Request | Required | None | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | +| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | + +**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) + +### Parameters + +- `config` (optional, default `siteConfig`) + +Returns **void** + +## initialize + +### Parameters + +- `options` **MermaidConfig** + +## + +## mermaidAPI configuration defaults + +```html + +``` + +[1]: Setup.md?id=render +[2]: 8.6.0_docs.md +[3]: #mermaidapi-configuration-defaults +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[8]: https://developer.mozilla.org/docs/Web/API/Element From 3c1bad17925af484949e6c0eb91981ba36cfb2f5 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Sat, 24 Sep 2022 15:38:06 -0700 Subject: [PATCH 0122/1038] er jison: allow more chars in Entity name; clean up spec --- src/diagrams/er/parser/erDiagram.jison | 2 +- src/diagrams/er/parser/erDiagram.spec.js | 64 +++++++++++++----------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/src/diagrams/er/parser/erDiagram.jison b/src/diagrams/er/parser/erDiagram.jison index 067851e3cc..6294599b56 100644 --- a/src/diagrams/er/parser/erDiagram.jison +++ b/src/diagrams/er/parser/erDiagram.jison @@ -24,7 +24,7 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili [\n]+ return 'NEWLINE'; \s+ /* skip whitespace */ [\s]+ return 'SPACE'; -\"[A-Za-z0-9\!\@\#\$\^\&\*\(\)\-_\=\+\[\]\{\};:\.\?]+\" return 'ENTITY_NAME'; +\"[^"%\r\n\v\b\\]+\" return 'ENTITY_NAME'; \"[^"]*\" return 'WORD'; "erDiagram" return 'ER_DIAGRAM'; "{" { this.begin("block"); return 'BLOCK_START'; } diff --git a/src/diagrams/er/parser/erDiagram.spec.js b/src/diagrams/er/parser/erDiagram.spec.js index 27d9350b73..1d891ffeab 100644 --- a/src/diagrams/er/parser/erDiagram.spec.js +++ b/src/diagrams/er/parser/erDiagram.spec.js @@ -31,29 +31,10 @@ describe('when parsing ER diagram it...', function () { }).toThrow(); }); describe('has non A-Za-z0-9_- chars', function () { - const allowed = [ - '!', - '@', - '#', - '$', - '^', - '&', - '*', - '(', - ')', - '-', - '_', - '=', - '+', - '[', - ']', - '{', - '}', - ';', - ':', - '.', - '?', - ]; + // these were entered using the Mac keyboard utility. + const chars = + "~ ` ! @ # $ ^ & * ( ) - _ = + [ ] { } | / ; : ' . ? ¡ ⁄ ™ € £ ‹ ¢ › ∞ fi § ‡ • ° ª · º ‚ ≠ ± œ Œ ∑ „ ® † ˇ ¥ Á ¨ ˆ ˆ Ø π ∏ “ « » å Å ß Í ∂ Î ƒ Ï © ˙ Ó ∆ Ô ˚  ¬ Ò … Ú æ Æ Ω ¸ ≈ π ˛ ç Ç √ ◊ ∫ ı ˜ µ  ≤ ¯ ≥ ˘ ÷ ¿"; + const allowed = chars.split(' '); allowed.forEach((allowedChar) => { const singleOccurrence = `Blo${allowedChar}rf`; @@ -118,14 +99,39 @@ describe('when parsing ER diagram it...', function () { expect(entities.hasOwnProperty(name)).toBe(false); }).toThrow(); }); + it('cannot contain \\ because it could start and escape code', function () { + expect(() => { + erDiagram.parser.parse(`erDiagram\n "Blo\\rf"\n`); + const entities = erDb.getEntities(); + expect(entities.hasOwnProperty(name)).toBe(false); + }).toThrow(); + }); + + it('cannot newline, backspace, or vertical characters', function () { + const disallowed = ['\n', '\r', '\b', '\v']; + disallowed.forEach((badChar) => { + const badName = `Blo${badChar}rf`; + expect(() => { + erDiagram.parser.parse(`erDiagram\n "${badName}"\n`); + const entities = erDb.getEntities(); + expect(entities.hasOwnProperty(badName)).toBe(false); + }).toThrow(); + }); + }); + + // skip this: jison cannot handle non-english letters + it.skip('[skipped test] can contain àáâäæãåā', function () { + const beyondEnglishName = 'DUCK-àáâäæãåā'; + erDiagram.parser.parse(`erDiagram\n${beyondEnglishName}\n`); + const entities = erDb.getEntities(); + expect(entities.hasOwnProperty(beyondEnglishName)).toBe(true); + }); - it('can contain - _ ', function () { - const hyphens = 'DUCK-BILLED-PLATYPUS'; - const underscores = 'CHARACTER_SET'; - erDiagram.parser.parse(`erDiagram\n${hyphens}\n${underscores}\n`); + it('can contain - _ without needing ""', function () { + const hyphensUnderscore = 'DUCK-BILLED_PLATYPUS'; + erDiagram.parser.parse(`erDiagram\n${hyphensUnderscore}\n`); const entities = erDb.getEntities(); - expect(entities.hasOwnProperty('DUCK-BILLED-PLATYPUS')).toBe(true); - expect(entities.hasOwnProperty('CHARACTER_SET')).toBe(true); + expect(entities.hasOwnProperty(hyphensUnderscore)).toBe(true); }); }); From d3288793290e90ebbb043dd488d762dcffa9a8a5 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Sat, 24 Sep 2022 15:40:02 -0700 Subject: [PATCH 0123/1038] add uuid; graph node ids can no longer be based on entity names; make unique id --- package.json | 4 +- yarn.lock | 155 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 150 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index d03d5fca84..acf466a10b 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ }, "dependencies": { "@braintree/sanitize-url": "^6.0.0", + "@types/uuid": "^8.3.4", "d3": "^7.0.0", "dagre": "^0.8.5", "dagre-d3": "^0.6.4", @@ -76,7 +77,8 @@ "lodash": "^4.17.21", "moment-mini": "^2.24.0", "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.2" + "stylis": "^4.1.2", + "uuid": "^9.0.0" }, "devDependencies": { "@applitools/eyes-cypress": "^3.25.7", diff --git a/yarn.lock b/yarn.lock index afcda016f3..7fa7eaa940 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1770,11 +1770,21 @@ dependencies: esbuild-wasm "0.15.8" +"@esbuild/android-arm@0.15.9": + version "0.15.9" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.9.tgz#7e1221604ab88ed5021ead74fa8cca4405e1e431" + integrity sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ== + "@esbuild/linux-loong64@0.15.8": version "0.15.8" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz#d64575fc46bf4eb689352aa9f8a139271b6e1647" integrity sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg== +"@esbuild/linux-loong64@0.15.9": + version "0.15.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz#b658a97babf1f40783354af7039b84c3fdfc3fc3" + integrity sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA== + "@eslint/eslintrc@^1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" @@ -2412,6 +2422,11 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/uuid@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + "@types/yauzl@^2.9.1": version "2.9.2" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" @@ -4811,95 +4826,171 @@ esbuild-android-64@0.15.8: dependencies: esbuild-wasm "0.15.8" +esbuild-android-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz#4a7eb320ca8d3a305f14792061fd9614ccebb7c0" + integrity sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw== + esbuild-android-arm64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz#cd62afe08652ac146014386d3adbe7a9d33db1b0" integrity sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ== +esbuild-android-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz#c948e5686df20857ad361ec67e070d40d7cab985" + integrity sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg== + esbuild-darwin-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz#eb668dc973165f85aefecdca8aa60231acb2f705" integrity sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA== +esbuild-darwin-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz#25f564fa4b39c1cec84dc46bce5634fdbce1d5e4" + integrity sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ== + esbuild-darwin-arm64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz#91c110daa46074fdfc18f411247ca0d1228aacc3" integrity sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw== +esbuild-darwin-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz#60faea3ed95d15239536aa88d06bb82b29278a86" + integrity sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw== + esbuild-freebsd-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz#22270945a9bf9107c340eb73922e122bbe84f8ad" integrity sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw== +esbuild-freebsd-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz#0339ef1c90a919175e7816788224517896657a0e" + integrity sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A== + esbuild-freebsd-arm64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz#0efe2741fbcaa2cfd31b9f94bd3ca7385b68c469" integrity sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w== -esbuild-jest@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/esbuild-jest/-/esbuild-jest-0.5.0.tgz#7a9964bfdecafca3b675a8aeb08193bcdba8b9d7" - integrity sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ== - dependencies: - "@babel/core" "^7.12.17" - "@babel/plugin-transform-modules-commonjs" "^7.12.13" - babel-jest "^26.6.3" +esbuild-freebsd-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz#32abfc0be3ae3dd38e5a86a9beadbbcf592f1b57" + integrity sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA== esbuild-linux-32@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz#6fc98659105da5c0d1fedfce3b7b9fa24ebee0d4" integrity sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg== +esbuild-linux-32@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz#93581348a4da7ed2b29bc5539f2605ad7fcee77b" + integrity sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg== + esbuild-linux-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz#8e738c926d145cdd4e9bcb2febc96d89dc27dc09" integrity sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA== +esbuild-linux-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz#0d171e7946c95d0d3ed4826026af2c5632d7dcc4" + integrity sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ== + esbuild-linux-arm64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz#a12675e5a56e8ef08dea49da8eed51a87b0e60d6" integrity sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg== +esbuild-linux-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz#9838795a3720cbe736d3bc20621bd366eac22f24" + integrity sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ== + esbuild-linux-arm@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz#6424da1e8a3ece78681ebee4a70477b40c36ab35" integrity sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q== +esbuild-linux-arm@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz#dce96cd817bc7376f6af3967649c4ab1f2f79506" + integrity sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ== + esbuild-linux-mips64le@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz#5b39a16272cb4eaaad1f24938c057b19fb5a0ee5" integrity sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA== +esbuild-linux-mips64le@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz#0335a0739e61aa97cb9b4a018e3facfcca9cdcfd" + integrity sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw== + esbuild-linux-ppc64le@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz#98ea8cfae8227180b45b2d952b2cbb072900944f" integrity sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg== +esbuild-linux-ppc64le@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz#18482afb95b8a705e2da0a59d7131bff221281f9" + integrity sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw== + esbuild-linux-riscv64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz#6334607025eb449d8dd402d7810721dc15a6210f" integrity sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA== +esbuild-linux-riscv64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz#03b6f9708272c117006b9ce1c9ae8aab91b5a5b6" + integrity sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA== + esbuild-linux-s390x@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz#874f1a3507c32cce1d2ce0d2f28ac1496c094eab" integrity sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA== +esbuild-linux-s390x@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz#65fb645623d575780f155f0ee52935e62f9cca4f" + integrity sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw== + esbuild-netbsd-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz#2e03d87ed811400d5d1fa8c7629b9fd97a574231" integrity sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw== +esbuild-netbsd-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz#7894297bb9e11f3d2f6f31efecd1be4e181f0d54" + integrity sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw== + esbuild-openbsd-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz#8fdbc6399563ac61ff546449e2226a2b1477216c" integrity sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA== +esbuild-openbsd-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz#0f9d4c6b6772ae50d491d68ad4cc028300dda7c0" + integrity sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A== + esbuild-sunos-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz#db657b5c09c0c0161d67ddafca1b710a2e7ce96b" integrity sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA== +esbuild-sunos-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz#c32b7ce574b08f814de810ce7c1e34b843768126" + integrity sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ== + esbuild-wasm@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz#60fb8c5dc1a5538421857a2fa5fbb9eab908dcbb" @@ -4910,16 +5001,59 @@ esbuild-windows-32@0.15.8: resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz#bbb9fe20a8b6bba4428642cacf45a0fb7b2f3783" integrity sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg== +esbuild-windows-32@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz#37a8f7cfccdb2177cd46613a1a1e1fcb419d36df" + integrity sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA== + esbuild-windows-64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz#cedee65505209c8d371d7228b60785c08f43e04d" integrity sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA== +esbuild-windows-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz#5fe1e76fc13dd7f520febecaea110b6f1649c7b2" + integrity sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg== + esbuild-windows-arm64@0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz#1d75235290bf23a111e6c0b03febd324af115cb1" integrity sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg== +esbuild-windows-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz#98504428f7ba7d2cfc11940be68ee1139173fdce" + integrity sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA== + +esbuild@^0.15.6: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.9.tgz#33fb18b67b85004b6f7616bec955ca4b3e58935d" + integrity sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg== + optionalDependencies: + "@esbuild/android-arm" "0.15.9" + "@esbuild/linux-loong64" "0.15.9" + esbuild-android-64 "0.15.9" + esbuild-android-arm64 "0.15.9" + esbuild-darwin-64 "0.15.9" + esbuild-darwin-arm64 "0.15.9" + esbuild-freebsd-64 "0.15.9" + esbuild-freebsd-arm64 "0.15.9" + esbuild-linux-32 "0.15.9" + esbuild-linux-64 "0.15.9" + esbuild-linux-arm "0.15.9" + esbuild-linux-arm64 "0.15.9" + esbuild-linux-mips64le "0.15.9" + esbuild-linux-ppc64le "0.15.9" + esbuild-linux-riscv64 "0.15.9" + esbuild-linux-s390x "0.15.9" + esbuild-netbsd-64 "0.15.9" + esbuild-openbsd-64 "0.15.9" + esbuild-sunos-64 "0.15.9" + esbuild-windows-32 "0.15.9" + esbuild-windows-64 "0.15.9" + esbuild-windows-arm64 "0.15.9" + esbuild@^0.15.8: version "0.15.8" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.8.tgz#75daa25d03f6dd9cc9355030eba2b93555b42cd4" @@ -10539,6 +10673,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + uvu@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" From 481b5cde0fc30a555cc9ec7bb79fa38a85eb3448 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Sat, 24 Sep 2022 16:02:55 -0700 Subject: [PATCH 0124/1038] (minor) fix ==; remove unused imports; fix typos; add comments --- src/diagrams/er/erRenderer.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/diagrams/er/erRenderer.js b/src/diagrams/er/erRenderer.js index d1258a5474..f04fc5fe22 100644 --- a/src/diagrams/er/erRenderer.js +++ b/src/diagrams/er/erRenderer.js @@ -1,7 +1,5 @@ import graphlib from 'graphlib'; import { line, curveBasis, select } from 'd3'; -// import erDb from './erDb'; -// import erParser from './parser/erDiagram'; import dagre from 'dagre'; import { getConfig } from '../../config'; import { log } from '../../logger'; @@ -31,8 +29,10 @@ export const setConf = function (cnf) { * * @param groupNode The svg group node for the entity * @param entityTextNode The svg node for the entity label text - * @param attributes An array of attributes defined for the entity (each attribute has a type and a name) - * @returns {object} The bounding box of the entity, after attributes have been added. The bounding box has a .width and .height + * @param attributes An array of attributes defined for the entity (each attribute has a type and a + * name) + * @returns {object} The bounding box of the entity, after attributes have been added. The bounding + * box has a .width and .height */ const drawAttributes = (groupNode, entityTextNode, attributes) => { const heightPadding = conf.entityPadding / 3; // Padding internal to attribute boxes @@ -288,7 +288,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { heightOffset += attributeNode.height + heightPadding * 2; // Flip the attribute style for row banding - attribStyle = attribStyle == 'attributeBoxOdd' ? 'attributeBoxEven' : 'attributeBoxOdd'; + attribStyle = attribStyle === 'attributeBoxOdd' ? 'attributeBoxEven' : 'attributeBoxOdd'; }); } else { // Ensure the entity box is a decent size without any attributes @@ -382,9 +382,16 @@ const adjustEntities = function (svgNode, graph) { ); } }); - return; }; +/** + * Construct a name for an edge based on the names of the 2 entities and the role (relationship) + * between them. Remove any spaces from it + * + * @param rel - A (parsed) relationship (e.g. one of the objects in the list returned by + * erDb.getRelationships) + * @returns {string} + */ const getEdgeName = function (rel) { return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, ''); }; @@ -393,7 +400,7 @@ const getEdgeName = function (rel) { * Add each relationship to the graph * * @param relationships The relationships to be added - * @param g The graph + * @param {Graph} g The graph * @returns {Array} The array of relationships */ const addRelationships = function (relationships, g) { @@ -535,8 +542,6 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { .attr('height', labelBBox.height) .attr('fill', 'white') .attr('fill-opacity', '85%'); - - return; }; /** @@ -552,7 +557,7 @@ export const draw = function (text, id, _version, diagObj) { log.info('Drawing ER diagram'); // diag.db.clear(); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); @@ -581,7 +586,7 @@ export const draw = function (text, id, _version, diagObj) { // 1. Create all the entities in the svg node at 0,0, but with the correct dimensions (allowing for text content) // 2. Make sure they are all added to the graph // 3. Add all the edges (relationships) to the graph as well - // 4. Let dagre do its magic to layout the graph. This assigns: + // 4. Let dagre do its magic to lay out the graph. This assigns: // - the centre co-ordinates for each node, bearing in mind the dimensions and edge relationships // - the path co-ordinates for each edge // But it has no impact on the svg child nodes - the diagram remains with every entity rooted at 0,0 From 91091c614f78ce3a92f2cadc1fe30ec50a1b0857 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Sat, 24 Sep 2022 16:05:20 -0700 Subject: [PATCH 0125/1038] store and reference entity by unique id, not name (elements, graph, etc.) --- src/diagrams/er/erRenderer.js | 71 +++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/src/diagrams/er/erRenderer.js b/src/diagrams/er/erRenderer.js index f04fc5fe22..a6277f27da 100644 --- a/src/diagrams/er/erRenderer.js +++ b/src/diagrams/er/erRenderer.js @@ -7,9 +7,17 @@ import erMarkers from './erMarkers'; import { configureSvgSize } from '../../setupGraphViewbox'; import addSVGAccessibilityFields from '../../accessibility'; import { parseGenericTypes } from '../common/common'; +import { v4 as uuid4 } from 'uuid'; +/** Regex used to remove chars from the entity name so the result can be used in an id */ +const BAD_ID_CHARS_REGEXP = /[^A-Za-z0-9]([\W])*/g; + +// Configuration let conf = {}; +// Map so we can look up the id of an entity based on the name +let entityNameIds = new Map(); + /** * Allows the top-level API module to inject config specific to this renderer, storing it in the * local conf object. Note that generic config still needs to be retrieved using getConfig() @@ -313,15 +321,18 @@ const drawEntities = function (svgNode, entities, graph) { const keys = Object.keys(entities); let firstOne; - keys.forEach(function (id) { + keys.forEach(function (entityName) { + const entityId = generateId(entityName, 'entity'); + entityNameIds.set(entityName, entityId); + // Create a group for each entity - const groupNode = svgNode.append('g').attr('id', id); + const groupNode = svgNode.append('g').attr('id', entityId); - firstOne = firstOne === undefined ? id : firstOne; + firstOne = firstOne === undefined ? entityId : firstOne; // Label the entity - this is done first so that we can get the bounding box // which then determines the size of the rectangle - const textId = 'entity-' + id; + const textId = 'text-' + entityId; const textNode = groupNode .append('text') .attr('class', 'er entityLabel') @@ -334,12 +345,12 @@ const drawEntities = function (svgNode, entities, graph) { 'style', 'font-family: ' + getConfig().fontFamily + '; font-size: ' + conf.fontSize + 'px' ) - .text(id); + .text(entityName); const { width: entityWidth, height: entityHeight } = drawAttributes( groupNode, textNode, - entities[id].attributes + entities[entityName].attributes ); // Draw the rectangle - insert it before the text so that the text is not obscured @@ -356,12 +367,12 @@ const drawEntities = function (svgNode, entities, graph) { const rectBBox = rectNode.node().getBBox(); - // Add the entity to the graph - graph.setNode(id, { + // Add the entity to the graph using the entityId + graph.setNode(entityId, { width: rectBBox.width, height: rectBBox.height, shape: 'rect', - id: id, + id: entityId, }); }); return firstOne; @@ -405,7 +416,12 @@ const getEdgeName = function (rel) { */ const addRelationships = function (relationships, g) { relationships.forEach(function (r) { - g.setEdge(r.entityA, r.entityB, { relationship: r }, getEdgeName(r)); + g.setEdge( + entityNameIds.get(r.entityA), + entityNameIds.get(r.entityB), + { relationship: r }, + getEdgeName(r) + ); }); return relationships; }; // addRelationships @@ -425,7 +441,11 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { relCnt++; // Find the edge relating to this relationship - const edge = g.edge(rel.entityA, rel.entityB, getEdgeName(rel)); + const edge = g.edge( + entityNameIds.get(rel.entityA), + entityNameIds.get(rel.entityB), + getEdgeName(rel) + ); // Get a function that will generate the line path const lineFunction = line() @@ -652,6 +672,35 @@ export const draw = function (text, id, _version, diagObj) { addSVGAccessibilityFields(diagObj.db, svg, id); }; // draw +/** + * Return a unique id based on the given string. Start with the prefix, then a hyphen, then the + * simplified str, then a hyphen, then a unique uuid. (Hyphens are only included if needed.) + * Although the official XML standard for ids says that many more characters are valid in the id, + * this keeps things simple by accepting only A-Za-z0-9. + * + * @param {string} [str?=''] Given string to use as the basis for the id. Default is `''` + * @param {string} [prefix?=''] String to put at the start, followed by '-'. Default is `''` + * @param str + * @param prefix + * @returns {string} + * @see https://www.w3.org/TR/xml/#NT-Name + */ +export function generateId(str = '', prefix = '') { + const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, ''); + return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid4()}`; +} + +/** + * Append a hyphen to a string only if the string isn't empty + * + * @param {string} str + * @returns {string} + * @todo This could be moved into a string utility file/class. + */ +function strWithHyphen(str = '') { + return str.length > 0 ? `${str}-` : ''; +} + export default { setConf, draw, From eb1c6894f58eebbd2216b05a14a75af47d184d0c Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Sat, 24 Sep 2022 16:05:59 -0700 Subject: [PATCH 0126/1038] change demo ER diagram to include attributes, names with various chars --- demos/er.html | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/demos/er.html b/demos/er.html index 1e5d4062d1..d7b822dbd8 100644 --- a/demos/er.html +++ b/demos/er.html @@ -16,17 +16,35 @@
     erDiagram
    -title This is a title
    -accDescription Test a description
    -CUSTOMER ||--o{ ORDER : places
    -ORDER ||--|{ LINE-ITEM : contains
    -CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
    +  %% title This is a title
    +  %% accDescription Test a description
    +
    +  "Person.CUSTOMER"||--o{ ORDER : places
    +
    +  ORDER ||--|{ LINE-ITEM : contains
    +
    +  "Person.CUSTOMER" }|..|{ "Address/StreetAddress::[DELIVERY-ADDRESS]" : uses
    +
    +  "Address/StreetAddress::[DELIVERY-ADDRESS]" {
    +      int customerID FK
    +      string line1 "this is the first address line comment"
    +      string line2
    +      string city
    +      string region
    +      string state
    +      string postal_code
    +      string country
    +      }
    +
    +      "a_~`!@#$^&*()-_=+[]{}|/;:'.?¡⁄™€£‹¢›∞fi§‡•°ª·º‚≠±œŒ∑„®†ˇ¥Á¨ˆˆØπ∏“«»åÅßÍ∂΃ϩ˙Ó∆Ô˚¬Ò…ÚæÆΩ¸≈π˛çÇ√◊∫ı˜µÂ≤¯≥˘÷¿" {
    +        string name "this is an entity with an absurd name just to show characters that are now acceptable as long as they are within double quotes"
    +      }
         
    + +
    +

    Meet The Team

    + +
    + From d8ee2bb85004b4d40e675451ea193e8fac3176c5 Mon Sep 17 00:00:00 2001 From: Emerson Bottero Date: Sun, 25 Sep 2022 11:53:08 -0300 Subject: [PATCH 0132/1038] docs: no footer --- vdocs/.vitepress/config.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/vdocs/.vitepress/config.ts b/vdocs/.vitepress/config.ts index 6fc762d1d9..d3cdccc9a4 100644 --- a/vdocs/.vitepress/config.ts +++ b/vdocs/.vitepress/config.ts @@ -22,11 +22,6 @@ export default defineConfig({ // "/community/": sidebarCommunity(), }, - footer: { - message: 'Released under the MIT License.', - copyright: 'Copyright © 2014-present Knut Sveidqvist', - }, - // TODO: update to mermaid editLink: { pattern: 'https://github.com/emersonbottero/mermaid/edit/develop/vdocs/:path', From 535f555b136f8322d6aeb539ed4ccb487de77cca Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:18:16 +0100 Subject: [PATCH 0133/1038] test: fix unit tests in new mono-repo --- vite.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index e2b0e15c05..8d34e6184d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,7 +9,8 @@ export default defineConfig({ test: { environment: 'jsdom', globals: true, - setupFiles: ['src/tests/setup.ts'], + // TODO: should we move this to a mermaid-core package? + setupFiles: ['packages/mermaid/src/tests/setup.ts'], coverage: { reporter: ['text', 'json', 'html', 'lcov'], }, From 97637da9e0ca03124112d7be0b0d400b900680f1 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:22:48 +0100 Subject: [PATCH 0134/1038] build: set "packageManager" to `pnpm@7.12.2` The ["packageManager"][1] field list the package manager that is expected to be used. This is required by the `pnpm/action-setup` GitHub Action. [1]: https://nodejs.org/api/packages.html#packagemanager --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7a15a80179..fe34c4ea5d 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", "type": "module", + "packageManager": "pnpm@7.12.2", "exports": { ".": { "require": "./dist/mermaid.min.js", From 69d05c454d5e35ffbf009716944f2e96605ef736 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:50:44 +0100 Subject: [PATCH 0135/1038] style: ignore pnpm-lock.yaml from prettier The `pnpm-lock.yaml` file is auto-generated by PNPM. --- .prettierignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 877e20f81e..fe2c55574b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,6 @@ dist cypress/platform/xss3.html .cache -coverage \ No newline at end of file +coverage +# Autogenerated by PNPM +pnpm-lock.yaml \ No newline at end of file From 69c13a6ecfb95b1b7a72c19c7a14376721205b6b Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:59:40 +0100 Subject: [PATCH 0136/1038] build(docs): fix docs:build command for mono-repo --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fe34c4ea5d..988f19f97f 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "build:watch": "pnpm build:code --watch", "build": "pnpm clean; concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server\"", - "docs:build": "ts-node-esm --transpileOnly src/docs.mts", + "docs:build": "ts-node-esm --transpileOnly packages/mermaid/src/docs.mts", "docs:verify": "pnpm docs:build --verify", "todo-postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", "release": "pnpm build", From d633ec62df0200f7b76523a41f38a0ae5952e265 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:24:40 +0100 Subject: [PATCH 0137/1038] ci(unit): fix unit tests CI to use pnpm --- .github/workflows/test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 08c35befab..fd058406db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,24 +14,24 @@ jobs: steps: - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + # uses version from "packageManager" field in package.json + - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: - cache: yarn + cache: pnpm node-version: ${{ matrix.node-version }} - - name: Install Yarn - run: npm i yarn --global - - name: Install Packages run: | - yarn install --frozen-lockfile + pnpm install --frozen-lockfile env: CYPRESS_CACHE_FOLDER: .cache/Cypress - name: Run Unit Tests run: | - yarn ci --coverage + pnpm run ci --coverage - name: Upload Coverage to Coveralls # it feels a bit weird to use @master, but that's what the docs use From 77831c424ccfa3e1212b13b2971cf6e2117a2aae Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:36:39 +0100 Subject: [PATCH 0138/1038] ci(lint): fix lint tests CI to use pnpm --- .github/workflows/lint.yml | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 44e2f4cb1d..dd2f7aa3b1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -20,23 +20,23 @@ jobs: steps: - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + # uses version from "packageManager" field in package.json + - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: - cache: yarn + cache: pnpm node-version: ${{ matrix.node-version }} - - name: Install Yarn - run: npm i yarn --global - - name: Install Packages run: | - yarn install --frozen-lockfile + pnpm install --frozen-lockfile env: CYPRESS_CACHE_FOLDER: .cache/Cypress - name: Run Linting - run: yarn lint + run: pnpm run lint - name: Verify Docs - run: yarn docs:verify + run: pnpm run docs:verify diff --git a/package.json b/package.json index 988f19f97f..5125344525 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm --transpileOnly src/jison/lint.mts", + "lint:jison": "ts-node-esm --transpileOnly packages/mermaid/src/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", From 29c52ec4d4b47ab0efac14e6fccaa7d5c834fe2b Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:37:45 +0100 Subject: [PATCH 0139/1038] chore: update pnpm-lock.yaml lockfile --- pnpm-lock.yaml | 1335 ++---------------------------------------------- 1 file changed, 30 insertions(+), 1305 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2254a113c..a348520c78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -98,13 +98,13 @@ importers: concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 + cypress-image-snapshot: 4.0.1_cypress@10.8.0 documentation: 13.2.0 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm + eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -122,7 +122,7 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_bidgzm5cq2du6gnjtweqqjrrn4 + ts-node: 10.9.1_typescript@4.8.3 typescript: 4.8.3 unist-util-flatmap: 1.0.0 vite: 3.1.3 @@ -222,14 +222,14 @@ importers: concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 + cypress-image-snapshot: 4.0.1_cypress@10.8.0 documentation: 13.2.0 esbuild: 0.15.8 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm + eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -248,7 +248,7 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_bidgzm5cq2du6gnjtweqqjrrn4 + ts-node: 10.9.1_typescript@4.8.3 typescript: 4.8.3 unist-util-flatmap: 1.0.0 vitest: 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm @@ -270,6 +270,23 @@ importers: concurrently: 7.4.0 rimraf: 3.0.2 + packages/mermaid-mindmap-detector: + specifiers: + '@braintree/sanitize-url': ^6.0.0 + concurrently: ^7.4.0 + d3: ^7.0.0 + mermaid: workspace:* + non-layered-tidy-tree-layout: ^2.0.2 + rimraf: ^3.0.2 + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + mermaid: link:../mermaid + non-layered-tidy-tree-layout: 2.0.2 + devDependencies: + concurrently: 7.4.0 + rimraf: 3.0.2 + packages: /@applitools/dom-capture/11.1.1: @@ -1141,15 +1158,6 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -1979,15 +1987,6 @@ packages: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} dev: false - /@cnakazawa/watch/1.0.4: - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} - hasBin: true - dependencies: - exec-sh: 0.3.6 - minimist: 1.2.6 - dev: true - /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -2282,209 +2281,11 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - /@istanbuljs/schema/0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true - /@jest/console/26.6.2: - resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - chalk: 4.1.2 - jest-message-util: 26.6.2 - jest-util: 26.6.2 - slash: 3.0.0 - dev: true - - /@jest/core/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/reporters': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 26.6.2 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - jest-watcher: 26.6.2 - micromatch: 4.0.5 - p-each-series: 2.2.0 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/environment/26.6.2: - resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - jest-mock: 26.6.2 - dev: true - - /@jest/fake-timers/26.6.2: - resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@sinonjs/fake-timers': 6.0.1 - '@types/node': 18.7.18 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - - /@jest/globals/26.6.2: - resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/types': 26.6.2 - expect: 26.6.2 - dev: true - - /@jest/reporters/26.6.2: - resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-haste-map: 26.6.2 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 7.1.2 - optionalDependencies: - node-notifier: 8.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/source-map/26.6.2: - resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} - engines: {node: '>= 10.14.2'} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.10 - source-map: 0.6.1 - dev: true - - /@jest/test-result/26.6.2: - resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/types': 26.6.2 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/transform/26.6.2: - resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/core': 7.12.3 - '@jest/types': 26.6.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-regex-util: 26.0.0 - jest-util: 26.6.2 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/types/26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.7.18 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - dev: true - /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} @@ -2566,18 +2367,6 @@ packages: engines: {node: '>=10'} dev: true - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/6.0.1: - resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - /@szmarczak/http-timer/4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -2611,35 +2400,6 @@ packages: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true - /@types/babel__core/7.1.19: - resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} - dependencies: - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.1 - dev: true - - /@types/babel__generator/7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@types/babel__template/7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 - dev: true - - /@types/babel__traverse/7.18.1: - resolution: {integrity: sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==} - dependencies: - '@babel/types': 7.19.0 - dev: true - /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: @@ -2895,12 +2655,6 @@ packages: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true - /@types/graceful-fs/4.1.5: - resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} - dependencies: - '@types/node': 18.7.18 - dev: true - /@types/http-cache-semantics/4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true @@ -2909,18 +2663,6 @@ packages: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true - /@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: true - - /@types/istanbul-reports/3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true - /@types/jsdom/20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: @@ -3014,10 +2756,6 @@ packages: resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} dev: true - /@types/stack-utils/2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true - /@types/stylis/4.0.2: resolution: {integrity: sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==} dev: true @@ -3034,16 +2772,6 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@types/yargs-parser/21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: true - - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - /@types/yauzl/2.10.0: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true @@ -3438,15 +3166,6 @@ packages: engines: {node: '>=12'} dev: true - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -3600,54 +3319,12 @@ packages: - debug dev: true - /babel-jest/26.6.3_@babel+core@7.12.3: - resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2_@babel+core@7.12.3 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-plugin-dynamic-import-node/2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.4 dev: true - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.19.0 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.0 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist/26.6.2: - resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.19.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.18.1 - dev: true - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.12.3: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -3684,37 +3361,6 @@ packages: - supports-color dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.12.3: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 - dev: true - - /babel-preset-jest/26.6.2_@babel+core@7.12.3: - resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 - dev: true - /babelify/10.0.0_@babel+core@7.12.3: resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==} engines: {node: '>=6.9.0'} @@ -3858,12 +3504,6 @@ packages: update-browserslist-db: 1.0.9_browserslist@4.21.4 dev: true - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - dev: true - /buffer-crc32/0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true @@ -3984,22 +3624,10 @@ packages: engines: {node: '>=6'} dev: true - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - /caniuse-lite/1.0.30001409: resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} dev: true - /capture-exit/2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} - dependencies: - rsvp: 4.8.5 - dev: true - /caseless/0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true @@ -4057,11 +3685,6 @@ packages: supports-color: 7.2.0 dev: true - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - /character-entities-html4/1.1.4: resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} dev: true @@ -4106,18 +3729,10 @@ packages: fsevents: 2.3.2 dev: true - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true - /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true - /cjs-module-lexer/0.6.0: - resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} - dev: true - /cjson/0.3.0: resolution: {integrity: sha512-bBRQcCIHzI1IVH59fR0bwGrFmi3Btb/JNwM/n401i1DnYgWndpsUBiQRAddLflkZage20A2d25OAWZZk0vBRlA==} engines: {node: '>= 0.3.0'} @@ -4216,19 +3831,10 @@ packages: readable-stream: 2.3.7 dev: true - /co/4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - /collapse-white-space/1.0.6: resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} dev: true - /collect-v8-coverage/1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true - /collection-visit/1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} engines: {node: '>=0.10.0'} @@ -4661,10 +4267,6 @@ packages: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -4676,7 +4278,7 @@ packages: cssom: 0.3.8 dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: + /cypress-image-snapshot/4.0.1_cypress@10.8.0: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -4686,7 +4288,7 @@ packages: cypress: 10.8.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 + jest-image-snapshot: 4.2.0 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5024,15 +4626,6 @@ packages: engines: {node: '>= 6'} dev: true - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -5287,11 +4880,6 @@ packages: minimist: 1.2.6 dev: true - /diff-sequences/26.6.2: - resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} - engines: {node: '>= 10.14.2'} - dev: true - /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -5410,13 +4998,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -5500,11 +5081,6 @@ packages: resolution: {integrity: sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A==} dev: true - /emittery/0.7.2: - resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} - engines: {node: '>=10'} - dev: true - /emoji-regex/6.1.1: resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} dev: true @@ -5786,11 +5362,6 @@ packages: engines: {node: '>=0.8.0'} dev: true - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -5858,7 +5429,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: + /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5874,7 +5445,6 @@ packages: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha eslint: 8.23.1 - jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -6088,10 +5658,6 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true - /exec-sh/0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} - dev: true - /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -6157,11 +5723,6 @@ packages: pify: 2.3.0 dev: true - /exit/0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true - /expand-brackets/2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -6177,18 +5738,6 @@ packages: - supports-color dev: true - /expect/26.6.2: - resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - ansi-styles: 4.3.0 - jest-get-type: 26.3.0 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - dev: true - /express/4.18.1: resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} engines: {node: '>= 0.10.0'} @@ -6322,12 +5871,6 @@ packages: websocket-driver: 0.7.4 dev: true - /fb-watchman/2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - dependencies: - bser: 2.1.1 - dev: true - /fd-slicer/1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: @@ -6477,15 +6020,6 @@ packages: mime-types: 2.1.35 dev: true - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -6607,11 +6141,6 @@ packages: has-symbols: 1.0.3 dev: true - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - /get-pkg-repo/4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -6877,11 +6406,6 @@ packages: lodash: 4.17.21 dev: false - /growly/1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} - dev: true - optional: true - /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} @@ -7033,13 +6557,6 @@ packages: lru-cache: 6.0.0 dev: true - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -7205,15 +6722,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -7320,13 +6828,6 @@ packages: engines: {node: '>=4'} dev: true - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: true - /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -7376,13 +6877,6 @@ packages: kind-of: 6.0.3 dev: true - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true - optional: true - /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -7410,11 +6904,6 @@ packages: engines: {node: '>=12'} dev: true - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - /is-glob/3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} engines: {node: '>=0.10.0'} @@ -7562,14 +7051,6 @@ packages: resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} dev: true - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - optional: true - /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true @@ -7603,31 +7084,6 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.12.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-instrument/5.2.0: - resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.12.3 - '@babel/parser': 7.19.1 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-report/3.0.0: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} engines: {node: '>=8'} @@ -7637,17 +7093,6 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-reports/3.1.5: resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} engines: {node: '>=8'} @@ -7664,163 +7109,7 @@ packages: plist: 3.0.6 dev: true - /jest-changed-files/26.6.2: - resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - execa: 4.1.0 - throat: 5.0.0 - dev: true - - /jest-cli/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - is-ci: 2.0.0 - jest-config: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-validate: 26.6.2 - prompts: 2.4.2 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-config/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} - engines: {node: '>= 10.14.2'} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.12.3 - '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 - '@jest/types': 26.6.2 - babel-jest: 26.6.3_@babel+core@7.12.3 - chalk: 4.1.2 - deepmerge: 4.2.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-environment-jsdom: 26.6.2 - jest-environment-node: 26.6.2 - jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3_ts-node@10.9.1 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - micromatch: 4.0.5 - pretty-format: 26.6.2 - ts-node: 10.9.1_bidgzm5cq2du6gnjtweqqjrrn4 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-diff/26.6.2: - resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - diff-sequences: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - - /jest-docblock/26.0.0: - resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} - engines: {node: '>= 10.14.2'} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/26.6.2: - resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - jest-get-type: 26.3.0 - jest-util: 26.6.2 - pretty-format: 26.6.2 - dev: true - - /jest-environment-jsdom/26.6.2: - resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - jest-mock: 26.6.2 - jest-util: 26.6.2 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/26.6.2: - resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - - /jest-get-type/26.3.0: - resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} - engines: {node: '>= 10.14.2'} - dev: true - - /jest-haste-map/26.6.2: - resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.5 - '@types/node': 18.7.18 - anymatch: 3.1.2 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 26.0.0 - jest-serializer: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - micromatch: 4.0.5 - sane: 4.1.0 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-image-snapshot/4.2.0_jest@26.6.3: + /jest-image-snapshot/4.2.0: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -7829,7 +7118,6 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 26.6.3_ts-node@10.9.1 lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -7838,285 +7126,6 @@ packages: ssim.js: 3.5.0 dev: true - /jest-jasmine2/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/traverse': 7.19.1 - '@jest/environment': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - chalk: 4.1.2 - co: 4.6.0 - expect: 26.6.2 - is-generator-fn: 2.1.0 - jest-each: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - pretty-format: 26.6.2 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-leak-detector/26.6.2: - resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} - engines: {node: '>= 10.14.2'} - dependencies: - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - - /jest-matcher-utils/26.6.2: - resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - - /jest-message-util/26.6.2: - resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 26.6.2 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 26.6.2 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - - /jest-mock/26.6.2: - resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - dev: true - - /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 26.6.2 - dev: true - - /jest-regex-util/26.0.0: - resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} - engines: {node: '>= 10.14.2'} - dev: true - - /jest-resolve-dependencies/26.6.3: - resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - jest-regex-util: 26.0.0 - jest-snapshot: 26.6.2 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/26.6.2: - resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 - jest-util: 26.6.2 - read-pkg-up: 7.0.1 - resolve: 1.22.1 - slash: 3.0.0 - dev: true - - /jest-runner/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - chalk: 4.1.2 - emittery: 0.7.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-docblock: 26.0.0 - jest-haste-map: 26.6.2 - jest-leak-detector: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-worker: 26.6.2 - source-map-support: 0.5.21 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-runtime/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/globals': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - cjs-module-lexer: 0.6.0 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - slash: 3.0.0 - strip-bom: 4.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-serializer/26.6.2: - resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/node': 18.7.18 - graceful-fs: 4.2.10 - dev: true - - /jest-snapshot/26.6.2: - resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/types': 7.19.0 - '@jest/types': 26.6.2 - '@types/babel__traverse': 7.18.1 - '@types/prettier': 2.7.0 - chalk: 4.1.2 - expect: 26.6.2 - graceful-fs: 4.2.10 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - jest-haste-map: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - natural-compare: 1.4.0 - pretty-format: 26.6.2 - semver: 7.3.7 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/26.6.2: - resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - chalk: 4.1.2 - graceful-fs: 4.2.10 - is-ci: 2.0.0 - micromatch: 4.0.5 - dev: true - - /jest-validate/26.6.2: - resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 26.3.0 - leven: 3.1.0 - pretty-format: 26.6.2 - dev: true - - /jest-watcher/26.6.2: - resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.7.18 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 26.6.2 - string-length: 4.0.2 - dev: true - - /jest-worker/26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 18.7.18 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - - /jest/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - import-local: 3.1.0 - jest-cli: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jison-lex/0.3.4: resolution: {integrity: sha512-EBh5wrXhls1cUwROd5DcDHR1sG7CdsCFSqY1027+YA1RGxz+BX2TDLAhdsQf40YEtFDGoiO0Qm8PpnBl2EzDJw==} engines: {node: '>=0.4'} @@ -8191,48 +7200,6 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.4.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.4.6 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsdom/20.0.0: resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} engines: {node: '>=14'} @@ -8410,11 +7377,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - /kleur/4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -8458,11 +7420,6 @@ packages: flush-write-stream: 1.1.1 dev: true - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - /levn/0.3.0: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} engines: {node: '>= 0.8.0'} @@ -8697,12 +7654,6 @@ packages: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - dev: true - /map-cache/0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} @@ -9299,23 +8250,6 @@ packages: whatwg-url: 5.0.0 dev: true - /node-int64/0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: true - - /node-notifier/8.0.2: - resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - requiresBuild: true - dependencies: - growly: 1.3.0 - is-wsl: 2.2.0 - semver: 7.3.7 - shellwords: 0.1.1 - uuid: 8.3.2 - which: 2.0.2 - dev: true - optional: true - /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true @@ -9517,11 +8451,6 @@ packages: engines: {node: '>=8'} dev: true - /p-each-series/2.2.0: - resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} - engines: {node: '>=8'} - dev: true - /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -9840,11 +8769,6 @@ packages: engines: {node: '>=10'} dev: true - /pirates/4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true - /pixelmatch/5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true @@ -9859,13 +8783,6 @@ packages: find-up: 3.0.0 dev: true - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - /plist/3.0.6: resolution: {integrity: sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==} engines: {node: '>=6'} @@ -9941,16 +8858,6 @@ packages: engines: {node: '>=6'} dev: true - /pretty-format/26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: true - /process-nextick-args/1.0.7: resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} dev: true @@ -9959,14 +8866,6 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - /property-information/4.2.0: resolution: {integrity: sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==} dependencies: @@ -10127,10 +9026,6 @@ packages: unpipe: 1.0.0 dev: true - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - /read-pkg-up/3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} @@ -10502,13 +9397,6 @@ packages: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: true - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -10605,11 +9493,6 @@ packages: fsevents: 2.3.2 dev: true - /rsvp/4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} - dev: true - /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -10654,25 +9537,6 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sane/4.1.0: - resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} - engines: {node: 6.* || 8.* || >= 10.*} - deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added - hasBin: true - dependencies: - '@cnakazawa/watch': 1.0.4 - anymatch: 2.0.0 - capture-exit: 2.0.0 - exec-sh: 0.3.6 - execa: 1.0.0 - fb-watchman: 2.0.2 - micromatch: 3.1.10 - minimist: 1.2.6 - walker: 1.0.8 - transitivePeerDependencies: - - supports-color - dev: true - /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -10784,11 +9648,6 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true - /shellwords/0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - dev: true - optional: true - /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -10810,10 +9669,6 @@ packages: totalist: 3.0.0 dev: true - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -10922,13 +9777,6 @@ packages: urix: 0.1.0 dev: true - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - /source-map-url/0.4.1: resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated @@ -10953,11 +9801,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: true - /space-separated-tokens/1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} dev: true @@ -11042,13 +9885,6 @@ packages: resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==} dev: true - /stack-utils/2.0.5: - resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - dev: true - /standard-version/9.5.0: resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} engines: {node: '>=10'} @@ -11137,14 +9973,6 @@ packages: engines: {node: '>=0.6.19'} dev: true - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - /string-template/0.2.1: resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} dev: true @@ -11222,11 +10050,6 @@ packages: engines: {node: '>=4'} dev: true - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - /strip-eof/1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -11308,14 +10131,6 @@ packages: has-flag: 4.0.0 dev: true - /supports-hyperlinks/2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -11333,14 +10148,6 @@ packages: iterm2-version: 4.2.0 dev: true - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 - dev: true - /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -11425,10 +10232,6 @@ packages: rimraf: 3.0.2 dev: true - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true - /to-absolute-glob/2.0.2: resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} engines: {node: '>=0.10.0'} @@ -11513,13 +10316,6 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -11557,7 +10353,7 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-node/10.9.1_bidgzm5cq2du6gnjtweqqjrrn4: + /ts-node/10.9.1_ck2axrxkiif44rdbzjywaqjysa: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -11576,7 +10372,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.7.18 + '@types/node': 14.18.29 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -11588,7 +10384,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_ck2axrxkiif44rdbzjywaqjysa: + /ts-node/10.9.1_typescript@4.8.3: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -11607,7 +10403,6 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 14.18.29 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -11704,12 +10499,6 @@ packages: mime-types: 2.1.35 dev: true - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - /typedarray/0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true @@ -11989,15 +10778,6 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul/7.1.2: - resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} - engines: {node: '>=10.10.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - source-map: 0.7.4 - dev: true - /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -12269,13 +11049,6 @@ packages: browser-process-hrtime: 1.0.0 dev: true - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -12297,12 +11070,6 @@ packages: - debug dev: true - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - dev: true - /webdriver/7.16.11: resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} engines: {node: '>=12.0.0'} @@ -12322,16 +11089,6 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -12351,12 +11108,6 @@ packages: engines: {node: '>=0.8.0'} dev: true - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: true - /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -12368,10 +11119,6 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -12400,15 +11147,6 @@ packages: webidl-conversions: 3.0.1 dev: true - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true @@ -12459,15 +11197,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - /ws/7.4.6: resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} engines: {node: '>=8.3.0'} @@ -12511,10 +11240,6 @@ packages: resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} dev: true - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} From 24d46fb9369d03eb1e7a2d10f57b777511c27faa Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:38:47 +0100 Subject: [PATCH 0140/1038] ci(e2e): fix e2e tests CI to use pnpm We need to upgrade cypress-io/github-action to v4.2.0 as that's the first version that supported pnpm. See https://github.com/cypress-io/github-action/releases/tag/v4.2.0 --- .github/workflows/e2e.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 194f870542..93c751dce1 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -16,29 +16,21 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/cache@v3 - id: yarn-and-build-cache - with: - path: | - ~/.cache/Cypress - build - node_modules - key: ${{ runner.os }}-node_modules-build-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node_modules-build- + - uses: pnpm/action-setup@v2 + # uses version from "packageManager" field in package.json - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: - cache: yarn + cache: pnpm node-version: ${{ matrix.node-version }} # Install NPM dependencies, cache them correctly # and run all Cypress tests - name: Cypress run - uses: cypress-io/github-action@v3 + uses: cypress-io/github-action@v4 with: - start: yarn dev + start: pnpm run dev wait-on: 'http://localhost:9000' record: true headless: true From e72059ba874d6b856811272e886a73698882cf0d Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:39:14 +0100 Subject: [PATCH 0141/1038] ci(e2e-applitools): fix applitools CI to use pnpm --- .github/workflows/e2e-applitools.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/e2e-applitools.yml b/.github/workflows/e2e-applitools.yml index b0319b0727..5c515b433b 100644 --- a/.github/workflows/e2e-applitools.yml +++ b/.github/workflows/e2e-applitools.yml @@ -29,25 +29,24 @@ jobs: name: Warn if not using Applitools run: | echo "::error,title=Not using Applitols::APPLITOOLS_API_KEY is empty, disabling Applitools for this run." + - uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + # uses version from "packageManager" field in package.json + - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: - cache: yarn + cache: pnpm node-version: ${{ matrix.node-version }} - - name: Install Yarn - run: npm i yarn --global - - name: Install Packages run: | - yarn install --frozen-lockfile + pnpm install --frozen-lockfile env: CYPRESS_CACHE_FOLDER: .cache/Cypress - - name: Run Build - run: yarn build - - if: ${{ env.USE_APPLI }} name: Notify applitools of new batch # Copied from docs https://applitools.com/docs/topics/integrations/github-integration-ci-setup.html @@ -60,7 +59,7 @@ jobs: APPLITOOLS_SERVER_URL: 'https://eyesapi.applitools.com' - name: Run E2E Tests - run: yarn e2e + run: pnpm run e2e env: CYPRESS_CACHE_FOLDER: .cache/Cypress # Mermaid applitools.config.js uses this to pick batch name. From e0805b8272359141ac9398ebadd66a3b403e4ffb Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:41:02 +0100 Subject: [PATCH 0142/1038] ci(build): fix build CI to use pnpm The packages/mermaid/dist build is now uploaded seperately from the packages/mermaid-mindmap/dist build. --- .github/workflows/build.yml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e5ca579917..a8bafc91ae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,26 +20,32 @@ jobs: steps: - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + # uses version from "packageManager" field in package.json + - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: - cache: yarn + cache: pnpm node-version: ${{ matrix.node-version }} - - name: Install Yarn - run: npm i yarn --global - - name: Install Packages run: | - yarn install --frozen-lockfile + pnpm install --frozen-lockfile env: CYPRESS_CACHE_FOLDER: .cache/Cypress - name: Run Build - run: yarn build + run: pnpm run build + + - name: Upload Mermaid Build as Artifact + uses: actions/upload-artifact@v3 + with: + name: mermaid-build + path: packages/mermaid/dist - - name: Upload Build as Artifact + - name: Upload Mermaid Mindmap Build as Artifact uses: actions/upload-artifact@v3 with: - name: dist - path: dist + name: mermaid-mindmap-build + path: packages/mermaid-mindmap/dist From 56e1411d37b0a613277d546bf13897e0c4de7fc0 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 25 Sep 2022 19:56:15 +0100 Subject: [PATCH 0143/1038] ci(e2e): fix e2e action when running from fork PRs from forks don't have acess to the secrets.CYPRESS_RECORD_KEY. Because of this, we need to disable `recording`. --- .github/workflows/e2e.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 194f870542..3a7f767d8a 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -37,11 +37,16 @@ jobs: # and run all Cypress tests - name: Cypress run uses: cypress-io/github-action@v3 + # If CYPRESS_RECORD_KEY is set, run in parallel on all containers + # Otherwise (e.g. if running from fork), we run on a single container only + if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }} with: start: yarn dev wait-on: 'http://localhost:9000' - record: true + # Disable recording if we don't have an API key + # e.g. if this action was run from a fork + record: ${{ secrets.CYPRESS_RECORD_KEY != '' }} + parallel: ${{ secrets.CYPRESS_RECORD_KEY != '' }} headless: true - parallel: true env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} From 9566f51ca8f77890ff566ac09d53c9599d916cc7 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 26 Sep 2022 08:01:23 +0200 Subject: [PATCH 0144/1038] Commiton issue #3061 Injecting mermaid utilities in registered diagram --- .vite/build.ts | 25 +++--- cypress/platform/knsv2.html | 15 ++-- .../mermaid-mindmap-detector/src/registry.ts | 18 ----- packages/mermaid-mindmap/src/diagram.ts | 18 ++++- packages/mermaid-mindmap/src/mermaidUtils.ts | 77 +++++++++++++++++++ packages/mermaid-mindmap/src/mindmapDb.js | 3 +- .../mermaid-mindmap/src/mindmapRenderer.js | 2 +- packages/mermaid-mindmap/src/registry.ts | 46 +++++------ packages/mermaid/src/Diagram.ts | 20 +++-- .../mermaid/src/diagram-api/diagramAPI.ts | 18 ++++- packages/mermaid/src/mermaid.ts | 31 ++++++++ packages/mermaid/src/utils.ts | 1 - .../package.json | 0 .../src/mindmapDetector.ts | 0 .../tsconfig.json | 0 15 files changed, 197 insertions(+), 77 deletions(-) delete mode 100644 packages/mermaid-mindmap-detector/src/registry.ts create mode 100644 packages/mermaid-mindmap/src/mermaidUtils.ts rename packages/{mermaid-mindmap-detector => rm-mermaid-mindmap-detector}/package.json (100%) rename packages/{mermaid-mindmap-detector => rm-mermaid-mindmap-detector}/src/mindmapDetector.ts (100%) rename packages/{mermaid-mindmap-detector => rm-mermaid-mindmap-detector}/tsconfig.json (100%) diff --git a/.vite/build.ts b/.vite/build.ts index f842e669a6..fa57123ce2 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -16,14 +16,17 @@ type OutputOptions = Exclude< const packageOptions = { mermaid: { name: 'mermaid', + packageName: 'mermaid', file: 'mermaid.ts', }, 'mermaid-mindmap': { name: 'mermaid-mindmap', + packageName: 'mermaid-mindmap', file: 'diagram.ts', }, 'mermaid-mindmap-detector': { name: 'mermaid-mindmap-detector', + packageName: 'mermaid-mindmap', file: 'registry.ts', }, }; @@ -32,17 +35,13 @@ interface BuildOptions { minify: boolean | 'esbuild'; core?: boolean; watch?: boolean; - packageName: keyof typeof packageOptions; + entryName: keyof typeof packageOptions; } -export const getBuildConfig = ({ - minify, - core, - watch, - packageName, -}: BuildOptions): InlineConfig => { +export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => { const external = ['require', 'fs', 'path']; - const { name, file } = packageOptions[packageName]; + console.log(entryName, packageOptions[entryName]); + const { name, file, packageName } = packageOptions[entryName]; let output: OutputOptions = [ { name, @@ -105,11 +104,11 @@ export const getBuildConfig = ({ return config; }; -const buildPackage = async (packageName: keyof typeof packageOptions) => { +const buildPackage = async (entryName: keyof typeof packageOptions) => { return Promise.allSettled([ - build(getBuildConfig({ minify: false, packageName })), - build(getBuildConfig({ minify: 'esbuild', packageName })), - build(getBuildConfig({ minify: false, core: true, packageName })), + build(getBuildConfig({ minify: false, entryName })), + build(getBuildConfig({ minify: 'esbuild', entryName })), + build(getBuildConfig({ minify: false, core: true, entryName })), ]); }; @@ -121,7 +120,7 @@ const main = async () => { }; if (watch) { - build(getBuildConfig({ minify: false, watch, packageName: 'mermaid' })); + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' })); } else { void main(); } diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index a818161970..cc4e8f1351 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -45,12 +45,17 @@
    Security check
    +
    +flowchart LR
    +      A --> B
    +    
             mindmap
               root
                 ch1
                 ch2
         
    + diff --git a/packages/mermaid-mindmap-detector/src/registry.ts b/packages/mermaid-mindmap-detector/src/registry.ts deleted file mode 100644 index bb121e5dca..0000000000 --- a/packages/mermaid-mindmap-detector/src/registry.ts +++ /dev/null @@ -1,18 +0,0 @@ -// @ts-ignore: TODO Fix ts errors -import { mindmapDetector } from './mindmapDetector'; - -if (typeof document !== 'undefined') { - /*! - * Wait for document loaded before starting the execution - */ - window.addEventListener( - 'load', - () => { - if (window.mermaid && typeof window.mermaid.detectors === 'object') { - window.mermaid.detectors.push(mindmapDetector); - console.log(window.mermaid.detectors); // eslint-disable-line no-console - } - }, - false - ); -} diff --git a/packages/mermaid-mindmap/src/diagram.ts b/packages/mermaid-mindmap/src/diagram.ts index c0d32e82a2..8161a8e98c 100644 --- a/packages/mermaid-mindmap/src/diagram.ts +++ b/packages/mermaid-mindmap/src/diagram.ts @@ -3,7 +3,7 @@ import mindmapParser from './parser/mindmap'; import * as mindmapDb from './mindmapDb'; import mindmapRenderer from './mindmapRenderer'; import mindmapStyles from './styles'; - +import { injectUtils } from './mermaidUtils'; // import mermaid from 'mermaid'; // console.log('mindmapDb', mindmapDb.getMindmap()); // eslint-disable-line no-console @@ -13,12 +13,22 @@ if (typeof document !== 'undefined') { /*! * Wait for document loaded before starting the execution */ + // { parser: mindmapParser, db: mindmapDb, renderer: mindmapRenderer, styles: mindmapStyles }, + window.addEventListener( 'load', () => { - if (window.mermaid && typeof window.mermaid.detectors === 'object') { - // window.mermaid.detectors.push(mindmapDetector); - console.log(window.mermaid.detectors); // eslint-disable-line no-console + if (window.mermaid && typeof window.mermaid.c) { + window.mermaid.connectDiagram( + 'mindmap', + { + db: mindmapDb, + renderer: mindmapRenderer, + parser: mindmapParser, + styles: mindmapStyles, + }, + injectUtils + ); } }, false diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts new file mode 100644 index 0000000000..82bf3653b6 --- /dev/null +++ b/packages/mermaid-mindmap/src/mermaidUtils.ts @@ -0,0 +1,77 @@ +const warning = (s: string) => { + // Todo remove debug code + console.error('Log function was called before initialization', s); // eslint-disable-line +}; + +export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; + +export const LEVELS: Record = { + trace: 0, + debug: 1, + info: 2, + warn: 3, + error: 4, + fatal: 5, +}; + +export const log: Record = { + trace: warning, + debug: warning, + info: warning, + warn: warning, + error: warning, + fatal: warning, +}; + +export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; +export let getConfig: () => object; +export let sanitizeText: (str: string) => string; +// eslint-disable @typescript-eslint/no-explicit-any +export let setupGraphViewbox: ( + graph: any, + svgElem: any, + padding: any, + useMaxWidth: boolean +) => void; + +export const injectUtils = ( + _log: Record, + _setLogLevel: any, + _getConfig: any, + _sanitizeText: any, + _setupGraphViewbox: any +) => { + log.debug = _log.debug; + log.info = _log.info; + log.warn = _log.warn; + log.error = _log.error; + setLogLevel = _setLogLevel; + getConfig = _getConfig; + sanitizeText = _sanitizeText; + setupGraphViewbox = _setupGraphViewbox; +}; + +/* +const warning = (..._args: any[]) => { + console.error('Log function was called before initialization'); +}; +export let log = { + trace: warning, + debug: warning, + info: warning, + warn: warning, + error: warning, + fatal: warning, +}; +export let setLogLevel; +export let getConfig; +export let sanitizeText; +export let setupGraphViewbox; +export const injectUtils = (_log, _setLogLevel, _getConfig, _sanitizeText, _setupGraphViewbox) => { + log = _log; + setLogLevel = _setLogLevel; + getConfig = _getConfig; + sanitizeText = _sanitizeText; + setupGraphViewbox = _setupGraphViewbox; +}; +*/ diff --git a/packages/mermaid-mindmap/src/mindmapDb.js b/packages/mermaid-mindmap/src/mindmapDb.js index 9efebcca41..3b322b2b46 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.js +++ b/packages/mermaid-mindmap/src/mindmapDb.js @@ -1,5 +1,5 @@ /** Created by knut on 15-01-14. */ -import { sanitizeText, getConfig, log as _log } from 'mermaid/diagramAPI'; +import { sanitizeText, getConfig, log as _log } from './mermaidUtils'; let nodes = []; let cnt = 0; @@ -133,6 +133,7 @@ export const type2Str = (type) => { }; // Expose logger to grammar export const log = _log; +export let graphType = 'mindmap'; export const getNodeById = (id) => nodes[id]; export const getElementById = (id) => elements[id]; // export default { diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index 2f2b062925..9ad81df9dc 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -1,6 +1,6 @@ /** Created by knut on 14-12-11. */ import { select } from 'd3'; -import { log, getConfig, setupGraphViewbox } from '../../diagram-api/diagramAPI'; +import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; import svgDraw from './svgDraw'; import { BoundingBox, Layout } from 'non-layered-tidy-tree-layout'; import clone from 'fast-clone'; diff --git a/packages/mermaid-mindmap/src/registry.ts b/packages/mermaid-mindmap/src/registry.ts index 7189578a6f..837929f334 100644 --- a/packages/mermaid-mindmap/src/registry.ts +++ b/packages/mermaid-mindmap/src/registry.ts @@ -1,27 +1,27 @@ // @ts-ignore: TODO Fix ts errors -// import mindmapParser from './parser/mindmap'; -// import * as mindmapDb from './mindmapDb'; import { mindmapDetector } from './mindmapDetector'; -// import mindmapRenderer from './mindmapRenderer'; -// import mindmapStyles from './styles'; -import mermaid from 'mermaid'; +if (typeof document !== 'undefined') { + if (window.mermaid && typeof window.mermaid.detectors === 'object') { + window.mermaid.detectors.push({ id: 'mindmap', detector: mindmapDetector }); + } else { + console.error('window.mermaid.detectors not found'); // eslint-disable-line no-console + window.mermaid = {}; + window.mermaid.detectors = [{ id: 'mindmap', detector: mindmapDetector }]; + console.error('Detectors now:', window.mermaid.detectors); // eslint-disable-line no-console + } -console.log('mindmapDb', mermaid.mermaidAPI.getConfig()); // eslint-disable-line no-console -// registerDiagram() - -// if (typeof document !== 'undefined') { -// /*! -// * Wait for document loaded before starting the execution -// */ -// window.addEventListener( -// 'load', -// () => { -// if (window.mermaid && typeof window.mermaid.detectors === 'object') { -// window.mermaid.detectors.push(mindmapDetector); -// console.log(window.mermaid.detectors); // eslint-disable-line no-console -// } -// }, -// false -// ); -// } + /*! + * Wait for document loaded before starting the execution. + */ + window.addEventListener( + 'load', + () => { + if (window.mermaid && typeof window.mermaid.detectors === 'object') { + window.mermaid.detectors.push({ id: 'mindmap', detector: mindmapDetector }); + // console.error(window.mermaid.detectors); // eslint-disable-line no-console + } + }, + false + ); +} diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index a54cfbefd0..eae576eece 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -26,12 +26,20 @@ export class Diagram { log.debug('Initialized diagram ' + this.type, cnf); } this.txt += '\n'; - this.parser.parser.yy.graphType = this.type; - this.parser.parser.yy.parseError = (str: string, hash: string) => { - const error = { str, hash }; - throw error; - }; - this.parse(this.txt, parseError); + try { + this.parser.parser.yy.graphType = this.type; + this.parser.parser.yy.parseError = (str: string, hash: string) => { + const error = { str, hash }; + throw error; + }; + } catch (error) { + log.error('error', error); + } + try { + this.parse(this.txt, parseError); + } catch (error) { + log.error('error', error); + } } // eslint-disable-next-line @typescript-eslint/ban-types diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 9a86c5b51d..3ade11b03e 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -27,18 +27,32 @@ export interface DiagramDefinition { } const diagrams: Record = {}; +const connectCallbacks: Record = {}; // TODO fix, eslint-disable-line @typescript-eslint/no-explicit-any +export interface Detectors { + [key: string]: DiagramDetector; +} + +export const registerDetector = (id: string, detector: DiagramDetector) => { + addDetector(id, detector); +}; export const registerDiagram = ( id: string, diagram: DiagramDefinition, - detector: DiagramDetector + callback: ( + _log: any, + _setLogLevel: any, + _getConfig: any, + _sanitizeText: any, + _setupGraphViewbox: any + ) => void ) => { if (diagrams[id]) { log.warn(`Diagram ${id} already registered.`); } diagrams[id] = diagram; - addDetector(id, detector); addStylesForDiagram(id, diagram.styles); + connectCallbacks[id] = callback; }; export const getDiagram = (name: string): DiagramDefinition => { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 33556f8bc8..1d63ba6c92 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -6,6 +6,15 @@ import { MermaidConfig } from './config.type'; import { log } from './logger'; import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; +import { addDetector } from './diagram-api/detectType'; +import { + registerDiagram, + DiagramDefinition, + setLogLevel, + getConfig, + setupGraphViewbox, + sanitizeText, +} from './diagram-api/diagramAPI'; import { isDetailedError } from './utils'; /** @@ -44,6 +53,10 @@ const init = function ( callback?: Function ) { try { + console.error('Detectors in init', mermaid.detectors); // eslint-disable-line + mermaid.detectors.forEach(({ id, detector }) => { + addDetector(id, detector); + }); initThrowsErrors(config, nodes, callback); } catch (e) { log.warn('Syntax Error rendering'); @@ -197,6 +210,22 @@ const parse = (txt: string) => { return mermaidAPI.parse(txt, mermaid.parseError); }; +const connectDiagram = ( + id: string, + diagram: DiagramDefinition, + callback: ( + _log: any, + _setLogLevel: any, + _getConfig: any, + _sanitizeText: any, + _setupGraphViewbox: any + ) => void +) => { + registerDiagram(id, diagram, callback); + // Todo move this connect call to after the diagram is actually loaded + callback(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); +}; + const mermaid: { startOnLoad: boolean; diagrams: any; @@ -212,6 +241,7 @@ const mermaid: { setParseErrorHandler: typeof setParseErrorHandler; // Array of functions to use for detecting diagram types detectors: Array; // eslint-disable-line @typescript-eslint/no-explicit-any + connectDiagram: (id: string, diagram: DiagramDefinition, callback: (id: string) => void) => void; } = { startOnLoad: true, diagrams: {}, @@ -225,6 +255,7 @@ const mermaid: { contentLoaded, setParseErrorHandler, detectors: [], + connectDiagram: connectDiagram, }; export default mermaid; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index d6b3170349..395e6fe2a5 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -72,7 +72,6 @@ const directiveWithoutOpen = * g-->h * ``` * @param {string} text The text defining the graph - * @param {any} config * @returns {object} The json object representing the init passed to mermaid.initialize() */ export const detectInit = function (text: string, config?: MermaidConfig): MermaidConfig { diff --git a/packages/mermaid-mindmap-detector/package.json b/packages/rm-mermaid-mindmap-detector/package.json similarity index 100% rename from packages/mermaid-mindmap-detector/package.json rename to packages/rm-mermaid-mindmap-detector/package.json diff --git a/packages/mermaid-mindmap-detector/src/mindmapDetector.ts b/packages/rm-mermaid-mindmap-detector/src/mindmapDetector.ts similarity index 100% rename from packages/mermaid-mindmap-detector/src/mindmapDetector.ts rename to packages/rm-mermaid-mindmap-detector/src/mindmapDetector.ts diff --git a/packages/mermaid-mindmap-detector/tsconfig.json b/packages/rm-mermaid-mindmap-detector/tsconfig.json similarity index 100% rename from packages/mermaid-mindmap-detector/tsconfig.json rename to packages/rm-mermaid-mindmap-detector/tsconfig.json From 98ddc95648c438775053786eb9b9e3bb1b83c91e Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 26 Sep 2022 08:02:12 +0200 Subject: [PATCH 0145/1038] Deoupling, inecting mermaid utilities in external diagram --- packages/mermaid/src/Diagram.ts | 1 + packages/mermaid/src/diagram-api/diagramAPI.spec.ts | 8 ++++++-- .../mermaid/src/diagrams/sequence/sequenceDiagram.spec.js | 7 ++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index eae576eece..dd57ef3b49 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -20,6 +20,7 @@ export class Diagram { this.db.clear?.(); this.renderer = diagram.renderer; this.parser = diagram.parser; + console.log('Setting db to !', this.db); this.parser.parser.yy = this.db; if (diagram.init) { diagram.init(cnf); diff --git a/packages/mermaid/src/diagram-api/diagramAPI.spec.ts b/packages/mermaid/src/diagram-api/diagramAPI.spec.ts index e0c7a283d4..6fbae5e8c2 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.spec.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.spec.ts @@ -1,5 +1,5 @@ -import { detectType } from './detectType'; -import { getDiagram, registerDiagram } from './diagramAPI'; +import { detectType, DiagramDetector } from './detectType'; +import { getDiagram, registerDiagram, registerDetector } from './diagramAPI'; import { addDiagrams } from './diagram-orchestration'; addDiagrams(); @@ -16,6 +16,10 @@ describe('DiagramAPI', () => { it('should handle diagram registrations', () => { expect(() => getDiagram('loki')).toThrow(); expect(() => detectType('loki diagram')).not.toThrow(); // TODO: #3391 + const detector: DiagramDetector = (str: string) => { + return str.match('loki') !== null; + }; + registerDetector('loki', detector); registerDiagram( 'loki', { diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index 5b3d9b05d9..d1ea4d1183 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -1795,13 +1795,14 @@ describe('when rendering a sequenceDiagram with directives', function () { diagram.renderer.bounds.init(); }); - it('should handle one actor, when theme is dark and logLevel is 1 DX1', function () { + it('should handle one actor, when theme is dark and logLevel is 1 DX1 (dfg1)', function () { const str = ` %%{init: { "theme": "dark", "logLevel": 1 } }%% sequenceDiagram %%{wrap}%% participant Alice `; + diagram = new Diagram(str); diagram.renderer.bounds.init(); mermaidAPI.parse(str); @@ -1819,14 +1820,14 @@ participant Alice models.lastActor().y + models.lastActor().height + mermaid.sequence.boxMargin ); }); - it('should handle one actor, when logLevel is 3', function () { + it('should handle one actor, when logLevel is 3 (dfg0)', function () { const str = ` %%{initialize: { "logLevel": 3 }}%% sequenceDiagram participant Alice `; - mermaidAPI.parse(str); + // diagram.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); From ebdec77c8880977b92dc37bf8cdee896554a82b8 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 26 Sep 2022 08:47:41 +0200 Subject: [PATCH 0146/1038] #3061 Fixing unit tests --- .vite/build.ts | 1 + package.json | 3 + packages/mermaid-mindmap/src/mindmap.spec.js | 12 +- packages/mermaid/src/Diagram.ts | 3 +- .../mermaid/src/diagram-api/detectType.ts | 2 + .../src/diagram-api/diagram-orchestration.ts | 53 +- .../mermaid/src/diagram-api/diagramAPI.ts | 2 +- .../diagrams/sequence/sequenceDiagram.spec.js | 2 +- packages/mermaid/src/mermaid.spec.ts | 3 +- pnpm-lock.yaml | 1375 ++++++++++++++--- 10 files changed, 1177 insertions(+), 279 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index fa57123ce2..dec58854cd 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -121,6 +121,7 @@ const main = async () => { if (watch) { build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' })); + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); } else { void main(); } diff --git a/package.json b/package.json index 5125344525..4f07b69865 100644 --- a/package.json +++ b/package.json @@ -67,16 +67,19 @@ }, "dependencies": { "@braintree/sanitize-url": "^6.0.0", + "@types/node": "^18.7.21", "d3": "^7.0.0", "dagre": "^0.8.5", "dagre-d3": "^0.6.4", "dompurify": "2.4.0", "fast-clone": "^1.5.13", "graphlib": "^2.1.8", + "jest": "^29.0.3", "khroma": "^2.0.0", "lodash": "^4.17.21", "moment-mini": "^2.24.0", "non-layered-tidy-tree-layout": "^2.0.2", + "rollup": "^2.79.1", "stylis": "^4.1.2" }, "devDependencies": { diff --git a/packages/mermaid-mindmap/src/mindmap.spec.js b/packages/mermaid-mindmap/src/mindmap.spec.js index e7909ef50b..b9e9abf6ec 100644 --- a/packages/mermaid-mindmap/src/mindmap.spec.js +++ b/packages/mermaid-mindmap/src/mindmap.spec.js @@ -1,6 +1,16 @@ import { parser as mindmap } from './parser/mindmap'; import * as mindmapDB from './mindmapDb'; -import { setLogLevel } from '../../diagram-api/diagramAPI'; +import { injectUtils } from './mermaidUtils'; +// Todo fix utils functions for tests +import { + log, + setLogLevel, + getConfig, + sanitizeText, + setupGraphViewBox, +} from '../../mermaid/src/diagram-api/diagramAPI'; + +injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox); describe('when parsing a mindmap ', function () { beforeEach(function () { diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index dd57ef3b49..a695db6f62 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -15,12 +15,13 @@ export class Diagram { this.type = detectType(txt, cnf); const diagram = getDiagram(this.type); log.debug('Type ' + this.type); + // console.log('Type ' + this.type); // Setup diagram this.db = diagram.db; this.db.clear?.(); this.renderer = diagram.renderer; this.parser = diagram.parser; - console.log('Setting db to !', this.db); + // console.log('Setting db to !', this.db); this.parser.parser.yy = this.db; if (diagram.init) { diagram.init(cnf); diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts index 817de5149d..12a4e587f2 100644 --- a/packages/mermaid/src/diagram-api/detectType.ts +++ b/packages/mermaid/src/diagram-api/detectType.ts @@ -34,6 +34,8 @@ const detectors: Record = {}; export const detectType = function (text: string, config?: MermaidConfig): string { text = text.replace(directive, '').replace(anyComment, '\n'); + // console.log(detectors); + for (const [key, detector] of Object.entries(detectors)) { if (detector(text, config)) { return key; diff --git a/packages/mermaid/src/diagram-api/diagram-orchestration.ts b/packages/mermaid/src/diagram-api/diagram-orchestration.ts index 4ad25837a0..0e28f113d8 100644 --- a/packages/mermaid/src/diagram-api/diagram-orchestration.ts +++ b/packages/mermaid/src/diagram-api/diagram-orchestration.ts @@ -1,4 +1,9 @@ -import { registerDiagram } from './diagramAPI'; +import { + registerDiagram, + registerDetector, + DiagramDefinition, + DiagramDetector, +} from './diagramAPI'; // // @ts-ignore: TODO Fix ts errors // import mindmapParser from '../diagrams/mindmap/parser/mindmap'; @@ -101,8 +106,17 @@ import { setConfig } from '../config'; import errorRenderer from '../diagrams/error/errorRenderer'; import errorStyles from '../diagrams/error/styles'; +const registerDiagramAndDetector = ( + id: string, + diagram: DiagramDefinition, + detector: DiagramDetector +) => { + registerDiagram(id, diagram); + registerDetector(id, detector); +}; + export const addDiagrams = () => { - registerDiagram( + registerDiagramAndDetector( 'error', // Special diagram with error messages but setup as a regular diagram { @@ -122,10 +136,11 @@ export const addDiagrams = () => { init: () => { // no op }, - }, - (text) => text.toLowerCase().trim() === 'error' + } ); - registerDiagram( + registerDetector('error', (text) => text.toLowerCase().trim() === 'error'); + + registerDiagramAndDetector( 'c4', { parser: c4Parser, @@ -138,7 +153,7 @@ export const addDiagrams = () => { }, c4Detector ); - registerDiagram( + registerDiagramAndDetector( 'class', { parser: classParser, @@ -155,7 +170,7 @@ export const addDiagrams = () => { }, classDetector ); - registerDiagram( + registerDiagramAndDetector( 'classDiagram', { parser: classParser, @@ -172,7 +187,7 @@ export const addDiagrams = () => { }, classDetectorV2 ); - registerDiagram( + registerDiagramAndDetector( 'er', { parser: erParser, @@ -182,7 +197,7 @@ export const addDiagrams = () => { }, erDetector ); - registerDiagram( + registerDiagramAndDetector( 'gantt', { parser: ganttParser, @@ -192,7 +207,7 @@ export const addDiagrams = () => { }, ganttDetector ); - registerDiagram( + registerDiagramAndDetector( 'info', { parser: infoParser, @@ -202,7 +217,7 @@ export const addDiagrams = () => { }, infoDetector ); - registerDiagram( + registerDiagramAndDetector( 'pie', { parser: pieParser, @@ -212,7 +227,7 @@ export const addDiagrams = () => { }, pieDetector ); - registerDiagram( + registerDiagramAndDetector( 'requirement', { parser: requirementParser, @@ -222,7 +237,7 @@ export const addDiagrams = () => { }, requirementDetector ); - registerDiagram( + registerDiagramAndDetector( 'sequence', { parser: sequenceParser, @@ -245,7 +260,7 @@ export const addDiagrams = () => { }, sequenceDetector ); - registerDiagram( + registerDiagramAndDetector( 'state', { parser: stateParser, @@ -262,7 +277,7 @@ export const addDiagrams = () => { }, stateDetector ); - registerDiagram( + registerDiagramAndDetector( 'stateDiagram', { parser: stateParser, @@ -279,7 +294,7 @@ export const addDiagrams = () => { }, stateDetectorV2 ); - registerDiagram( + registerDiagramAndDetector( 'journey', { parser: journeyParser, @@ -294,7 +309,7 @@ export const addDiagrams = () => { journeyDetector ); - registerDiagram( + registerDiagramAndDetector( 'flowchart', { parser: flowParser, @@ -314,7 +329,7 @@ export const addDiagrams = () => { }, flowDetector ); - registerDiagram( + registerDiagramAndDetector( 'flowchart-v2', { parser: flowParser, @@ -335,7 +350,7 @@ export const addDiagrams = () => { }, flowDetectorV2 ); - registerDiagram( + registerDiagramAndDetector( 'gitGraph', { parser: gitGraphParser, db: gitGraphDb, renderer: gitGraphRenderer, styles: gitGraphStyles }, gitGraphDetector diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 3ade11b03e..bd09aa0dd0 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -39,7 +39,7 @@ export const registerDetector = (id: string, detector: DiagramDetector) => { export const registerDiagram = ( id: string, diagram: DiagramDefinition, - callback: ( + callback?: ( _log: any, _setLogLevel: any, _getConfig: any, diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index d1ea4d1183..cea777e0b1 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -1827,7 +1827,7 @@ sequenceDiagram participant Alice `; - // diagram.parse(str); + diagram.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index 7ba8c9c049..df6439c825 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -1,5 +1,6 @@ import mermaid from './mermaid'; import { mermaidAPI } from './mermaidAPI'; +import './diagram-api/diagram-orchestration'; import { vi, describe, it, beforeEach, afterEach, expect } from 'vitest'; const spyOn = vi.spyOn; @@ -67,7 +68,7 @@ describe('when using mermaid and ', function () { expect(() => mermaid.parse('graph TQ;A--x|text including URL space|B;')).toThrow(); }); - it('should not throw for a valid sequenceDiagram definition', function () { + it('should not throw for a valid sequenceDiagram definition (mmds1)', function () { const text = 'sequenceDiagram\n' + 'Alice->Bob: Hello Bob, how are you?\n\n' + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a348520c78..3e6c7d05d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,7 @@ importers: '@types/express': ^4.17.13 '@types/jsdom': ^20.0.0 '@types/lodash': ^4.14.185 + '@types/node': ^18.7.21 '@types/prettier': ^2.7.0 '@types/stylis': ^4.0.2 '@typescript-eslint/eslint-plugin': ^5.37.0 @@ -46,6 +47,7 @@ importers: graphlib: ^2.1.8 husky: ^8.0.0 identity-obj-proxy: ^3.0.0 + jest: ^29.0.3 jison: ^0.4.18 jsdom: ^20.0.0 khroma: ^2.0.0 @@ -59,6 +61,7 @@ importers: prettier-plugin-jsdoc: ^0.4.2 remark: ^14.0.2 rimraf: ^3.0.2 + rollup: ^2.79.1 start-server-and-test: ^1.12.6 stylis: ^4.1.2 ts-node: ^10.9.1 @@ -68,16 +71,19 @@ importers: vitest: ^0.23.1 dependencies: '@braintree/sanitize-url': 6.0.0 + '@types/node': 18.7.21 d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 dompurify: 2.4.0 fast-clone: 1.5.13 graphlib: 2.1.8 + jest: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq khroma: 2.0.0 lodash: 4.17.21 moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 + rollup: 2.79.1 stylis: 4.1.2 devDependencies: '@applitools/eyes-cypress': 3.27.1 @@ -98,13 +104,13 @@ importers: concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0 + cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.0.3 documentation: 13.2.0 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jest: 27.0.4_qsk6uocri6piwezqjqcgw24zhq eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -122,7 +128,7 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_typescript@4.8.3 + ts-node: 10.9.1_ke6ijd35va4xbeayrnhu4zwagm typescript: 4.8.3 unist-util-flatmap: 1.0.0 vite: 3.1.3 @@ -270,7 +276,7 @@ importers: concurrently: 7.4.0 rimraf: 3.0.2 - packages/mermaid-mindmap-detector: + packages/rm-mermaid-mindmap-detector: specifiers: '@braintree/sanitize-url': ^6.0.0 concurrently: ^7.4.0 @@ -556,7 +562,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 - dev: true /@babel/compat-data/7.19.1: resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} @@ -585,7 +590,6 @@ packages: source-map: 0.5.7 transitivePeerDependencies: - supports-color - dev: true /@babel/generator/7.12.1: resolution: {integrity: sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==} @@ -593,7 +597,6 @@ packages: '@babel/types': 7.19.0 jsesc: 2.5.2 source-map: 0.5.7 - dev: true /@babel/generator/7.19.0: resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} @@ -602,7 +605,6 @@ packages: '@babel/types': 7.19.0 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - dev: true /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} @@ -680,7 +682,6 @@ packages: /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-explode-assignable-expression/7.18.6: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} @@ -695,14 +696,12 @@ packages: dependencies: '@babel/template': 7.18.10 '@babel/types': 7.19.0 - dev: true /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.19.0 - dev: true /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} @@ -716,7 +715,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.19.0 - dev: true /@babel/helper-module-transforms/7.19.0: resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} @@ -732,7 +730,6 @@ packages: '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-optimise-call-expression/7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} @@ -744,7 +741,6 @@ packages: /@babel/helper-plugin-utils/7.19.0: resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.12.3: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} @@ -779,7 +775,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.19.0 - dev: true /@babel/helper-skip-transparent-expression-wrappers/7.18.9: resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} @@ -793,17 +788,14 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.19.0 - dev: true /@babel/helper-string-parser/7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-option/7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} @@ -831,7 +823,6 @@ packages: '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -840,7 +831,6 @@ packages: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/parser/7.12.3: resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==} @@ -848,7 +838,6 @@ packages: hasBin: true dependencies: '@babel/types': 7.19.0 - dev: true /@babel/parser/7.19.1: resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} @@ -856,7 +845,6 @@ packages: hasBin: true dependencies: '@babel/types': 7.19.0 - dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} @@ -1156,7 +1144,14 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true + + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -1165,7 +1160,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.12.3: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -1272,7 +1266,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -1281,7 +1274,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} @@ -1291,7 +1283,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -1300,7 +1291,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -1309,7 +1299,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -1318,7 +1307,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -1327,7 +1315,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -1336,7 +1323,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -1345,7 +1331,6 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-pipeline-operator/7.18.6_@babel+core@7.12.3: resolution: {integrity: sha512-pFtIdQomJtkTHWcNsGXhjJ5YUkL+AxJnP4G+Ol85UO6uT2fpHTPYLLE5bBeRA9cxf25qa/VKsJ3Fi67Gyqe3rA==} @@ -1385,7 +1370,15 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - dev: true + + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.19.0 /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.12.3: resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} @@ -1950,7 +1943,6 @@ packages: '@babel/code-frame': 7.18.6 '@babel/parser': 7.19.1 '@babel/types': 7.19.0 - dev: true /@babel/traverse/7.19.1: resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} @@ -1968,7 +1960,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/types/7.19.0: resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} @@ -1977,11 +1968,9 @@ packages: '@babel/helper-string-parser': 7.18.10 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - dev: true /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true /@braintree/sanitize-url/6.0.0: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} @@ -2161,7 +2150,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true /@cypress/request/2.88.10: resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==} @@ -2281,10 +2269,219 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@istanbuljs/load-nyc-config/1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + /@istanbuljs/schema/0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - dev: true + + /@jest/console/29.0.3: + resolution: {integrity: sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + chalk: 4.1.2 + jest-message-util: 29.0.3 + jest-util: 29.0.3 + slash: 3.0.0 + + /@jest/core/29.0.3_ts-node@10.9.1: + resolution: {integrity: sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.0.3 + '@jest/reporters': 29.0.3 + '@jest/test-result': 29.0.3 + '@jest/transform': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.4.0 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-changed-files: 29.0.0 + jest-config: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq + jest-haste-map: 29.0.3 + jest-message-util: 29.0.3 + jest-regex-util: 29.0.0 + jest-resolve: 29.0.3 + jest-resolve-dependencies: 29.0.3 + jest-runner: 29.0.3 + jest-runtime: 29.0.3 + jest-snapshot: 29.0.3 + jest-util: 29.0.3 + jest-validate: 29.0.3 + jest-watcher: 29.0.3 + micromatch: 4.0.5 + pretty-format: 29.0.3 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + + /@jest/environment/29.0.3: + resolution: {integrity: sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + jest-mock: 29.0.3 + + /@jest/expect-utils/29.0.3: + resolution: {integrity: sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.0.0 + + /@jest/expect/29.0.3: + resolution: {integrity: sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.0.3 + jest-snapshot: 29.0.3 + transitivePeerDependencies: + - supports-color + + /@jest/fake-timers/29.0.3: + resolution: {integrity: sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.0.3 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 18.7.21 + jest-message-util: 29.0.3 + jest-mock: 29.0.3 + jest-util: 29.0.3 + + /@jest/globals/29.0.3: + resolution: {integrity: sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.0.3 + '@jest/expect': 29.0.3 + '@jest/types': 29.0.3 + jest-mock: 29.0.3 + transitivePeerDependencies: + - supports-color + + /@jest/reporters/29.0.3: + resolution: {integrity: sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.0.3 + '@jest/test-result': 29.0.3 + '@jest/transform': 29.0.3 + '@jest/types': 29.0.3 + '@jridgewell/trace-mapping': 0.3.15 + '@types/node': 18.7.21 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.0 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-message-util: 29.0.3 + jest-util: 29.0.3 + jest-worker: 29.0.3 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + terminal-link: 2.1.1 + v8-to-istanbul: 9.0.1 + transitivePeerDependencies: + - supports-color + + /@jest/schemas/29.0.0: + resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.24.43 + + /@jest/source-map/29.0.0: + resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.15 + callsites: 3.1.0 + graceful-fs: 4.2.10 + + /@jest/test-result/29.0.3: + resolution: {integrity: sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.0.3 + '@jest/types': 29.0.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + + /@jest/test-sequencer/29.0.3: + resolution: {integrity: sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.0.3 + graceful-fs: 4.2.10 + jest-haste-map: 29.0.3 + slash: 3.0.0 + + /@jest/transform/29.0.3: + resolution: {integrity: sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.12.3 + '@jest/types': 29.0.3 + '@jridgewell/trace-mapping': 0.3.15 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.8.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 29.0.3 + jest-regex-util: 29.0.0 + jest-util: 29.0.3 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + /@jest/types/29.0.3: + resolution: {integrity: sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.0.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.7.21 + '@types/yargs': 17.0.13 + chalk: 4.1.2 /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -2293,35 +2490,29 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/trace-mapping': 0.3.15 - dev: true /@jridgewell/resolve-uri/3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array/1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true /@jridgewell/trace-mapping/0.3.15: resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2362,11 +2553,24 @@ packages: resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true + /@sinclair/typebox/0.24.43: + resolution: {integrity: sha512-1orQTvtazZmsPeBroJjysvsOQCYV2yjWlebkSY38pl5vr2tdLjEJ+LoxITlGNZaH2RE19WlAwQMkH/7C14wLfw==} + /@sindresorhus/is/4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} dev: true + /@sinonjs/commons/1.8.3: + resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} + dependencies: + type-detect: 4.0.8 + + /@sinonjs/fake-timers/9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + dependencies: + '@sinonjs/commons': 1.8.3 + /@szmarczak/http-timer/4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -2386,25 +2590,46 @@ packages: /@tsconfig/node10/1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true /@tsconfig/node12/1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true /@tsconfig/node14/1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true /@tsconfig/node16/1.0.3: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} - dev: true + + /@types/babel__core/7.1.19: + resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} + dependencies: + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 + '@types/babel__generator': 7.6.4 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.18.2 + + /@types/babel__generator/7.6.4: + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} + dependencies: + '@babel/types': 7.19.0 + + /@types/babel__template/7.4.1: + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} + dependencies: + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 + + /@types/babel__traverse/7.18.2: + resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==} + dependencies: + '@babel/types': 7.19.0 /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.7.18 + '@types/node': 18.7.21 dev: true /@types/cacheable-request/6.0.2: @@ -2412,7 +2637,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 16.11.59 + '@types/node': 18.7.21 '@types/responselike': 1.0.0 dev: true @@ -2429,7 +2654,7 @@ packages: /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.7.18 + '@types/node': 18.7.21 dev: true /@types/d3-array/3.0.3: @@ -2637,7 +2862,7 @@ packages: /@types/express-serve-static-core/4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} dependencies: - '@types/node': 18.7.18 + '@types/node': 18.7.21 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -2655,18 +2880,32 @@ packages: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true + /@types/graceful-fs/4.1.5: + resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} + dependencies: + '@types/node': 18.7.21 + /@types/http-cache-semantics/4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: true + + /@types/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + + /@types/istanbul-reports/3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 /@types/jsdom/20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 18.7.18 + '@types/node': 18.7.21 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -2678,7 +2917,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 16.11.59 + '@types/node': 18.7.21 dev: true /@types/lodash/4.14.185: @@ -2711,9 +2950,8 @@ packages: resolution: {integrity: sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==} dev: true - /@types/node/18.7.18: - resolution: {integrity: sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==} - dev: true + /@types/node/18.7.21: + resolution: {integrity: sha512-rLFzK5bhM0YPyCoTC8bolBjMk7bwnZ8qeZUBslBfjZQou2ssJdWslx9CZ8DGM+Dx7QXQiiTVZ/6QO6kwtHkZCA==} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2725,7 +2963,6 @@ packages: /@types/prettier/2.7.0: resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==} - dev: true /@types/qs/6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} @@ -2738,14 +2975,14 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 16.11.59 + '@types/node': 18.7.21 dev: true /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.7.18 + '@types/node': 18.7.21 dev: true /@types/sinonjs__fake-timers/8.1.1: @@ -2756,6 +2993,9 @@ packages: resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} dev: true + /@types/stack-utils/2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + /@types/stylis/4.0.2: resolution: {integrity: sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==} dev: true @@ -2772,11 +3012,19 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true + /@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + + /@types/yargs/17.0.13: + resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} + dependencies: + '@types/yargs-parser': 21.0.0 + /@types/yauzl/2.10.0: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 14.18.29 + '@types/node': 18.7.21 dev: true optional: true @@ -3039,7 +3287,6 @@ packages: /acorn-walk/8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - dev: true /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -3051,7 +3298,6 @@ packages: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /add-stream/1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} @@ -3119,7 +3365,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - dev: true /ansi-html/0.0.7: resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} @@ -3135,7 +3380,6 @@ packages: /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true /ansi-regex/6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} @@ -3152,14 +3396,16 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: true + + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} /ansi-styles/6.1.1: resolution: {integrity: sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==} @@ -3172,7 +3418,6 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /app-path/3.3.0: resolution: {integrity: sha512-EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA==} @@ -3194,13 +3439,11 @@ packages: /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - dev: true /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -3319,12 +3562,50 @@ packages: - debug dev: true + /babel-jest/29.0.3_@babel+core@7.12.3: + resolution: {integrity: sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.12.3 + '@jest/transform': 29.0.3 + '@types/babel__core': 7.1.19 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.0.2_@babel+core@7.12.3 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + /babel-plugin-dynamic-import-node/2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.4 dev: true + /babel-plugin-istanbul/6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.19.0 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.0 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + /babel-plugin-jest-hoist/29.0.2: + resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.19.0 + '@types/babel__core': 7.1.19 + '@types/babel__traverse': 7.18.2 + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.12.3: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -3361,26 +3642,54 @@ packages: - supports-color dev: true - /babelify/10.0.0_@babel+core@7.12.3: - resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==} - engines: {node: '>=6.9.0'} + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.12.3: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.3 - dev: true - - /bail/1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: true + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 - /bail/2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + /babel-preset-jest/29.0.2_@babel+core@7.12.3: + resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + babel-plugin-jest-hoist: 29.0.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 + + /babelify/10.0.0_@babel+core@7.12.3: + resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + dev: true + + /bail/1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + dev: true + + /bail/2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: true /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base/0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} @@ -3456,7 +3765,6 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /braces/2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} @@ -3481,7 +3789,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} @@ -3504,6 +3811,11 @@ packages: update-browserslist-db: 1.0.9_browserslist@4.21.4 dev: true + /bser/2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + /buffer-crc32/0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true @@ -3515,7 +3827,6 @@ packages: /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true /buffer-shims/1.0.0: resolution: {integrity: sha512-Zy8ZXMyxIT6RMTeY7OP/bDndfj6bwCan7SS98CEndS6deHwWPpseeHlwarNcBim+etXnF9HBc1non5JgDaJU1g==} @@ -3608,7 +3919,6 @@ packages: /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true /camelcase-keys/6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} @@ -3622,7 +3932,10 @@ packages: /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - dev: true + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} /caniuse-lite/1.0.30001409: resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} @@ -3667,7 +3980,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk/3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -3683,7 +3995,10 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true + + /char-regex/1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} /character-entities-html4/1.1.4: resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} @@ -3731,7 +4046,9 @@ packages: /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} - dev: true + + /cjs-module-lexer/1.2.2: + resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} /cjson/0.3.0: resolution: {integrity: sha512-bBRQcCIHzI1IVH59fR0bwGrFmi3Btb/JNwM/n401i1DnYgWndpsUBiQRAddLflkZage20A2d25OAWZZk0vBRlA==} @@ -3801,7 +4118,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-buffer/1.0.0: resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} @@ -3831,10 +4147,17 @@ packages: readable-stream: 2.3.7 dev: true + /co/4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + /collapse-white-space/1.0.6: resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} dev: true + /collect-v8-coverage/1.0.1: + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} + /collection-visit/1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} engines: {node: '>=0.10.0'} @@ -3847,22 +4170,18 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: true /color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true /colorette/2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} @@ -3922,7 +4241,6 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concat-stream/1.5.2: resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==} @@ -4163,7 +4481,6 @@ packages: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: safe-buffer: 5.1.2 - dev: true /cookie-signature/1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -4233,7 +4550,6 @@ packages: /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true /cross-spawn/6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} @@ -4253,7 +4569,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /css-tree/1.0.0-alpha.39: resolution: {integrity: sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==} @@ -4295,6 +4610,23 @@ packages: - jest dev: true + /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@29.0.3: + resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} + engines: {node: '>=8'} + peerDependencies: + cypress: ^4.5.0 + dependencies: + chalk: 2.4.2 + cypress: 10.8.0 + fs-extra: 7.0.1 + glob: 7.2.3 + jest-image-snapshot: 4.2.0_jest@29.0.3 + pkg-dir: 3.0.0 + term-img: 4.1.0 + transitivePeerDependencies: + - jest + dev: true + /cypress/10.8.0: resolution: {integrity: sha512-QVse0dnLm018hgti2enKMVZR9qbIO488YGX06nH5j3Dg1isL38DwrBtyrax02CANU6y8F4EJUuyW6HJKw1jsFA==} engines: {node: '>=12.0.0'} @@ -4708,7 +5040,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /debug/4.3.4_supports-color@8.1.1: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -4758,6 +5089,9 @@ packages: mimic-response: 3.1.0 dev: true + /dedent/0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + /deep-eql/3.0.1: resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} engines: {node: '>=0.12'} @@ -4772,7 +5106,6 @@ packages: /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} - dev: true /defer-to-connect/2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} @@ -4868,7 +5201,6 @@ packages: /detect-newline/3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - dev: true /detective/5.2.1: resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} @@ -4880,10 +5212,13 @@ packages: minimist: 1.2.6 dev: true + /diff-sequences/29.0.0: + resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dev: true /diff/5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} @@ -5081,13 +5416,16 @@ packages: resolution: {integrity: sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A==} dev: true + /emittery/0.10.2: + resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + engines: {node: '>=12'} + /emoji-regex/6.1.1: resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} dev: true /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true /emoji-regex/9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -5120,7 +5458,6 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - dev: true /error/7.2.1: resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==} @@ -5351,7 +5688,6 @@ packages: /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-html/1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -5360,7 +5696,10 @@ packages: /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true + + /escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -5429,6 +5768,28 @@ packages: htmlparser2: 8.0.1 dev: true + /eslint-plugin-jest/27.0.4_qsk6uocri6piwezqjqcgw24zhq: + resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry + '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + eslint: 8.23.1 + jest: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5591,7 +5952,6 @@ packages: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - dev: true /esquery/1.4.0: resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} @@ -5699,7 +6059,6 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true /execa/6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} @@ -5723,6 +6082,10 @@ packages: pify: 2.3.0 dev: true + /exit/0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + /expand-brackets/2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -5738,6 +6101,16 @@ packages: - supports-color dev: true + /expect/29.0.3: + resolution: {integrity: sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.0.3 + jest-get-type: 29.0.0 + jest-matcher-utils: 29.0.3 + jest-message-util: 29.0.3 + jest-util: 29.0.3 + /express/4.18.1: resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} engines: {node: '>= 0.10.0'} @@ -5852,7 +6225,6 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -5871,6 +6243,11 @@ packages: websocket-driver: 0.7.4 dev: true + /fb-watchman/2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + /fd-slicer/1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: @@ -5911,7 +6288,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /filter-obj/1.1.0: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} @@ -5953,7 +6329,6 @@ packages: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -6097,14 +6472,12 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /ftp/0.3.10: @@ -6117,17 +6490,14 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-func-name/2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} @@ -6141,6 +6511,10 @@ packages: has-symbols: 1.0.3 dev: true + /get-package-type/0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + /get-pkg-repo/4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -6179,7 +6553,6 @@ packages: /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: true /get-uri/3.0.2: resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} @@ -6316,7 +6689,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /global-dirs/0.1.1: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} @@ -6339,7 +6711,6 @@ packages: /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true /globals/13.17.0: resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} @@ -6394,7 +6765,6 @@ packages: /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -6452,12 +6822,10 @@ packages: /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} @@ -6506,7 +6874,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true /hast-util-is-element/1.1.0: resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} @@ -6566,7 +6933,6 @@ packages: /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true /html-void-elements/1.0.5: resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} @@ -6666,7 +7032,6 @@ packages: /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true /human-signals/3.0.1: resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} @@ -6722,10 +7087,17 @@ packages: resolve-from: 4.0.0 dev: true + /import-local/3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true /indent-string/4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} @@ -6737,11 +7109,9 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -6810,7 +7180,6 @@ packages: /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} @@ -6839,7 +7208,6 @@ packages: resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 - dev: true /is-data-descriptor/0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} @@ -6897,13 +7265,16 @@ packages: /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true /is-fullwidth-code-point/4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} dev: true + /is-generator-fn/2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + /is-glob/3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} engines: {node: '>=0.10.0'} @@ -6945,7 +7316,6 @@ packages: /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-obj/2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} @@ -6999,7 +7369,6 @@ packages: /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true /is-stream/3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} @@ -7061,70 +7430,488 @@ packages: /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject/2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject/3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /isstream/0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true - /isobject/2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + + /istanbul-lib-instrument/5.2.0: + resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.12.3 + '@babel/parser': 7.19.1 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + + /istanbul-lib-source-maps/4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + /istanbul-reports/3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + + /iterm2-version/4.2.0: + resolution: {integrity: sha512-IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ==} + engines: {node: '>=8'} + dependencies: + app-path: 3.3.0 + plist: 3.0.6 + dev: true + + /jest-changed-files/29.0.0: + resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + p-limit: 3.1.0 + + /jest-circus/29.0.3: + resolution: {integrity: sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.0.3 + '@jest/expect': 29.0.3 + '@jest/test-result': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 29.0.3 + jest-matcher-utils: 29.0.3 + jest-message-util: 29.0.3 + jest-runtime: 29.0.3 + jest-snapshot: 29.0.3 + jest-util: 29.0.3 + p-limit: 3.1.0 + pretty-format: 29.0.3 + slash: 3.0.0 + stack-utils: 2.0.5 + transitivePeerDependencies: + - supports-color + + /jest-cli/29.0.3_pliq7kienpvt4xqyxfwljzmzmq: + resolution: {integrity: sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.0.3_ts-node@10.9.1 + '@jest/test-result': 29.0.3 + '@jest/types': 29.0.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + jest-config: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq + jest-util: 29.0.3 + jest-validate: 29.0.3 + prompts: 2.4.2 + yargs: 17.5.1 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + + /jest-config/29.0.3_pliq7kienpvt4xqyxfwljzmzmq: + resolution: {integrity: sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.12.3 + '@jest/test-sequencer': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + babel-jest: 29.0.3_@babel+core@7.12.3 + chalk: 4.1.2 + ci-info: 3.4.0 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-circus: 29.0.3 + jest-environment-node: 29.0.3 + jest-get-type: 29.0.0 + jest-regex-util: 29.0.0 + jest-resolve: 29.0.3 + jest-runner: 29.0.3 + jest-util: 29.0.3 + jest-validate: 29.0.3 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.0.3 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1_ke6ijd35va4xbeayrnhu4zwagm + transitivePeerDependencies: + - supports-color + + /jest-diff/29.0.3: + resolution: {integrity: sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.0.0 + jest-get-type: 29.0.0 + pretty-format: 29.0.3 + + /jest-docblock/29.0.0: + resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + + /jest-each/29.0.3: + resolution: {integrity: sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.0.3 + chalk: 4.1.2 + jest-get-type: 29.0.0 + jest-util: 29.0.3 + pretty-format: 29.0.3 + + /jest-environment-node/29.0.3: + resolution: {integrity: sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.0.3 + '@jest/fake-timers': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + jest-mock: 29.0.3 + jest-util: 29.0.3 + + /jest-get-type/29.0.0: + resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + /jest-haste-map/29.0.3: + resolution: {integrity: sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.0.3 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.7.21 + anymatch: 3.1.2 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 29.0.0 + jest-util: 29.0.3 + jest-worker: 29.0.3 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + + /jest-image-snapshot/4.2.0: + resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} + engines: {node: '>= 10.14.2'} + peerDependencies: + jest: '>=20 <=26' + dependencies: + chalk: 1.1.3 + get-stdin: 5.0.1 + glur: 1.1.2 + lodash: 4.17.21 + mkdirp: 0.5.6 + pixelmatch: 5.3.0 + pngjs: 3.4.0 + rimraf: 2.7.1 + ssim.js: 3.5.0 + dev: true + + /jest-image-snapshot/4.2.0_jest@29.0.3: + resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} + engines: {node: '>= 10.14.2'} + peerDependencies: + jest: '>=20 <=26' + dependencies: + chalk: 1.1.3 + get-stdin: 5.0.1 + glur: 1.1.2 + jest: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq + lodash: 4.17.21 + mkdirp: 0.5.6 + pixelmatch: 5.3.0 + pngjs: 3.4.0 + rimraf: 2.7.1 + ssim.js: 3.5.0 + dev: true + + /jest-leak-detector/29.0.3: + resolution: {integrity: sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.0.0 + pretty-format: 29.0.3 + + /jest-matcher-utils/29.0.3: + resolution: {integrity: sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.0.3 + jest-get-type: 29.0.0 + pretty-format: 29.0.3 + + /jest-message-util/29.0.3: + resolution: {integrity: sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 29.0.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 29.0.3 + slash: 3.0.0 + stack-utils: 2.0.5 + + /jest-mock/29.0.3: + resolution: {integrity: sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + + /jest-pnp-resolver/1.2.2_jest-resolve@29.0.3: + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.0.3 + + /jest-regex-util/29.0.0: + resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + /jest-resolve-dependencies/29.0.3: + resolution: {integrity: sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.0.0 + jest-snapshot: 29.0.3 + transitivePeerDependencies: + - supports-color + + /jest-resolve/29.0.3: + resolution: {integrity: sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-haste-map: 29.0.3 + jest-pnp-resolver: 1.2.2_jest-resolve@29.0.3 + jest-util: 29.0.3 + jest-validate: 29.0.3 + resolve: 1.22.1 + resolve.exports: 1.1.0 + slash: 3.0.0 + + /jest-runner/29.0.3: + resolution: {integrity: sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - isarray: 1.0.0 - dev: true + '@jest/console': 29.0.3 + '@jest/environment': 29.0.3 + '@jest/test-result': 29.0.3 + '@jest/transform': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + chalk: 4.1.2 + emittery: 0.10.2 + graceful-fs: 4.2.10 + jest-docblock: 29.0.0 + jest-environment-node: 29.0.3 + jest-haste-map: 29.0.3 + jest-leak-detector: 29.0.3 + jest-message-util: 29.0.3 + jest-resolve: 29.0.3 + jest-runtime: 29.0.3 + jest-util: 29.0.3 + jest-watcher: 29.0.3 + jest-worker: 29.0.3 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color - /isobject/3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true + /jest-runtime/29.0.3: + resolution: {integrity: sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.0.3 + '@jest/fake-timers': 29.0.3 + '@jest/globals': 29.0.3 + '@jest/source-map': 29.0.0 + '@jest/test-result': 29.0.3 + '@jest/transform': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + chalk: 4.1.2 + cjs-module-lexer: 1.2.2 + collect-v8-coverage: 1.0.1 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-haste-map: 29.0.3 + jest-message-util: 29.0.3 + jest-mock: 29.0.3 + jest-regex-util: 29.0.0 + jest-resolve: 29.0.3 + jest-snapshot: 29.0.3 + jest-util: 29.0.3 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color - /isstream/0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true + /jest-snapshot/29.0.3: + resolution: {integrity: sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.12.3 + '@babel/generator': 7.19.0 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + '@jest/expect-utils': 29.0.3 + '@jest/transform': 29.0.3 + '@jest/types': 29.0.3 + '@types/babel__traverse': 7.18.2 + '@types/prettier': 2.7.0 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 + chalk: 4.1.2 + expect: 29.0.3 + graceful-fs: 4.2.10 + jest-diff: 29.0.3 + jest-get-type: 29.0.0 + jest-haste-map: 29.0.3 + jest-matcher-utils: 29.0.3 + jest-message-util: 29.0.3 + jest-util: 29.0.3 + natural-compare: 1.4.0 + pretty-format: 29.0.3 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color - /istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - dev: true + /jest-util/29.0.3: + resolution: {integrity: sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + chalk: 4.1.2 + ci-info: 3.4.0 + graceful-fs: 4.2.10 + picomatch: 2.3.1 - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} + /jest-validate/29.0.3: + resolution: {integrity: sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true + '@jest/types': 29.0.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.0.0 + leven: 3.1.0 + pretty-format: 29.0.3 - /istanbul-reports/3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} - engines: {node: '>=8'} + /jest-watcher/29.0.3: + resolution: {integrity: sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true + '@jest/test-result': 29.0.3 + '@jest/types': 29.0.3 + '@types/node': 18.7.21 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.10.2 + jest-util: 29.0.3 + string-length: 4.0.2 - /iterm2-version/4.2.0: - resolution: {integrity: sha512-IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ==} - engines: {node: '>=8'} + /jest-worker/29.0.3: + resolution: {integrity: sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - app-path: 3.3.0 - plist: 3.0.6 - dev: true + '@types/node': 18.7.21 + merge-stream: 2.0.0 + supports-color: 8.1.1 - /jest-image-snapshot/4.2.0: - resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} - engines: {node: '>= 10.14.2'} + /jest/29.0.3_pliq7kienpvt4xqyxfwljzmzmq: + resolution: {integrity: sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true peerDependencies: - jest: '>=20 <=26' + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: - chalk: 1.1.3 - get-stdin: 5.0.1 - glur: 1.1.2 - lodash: 4.17.21 - mkdirp: 0.5.6 - pixelmatch: 5.3.0 - pngjs: 3.4.0 - rimraf: 2.7.1 - ssim.js: 3.5.0 - dev: true + '@jest/core': 29.0.3_ts-node@10.9.1 + '@jest/types': 29.0.3 + import-local: 3.1.0 + jest-cli: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node /jison-lex/0.3.4: resolution: {integrity: sha512-EBh5wrXhls1cUwROd5DcDHR1sG7CdsCFSqY1027+YA1RGxz+BX2TDLAhdsQf40YEtFDGoiO0Qm8PpnBl2EzDJw==} @@ -7174,7 +7961,6 @@ packages: /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml/3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -7182,7 +7968,6 @@ packages: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -7251,7 +8036,6 @@ packages: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: true /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -7263,7 +8047,6 @@ packages: /json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -7289,7 +8072,6 @@ packages: resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} engines: {node: '>=6'} hasBin: true - dev: true /jsonc-parser/3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -7377,6 +8159,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /kleur/3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + /kleur/4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -7420,6 +8206,10 @@ packages: flush-write-stream: 1.1.1 dev: true + /leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + /levn/0.3.0: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} engines: {node: '>= 0.8.0'} @@ -7447,7 +8237,6 @@ packages: /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true /lint-staged/13.0.3: resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} @@ -7551,7 +8340,6 @@ packages: engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - dev: true /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -7641,18 +8429,20 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: semver: 6.3.0 - dev: true /make-error/1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true + + /makeerror/1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 /map-cache/0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} @@ -7822,7 +8612,6 @@ packages: /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -8046,7 +8835,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -8075,7 +8863,6 @@ packages: /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: true /mimic-fn/4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} @@ -8101,7 +8888,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} @@ -8185,7 +8971,6 @@ packages: /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -8218,7 +9003,6 @@ packages: /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true /negotiator/0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -8250,6 +9034,9 @@ packages: whatwg-url: 5.0.0 dev: true + /node-int64/0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true @@ -8295,7 +9082,6 @@ packages: /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-url/6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} @@ -8321,7 +9107,6 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 - dev: true /npm-run-path/5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} @@ -8396,14 +9181,12 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime/5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - dev: true /onetime/6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} @@ -8473,14 +9256,12 @@ packages: engines: {node: '>=6'} dependencies: p-try: 2.2.0 - dev: true /p-limit/3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - dev: true /p-locate/2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} @@ -8501,7 +9282,6 @@ packages: engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - dev: true /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -8525,7 +9305,6 @@ packages: /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - dev: true /pac-proxy-agent/5.0.0: resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==} @@ -8611,7 +9390,6 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true /parse-path/4.0.4: resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==} @@ -8667,12 +9445,10 @@ packages: /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: true /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key/2.0.1: resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} @@ -8682,7 +9458,6 @@ packages: /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-key/4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} @@ -8691,7 +9466,6 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true /path-root-regex/0.1.2: resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} @@ -8746,7 +9520,6 @@ packages: /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pidtree/0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} @@ -8769,6 +9542,10 @@ packages: engines: {node: '>=10'} dev: true + /pirates/4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + /pixelmatch/5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true @@ -8783,6 +9560,12 @@ packages: find-up: 3.0.0 dev: true + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + /plist/3.0.6: resolution: {integrity: sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==} engines: {node: '>=6'} @@ -8858,6 +9641,14 @@ packages: engines: {node: '>=6'} dev: true + /pretty-format/29.0.3: + resolution: {integrity: sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.0.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + /process-nextick-args/1.0.7: resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} dev: true @@ -8866,6 +9657,13 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true + /prompts/2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + /property-information/4.2.0: resolution: {integrity: sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==} dependencies: @@ -9026,6 +9824,9 @@ packages: unpipe: 1.0.0 dev: true + /react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + /read-pkg-up/3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} @@ -9378,7 +10179,6 @@ packages: /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - dev: true /require-from-string/2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -9397,6 +10197,12 @@ packages: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: true + /resolve-cwd/3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -9405,7 +10211,6 @@ packages: /resolve-from/5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - dev: true /resolve-global/1.0.0: resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} @@ -9426,6 +10231,10 @@ packages: deprecated: https://github.com/lydell/resolve-url#deprecated dev: true + /resolve.exports/1.1.0: + resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + engines: {node: '>=10'} + /resolve/1.1.7: resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} dev: true @@ -9437,7 +10246,6 @@ packages: is-core-module: 2.10.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /responselike/2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} @@ -9493,6 +10301,14 @@ packages: fsevents: 2.3.2 dev: true + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: false + /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -9518,7 +10334,6 @@ packages: /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -9554,12 +10369,10 @@ packages: /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true - dev: true /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - dev: true /semver/7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} @@ -9567,7 +10380,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -9632,7 +10444,6 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex/1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} @@ -9642,7 +10453,6 @@ packages: /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /shell-quote/1.7.3: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} @@ -9658,7 +10468,6 @@ packages: /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true /sirv/2.0.2: resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} @@ -9669,10 +10478,12 @@ packages: totalist: 3.0.0 dev: true + /sisteransi/1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dev: true /slash/4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} @@ -9777,6 +10588,12 @@ packages: urix: 0.1.0 dev: true + /source-map-support/0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + /source-map-url/0.4.1: resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated @@ -9794,12 +10611,10 @@ packages: /source-map/0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} - dev: true /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: true /space-separated-tokens/1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -9863,7 +10678,6 @@ packages: /sprintf-js/1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true /sshpk/1.17.0: resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} @@ -9885,6 +10699,12 @@ packages: resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==} dev: true + /stack-utils/2.0.5: + resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + /standard-version/9.5.0: resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} engines: {node: '>=10'} @@ -9973,6 +10793,13 @@ packages: engines: {node: '>=0.6.19'} dev: true + /string-length/4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + /string-template/0.2.1: resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} dev: true @@ -9984,7 +10811,6 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true /string-width/5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -10036,7 +10862,6 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: true /strip-ansi/7.0.1: resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} @@ -10050,6 +10875,10 @@ packages: engines: {node: '>=4'} dev: true + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + /strip-eof/1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -10058,7 +10887,6 @@ packages: /strip-final-newline/2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - dev: true /strip-final-newline/3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} @@ -10080,7 +10908,6 @@ packages: /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true /strip-literal/0.4.2: resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} @@ -10108,7 +10935,6 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true /supports-color/6.1.0: resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} @@ -10122,19 +10948,23 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true /supports-color/8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - dev: true + + /supports-hyperlinks/2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: true /symbol-tree/3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -10148,6 +10978,13 @@ packages: iterm2-version: 4.2.0 dev: true + /terminal-link/2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -10155,7 +10992,6 @@ packages: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - dev: true /text-extensions/1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} @@ -10232,6 +11068,9 @@ packages: rimraf: 3.0.2 dev: true + /tmpl/1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + /to-absolute-glob/2.0.2: resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} engines: {node: '>=0.10.0'} @@ -10243,7 +11082,6 @@ packages: /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: true /to-object-path/0.3.0: resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} @@ -10265,7 +11103,6 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /to-regex/3.0.2: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} @@ -10384,6 +11221,36 @@ packages: yn: 3.1.1 dev: true + /ts-node/10.9.1_ke6ijd35va4xbeayrnhu4zwagm: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.7.21 + acorn: 8.8.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.8.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + /ts-node/10.9.1_typescript@4.8.3: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -10464,7 +11331,6 @@ packages: /type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dev: true /type-fest/0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} @@ -10479,7 +11345,6 @@ packages: /type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: true /type-fest/0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} @@ -10507,7 +11372,6 @@ packages: resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /uglify-js/3.17.1: resolution: {integrity: sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q==} @@ -10776,7 +11640,6 @@ packages: /v8-compile-cache-lib/3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} @@ -10785,7 +11648,6 @@ packages: '@jridgewell/trace-mapping': 0.3.15 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 - dev: true /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -10982,7 +11844,7 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.7.18 + '@types/node': 18.7.21 '@vitest/ui': 0.23.4 chai: 4.3.6 debug: 4.3.4 @@ -11070,6 +11932,11 @@ packages: - debug dev: true + /walker/1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + /webdriver/7.16.11: resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} engines: {node: '>=12.0.0'} @@ -11164,7 +12031,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} @@ -11191,11 +12057,16 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true + + /write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 /ws/7.4.6: resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} @@ -11270,7 +12141,6 @@ packages: /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - dev: true /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -11278,7 +12148,6 @@ packages: /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true /yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} @@ -11306,7 +12175,6 @@ packages: /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: true /yargs/15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} @@ -11362,7 +12230,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true /yauzl/2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} @@ -11374,12 +12241,10 @@ packages: /yn/3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - dev: true /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - dev: true /zwitch/2.0.2: resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} From 62e127f1b84f0a1684cf4f2e115440f635a18814 Mon Sep 17 00:00:00 2001 From: mmorel-35 Date: Mon, 26 Sep 2022 07:15:07 +0000 Subject: [PATCH 0147/1038] chore: update browsers list --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f21b8ba5b0..4a3f9237d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2992,9 +2992,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001400: - version "1.0.30001409" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" - integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== + version "1.0.30001412" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz" + integrity sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA== caseless@~0.12.0: version "0.12.0" From b3ca701b8d3ee03b6c1a8eb3425c8caab242cc55 Mon Sep 17 00:00:00 2001 From: weedySeaDragon Date: Mon, 26 Sep 2022 07:15:56 +0000 Subject: [PATCH 0148/1038] chore: update browsers list --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f21b8ba5b0..4a3f9237d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2992,9 +2992,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001400: - version "1.0.30001409" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" - integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== + version "1.0.30001412" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz" + integrity sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA== caseless@~0.12.0: version "0.12.0" From a928120bec3df9ad45670b0e34fc7610ef70544c Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 26 Sep 2022 10:44:18 +0200 Subject: [PATCH 0149/1038] #3061 Log handing and other fixes, error handling in diagram creation --- .vite/build.ts | 2 +- cypress/platform/knsv2.html | 12 ++-- package.json | 2 +- packages/mermaid-mindmap/src/mermaidUtils.ts | 4 ++ packages/mermaid-mindmap/src/mindmapDb.js | 16 ++++- .../mermaid-mindmap/src/mindmapRenderer.js | 70 ++++++++++--------- .../mermaid-mindmap/src/parser/mindmap.jison | 54 +++++++------- packages/mermaid-mindmap/src/registry.ts | 4 +- packages/mermaid/src/Diagram.ts | 18 +---- packages/mermaid/src/mermaid.ts | 2 +- 10 files changed, 95 insertions(+), 89 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index dec58854cd..c263f78ea5 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -97,7 +97,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) if (watch && config.build) { config.build.watch = { - include: 'src/**', + include: ['packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**'], }; } diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index cc4e8f1351..0c887f246b 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -45,12 +45,12 @@
    Security check
    -
    +    
     flowchart LR
    -      A --> B
    +      A -> B
         
    -
    -        mindmap
    +    
    +        mindmap((
               root
                 ch1
                 ch2
    @@ -71,6 +71,10 @@
           function callback() {
             alert('It worked');
           }
    +      mermaid.parseError = function (err, hash) {
    +        console.error('In parse error:');
    +        console.error(err);
    +      };
         
       
     
    diff --git a/package.json b/package.json
    index 4f07b69865..653723bf4a 100644
    --- a/package.json
    +++ b/package.json
    @@ -29,7 +29,7 @@
         "clean": "rimraf dist",
         "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts",
         "build:types": "concurrently \"tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly\" \"tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly\"",
    -    "build:watch": "pnpm build:code --watch",
    +    "build:watch": "pnpm build:vite --watch",
         "build": "pnpm clean; concurrently \"pnpm build:vite\" \"pnpm build:types\"",
         "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server\"",
         "docs:build": "ts-node-esm --transpileOnly packages/mermaid/src/docs.mts",
    diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts
    index 82bf3653b6..a65523f0cd 100644
    --- a/packages/mermaid-mindmap/src/mermaidUtils.ts
    +++ b/packages/mermaid-mindmap/src/mermaidUtils.ts
    @@ -41,10 +41,13 @@ export const injectUtils = (
       _sanitizeText: any,
       _setupGraphViewbox: any
     ) => {
    +  _log.info('Mermaid utils injected');
    +  log.trace = _log.trace;
       log.debug = _log.debug;
       log.info = _log.info;
       log.warn = _log.warn;
       log.error = _log.error;
    +  log.fatal = _log.fatal;
       setLogLevel = _setLogLevel;
       getConfig = _getConfig;
       sanitizeText = _sanitizeText;
    @@ -55,6 +58,7 @@ export const injectUtils = (
     const warning = (..._args: any[]) => {
       console.error('Log function was called before initialization');
     };
    +
     export let log = {
       trace: warning,
       debug: warning,
    diff --git a/packages/mermaid-mindmap/src/mindmapDb.js b/packages/mermaid-mindmap/src/mindmapDb.js
    index 3b322b2b46..cbe4d0286d 100644
    --- a/packages/mermaid-mindmap/src/mindmapDb.js
    +++ b/packages/mermaid-mindmap/src/mindmapDb.js
    @@ -1,5 +1,5 @@
     /** Created by knut on 15-01-14. */
    -import { sanitizeText, getConfig, log as _log } from './mermaidUtils';
    +import { sanitizeText, getConfig, log } from './mermaidUtils';
     
     let nodes = [];
     let cnt = 0;
    @@ -131,9 +131,19 @@ export const type2Str = (type) => {
           return 'no-border';
       }
     };
    +
    +export let parseError; // = (str, hash)
    +//  => {
    +//   const error = { str, hash };
    +//   throw error;
    +// };
    +export const setErrorHandler = (handler) => {
    +  parseError = handler;
    +};
    +
     // Expose logger to grammar
    -export const log = _log;
    -export let graphType = 'mindmap';
    +export const getLogger = () => log;
    +
     export const getNodeById = (id) => nodes[id];
     export const getElementById = (id) => elements[id];
     // export default {
    diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js
    index 9ad81df9dc..aab12a1578 100644
    --- a/packages/mermaid-mindmap/src/mindmapRenderer.js
    +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js
    @@ -215,51 +215,53 @@ function positionNodes(node, conf) {
      * @param {any} version
      * @param diagObj
      */
    +
     export const draw = (text, id, version, diagObj) => {
       const conf = getConfig();
    -  try {
    -    log.debug('Renering info diagram\n' + text);
     
    -    const securityLevel = getConfig().securityLevel;
    -    // Handle root and Document for when rendering in sanbox mode
    -    let sandboxElement;
    -    if (securityLevel === 'sandbox') {
    -      sandboxElement = select('#i' + id);
    -    }
    -    const root =
    -      securityLevel === 'sandbox'
    -        ? select(sandboxElement.nodes()[0].contentDocument.body)
    -        : select('body');
    -    // Parse the graph definition
    +  // This is done only for throwing the error if the text is not valid.
    +  diagObj.db.clear();
    +  // Parse the graph definition
    +  diagObj.parser.parse(text);
    +
    +  log.debug('Renering info diagram\n' + text);
     
    -    const svg = root.select('#' + id);
    +  const securityLevel = getConfig().securityLevel;
    +  // Handle root and Document for when rendering in sanbox mode
    +  let sandboxElement;
    +  if (securityLevel === 'sandbox') {
    +    sandboxElement = select('#i' + id);
    +  }
    +  const root =
    +    securityLevel === 'sandbox'
    +      ? select(sandboxElement.nodes()[0].contentDocument.body)
    +      : select('body');
    +  // Parse the graph definition
     
    -    svg.append('g');
    -    const mm = diagObj.db.getMindmap();
    +  const svg = root.select('#' + id);
     
    -    // Draw the graph and start with drawing the nodes without proper position
    -    // this gives us the size of the nodes and we can set the positions later
    +  svg.append('g');
    +  const mm = diagObj.db.getMindmap();
     
    -    const edgesElem = svg.append('g');
    -    edgesElem.attr('class', 'mindmap-edges');
    -    const nodesElem = svg.append('g');
    -    nodesElem.attr('class', 'mindmap-nodes');
    -    drawNodes(nodesElem, mm, -1, conf);
    +  // Draw the graph and start with drawing the nodes without proper position
    +  // this gives us the size of the nodes and we can set the positions later
     
    -    // Next step is to layout the mindmap, giving each node a position
    +  const edgesElem = svg.append('g');
    +  edgesElem.attr('class', 'mindmap-edges');
    +  const nodesElem = svg.append('g');
    +  nodesElem.attr('class', 'mindmap-nodes');
    +  drawNodes(nodesElem, mm, -1, conf);
     
    -    const positionedMindmap = layoutMindmap(mm, conf);
    +  // Next step is to layout the mindmap, giving each node a position
     
    -    // After this we can draw, first the edges and the then nodes with the correct position
    -    drawEdges(edgesElem, positionedMindmap, null, 0, -1, conf);
    -    positionNodes(positionedMindmap, conf);
    +  const positionedMindmap = layoutMindmap(mm, conf);
     
    -    // Setup the view box and size of the svg element
    -    setupGraphViewbox(undefined, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);
    -  } catch (e) {
    -    log.error('Error while rendering info diagram');
    -    log.error(e.message);
    -  }
    +  // After this we can draw, first the edges and the then nodes with the correct position
    +  drawEdges(edgesElem, positionedMindmap, null, 0, -1, conf);
    +  positionNodes(positionedMindmap, conf);
    +
    +  // Setup the view box and size of the svg element
    +  setupGraphViewbox(undefined, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);
     };
     
     export default {
    diff --git a/packages/mermaid-mindmap/src/parser/mindmap.jison b/packages/mermaid-mindmap/src/parser/mindmap.jison
    index f8c72787cd..bd008db7f2 100644
    --- a/packages/mermaid-mindmap/src/parser/mindmap.jison
    +++ b/packages/mermaid-mindmap/src/parser/mindmap.jison
    @@ -17,21 +17,21 @@
     
     %%
     
    -\s*\%\%.*          {yy.log.trace('Found comment',yytext);}
    +\s*\%\%.*          {yy.getLogger().trace('Found comment',yytext);}
     // \%\%[^\n]*\n                             /* skip comments */
     "mindmap"		       return 'MINDMAP';
     ":::"              { this.begin('CLASS'); }
     .+			     { this.popState();return 'CLASS'; }
     \n				   { this.popState();}
     // [\s]*"::icon("   { this.begin('ICON'); }
    -"::icon("   { yy.log.trace('Begin icon');this.begin('ICON'); }
    +"::icon("   { yy.getLogger().trace('Begin icon');this.begin('ICON'); }
     [\n]+               return 'NL';
     [^\)]+			 { return 'ICON'; }
    -\)				   {yy.log.trace('end icon');this.popState();}
    -"-)"               { yy.log.trace('Exploding node'); this.begin('NODE');return 'NODE_DSTART'; }
    -"(-"               { yy.log.trace('Cloud'); this.begin('NODE');return 'NODE_DSTART'; }
    -"))"               { yy.log.trace('Explosion Bang'); this.begin('NODE');return 'NODE_DSTART'; }
    -")"               { yy.log.trace('Cloud Bang'); this.begin('NODE');return 'NODE_DSTART'; }
    +\)				   {yy.getLogger().trace('end icon');this.popState();}
    +"-)"               { yy.getLogger().trace('Exploding node'); this.begin('NODE');return 'NODE_DSTART'; }
    +"(-"               { yy.getLogger().trace('Cloud'); this.begin('NODE');return 'NODE_DSTART'; }
    +"))"               { yy.getLogger().trace('Explosion Bang'); this.begin('NODE');return 'NODE_DSTART'; }
    +")"               { yy.getLogger().trace('Cloud Bang'); this.begin('NODE');return 'NODE_DSTART'; }
     "(("               { this.begin('NODE');return 'NODE_DSTART'; }
     "("                { this.begin('NODE');return 'NODE_DSTART'; }
     "["                { this.begin('NODE');return 'NODE_DSTART'; }
    @@ -39,18 +39,18 @@
     // !(-\()            return 'NODE_ID';
     [^\(\[\n\-\)]+         return 'NODE_ID';
     <>            return 'EOF';
    -["]          { yy.log.trace('Starting NSTR');this.begin("NSTR");}
    -[^"]+        { yy.log.trace('description:', yytext); return "NODE_DESCR";}
    +["]          { yy.getLogger().trace('Starting NSTR');this.begin("NSTR");}
    +[^"]+        { yy.getLogger().trace('description:', yytext); return "NODE_DESCR";}
     ["]          {this.popState();}
    -[\)]\)         {this.popState();yy.log.trace('node end ))');return "NODE_DEND";}
    -[\)]         {this.popState();yy.log.trace('node end )');return "NODE_DEND";}
    -[\]]         {this.popState();yy.log.trace('node end ...',yytext);return "NODE_DEND";}
    -"(-"         {this.popState();yy.log.trace('node end (-');return "NODE_DEND";}
    -"-)"         {this.popState();yy.log.trace('node end (-');return "NODE_DEND";}
    -"(("         {this.popState();yy.log.trace('node end ((');return "NODE_DEND";}
    -"("         {this.popState();yy.log.trace('node end ((');return "NODE_DEND";}
    -[^\)\]\(]+     { yy.log.trace('Long description:', yytext);   return 'NODE_DESCR';}
    -.+(?!\(\()     { yy.log.trace('Long description:', yytext);   return 'NODE_DESCR';}
    +[\)]\)         {this.popState();yy.getLogger().trace('node end ))');return "NODE_DEND";}
    +[\)]         {this.popState();yy.getLogger().trace('node end )');return "NODE_DEND";}
    +[\]]         {this.popState();yy.getLogger().trace('node end ...',yytext);return "NODE_DEND";}
    +"(-"         {this.popState();yy.getLogger().trace('node end (-');return "NODE_DEND";}
    +"-)"         {this.popState();yy.getLogger().trace('node end (-');return "NODE_DEND";}
    +"(("         {this.popState();yy.getLogger().trace('node end ((');return "NODE_DEND";}
    +"("         {this.popState();yy.getLogger().trace('node end ((');return "NODE_DEND";}
    +[^\)\]\(]+     { yy.getLogger().trace('Long description:', yytext);   return 'NODE_DESCR';}
    +.+(?!\(\()     { yy.getLogger().trace('Long description:', yytext);   return 'NODE_DESCR';}
     // [\[]               return 'NODE_START';
     // .+                 return 'TXT' ;
     
    @@ -68,10 +68,10 @@ start
     	;
     
     stop
    -  : NL {yy.log.trace('Stop NL ');}
    -  | EOF {yy.log.trace('Stop EOF ');}
    -  | stop NL {yy.log.trace('Stop NL2 ');}
    -  | stop EOF {yy.log.trace('Stop EOF2 ');}
    +  : NL {yy.getLogger().trace('Stop NL ');}
    +  | EOF {yy.getLogger().trace('Stop EOF ');}
    +  | stop NL {yy.getLogger().trace('Stop NL2 ');}
    +  | stop EOF {yy.getLogger().trace('Stop EOF2 ');}
       ;
     document
     	: document statement stop
    @@ -79,10 +79,10 @@ document
     	;
     
     statement
    -	: SPACELIST node       { yy.log.trace('Node: ',$2.id);yy.addNode($1.length, $2.id, $2.descr, $2.type);  }
    -	| SPACELIST ICON       { yy.log.trace('Icon: ',$2);yy.decorateNode({icon: $2}); }
    +	: SPACELIST node       { yy.getLogger().trace('Node: ',$2.id);yy.addNode($1.length, $2.id, $2.descr, $2.type);  }
    +	| SPACELIST ICON       { yy.getLogger().trace('Icon: ',$2);yy.decorateNode({icon: $2}); }
     	| SPACELIST CLASS      { yy.decorateNode({class: $2}); }
    -	| node					       { yy.log.trace('Node: ',$1.id);yy.addNode(0, $1.id, $1.descr, $1.type);  }
    +	| node					       { yy.getLogger().trace('Node: ',$1.id);yy.addNode(0, $1.id, $1.descr, $1.type);  }
     	| ICON                 { yy.decorateNode({icon: $1}); }
     	| CLASS                { yy.decorateNode({class: $1}); }
       | SPACELIST
    @@ -97,12 +97,12 @@ node
     
     nodeWithoutId
       :   NODE_DSTART NODE_DESCR NODE_DEND
    -	      { yy.log.trace("node found ..", $1); $$ = { id: $2, descr: $2, type: yy.getType($1, $3) }; }
    +	      { yy.getLogger().trace("node found ..", $1); $$ = { id: $2, descr: $2, type: yy.getType($1, $3) }; }
       ;
     
     nodeWithId
     	:  NODE_ID             { $$ = { id: $1, descr: $1, type: yy.nodeType.DEFAULT }; }
     	|  NODE_ID NODE_DSTART NODE_DESCR NODE_DEND
    -	                       { yy.log.trace("node found ..", $1); $$ = { id: $1, descr: $3, type: yy.getType($2, $4) }; }
    +	                       { yy.getLogger().trace("node found ..", $1); $$ = { id: $1, descr: $3, type: yy.getType($2, $4) }; }
     	;
     %%
    diff --git a/packages/mermaid-mindmap/src/registry.ts b/packages/mermaid-mindmap/src/registry.ts
    index 837929f334..141b6e25e8 100644
    --- a/packages/mermaid-mindmap/src/registry.ts
    +++ b/packages/mermaid-mindmap/src/registry.ts
    @@ -5,10 +5,10 @@ if (typeof document !== 'undefined') {
       if (window.mermaid && typeof window.mermaid.detectors === 'object') {
         window.mermaid.detectors.push({ id: 'mindmap', detector: mindmapDetector });
       } else {
    -    console.error('window.mermaid.detectors not found'); // eslint-disable-line no-console
    +    // console.error('window.mermaid.detectors was not found!'); // eslint-disable-line no-console
         window.mermaid = {};
         window.mermaid.detectors = [{ id: 'mindmap', detector: mindmapDetector }];
    -    console.error('Detectors now:', window.mermaid.detectors); // eslint-disable-line no-console
    +    // console.error('Detectors now:', window.mermaid.detectors); // eslint-disable-line no-console
       }
     
       /*!
    diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts
    index a695db6f62..a563389554 100644
    --- a/packages/mermaid/src/Diagram.ts
    +++ b/packages/mermaid/src/Diagram.ts
    @@ -15,33 +15,19 @@ export class Diagram {
         this.type = detectType(txt, cnf);
         const diagram = getDiagram(this.type);
         log.debug('Type ' + this.type);
    -    // console.log('Type ' + this.type);
         // Setup diagram
         this.db = diagram.db;
         this.db.clear?.();
         this.renderer = diagram.renderer;
         this.parser = diagram.parser;
    -    // console.log('Setting db to !', this.db);
         this.parser.parser.yy = this.db;
         if (diagram.init) {
           diagram.init(cnf);
           log.debug('Initialized diagram ' + this.type, cnf);
         }
         this.txt += '\n';
    -    try {
    -      this.parser.parser.yy.graphType = this.type;
    -      this.parser.parser.yy.parseError = (str: string, hash: string) => {
    -        const error = { str, hash };
    -        throw error;
    -      };
    -    } catch (error) {
    -      log.error('error', error);
    -    }
    -    try {
    -      this.parse(this.txt, parseError);
    -    } catch (error) {
    -      log.error('error', error);
    -    }
    +
    +    this.parse(this.txt, parseError);
       }
     
       // eslint-disable-next-line @typescript-eslint/ban-types
    diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts
    index 1d63ba6c92..5971096181 100644
    --- a/packages/mermaid/src/mermaid.ts
    +++ b/packages/mermaid/src/mermaid.ts
    @@ -53,7 +53,7 @@ const init = function (
       callback?: Function
     ) {
       try {
    -    console.error('Detectors in init', mermaid.detectors); // eslint-disable-line
    +    log.info('Detectors in init', mermaid.detectors); // eslint-disable-line
         mermaid.detectors.forEach(({ id, detector }) => {
           addDetector(id, detector);
         });
    
    From a448409750242a1b957742fd233ed029171c39b6 Mon Sep 17 00:00:00 2001
    From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
    Date: Mon, 26 Sep 2022 13:27:42 +0200
    Subject: [PATCH 0150/1038] chore(deps-dev): bump eslint from 8.23.1 to 8.24.0
     (#3521)
    
    Bumps [eslint](https://github.com/eslint/eslint) from 8.23.1 to 8.24.0.
    - [Release notes](https://github.com/eslint/eslint/releases)
    - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/eslint/eslint/compare/v8.23.1...v8.24.0)
    
    ---
    updated-dependencies:
    - dependency-name: eslint
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] 
    
    Signed-off-by: dependabot[bot] 
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    ---
     package.json |  2 +-
     yarn.lock    | 12 ++++++------
     2 files changed, 7 insertions(+), 7 deletions(-)
    
    diff --git a/package.json b/package.json
    index d645b964eb..e019887984 100644
    --- a/package.json
    +++ b/package.json
    @@ -98,7 +98,7 @@
         "cypress": "^10.0.0",
         "cypress-image-snapshot": "^4.0.1",
         "documentation": "13.2.0",
    -    "eslint": "^8.23.1",
    +    "eslint": "^8.24.0",
         "eslint-config-prettier": "^8.5.0",
         "eslint-plugin-cypress": "^2.12.1",
         "eslint-plugin-html": "^7.1.0",
    diff --git a/yarn.lock b/yarn.lock
    index 4a3f9237d1..6b23533676 100644
    --- a/yarn.lock
    +++ b/yarn.lock
    @@ -1587,7 +1587,7 @@
       dependencies:
         "@hapi/hoek" "^9.0.0"
     
    -"@humanwhocodes/config-array@^0.10.4":
    +"@humanwhocodes/config-array@^0.10.5":
       version "0.10.5"
       resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.5.tgz#bb679745224745fff1e9a41961c1d45a49f81c04"
       integrity sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==
    @@ -4771,13 +4771,13 @@ eslint-visitor-keys@^3.3.0:
       resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
       integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
     
    -eslint@^8.23.1:
    -  version "8.23.1"
    -  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc"
    -  integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==
    +eslint@^8.24.0:
    +  version "8.24.0"
    +  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8"
    +  integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==
       dependencies:
         "@eslint/eslintrc" "^1.3.2"
    -    "@humanwhocodes/config-array" "^0.10.4"
    +    "@humanwhocodes/config-array" "^0.10.5"
         "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
         "@humanwhocodes/module-importer" "^1.0.1"
         ajv "^6.10.0"
    
    From 503cbedc96e48d6b962d7a1041c48e633b3c59e2 Mon Sep 17 00:00:00 2001
    From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
    Date: Mon, 26 Sep 2022 13:28:16 +0200
    Subject: [PATCH 0151/1038] chore(deps-dev): bump @types/prettier from 2.7.0 to
     2.7.1 (#3520)
    
    Bumps [@types/prettier](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/prettier) from 2.7.0 to 2.7.1.
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/prettier)
    
    ---
    updated-dependencies:
    - dependency-name: "@types/prettier"
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] 
    
    Signed-off-by: dependabot[bot] 
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    ---
     package.json | 2 +-
     yarn.lock    | 8 ++++----
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/package.json b/package.json
    index e019887984..bbe4045be1 100644
    --- a/package.json
    +++ b/package.json
    @@ -87,7 +87,7 @@
         "@types/express": "^4.17.13",
         "@types/jsdom": "^20.0.0",
         "@types/lodash": "^4.14.185",
    -    "@types/prettier": "^2.7.0",
    +    "@types/prettier": "^2.7.1",
         "@types/stylis": "^4.0.2",
         "@typescript-eslint/eslint-plugin": "^5.37.0",
         "@typescript-eslint/parser": "^5.37.0",
    diff --git a/yarn.lock b/yarn.lock
    index 6b23533676..d973df0a76 100644
    --- a/yarn.lock
    +++ b/yarn.lock
    @@ -2127,10 +2127,10 @@
       resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
       integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
     
    -"@types/prettier@^2.7.0":
    -  version "2.7.0"
    -  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc"
    -  integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==
    +"@types/prettier@^2.7.1":
    +  version "2.7.1"
    +  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e"
    +  integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==
     
     "@types/qs@*":
       version "6.9.7"
    
    From 982c1b497960fdf48ee1606343e53e3162a3100c Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Mon, 26 Sep 2022 14:22:21 +0200
    Subject: [PATCH 0152/1038] #3061 Lazy loading auto derived path
    
    ---
     .vite/build.ts                                |  2 +-
     cypress/platform/knsv2.html                   | 15 ++++----
     packages/mermaid-mindmap/src/add-diagram.ts   | 23 ++++++++++++
     packages/mermaid-mindmap/src/diagram.ts       | 36 -------------------
     .../mermaid-mindmap/src/mindmapDetector.ts    |  5 ---
     packages/mermaid-mindmap/src/registry.ts      | 16 ++++++++-
     packages/mermaid/src/Diagram.ts               | 22 ++++++++++--
     .../src/dagre-wrapper/mermaid-graphlib.js     |  2 --
     .../mermaid/src/diagram-api/detectType.ts     | 18 +++++++---
     .../src/diagram-api/diagram-orchestration.ts  |  6 ++--
     .../src/diagram-api/diagramAPI.spec.ts        |  2 +-
     .../mermaid/src/diagram-api/diagramAPI.ts     | 20 +++++++++--
     packages/mermaid/src/mermaid.ts               |  4 +--
     packages/mermaid/src/mermaidAPI.ts            |  9 ++---
     14 files changed, 109 insertions(+), 71 deletions(-)
     create mode 100644 packages/mermaid-mindmap/src/add-diagram.ts
     delete mode 100644 packages/mermaid-mindmap/src/diagram.ts
    
    diff --git a/.vite/build.ts b/.vite/build.ts
    index c263f78ea5..306e4cc053 100644
    --- a/.vite/build.ts
    +++ b/.vite/build.ts
    @@ -22,7 +22,7 @@ const packageOptions = {
       'mermaid-mindmap': {
         name: 'mermaid-mindmap',
         packageName: 'mermaid-mindmap',
    -    file: 'diagram.ts',
    +    file: 'add-diagram.ts',
       },
       'mermaid-mindmap-detector': {
         name: 'mermaid-mindmap-detector',
    diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
    index 0c887f246b..f005e10881 100644
    --- a/cypress/platform/knsv2.html
    +++ b/cypress/platform/knsv2.html
    @@ -45,18 +45,19 @@
       
       
         
    Security check
    -
    -flowchart LR
    -      A -> B
    -    
    -        mindmap((
    +            flowchart LR
    +          A -> B
    +        
    +
    +            mindmap
               root
                 ch1
                 ch2
    -    
    +
    - + + + From d0e9de27445cacb2a241dca1b628a07cc523c355 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Mon, 26 Sep 2022 18:15:29 -0700 Subject: [PATCH 0154/1038] new page for context charts --- demos/c4context.html | 299 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 demos/c4context.html diff --git a/demos/c4context.html b/demos/c4context.html new file mode 100644 index 0000000000..1485d42d8b --- /dev/null +++ b/demos/c4context.html @@ -0,0 +1,299 @@ + + + + + + C4 Mermaid Quick Test Page + + + + + +
    +    C4Context
    +      accTitle: C4 context demo
    +      accDescr: Many large C4 diagrams
    +
    +      title System Context diagram for Internet Banking System
    +
    +      Enterprise_Boundary(b0, "BankBoundary0") {
    +          Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")
    +          Person(customerB, "Banking Customer B")
    +          Person_Ext(customerC, "Banking Customer C", "desc")
    +
    +          Person(customerD, "Banking Customer D", "A customer of the bank, 
    with personal bank accounts.") + + System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + + Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } + } + } + + BiRel(customerA, SystemAA, "Uses") + BiRel(SystemAA, SystemE, "Uses") + Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") + Rel(SystemC, customerA, "Sends e-mails to") + + UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red") + UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5") + UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10") + UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50") + UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20") + + UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1") +
    + +
    +    C4Container
    +    title Container diagram for Internet Banking System
    +
    +    System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system", $tags="v1.0")
    +    Person(customer, Customer, "A customer of the bank, with personal bank accounts", $tags="v1.0")
    +
    +    Container_Boundary(c1, "Internet Banking") {
    +        Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to customers via their web browser")
    +        Container_Ext(mobile_app, "Mobile App", "C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device")
    +        Container(web_app, "Web Application", "Java, Spring MVC", "Delivers the static content and the Internet banking SPA")
    +        ContainerDb(database, "Database", "SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.")
    +        ContainerDb_Ext(backend_api, "API Application", "Java, Docker Container", "Provides Internet banking functionality via API")
    +
    +    }
    +
    +    System_Ext(banking_system, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
    +
    +    Rel(customer, web_app, "Uses", "HTTPS")
    +    UpdateRelStyle(customer, web_app, $offsetY="60", $offsetX="90")     
    +    Rel(customer, spa, "Uses", "HTTPS")
    +    UpdateRelStyle(customer, spa, $offsetY="-40")    
    +    Rel(customer, mobile_app, "Uses")
    +    UpdateRelStyle(customer, mobile_app, $offsetY="-30") 
    +
    +    Rel(web_app, spa, "Delivers")
    +    UpdateRelStyle(web_app, spa, $offsetX="130") 
    +    Rel(spa, backend_api, "Uses", "async, JSON/HTTPS")
    +    Rel(mobile_app, backend_api, "Uses", "async, JSON/HTTPS")
    +    Rel_Back(database, backend_api, "Reads from and writes to", "sync, JDBC")
    +
    +    Rel(email_system, customer, "Sends e-mails to")
    +    UpdateRelStyle(email_system, customer, $offsetX="-45")    
    +    Rel(backend_api, email_system, "Sends e-mails using", "sync, SMTP")
    +    UpdateRelStyle(backend_api, email_system, $offsetY="-60")    
    +    Rel(backend_api, banking_system, "Uses", "sync/async, XML/HTTPS")
    +    UpdateRelStyle(backend_api, banking_system, $offsetY="-50", $offsetX="-140")
    +    
    + +
    +    C4Component
    +    title Component diagram for Internet Banking System - API Application
    +
    +    Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
    +    Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.")
    +    ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
    +    System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
    +
    +    Container_Boundary(api, "API Application") {
    +        Component(sign, "Sign In Controller", "MVC Rest Controller", "Allows users to sign in to the internet banking system")
    +        Component(accounts, "Accounts Summary Controller", "MVC Rest Controller", "Provides customers with a summary of their bank accounts")
    +        Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.")
    +        Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.")
    +
    +        Rel(sign, security, "Uses")
    +        Rel(accounts, mbsfacade, "Uses")
    +        Rel(security, db, "Read & write to", "JDBC")
    +        Rel(mbsfacade, mbs, "Uses", "XML/HTTPS")
    +    }
    +
    +    Rel_Back(spa, sign, "Uses", "JSON/HTTPS")
    +    Rel(spa, accounts, "Uses", "JSON/HTTPS")
    +
    +    Rel(ma, sign, "Uses", "JSON/HTTPS")
    +    Rel(ma, accounts, "Uses", "JSON/HTTPS")
    +
    +    UpdateRelStyle(spa, sign, $offsetY="-40") 
    +    UpdateRelStyle(spa, accounts, $offsetX="40", $offsetY="40")
    +
    +    UpdateRelStyle(ma, sign, $offsetX="-90", $offsetY="40")
    +    UpdateRelStyle(ma, accounts, $offsetY="-40")
    +
    +        UpdateRelStyle(sign, security, $offsetX="-160", $offsetY="10")
    +        UpdateRelStyle(accounts, mbsfacade, $offsetX="140", $offsetY="10")
    +        UpdateRelStyle(security, db, $offsetY="-40")
    +        UpdateRelStyle(mbsfacade, mbs, $offsetY="-40")
    +    
    + +
    +    C4Dynamic
    +    title Dynamic diagram for Internet Banking System - API Application
    +
    +    ContainerDb(c4, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
    +    Container(c1, "Single-Page Application", "JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.")
    +    Container_Boundary(b, "API Application") {
    +      Component(c3, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.")
    +      Component(c2, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.")
    +    }
    +    Rel(c1, c2, "Submits credentials to", "JSON/HTTPS")
    +    Rel(c2, c3, "Calls isAuthenticated() on")
    +    Rel(c3, c4, "select * from users where username = ?", "JDBC")
    +
    +    UpdateRelStyle(c1, c2, $textColor="red", $offsetY="-40")
    +    UpdateRelStyle(c2, c3, $textColor="red", $offsetX="-40", $offsetY="60")
    +    UpdateRelStyle(c3, c4, $textColor="red", $offsetY="-40", $offsetX="10")
    +    
    + +
    +    C4Deployment
    +    title Deployment Diagram for Internet Banking System - Live
    +
    +    Deployment_Node(mob, "Customer's mobile device", "Apple IOS or Android"){
    +        Container(mobile, "Mobile App", "Xamarin", "Provides a limited subset of the Internet Banking functionality to customers via their mobile device.")
    +    }
    +
    +    Deployment_Node(comp, "Customer's computer", "Mircosoft Windows or Apple macOS"){
    +        Deployment_Node(browser, "Web Browser", "Google Chrome, Mozilla Firefox,
    Apple Safari or Microsoft Edge"){ + Container(spa, "Single Page Application", "JavaScript and Angular", "Provides all of the Internet Banking functionality to customers via their web browser.") + } + } + + Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center"){ + Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS"){ + Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x"){ + Container(api, "API Application", "Java and Spring MVC", "Provides Internet Banking functionality via a JSON/HTTPS API.") + } + } + Deployment_Node(bb2, "bigbank-web*** x4", "Ubuntu 16.04 LTS"){ + Deployment_Node(apache2, "Apache Tomcat", "Apache Tomcat 8.x"){ + Container(web, "Web Application", "Java and Spring MVC", "Delivers the static content and the Internet Banking single page application.") + } + } + Deployment_Node(bigbankdb01, "bigbank-db01", "Ubuntu 16.04 LTS"){ + Deployment_Node(oracle, "Oracle - Primary", "Oracle 12c"){ + ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") + } + } + Deployment_Node(bigbankdb02, "bigbank-db02", "Ubuntu 16.04 LTS") { + Deployment_Node(oracle2, "Oracle - Secondary", "Oracle 12c") { + ContainerDb(db2, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") + } + } + } + + Rel(mobile, api, "Makes API calls to", "json/HTTPS") + Rel(spa, api, "Makes API calls to", "json/HTTPS") + Rel_U(web, spa, "Delivers to the customer's web browser") + Rel(api, db, "Reads from and writes to", "JDBC") + Rel(api, db2, "Reads from and writes to", "JDBC") + Rel_R(db, db2, "Replicates data to") + + UpdateRelStyle(spa, api, $offsetY="-40") + UpdateRelStyle(web, spa, $offsetY="-40") + UpdateRelStyle(api, db, $offsetY="-20", $offsetX="5") + UpdateRelStyle(api, db2, $offsetX="-40", $offsetY="-20") + UpdateRelStyle(db, db2, $offsetY="-10") +
    + +
    + + + + + + + From 3d0214d45385aea078d053e4729cb33266087d5d Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Mon, 26 Sep 2022 18:16:00 -0700 Subject: [PATCH 0155/1038] new page for pie charts --- demos/pie.html | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 demos/pie.html diff --git a/demos/pie.html b/demos/pie.html new file mode 100644 index 0000000000..3232d25347 --- /dev/null +++ b/demos/pie.html @@ -0,0 +1,51 @@ + + + + + + Mermaid Quick Test Page + + + + + +
    +      pie title Pets adopted by volunteers
    +      accTitle: simple pie char demo
    +      accDescr: pie chart with 3 sections: dogs, cats, rats. Most are dogs.
    +    "Dogs" : 386
    +    "Cats" : 85
    +    "Rats" : 15
    +    
    + +
    +    pie
    +      title Key elements in Product X
    +        accTitle: Key elements in Product X
    +      accDescr: This is a pie chart showing the key elements in Product X.
    +      "Calcium" : 42.96
    +      "Potassium" : 50.05
    +      "Magnesium" : 10.01
    +      "Iron" :  5
    +    
    + + + + From 7ed3c21a6d385a07dac35e591d899dd6bf7e5aaa Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Mon, 26 Sep 2022 18:16:36 -0700 Subject: [PATCH 0156/1038] move charts to their pages; index page just a list to them --- demos/classchart.html | 139 ++++- demos/dataflowchart.html | 2 + demos/er.html | 15 +- demos/flowchart.html | 409 ++++++++++++++- demos/gantt.html | 163 +++++- demos/index.html | 1030 ++------------------------------------ demos/journey.html | 22 +- demos/requirements.html | 79 ++- demos/sequence.html | 143 ++++-- demos/state.html | 60 ++- 10 files changed, 952 insertions(+), 1110 deletions(-) diff --git a/demos/classchart.html b/demos/classchart.html index ebc3fe0a5c..e15495b95c 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -3,7 +3,7 @@ - Mermaid Quick Test Page + Class diagrams Mermaid Quick Test Page -
    -flowchart LR
    -  a ---
    -    
     flowchart LR
    -  a2 ---
    +  subgraph one
    +    direction LR
    +    A[myClass1] --> B[default]
    +    subgraph two
    +      direction BT
    +      C[myClass2] --> D[default]
    +    end
    +  end
    +
         
     flowchart LR
    @@ -79,7 +83,7 @@
         end
         end
         
    -
    +    
     flowchart TD
     
       release-branch[Create Release Branch]:::relClass
    @@ -131,7 +135,7 @@
           class A someclass;
           class C someclass;
         
    -
    +    
        sequenceDiagram
           title: My Sequence Diagram Title
           accTitle: My Acc Sequence Diagram
    @@ -141,14 +145,14 @@
           John-->>Alice: Great!
           Alice-)John: See you later!
         
    -
    +    
     graph TD
         A -->|000| B
         B -->|111| C
     
         linkStyle 1 stroke:#ff3,stroke-width:4px,color:red;
         
    -
    +    
       journey
           accTitle: My User Journey Diagram
           accDescr: My User Journey Diagram Description
    @@ -162,10 +166,10 @@
             Go downstairs: 5: Me
             Sit down: 5: Me
         
    -
    +    
             info
         
    -
    +    
     requirementDiagram
           accTitle: My req Diagram
           accDescr: My req Diagram Description
    @@ -206,7 +210,7 @@
         test_req - contains -> test_req3
         test_req <- copies - test_entity2
         
    -
    +    
     gantt
         dateFormat  YYYY-MM-DD
         title       Adding GANTT diagram functionality to mermaid
    @@ -238,7 +242,7 @@
         Add gantt diagram to demo page      :20h
         Add another diagram to demo page    :48h
         
    -
    +    
     stateDiagram
       state Active {
         Idle
    @@ -266,7 +270,7 @@
               end
               B ->> A: Return
         
    -
    +    
     classDiagram
     accTitle: My class diagram
     accDescr: My class diagram Description
    @@ -291,7 +295,7 @@
             A->>Bob: Hola
             Bob-->A: Pasten !
         
    -
    +    
           gitGraph
            commit id: "ZERO"
            branch develop
    @@ -320,7 +324,7 @@
           C -->|Two| E[iPhone]
           C -->|Three| F[fa:fa-car Car]
         
    -
    +    
             classDiagram
               Animal "1" <|-- Duck
               Animal <|-- Fish
    @@ -343,7 +347,7 @@
                 +run()
               }
         
    -
    +    
             erDiagram
         CAR ||--o{ NAMED-DRIVER : allows
         CAR {
    diff --git a/docs/flowchart.md b/docs/flowchart.md
    index dedb42a27d..2a4265c574 100644
    --- a/docs/flowchart.md
    +++ b/docs/flowchart.md
    @@ -679,6 +679,8 @@ flowchart LR
       B1 --> B2
     ```
     
    +**A clarification is in order here.** The direction statement affects the layout of a subgraph but only as long as it does not have any links leading in or out of it. The reason for this is that if you have links in or out then the graph of nodes is not longer the set of nodes in the subgraph but actually the set of nodes of the parent including the ones in the subgraph. One can see it as that the direction of the container gets injected in the subgraph with a link.
    +
     ## Interaction
     
     It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`.
    diff --git a/src/docs/flowchart.md b/src/docs/flowchart.md
    index 2678bdb93d..4bf80a6c04 100644
    --- a/src/docs/flowchart.md
    +++ b/src/docs/flowchart.md
    @@ -424,6 +424,8 @@ flowchart LR
       B1 --> B2
     ```
     
    +**A clarification is in order here.** The direction statement affects the layout of a subgraph but only as long as it does not have any links leading in or out of it. The reason for this is that if you have links in or out then the graph of nodes is not longer the set of nodes in the subgraph but actually the set of nodes of the parent including the ones in the subgraph. One can see it as that the direction of the container gets injected in the subgraph with a link.
    +
     ## Interaction
     
     It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`.
    
    From 6292bebcd35227b086671a4bf0c589ca095ad26b Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Wed, 28 Sep 2022 14:15:17 +0200
    Subject: [PATCH 0160/1038] Updated version
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index bbe4045be1..ecc9e2ce46 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "mermaid",
    -  "version": "9.2.0-rc1",
    +  "version": "9.2.0-rc2",
       "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
       "main": "dist/mermaid.core.mjs",
       "module": "dist/mermaid.core.mjs",
    
    From be34e6145fadca4f4f712c0314d68d30277a44b9 Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Wed, 28 Sep 2022 14:53:16 +0200
    Subject: [PATCH 0161/1038] Fix for tests
    
    ---
     package.json                                  |   2 +-
     .../themes/erDiagram-oldHardcodedValues.ts    |   0
     pnpm-lock.yaml                                | 971 +++++++++++++-----
     3 files changed, 726 insertions(+), 247 deletions(-)
     rename {src => packages/mermaid/src}/themes/erDiagram-oldHardcodedValues.ts (100%)
    
    diff --git a/package.json b/package.json
    index 846e371cb2..b62df87a6f 100644
    --- a/package.json
    +++ b/package.json
    @@ -74,7 +74,6 @@
         "dompurify": "2.4.0",
         "fast-clone": "^1.5.13",
         "graphlib": "^2.1.8",
    -    "jest": "^29.0.3",
         "khroma": "^2.0.0",
         "lodash": "^4.17.21",
         "moment-mini": "^2.24.0",
    @@ -115,6 +114,7 @@
         "globby": "^13.1.2",
         "husky": "^8.0.0",
         "identity-obj-proxy": "^3.0.0",
    +    "jest": "29.x",
         "jison": "^0.4.18",
         "jsdom": "^20.0.0",
         "lint-staged": "^13.0.0",
    diff --git a/src/themes/erDiagram-oldHardcodedValues.ts b/packages/mermaid/src/themes/erDiagram-oldHardcodedValues.ts
    similarity index 100%
    rename from src/themes/erDiagram-oldHardcodedValues.ts
    rename to packages/mermaid/src/themes/erDiagram-oldHardcodedValues.ts
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index 3e6c7d05d7..f5748387e3 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -18,7 +18,7 @@ importers:
           '@types/jsdom': ^20.0.0
           '@types/lodash': ^4.14.185
           '@types/node': ^18.7.21
    -      '@types/prettier': ^2.7.0
    +      '@types/prettier': ^2.7.1
           '@types/stylis': ^4.0.2
           '@typescript-eslint/eslint-plugin': ^5.37.0
           '@typescript-eslint/parser': ^5.37.0
    @@ -33,7 +33,7 @@ importers:
           dagre-d3: ^0.6.4
           documentation: 13.2.0
           dompurify: 2.4.0
    -      eslint: ^8.23.1
    +      eslint: ^8.24.0
           eslint-config-prettier: ^8.5.0
           eslint-plugin-cypress: ^2.12.1
           eslint-plugin-html: ^7.1.0
    @@ -47,7 +47,7 @@ importers:
           graphlib: ^2.1.8
           husky: ^8.0.0
           identity-obj-proxy: ^3.0.0
    -      jest: ^29.0.3
    +      jest: 29.x
           jison: ^0.4.18
           jsdom: ^20.0.0
           khroma: ^2.0.0
    @@ -78,7 +78,6 @@ importers:
           dompurify: 2.4.0
           fast-clone: 1.5.13
           graphlib: 2.1.8
    -      jest: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq
           khroma: 2.0.0
           lodash: 4.17.21
           moment-mini: 2.29.4
    @@ -95,29 +94,30 @@ importers:
           '@types/express': 4.17.14
           '@types/jsdom': 20.0.0
           '@types/lodash': 4.14.185
    -      '@types/prettier': 2.7.0
    +      '@types/prettier': 2.7.1
           '@types/stylis': 4.0.2
    -      '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry
    -      '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha
    +      '@typescript-eslint/eslint-plugin': 5.38.0_4gkcvl6qsi23tqqawfqgcwtp54
    +      '@typescript-eslint/parser': 5.38.0_7ilbxdl5iguzcjriqqcg2m5cku
           '@vitest/coverage-c8': 0.23.4_y2hohvmcqnhseytaw4yjcnsnkm
           '@vitest/ui': 0.23.4
           concurrently: 7.4.0
           coveralls: 3.1.1
           cypress: 10.8.0
    -      cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.0.3
    +      cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1
           documentation: 13.2.0
    -      eslint: 8.23.1
    -      eslint-config-prettier: 8.5.0_eslint@8.23.1
    -      eslint-plugin-cypress: 2.12.1_eslint@8.23.1
    +      eslint: 8.24.0
    +      eslint-config-prettier: 8.5.0_eslint@8.24.0
    +      eslint-plugin-cypress: 2.12.1_eslint@8.24.0
           eslint-plugin-html: 7.1.0
    -      eslint-plugin-jest: 27.0.4_qsk6uocri6piwezqjqcgw24zhq
    -      eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1
    +      eslint-plugin-jest: 27.0.4_zkp6l2tlaisogzmthlfexujswu
    +      eslint-plugin-jsdoc: 39.3.6_eslint@8.24.0
           eslint-plugin-json: 3.1.0
    -      eslint-plugin-markdown: 3.0.0_eslint@8.23.1
    +      eslint-plugin-markdown: 3.0.0_eslint@8.24.0
           express: 4.18.1
           globby: 13.1.2
           husky: 8.0.1
           identity-obj-proxy: 3.0.0
    +      jest: 29.1.1_pliq7kienpvt4xqyxfwljzmzmq
           jison: 0.4.18
           jsdom: 20.0.0
           lint-staged: 13.0.3
    @@ -562,6 +562,7 @@ packages:
         engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/highlight': 7.18.6
    +    dev: true
     
       /@babel/compat-data/7.19.1:
         resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==}
    @@ -590,6 +591,7 @@ packages:
           source-map: 0.5.7
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /@babel/generator/7.12.1:
         resolution: {integrity: sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==}
    @@ -597,6 +599,7 @@ packages:
           '@babel/types': 7.19.0
           jsesc: 2.5.2
           source-map: 0.5.7
    +    dev: true
     
       /@babel/generator/7.19.0:
         resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==}
    @@ -605,6 +608,7 @@ packages:
           '@babel/types': 7.19.0
           '@jridgewell/gen-mapping': 0.3.2
           jsesc: 2.5.2
    +    dev: true
     
       /@babel/helper-annotate-as-pure/7.18.6:
         resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
    @@ -682,6 +686,7 @@ packages:
       /@babel/helper-environment-visitor/7.18.9:
         resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
         engines: {node: '>=6.9.0'}
    +    dev: true
     
       /@babel/helper-explode-assignable-expression/7.18.6:
         resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
    @@ -696,12 +701,14 @@ packages:
         dependencies:
           '@babel/template': 7.18.10
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/helper-hoist-variables/7.18.6:
         resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
         engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/helper-member-expression-to-functions/7.18.9:
         resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}
    @@ -715,6 +722,7 @@ packages:
         engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/helper-module-transforms/7.19.0:
         resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==}
    @@ -730,6 +738,7 @@ packages:
           '@babel/types': 7.19.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /@babel/helper-optimise-call-expression/7.18.6:
         resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
    @@ -741,6 +750,7 @@ packages:
       /@babel/helper-plugin-utils/7.19.0:
         resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
         engines: {node: '>=6.9.0'}
    +    dev: true
     
       /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.12.3:
         resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==}
    @@ -775,6 +785,7 @@ packages:
         engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/helper-skip-transparent-expression-wrappers/7.18.9:
         resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==}
    @@ -788,14 +799,17 @@ packages:
         engines: {node: '>=6.9.0'}
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/helper-string-parser/7.18.10:
         resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==}
         engines: {node: '>=6.9.0'}
    +    dev: true
     
       /@babel/helper-validator-identifier/7.19.1:
         resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
         engines: {node: '>=6.9.0'}
    +    dev: true
     
       /@babel/helper-validator-option/7.18.6:
         resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
    @@ -823,6 +837,7 @@ packages:
           '@babel/types': 7.19.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /@babel/highlight/7.18.6:
         resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
    @@ -831,6 +846,7 @@ packages:
           '@babel/helper-validator-identifier': 7.19.1
           chalk: 2.4.2
           js-tokens: 4.0.0
    +    dev: true
     
       /@babel/parser/7.12.3:
         resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==}
    @@ -838,6 +854,7 @@ packages:
         hasBin: true
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/parser/7.19.1:
         resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==}
    @@ -845,6 +862,7 @@ packages:
         hasBin: true
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3:
         resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
    @@ -1144,6 +1162,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
    @@ -1152,6 +1171,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3:
         resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
    @@ -1160,6 +1180,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.12.3:
         resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
    @@ -1266,6 +1287,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
    @@ -1274,6 +1296,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3:
         resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
    @@ -1283,6 +1306,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3:
         resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
    @@ -1291,6 +1315,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
    @@ -1299,6 +1324,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3:
         resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
    @@ -1307,6 +1333,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
    @@ -1315,6 +1342,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
    @@ -1323,6 +1351,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
    @@ -1331,6 +1360,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-pipeline-operator/7.18.6_@babel+core@7.12.3:
         resolution: {integrity: sha512-pFtIdQomJtkTHWcNsGXhjJ5YUkL+AxJnP4G+Ol85UO6uT2fpHTPYLLE5bBeRA9cxf25qa/VKsJ3Fi67Gyqe3rA==}
    @@ -1370,6 +1400,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3:
         resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
    @@ -1379,6 +1410,7 @@ packages:
         dependencies:
           '@babel/core': 7.12.3
           '@babel/helper-plugin-utils': 7.19.0
    +    dev: true
     
       /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.12.3:
         resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
    @@ -1943,6 +1975,7 @@ packages:
           '@babel/code-frame': 7.18.6
           '@babel/parser': 7.19.1
           '@babel/types': 7.19.0
    +    dev: true
     
       /@babel/traverse/7.19.1:
         resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==}
    @@ -1960,6 +1993,7 @@ packages:
           globals: 11.12.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /@babel/types/7.19.0:
         resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==}
    @@ -1968,9 +2002,11 @@ packages:
           '@babel/helper-string-parser': 7.18.10
           '@babel/helper-validator-identifier': 7.19.1
           to-fast-properties: 2.0.0
    +    dev: true
     
       /@bcoe/v8-coverage/0.2.3:
         resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    +    dev: true
     
       /@braintree/sanitize-url/6.0.0:
         resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==}
    @@ -2150,6 +2186,7 @@ packages:
         engines: {node: '>=12'}
         dependencies:
           '@jridgewell/trace-mapping': 0.3.9
    +    dev: true
     
       /@cypress/request/2.88.10:
         resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==}
    @@ -2278,24 +2315,27 @@ packages:
           get-package-type: 0.1.0
           js-yaml: 3.14.1
           resolve-from: 5.0.0
    +    dev: true
     
       /@istanbuljs/schema/0.1.3:
         resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
         engines: {node: '>=8'}
    +    dev: true
     
    -  /@jest/console/29.0.3:
    -    resolution: {integrity: sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg==}
    +  /@jest/console/29.1.0:
    +    resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           chalk: 4.1.2
    -      jest-message-util: 29.0.3
    -      jest-util: 29.0.3
    +      jest-message-util: 29.1.0
    +      jest-util: 29.1.0
           slash: 3.0.0
    +    dev: true
     
    -  /@jest/core/29.0.3_ts-node@10.9.1:
    -    resolution: {integrity: sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ==}
    +  /@jest/core/29.1.1_ts-node@10.9.1:
    +    resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
           node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    @@ -2303,11 +2343,11 @@ packages:
           node-notifier:
             optional: true
         dependencies:
    -      '@jest/console': 29.0.3
    -      '@jest/reporters': 29.0.3
    -      '@jest/test-result': 29.0.3
    -      '@jest/transform': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/console': 29.1.0
    +      '@jest/reporters': 29.1.0
    +      '@jest/test-result': 29.1.0
    +      '@jest/transform': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           ansi-escapes: 4.3.2
           chalk: 4.1.2
    @@ -2315,74 +2355,80 @@ packages:
           exit: 0.1.2
           graceful-fs: 4.2.10
           jest-changed-files: 29.0.0
    -      jest-config: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq
    -      jest-haste-map: 29.0.3
    -      jest-message-util: 29.0.3
    +      jest-config: 29.1.1_pliq7kienpvt4xqyxfwljzmzmq
    +      jest-haste-map: 29.1.0
    +      jest-message-util: 29.1.0
           jest-regex-util: 29.0.0
    -      jest-resolve: 29.0.3
    -      jest-resolve-dependencies: 29.0.3
    -      jest-runner: 29.0.3
    -      jest-runtime: 29.0.3
    -      jest-snapshot: 29.0.3
    -      jest-util: 29.0.3
    -      jest-validate: 29.0.3
    -      jest-watcher: 29.0.3
    +      jest-resolve: 29.1.0
    +      jest-resolve-dependencies: 29.1.1
    +      jest-runner: 29.1.1
    +      jest-runtime: 29.1.1
    +      jest-snapshot: 29.1.0
    +      jest-util: 29.1.0
    +      jest-validate: 29.1.0
    +      jest-watcher: 29.1.0
           micromatch: 4.0.5
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
           slash: 3.0.0
           strip-ansi: 6.0.1
         transitivePeerDependencies:
           - supports-color
           - ts-node
    +    dev: true
     
    -  /@jest/environment/29.0.3:
    -    resolution: {integrity: sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA==}
    +  /@jest/environment/29.1.1:
    +    resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/fake-timers': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/fake-timers': 29.1.1
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
    -      jest-mock: 29.0.3
    +      jest-mock: 29.1.1
    +    dev: true
     
    -  /@jest/expect-utils/29.0.3:
    -    resolution: {integrity: sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q==}
    +  /@jest/expect-utils/29.1.0:
    +    resolution: {integrity: sha512-YcD5CF2beqfoB07WqejPzWq1/l+zT3SgGwcqqIaPPG1DHFn/ea8MWWXeqV3KKMhTaOM1rZjlYplj1GQxR0XxKA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-get-type: 29.0.0
    +    dev: true
     
    -  /@jest/expect/29.0.3:
    -    resolution: {integrity: sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ==}
    +  /@jest/expect/29.1.0:
    +    resolution: {integrity: sha512-qWQttxE5rEwzvDW9G3f0o8chu1EKvIfsMQDeRlXMLCtsDS94ckcqEMNgbKKz0NYlZ45xrIoy+/pngt3ZFr/2zw==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      expect: 29.0.3
    -      jest-snapshot: 29.0.3
    +      expect: 29.1.0
    +      jest-snapshot: 29.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /@jest/fake-timers/29.0.3:
    -    resolution: {integrity: sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ==}
    +  /@jest/fake-timers/29.1.1:
    +    resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@sinonjs/fake-timers': 9.1.2
           '@types/node': 18.7.21
    -      jest-message-util: 29.0.3
    -      jest-mock: 29.0.3
    -      jest-util: 29.0.3
    +      jest-message-util: 29.1.0
    +      jest-mock: 29.1.1
    +      jest-util: 29.1.0
    +    dev: true
     
    -  /@jest/globals/29.0.3:
    -    resolution: {integrity: sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w==}
    +  /@jest/globals/29.1.1:
    +    resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/environment': 29.0.3
    -      '@jest/expect': 29.0.3
    -      '@jest/types': 29.0.3
    -      jest-mock: 29.0.3
    +      '@jest/environment': 29.1.1
    +      '@jest/expect': 29.1.0
    +      '@jest/types': 29.1.0
    +      jest-mock: 29.1.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /@jest/reporters/29.0.3:
    -    resolution: {integrity: sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw==}
    +  /@jest/reporters/29.1.0:
    +    resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
           node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
    @@ -2391,10 +2437,10 @@ packages:
             optional: true
         dependencies:
           '@bcoe/v8-coverage': 0.2.3
    -      '@jest/console': 29.0.3
    -      '@jest/test-result': 29.0.3
    -      '@jest/transform': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/console': 29.1.0
    +      '@jest/test-result': 29.1.0
    +      '@jest/transform': 29.1.0
    +      '@jest/types': 29.1.0
           '@jridgewell/trace-mapping': 0.3.15
           '@types/node': 18.7.21
           chalk: 4.1.2
    @@ -2407,9 +2453,9 @@ packages:
           istanbul-lib-report: 3.0.0
           istanbul-lib-source-maps: 4.0.1
           istanbul-reports: 3.1.5
    -      jest-message-util: 29.0.3
    -      jest-util: 29.0.3
    -      jest-worker: 29.0.3
    +      jest-message-util: 29.1.0
    +      jest-util: 29.1.0
    +      jest-worker: 29.1.0
           slash: 3.0.0
           string-length: 4.0.2
           strip-ansi: 6.0.1
    @@ -2417,12 +2463,14 @@ packages:
           v8-to-istanbul: 9.0.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /@jest/schemas/29.0.0:
         resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@sinclair/typebox': 0.24.43
    +    dev: true
     
       /@jest/source-map/29.0.0:
         resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==}
    @@ -2431,49 +2479,53 @@ packages:
           '@jridgewell/trace-mapping': 0.3.15
           callsites: 3.1.0
           graceful-fs: 4.2.10
    +    dev: true
     
    -  /@jest/test-result/29.0.3:
    -    resolution: {integrity: sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg==}
    +  /@jest/test-result/29.1.0:
    +    resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/console': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/console': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/istanbul-lib-coverage': 2.0.4
           collect-v8-coverage: 1.0.1
    +    dev: true
     
    -  /@jest/test-sequencer/29.0.3:
    -    resolution: {integrity: sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ==}
    +  /@jest/test-sequencer/29.1.0:
    +    resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/test-result': 29.0.3
    +      '@jest/test-result': 29.1.0
           graceful-fs: 4.2.10
    -      jest-haste-map: 29.0.3
    +      jest-haste-map: 29.1.0
           slash: 3.0.0
    +    dev: true
     
    -  /@jest/transform/29.0.3:
    -    resolution: {integrity: sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg==}
    +  /@jest/transform/29.1.0:
    +    resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/core': 7.12.3
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@jridgewell/trace-mapping': 0.3.15
           babel-plugin-istanbul: 6.1.1
           chalk: 4.1.2
           convert-source-map: 1.8.0
           fast-json-stable-stringify: 2.1.0
           graceful-fs: 4.2.10
    -      jest-haste-map: 29.0.3
    +      jest-haste-map: 29.1.0
           jest-regex-util: 29.0.0
    -      jest-util: 29.0.3
    +      jest-util: 29.1.0
           micromatch: 4.0.5
           pirates: 4.0.5
           slash: 3.0.0
           write-file-atomic: 4.0.2
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /@jest/types/29.0.3:
    -    resolution: {integrity: sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A==}
    +  /@jest/types/29.1.0:
    +    resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/schemas': 29.0.0
    @@ -2482,6 +2534,7 @@ packages:
           '@types/node': 18.7.21
           '@types/yargs': 17.0.13
           chalk: 4.1.2
    +    dev: true
     
       /@jridgewell/gen-mapping/0.3.2:
         resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
    @@ -2490,29 +2543,35 @@ packages:
           '@jridgewell/set-array': 1.1.2
           '@jridgewell/sourcemap-codec': 1.4.14
           '@jridgewell/trace-mapping': 0.3.15
    +    dev: true
     
       /@jridgewell/resolve-uri/3.1.0:
         resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
         engines: {node: '>=6.0.0'}
    +    dev: true
     
       /@jridgewell/set-array/1.1.2:
         resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
         engines: {node: '>=6.0.0'}
    +    dev: true
     
       /@jridgewell/sourcemap-codec/1.4.14:
         resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
    +    dev: true
     
       /@jridgewell/trace-mapping/0.3.15:
         resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==}
         dependencies:
           '@jridgewell/resolve-uri': 3.1.0
           '@jridgewell/sourcemap-codec': 1.4.14
    +    dev: true
     
       /@jridgewell/trace-mapping/0.3.9:
         resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
         dependencies:
           '@jridgewell/resolve-uri': 3.1.0
           '@jridgewell/sourcemap-codec': 1.4.14
    +    dev: true
     
       /@nodelib/fs.scandir/2.1.5:
         resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
    @@ -2555,6 +2614,7 @@ packages:
     
       /@sinclair/typebox/0.24.43:
         resolution: {integrity: sha512-1orQTvtazZmsPeBroJjysvsOQCYV2yjWlebkSY38pl5vr2tdLjEJ+LoxITlGNZaH2RE19WlAwQMkH/7C14wLfw==}
    +    dev: true
     
       /@sindresorhus/is/4.6.0:
         resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
    @@ -2565,11 +2625,13 @@ packages:
         resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==}
         dependencies:
           type-detect: 4.0.8
    +    dev: true
     
       /@sinonjs/fake-timers/9.1.2:
         resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==}
         dependencies:
           '@sinonjs/commons': 1.8.3
    +    dev: true
     
       /@szmarczak/http-timer/4.0.6:
         resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
    @@ -2590,15 +2652,19 @@ packages:
     
       /@tsconfig/node10/1.0.9:
         resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
    +    dev: true
     
       /@tsconfig/node12/1.0.11:
         resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
    +    dev: true
     
       /@tsconfig/node14/1.0.3:
         resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
    +    dev: true
     
       /@tsconfig/node16/1.0.3:
         resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
    +    dev: true
     
       /@types/babel__core/7.1.19:
         resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==}
    @@ -2608,22 +2674,26 @@ packages:
           '@types/babel__generator': 7.6.4
           '@types/babel__template': 7.4.1
           '@types/babel__traverse': 7.18.2
    +    dev: true
     
       /@types/babel__generator/7.6.4:
         resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@types/babel__template/7.4.1:
         resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
         dependencies:
           '@babel/parser': 7.19.1
           '@babel/types': 7.19.0
    +    dev: true
     
       /@types/babel__traverse/7.18.2:
         resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==}
         dependencies:
           '@babel/types': 7.19.0
    +    dev: true
     
       /@types/body-parser/1.19.2:
         resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
    @@ -2884,6 +2954,7 @@ packages:
         resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
         dependencies:
           '@types/node': 18.7.21
    +    dev: true
     
       /@types/http-cache-semantics/4.0.1:
         resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==}
    @@ -2891,16 +2962,19 @@ packages:
     
       /@types/istanbul-lib-coverage/2.0.4:
         resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
    +    dev: true
     
       /@types/istanbul-lib-report/3.0.0:
         resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
         dependencies:
           '@types/istanbul-lib-coverage': 2.0.4
    +    dev: true
     
       /@types/istanbul-reports/3.0.1:
         resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
         dependencies:
           '@types/istanbul-lib-report': 3.0.0
    +    dev: true
     
       /@types/jsdom/20.0.0:
         resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==}
    @@ -2963,6 +3037,11 @@ packages:
     
       /@types/prettier/2.7.0:
         resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==}
    +    dev: true
    +
    +  /@types/prettier/2.7.1:
    +    resolution: {integrity: sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==}
    +    dev: true
     
       /@types/qs/6.9.7:
         resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==}
    @@ -2995,6 +3074,7 @@ packages:
     
       /@types/stack-utils/2.0.1:
         resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
    +    dev: true
     
       /@types/stylis/4.0.2:
         resolution: {integrity: sha512-wtckGuk1eXUlUz0Qb1eXHG37Z7HWT2GfMdqRf8F/ifddTwadSS9Jwsqi4qtXk7cP7MtoyGVIHPElFCLc6HItbg==}
    @@ -3014,11 +3094,13 @@ packages:
     
       /@types/yargs-parser/21.0.0:
         resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
    +    dev: true
     
       /@types/yargs/17.0.13:
         resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==}
         dependencies:
           '@types/yargs-parser': 21.0.0
    +    dev: true
     
       /@types/yauzl/2.10.0:
         resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
    @@ -3028,6 +3110,32 @@ packages:
         dev: true
         optional: true
     
    +  /@typescript-eslint/eslint-plugin/5.38.0_4gkcvl6qsi23tqqawfqgcwtp54:
    +    resolution: {integrity: sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      '@typescript-eslint/parser': ^5.0.0
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/parser': 5.38.0_7ilbxdl5iguzcjriqqcg2m5cku
    +      '@typescript-eslint/scope-manager': 5.38.0
    +      '@typescript-eslint/type-utils': 5.38.0_7ilbxdl5iguzcjriqqcg2m5cku
    +      '@typescript-eslint/utils': 5.38.0_7ilbxdl5iguzcjriqqcg2m5cku
    +      debug: 4.3.4
    +      eslint: 8.24.0
    +      ignore: 5.2.0
    +      regexpp: 3.2.0
    +      semver: 7.3.7
    +      tsutils: 3.21.0_typescript@4.8.3
    +      typescript: 4.8.3
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /@typescript-eslint/eslint-plugin/5.38.0_wsb62dxj2oqwgas4kadjymcmry:
         resolution: {integrity: sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    @@ -3054,6 +3162,26 @@ packages:
           - supports-color
         dev: true
     
    +  /@typescript-eslint/parser/5.38.0_7ilbxdl5iguzcjriqqcg2m5cku:
    +    resolution: {integrity: sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/scope-manager': 5.38.0
    +      '@typescript-eslint/types': 5.38.0
    +      '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3
    +      debug: 4.3.4
    +      eslint: 8.24.0
    +      typescript: 4.8.3
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /@typescript-eslint/parser/5.38.0_irgkl5vooow2ydyo6aokmferha:
         resolution: {integrity: sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    @@ -3082,6 +3210,26 @@ packages:
           '@typescript-eslint/visitor-keys': 5.38.0
         dev: true
     
    +  /@typescript-eslint/type-utils/5.38.0_7ilbxdl5iguzcjriqqcg2m5cku:
    +    resolution: {integrity: sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: '*'
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3
    +      '@typescript-eslint/utils': 5.38.0_7ilbxdl5iguzcjriqqcg2m5cku
    +      debug: 4.3.4
    +      eslint: 8.24.0
    +      tsutils: 3.21.0_typescript@4.8.3
    +      typescript: 4.8.3
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /@typescript-eslint/type-utils/5.38.0_irgkl5vooow2ydyo6aokmferha:
         resolution: {integrity: sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    @@ -3128,6 +3276,24 @@ packages:
           - supports-color
         dev: true
     
    +  /@typescript-eslint/utils/5.38.0_7ilbxdl5iguzcjriqqcg2m5cku:
    +    resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +    dependencies:
    +      '@types/json-schema': 7.0.11
    +      '@typescript-eslint/scope-manager': 5.38.0
    +      '@typescript-eslint/types': 5.38.0
    +      '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3
    +      eslint: 8.24.0
    +      eslint-scope: 5.1.1
    +      eslint-utils: 3.0.0_eslint@8.24.0
    +    transitivePeerDependencies:
    +      - supports-color
    +      - typescript
    +    dev: true
    +
       /@typescript-eslint/utils/5.38.0_irgkl5vooow2ydyo6aokmferha:
         resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    @@ -3287,6 +3453,7 @@ packages:
       /acorn-walk/8.2.0:
         resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
         engines: {node: '>=0.4.0'}
    +    dev: true
     
       /acorn/7.4.1:
         resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
    @@ -3298,6 +3465,7 @@ packages:
         resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==}
         engines: {node: '>=0.4.0'}
         hasBin: true
    +    dev: true
     
       /add-stream/1.0.0:
         resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
    @@ -3365,6 +3533,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           type-fest: 0.21.3
    +    dev: true
     
       /ansi-html/0.0.7:
         resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==}
    @@ -3380,6 +3549,7 @@ packages:
       /ansi-regex/5.0.1:
         resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
         engines: {node: '>=8'}
    +    dev: true
     
       /ansi-regex/6.0.1:
         resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
    @@ -3396,16 +3566,19 @@ packages:
         engines: {node: '>=4'}
         dependencies:
           color-convert: 1.9.3
    +    dev: true
     
       /ansi-styles/4.3.0:
         resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
         engines: {node: '>=8'}
         dependencies:
           color-convert: 2.0.1
    +    dev: true
     
       /ansi-styles/5.2.0:
         resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
         engines: {node: '>=10'}
    +    dev: true
     
       /ansi-styles/6.1.1:
         resolution: {integrity: sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==}
    @@ -3418,6 +3591,7 @@ packages:
         dependencies:
           normalize-path: 3.0.0
           picomatch: 2.3.1
    +    dev: true
     
       /app-path/3.3.0:
         resolution: {integrity: sha512-EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA==}
    @@ -3439,11 +3613,13 @@ packages:
     
       /arg/4.1.3:
         resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
    +    dev: true
     
       /argparse/1.0.10:
         resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
         dependencies:
           sprintf-js: 1.0.3
    +    dev: true
     
       /argparse/2.0.1:
         resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
    @@ -3562,14 +3738,14 @@ packages:
           - debug
         dev: true
     
    -  /babel-jest/29.0.3_@babel+core@7.12.3:
    -    resolution: {integrity: sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg==}
    +  /babel-jest/29.1.0_@babel+core@7.12.3:
    +    resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
           '@babel/core': ^7.8.0
         dependencies:
           '@babel/core': 7.12.3
    -      '@jest/transform': 29.0.3
    +      '@jest/transform': 29.1.0
           '@types/babel__core': 7.1.19
           babel-plugin-istanbul: 6.1.1
           babel-preset-jest: 29.0.2_@babel+core@7.12.3
    @@ -3578,6 +3754,7 @@ packages:
           slash: 3.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /babel-plugin-dynamic-import-node/2.3.3:
         resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
    @@ -3596,6 +3773,7 @@ packages:
           test-exclude: 6.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /babel-plugin-jest-hoist/29.0.2:
         resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==}
    @@ -3605,6 +3783,7 @@ packages:
           '@babel/types': 7.19.0
           '@types/babel__core': 7.1.19
           '@types/babel__traverse': 7.18.2
    +    dev: true
     
       /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.12.3:
         resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==}
    @@ -3660,6 +3839,7 @@ packages:
           '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3
           '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3
           '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3
    +    dev: true
     
       /babel-preset-jest/29.0.2_@babel+core@7.12.3:
         resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==}
    @@ -3670,6 +3850,7 @@ packages:
           '@babel/core': 7.12.3
           babel-plugin-jest-hoist: 29.0.2
           babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3
    +    dev: true
     
       /babelify/10.0.0_@babel+core@7.12.3:
         resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==}
    @@ -3690,6 +3871,7 @@ packages:
     
       /balanced-match/1.0.2:
         resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
    +    dev: true
     
       /base/0.11.2:
         resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
    @@ -3765,6 +3947,7 @@ packages:
         dependencies:
           balanced-match: 1.0.2
           concat-map: 0.0.1
    +    dev: true
     
       /braces/2.3.2:
         resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
    @@ -3789,6 +3972,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           fill-range: 7.0.1
    +    dev: true
     
       /browser-process-hrtime/1.0.0:
         resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
    @@ -3815,6 +3999,7 @@ packages:
         resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
         dependencies:
           node-int64: 0.4.0
    +    dev: true
     
       /buffer-crc32/0.2.13:
         resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
    @@ -3827,6 +4012,7 @@ packages:
     
       /buffer-from/1.1.2:
         resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
    +    dev: true
     
       /buffer-shims/1.0.0:
         resolution: {integrity: sha512-Zy8ZXMyxIT6RMTeY7OP/bDndfj6bwCan7SS98CEndS6deHwWPpseeHlwarNcBim+etXnF9HBc1non5JgDaJU1g==}
    @@ -3919,6 +4105,7 @@ packages:
       /callsites/3.1.0:
         resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
         engines: {node: '>=6'}
    +    dev: true
     
       /camelcase-keys/6.2.2:
         resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
    @@ -3932,10 +4119,12 @@ packages:
       /camelcase/5.3.1:
         resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
         engines: {node: '>=6'}
    +    dev: true
     
       /camelcase/6.3.0:
         resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
         engines: {node: '>=10'}
    +    dev: true
     
       /caniuse-lite/1.0.30001409:
         resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==}
    @@ -3980,6 +4169,7 @@ packages:
           ansi-styles: 3.2.1
           escape-string-regexp: 1.0.5
           supports-color: 5.5.0
    +    dev: true
     
       /chalk/3.0.0:
         resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
    @@ -3995,10 +4185,12 @@ packages:
         dependencies:
           ansi-styles: 4.3.0
           supports-color: 7.2.0
    +    dev: true
     
       /char-regex/1.0.2:
         resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
         engines: {node: '>=10'}
    +    dev: true
     
       /character-entities-html4/1.1.4:
         resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==}
    @@ -4046,9 +4238,11 @@ packages:
     
       /ci-info/3.4.0:
         resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==}
    +    dev: true
     
       /cjs-module-lexer/1.2.2:
         resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==}
    +    dev: true
     
       /cjson/0.3.0:
         resolution: {integrity: sha512-bBRQcCIHzI1IVH59fR0bwGrFmi3Btb/JNwM/n401i1DnYgWndpsUBiQRAddLflkZage20A2d25OAWZZk0vBRlA==}
    @@ -4118,6 +4312,7 @@ packages:
           string-width: 4.2.3
           strip-ansi: 6.0.1
           wrap-ansi: 7.0.0
    +    dev: true
     
       /clone-buffer/1.0.0:
         resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
    @@ -4150,6 +4345,7 @@ packages:
       /co/4.6.0:
         resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
         engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
    +    dev: true
     
       /collapse-white-space/1.0.6:
         resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==}
    @@ -4157,6 +4353,7 @@ packages:
     
       /collect-v8-coverage/1.0.1:
         resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
    +    dev: true
     
       /collection-visit/1.0.0:
         resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
    @@ -4170,18 +4367,22 @@ packages:
         resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
         dependencies:
           color-name: 1.1.3
    +    dev: true
     
       /color-convert/2.0.1:
         resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
         engines: {node: '>=7.0.0'}
         dependencies:
           color-name: 1.1.4
    +    dev: true
     
       /color-name/1.1.3:
         resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
    +    dev: true
     
       /color-name/1.1.4:
         resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
    +    dev: true
     
       /colorette/2.0.19:
         resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==}
    @@ -4241,6 +4442,7 @@ packages:
     
       /concat-map/0.0.1:
         resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
    +    dev: true
     
       /concat-stream/1.5.2:
         resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==}
    @@ -4481,6 +4683,7 @@ packages:
         resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
         dependencies:
           safe-buffer: 5.1.2
    +    dev: true
     
       /cookie-signature/1.0.6:
         resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
    @@ -4550,6 +4753,7 @@ packages:
     
       /create-require/1.1.1:
         resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
    +    dev: true
     
       /cross-spawn/6.0.5:
         resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
    @@ -4569,6 +4773,7 @@ packages:
           path-key: 3.1.1
           shebang-command: 2.0.0
           which: 2.0.2
    +    dev: true
     
       /css-tree/1.0.0-alpha.39:
         resolution: {integrity: sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==}
    @@ -4610,7 +4815,7 @@ packages:
           - jest
         dev: true
     
    -  /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@29.0.3:
    +  /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@29.1.1:
         resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==}
         engines: {node: '>=8'}
         peerDependencies:
    @@ -4620,7 +4825,7 @@ packages:
           cypress: 10.8.0
           fs-extra: 7.0.1
           glob: 7.2.3
    -      jest-image-snapshot: 4.2.0_jest@29.0.3
    +      jest-image-snapshot: 4.2.0_jest@29.1.1
           pkg-dir: 3.0.0
           term-img: 4.1.0
         transitivePeerDependencies:
    @@ -5040,6 +5245,7 @@ packages:
             optional: true
         dependencies:
           ms: 2.1.2
    +    dev: true
     
       /debug/4.3.4_supports-color@8.1.1:
         resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
    @@ -5091,6 +5297,7 @@ packages:
     
       /dedent/0.7.0:
         resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
    +    dev: true
     
       /deep-eql/3.0.1:
         resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==}
    @@ -5106,6 +5313,7 @@ packages:
       /deepmerge/4.2.2:
         resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
         engines: {node: '>=0.10.0'}
    +    dev: true
     
       /defer-to-connect/2.0.1:
         resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
    @@ -5201,6 +5409,7 @@ packages:
       /detect-newline/3.1.0:
         resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
         engines: {node: '>=8'}
    +    dev: true
     
       /detective/5.2.1:
         resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
    @@ -5215,10 +5424,12 @@ packages:
       /diff-sequences/29.0.0:
         resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
       /diff/4.0.2:
         resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
         engines: {node: '>=0.3.1'}
    +    dev: true
     
       /diff/5.1.0:
         resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
    @@ -5419,6 +5630,7 @@ packages:
       /emittery/0.10.2:
         resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==}
         engines: {node: '>=12'}
    +    dev: true
     
       /emoji-regex/6.1.1:
         resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==}
    @@ -5426,6 +5638,7 @@ packages:
     
       /emoji-regex/8.0.0:
         resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
    +    dev: true
     
       /emoji-regex/9.2.2:
         resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
    @@ -5458,6 +5671,7 @@ packages:
         resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
         dependencies:
           is-arrayish: 0.2.1
    +    dev: true
     
       /error/7.2.1:
         resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==}
    @@ -5688,6 +5902,7 @@ packages:
       /escalade/3.1.1:
         resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
         engines: {node: '>=6'}
    +    dev: true
     
       /escape-html/1.0.3:
         resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
    @@ -5696,10 +5911,12 @@ packages:
       /escape-string-regexp/1.0.5:
         resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
         engines: {node: '>=0.8.0'}
    +    dev: true
     
       /escape-string-regexp/2.0.0:
         resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
         engines: {node: '>=8'}
    +    dev: true
     
       /escape-string-regexp/4.0.0:
         resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
    @@ -5753,6 +5970,15 @@ packages:
           eslint: 8.23.1
         dev: true
     
    +  /eslint-config-prettier/8.5.0_eslint@8.24.0:
    +    resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
    +    hasBin: true
    +    peerDependencies:
    +      eslint: '>=7.0.0'
    +    dependencies:
    +      eslint: 8.24.0
    +    dev: true
    +
       /eslint-plugin-cypress/2.12.1_eslint@8.23.1:
         resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==}
         peerDependencies:
    @@ -5762,13 +5988,22 @@ packages:
           globals: 11.12.0
         dev: true
     
    +  /eslint-plugin-cypress/2.12.1_eslint@8.24.0:
    +    resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==}
    +    peerDependencies:
    +      eslint: '>= 3.2.1'
    +    dependencies:
    +      eslint: 8.24.0
    +      globals: 11.12.0
    +    dev: true
    +
       /eslint-plugin-html/7.1.0:
         resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==}
         dependencies:
           htmlparser2: 8.0.1
         dev: true
     
    -  /eslint-plugin-jest/27.0.4_qsk6uocri6piwezqjqcgw24zhq:
    +  /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla:
         resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
    @@ -5784,13 +6019,12 @@ packages:
           '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry
           '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha
           eslint: 8.23.1
    -      jest: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq
         transitivePeerDependencies:
           - supports-color
           - typescript
         dev: true
     
    -  /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla:
    +  /eslint-plugin-jest/27.0.4_zkp6l2tlaisogzmthlfexujswu:
         resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
    @@ -5803,9 +6037,10 @@ packages:
           jest:
             optional: true
         dependencies:
    -      '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry
    -      '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha
    -      eslint: 8.23.1
    +      '@typescript-eslint/eslint-plugin': 5.38.0_4gkcvl6qsi23tqqawfqgcwtp54
    +      '@typescript-eslint/utils': 5.38.0_7ilbxdl5iguzcjriqqcg2m5cku
    +      eslint: 8.24.0
    +      jest: 29.1.1_pliq7kienpvt4xqyxfwljzmzmq
         transitivePeerDependencies:
           - supports-color
           - typescript
    @@ -5829,6 +6064,24 @@ packages:
           - supports-color
         dev: true
     
    +  /eslint-plugin-jsdoc/39.3.6_eslint@8.24.0:
    +    resolution: {integrity: sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==}
    +    engines: {node: ^14 || ^16 || ^17 || ^18}
    +    peerDependencies:
    +      eslint: ^7.0.0 || ^8.0.0
    +    dependencies:
    +      '@es-joy/jsdoccomment': 0.31.0
    +      comment-parser: 1.3.1
    +      debug: 4.3.4
    +      escape-string-regexp: 4.0.0
    +      eslint: 8.24.0
    +      esquery: 1.4.0
    +      semver: 7.3.7
    +      spdx-expression-parse: 3.0.1
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /eslint-plugin-json/3.1.0:
         resolution: {integrity: sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==}
         engines: {node: '>=12.0'}
    @@ -5849,6 +6102,18 @@ packages:
           - supports-color
         dev: true
     
    +  /eslint-plugin-markdown/3.0.0_eslint@8.24.0:
    +    resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +    dependencies:
    +      eslint: 8.24.0
    +      mdast-util-from-markdown: 0.8.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /eslint-scope/5.1.1:
         resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
         engines: {node: '>=8.0.0'}
    @@ -5875,6 +6140,16 @@ packages:
           eslint-visitor-keys: 2.1.0
         dev: true
     
    +  /eslint-utils/3.0.0_eslint@8.24.0:
    +    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
    +    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
    +    peerDependencies:
    +      eslint: '>=5'
    +    dependencies:
    +      eslint: 8.24.0
    +      eslint-visitor-keys: 2.1.0
    +    dev: true
    +
       /eslint-visitor-keys/2.1.0:
         resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
         engines: {node: '>=10'}
    @@ -5933,6 +6208,54 @@ packages:
           - supports-color
         dev: true
     
    +  /eslint/8.24.0:
    +    resolution: {integrity: sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    hasBin: true
    +    dependencies:
    +      '@eslint/eslintrc': 1.3.2
    +      '@humanwhocodes/config-array': 0.10.5
    +      '@humanwhocodes/gitignore-to-minimatch': 1.0.2
    +      '@humanwhocodes/module-importer': 1.0.1
    +      ajv: 6.12.6
    +      chalk: 4.1.2
    +      cross-spawn: 7.0.3
    +      debug: 4.3.4
    +      doctrine: 3.0.0
    +      escape-string-regexp: 4.0.0
    +      eslint-scope: 7.1.1
    +      eslint-utils: 3.0.0_eslint@8.24.0
    +      eslint-visitor-keys: 3.3.0
    +      espree: 9.4.0
    +      esquery: 1.4.0
    +      esutils: 2.0.3
    +      fast-deep-equal: 3.1.3
    +      file-entry-cache: 6.0.1
    +      find-up: 5.0.0
    +      glob-parent: 6.0.2
    +      globals: 13.17.0
    +      globby: 11.1.0
    +      grapheme-splitter: 1.0.4
    +      ignore: 5.2.0
    +      import-fresh: 3.3.0
    +      imurmurhash: 0.1.4
    +      is-glob: 4.0.3
    +      js-sdsl: 4.1.4
    +      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.1
    +      text-table: 0.2.0
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /espree/9.4.0:
         resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    @@ -5952,6 +6275,7 @@ packages:
         resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
         engines: {node: '>=4'}
         hasBin: true
    +    dev: true
     
       /esquery/1.4.0:
         resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
    @@ -6059,6 +6383,7 @@ packages:
           onetime: 5.1.2
           signal-exit: 3.0.7
           strip-final-newline: 2.0.0
    +    dev: true
     
       /execa/6.1.0:
         resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}
    @@ -6085,6 +6410,7 @@ packages:
       /exit/0.1.2:
         resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
         engines: {node: '>= 0.8.0'}
    +    dev: true
     
       /expand-brackets/2.1.4:
         resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
    @@ -6101,15 +6427,16 @@ packages:
           - supports-color
         dev: true
     
    -  /expect/29.0.3:
    -    resolution: {integrity: sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q==}
    +  /expect/29.1.0:
    +    resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/expect-utils': 29.0.3
    +      '@jest/expect-utils': 29.1.0
           jest-get-type: 29.0.0
    -      jest-matcher-utils: 29.0.3
    -      jest-message-util: 29.0.3
    -      jest-util: 29.0.3
    +      jest-matcher-utils: 29.1.0
    +      jest-message-util: 29.1.0
    +      jest-util: 29.1.0
    +    dev: true
     
       /express/4.18.1:
         resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==}
    @@ -6225,6 +6552,7 @@ packages:
     
       /fast-json-stable-stringify/2.1.0:
         resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
    +    dev: true
     
       /fast-levenshtein/2.0.6:
         resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
    @@ -6247,6 +6575,7 @@ packages:
         resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
         dependencies:
           bser: 2.1.1
    +    dev: true
     
       /fd-slicer/1.1.0:
         resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
    @@ -6288,6 +6617,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           to-regex-range: 5.0.1
    +    dev: true
     
       /filter-obj/1.1.0:
         resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
    @@ -6329,6 +6659,7 @@ packages:
         dependencies:
           locate-path: 5.0.0
           path-exists: 4.0.0
    +    dev: true
     
       /find-up/5.0.0:
         resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
    @@ -6472,6 +6803,7 @@ packages:
     
       /fs.realpath/1.0.0:
         resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
    +    dev: true
     
       /fsevents/2.3.2:
         resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
    @@ -6490,14 +6822,17 @@ packages:
     
       /function-bind/1.1.1:
         resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
    +    dev: true
     
       /gensync/1.0.0-beta.2:
         resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
         engines: {node: '>=6.9.0'}
    +    dev: true
     
       /get-caller-file/2.0.5:
         resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
         engines: {node: 6.* || 8.* || >= 10.*}
    +    dev: true
     
       /get-func-name/2.0.0:
         resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
    @@ -6514,6 +6849,7 @@ packages:
       /get-package-type/0.1.0:
         resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
         engines: {node: '>=8.0.0'}
    +    dev: true
     
       /get-pkg-repo/4.2.1:
         resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==}
    @@ -6553,6 +6889,7 @@ packages:
       /get-stream/6.0.1:
         resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
         engines: {node: '>=10'}
    +    dev: true
     
       /get-uri/3.0.2:
         resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==}
    @@ -6689,6 +7026,7 @@ packages:
           minimatch: 3.1.2
           once: 1.4.0
           path-is-absolute: 1.0.1
    +    dev: true
     
       /global-dirs/0.1.1:
         resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
    @@ -6711,6 +7049,7 @@ packages:
       /globals/11.12.0:
         resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
         engines: {node: '>=4'}
    +    dev: true
     
       /globals/13.17.0:
         resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==}
    @@ -6765,6 +7104,7 @@ packages:
     
       /graceful-fs/4.2.10:
         resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
    +    dev: true
     
       /grapheme-splitter/1.0.4:
         resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
    @@ -6822,10 +7162,12 @@ packages:
       /has-flag/3.0.0:
         resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
         engines: {node: '>=4'}
    +    dev: true
     
       /has-flag/4.0.0:
         resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
         engines: {node: '>=8'}
    +    dev: true
     
       /has-property-descriptors/1.0.0:
         resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
    @@ -6874,6 +7216,7 @@ packages:
         engines: {node: '>= 0.4.0'}
         dependencies:
           function-bind: 1.1.1
    +    dev: true
     
       /hast-util-is-element/1.1.0:
         resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==}
    @@ -6933,6 +7276,7 @@ packages:
     
       /html-escaper/2.0.2:
         resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
    +    dev: true
     
       /html-void-elements/1.0.5:
         resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==}
    @@ -7032,6 +7376,7 @@ packages:
       /human-signals/2.1.0:
         resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
         engines: {node: '>=10.17.0'}
    +    dev: true
     
       /human-signals/3.0.1:
         resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
    @@ -7094,10 +7439,12 @@ packages:
         dependencies:
           pkg-dir: 4.2.0
           resolve-cwd: 3.0.0
    +    dev: true
     
       /imurmurhash/0.1.4:
         resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
         engines: {node: '>=0.8.19'}
    +    dev: true
     
       /indent-string/4.0.0:
         resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
    @@ -7109,9 +7456,11 @@ packages:
         dependencies:
           once: 1.4.0
           wrappy: 1.0.2
    +    dev: true
     
       /inherits/2.0.4:
         resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
    +    dev: true
     
       /ini/1.3.8:
         resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
    @@ -7180,6 +7529,7 @@ packages:
     
       /is-arrayish/0.2.1:
         resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
    +    dev: true
     
       /is-binary-path/2.1.0:
         resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
    @@ -7208,6 +7558,7 @@ packages:
         resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==}
         dependencies:
           has: 1.0.3
    +    dev: true
     
       /is-data-descriptor/0.1.4:
         resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
    @@ -7265,6 +7616,7 @@ packages:
       /is-fullwidth-code-point/3.0.0:
         resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
         engines: {node: '>=8'}
    +    dev: true
     
       /is-fullwidth-code-point/4.0.0:
         resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
    @@ -7274,6 +7626,7 @@ packages:
       /is-generator-fn/2.1.0:
         resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
         engines: {node: '>=6'}
    +    dev: true
     
       /is-glob/3.1.0:
         resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==}
    @@ -7316,6 +7669,7 @@ packages:
       /is-number/7.0.0:
         resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
         engines: {node: '>=0.12.0'}
    +    dev: true
     
       /is-obj/2.0.0:
         resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
    @@ -7369,6 +7723,7 @@ packages:
       /is-stream/2.0.1:
         resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
         engines: {node: '>=8'}
    +    dev: true
     
       /is-stream/3.0.0:
         resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
    @@ -7430,6 +7785,7 @@ packages:
     
       /isexe/2.0.0:
         resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
    +    dev: true
     
       /isobject/2.1.0:
         resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
    @@ -7450,6 +7806,7 @@ packages:
       /istanbul-lib-coverage/3.2.0:
         resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
         engines: {node: '>=8'}
    +    dev: true
     
       /istanbul-lib-instrument/5.2.0:
         resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==}
    @@ -7462,6 +7819,7 @@ packages:
           semver: 6.3.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /istanbul-lib-report/3.0.0:
         resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
    @@ -7470,6 +7828,7 @@ packages:
           istanbul-lib-coverage: 3.2.0
           make-dir: 3.1.0
           supports-color: 7.2.0
    +    dev: true
     
       /istanbul-lib-source-maps/4.0.1:
         resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
    @@ -7480,6 +7839,7 @@ packages:
           source-map: 0.6.1
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
       /istanbul-reports/3.1.5:
         resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
    @@ -7487,6 +7847,7 @@ packages:
         dependencies:
           html-escaper: 2.0.2
           istanbul-lib-report: 3.0.0
    +    dev: true
     
       /iterm2-version/4.2.0:
         resolution: {integrity: sha512-IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ==}
    @@ -7502,35 +7863,37 @@ packages:
         dependencies:
           execa: 5.1.1
           p-limit: 3.1.0
    +    dev: true
     
    -  /jest-circus/29.0.3:
    -    resolution: {integrity: sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg==}
    +  /jest-circus/29.1.1:
    +    resolution: {integrity: sha512-Ii+3JIeLF3z8j2E7fPSjPjXJLBdbAcZyfEiALRQ1Fk+FWTIfuEfZrZcjSaBdz/k/waoq+bPf9x/vBCXIAyLLEQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/environment': 29.0.3
    -      '@jest/expect': 29.0.3
    -      '@jest/test-result': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/environment': 29.1.1
    +      '@jest/expect': 29.1.0
    +      '@jest/test-result': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           chalk: 4.1.2
           co: 4.6.0
           dedent: 0.7.0
           is-generator-fn: 2.1.0
    -      jest-each: 29.0.3
    -      jest-matcher-utils: 29.0.3
    -      jest-message-util: 29.0.3
    -      jest-runtime: 29.0.3
    -      jest-snapshot: 29.0.3
    -      jest-util: 29.0.3
    +      jest-each: 29.1.0
    +      jest-matcher-utils: 29.1.0
    +      jest-message-util: 29.1.0
    +      jest-runtime: 29.1.1
    +      jest-snapshot: 29.1.0
    +      jest-util: 29.1.0
           p-limit: 3.1.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
           slash: 3.0.0
           stack-utils: 2.0.5
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /jest-cli/29.0.3_pliq7kienpvt4xqyxfwljzmzmq:
    -    resolution: {integrity: sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ==}
    +  /jest-cli/29.1.1_pliq7kienpvt4xqyxfwljzmzmq:
    +    resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         hasBin: true
         peerDependencies:
    @@ -7539,25 +7902,26 @@ packages:
           node-notifier:
             optional: true
         dependencies:
    -      '@jest/core': 29.0.3_ts-node@10.9.1
    -      '@jest/test-result': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/core': 29.1.1_ts-node@10.9.1
    +      '@jest/test-result': 29.1.0
    +      '@jest/types': 29.1.0
           chalk: 4.1.2
           exit: 0.1.2
           graceful-fs: 4.2.10
           import-local: 3.1.0
    -      jest-config: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq
    -      jest-util: 29.0.3
    -      jest-validate: 29.0.3
    +      jest-config: 29.1.1_pliq7kienpvt4xqyxfwljzmzmq
    +      jest-util: 29.1.0
    +      jest-validate: 29.1.0
           prompts: 2.4.2
           yargs: 17.5.1
         transitivePeerDependencies:
           - '@types/node'
           - supports-color
           - ts-node
    +    dev: true
     
    -  /jest-config/29.0.3_pliq7kienpvt4xqyxfwljzmzmq:
    -    resolution: {integrity: sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew==}
    +  /jest-config/29.1.1_pliq7kienpvt4xqyxfwljzmzmq:
    +    resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
           '@types/node': '*'
    @@ -7569,89 +7933,96 @@ packages:
             optional: true
         dependencies:
           '@babel/core': 7.12.3
    -      '@jest/test-sequencer': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/test-sequencer': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
    -      babel-jest: 29.0.3_@babel+core@7.12.3
    +      babel-jest: 29.1.0_@babel+core@7.12.3
           chalk: 4.1.2
           ci-info: 3.4.0
           deepmerge: 4.2.2
           glob: 7.2.3
           graceful-fs: 4.2.10
    -      jest-circus: 29.0.3
    -      jest-environment-node: 29.0.3
    +      jest-circus: 29.1.1
    +      jest-environment-node: 29.1.1
           jest-get-type: 29.0.0
           jest-regex-util: 29.0.0
    -      jest-resolve: 29.0.3
    -      jest-runner: 29.0.3
    -      jest-util: 29.0.3
    -      jest-validate: 29.0.3
    +      jest-resolve: 29.1.0
    +      jest-runner: 29.1.1
    +      jest-util: 29.1.0
    +      jest-validate: 29.1.0
           micromatch: 4.0.5
           parse-json: 5.2.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
           slash: 3.0.0
           strip-json-comments: 3.1.1
           ts-node: 10.9.1_ke6ijd35va4xbeayrnhu4zwagm
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /jest-diff/29.0.3:
    -    resolution: {integrity: sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg==}
    +  /jest-diff/29.1.0:
    +    resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           diff-sequences: 29.0.0
           jest-get-type: 29.0.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
    +    dev: true
     
       /jest-docblock/29.0.0:
         resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           detect-newline: 3.1.0
    +    dev: true
     
    -  /jest-each/29.0.3:
    -    resolution: {integrity: sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg==}
    +  /jest-each/29.1.0:
    +    resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           chalk: 4.1.2
           jest-get-type: 29.0.0
    -      jest-util: 29.0.3
    -      pretty-format: 29.0.3
    +      jest-util: 29.1.0
    +      pretty-format: 29.1.0
    +    dev: true
     
    -  /jest-environment-node/29.0.3:
    -    resolution: {integrity: sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg==}
    +  /jest-environment-node/29.1.1:
    +    resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/environment': 29.0.3
    -      '@jest/fake-timers': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/environment': 29.1.1
    +      '@jest/fake-timers': 29.1.1
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
    -      jest-mock: 29.0.3
    -      jest-util: 29.0.3
    +      jest-mock: 29.1.1
    +      jest-util: 29.1.0
    +    dev: true
     
       /jest-get-type/29.0.0:
         resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  /jest-haste-map/29.0.3:
    -    resolution: {integrity: sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A==}
    +  /jest-haste-map/29.1.0:
    +    resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@types/graceful-fs': 4.1.5
           '@types/node': 18.7.21
           anymatch: 3.1.2
           fb-watchman: 2.0.2
           graceful-fs: 4.2.10
           jest-regex-util: 29.0.0
    -      jest-util: 29.0.3
    -      jest-worker: 29.0.3
    +      jest-util: 29.1.0
    +      jest-worker: 29.1.0
           micromatch: 4.0.5
           walker: 1.0.8
         optionalDependencies:
           fsevents: 2.3.2
    +    dev: true
     
       /jest-image-snapshot/4.2.0:
         resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==}
    @@ -7670,7 +8041,7 @@ packages:
           ssim.js: 3.5.0
         dev: true
     
    -  /jest-image-snapshot/4.2.0_jest@29.0.3:
    +  /jest-image-snapshot/4.2.0_jest@29.1.1:
         resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==}
         engines: {node: '>= 10.14.2'}
         peerDependencies:
    @@ -7679,7 +8050,7 @@ packages:
           chalk: 1.1.3
           get-stdin: 5.0.1
           glur: 1.1.2
    -      jest: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq
    +      jest: 29.1.1_pliq7kienpvt4xqyxfwljzmzmq
           lodash: 4.17.21
           mkdirp: 0.5.6
           pixelmatch: 5.3.0
    @@ -7688,44 +8059,49 @@ packages:
           ssim.js: 3.5.0
         dev: true
     
    -  /jest-leak-detector/29.0.3:
    -    resolution: {integrity: sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ==}
    +  /jest-leak-detector/29.1.0:
    +    resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-get-type: 29.0.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
    +    dev: true
     
    -  /jest-matcher-utils/29.0.3:
    -    resolution: {integrity: sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w==}
    +  /jest-matcher-utils/29.1.0:
    +    resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
    -      jest-diff: 29.0.3
    +      jest-diff: 29.1.0
           jest-get-type: 29.0.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
    +    dev: true
     
    -  /jest-message-util/29.0.3:
    -    resolution: {integrity: sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg==}
    +  /jest-message-util/29.1.0:
    +    resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/code-frame': 7.18.6
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@types/stack-utils': 2.0.1
           chalk: 4.1.2
           graceful-fs: 4.2.10
           micromatch: 4.0.5
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
           slash: 3.0.0
           stack-utils: 2.0.5
    +    dev: true
     
    -  /jest-mock/29.0.3:
    -    resolution: {integrity: sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww==}
    +  /jest-mock/29.1.1:
    +    resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
    +      jest-util: 29.1.0
    +    dev: true
     
    -  /jest-pnp-resolver/1.2.2_jest-resolve@29.0.3:
    +  /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0:
         resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==}
         engines: {node: '>=6'}
         peerDependencies:
    @@ -7734,94 +8110,100 @@ packages:
           jest-resolve:
             optional: true
         dependencies:
    -      jest-resolve: 29.0.3
    +      jest-resolve: 29.1.0
    +    dev: true
     
       /jest-regex-util/29.0.0:
         resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    +    dev: true
     
    -  /jest-resolve-dependencies/29.0.3:
    -    resolution: {integrity: sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw==}
    +  /jest-resolve-dependencies/29.1.1:
    +    resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           jest-regex-util: 29.0.0
    -      jest-snapshot: 29.0.3
    +      jest-snapshot: 29.1.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /jest-resolve/29.0.3:
    -    resolution: {integrity: sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg==}
    +  /jest-resolve/29.1.0:
    +    resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           chalk: 4.1.2
           graceful-fs: 4.2.10
    -      jest-haste-map: 29.0.3
    -      jest-pnp-resolver: 1.2.2_jest-resolve@29.0.3
    -      jest-util: 29.0.3
    -      jest-validate: 29.0.3
    +      jest-haste-map: 29.1.0
    +      jest-pnp-resolver: 1.2.2_jest-resolve@29.1.0
    +      jest-util: 29.1.0
    +      jest-validate: 29.1.0
           resolve: 1.22.1
           resolve.exports: 1.1.0
           slash: 3.0.0
    +    dev: true
     
    -  /jest-runner/29.0.3:
    -    resolution: {integrity: sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw==}
    +  /jest-runner/29.1.1:
    +    resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/console': 29.0.3
    -      '@jest/environment': 29.0.3
    -      '@jest/test-result': 29.0.3
    -      '@jest/transform': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/console': 29.1.0
    +      '@jest/environment': 29.1.1
    +      '@jest/test-result': 29.1.0
    +      '@jest/transform': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           chalk: 4.1.2
           emittery: 0.10.2
           graceful-fs: 4.2.10
           jest-docblock: 29.0.0
    -      jest-environment-node: 29.0.3
    -      jest-haste-map: 29.0.3
    -      jest-leak-detector: 29.0.3
    -      jest-message-util: 29.0.3
    -      jest-resolve: 29.0.3
    -      jest-runtime: 29.0.3
    -      jest-util: 29.0.3
    -      jest-watcher: 29.0.3
    -      jest-worker: 29.0.3
    +      jest-environment-node: 29.1.1
    +      jest-haste-map: 29.1.0
    +      jest-leak-detector: 29.1.0
    +      jest-message-util: 29.1.0
    +      jest-resolve: 29.1.0
    +      jest-runtime: 29.1.1
    +      jest-util: 29.1.0
    +      jest-watcher: 29.1.0
    +      jest-worker: 29.1.0
           p-limit: 3.1.0
           source-map-support: 0.5.13
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /jest-runtime/29.0.3:
    -    resolution: {integrity: sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ==}
    +  /jest-runtime/29.1.1:
    +    resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/environment': 29.0.3
    -      '@jest/fake-timers': 29.0.3
    -      '@jest/globals': 29.0.3
    +      '@jest/environment': 29.1.1
    +      '@jest/fake-timers': 29.1.1
    +      '@jest/globals': 29.1.1
           '@jest/source-map': 29.0.0
    -      '@jest/test-result': 29.0.3
    -      '@jest/transform': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/test-result': 29.1.0
    +      '@jest/transform': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           chalk: 4.1.2
           cjs-module-lexer: 1.2.2
           collect-v8-coverage: 1.0.1
           glob: 7.2.3
           graceful-fs: 4.2.10
    -      jest-haste-map: 29.0.3
    -      jest-message-util: 29.0.3
    -      jest-mock: 29.0.3
    +      jest-haste-map: 29.1.0
    +      jest-message-util: 29.1.0
    +      jest-mock: 29.1.1
           jest-regex-util: 29.0.0
    -      jest-resolve: 29.0.3
    -      jest-snapshot: 29.0.3
    -      jest-util: 29.0.3
    +      jest-resolve: 29.1.0
    +      jest-snapshot: 29.1.0
    +      jest-util: 29.1.0
           slash: 3.0.0
           strip-bom: 4.0.0
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /jest-snapshot/29.0.3:
    -    resolution: {integrity: sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew==}
    +  /jest-snapshot/29.1.0:
    +    resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@babel/core': 7.12.3
    @@ -7830,72 +8212,77 @@ packages:
           '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3
           '@babel/traverse': 7.19.1
           '@babel/types': 7.19.0
    -      '@jest/expect-utils': 29.0.3
    -      '@jest/transform': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/expect-utils': 29.1.0
    +      '@jest/transform': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/babel__traverse': 7.18.2
    -      '@types/prettier': 2.7.0
    +      '@types/prettier': 2.7.1
           babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3
           chalk: 4.1.2
    -      expect: 29.0.3
    +      expect: 29.1.0
           graceful-fs: 4.2.10
    -      jest-diff: 29.0.3
    +      jest-diff: 29.1.0
           jest-get-type: 29.0.0
    -      jest-haste-map: 29.0.3
    -      jest-matcher-utils: 29.0.3
    -      jest-message-util: 29.0.3
    -      jest-util: 29.0.3
    +      jest-haste-map: 29.1.0
    +      jest-matcher-utils: 29.1.0
    +      jest-message-util: 29.1.0
    +      jest-util: 29.1.0
           natural-compare: 1.4.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
           semver: 7.3.7
         transitivePeerDependencies:
           - supports-color
    +    dev: true
     
    -  /jest-util/29.0.3:
    -    resolution: {integrity: sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ==}
    +  /jest-util/29.1.0:
    +    resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           chalk: 4.1.2
           ci-info: 3.4.0
           graceful-fs: 4.2.10
           picomatch: 2.3.1
    +    dev: true
     
    -  /jest-validate/29.0.3:
    -    resolution: {integrity: sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw==}
    +  /jest-validate/29.1.0:
    +    resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/types': 29.0.3
    +      '@jest/types': 29.1.0
           camelcase: 6.3.0
           chalk: 4.1.2
           jest-get-type: 29.0.0
           leven: 3.1.0
    -      pretty-format: 29.0.3
    +      pretty-format: 29.1.0
    +    dev: true
     
    -  /jest-watcher/29.0.3:
    -    resolution: {integrity: sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw==}
    +  /jest-watcher/29.1.0:
    +    resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
    -      '@jest/test-result': 29.0.3
    -      '@jest/types': 29.0.3
    +      '@jest/test-result': 29.1.0
    +      '@jest/types': 29.1.0
           '@types/node': 18.7.21
           ansi-escapes: 4.3.2
           chalk: 4.1.2
           emittery: 0.10.2
    -      jest-util: 29.0.3
    +      jest-util: 29.1.0
           string-length: 4.0.2
    +    dev: true
     
    -  /jest-worker/29.0.3:
    -    resolution: {integrity: sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng==}
    +  /jest-worker/29.1.0:
    +    resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@types/node': 18.7.21
           merge-stream: 2.0.0
           supports-color: 8.1.1
    +    dev: true
     
    -  /jest/29.0.3_pliq7kienpvt4xqyxfwljzmzmq:
    -    resolution: {integrity: sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ==}
    +  /jest/29.1.1_pliq7kienpvt4xqyxfwljzmzmq:
    +    resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         hasBin: true
         peerDependencies:
    @@ -7904,14 +8291,15 @@ packages:
           node-notifier:
             optional: true
         dependencies:
    -      '@jest/core': 29.0.3_ts-node@10.9.1
    -      '@jest/types': 29.0.3
    +      '@jest/core': 29.1.1_ts-node@10.9.1
    +      '@jest/types': 29.1.0
           import-local: 3.1.0
    -      jest-cli: 29.0.3_pliq7kienpvt4xqyxfwljzmzmq
    +      jest-cli: 29.1.1_pliq7kienpvt4xqyxfwljzmzmq
         transitivePeerDependencies:
           - '@types/node'
           - supports-color
           - ts-node
    +    dev: true
     
       /jison-lex/0.3.4:
         resolution: {integrity: sha512-EBh5wrXhls1cUwROd5DcDHR1sG7CdsCFSqY1027+YA1RGxz+BX2TDLAhdsQf40YEtFDGoiO0Qm8PpnBl2EzDJw==}
    @@ -7961,6 +8349,7 @@ packages:
     
       /js-tokens/4.0.0:
         resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
    +    dev: true
     
       /js-yaml/3.14.1:
         resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
    @@ -7968,6 +8357,7 @@ packages:
         dependencies:
           argparse: 1.0.10
           esprima: 4.0.1
    +    dev: true
     
       /js-yaml/4.1.0:
         resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
    @@ -8036,6 +8426,7 @@ packages:
         resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
         engines: {node: '>=4'}
         hasBin: true
    +    dev: true
     
       /json-buffer/3.0.1:
         resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
    @@ -8047,6 +8438,7 @@ packages:
     
       /json-parse-even-better-errors/2.3.1:
         resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
    +    dev: true
     
       /json-schema-traverse/0.4.1:
         resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
    @@ -8072,6 +8464,7 @@ packages:
         resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
         engines: {node: '>=6'}
         hasBin: true
    +    dev: true
     
       /jsonc-parser/3.2.0:
         resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
    @@ -8162,6 +8555,7 @@ packages:
       /kleur/3.0.3:
         resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
         engines: {node: '>=6'}
    +    dev: true
     
       /kleur/4.1.5:
         resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
    @@ -8209,6 +8603,7 @@ packages:
       /leven/3.1.0:
         resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
         engines: {node: '>=6'}
    +    dev: true
     
       /levn/0.3.0:
         resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
    @@ -8237,6 +8632,7 @@ packages:
     
       /lines-and-columns/1.2.4:
         resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
    +    dev: true
     
       /lint-staged/13.0.3:
         resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==}
    @@ -8340,6 +8736,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           p-locate: 4.1.0
    +    dev: true
     
       /locate-path/6.0.0:
         resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
    @@ -8429,20 +8826,24 @@ packages:
         engines: {node: '>=10'}
         dependencies:
           yallist: 4.0.0
    +    dev: true
     
       /make-dir/3.1.0:
         resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
         engines: {node: '>=8'}
         dependencies:
           semver: 6.3.0
    +    dev: true
     
       /make-error/1.3.6:
         resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
    +    dev: true
     
       /makeerror/1.0.12:
         resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
         dependencies:
           tmpl: 1.0.5
    +    dev: true
     
       /map-cache/0.2.2:
         resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
    @@ -8612,6 +9013,7 @@ packages:
     
       /merge-stream/2.0.0:
         resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
    +    dev: true
     
       /merge2/1.4.1:
         resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
    @@ -8835,6 +9237,7 @@ packages:
         dependencies:
           braces: 3.0.2
           picomatch: 2.3.1
    +    dev: true
     
       /mime-db/1.52.0:
         resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
    @@ -8863,6 +9266,7 @@ packages:
       /mimic-fn/2.1.0:
         resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
         engines: {node: '>=6'}
    +    dev: true
     
       /mimic-fn/4.0.0:
         resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
    @@ -8888,6 +9292,7 @@ packages:
         resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
         dependencies:
           brace-expansion: 1.1.11
    +    dev: true
     
       /minimist-options/4.1.0:
         resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
    @@ -8971,6 +9376,7 @@ packages:
     
       /ms/2.1.2:
         resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
    +    dev: true
     
       /ms/2.1.3:
         resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
    @@ -9003,6 +9409,7 @@ packages:
     
       /natural-compare/1.4.0:
         resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
    +    dev: true
     
       /negotiator/0.6.3:
         resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
    @@ -9036,6 +9443,7 @@ packages:
     
       /node-int64/0.4.0:
         resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    +    dev: true
     
       /node-releases/2.0.6:
         resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
    @@ -9082,6 +9490,7 @@ packages:
       /normalize-path/3.0.0:
         resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
         engines: {node: '>=0.10.0'}
    +    dev: true
     
       /normalize-url/6.1.0:
         resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
    @@ -9107,6 +9516,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           path-key: 3.1.1
    +    dev: true
     
       /npm-run-path/5.1.0:
         resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
    @@ -9181,12 +9591,14 @@ packages:
         resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
         dependencies:
           wrappy: 1.0.2
    +    dev: true
     
       /onetime/5.1.2:
         resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
         engines: {node: '>=6'}
         dependencies:
           mimic-fn: 2.1.0
    +    dev: true
     
       /onetime/6.0.0:
         resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
    @@ -9256,12 +9668,14 @@ packages:
         engines: {node: '>=6'}
         dependencies:
           p-try: 2.2.0
    +    dev: true
     
       /p-limit/3.1.0:
         resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
         engines: {node: '>=10'}
         dependencies:
           yocto-queue: 0.1.0
    +    dev: true
     
       /p-locate/2.0.0:
         resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
    @@ -9282,6 +9696,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           p-limit: 2.3.0
    +    dev: true
     
       /p-locate/5.0.0:
         resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
    @@ -9305,6 +9720,7 @@ packages:
       /p-try/2.2.0:
         resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
         engines: {node: '>=6'}
    +    dev: true
     
       /pac-proxy-agent/5.0.0:
         resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==}
    @@ -9390,6 +9806,7 @@ packages:
           error-ex: 1.3.2
           json-parse-even-better-errors: 2.3.1
           lines-and-columns: 1.2.4
    +    dev: true
     
       /parse-path/4.0.4:
         resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==}
    @@ -9445,10 +9862,12 @@ packages:
       /path-exists/4.0.0:
         resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
         engines: {node: '>=8'}
    +    dev: true
     
       /path-is-absolute/1.0.1:
         resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
         engines: {node: '>=0.10.0'}
    +    dev: true
     
       /path-key/2.0.1:
         resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
    @@ -9458,6 +9877,7 @@ packages:
       /path-key/3.1.1:
         resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
         engines: {node: '>=8'}
    +    dev: true
     
       /path-key/4.0.0:
         resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
    @@ -9466,6 +9886,7 @@ packages:
     
       /path-parse/1.0.7:
         resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
    +    dev: true
     
       /path-root-regex/0.1.2:
         resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
    @@ -9520,6 +9941,7 @@ packages:
       /picomatch/2.3.1:
         resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
         engines: {node: '>=8.6'}
    +    dev: true
     
       /pidtree/0.6.0:
         resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
    @@ -9545,6 +9967,7 @@ packages:
       /pirates/4.0.5:
         resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
         engines: {node: '>= 6'}
    +    dev: true
     
       /pixelmatch/5.3.0:
         resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==}
    @@ -9565,6 +9988,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           find-up: 4.1.0
    +    dev: true
     
       /plist/3.0.6:
         resolution: {integrity: sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==}
    @@ -9641,13 +10065,14 @@ packages:
         engines: {node: '>=6'}
         dev: true
     
    -  /pretty-format/29.0.3:
    -    resolution: {integrity: sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q==}
    +  /pretty-format/29.1.0:
    +    resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         dependencies:
           '@jest/schemas': 29.0.0
           ansi-styles: 5.2.0
           react-is: 18.2.0
    +    dev: true
     
       /process-nextick-args/1.0.7:
         resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==}
    @@ -9663,6 +10088,7 @@ packages:
         dependencies:
           kleur: 3.0.3
           sisteransi: 1.0.5
    +    dev: true
     
       /property-information/4.2.0:
         resolution: {integrity: sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==}
    @@ -9826,6 +10252,7 @@ packages:
     
       /react-is/18.2.0:
         resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
    +    dev: true
     
       /read-pkg-up/3.0.0:
         resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
    @@ -10179,6 +10606,7 @@ packages:
       /require-directory/2.1.1:
         resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
         engines: {node: '>=0.10.0'}
    +    dev: true
     
       /require-from-string/2.0.2:
         resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
    @@ -10202,6 +10630,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           resolve-from: 5.0.0
    +    dev: true
     
       /resolve-from/4.0.0:
         resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
    @@ -10211,6 +10640,7 @@ packages:
       /resolve-from/5.0.0:
         resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
         engines: {node: '>=8'}
    +    dev: true
     
       /resolve-global/1.0.0:
         resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==}
    @@ -10234,6 +10664,7 @@ packages:
       /resolve.exports/1.1.0:
         resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==}
         engines: {node: '>=10'}
    +    dev: true
     
       /resolve/1.1.7:
         resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==}
    @@ -10246,6 +10677,7 @@ packages:
           is-core-module: 2.10.0
           path-parse: 1.0.7
           supports-preserve-symlinks-flag: 1.0.0
    +    dev: true
     
       /responselike/2.0.1:
         resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
    @@ -10334,6 +10766,7 @@ packages:
     
       /safe-buffer/5.1.2:
         resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
    +    dev: true
     
       /safe-buffer/5.2.1:
         resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
    @@ -10369,10 +10802,12 @@ packages:
       /semver/5.7.1:
         resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
         hasBin: true
    +    dev: true
     
       /semver/6.3.0:
         resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
         hasBin: true
    +    dev: true
     
       /semver/7.3.7:
         resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
    @@ -10380,6 +10815,7 @@ packages:
         hasBin: true
         dependencies:
           lru-cache: 6.0.0
    +    dev: true
     
       /send/0.18.0:
         resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
    @@ -10444,6 +10880,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           shebang-regex: 3.0.0
    +    dev: true
     
       /shebang-regex/1.0.0:
         resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
    @@ -10453,6 +10890,7 @@ packages:
       /shebang-regex/3.0.0:
         resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
         engines: {node: '>=8'}
    +    dev: true
     
       /shell-quote/1.7.3:
         resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==}
    @@ -10468,6 +10906,7 @@ packages:
     
       /signal-exit/3.0.7:
         resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
    +    dev: true
     
       /sirv/2.0.2:
         resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
    @@ -10480,10 +10919,12 @@ packages:
     
       /sisteransi/1.0.5:
         resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
    +    dev: true
     
       /slash/3.0.0:
         resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
         engines: {node: '>=8'}
    +    dev: true
     
       /slash/4.0.0:
         resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
    @@ -10593,6 +11034,7 @@ packages:
         dependencies:
           buffer-from: 1.1.2
           source-map: 0.6.1
    +    dev: true
     
       /source-map-url/0.4.1:
         resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
    @@ -10611,10 +11053,12 @@ packages:
       /source-map/0.5.7:
         resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
         engines: {node: '>=0.10.0'}
    +    dev: true
     
       /source-map/0.6.1:
         resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
         engines: {node: '>=0.10.0'}
    +    dev: true
     
       /space-separated-tokens/1.1.5:
         resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
    @@ -10678,6 +11122,7 @@ packages:
     
       /sprintf-js/1.0.3:
         resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
    +    dev: true
     
       /sshpk/1.17.0:
         resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==}
    @@ -10704,6 +11149,7 @@ packages:
         engines: {node: '>=10'}
         dependencies:
           escape-string-regexp: 2.0.0
    +    dev: true
     
       /standard-version/9.5.0:
         resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==}
    @@ -10799,6 +11245,7 @@ packages:
         dependencies:
           char-regex: 1.0.2
           strip-ansi: 6.0.1
    +    dev: true
     
       /string-template/0.2.1:
         resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==}
    @@ -10811,6 +11258,7 @@ packages:
           emoji-regex: 8.0.0
           is-fullwidth-code-point: 3.0.0
           strip-ansi: 6.0.1
    +    dev: true
     
       /string-width/5.1.2:
         resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
    @@ -10862,6 +11310,7 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           ansi-regex: 5.0.1
    +    dev: true
     
       /strip-ansi/7.0.1:
         resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
    @@ -10878,6 +11327,7 @@ packages:
       /strip-bom/4.0.0:
         resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
         engines: {node: '>=8'}
    +    dev: true
     
       /strip-eof/1.0.0:
         resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
    @@ -10887,6 +11337,7 @@ packages:
       /strip-final-newline/2.0.0:
         resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
         engines: {node: '>=6'}
    +    dev: true
     
       /strip-final-newline/3.0.0:
         resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
    @@ -10908,6 +11359,7 @@ packages:
       /strip-json-comments/3.1.1:
         resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
         engines: {node: '>=8'}
    +    dev: true
     
       /strip-literal/0.4.2:
         resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==}
    @@ -10935,6 +11387,7 @@ packages:
         engines: {node: '>=4'}
         dependencies:
           has-flag: 3.0.0
    +    dev: true
     
       /supports-color/6.1.0:
         resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==}
    @@ -10948,12 +11401,14 @@ packages:
         engines: {node: '>=8'}
         dependencies:
           has-flag: 4.0.0
    +    dev: true
     
       /supports-color/8.1.1:
         resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
         engines: {node: '>=10'}
         dependencies:
           has-flag: 4.0.0
    +    dev: true
     
       /supports-hyperlinks/2.3.0:
         resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
    @@ -10961,10 +11416,12 @@ packages:
         dependencies:
           has-flag: 4.0.0
           supports-color: 7.2.0
    +    dev: true
     
       /supports-preserve-symlinks-flag/1.0.0:
         resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
         engines: {node: '>= 0.4'}
    +    dev: true
     
       /symbol-tree/3.2.4:
         resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
    @@ -10984,6 +11441,7 @@ packages:
         dependencies:
           ansi-escapes: 4.3.2
           supports-hyperlinks: 2.3.0
    +    dev: true
     
       /test-exclude/6.0.0:
         resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
    @@ -10992,6 +11450,7 @@ packages:
           '@istanbuljs/schema': 0.1.3
           glob: 7.2.3
           minimatch: 3.1.2
    +    dev: true
     
       /text-extensions/1.9.0:
         resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
    @@ -11070,6 +11529,7 @@ packages:
     
       /tmpl/1.0.5:
         resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
    +    dev: true
     
       /to-absolute-glob/2.0.2:
         resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==}
    @@ -11082,6 +11542,7 @@ packages:
       /to-fast-properties/2.0.0:
         resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
         engines: {node: '>=4'}
    +    dev: true
     
       /to-object-path/0.3.0:
         resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
    @@ -11103,6 +11564,7 @@ packages:
         engines: {node: '>=8.0'}
         dependencies:
           is-number: 7.0.0
    +    dev: true
     
       /to-regex/3.0.2:
         resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
    @@ -11250,6 +11712,7 @@ packages:
           typescript: 4.8.3
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
    +    dev: true
     
       /ts-node/10.9.1_typescript@4.8.3:
         resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
    @@ -11331,6 +11794,7 @@ packages:
       /type-detect/4.0.8:
         resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
         engines: {node: '>=4'}
    +    dev: true
     
       /type-fest/0.18.1:
         resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
    @@ -11345,6 +11809,7 @@ packages:
       /type-fest/0.21.3:
         resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
         engines: {node: '>=10'}
    +    dev: true
     
       /type-fest/0.6.0:
         resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
    @@ -11372,6 +11837,7 @@ packages:
         resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==}
         engines: {node: '>=4.2.0'}
         hasBin: true
    +    dev: true
     
       /uglify-js/3.17.1:
         resolution: {integrity: sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q==}
    @@ -11640,6 +12106,7 @@ packages:
     
       /v8-compile-cache-lib/3.0.1:
         resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
    +    dev: true
     
       /v8-to-istanbul/9.0.1:
         resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==}
    @@ -11648,6 +12115,7 @@ packages:
           '@jridgewell/trace-mapping': 0.3.15
           '@types/istanbul-lib-coverage': 2.0.4
           convert-source-map: 1.8.0
    +    dev: true
     
       /validate-npm-package-license/3.0.4:
         resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
    @@ -11936,6 +12404,7 @@ packages:
         resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
         dependencies:
           makeerror: 1.0.12
    +    dev: true
     
       /webdriver/7.16.11:
         resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==}
    @@ -12031,6 +12500,7 @@ packages:
         hasBin: true
         dependencies:
           isexe: 2.0.0
    +    dev: true
     
       /word-wrap/1.2.3:
         resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
    @@ -12057,9 +12527,11 @@ packages:
           ansi-styles: 4.3.0
           string-width: 4.2.3
           strip-ansi: 6.0.1
    +    dev: true
     
       /wrappy/1.0.2:
         resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
    +    dev: true
     
       /write-file-atomic/4.0.2:
         resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
    @@ -12067,6 +12539,7 @@ packages:
         dependencies:
           imurmurhash: 0.1.4
           signal-exit: 3.0.7
    +    dev: true
     
       /ws/7.4.6:
         resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==}
    @@ -12141,6 +12614,7 @@ packages:
       /y18n/5.0.8:
         resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
         engines: {node: '>=10'}
    +    dev: true
     
       /yallist/3.1.1:
         resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
    @@ -12148,6 +12622,7 @@ packages:
     
       /yallist/4.0.0:
         resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
    +    dev: true
     
       /yaml/1.10.2:
         resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
    @@ -12175,6 +12650,7 @@ packages:
       /yargs-parser/21.1.1:
         resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
         engines: {node: '>=12'}
    +    dev: true
     
       /yargs/15.4.1:
         resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
    @@ -12230,6 +12706,7 @@ packages:
           string-width: 4.2.3
           y18n: 5.0.8
           yargs-parser: 21.1.1
    +    dev: true
     
       /yauzl/2.10.0:
         resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
    @@ -12241,10 +12718,12 @@ packages:
       /yn/3.1.1:
         resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
         engines: {node: '>=6'}
    +    dev: true
     
       /yocto-queue/0.1.0:
         resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
         engines: {node: '>=10'}
    +    dev: true
     
       /zwitch/2.0.2:
         resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==}
    
    From 053a20bd330b95b38bcf584c5f258a3c9dbc53a2 Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Wed, 28 Sep 2022 15:33:33 +0200
    Subject: [PATCH 0162/1038] Returning the borders to the e2e tests
    
    ---
     cypress/platform/e2e.html | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/cypress/platform/e2e.html b/cypress/platform/e2e.html
    index c686afc886..99f70d7c10 100644
    --- a/cypress/platform/e2e.html
    +++ b/cypress/platform/e2e.html
    @@ -2,7 +2,7 @@
       
         
         
    -    
         
         
    Date: Wed, 28 Sep 2022 17:17:32 +0200
    Subject: [PATCH 0163/1038] Removed test folder
    
    ---
     .../rm-mermaid-mindmap-detector/package.json  | 75 -------------------
     .../src/mindmapDetector.ts                    |  8 --
     .../rm-mermaid-mindmap-detector/tsconfig.json |  9 ---
     3 files changed, 92 deletions(-)
     delete mode 100644 packages/rm-mermaid-mindmap-detector/package.json
     delete mode 100644 packages/rm-mermaid-mindmap-detector/src/mindmapDetector.ts
     delete mode 100644 packages/rm-mermaid-mindmap-detector/tsconfig.json
    
    diff --git a/packages/rm-mermaid-mindmap-detector/package.json b/packages/rm-mermaid-mindmap-detector/package.json
    deleted file mode 100644
    index 10ad34835f..0000000000
    --- a/packages/rm-mermaid-mindmap-detector/package.json
    +++ /dev/null
    @@ -1,75 +0,0 @@
    -{
    -  "name": "@mermaid-js/mermaid-mindmap",
    -  "version": "9.2.0-rc2",
    -  "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
    -  "main": "dist/mermaid-mindmap.core.mjs",
    -  "module": "dist/mermaid-mindmap.core.mjs",
    -  "type": "module",
    -  "exports": {
    -    ".": {
    -      "require": "./dist/mermaid-mindmap.min.js",
    -      "import": "./dist/mermaid-mindmap.core.mjs"
    -    },
    -    "./*": "./*"
    -  },
    -  "keywords": [
    -    "diagram",
    -    "markdown",
    -    "mindmap",
    -    "mermaid"
    -  ],
    -  "scripts": {
    -    "clean": "rimraf dist",
    -    "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly",
    -    "build:watch": "yarn build:code --watch",
    -    "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"",
    -    "build": "yarn clean; yarn build:esbuild",
    -    "dev": "node .esbuild/serve.cjs",
    -    "release": "yarn build",
    -    "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .",
    -    "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .",
    -    "lint:jison": "ts-node-esm src/jison/lint.mts",
    -    "ci": "vitest run",
    -    "test": "yarn lint && vitest run",
    -    "test:watch": "vitest --coverage --watch",
    -    "todo-prepublishOnly": "yarn build && yarn test",
    -    "todo-prepare": "concurrently \"husky install ../../.husky\" \"yarn build\"",
    -    "todo-pre-commit": "lint-staged"
    -  },
    -  "repository": {
    -    "type": "git",
    -    "url": "https://github.com/mermaid-js/mermaid"
    -  },
    -  "author": "Knut Sveidqvist",
    -  "license": "MIT",
    -  "standard": {
    -    "ignore": [
    -      "**/parser/*.js",
    -      "dist/**/*.js",
    -      "cypress/**/*.js"
    -    ],
    -    "globals": [
    -      "page"
    -    ]
    -  },
    -  "dependencies": {
    -    "@braintree/sanitize-url": "^6.0.0",
    -    "d3": "^7.0.0",
    -    "mermaid": "workspace:*",
    -    "non-layered-tidy-tree-layout": "^2.0.2"
    -  },
    -  "devDependencies": {
    -    "concurrently": "^7.4.0",
    -    "rimraf": "^3.0.2"
    -  },
    -  "resolutions": {
    -    "d3": "^7.0.0"
    -  },
    -  "files": [
    -    "dist"
    -  ],
    -  "sideEffects": [
    -    "**/*.css",
    -    "**/*.scss"
    -  ]
    -}
    diff --git a/packages/rm-mermaid-mindmap-detector/src/mindmapDetector.ts b/packages/rm-mermaid-mindmap-detector/src/mindmapDetector.ts
    deleted file mode 100644
    index 33aec7deb6..0000000000
    --- a/packages/rm-mermaid-mindmap-detector/src/mindmapDetector.ts
    +++ /dev/null
    @@ -1,8 +0,0 @@
    -// import type { DiagramDetector } from '../../diagram-api/detectType';
    -
    -// export const mindmapDetector: DiagramDetector = (txt) => {
    -//   return txt.match(/^\s*mindmap/) !== null;
    -// };
    -export const mindmapDetector = (txt: string) => {
    -  return txt.match(/^\s*mindmap/) !== null;
    -};
    diff --git a/packages/rm-mermaid-mindmap-detector/tsconfig.json b/packages/rm-mermaid-mindmap-detector/tsconfig.json
    deleted file mode 100644
    index 45076b7b52..0000000000
    --- a/packages/rm-mermaid-mindmap-detector/tsconfig.json
    +++ /dev/null
    @@ -1,9 +0,0 @@
    -{
    -  "extends": "../../tsconfig.json",
    -  "compilerOptions": {
    -    "rootDir": "./src",
    -    "outDir": "./dist"
    -  },
    -  "include": ["./src/**/*.ts"],
    -  "typeRoots": ["./src/types"]
    -}
    
    From f46f8752cadf0cf069a00e1d2c4e1243a921a020 Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Wed, 28 Sep 2022 17:49:47 +0200
    Subject: [PATCH 0164/1038] Adding example diagram as a template for a new
     diagram
    
    ---
     .vite/build.ts                                | 17 ++++-
     cypress/platform/knsv2.html                   |  8 +--
     packages/mermaid-example-diagram/package.json | 70 +++++++++++++++++++
     .../src/add-diagram.ts                        | 17 +++++
     .../src/exampleDetector.ts                    |  3 +
     .../src/exampleDiagram.spec.js                | 16 +++++
     .../src/exampleDiagramDb.js                   | 33 +++++++++
     .../src/exampleDiagramRenderer.js             | 55 +++++++++++++++
     .../src/mermaidUtils.ts                       | 63 +++++++++++++++++
     .../src/parser/exampleDiagram.jison           | 43 ++++++++++++
     .../mermaid-example-diagram/src/registry.ts   | 33 +++++++++
     .../mermaid-example-diagram/src/styles.js     |  3 +
     .../src/types/index.d.ts                      |  7 ++
     .../mermaid-example-diagram/tsconfig.json     |  9 +++
     pnpm-lock.yaml                                | 13 +---
     15 files changed, 374 insertions(+), 16 deletions(-)
     create mode 100644 packages/mermaid-example-diagram/package.json
     create mode 100644 packages/mermaid-example-diagram/src/add-diagram.ts
     create mode 100644 packages/mermaid-example-diagram/src/exampleDetector.ts
     create mode 100644 packages/mermaid-example-diagram/src/exampleDiagram.spec.js
     create mode 100644 packages/mermaid-example-diagram/src/exampleDiagramDb.js
     create mode 100644 packages/mermaid-example-diagram/src/exampleDiagramRenderer.js
     create mode 100644 packages/mermaid-example-diagram/src/mermaidUtils.ts
     create mode 100644 packages/mermaid-example-diagram/src/parser/exampleDiagram.jison
     create mode 100644 packages/mermaid-example-diagram/src/registry.ts
     create mode 100644 packages/mermaid-example-diagram/src/styles.js
     create mode 100644 packages/mermaid-example-diagram/src/types/index.d.ts
     create mode 100644 packages/mermaid-example-diagram/tsconfig.json
    
    diff --git a/.vite/build.ts b/.vite/build.ts
    index 306e4cc053..6855d3e484 100644
    --- a/.vite/build.ts
    +++ b/.vite/build.ts
    @@ -29,6 +29,16 @@ const packageOptions = {
         packageName: 'mermaid-mindmap',
         file: 'registry.ts',
       },
    +  'mermaid-example-diagram': {
    +    name: 'mermaid-example-diagram',
    +    packageName: 'mermaid-example-diagram',
    +    file: 'add-diagram.ts',
    +  },
    +  'mermaid-example-diagram-detector': {
    +    name: 'mermaid-example-diagram-detector',
    +    packageName: 'mermaid-example-diagram',
    +    file: 'registry.ts',
    +  },
     };
     
     interface BuildOptions {
    @@ -97,7 +107,11 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
     
       if (watch && config.build) {
         config.build.watch = {
    -      include: ['packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**'],
    +      include: [
    +        'packages/mermaid-mindmap/src/**',
    +        'packages/mermaid/src/**',
    +        'packages/mermaid-example-diagram/src/**',
    +      ],
         };
       }
     
    @@ -122,6 +136,7 @@ const main = async () => {
     if (watch) {
       build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' }));
       build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
    +  build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
     } else {
       void main();
     }
    diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
    index f005e10881..4accb1b8de 100644
    --- a/cypress/platform/knsv2.html
    +++ b/cypress/platform/knsv2.html
    @@ -45,12 +45,11 @@
       
       
         
    Security check
    -
    -            flowchart LR
    -          A -> B
    +    
    +info
             
    -
    +    
                 mindmap
               root
                 ch1
    @@ -58,6 +57,7 @@
             
    + + + + + + diff --git a/packages/mermaid/src/dagre-wrapper/markers.js b/packages/mermaid/src/dagre-wrapper/markers.js index fa229d2314..c231eb3e5b 100644 --- a/packages/mermaid/src/dagre-wrapper/markers.js +++ b/packages/mermaid/src/dagre-wrapper/markers.js @@ -143,7 +143,7 @@ const point = (elem, type) => { .attr('id', type + '-pointEnd') .attr('class', 'marker ' + type) .attr('viewBox', '0 0 10 10') - .attr('refX', 9) + .attr('refX', 10) .attr('refY', 5) .attr('markerUnits', 'userSpaceOnUse') .attr('markerWidth', 12) From 9513e0e2d56786adced7465f6dc804c6f942c34f Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 29 Sep 2022 19:48:02 +0100 Subject: [PATCH 0173/1038] build: update pre-commit rules to use `pnpm` Update husky and lint-staged to use pnpm instead of yarn. --- .husky/pre-commit | 2 +- .lintstagedrc.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 025779ed2b..a9e30b9bec 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -yarn pre-commit +pnpm run pre-commit diff --git a/.lintstagedrc.json b/.lintstagedrc.json index 1e7c61dd80..a6c963ff65 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,6 +1,6 @@ { - "src/docs/**": ["yarn docs:build --git"], - "src/docs.mts": ["yarn docs:build --git"], + "src/docs/**": ["pnpm run docs:build --git"], + "src/docs.mts": ["pnpm run docs:build --git"], "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], - "*.jison": ["yarn lint:jison"] + "*.jison": ["pnpm run lint:jison"] } From 1cdb0ff72c5b9f2f1fabc6f0ef7f7b52efcb41d4 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 29 Sep 2022 19:48:54 +0100 Subject: [PATCH 0174/1038] build: re-enable `prepare` script for husky setup Re-enables the `pnpm run prepare` script. The prepare script is automatically run when running `pnpm install` locally. It both: - Sets up husky/git pre-commit scripts - Builds the `packages/mermaid/dist` folder. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 003439bb4f..e58109b324 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "test": "pnpm lint && vitest run", "test:watch": "vitest --coverage --watch", "prepublishOnly": "pnpm build && pnpm test", - "todo-prepare": "concurrently \"husky install\" \"pnpm build\"", + "prepare": "concurrently \"husky install\" \"pnpm build\"", "pre-commit": "lint-staged" }, "repository": { From 794b714fac0fa6602e5d9f1f286bb5983988eb58 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 29 Sep 2022 19:40:16 +0100 Subject: [PATCH 0175/1038] docs: replace `yarn` with `pnpm` in dev guide With the new mono-repo move (PR #3531), development must be done with `pnpm`. Using `memaid` can still be done with `yarn`/`npm` however. --- CONTRIBUTING.md | 6 +++--- docs/development.md | 5 ++--- packages/mermaid/src/docs/development.md | 5 ++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8171aeca99..d7efa8e418 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,8 +11,8 @@ Here are a few things to know to get you started on the right path. ```bash git clone git@github.com:mermaid-js/mermaid.git cd mermaid -yarn -yarn test +pnpm install +pnpm test ``` ## Committing code @@ -103,7 +103,7 @@ This is important so that, if someone else does a change to the grammar that doe This tests the rendering and visual appearance of the diagram. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks! -To start working with the e2e tests, run `yarn dev` to start the dev server, after that start cypress by running `cypress open` in the mermaid folder. (Make sure you have path to cypress in order, the binary is located in node_modules/.bin). +To start working with the e2e tests, run `pnpm run dev` to start the dev server, after that start cypress by running `pnpm exec cypress open` in the mermaid folder. The rendering tests are very straightforward to create. There is a function imgSnapshotTest. This function takes a diagram in text form, the mermaid options and renders that diagram in cypress. diff --git a/docs/development.md b/docs/development.md index 70762be865..3e0a7c8a63 100644 --- a/docs/development.md +++ b/docs/development.md @@ -72,9 +72,8 @@ This tests the rendering and visual appearance of the diagrams. This ensures tha To start working with the e2e tests: -1. Run `yarn dev` to start the dev server -2. Start **Cypress** by running `cypress open` in the **mermaid** folder. - (Make sure you have path to Cypress in order, the binary is located in `node_modules/.bin`). +1. Run `pnpm run dev` to start the dev server +2. Start **Cypress** by running `pnpm exec cypress open` in the **mermaid** folder. The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. diff --git a/packages/mermaid/src/docs/development.md b/packages/mermaid/src/docs/development.md index 95e5fe4174..80edb77197 100644 --- a/packages/mermaid/src/docs/development.md +++ b/packages/mermaid/src/docs/development.md @@ -70,9 +70,8 @@ This tests the rendering and visual appearance of the diagrams. This ensures tha To start working with the e2e tests: -1. Run `yarn dev` to start the dev server -2. Start **Cypress** by running `cypress open` in the **mermaid** folder. - (Make sure you have path to Cypress in order, the binary is located in `node_modules/.bin`). +1. Run `pnpm run dev` to start the dev server +2. Start **Cypress** by running `pnpm exec cypress open` in the **mermaid** folder. The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. From b8eab08119f3b34817d700504203e3a802ee73d0 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 29 Sep 2022 20:00:15 +0100 Subject: [PATCH 0176/1038] build(docs): fix `pnpm run docs:{build,verify}` Our docs script was searching for docs in the src/docs folder, which no longer exists. Instead, it should be looking at the packages/mermaid/src/docs folder. --- packages/mermaid/src/docs.mts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 04424b950a..a22dc59e20 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -41,7 +41,9 @@ import { remark } from 'remark'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; -const SOURCE_DOCS_DIR = 'src/docs'; +// These paths are from the root of the mono-repo, not from the +// mermaid sub-directory +const SOURCE_DOCS_DIR = 'packages/mermaid/src/docs'; const FINAL_DOCS_DIR = 'docs'; const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; From 70f94c3e444e9ddf026906c72b267234ac16fa0a Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 29 Sep 2022 20:02:16 +0100 Subject: [PATCH 0177/1038] chore(docs): run `pnpm run docs:build` Updates the auto-generated warning to tell people to edit packages/mermaid/src/docs instead of src/docs. --- docs/8.6.0_docs.md | 2 +- docs/CHANGELOG.md | 2 +- docs/Configuration.md | 2 +- docs/README.md | 2 +- docs/SUMMARY.md | 2 +- docs/Setup.md | 2 +- docs/Tutorials.md | 2 +- docs/_navbar.md | 2 +- docs/_sidebar.md | 2 +- docs/accessibility.md | 2 +- docs/breakingChanges.md | 2 +- docs/c4c.md | 2 +- docs/classDiagram.md | 2 +- docs/developer-docs/configuration.md | 2 +- docs/development.md | 2 +- docs/diagrams-and-syntax-and-examples/flowchart.md | 2 +- docs/directives.md | 2 +- docs/entityRelationshipDiagram.md | 2 +- docs/examples.md | 2 +- docs/faq.md | 2 +- docs/flowchart.md | 2 +- docs/gantt.md | 2 +- docs/gitgraph.md | 2 +- docs/index.html | 2 +- docs/integrations.md | 2 +- docs/introduction.md | 2 +- docs/landing/index.html | 2 +- docs/mermaidCLI.md | 2 +- docs/mindmap.md | 2 +- docs/n00b-advanced.md | 2 +- docs/n00b-gettingStarted.md | 2 +- docs/n00b-overview.md | 2 +- docs/n00b-syntaxReference.md | 2 +- docs/newDiagram.md | 2 +- docs/pie.md | 2 +- docs/requirementDiagram.md | 2 +- docs/security.md | 2 +- docs/sequenceDiagram.md | 2 +- docs/stateDiagram.md | 2 +- docs/theming.md | 2 +- docs/upgrading.md | 2 +- docs/usage.md | 2 +- docs/user-journey.md | 2 +- 43 files changed, 43 insertions(+), 43 deletions(-) diff --git a/docs/8.6.0_docs.md b/docs/8.6.0_docs.md index 6c7b7f50ca..cc812901e4 100644 --- a/docs/8.6.0_docs.md +++ b/docs/8.6.0_docs.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Version 8.6.0 Changes diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 06d04847cf..7dbfecee4a 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Change Log diff --git a/docs/Configuration.md b/docs/Configuration.md index 1cbaa228f5..4902dabdbe 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Configuration diff --git a/docs/README.md b/docs/README.md index 87d78b6c18..00e03c76d1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # About Mermaid diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 1b6153b89c..41156fee58 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Summary diff --git a/docs/Setup.md b/docs/Setup.md index 32effc9373..89a3e91460 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. diff --git a/docs/Tutorials.md b/docs/Tutorials.md index 0eac9ccfe6..0f9465a35c 100644 --- a/docs/Tutorials.md +++ b/docs/Tutorials.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Tutorials diff --git a/docs/_navbar.md b/docs/_navbar.md index 222926fc48..7f9f495a7b 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - Getting started diff --git a/docs/_sidebar.md b/docs/_sidebar.md index a97bd8d726..17cde68c9d 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - 📔 Introduction diff --git a/docs/accessibility.md b/docs/accessibility.md index 70ebef9d17..bce3da25d7 100644 --- a/docs/accessibility.md +++ b/docs/accessibility.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Accessibility Options diff --git a/docs/breakingChanges.md b/docs/breakingChanges.md index 01088b9dc4..964d89e4fa 100644 --- a/docs/breakingChanges.md +++ b/docs/breakingChanges.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Breaking changes diff --git a/docs/c4c.md b/docs/c4c.md index 48688f1a08..40dbb6fe6c 100644 --- a/docs/c4c.md +++ b/docs/c4c.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # C4 Diagrams diff --git a/docs/classDiagram.md b/docs/classDiagram.md index a273e12623..529933b983 100644 --- a/docs/classDiagram.md +++ b/docs/classDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Class diagrams diff --git a/docs/developer-docs/configuration.md b/docs/developer-docs/configuration.md index e764e200a7..ba3422f6d9 100644 --- a/docs/developer-docs/configuration.md +++ b/docs/developer-docs/configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Configuration diff --git a/docs/development.md b/docs/development.md index 70762be865..9c0363891f 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Development and Contribution 🙌 diff --git a/docs/diagrams-and-syntax-and-examples/flowchart.md b/docs/diagrams-and-syntax-and-examples/flowchart.md index b901867d19..a55c6292ac 100644 --- a/docs/diagrams-and-syntax-and-examples/flowchart.md +++ b/docs/diagrams-and-syntax-and-examples/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. --- diff --git a/docs/directives.md b/docs/directives.md index 8ef732008d..f814782f09 100644 --- a/docs/directives.md +++ b/docs/directives.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Directives diff --git a/docs/entityRelationshipDiagram.md b/docs/entityRelationshipDiagram.md index f6a3bb1433..78d058e786 100644 --- a/docs/entityRelationshipDiagram.md +++ b/docs/entityRelationshipDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Entity Relationship Diagrams diff --git a/docs/examples.md b/docs/examples.md index d717083c6a..b3175edac6 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Examples diff --git a/docs/faq.md b/docs/faq.md index ac5eeeb80b..a24b436b6a 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Frequently Asked Questions diff --git a/docs/flowchart.md b/docs/flowchart.md index 2a4265c574..fd2c95ffee 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Flowcharts - Basic Syntax diff --git a/docs/gantt.md b/docs/gantt.md index 6776f01c2b..9246f24ddb 100644 --- a/docs/gantt.md +++ b/docs/gantt.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Gantt diagrams diff --git a/docs/gitgraph.md b/docs/gitgraph.md index 5f86cf53c8..8efbf9fa5c 100644 --- a/docs/gitgraph.md +++ b/docs/gitgraph.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Gitgraph Diagrams diff --git a/docs/index.html b/docs/index.html index 0a41b516cc..c4eb48af8b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,6 +1,6 @@ - + mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, diff --git a/docs/integrations.md b/docs/integrations.md index c1ef5ec6fe..49c1034922 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Integrations diff --git a/docs/introduction.md b/docs/introduction.md index 992fbafc1f..72235794a5 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -1 +1 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. diff --git a/docs/landing/index.html b/docs/landing/index.html index 2431ad9bd2..2504d05809 100644 --- a/docs/landing/index.html +++ b/docs/landing/index.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <html lang="en"> - <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.--><head> + <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.--><head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> diff --git a/docs/mermaidCLI.md b/docs/mermaidCLI.md index 0d32c54728..01860cab2d 100644 --- a/docs/mermaidCLI.md +++ b/docs/mermaidCLI.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # mermaid CLI diff --git a/docs/mindmap.md b/docs/mindmap.md index 3d435d68a1..f56a2186d6 100644 --- a/docs/mindmap.md +++ b/docs/mindmap.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Mindmap diff --git a/docs/n00b-advanced.md b/docs/n00b-advanced.md index b8970142a6..e6a6adcc37 100644 --- a/docs/n00b-advanced.md +++ b/docs/n00b-advanced.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Advanced n00b mermaid (Coming soon..) diff --git a/docs/n00b-gettingStarted.md b/docs/n00b-gettingStarted.md index 5055425394..b82e2ff017 100644 --- a/docs/n00b-gettingStarted.md +++ b/docs/n00b-gettingStarted.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # A Mermaid User-Guide for Beginners diff --git a/docs/n00b-overview.md b/docs/n00b-overview.md index c109b63f20..df400e4bb6 100644 --- a/docs/n00b-overview.md +++ b/docs/n00b-overview.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Overview for Beginners diff --git a/docs/n00b-syntaxReference.md b/docs/n00b-syntaxReference.md index d25c6425e6..2c9ef72074 100644 --- a/docs/n00b-syntaxReference.md +++ b/docs/n00b-syntaxReference.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Diagram Syntax diff --git a/docs/newDiagram.md b/docs/newDiagram.md index 285cb7637a..0708657020 100644 --- a/docs/newDiagram.md +++ b/docs/newDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Adding a New Diagram/Chart 📊 diff --git a/docs/pie.md b/docs/pie.md index 79dcbfee53..f59efd93ad 100644 --- a/docs/pie.md +++ b/docs/pie.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Pie chart diagrams diff --git a/docs/requirementDiagram.md b/docs/requirementDiagram.md index d319678716..cf4c4bdc60 100644 --- a/docs/requirementDiagram.md +++ b/docs/requirementDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Requirement Diagram diff --git a/docs/security.md b/docs/security.md index ee9033ca21..cac6d8da29 100644 --- a/docs/security.md +++ b/docs/security.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Security diff --git a/docs/sequenceDiagram.md b/docs/sequenceDiagram.md index 1d425243ab..619f33243e 100644 --- a/docs/sequenceDiagram.md +++ b/docs/sequenceDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Sequence diagrams diff --git a/docs/stateDiagram.md b/docs/stateDiagram.md index 3d0c07c8a4..ecea7cf5db 100644 --- a/docs/stateDiagram.md +++ b/docs/stateDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # State diagrams diff --git a/docs/theming.md b/docs/theming.md index 3e19b67ed5..d53a51b1d0 100644 --- a/docs/theming.md +++ b/docs/theming.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Theme Configuration diff --git a/docs/upgrading.md b/docs/upgrading.md index c4d7bd3bda..884326fb77 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Upgrading diff --git a/docs/usage.md b/docs/usage.md index e59670d028..be986a56b9 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # Usage diff --git a/docs/user-journey.md b/docs/user-journey.md index e0d924f85f..e40efc5a9a 100644 --- a/docs/user-journey.md +++ b/docs/user-journey.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. # User Journey Diagram From 1f3a02559c2dff01248dca79c47a9b6cff86913c Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 29 Sep 2022 20:11:26 +0100 Subject: [PATCH 0178/1038] =?UTF-8?q?build:=20lint-staged=20docs=20in=20pa?= =?UTF-8?q?ckages/mermaid/src/=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running lint-staged during git pre-commit scripts, search for docs in the packages/mermaid/src/docs folder instead of the original src/docs folder. --- .lintstagedrc.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.lintstagedrc.json b/.lintstagedrc.json index a6c963ff65..be6e927702 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,6 +1,6 @@ { - "src/docs/**": ["pnpm run docs:build --git"], - "src/docs.mts": ["pnpm run docs:build --git"], + "packages/mermaid/src/docs/**": ["pnpm run docs:build --git"], + "packages/mermaid/src/docs.mts": ["pnpm run docs:build --git"], "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], "*.jison": ["pnpm run lint:jison"] } From 92f1f2ffb658c17a33104d8e1304731b34cd0066 Mon Sep 17 00:00:00 2001 From: Nate Armstrong <109548806+elv-nate@users.noreply.github.com> Date: Fri, 30 Sep 2022 11:31:53 -0700 Subject: [PATCH 0179/1038] Fix typos in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b809e3bbf2..b30d8d4387 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,13 @@ We are transforming the Mermaid repository to a so called mono-repo. This is a p - Make it possible to add diagrams from outside of the Mermaid repository - Separate the release flow between different diagrams and the Mermaid core -As such be aware of sime changes.. +As such be aware of some changes.. # We use pnpm now # The source code has moved -It is now localted in the src forunder for respoective package located as subfoders in packages. +It is now located in the src folder for each respective package located as subfolders in packages. English | [简体中文](./README.zh-CN.md) From ffe956e27bd8c9efe99b737044d076fc4240aec7 Mon Sep 17 00:00:00 2001 From: JM Marcastel <6306262+marcastel@users.noreply.github.com> Date: Sun, 2 Oct 2022 05:31:41 +0200 Subject: [PATCH 0180/1038] Corrected theme variables reference table layout In replacement of #3540 which modified the generated file and not the source file. --- packages/mermaid/src/docs/theming.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/docs/theming.md b/packages/mermaid/src/docs/theming.md index 68855159d3..432ebb0387 100644 --- a/packages/mermaid/src/docs/theming.md +++ b/packages/mermaid/src/docs/theming.md @@ -113,7 +113,7 @@ Variables that are unique to some diagrams can be affected by changes in Theme V ``` | Variable | Default/Base/Factor value | Calc | Description | -| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | --- | --- | +| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | | darkMode | false | | Boolean Value that dictates how to calculate colors. "true" will activate darkmode. | | background | #f4f4f4 | | Used to calculate color for items that should either be background colored or contrasting to the background. | | fontFamily | "trebuchet ms", verdana, arial | | | @@ -124,7 +124,7 @@ Variables that are unique to some diagrams can be affected by changes in Theme V | secondaryColor | based on primaryColor | \* | | | secondaryBorderColor | based on secondaryColor | \* | Color to be used as border in nodes using secondaryColor | | secondaryTextColor | based on secondaryColor | \* | Color to be used as text color in nodes using secondaryColor | -| tertiaryColor | based on primaryColor | \* | | | | +| tertiaryColor | based on primaryColor | \* | | | tertiaryBorderColor | based on tertiaryColor | \* | Color to be used as border in nodes using tertiaryColor | | tertiaryTextColor | based on tertiaryColor | \* | Color to be used as text color in nodes using tertiaryColor | | noteBkgColor | #fff5ad | | Color used as background in notes | @@ -136,6 +136,7 @@ Variables that are unique to some diagrams can be affected by changes in Theme V | errorBkgColor | tertiaryColor | \* | Color for syntax error message | | errorTextColor | tertiaryTextColor | \* | Color for syntax error message | + # What follows are Variables, specific to different diagrams and charts. ## Some Theme Variables serve as, or affect the Default Values for Specific Diagram Variables, unless changed using `%%init%%` . From a4d1d86d7bbe92497575cf01e585e421498b8425 Mon Sep 17 00:00:00 2001 From: Andrew Liu <aliu2@ufl.edu> Date: Sun, 2 Oct 2022 14:32:50 -0400 Subject: [PATCH 0181/1038] Fixed labelText undefined behavior --- packages/mermaid/src/dagre-wrapper/shapes/util.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/dagre-wrapper/shapes/util.js b/packages/mermaid/src/dagre-wrapper/shapes/util.js index 1655d2e91a..dfd1a93baf 100644 --- a/packages/mermaid/src/dagre-wrapper/shapes/util.js +++ b/packages/mermaid/src/dagre-wrapper/shapes/util.js @@ -19,7 +19,13 @@ export const labelHelper = (parent, node, _classes, isNode) => { // Create the label and insert it after the rect const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle); - const labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0]; + // Replace labelText with default value if undefined + let labelText; + if (typeof node.labelText === 'undefined') { + labelText = ''; + } else { + labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0]; + } const text = label .node() From fdb81be0a04d43acd602dd76a27b352741149084 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sun, 2 Oct 2022 13:51:25 -0700 Subject: [PATCH 0182/1038] update demo diagrams to have lang, hr tags, src = mermaid.js where needed. --- demos/c4context.html | 8 ++- demos/classchart.html | 11 +++- demos/dataflowchart.html | 8 +-- demos/er.html | 8 ++- demos/flowchart.html | 109 +++++++++++++++++++++++++-------------- demos/gantt.html | 17 +++++- demos/git.html | 3 +- demos/index.html | 100 ++++------------------------------- demos/journey.html | 3 +- demos/pie.html | 6 ++- demos/requirements.html | 3 +- demos/sequence.html | 10 +++- demos/state.html | 3 +- 13 files changed, 143 insertions(+), 146 deletions(-) diff --git a/demos/c4context.html b/demos/c4context.html index 1485d42d8b..ec7197b982 100644 --- a/demos/c4context.html +++ b/demos/c4context.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html> +<html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> @@ -14,6 +14,7 @@ </head> <body> + <h1>C4 context diagram demos</h1> <pre class="mermaid"> C4Context accTitle: C4 context demo @@ -62,6 +63,7 @@ UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1") </pre> + <hr /> <pre class="mermaid"> C4Container @@ -101,6 +103,7 @@ Rel(backend_api, banking_system, "Uses", "sync/async, XML/HTTPS") UpdateRelStyle(backend_api, banking_system, $offsetY="-50", $offsetX="-140") </pre> + <hr /> <pre class="mermaid"> C4Component @@ -140,6 +143,7 @@ UpdateRelStyle(security, db, $offsetY="-40") UpdateRelStyle(mbsfacade, mbs, $offsetY="-40") </pre> + <hr /> <pre class="mermaid"> C4Dynamic @@ -159,6 +163,7 @@ UpdateRelStyle(c2, c3, $textColor="red", $offsetX="-40", $offsetY="60") UpdateRelStyle(c3, c4, $textColor="red", $offsetY="-40", $offsetX="10") </pre> + <hr /> <pre class="mermaid"> C4Deployment @@ -210,7 +215,6 @@ UpdateRelStyle(api, db2, $offsetX="-40", $offsetY="-20") UpdateRelStyle(db, db2, $offsetY="-10") </pre> - <hr /> <script src="./mermaid.js"></script> diff --git a/demos/classchart.html b/demos/classchart.html index e15495b95c..5979152d6d 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html> +<html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> @@ -14,6 +14,8 @@ </head> <body> + <h1>Class diagram demos</h1> + <pre class="mermaid"> classDiagram accTitle: Demo Class Diagram @@ -42,8 +44,8 @@ } </pre> - <hr /> + <pre class="mermaid"> classDiagram Class01 <|-- AveryLongClass : Cool @@ -68,6 +70,7 @@ } </pre> <hr /> + <pre class="mermaid"> classDiagram class Class01~T~ @@ -81,6 +84,7 @@ } </pre> <hr /> + <pre class="mermaid"> classDiagram Class01~T~ <|-- AveryLongClass : Cool @@ -104,11 +108,13 @@ } </pre> <hr /> + <pre class="mermaid"> classDiagram Interface1 ()-- Interface1Impl </pre> <hr /> + <pre class="mermaid"> classDiagram direction LR @@ -117,6 +123,7 @@ Dog : species() </pre> <hr /> + <pre class="mermaid"> classDiagram direction RL diff --git a/demos/dataflowchart.html b/demos/dataflowchart.html index 34011b5fe0..dc7fe05aff 100644 --- a/demos/dataflowchart.html +++ b/demos/dataflowchart.html @@ -1,9 +1,9 @@ <!DOCTYPE html> -<html> +<html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <title>Mermaid Quick Test Page + Data Flow Mermaid Quick Test Page -

    Data Flow Diagram Example

    +

    Data Flow Diagram demos

         flowchart LR
           accTitle: A simple linear flowchart.
    @@ -21,6 +21,8 @@ 

    Data Flow Diagram Example

    DataStore[|borders:tb|Database] -->|input| Process((System)) -->|output| Entity[Customer];
    +
    +

    Borders Example

         flowchart TD
    diff --git a/demos/er.html b/demos/er.html
    index 68aaf18a27..4c1a72c20c 100644
    --- a/demos/er.html
    +++ b/demos/er.html
    @@ -1,5 +1,5 @@
     
    -
    +
       
         
         
    @@ -10,6 +10,10 @@
             /* font-family: 'trebuchet ms', verdana, arial; */
             font-family: 'Courier New', Courier, monospace !important;
           }
    +      .diagram-title {
    +        fill: red;
    +        font-size: 24pt;
    +      }
         
       
     
    @@ -51,8 +55,8 @@
           }
         
    + + - - - diff --git a/demos/journey.html b/demos/journey.html index dc1c379d3d..c5c6c25e8d 100644 --- a/demos/journey.html +++ b/demos/journey.html @@ -1,5 +1,5 @@ - + @@ -14,6 +14,7 @@ +

    Journey diagram demo

              journey
         title My working day
    diff --git a/demos/pie.html b/demos/pie.html
    index 3232d25347..333ef94917 100644
    --- a/demos/pie.html
    +++ b/demos/pie.html
    @@ -1,5 +1,5 @@
     
    -
    +
       
         
         
    @@ -14,6 +14,7 @@
       
     
       
    +    

    Pie chart demos

           pie title Pets adopted by volunteers
           accTitle: simple pie char demo
    @@ -23,6 +24,7 @@
         "Rats" : 15
         
    +
         pie
           title Key elements in Product X
    @@ -35,7 +37,7 @@
         
    - + + - - +
    +mindmap
    +  root
    +    child1((Circle))
    +        grandchild 1
    +        grandchild 2
    +    child2(Round rectangle)
    +        grandchild 3
    +        grandchild 4
    +    child3[Square]
    +        grandchild 5
    +        ::icon(mdi mdi-fire)
    +        gc6((grand
    child 6)) + ::icon(mdi mdi-fire) +
    + + + - +
    + + + - - + From 74bd576ebc02a3c7c6a4d436458464f42d9186ca Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 5 Oct 2022 14:52:04 +0800 Subject: [PATCH 0225/1038] fix(mermaid): Add await to render in init. --- cypress/platform/click_security_loose.html | 20 ++++++++++---------- packages/mermaid/src/mermaid.ts | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cypress/platform/click_security_loose.html b/cypress/platform/click_security_loose.html index ed9fcaaa80..625d340529 100644 --- a/cypress/platform/click_security_loose.html +++ b/cypress/platform/click_security_loose.html @@ -13,39 +13,39 @@
    -
    +      
         graph TB
           FunctionTest1-->URLTest1
           click FunctionTest1 clickByFlow "Add a div"
           click URLTest1 "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
           
    -
    +      
       graph TB
         1Function--->2URL
         click 1Function clickByFlow "Add a div"
         click 2URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
           
    -
    +      
         flowchart TB
           FunctionTest2-->URLTest2
           click FunctionTest2 clickByFlow "Add a div"
           click URLTest2 "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" _self
           
    -
    +      
       flowchart TB
         10Function--->20URL
         click 10Function clickByFlow "Add a div"
         click 20URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" _self
           
    -
    +      
       classDiagram
         class ShapeLink
         link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
         class ShapeCallback
         callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
           
    -
    +      
       classDiagram-v2
         class ShapeLink2
         link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    @@ -95,20 +95,20 @@
         Add another diagram to demo page    : 48h
         
    -
    +      
           graph TB
             FunctionArgTest2-->URL
             click FunctionArgTest2 call clickByFlowArg(ARGUMENT) "Add a div"
             click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
           
    -
    +      
           flowchart TB
             2FunctionArg-->URL
             click 2FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
             click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
           
    -
    +      
           classDiagram
           class ShapeLink
           link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    @@ -116,7 +116,7 @@
           click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
           
    -
    +      
           classDiagram-v2
             class ShapeLink2
             link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts
    index 6a709dd32c..391af32835 100644
    --- a/packages/mermaid/src/mermaid.ts
    +++ b/packages/mermaid/src/mermaid.ts
    @@ -45,7 +45,7 @@ import { isDetailedError } from './utils';
      * @param nodes
      * @param callback
      */
    -const init = function (
    +const init = async function (
       config?: MermaidConfig,
       // eslint-disable-next-line no-undef
       nodes?: string | HTMLElement | NodeListOf,
    @@ -69,7 +69,7 @@ const init = function (
       }
     };
     
    -const initThrowsErrors = function (
    +const initThrowsErrors = async function (
       config?: MermaidConfig,
       // eslint-disable-next-line no-undef
       nodes?: string | HTMLElement | NodeListOf,
    @@ -108,7 +108,7 @@ const initThrowsErrors = function (
       // generate the id of the diagram
       const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed);
     
    -  let txt;
    +  let txt: string;
       const errors = [];
     
       // element is the current div with mermaid class
    @@ -136,7 +136,7 @@ const initThrowsErrors = function (
           log.debug('Detected early reinit: ', init);
         }
         try {
    -      mermaidAPI.render(
    +      await mermaidAPI.render(
             id,
             txt,
             (svgCode: string, bindFunctions?: (el: Element) => void) => {
    
    From f9753fc62171e4bf73963e824f0c265962bb3baa Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Wed, 5 Oct 2022 16:04:26 +0800
    Subject: [PATCH 0226/1038] chore: Update test URL
    
    ---
     cypress/integration/other/interaction.spec.js | 22 +++++++++----------
     cypress/platform/click_security_loose.html    | 22 +++++++++----------
     cypress/platform/click_security_other.html    |  6 ++---
     cypress/platform/click_security_sandbox.html  | 22 +++++++++----------
     cypress/platform/click_security_strict.html   |  6 ++---
     cypress/platform/empty.html                   | 10 +++++++++
     6 files changed, 49 insertions(+), 39 deletions(-)
     create mode 100644 cypress/platform/empty.html
    
    diff --git a/cypress/integration/other/interaction.spec.js b/cypress/integration/other/interaction.spec.js
    index 63234d1473..857141b5bf 100644
    --- a/cypress/integration/other/interaction.spec.js
    +++ b/cypress/integration/other/interaction.spec.js
    @@ -23,14 +23,14 @@ describe('Interaction', () => {
           // When there is a URL, cy.contains selects the a tag instead of the span. The .node is a child of a, so we have to use find instead of parent.
           cy.contains('URLTest1').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('Graph: should handle a click on a node with a bound url where the node starts with a number', () => {
           cy.contains('2URL').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
    @@ -47,28 +47,28 @@ describe('Interaction', () => {
         it('Flowchart-v2: should handle a click on a node with a bound url', () => {
           cy.contains('URLTest2').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('Flowchart-v2: should handle a click on a node with a bound url where the node starts with a number', () => {
           cy.contains('20URL').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('should handle a click on a task with a bound URL clicking on the rect', () => {
           cy.get('rect#cl1').click({ force: true });
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('should handle a click on a task with a bound URL clicking on the text', () => {
           cy.get('text#cl1-text').click({ force: true });
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
    @@ -110,28 +110,28 @@ describe('Interaction', () => {
         it('should handle a click on a node with a bound url', () => {
           cy.contains('URL1').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('should handle a click on a node with a bound url where the node starts with a number', () => {
           cy.contains('2URL').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('should handle a click on a task with a bound URL clicking on the rect', () => {
           cy.get('rect#cl1').click({ force: true });
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
         it('should handle a click on a task with a bound URL clicking on the text', () => {
           cy.get('text#cl1-text').click({ force: true });
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
    @@ -164,7 +164,7 @@ describe('Interaction', () => {
         it('should handle a click on a node with a bound url', () => {
           cy.contains('URL1').find('.node').click();
           cy.location().should(({ href }) => {
    -        expect(href).to.eq('http://localhost:9000/webpackUsage.html');
    +        expect(href).to.eq('http://localhost:9000/empty.html');
           });
         });
     
    diff --git a/cypress/platform/click_security_loose.html b/cypress/platform/click_security_loose.html
    index 625d340529..459c14e851 100644
    --- a/cypress/platform/click_security_loose.html
    +++ b/cypress/platform/click_security_loose.html
    @@ -17,38 +17,38 @@
         graph TB
           FunctionTest1-->URLTest1
           click FunctionTest1 clickByFlow "Add a div"
    -      click URLTest1 "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +      click URLTest1 "http://localhost:9000/empty.html" "Visit mermaid docs"
           
       graph TB
         1Function--->2URL
         click 1Function clickByFlow "Add a div"
    -    click 2URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +    click 2URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           
         flowchart TB
           FunctionTest2-->URLTest2
           click FunctionTest2 clickByFlow "Add a div"
    -      click URLTest2 "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" _self
    +      click URLTest2 "http://localhost:9000/empty.html" "Visit mermaid docs" _self
           
       flowchart TB
         10Function--->20URL
         click 10Function clickByFlow "Add a div"
    -    click 20URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" _self
    +    click 20URL "http://localhost:9000/empty.html" "Visit mermaid docs" _self
           
       classDiagram
         class ShapeLink
    -    link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +    link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
         class ShapeCallback
         callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
           
       classDiagram-v2
         class ShapeLink2
    -    link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +    link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
         class ShapeCallback2
         callback ShapeCallback2 "clickByClass" "This is a tooltip for a callback"
           
    @@ -85,7 +85,7 @@ Calling a Callback (look at the console log) :cl2, after cl1, 3d Calling a Callback with args :cl3, after cl1, 3d - click cl1 href "http://localhost:9000/webpackUsage.html" + click cl1 href "http://localhost:9000/empty.html" click cl2 call clickByGantt() click cl3 call clickByGantt("test1", test2, test3) @@ -99,19 +99,19 @@ graph TB FunctionArgTest2-->URL click FunctionArgTest2 call clickByFlowArg(ARGUMENT) "Add a div" - click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" + click URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           flowchart TB
             2FunctionArg-->URL
             click 2FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
    -        click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +        click URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           
           classDiagram
           class ShapeLink
    -      link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +      link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
           class ShapeCallback
           click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
           
    @@ -119,7 +119,7 @@
           classDiagram-v2
             class ShapeLink2
    -        link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +        link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
             class ShapeCallback2
             click ShapeCallback2 call clickByClass(123) "This is a tooltip for a callback"
           
    diff --git a/cypress/platform/click_security_other.html b/cypress/platform/click_security_other.html index 348c8b9aa5..5338cac067 100644 --- a/cypress/platform/click_security_other.html +++ b/cypress/platform/click_security_other.html @@ -11,13 +11,13 @@ graph TB Function1-->URL1 click Function1 clickByFlow "Add a div" - click URL1 "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" + click URL1 "http://localhost:9000/empty.html" "Visit mermaid docs"
       graph TB
         1Function-->2URL
         click 1Function clickByFlow "Add a div"
    -    click 2URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +    click 2URL "http://localhost:9000/empty.html" "Visit mermaid docs"
         
    @@ -50,7 +50,7 @@
         Visit mermaidjs               :active, cl1, 2014-01-07,2014-01-10
         Calling a Callback (look at the console log) :cl2, after cl1, 3d
     
    -    click cl1 href "http://localhost:9000/webpackUsage.html"
    +    click cl1 href "http://localhost:9000/empty.html"
         click cl2 call clickByGantt("test", test, test)
     
         section Last section
    diff --git a/cypress/platform/click_security_sandbox.html b/cypress/platform/click_security_sandbox.html
    index 94229500c4..49c5d71c06 100644
    --- a/cypress/platform/click_security_sandbox.html
    +++ b/cypress/platform/click_security_sandbox.html
    @@ -17,38 +17,38 @@
         graph TB
           Function-->URL
           click Function clickByFlow "Add a div"
    -      click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +      click URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           
       graph TB
         1Function--->2URL
         click 1Function clickByFlow "Add a div"
    -    click 2URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +    click 2URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           
         flowchart TB
           Function-->URL
           click Function clickByFlow "Add a div"
    -      click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" _self
    +      click URL "http://localhost:9000/empty.html" "Visit mermaid docs" _self
           
       flowchart TB
         1Function--->2URL
         click 1Function clickByFlow "Add a div"
    -    click 2URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" _self
    +    click 2URL "http://localhost:9000/empty.html" "Visit mermaid docs" _self
           
       classDiagram
         class ShapeLink
    -    link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +    link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
         class ShapeCallback
         callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
           
       classDiagram-v2
         class ShapeLink2
    -    link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +    link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
         class ShapeCallback2
         callback ShapeCallback2 "clickByClass" "This is a tooltip for a callback"
           
    @@ -85,7 +85,7 @@ Calling a Callback (look at the console log) :cl2, after cl1, 3d Calling a Callback with args :cl3, after cl1, 3d - click cl1 href "http://localhost:9000/webpackUsage.html" + click cl1 href "http://localhost:9000/empty.html" click cl2 call clickByGantt() click cl3 call clickByGantt("test1", test2, test3) @@ -99,19 +99,19 @@ graph TB FunctionArg-->URL click FunctionArg call clickByFlowArg(ARGUMENT) "Add a div" - click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" + click URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           flowchart TB
             FunctionArg-->URL
             click FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
    -        click URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +        click URL "http://localhost:9000/empty.html" "Visit mermaid docs"
           
           classDiagram
           class ShapeLink
    -      link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +      link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
           class ShapeCallback
           click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
           
    @@ -119,7 +119,7 @@
           classDiagram-v2
             class ShapeLink2
    -        link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
    +        link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
             class ShapeCallback2
             click ShapeCallback2 call clickByClass(123) "This is a tooltip for a callback"
           
    diff --git a/cypress/platform/click_security_strict.html b/cypress/platform/click_security_strict.html index 64fb2e9c67..26605ddf96 100644 --- a/cypress/platform/click_security_strict.html +++ b/cypress/platform/click_security_strict.html @@ -11,13 +11,13 @@ graph TB Function1-->URL1 click Function1 clickByFlow "Add a div" - click URL1 "http://localhost:9000/webpackUsage.html" "Visit mermaid docs" + click URL1 "http://localhost:9000/empty.html" "Visit mermaid docs"
       graph TB
         1Function-->2URL
         click 1Function clickByFlow "Add a div"
    -    click 2URL "http://localhost:9000/webpackUsage.html" "Visit mermaid docs"
    +    click 2URL "http://localhost:9000/empty.html" "Visit mermaid docs"
         
    @@ -51,7 +51,7 @@
         Calling a Callback (look at the console log) :cl2, after cl1, 3d
         Calling a Callback with args :cl3, after cl1, 3d
     
    -    click cl1 href "http://localhost:9000/webpackUsage.html"
    +    click cl1 href "http://localhost:9000/empty.html"
         click cl2 call clickByGantt()
         click cl3 call clickByGantt("test1", test2, test3)
     
    diff --git a/cypress/platform/empty.html b/cypress/platform/empty.html
    new file mode 100644
    index 0000000000..2961644d60
    --- /dev/null
    +++ b/cypress/platform/empty.html
    @@ -0,0 +1,10 @@
    +
    +
    +  
    +    
    +    
    +    
    +    Empty
    +  
    +  
    +
    
    From d8c7557ae5fb736cde6a9763a25bbe43c83a466e Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Wed, 5 Oct 2022 16:05:27 +0800
    Subject: [PATCH 0227/1038] fix: Docs
    
    ---
     docs/n00b-syntaxReference.md | 12 ++++++++++++
     1 file changed, 12 insertions(+)
    
    diff --git a/docs/n00b-syntaxReference.md b/docs/n00b-syntaxReference.md
    index 7edb4c319f..2c9ef72074 100644
    --- a/docs/n00b-syntaxReference.md
    +++ b/docs/n00b-syntaxReference.md
    @@ -26,6 +26,18 @@ erDiagram
               PRODUCT ||--o{ ORDER-ITEM : "ordered in"
     ```
     
    +```mermaid
    +erDiagram
    +          CUSTOMER }|..|{ DELIVERY-ADDRESS : has
    +          CUSTOMER ||--o{ ORDER : places
    +          CUSTOMER ||--o{ INVOICE : "liable for"
    +          DELIVERY-ADDRESS ||--o{ ORDER : receives
    +          INVOICE ||--|{ ORDER : covers
    +          ORDER ||--|{ ORDER-ITEM : includes
    +          PRODUCT-CATEGORY ||--|{ PRODUCT : contains
    +          PRODUCT ||--o{ ORDER-ITEM : "ordered in"
    +```
    +
     The [Getting Started](./n00b-gettingStarted.md) section can also provide some practical examples of mermaid syntax.
     
     ## Diagram Breaking
    
    From c05c98c08239b9a517136ee814b95e27f0aea73c Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Wed, 5 Oct 2022 13:14:05 +0200
    Subject: [PATCH 0228/1038] WIP
    
    ---
     cypress/platform/knsv.html                    |  2 +-
     cypress/platform/knsv2.html                   |  9 ++--
     packages/mermaid-mindmap/src/add-diagram.ts   | 17 +++----
     .../mermaid-mindmap/src/mindmapDetector.ts    |  3 --
     packages/mermaid-mindmap/src/registry.ts      | 50 ++++++++-----------
     packages/mermaid-mindmap/tsconfig.json        |  1 +
     packages/mermaid/src/Diagram.ts               |  6 +--
     packages/mermaid/src/config.type.ts           |  1 +
     .../mermaid/src/diagram-api/detectType.ts     | 19 +++----
     packages/mermaid/src/mermaidAPI.ts            | 11 +++-
     tsconfig.json                                 |  2 +-
     vite.config.ts                                |  8 +++
     12 files changed, 65 insertions(+), 64 deletions(-)
    
    diff --git a/cypress/platform/knsv.html b/cypress/platform/knsv.html
    index d4ffa0c0c7..8bd8d7c791 100644
    --- a/cypress/platform/knsv.html
    +++ b/cypress/platform/knsv.html
    @@ -368,7 +368,6 @@
         
    - - + + + @@ -51,16 +51,16 @@
    From 1615c6d9f996b73cd8f17b205da386cb4b00c88a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 6 Oct 2022 19:14:25 +0800 Subject: [PATCH 0241/1038] fix #3391: Remove flowchart as fallback for diagram detection. --- cypress/platform/sidv.html | 14 ++++++ package.json | 3 +- packages/mermaid/src/Diagram.ts | 45 ++++++++++++------- .../mermaid/src/diagram-api/detectType.ts | 7 +-- .../src/diagram-api/diagramAPI.spec.ts | 4 +- .../mermaid/src/diagrams/flowchart/flowDb.js | 3 +- 6 files changed, 52 insertions(+), 24 deletions(-) create mode 100644 cypress/platform/sidv.html diff --git a/cypress/platform/sidv.html b/cypress/platform/sidv.html new file mode 100644 index 0000000000..c9bf56b7dd --- /dev/null +++ b/cypress/platform/sidv.html @@ -0,0 +1,14 @@ + + +
    +    none
    +    hello world
    +    
    + + + + diff --git a/package.json b/package.json index 67f546d972..f0cad549dd 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "e2e": "start-server-and-test dev http://localhost:9000/ cypress", "ci": "vitest run", "test": "pnpm lint && vitest run", - "test:watch": "vitest --coverage --watch", + "test:watch": "vitest --watch", + "test:coverage": "vitest --coverage", "prepublishOnly": "pnpm build && pnpm test", "prepare": "concurrently \"husky install\" \"pnpm build\"", "pre-commit": "lint-staged" diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 231a78af6a..7fba15d566 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -8,11 +8,18 @@ export class Diagram { parser; renderer; db; + private detectTypeFailed = false; // eslint-disable-next-line @typescript-eslint/ban-types constructor(public txt: string, parseError?: Function) { const cnf = configApi.getConfig(); this.txt = txt; - this.type = detectType(txt, cnf); + try { + this.type = detectType(txt, cnf); + } catch (e) { + this.handleError(e, parseError); + this.type = 'error'; + this.detectTypeFailed = true; + } const diagram = getDiagram(this.type); log.debug('Type ' + this.type); // Setup diagram @@ -32,29 +39,37 @@ export class Diagram { // eslint-disable-next-line @typescript-eslint/ban-types parse(text: string, parseError?: Function): boolean { + if (this.detectTypeFailed) { + return false; + } try { text = text + '\n'; this.db.clear(); this.parser.parse(text); return true; } catch (error) { - // Is this the correct way to access mermiad's parseError() - // method ? (or global.mermaid.parseError()) ? - if (parseError) { - if (isDetailedError(error)) { - // handle case where error string and hash were - // wrapped in object like`const error = { str, hash };` - parseError(error.str, error.hash); - } else { - // assume it is just error string and pass it on - parseError(error); - } + this.handleError(error, parseError); + } + return false; + } + + // eslint-disable-next-line @typescript-eslint/ban-types + handleError(error: unknown, parseError?: Function) { + // Is this the correct way to access mermiad's parseError() + // method ? (or global.mermaid.parseError()) ? + if (parseError) { + if (isDetailedError(error)) { + // handle case where error string and hash were + // wrapped in object like`const error = { str, hash };` + parseError(error.str, error.hash); } else { - // No mermaid.parseError() handler defined, so re-throw it - throw error; + // assume it is just error string and pass it on + parseError(error); } + } else { + // No mermaid.parseError() handler defined, so re-throw it + throw error; } - return false; } getParser() { diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts index afb9a90789..3fd768ad18 100644 --- a/packages/mermaid/src/diagram-api/detectType.ts +++ b/packages/mermaid/src/diagram-api/detectType.ts @@ -35,16 +35,13 @@ const detectors: Record = {}; export const detectType = function (text: string, config?: MermaidConfig): string { text = text.replace(directive, '').replace(anyComment, '\n'); - // console.log(detectors); - for (const [key, detectorRecord] of Object.entries(detectors)) { if (detectorRecord.detector(text, config)) { return key; } } - // TODO: #3391 - // throw new Error(`No diagram type detected for text: ${text}`); - return 'flowchart'; + + throw new Error(`No diagram type detected for text: ${text}`); }; export const addDetector = (key: string, detector: DiagramDetector, path: string) => { diff --git a/packages/mermaid/src/diagram-api/diagramAPI.spec.ts b/packages/mermaid/src/diagram-api/diagramAPI.spec.ts index 018e72bd4e..0cef62b3e8 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.spec.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.spec.ts @@ -15,7 +15,9 @@ describe('DiagramAPI', () => { it('should handle diagram registrations', () => { expect(() => getDiagram('loki')).toThrow(); - expect(() => detectType('loki diagram')).not.toThrow(); // TODO: #3391 + expect(() => detectType('loki diagram')).toThrow( + 'No diagram type detected for text: loki diagram' + ); const detector: DiagramDetector = (str: string) => { return str.match('loki') !== null; }; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 192da23d39..5aa2032257 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -429,8 +429,7 @@ export const clear = function (ver = 'gen-1') { vertices = {}; classes = {}; edges = []; - funs = []; - funs.push(setupToolTips); + funs = [setupToolTips]; subGraphs = []; subGraphLookup = {}; subCount = 0; From 803ea863fdd98bd5018ea5c740c80ba9f87419f1 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 6 Oct 2022 22:58:54 +0800 Subject: [PATCH 0242/1038] fix: pnpm not found --- package.json | 9 +++++---- pnpm-lock.yaml | 8 ++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 67f546d972..c1c33920fe 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", "type": "module", - "packageManager": "pnpm@7.12.2", + "packageManager": "pnpm@7.13.2", "exports": { ".": { "require": "./dist/mermaid.min.js", @@ -71,8 +71,8 @@ }, "dependencies": { "@braintree/sanitize-url": "^6.0.0", - "@types/uuid": "^8.3.4", "@types/node": "^18.8.1", + "@types/uuid": "^8.3.4", "d3": "^7.0.0", "dagre": "^0.8.5", "dagre-d3": "^0.6.4", @@ -107,8 +107,8 @@ "coveralls": "^3.1.1", "cypress": "^10.0.0", "cypress-image-snapshot": "^4.0.1", - "esbuild": "^0.15.10", "documentation": "13.2.0", + "esbuild": "^0.15.10", "eslint": "^8.24.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", @@ -128,6 +128,7 @@ "markdown-it": "^13.0.1", "moment": "^2.23.0", "path-browserify": "^1.0.1", + "pnpm": "^7.13.2", "prettier": "^2.7.1", "prettier-plugin-jsdoc": "^0.4.2", "remark": "^14.0.2", @@ -136,10 +137,10 @@ "ts-node": "^10.9.1", "typescript": "^4.8.4", "unist-util-flatmap": "^1.0.0", + "vite": "^3.1.4", "vitepress": "^1.0.0-alpha.19", "vitepress-plugin-mermaid": "^2.0.8", "vitepress-plugin-search": "^1.0.4-alpha.11", - "vite": "^3.1.4", "vitest": "^0.23.4" }, "resolutions": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 80e619de01..9cb8306ea9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,6 +60,7 @@ importers: moment-mini: ^2.24.0 non-layered-tidy-tree-layout: ^2.0.2 path-browserify: ^1.0.1 + pnpm: ^7.13.2 prettier: ^2.7.1 prettier-plugin-jsdoc: ^0.4.2 remark: ^14.0.2 @@ -134,6 +135,7 @@ importers: markdown-it: 13.0.1 moment: 2.29.4 path-browserify: 1.0.1 + pnpm: 7.13.2 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 @@ -10729,6 +10731,12 @@ packages: engines: {node: '>=12.13.0'} dev: true + /pnpm/7.13.2: + resolution: {integrity: sha512-lOQRBcCWycLK1PB9KptqTd6iyiH7m4GRuS4G2j4b74yDx/XvRXtP/weYz8e0/ia7HX1pMF1vJCF48ssklq0TJQ==} + engines: {node: '>=14.6'} + hasBin: true + dev: true + /posix-character-classes/0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} From 9f286b46ff4b43cdb7debf52784d56c6ae43540b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 6 Oct 2022 23:39:30 +0800 Subject: [PATCH 0243/1038] fix: Filename in viewer.js --- cypress/platform/viewer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index 105ecda712..ff70e0abe0 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -36,7 +36,7 @@ const contentLoaded = function () { document.getElementsByTagName('body')[0].appendChild(div); } - graphObj.mermaid.extraDiagrams = ['/mermaid-mindmap-detector.js']; + graphObj.mermaid.extraDiagrams = ['/mermaid-mindmap-detector.core.mjs']; mermaid2.initialize(graphObj.mermaid); mermaid2.init(); From 00053b8e970f86ef7f3d5bf3815c67f683a7153b Mon Sep 17 00:00:00 2001 From: lemontreejs Date: Fri, 7 Oct 2022 11:56:01 +0530 Subject: [PATCH 0244/1038] fix: module import in pie chart demo --- demos/pie.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/pie.html b/demos/pie.html index 333ef94917..096dcd62c9 100644 --- a/demos/pie.html +++ b/demos/pie.html @@ -36,8 +36,8 @@

    Pie chart demos

    "Iron" : 5
    + + ``` -**Doing so will command the mermaid parser to look for the `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.** +**Doing so will command the mermaid parser to look for the `
    ` or `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
     
     **Examples can be found at** [Other examples](/examples)
     
    diff --git a/docs/n00b-gettingStarted.md b/docs/n00b-gettingStarted.md
    index b82e2ff017..df637ecfca 100644
    --- a/docs/n00b-gettingStarted.md
    +++ b/docs/n00b-gettingStarted.md
    @@ -87,7 +87,7 @@ c. The `mermaid.initialize()` call, which dictates the appearance of diagrams an
     
     ```html
     
    -  
    +  
     
     ```
     
    @@ -135,7 +135,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
     ```html
     
       
    -    
    +    
         
    diff --git a/docs/usage.md b/docs/usage.md
    index be986a56b9..aced1c4bee 100644
    --- a/docs/usage.md
    +++ b/docs/usage.md
    @@ -44,7 +44,7 @@ The easiest way to integrate mermaid on a web page requires three elements:
     1.  Inclusion of the mermaid address in the html page using a `script` tag, in the `src` section.Example:
     
         ```html
    -    
    +    
         ```
     
     2.  The `mermaidAPI` call, in a separate `script` tag. Example:
    @@ -84,7 +84,7 @@ locate the graph definitions inside the `div` tags with `class="mermaid"` and re
           B-->C[fa:fa-ban forbidden]
           B-->D(fa:fa-spinner);
         
    - + diff --git a/package.json b/package.json index c1c33920fe..82b84580c1 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,7 @@ "@types/express": "^4.17.14", "@types/jsdom": "^20.0.0", "@types/lodash": "^4.14.186", + "@types/mdast": "^3.0.10", "@types/prettier": "^2.7.1", "@types/stylis": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.39.0", diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index a22dc59e20..842c210564 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -41,6 +41,8 @@ import { remark } from 'remark'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; +const version = JSON.parse(readFileSync('package.json', 'utf8')).version; + // These paths are from the root of the mono-repo, not from the // mermaid sub-directory const SOURCE_DOCS_DIR = 'packages/mermaid/src/docs'; @@ -144,7 +146,7 @@ const readSyncedUTF8file = (filename: string): string => { * @param file {string} name of the file that will be verified */ const transformMarkdown = (file: string) => { - const doc = readSyncedUTF8file(file); + const doc = readSyncedUTF8file(file).replace(//g, version); const ast: Root = remark.parse(doc); const out = flatmap(ast, (c: Code) => { if (c.type !== 'code') { diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/src/docs/README.md index e8bba38dae..f2ba13a838 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/src/docs/README.md @@ -190,13 +190,13 @@ To Deploy Mermaid: **To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaidAPI` call into the HTML like so:** ```html - + ``` -**Doing so will command the mermaid parser to look for the `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.** +**Doing so will command the mermaid parser to look for the `
    ` or `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
     
     **Examples can be found at** [Other examples](/examples)
     
    diff --git a/packages/mermaid/src/docs/n00b-gettingStarted.md b/packages/mermaid/src/docs/n00b-gettingStarted.md
    index 950c4eba65..c0fd4125aa 100644
    --- a/packages/mermaid/src/docs/n00b-gettingStarted.md
    +++ b/packages/mermaid/src/docs/n00b-gettingStarted.md
    @@ -85,7 +85,7 @@ c. The `mermaid.initialize()` call, which dictates the appearance of diagrams an
     
     ```html
     
    -  
    +  
     
     ```
     
    @@ -133,7 +133,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
     ```html
     
       
    -    
    +    
         
    diff --git a/packages/mermaid/src/docs/usage.md b/packages/mermaid/src/docs/usage.md
    index 0266258948..c219de3df9 100644
    --- a/packages/mermaid/src/docs/usage.md
    +++ b/packages/mermaid/src/docs/usage.md
    @@ -44,7 +44,7 @@ The easiest way to integrate mermaid on a web page requires three elements:
     1.  Inclusion of the mermaid address in the html page using a `script` tag, in the `src` section.Example:
     
         ```html
    -    
    +    
         ```
     
     2.  The `mermaidAPI` call, in a separate `script` tag. Example:
    @@ -84,7 +84,7 @@ locate the graph definitions inside the `div` tags with `class="mermaid"` and re
           B-->C[fa:fa-ban forbidden]
           B-->D(fa:fa-spinner);
         
    - + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9cb8306ea9..c157bc20f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,7 @@ importers: '@types/express': ^4.17.14 '@types/jsdom': ^20.0.0 '@types/lodash': ^4.14.186 + '@types/mdast': ^3.0.10 '@types/node': ^18.8.1 '@types/prettier': ^2.7.1 '@types/stylis': ^4.0.2 @@ -104,6 +105,7 @@ importers: '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 + '@types/mdast': 3.0.10 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my diff --git a/vdocs/config/usage.md b/vdocs/config/usage.md index 10b3b72389..4a67185944 100644 --- a/vdocs/config/usage.md +++ b/vdocs/config/usage.md @@ -44,7 +44,7 @@ The easiest way to integrate mermaid on a web page requires three elements: 1. Inclusion of the mermaid address in the html page using a `script` tag, in the `src` section.Example: ```html - + ``` 2. The `mermaidAPI` call, in a separate `script` tag. Example: @@ -84,7 +84,7 @@ locate the graph definitions inside the `div` tags with `class="mermaid"` and re B-->C[fa:fa-ban forbidden] B-->D(fa:fa-spinner);
    - + diff --git a/vdocs/intro/index.md b/vdocs/intro/index.md index 030409c6d2..fcf61ff097 100644 --- a/vdocs/intro/index.md +++ b/vdocs/intro/index.md @@ -265,7 +265,7 @@ To Deploy Mermaid: **To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaidAPI` call into the HTML like so:** ```html - + diff --git a/vdocs/intro/n00b-gettingStarted.md b/vdocs/intro/n00b-gettingStarted.md index 14b49057e6..015be984f4 100644 --- a/vdocs/intro/n00b-gettingStarted.md +++ b/vdocs/intro/n00b-gettingStarted.md @@ -94,7 +94,7 @@ c. The `mermaid.initialize()` call, which dictates the appearance of diagrams an ```html - + ``` @@ -142,7 +142,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac ```html - + From 1f8fb56409846f1ebba43033a0bba4c885623018 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 7 Oct 2022 16:01:33 +0800 Subject: [PATCH 0248/1038] docs: Add badges --- docs/README.md | 2 +- packages/mermaid/src/docs/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 2b0c558374..179f94132c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,7 +10,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/src/docs/README.md index f2ba13a838..36e689101d 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/src/docs/README.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) From 24fb2337d79d2555c35db063ed7d57f5b191a88e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 7 Oct 2022 16:30:44 +0800 Subject: [PATCH 0249/1038] cleanup --- todo-fix-root-level-tsconfig.json | 108 ------------------------------ 1 file changed, 108 deletions(-) delete mode 100644 todo-fix-root-level-tsconfig.json diff --git a/todo-fix-root-level-tsconfig.json b/todo-fix-root-level-tsconfig.json deleted file mode 100644 index 0ffa0002ee..0000000000 --- a/todo-fix-root-level-tsconfig.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Projects */ - // "incremental": true /* Enable incremental compilation */, - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "lib": [ - "DOM", - "ES2021" - ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - - /* Modules */ - "module": "ES6" /* Specify what module code is generated. */, - "rootDir": "./src" /* Specify the root folder within your source files. */, - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, - // "baseUrl": "./src" /* Specify the base directory to resolve non-relative module names. */, - // "paths": {} /* Specify a set of entries that re-map imports to additional lookup locations. */, - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [] /* Specify multiple folders that act like `./node_modules/@types`. */, - "types": [ - "vitest/globals" - ] /* Specify type package names to be included without being referenced in a source file. */, - - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - "resolveJsonModule": true /* Enable importing .json files */, - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - - /* Emit */ - "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./dist" /* Specify an output folder for all emitted files. */, - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "include": ["./src/**/*.ts", "./package.json"] -} From 2389f4a28512a9a6adc40cac2156bda2bc1d9b32 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 7 Oct 2022 16:33:59 +0800 Subject: [PATCH 0250/1038] cleanup --- packages/mermaid/src/diagram-api/text-wrap | 227 --------------------- 1 file changed, 227 deletions(-) delete mode 100644 packages/mermaid/src/diagram-api/text-wrap diff --git a/packages/mermaid/src/diagram-api/text-wrap b/packages/mermaid/src/diagram-api/text-wrap deleted file mode 100644 index 173baececb..0000000000 --- a/packages/mermaid/src/diagram-api/text-wrap +++ /dev/null @@ -1,227 +0,0 @@ -export const lineBreakRegex = //gi; - -/** - * Caches results of functions based on input - * - * @param {Function} fn Function to run - * @param {Function} resolver Function that resolves to an ID given arguments the `fn` takes - * @returns {Function} An optimized caching function - */ -const memoize = (fn, resolver) => { - let cache = {}; - return (...args) => { - let n = resolver ? resolver.apply(this, args) : args[0]; - if (n in cache) { - return cache[n]; - } else { - let result = fn(...args); - cache[n] = result; - return result; - } - }; -}; -/** - * This calculates the width of the given text, font size and family. - * - * @param {any} text - The text to calculate the width of - * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size - * @returns {any} - The width for the given text - */ -export const calculateTextWidth = function (text, config) { - config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config); - return calculateTextDimensions(text, config).width; -}; - -export const getTextObj = function () { - return { - x: 0, - y: 0, - fill: undefined, - anchor: 'start', - style: '#666', - width: 100, - height: 100, - textMargin: 0, - rx: 0, - ry: 0, - valign: undefined, - }; -}; - -/** - * Adds text to an element - * - * @param {SVGElement} elem Element to add text to - * @param {{ - * text: string; - * x: number; - * y: number; - * anchor: 'start' | 'middle' | 'end'; - * fontFamily: string; - * fontSize: string | number; - * fontWeight: string | number; - * fill: string; - * class: string | undefined; - * textMargin: number; - * }} textData - * @returns {SVGTextElement} Text element with given styling and content - */ -export const drawSimpleText = function (elem, textData) { - // Remove and ignore br:s - const nText = textData.text.replace(lineBreakRegex, ' '); - - const textElem = elem.append('text'); - textElem.attr('x', textData.x); - textElem.attr('y', textData.y); - textElem.style('text-anchor', textData.anchor); - textElem.style('font-family', textData.fontFamily); - textElem.style('font-size', textData.fontSize); - textElem.style('font-weight', textData.fontWeight); - textElem.attr('fill', textData.fill); - if (typeof textData.class !== 'undefined') { - textElem.attr('class', textData.class); - } - - const span = textElem.append('tspan'); - span.attr('x', textData.x + textData.textMargin * 2); - span.attr('fill', textData.fill); - span.text(nText); - - return textElem; -}; - -/** - * This calculates the dimensions of the given text, font size, font family, font weight, and margins. - * - * @param {any} text - The text to calculate the width of - * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting - * the resulting size - * @returns - The width for the given text - */ -export const calculateTextDimensions = memoize( - function (text, config) { - config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config); - const { fontSize, fontFamily, fontWeight } = config; - if (!text) { - return { width: 0, height: 0 }; - } - - // We can't really know if the user supplied font family will render on the user agent; - // thus, we'll take the max width between the user supplied font family, and a default - // of sans-serif. - const fontFamilies = ['sans-serif', fontFamily]; - const lines = text.split(common.lineBreakRegex); - let dims = []; - - const body = select('body'); - // We don't want to leak DOM elements - if a removal operation isn't available - // for any reason, do not continue. - if (!body.remove) { - return { width: 0, height: 0, lineHeight: 0 }; - } - - const g = body.append('svg'); - - for (let fontFamily of fontFamilies) { - let cheight = 0; - let dim = { width: 0, height: 0, lineHeight: 0 }; - for (let line of lines) { - const textObj = getTextObj(); - textObj.text = line; - const textElem = drawSimpleText(g, textObj) - .style('font-size', fontSize) - .style('font-weight', fontWeight) - .style('font-family', fontFamily); - - let bBox = (textElem._groups || textElem)[0][0].getBBox(); - dim.width = Math.round(Math.max(dim.width, bBox.width)); - cheight = Math.round(bBox.height); - dim.height += cheight; - dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight)); - } - dims.push(dim); - } - - g.remove(); - - let index = - isNaN(dims[1].height) || - isNaN(dims[1].width) || - isNaN(dims[1].lineHeight) || - (dims[0].height > dims[1].height && - dims[0].width > dims[1].width && - dims[0].lineHeight > dims[1].lineHeight) - ? 0 - : 1; - return dims[index]; - }, - (text, config) => `${text}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}` -); - -const breakString = memoize( - (word, maxWidth, hyphenCharacter = '-', config) => { - config = Object.assign( - { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 }, - config - ); - const characters = word.split(''); - const lines = []; - let currentLine = ''; - characters.forEach((character, index) => { - const nextLine = `${currentLine}${character}`; - const lineWidth = calculateTextWidth(nextLine, config); - if (lineWidth >= maxWidth) { - const currentCharacter = index + 1; - const isLastLine = characters.length === currentCharacter; - const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`; - lines.push(isLastLine ? nextLine : hyphenatedNextLine); - currentLine = ''; - } else { - currentLine = nextLine; - } - }); - return { hyphenatedStrings: lines, remainingWord: currentLine }; - }, - (word, maxWidth, hyphenCharacter = '-', config) => - `${word}-${maxWidth}-${hyphenCharacter}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}` -); - -export const wrapLabel = memoize( - (label, maxWidth, config) => { - if (!label) { - return label; - } - config = Object.assign( - { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
    ' }, - config - ); - if (lineBreakRegex.test(label)) { - return label; - } - const words = label.split(' '); - const completedLines = []; - let nextLine = ''; - words.forEach((word, index) => { - const wordLength = calculateTextWidth(`${word} `, config); - const nextLineLength = calculateTextWidth(nextLine, config); - if (wordLength > maxWidth) { - const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config); - completedLines.push(nextLine, ...hyphenatedStrings); - nextLine = remainingWord; - } else if (nextLineLength + wordLength >= maxWidth) { - completedLines.push(nextLine); - nextLine = word; - } else { - nextLine = [nextLine, word].filter(Boolean).join(' '); - } - const currentWord = index + 1; - const isLastWord = currentWord === words.length; - if (isLastWord) { - completedLines.push(nextLine); - } - }); - return completedLines.filter((line) => line !== '').join(config.joinWith); - }, - (label, maxWidth, config) => - `${label}-${maxWidth}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}-${config.joinWith}` -); From 439274c5ae1f2bf195b7ed1fc63a2a8ea48ee6d5 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 7 Oct 2022 10:40:01 +0200 Subject: [PATCH 0251/1038] chore: Cleanup --- .vite/build.ts | 8 ++--- cypress/platform/knsv.html | 2 +- cypress/platform/knsv2.html | 15 +++++---- cypress/platform/viewer.js | 2 +- .../src/{exampleDetector.ts => detector.ts} | 8 +++++ .../{add-diagram.ts => diagram-definition.ts} | 17 ++++------ .../mermaid-example-diagram/src/registry.ts | 33 ------------------- .../src/{registry.ts => detector.ts} | 4 +-- .../{add-diagram.ts => diagram-definition.ts} | 2 +- packages/mermaid-mindmap/src/mermaidUtils.ts | 26 --------------- .../mermaid-mindmap/src/mindmapDetector.ts | 0 packages/mermaid/src/config.type.ts | 2 +- packages/mermaid/src/defaultConfig.ts | 2 +- packages/mermaid/src/mermaid.ts | 10 +++--- 14 files changed, 40 insertions(+), 91 deletions(-) rename packages/mermaid-example-diagram/src/{exampleDetector.ts => detector.ts} (62%) rename packages/mermaid-example-diagram/src/{add-diagram.ts => diagram-definition.ts} (66%) delete mode 100644 packages/mermaid-example-diagram/src/registry.ts rename packages/mermaid-mindmap/src/{registry.ts => detector.ts} (65%) rename packages/mermaid-mindmap/src/{add-diagram.ts => diagram-definition.ts} (93%) delete mode 100644 packages/mermaid-mindmap/src/mindmapDetector.ts diff --git a/.vite/build.ts b/.vite/build.ts index 6855d3e484..7398d30d5a 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -22,22 +22,22 @@ const packageOptions = { 'mermaid-mindmap': { name: 'mermaid-mindmap', packageName: 'mermaid-mindmap', - file: 'add-diagram.ts', + file: 'diagram-definition.ts', }, 'mermaid-mindmap-detector': { name: 'mermaid-mindmap-detector', packageName: 'mermaid-mindmap', - file: 'registry.ts', + file: 'detector.ts', }, 'mermaid-example-diagram': { name: 'mermaid-example-diagram', packageName: 'mermaid-example-diagram', - file: 'add-diagram.ts', + file: 'diagram-definition.ts', }, 'mermaid-example-diagram-detector': { name: 'mermaid-example-diagram-detector', packageName: 'mermaid-example-diagram', - file: 'registry.ts', + file: 'detector.ts', }, }; diff --git a/cypress/platform/knsv.html b/cypress/platform/knsv.html index 8bd8d7c791..f6ee1ef03a 100644 --- a/cypress/platform/knsv.html +++ b/cypress/platform/knsv.html @@ -385,7 +385,7 @@ htmlLabels: false, fontFamily: 'courier', }, - extraDiagrams: ['./mermaid-mindmap-detector.js'], + lazyLoadedDiagrams: ['./mermaid-mindmap-detector.js'], }); function callback() { alert('It worked'); diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index ca2333cd58..c3c752f9f3 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -55,10 +55,6 @@
    Security check
    -
    -example-diagram
    -        
     mindmap
       root
    @@ -85,6 +81,10 @@
             ::icon(mdi mdi-fire)
               gc7((grand
    grand
    child 8))
    +
    +      example-diagram
    +    
    + @@ -100,8 +100,11 @@ logLevel: 0, // basePath: './packages/', // themeVariables: { darkMode: true }, - extraDiagrams: ['./mermaid-mindmap-detector.esm.mjs'], - // extraDiagrams: ['../../mermaid-mindmap/registry.ts'], + lazyLoadedDiagrams: [ + './mermaid-mindmap-detector.esm.mjs', + './mermaid-example-diagram-detector.esm.mjs', + ], + // lazyLoadedDiagrams: ['../../mermaid-mindmap/registry.ts'], }); function callback() { alert('It worked'); diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index ce1ccc94f2..f0426dc096 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -36,7 +36,7 @@ const contentLoaded = function () { document.getElementsByTagName('body')[0].appendChild(div); } - graphObj.mermaid.extraDiagrams = ['/mermaid-mindmap-detector.esm.mjs']; + graphObj.mermaid.lazyLoadedDiagrams = ['/mermaid-mindmap-detector.esm.mjs']; mermaid2.initialize(graphObj.mermaid); mermaid2.init(); diff --git a/packages/mermaid-example-diagram/src/exampleDetector.ts b/packages/mermaid-example-diagram/src/detector.ts similarity index 62% rename from packages/mermaid-example-diagram/src/exampleDetector.ts rename to packages/mermaid-example-diagram/src/detector.ts index 55fbfe2e35..4d857ac26c 100644 --- a/packages/mermaid-example-diagram/src/exampleDetector.ts +++ b/packages/mermaid-example-diagram/src/detector.ts @@ -1,3 +1,6 @@ +// @ts-ignore: TODO Fix ts errors +export const id = 'example-diagram'; + /** * Detector function that will be called by mermaid to determine if the diagram is this type of digram. * @@ -8,3 +11,8 @@ export const detector = (txt: string) => { return txt.match(/^\s*example-diagram/) !== null; }; + +export const loadDiagram = async () => { + const { diagram } = await import('./diagram-definition'); + return { id, diagram }; +}; diff --git a/packages/mermaid-example-diagram/src/add-diagram.ts b/packages/mermaid-example-diagram/src/diagram-definition.ts similarity index 66% rename from packages/mermaid-example-diagram/src/add-diagram.ts rename to packages/mermaid-example-diagram/src/diagram-definition.ts index ec32ed8380..c31b3d6e71 100644 --- a/packages/mermaid-example-diagram/src/add-diagram.ts +++ b/packages/mermaid-example-diagram/src/diagram-definition.ts @@ -5,13 +5,10 @@ import renderer from './exampleDiagramRenderer'; import styles from './styles'; import { injectUtils } from './mermaidUtils'; -window.mermaid.connectDiagram( - 'example-diagram', - { - db, - renderer, - parser, - styles, - }, - injectUtils -); +export const diagram = { + db, + renderer, + parser, + styles, + injectUtils, +}; diff --git a/packages/mermaid-example-diagram/src/registry.ts b/packages/mermaid-example-diagram/src/registry.ts deleted file mode 100644 index 92ff3bd002..0000000000 --- a/packages/mermaid-example-diagram/src/registry.ts +++ /dev/null @@ -1,33 +0,0 @@ -// @ts-ignore: TODO Fix ts errors -import { detector } from './exampleDetector'; - -const scriptElement = document.currentScript as HTMLScriptElement; -const path = scriptElement.src; -const lastSlash = path.lastIndexOf('/'); -const baseFolder = lastSlash < 0 ? path : path.substring(0, lastSlash + 1); - -if (typeof document !== 'undefined') { - if (window.mermaid && typeof window.mermaid.detectors === 'object') { - window.mermaid.detectors.push({ id: 'example-diagram', detector }); - } else { - window.mermaid = {}; - window.mermaid.detectors = [{ id: 'example-diagram', detector }]; - } - - /* - * Wait for document loaded before starting the execution. - */ - window.addEventListener( - 'load', - () => { - if (window.mermaid && typeof window.mermaid.detectors === 'object') { - window.mermaid.detectors.push({ - id: 'example-diagram', - detector, - path: baseFolder, - }); - } - }, - false - ); -} diff --git a/packages/mermaid-mindmap/src/registry.ts b/packages/mermaid-mindmap/src/detector.ts similarity index 65% rename from packages/mermaid-mindmap/src/registry.ts rename to packages/mermaid-mindmap/src/detector.ts index a76a3627f9..af7002b3c5 100644 --- a/packages/mermaid-mindmap/src/registry.ts +++ b/packages/mermaid-mindmap/src/detector.ts @@ -5,6 +5,6 @@ export const detector = (txt: string) => { }; export const loadDiagram = async () => { - const { mindmap } = await import('./add-diagram'); - return { id, diagram: mindmap }; + const { diagram } = await import('./diagram-definition'); + return { id, diagram }; }; diff --git a/packages/mermaid-mindmap/src/add-diagram.ts b/packages/mermaid-mindmap/src/diagram-definition.ts similarity index 93% rename from packages/mermaid-mindmap/src/add-diagram.ts rename to packages/mermaid-mindmap/src/diagram-definition.ts index c8ade1bfa4..e7856289d8 100644 --- a/packages/mermaid-mindmap/src/add-diagram.ts +++ b/packages/mermaid-mindmap/src/diagram-definition.ts @@ -5,7 +5,7 @@ import mindmapRenderer from './mindmapRenderer'; import mindmapStyles from './styles'; import { injectUtils } from './mermaidUtils'; -export const mindmap = { +export const diagram = { db: mindmapDb, renderer: mindmapRenderer, parser: mindmapParser, diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts index a65523f0cd..7d8ac38bf5 100644 --- a/packages/mermaid-mindmap/src/mermaidUtils.ts +++ b/packages/mermaid-mindmap/src/mermaidUtils.ts @@ -53,29 +53,3 @@ export const injectUtils = ( sanitizeText = _sanitizeText; setupGraphViewbox = _setupGraphViewbox; }; - -/* -const warning = (..._args: any[]) => { - console.error('Log function was called before initialization'); -}; - -export let log = { - trace: warning, - debug: warning, - info: warning, - warn: warning, - error: warning, - fatal: warning, -}; -export let setLogLevel; -export let getConfig; -export let sanitizeText; -export let setupGraphViewbox; -export const injectUtils = (_log, _setLogLevel, _getConfig, _sanitizeText, _setupGraphViewbox) => { - log = _log; - setLogLevel = _setLogLevel; - getConfig = _getConfig; - sanitizeText = _sanitizeText; - setupGraphViewbox = _setupGraphViewbox; -}; -*/ diff --git a/packages/mermaid-mindmap/src/mindmapDetector.ts b/packages/mermaid-mindmap/src/mindmapDetector.ts deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts index b757eb8deb..1059d5709b 100644 --- a/packages/mermaid/src/config.type.ts +++ b/packages/mermaid/src/config.type.ts @@ -3,7 +3,7 @@ import DOMPurify from 'dompurify'; export interface MermaidConfig { - extraDiagrams?: any; + lazyLoadedDiagrams?: any; theme?: string; themeVariables?: any; themeCSS?: string; diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index a900018749..710557bd98 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -115,7 +115,7 @@ const config: Partial = { * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] */ secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'], - extraDiagrams: [], + lazyLoadedDiagrams: [], /** * This option controls if the generated ids of nodes in the SVG are generated randomly or based * on a seed. If set to false, the IDs are generated based on the current date and thus are not diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 07bd2ccfe5..7ddbc9f06f 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -55,11 +55,11 @@ const init = async function ( try { log.info('Detectors in init', mermaid.detectors); // eslint-disable-line const conf = mermaidAPI.getConfig(); - if (typeof conf.extraDiagrams !== 'undefined' && conf.extraDiagrams.length > 0) { - // config.extraDiagrams.forEach(async (diagram: string) => { - const { id, detector, loadDiagram } = await import(conf.extraDiagrams[0]); - addDetector(id, detector, loadDiagram); - // }); + if (typeof conf.lazyLoadedDiagrams !== 'undefined' && conf.lazyLoadedDiagrams.length > 0) { + for (let i = 0; i < conf.lazyLoadedDiagrams.length; i++) { + const { id, detector, loadDiagram } = await import(conf.lazyLoadedDiagrams[i]); + addDetector(id, detector, loadDiagram); + } } mermaid.detectors.forEach(({ id, detector, path }) => { addDetector(id, detector, path); From 74c7a8585d7ef07fa27ad379aa7d1619b5549c66 Mon Sep 17 00:00:00 2001 From: lemontreejs Date: Fri, 7 Oct 2022 14:14:28 +0530 Subject: [PATCH 0252/1038] fix: build npm-script --- demos/pie.html | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demos/pie.html b/demos/pie.html index 096dcd62c9..333ef94917 100644 --- a/demos/pie.html +++ b/demos/pie.html @@ -36,8 +36,8 @@

    Pie chart demos

    "Iron" : 5
    - - ``` diff --git a/docs/index.html b/docs/index.html index c4eb48af8b..b704484577 100644 --- a/docs/index.html +++ b/docs/index.html @@ -21,8 +21,6 @@ rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css" /> - - - -``` - -**b. The embedded mermaid diagram definition inside a `
    `:**
    +**a. The embedded mermaid diagram definition inside a `
    `:**
     
     ```html
     
    @@ -107,13 +97,14 @@ c. The `mermaid.initialize()` call, which dictates the appearance of diagrams an
     
     **Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
    ` tags.
     
    -**c. The `mermaid.initialize()` call.**
    +**b. The import of mermaid and the `mermaid.initialize()` call.**
     
     `mermaid.initialize()` call takes all the definitions contained in all the `
    ` tags that it finds in the html body and renders them into diagrams. Example:
     
     ```html
     
    -  
     
    @@ -135,11 +126,6 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
     ```html
     
       
    -    
    -    
    -
         Here is one mermaid diagram:
         
                 graph TD 
    @@ -156,6 +142,11 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
                 B -->|tcp_456| C[Server1] 
                 B -->|tcp_456| D[Server2]
         
    + + ``` @@ -181,8 +172,8 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file, B --> C[Server1] B --> D[Server2]
    - - @@ -206,4 +197,4 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file, **Comments from Knut Sveidqvist, creator of mermaid:** -- In early versions of mermaid, the ` - ``` - -2. The `mermaidAPI` call, in a separate `script` tag. Example: - - ```html - - ``` - -3. A graph definition, inside `
    ` tags labeled `class=mermaid`. Example: +- A graph definition, inside `
    ` tags labeled `class=mermaid`. Example:
     
     ```html
     
    @@ -66,8 +52,18 @@ The easiest way to integrate mermaid on a web page requires three elements:
     
    ``` -**Following these directions, mermaid starts at page load and (when the page has loaded) it will -locate the graph definitions inside the `div` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** +- Inclusion of the mermaid address in the html page body using a `script` tag as an ESM import, and the `mermaidAPI` call. + +Example: + +```html + +``` + +**Following these directions, mermaid starts at page load and (when the page has loaded) it will locate the graph definitions inside the `pre` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** ## Simple full example: @@ -84,8 +80,8 @@ locate the graph definitions inside the `div` tags with `class="mermaid"` and re B-->C[fa:fa-ban forbidden] B-->D(fa:fa-spinner);
    - - diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 842c210564..2d1aa76209 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -41,7 +41,9 @@ import { remark } from 'remark'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; -const version = JSON.parse(readFileSync('package.json', 'utf8')).version; +const version = ( + JSON.parse(readFileSync('packages/mermaid/package.json', 'utf8')).version as string +).split('.')[0]; // These paths are from the root of the mono-repo, not from the // mermaid sub-directory diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/src/docs/README.md index 36e689101d..0d4d24a013 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/src/docs/README.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) @@ -187,11 +187,11 @@ To Deploy Mermaid: ### [Mermaid API](./Setup.md): -**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaidAPI` call into the HTML like so:** +**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** ```html - - ``` diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index ea3969c777..d884c22a92 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -21,8 +21,6 @@ rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css" /> - - - -``` - -**b. The embedded mermaid diagram definition inside a `
    `:**
    +**a. The embedded mermaid diagram definition inside a `
    `:**
     
     ```html
     
    @@ -105,13 +95,14 @@ c. The `mermaid.initialize()` call, which dictates the appearance of diagrams an
     
     **Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
    ` tags.
     
    -**c. The `mermaid.initialize()` call.**
    +**b. The import of mermaid and the `mermaid.initialize()` call.**
     
     `mermaid.initialize()` call takes all the definitions contained in all the `
    ` tags that it finds in the html body and renders them into diagrams. Example:
     
     ```html
     
    -  
     
    @@ -133,11 +124,6 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
     ```html
     
       
    -    
    -    
    -
         Here is one mermaid diagram:
         
                 graph TD 
    @@ -154,6 +140,11 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
                 B -->|tcp_456| C[Server1] 
                 B -->|tcp_456| D[Server2]
         
    + + ``` @@ -179,8 +170,8 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file, B --> C[Server1] B --> D[Server2]
    - - @@ -204,4 +195,4 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file, **Comments from Knut Sveidqvist, creator of mermaid:** -- In early versions of mermaid, the ` - ``` - -2. The `mermaidAPI` call, in a separate `script` tag. Example: - - ```html - - ``` - -3. A graph definition, inside `
    ` tags labeled `class=mermaid`. Example: +- A graph definition, inside `
    ` tags labeled `class=mermaid`. Example:
     
     ```html
     
    @@ -66,8 +52,18 @@ The easiest way to integrate mermaid on a web page requires three elements:
     
    ``` -**Following these directions, mermaid starts at page load and (when the page has loaded) it will -locate the graph definitions inside the `div` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** +- Inclusion of the mermaid address in the html page body using a `script` tag as an ESM import, and the `mermaidAPI` call. + +Example: + +```html + +``` + +**Following these directions, mermaid starts at page load and (when the page has loaded) it will locate the graph definitions inside the `pre` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** ## Simple full example: @@ -84,8 +80,8 @@ locate the graph definitions inside the `div` tags with `class="mermaid"` and re B-->C[fa:fa-ban forbidden] B-->D(fa:fa-spinner);
    - - diff --git a/vdocs/config/usage.md b/vdocs/config/usage.md index 4a67185944..5b76f27290 100644 --- a/vdocs/config/usage.md +++ b/vdocs/config/usage.md @@ -39,23 +39,9 @@ We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermai > Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted.md) -The easiest way to integrate mermaid on a web page requires three elements: +The easiest way to integrate mermaid on a web page requires two elements: -1. Inclusion of the mermaid address in the html page using a `script` tag, in the `src` section.Example: - - ```html - - ``` - -2. The `mermaidAPI` call, in a separate `script` tag. Example: - - ```html - - ``` - -3. A graph definition, inside `
    ` tags labeled `class=mermaid`. Example: +- A graph definition, inside `
    ` tags labeled `class=mermaid`. Example:
     
     ```html
     
    @@ -66,8 +52,18 @@ The easiest way to integrate mermaid on a web page requires three elements:
     
    ``` -**Following these directions, mermaid starts at page load and (when the page has loaded) it will -locate the graph definitions inside the `div` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** +- Inclusion of the mermaid address in the html page body using a `script` tag as an ESM import, and the `mermaidAPI` call. + +Example: + +```html + +``` + +**Following these directions, mermaid starts at page load and (when the page has loaded) it will locate the graph definitions inside the `pre` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** ## Simple full example: @@ -84,8 +80,8 @@ locate the graph definitions inside the `div` tags with `class="mermaid"` and re B-->C[fa:fa-ban forbidden] B-->D(fa:fa-spinner);
    - - diff --git a/vdocs/intro/index.md b/vdocs/intro/index.md index fcf61ff097..bd53ae4bda 100644 --- a/vdocs/intro/index.md +++ b/vdocs/intro/index.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) @@ -262,16 +262,16 @@ To Deploy Mermaid: ### [Mermaid API](../config/Setup.md): -**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaidAPI` call into the HTML like so:** +**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** ```html - - ``` -**Doing so will command the mermaid parser to look for the `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.** +**Doing so will command the mermaid parser to look for the `
    ` or `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
     
     **Examples can be found at** [Other examples](../syntax/examples)
     
    diff --git a/vdocs/intro/n00b-gettingStarted.md b/vdocs/intro/n00b-gettingStarted.md
    index 015be984f4..b5abe96d67 100644
    --- a/vdocs/intro/n00b-gettingStarted.md
    +++ b/vdocs/intro/n00b-gettingStarted.md
    @@ -82,23 +82,13 @@ The API works by pulling rendering instructions from the source `mermaid.js` in
     
     ### Requirements for the Mermaid API.
     
    -When writing the .html file, we give three instructions inside the html code to the web browser:
    +When writing the .html file, we give two instructions inside the html code to the web browser:
     
    -a. A reference for fetching the online mermaid renderer, through the `mermaid.js` or `mermaid.min.js`.
    +a. The mermaid code for the diagram we want to create.
     
    -b. The mermaid code for the diagram we want to create.
    +b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm.min.mjs` and the `mermaid.initialize()` call, which dictates the appearance of diagrams and also starts the rendering process .
     
    -c. The `mermaid.initialize()` call, which dictates the appearance of diagrams and also starts the rendering process .
    -
    -**a. A reference to the external CDN in a `
    -
    -```
    -
    -**b. The embedded mermaid diagram definition inside a `
    `:**
    +**a. The embedded mermaid diagram definition inside a `
    `:**
     
     ```html
     
    @@ -114,13 +104,14 @@ c. The `mermaid.initialize()` call, which dictates the appearance of diagrams an
     
     **Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
    ` tags.
     
    -**c. The `mermaid.initialize()` call.**
    +**b. The import of mermaid and the `mermaid.initialize()` call.**
     
     `mermaid.initialize()` call takes all the definitions contained in all the `
    ` tags that it finds in the html body and renders them into diagrams. Example:
     
     ```html
     
    -  
     
    @@ -142,11 +133,6 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
     ```html
     
       
    -    
    -    
    -
         Here is one mermaid diagram:
         
                 graph TD 
    @@ -163,6 +149,11 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
                 B -->|tcp_456| C[Server1] 
                 B -->|tcp_456| D[Server2]
         
    + + ``` @@ -188,8 +179,8 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file, B --> C[Server1] B --> D[Server2]
    - - @@ -213,4 +204,4 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file, **Comments from Knut Sveidqvist, creator of mermaid:** -- In early versions of mermaid, the ` - - - - From bc258793ac73cbaf7fc471b74ba627c3088a73f8 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sat, 8 Oct 2022 19:15:01 +0800 Subject: [PATCH 0312/1038] docs: Add version to doc index.html --- docs/index.html | 2 +- packages/mermaid/src/docs.mts | 9 ++++++--- packages/mermaid/src/docs/index.html | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/index.html b/docs/index.html index b704484577..57bb78d779 100644 --- a/docs/index.html +++ b/docs/index.html @@ -49,7 +49,7 @@
    diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/src/docs/README.md index 0d4d24a013..35fece35cd 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/src/docs/README.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) diff --git a/vdocs/intro/index.md b/vdocs/intro/index.md index bd53ae4bda..144894f904 100644 --- a/vdocs/intro/index.md +++ b/vdocs/intro/index.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) From 622b441eb074f60bcde92e33dc5c218c2149301a Mon Sep 17 00:00:00 2001 From: lemontreejs Date: Sat, 8 Oct 2022 20:06:57 +0530 Subject: [PATCH 0314/1038] fix: docs path in windows --- docs/README.md | 4 +-- docs/Setup.md | 46 +++++++++++++++++------------------ docs/accessibility.md | 2 +- docs/c4c.md | 2 +- docs/integrations.md | 2 +- docs/mindmap.md | 4 +-- packages/mermaid/src/docs.mts | 23 +++++++++++++++--- 7 files changed, 50 insertions(+), 33 deletions(-) diff --git a/docs/README.md b/docs/README.md index 62f5b9d9b5..00e03c76d1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -347,7 +347,7 @@ Update version number in `package.json`. npm publish ``` -The above command generates files into the `dist` folder and publishes them to \. +The above command generates files into the `dist` folder and publishes them to npmjs.org. ## Related projects @@ -363,7 +363,7 @@ Detailed information about how to contribute can be found in the [contribution g ## Security and safe diagrams -For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitize the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. +For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security. diff --git a/docs/Setup.md b/docs/Setup.md index dec5134989..89a3e91460 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -74,15 +74,15 @@ Theme , the CSS style sheet | Parameter | Description | Type | Required | Values | | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | string | Required | `sandbox`, `strict`, `loose`, `antiscript` | +| securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' | **Notes**: -- **`strict`**: (**default**) tags in text are encoded, click functionality is disabled -- **`loose`**: tags in text are allowed, click functionality is enabled -- **`antiscript`**: html tags in text are allowed, (only script element is removed), click +- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **loose**: tags in text are allowed, click functionality is enabled +- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled -- **`sandbox`**: With this security level all rendering takes place in a sandboxed iframe. This +- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript from running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. @@ -121,11 +121,11 @@ Default value: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] This option controls if the generated ids of nodes in the SVG are generated randomly or based on a seed. If set to false, the IDs are generated based on the current date and thus are not -deterministic. This is the default behavior. +deterministic. This is the default behaviour. **Notes**: -This matters if your files are checked into source control e.g. git and should not change unless +This matters if your files are checked into sourcecontrol e.g. git and should not change unless content is changed. Default value: false @@ -212,16 +212,16 @@ Default value: true ### defaultRenderer -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | **Notes:** Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid -Default value: `dagre-wrapper` +Default value: 'dagre-wrapper' ## sequence @@ -737,16 +737,16 @@ Default value: true ## defaultRenderer -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | **Notes**: Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid -Default value: `dagre-d3` +Default value: 'dagre-d3' ## useMaxWidth @@ -763,16 +763,16 @@ Default value: true ## defaultRenderer -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | **Notes:** Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid -Default value: `dagre-d3` +Default value: 'dagre-d3' ## er @@ -994,7 +994,7 @@ Default value: 4 | --------------- | ----------- | ------- | -------- | ------------------ | | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | -**Notes:** How many boundaries to place in each row. +**Notes:** How many boundarys to place in each row. Default value: 2 diff --git a/docs/accessibility.md b/docs/accessibility.md index 09d80df652..bce3da25d7 100644 --- a/docs/accessibility.md +++ b/docs/accessibility.md @@ -19,7 +19,7 @@ The diagram authors can now add the accessibility options in the diagram definit - `accTitle: "Your Accessibility Title"` or - `accDescr: "Your Accessibility Description"` -**When these two options are defined, they will add a corresponding `` and `<desc>` tag in the SVG.** +**When these two options are defined, they will add a coressponding `<title>` and `<desc>` tag in the SVG.** Let us take a look at the following example with a flowchart diagram: diff --git a/docs/c4c.md b/docs/c4c.md index 4f9e09ab5e..40dbb6fe6c 100644 --- a/docs/c4c.md +++ b/docs/c4c.md @@ -220,7 +220,7 @@ The following unfinished features are not supported in the short term. - - \[x] RelIndex \* Compatible with C4-Plantuml syntax, but ignores the index parameter. The sequence number is determined by the order in which the rel statements are written. -- \[ ] Custom tags/stereotypes support and skin param updates +- \[ ] Custom tags/stereotypes support and skinparam updates - - \[ ] AddElementTag(tagStereo, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite): Introduces a new element tag. The styles of the tagged elements are updated and the tag is displayed in the calculated legend. diff --git a/docs/integrations.md b/docs/integrations.md index 09df7cf9fe..49c1034922 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -33,7 +33,7 @@ They also serve as proof of concept, for the variety of things that can be built - [Mermaid Macro](https://www.redmine.org/plugins/redmine_mermaid_macro) - [redmine-mermaid](https://github.com/styz/redmine_mermaid) - [markdown-for-mermaid-plugin](https://github.com/jamieh-mongolian/markdown-for-mermaid-plugin) -- [JetBrains IDE eg Pycharm](https://www.jetbrains.com/go/guide/tips/mermaid-js-support-in-markdown/) +- [Jetsbrain IDE eg Pycharm](https://www.jetbrains.com/go/guide/tips/mermaid-js-support-in-markdown/) - [mermerd](https://github.com/KarnerTh/mermerd) ## CRM/ERP/Similar diff --git a/docs/mindmap.md b/docs/mindmap.md index 94baf43e01..f56a2186d6 100644 --- a/docs/mindmap.md +++ b/docs/mindmap.md @@ -2,7 +2,7 @@ # Mindmap -> Mindmap: This is an experimental diagram for now. The syntax and properties can change in future releases. The syntax is stable except for the icon integration which is the experimental part. +> Mindmap: This is an experimental diagram for now. The syntax and properties can change in future releases. The syntax is stabel except for the icon integration which is the experimental part. "A mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those major ideas." Wikipedia @@ -54,7 +54,7 @@ mindmap The syntax for creating Mindmaps is simple and relies on indentation for setting the levels in the hierarchy. -In the following example you can see how there are 3 different levels. One with starting at the left of the text and another level with two rows starting at the same column, defining the node A. At the end there is one more level where the text is indented further then the previous lines defining the nodes B and C. +In the following example you can see how there are 3 dufferent levels. One with starting at the left of the text and another level with two rows starting at the same column, defining the node A. At the end there is one more level where the text is indented further then the prevoius lines defining the nodes B and C. mindmap Root diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 72357135d8..74a8658b51 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -41,12 +41,27 @@ import { remark } from 'remark'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; +/** + * Windows uses '\\' as path delimitter. + * The package `globby` requires all paths to contain forward-slashes only. + * Also it is better if the `AUTOGENERATED_TEXT` has same paths (type of slashes) in all platforms. + * But while actually using the paths, they should be used with platform-specific delimiters. + * So replace all '\\' with '/' for `globby` and `AUTOGENERATED_TEXT` only to maintain uniformity. + * @param path + * @returns normalized path + */ +const normalizeUniform = (path: string) => { + return path.replace(/\\/g, '/'); +}; + // These paths are from the root of the mono-repo, not from the // mermaid sub-directory const SOURCE_DOCS_DIR = join(...'packages/mermaid/src/docs'.split('/')); const FINAL_DOCS_DIR = 'docs'; -const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; +const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${normalizeUniform( + SOURCE_DOCS_DIR +)}.`; const LOGMSG_TRANSFORMED = 'transformed'; const LOGMSG_TO_BE_TRANSFORMED = 'to be transformed'; @@ -78,7 +93,9 @@ let filesWereTransformed = false; * @todo Possible Improvement: combine with lint-staged to only copy files that have changed */ const changeToFinalDocDir = (file: string): string => { - const newDir = file.replace(SOURCE_DOCS_DIR, FINAL_DOCS_DIR); + // `SOURCE_DOCS_DIR` will have `\\` delimiter in Windows, but path returned by `globby` will have `/` + // So use `normalizeUniform` + const newDir = file.replace(normalizeUniform(SOURCE_DOCS_DIR), FINAL_DOCS_DIR); mkdirSync(dirname(newDir), { recursive: true }); return newDir; }; @@ -205,7 +222,7 @@ const transformHtml = (filename: string) => { const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { return await globby( - globs.map((glob) => glob.replace(/\\/g, '/')), + globs.map((glob) => normalizeUniform(glob)), { dot: true, } From 1fa84a30c933eae2bf02cb74d3bfa3a6c0802778 Mon Sep 17 00:00:00 2001 From: Valentin Valls <valentin.valls@esrf.fr> Date: Sun, 2 Oct 2022 17:07:34 +0200 Subject: [PATCH 0315/1038] Fill inheritance arrow with background color --- packages/mermaid/src/diagrams/class/styles.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/class/styles.js b/packages/mermaid/src/diagrams/class/styles.js index 9e7665c586..9dcda70f5a 100644 --- a/packages/mermaid/src/diagrams/class/styles.js +++ b/packages/mermaid/src/diagrams/class/styles.js @@ -105,13 +105,13 @@ g.classGroup line { } #extensionStart, .extension { - fill: ${options.lineColor} !important; + fill: ${options.mainBkg} !important; stroke: ${options.lineColor} !important; stroke-width: 1; } #extensionEnd, .extension { - fill: ${options.lineColor} !important; + fill: ${options.mainBkg} !important; stroke: ${options.lineColor} !important; stroke-width: 1; } From 235797a97c685580ce0d179c6b8b6b61b9ecda5a Mon Sep 17 00:00:00 2001 From: Valentin Valls <valentin.valls@esrf.fr> Date: Sat, 8 Oct 2022 19:22:55 +0200 Subject: [PATCH 0316/1038] Fix file name during "dev" script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e2562bc3e8..4ad8824201 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "build:types": "concurrently \"tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly\" \"tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly\"", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", - "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server\"", + "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "docs:build": "ts-node-esm --transpileOnly packages/mermaid/src/docs.mts", "docs:verify": "pnpm docs:build --verify", "todo-postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", From 053c966d5ff1bab35c76211e7063bac93b86008b Mon Sep 17 00:00:00 2001 From: jasmaa <jasonmaa3955@gmail.com> Date: Sat, 8 Oct 2022 16:51:11 -0400 Subject: [PATCH 0317/1038] Order pie chart slices clockwise by order of entries --- .../mermaid/src/diagrams/pie/pieRenderer.js | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/src/diagrams/pie/pieRenderer.js b/packages/mermaid/src/diagrams/pie/pieRenderer.js index f8e21bc9d1..42b45162c8 100644 --- a/packages/mermaid/src/diagrams/pie/pieRenderer.js +++ b/packages/mermaid/src/diagrams/pie/pieRenderer.js @@ -94,10 +94,22 @@ export const draw = (txt, id, _version, diagObj) => { var color = scaleOrdinal().range(myGeneratedColors); // Compute the position of each group on the pie: - var pie = d3pie().value(function (d) { - return d[1]; + var pieData = Object.entries(data).map(function (el, idx) { + return { + order: idx, + name: el[0], + value: el[1], + }; }); - var dataReady = pie(Object.entries(data)); + var pie = d3pie() + .value(function (d) { + return d.value; + }) + .sort(function (a, b) { + // Sort slices in clockwise direction + return a.order - b.order; + }); + var dataReady = pie(pieData); // Shape helper to build arcs: var arcGenerator = arc().innerRadius(0).outerRadius(radius); @@ -110,7 +122,7 @@ export const draw = (txt, id, _version, diagObj) => { .append('path') .attr('d', arcGenerator) .attr('fill', function (d) { - return color(d.data[0]); + return color(d.data.name); }) .attr('class', 'pieCircle'); @@ -122,7 +134,7 @@ export const draw = (txt, id, _version, diagObj) => { .enter() .append('text') .text(function (d) { - return ((d.data[1] / sum) * 100).toFixed(0) + '%'; + return ((d.data.value / sum) * 100).toFixed(0) + '%'; }) .attr('transform', function (d) { return 'translate(' + arcGenerator.centroid(d) + ')'; @@ -166,9 +178,9 @@ export const draw = (txt, id, _version, diagObj) => { .attr('y', legendRectSize - legendSpacing) .text(function (d) { if (diagObj.db.getShowData() || conf.showData || conf.pie.showData) { - return d.data[0] + ' [' + d.data[1] + ']'; + return d.data.name + ' [' + d.data.value + ']'; } else { - return d.data[0]; + return d.data.name; } }); } catch (e) { From c55add73f61149847309e38f169c14ffd68e44b7 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 9 Oct 2022 21:00:02 +0800 Subject: [PATCH 0318/1038] docs: Add link to docs source --- docs/8.6.0_docs.md | 2 +- docs/CHANGELOG.md | 2 +- docs/Configuration.md | 2 +- docs/README.md | 2 +- docs/SUMMARY.md | 2 +- docs/Setup.md | 2 +- docs/Tutorials.md | 2 +- docs/_navbar.md | 2 +- docs/_sidebar.md | 2 +- docs/accessibility.md | 2 +- docs/breakingChanges.md | 2 +- docs/c4c.md | 2 +- docs/classDiagram.md | 2 +- docs/developer-docs/configuration.md | 2 +- docs/development.md | 2 +- docs/diagrams-and-syntax-and-examples/flowchart.md | 2 +- docs/directives.md | 2 +- docs/entityRelationshipDiagram.md | 2 +- docs/examples.md | 2 +- docs/faq.md | 2 +- docs/flowchart.md | 2 +- docs/gantt.md | 2 +- docs/gitgraph.md | 2 +- docs/index.html | 2 +- docs/integrations.md | 2 +- docs/introduction.md | 2 +- docs/landing/index.html | 2 +- docs/mermaidCLI.md | 2 +- docs/mindmap.md | 2 +- docs/n00b-advanced.md | 2 +- docs/n00b-gettingStarted.md | 2 +- docs/n00b-overview.md | 2 +- docs/n00b-syntaxReference.md | 2 +- docs/newDiagram.md | 2 +- docs/pie.md | 2 +- docs/requirementDiagram.md | 2 +- docs/security.md | 2 +- docs/sequenceDiagram.md | 2 +- docs/stateDiagram.md | 2 +- docs/theming.md | 2 +- docs/upgrading.md | 2 +- docs/usage.md | 2 +- docs/user-journey.md | 2 +- packages/mermaid/src/docs.mts | 10 ++++++---- 44 files changed, 49 insertions(+), 47 deletions(-) diff --git a/docs/8.6.0_docs.md b/docs/8.6.0_docs.md index cc812901e4..11940c6223 100644 --- a/docs/8.6.0_docs.md +++ b/docs/8.6.0_docs.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/8.6.0_docs.md](../packages/mermaid/src/docs/8.6.0_docs.md). # Version 8.6.0 Changes diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 7dbfecee4a..95c5c14c9c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/CHANGELOG.md](../packages/mermaid/src/docs/CHANGELOG.md). # Change Log diff --git a/docs/Configuration.md b/docs/Configuration.md index 4902dabdbe..672925383a 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/Configuration.md](../packages/mermaid/src/docs/Configuration.md). # Configuration diff --git a/docs/README.md b/docs/README.md index 62f5b9d9b5..403b81d5fb 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/README.md](../packages/mermaid/src/docs/README.md). # About Mermaid diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 41156fee58..21c0032b0f 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/SUMMARY.md](../packages/mermaid/src/docs/SUMMARY.md). # Summary diff --git a/docs/Setup.md b/docs/Setup.md index dec5134989..952dc5c5db 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/Setup.md](../packages/mermaid/src/docs/Setup.md). <!-- Generated by documentation.js. Update this documentation by updating the source code. --> diff --git a/docs/Tutorials.md b/docs/Tutorials.md index 0f9465a35c..14f6dabac7 100644 --- a/docs/Tutorials.md +++ b/docs/Tutorials.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/Tutorials.md](../packages/mermaid/src/docs/Tutorials.md). # Tutorials diff --git a/docs/_navbar.md b/docs/_navbar.md index 7f9f495a7b..3721b2f4ea 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/\_navbar.md](../packages/mermaid/src/docs/_navbar.md). - Getting started diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 17cde68c9d..a7872f609a 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/\_sidebar.md](../packages/mermaid/src/docs/_sidebar.md). - 📔 Introduction diff --git a/docs/accessibility.md b/docs/accessibility.md index 09d80df652..dfcb139e70 100644 --- a/docs/accessibility.md +++ b/docs/accessibility.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/accessibility.md](../packages/mermaid/src/docs/accessibility.md). # Accessibility Options diff --git a/docs/breakingChanges.md b/docs/breakingChanges.md index 964d89e4fa..27229e5254 100644 --- a/docs/breakingChanges.md +++ b/docs/breakingChanges.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/breakingChanges.md](../packages/mermaid/src/docs/breakingChanges.md). # Breaking changes diff --git a/docs/c4c.md b/docs/c4c.md index 4f9e09ab5e..c763765b1f 100644 --- a/docs/c4c.md +++ b/docs/c4c.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/c4c.md](../packages/mermaid/src/docs/c4c.md). # C4 Diagrams diff --git a/docs/classDiagram.md b/docs/classDiagram.md index 529933b983..49ecc0e239 100644 --- a/docs/classDiagram.md +++ b/docs/classDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/classDiagram.md](../packages/mermaid/src/docs/classDiagram.md). # Class diagrams diff --git a/docs/developer-docs/configuration.md b/docs/developer-docs/configuration.md index ba3422f6d9..8188396ae0 100644 --- a/docs/developer-docs/configuration.md +++ b/docs/developer-docs/configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/developer-docs/configuration.md](../packages/mermaid/src/docs/developer-docs/configuration.md). # Configuration diff --git a/docs/development.md b/docs/development.md index 3f2033d618..ac261e44cf 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/development.md](../packages/mermaid/src/docs/development.md). # Development and Contribution 🙌 diff --git a/docs/diagrams-and-syntax-and-examples/flowchart.md b/docs/diagrams-and-syntax-and-examples/flowchart.md index a55c6292ac..c5eb838a41 100644 --- a/docs/diagrams-and-syntax-and-examples/flowchart.md +++ b/docs/diagrams-and-syntax-and-examples/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md](../packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md). --- diff --git a/docs/directives.md b/docs/directives.md index f814782f09..5d8407d9b3 100644 --- a/docs/directives.md +++ b/docs/directives.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/directives.md](../packages/mermaid/src/docs/directives.md). # Directives diff --git a/docs/entityRelationshipDiagram.md b/docs/entityRelationshipDiagram.md index 78d058e786..1865307506 100644 --- a/docs/entityRelationshipDiagram.md +++ b/docs/entityRelationshipDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/entityRelationshipDiagram.md](../packages/mermaid/src/docs/entityRelationshipDiagram.md). # Entity Relationship Diagrams diff --git a/docs/examples.md b/docs/examples.md index b3175edac6..62f2c60881 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/examples.md](../packages/mermaid/src/docs/examples.md). # Examples diff --git a/docs/faq.md b/docs/faq.md index a24b436b6a..0d8920178b 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/faq.md](../packages/mermaid/src/docs/faq.md). # Frequently Asked Questions diff --git a/docs/flowchart.md b/docs/flowchart.md index fd2c95ffee..91efca6f74 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/flowchart.md](../packages/mermaid/src/docs/flowchart.md). # Flowcharts - Basic Syntax diff --git a/docs/gantt.md b/docs/gantt.md index 9246f24ddb..279ba52028 100644 --- a/docs/gantt.md +++ b/docs/gantt.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/gantt.md](../packages/mermaid/src/docs/gantt.md). # Gantt diagrams diff --git a/docs/gitgraph.md b/docs/gitgraph.md index 8efbf9fa5c..b4269d7c62 100644 --- a/docs/gitgraph.md +++ b/docs/gitgraph.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/gitgraph.md](../packages/mermaid/src/docs/gitgraph.md). # Gitgraph Diagrams diff --git a/docs/index.html b/docs/index.html index c4eb48af8b..dfeae9b8bb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <html lang="en"> - <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.--><head> + <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/index.html](../packages/mermaid/src/docs/index.html).--><head> <meta charset="UTF-8" /> <title> mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, diff --git a/docs/integrations.md b/docs/integrations.md index 09df7cf9fe..df973f7027 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/integrations.md](../packages/mermaid/src/docs/integrations.md). # Integrations diff --git a/docs/introduction.md b/docs/introduction.md index 72235794a5..c092b76eef 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -1 +1 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/introduction.md](../packages/mermaid/src/docs/introduction.md). diff --git a/docs/landing/index.html b/docs/landing/index.html index 2504d05809..044ee679ce 100644 --- a/docs/landing/index.html +++ b/docs/landing/index.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <html lang="en"> - <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.--><head> + <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/landing/index.html](../packages/mermaid/src/docs/landing/index.html).--><head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> diff --git a/docs/mermaidCLI.md b/docs/mermaidCLI.md index 01860cab2d..239b3f2351 100644 --- a/docs/mermaidCLI.md +++ b/docs/mermaidCLI.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/mermaidCLI.md](../packages/mermaid/src/docs/mermaidCLI.md). # mermaid CLI diff --git a/docs/mindmap.md b/docs/mindmap.md index 94baf43e01..513abc5fe4 100644 --- a/docs/mindmap.md +++ b/docs/mindmap.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/mindmap.md](../packages/mermaid/src/docs/mindmap.md). # Mindmap diff --git a/docs/n00b-advanced.md b/docs/n00b-advanced.md index e6a6adcc37..e24b079daa 100644 --- a/docs/n00b-advanced.md +++ b/docs/n00b-advanced.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/n00b-advanced.md](../packages/mermaid/src/docs/n00b-advanced.md). # Advanced n00b mermaid (Coming soon..) diff --git a/docs/n00b-gettingStarted.md b/docs/n00b-gettingStarted.md index b82e2ff017..d6d0da3e8d 100644 --- a/docs/n00b-gettingStarted.md +++ b/docs/n00b-gettingStarted.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/n00b-gettingStarted.md](../packages/mermaid/src/docs/n00b-gettingStarted.md). # A Mermaid User-Guide for Beginners diff --git a/docs/n00b-overview.md b/docs/n00b-overview.md index df400e4bb6..58078723ba 100644 --- a/docs/n00b-overview.md +++ b/docs/n00b-overview.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/n00b-overview.md](../packages/mermaid/src/docs/n00b-overview.md). # Overview for Beginners diff --git a/docs/n00b-syntaxReference.md b/docs/n00b-syntaxReference.md index 2c9ef72074..85a7e688c4 100644 --- a/docs/n00b-syntaxReference.md +++ b/docs/n00b-syntaxReference.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/n00b-syntaxReference.md](../packages/mermaid/src/docs/n00b-syntaxReference.md). # Diagram Syntax diff --git a/docs/newDiagram.md b/docs/newDiagram.md index 0708657020..f037499829 100644 --- a/docs/newDiagram.md +++ b/docs/newDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/newDiagram.md](../packages/mermaid/src/docs/newDiagram.md). # Adding a New Diagram/Chart 📊 diff --git a/docs/pie.md b/docs/pie.md index f59efd93ad..c57f354832 100644 --- a/docs/pie.md +++ b/docs/pie.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/pie.md](../packages/mermaid/src/docs/pie.md). # Pie chart diagrams diff --git a/docs/requirementDiagram.md b/docs/requirementDiagram.md index cf4c4bdc60..c48e61f821 100644 --- a/docs/requirementDiagram.md +++ b/docs/requirementDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/requirementDiagram.md](../packages/mermaid/src/docs/requirementDiagram.md). # Requirement Diagram diff --git a/docs/security.md b/docs/security.md index cac6d8da29..8b9d9bc58d 100644 --- a/docs/security.md +++ b/docs/security.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/security.md](../packages/mermaid/src/docs/security.md). # Security diff --git a/docs/sequenceDiagram.md b/docs/sequenceDiagram.md index 619f33243e..71ac19ffcb 100644 --- a/docs/sequenceDiagram.md +++ b/docs/sequenceDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/sequenceDiagram.md](../packages/mermaid/src/docs/sequenceDiagram.md). # Sequence diagrams diff --git a/docs/stateDiagram.md b/docs/stateDiagram.md index ecea7cf5db..e7ade930b2 100644 --- a/docs/stateDiagram.md +++ b/docs/stateDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/stateDiagram.md](../packages/mermaid/src/docs/stateDiagram.md). # State diagrams diff --git a/docs/theming.md b/docs/theming.md index c2dd3f2ae6..1a09eb8689 100644 --- a/docs/theming.md +++ b/docs/theming.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/theming.md](../packages/mermaid/src/docs/theming.md). # Theme Configuration diff --git a/docs/upgrading.md b/docs/upgrading.md index 884326fb77..cd0fa93af4 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/upgrading.md](../packages/mermaid/src/docs/upgrading.md). # Upgrading diff --git a/docs/usage.md b/docs/usage.md index be986a56b9..4f28b809dc 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/usage.md](../packages/mermaid/src/docs/usage.md). # Usage diff --git a/docs/user-journey.md b/docs/user-journey.md index e40efc5a9a..423f13c58f 100644 --- a/docs/user-journey.md +++ b/docs/user-journey.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/user-journey.md](../packages/mermaid/src/docs/user-journey.md). # User Journey Diagram diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index a22dc59e20..59bcfc544b 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -46,8 +46,6 @@ import flatmap from 'unist-util-flatmap'; const SOURCE_DOCS_DIR = 'packages/mermaid/src/docs'; const FINAL_DOCS_DIR = 'docs'; -const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; - const LOGMSG_TRANSFORMED = 'transformed'; const LOGMSG_TO_BE_TRANSFORMED = 'to be transformed'; const LOGMSG_COPIED = `, and copied to ${FINAL_DOCS_DIR}`; @@ -68,6 +66,10 @@ const prettierConfig: prettier.Config = { let filesWereTransformed = false; +const generateHeader = (file: string): string => { + return `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [${file}](../${file}).`; +}; + /** * Given a source file name and path, return the documentation destination full path and file name * Create the destination path if it does not already exist. @@ -160,7 +162,7 @@ const transformMarkdown = (file: string) => { }); // Add the AUTOGENERATED_TEXT to the start of the file - const transformed = `${AUTOGENERATED_TEXT}\n${remark.stringify(out)}`; + const transformed = `${generateHeader(file)}\n${remark.stringify(out)}`; const formatted = prettier.format(transformed, { parser: 'markdown', ...prettierConfig, @@ -188,7 +190,7 @@ const transformHtml = (filename: string) => { const fileContents = readSyncedUTF8file(fileName); const jsdom = new JSDOM(fileContents); const htmlDoc = jsdom.window.document; - const autoGeneratedComment = jsdom.window.document.createComment(AUTOGENERATED_TEXT); + const autoGeneratedComment = jsdom.window.document.createComment(generateHeader(fileName)); const rootElement = htmlDoc.documentElement; rootElement.prepend(autoGeneratedComment); From 8e93ffffc67ce0dbb8659af37fa502e06b59bf1f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 9 Oct 2022 21:11:11 +0800 Subject: [PATCH 0319/1038] docs: Fix docs path in Contributing.md --- CONTRIBUTING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7efa8e418..2234d5148b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,16 +39,16 @@ Less strict here, it is OK to commit directly in the `develop` branch if you are The documentation is written in **Markdown**. For more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). -### Documentation source files are in /src/docs +### Documentation source files are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) -The source files for the project documentation are located in the `/src/docs` directory. This is where you should make changes. -The files under `/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. +The source files for the project documentation are located in the [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) directory. This is where you should make changes. +The files under `/packages/mermaid/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. ```mermaid flowchart LR classDef default fill:#fff,color:black,stroke:black - source["files in /src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] + source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] ``` @@ -137,7 +137,7 @@ it('should render forks and joins', () => { Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature? -The source files for documentation are in `/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. +The source files for documentation are in `/packages/mermaid/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. #### Adding to or changing the documentation organization From 1255c0064bad7602ca9448d9a27d60d274bc6111 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 9 Oct 2022 21:11:11 +0800 Subject: [PATCH 0320/1038] docs: Fix docs path in Contributing.md --- CONTRIBUTING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7efa8e418..2234d5148b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,16 +39,16 @@ Less strict here, it is OK to commit directly in the `develop` branch if you are The documentation is written in **Markdown**. For more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). -### Documentation source files are in /src/docs +### Documentation source files are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) -The source files for the project documentation are located in the `/src/docs` directory. This is where you should make changes. -The files under `/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. +The source files for the project documentation are located in the [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) directory. This is where you should make changes. +The files under `/packages/mermaid/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. ```mermaid flowchart LR classDef default fill:#fff,color:black,stroke:black - source["files in /src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] + source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] ``` @@ -137,7 +137,7 @@ it('should render forks and joins', () => { Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature? -The source files for documentation are in `/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. +The source files for documentation are in `/packages/mermaid/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. #### Adding to or changing the documentation organization From 6e2deb1fa7d73b9d2a41934faea7e0f6005cecc6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 9 Oct 2022 22:08:32 +0800 Subject: [PATCH 0321/1038] fix: Fix eslint warnings --- .eslintrc.json | 15 ++++++++------- __mocks__/dagre-d3.ts | 4 +--- cypress/platform/xss10.html | 2 +- cypress/platform/xss11.html | 2 +- cypress/platform/xss12.html | 2 +- cypress/platform/xss13.html | 2 +- cypress/platform/xss14.html | 2 +- cypress/platform/xss15.html | 2 +- cypress/platform/xss16.html | 2 +- cypress/platform/xss17.html | 2 +- cypress/platform/xss18.html | 2 +- cypress/platform/xss19.html | 2 +- cypress/platform/xss2.html | 6 +++--- cypress/platform/xss20.html | 2 +- cypress/platform/xss21.html | 2 +- cypress/platform/xss3.html | 6 +++--- cypress/platform/xss4.html | 2 +- cypress/platform/xss5.html | 2 +- cypress/platform/xss6.html | 2 +- cypress/platform/xss7.html | 2 +- cypress/platform/xss8.html | 2 +- cypress/platform/xss9.html | 2 +- demos/c4context.html | 2 +- demos/dataflowchart.html | 2 +- demos/flowchart.html | 2 +- demos/gantt.html | 2 +- docs/Setup.md | 2 +- docs/classDiagram.md | 6 +++--- .../diagrams-and-syntax-and-examples/flowchart.md | 6 +++--- docs/flowchart.md | 6 +++--- docs/gantt.md | 6 +++--- docs/index.html | 15 +++++++-------- docs/usage.md | 10 +++++----- packages/mermaid/src/docs/Setup.md | 2 +- packages/mermaid/src/docs/classDiagram.md | 6 +++--- .../diagrams-and-syntax-and-examples/flowchart.md | 6 +++--- packages/mermaid/src/docs/flowchart.md | 6 +++--- packages/mermaid/src/docs/gantt.md | 6 +++--- packages/mermaid/src/docs/index.html | 15 +++++++-------- packages/mermaid/src/docs/usage.md | 10 +++++----- vdocs/config/Setup.md | 4 ++-- vdocs/config/usage.md | 8 ++++---- vdocs/syntax/classDiagram.md | 6 +++--- vdocs/syntax/flowchart.md | 6 +++--- vdocs/syntax/gantt.md | 6 +++--- 45 files changed, 102 insertions(+), 105 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 02753280c9..b8053795ec 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -52,22 +52,23 @@ }, "overrides": [ { - "files": "./**/*.html", + "files": ["cypress/**", "demos/**"], "rules": { - "no-undef": "off", - "jsdoc/require-jsdoc": "off" + "no-console": "off" } }, { - "files": ["./cypress/**", "./demos/**"], + "files": ["*.spec.{ts,js}", "cypress/**", "demos/**", "**/docs/**"], "rules": { - "no-console": "off" + "jsdoc/require-jsdoc": "off", + "@typescript-eslint/no-unused-vars": "off" } }, { - "files": ["./**/*.spec.{ts,js}", "./cypress/**", "./demos/**", "./**/docs/**"], + "files": ["*.html", "*.md", "**/*.md/*"], "rules": { - "jsdoc/require-jsdoc": "off", + "no-var": "error", + "no-undef": "off", "@typescript-eslint/no-unused-vars": "off" } } diff --git a/__mocks__/dagre-d3.ts b/__mocks__/dagre-d3.ts index a1a6775916..bf6d341dc5 100644 --- a/__mocks__/dagre-d3.ts +++ b/__mocks__/dagre-d3.ts @@ -1,3 +1 @@ -import { vi } from 'vitest'; - -// export const render = vi.fn(); +// DO NOT delete this file. It is used by vitest to mock the dagre-d3 module. diff --git a/cypress/platform/xss10.html b/cypress/platform/xss10.html index 6a027f5148..b39728c847 100644 --- a/cypress/platform/xss10.html +++ b/cypress/platform/xss10.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'classDiagram\n'; + let diagram = 'classDiagram\n'; diagram += 'class Square~<img/src'; diagram += "='1'/onerror=xssAttack()>~{\n"; diagram += 'id A\n'; diff --git a/cypress/platform/xss11.html b/cypress/platform/xss11.html index 9126ac823e..ca97aeaab7 100644 --- a/cypress/platform/xss11.html +++ b/cypress/platform/xss11.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'stateDiagram-v2\n'; + let diagram = 'stateDiagram-v2\n'; diagram += 's2 : This is a state description<img/src'; diagram += "='1'/onerror=xssAttack()>"; diff --git a/cypress/platform/xss12.html b/cypress/platform/xss12.html index 5f6a3f229d..eb1bce3277 100644 --- a/cypress/platform/xss12.html +++ b/cypress/platform/xss12.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'stateDiagram-v2\n'; + let diagram = 'stateDiagram-v2\n'; diagram += 's2 : A<img/src'; diagram += "='1'/onerror=xssAttack()>"; diff --git a/cypress/platform/xss13.html b/cypress/platform/xss13.html index 41e868d5c0..f2d90cddba 100644 --- a/cypress/platform/xss13.html +++ b/cypress/platform/xss13.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'stateDiagram-v2\n'; + let diagram = 'stateDiagram-v2\n'; diagram += 'if_state --> False: if n < 0<img/src'; diagram += "='1'/onerror=xssAttack()>"; diff --git a/cypress/platform/xss14.html b/cypress/platform/xss14.html index f3bdf86054..f429b355a2 100644 --- a/cypress/platform/xss14.html +++ b/cypress/platform/xss14.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'classDiagram\n'; + let diagram = 'classDiagram\n'; diagram += 'classA <-- classB : <ifr'; diagram += "ame/srcdoc='<scr"; diagram += 'ipt>parent.xssAttack(`XSS`)</'; diff --git a/cypress/platform/xss15.html b/cypress/platform/xss15.html index 5a3753d536..70ebe9f86e 100644 --- a/cypress/platform/xss15.html +++ b/cypress/platform/xss15.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = `sequenceDiagram + let diagram = `sequenceDiagram participant John links John: {"XSS": "javas`; diagram += `cript:alert('AudioParam')"}`; diff --git a/cypress/platform/xss16.html b/cypress/platform/xss16.html index fe05206ce9..9325a70aa7 100644 --- a/cypress/platform/xss16.html +++ b/cypress/platform/xss16.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = `sequenceDiagram + let diagram = `sequenceDiagram participant Alice links Alice: { "Click me!" : "javasjavascript:cript:alert('goose')" }`; diff --git a/cypress/platform/xss17.html b/cypress/platform/xss17.html index 95b52fcc68..c498f3f3e4 100644 --- a/cypress/platform/xss17.html +++ b/cypress/platform/xss17.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = `sequenceDiagram + let diagram = `sequenceDiagram participant Alice link Alice: Click Me!@javasjavascript:cript:alert("goose")`; diff --git a/cypress/platform/xss18.html b/cypress/platform/xss18.html index 6fb8ec69e5..3e9cfd35cd 100644 --- a/cypress/platform/xss18.html +++ b/cypress/platform/xss18.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = `classDiagram + let diagram = `classDiagram Class "<img/src='x'/onerror=xssAttack(1)>" <--> "<img/src='x'/onerror=xssAttack(2)>" C2: Cool label`; // // var diagram = "stateDiagram-v2\n"; diff --git a/cypress/platform/xss19.html b/cypress/platform/xss19.html index 590a195aab..ca747b39eb 100644 --- a/cypress/platform/xss19.html +++ b/cypress/platform/xss19.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = `classDiagram + let diagram = `classDiagram class Shape{ <<<img/src='1'/`; diff --git a/cypress/platform/xss2.html b/cypress/platform/xss2.html index baedefcc6c..18b4be6fc8 100644 --- a/cypress/platform/xss2.html +++ b/cypress/platform/xss2.html @@ -54,9 +54,9 @@ startOnLoad: true, useMaxWidth: true, }); - var cnt = 0; - var a; - var handler = setInterval(() => { + let cnt = 0; + let a; + const handler = setInterval(() => { cnt++; a = {}; if (typeof a.polluted !== 'undefined') { diff --git a/cypress/platform/xss20.html b/cypress/platform/xss20.html index 7b8aa9f858..9efd172156 100644 --- a/cypress/platform/xss20.html +++ b/cypress/platform/xss20.html @@ -96,7 +96,7 @@ // var diagram = ` graph TD // A --> B["<a href='javasc`; // diagram += `ript#colon;xssAttack()'>AAA</a>"]`; - var diagram = ` graph TD + let diagram = ` graph TD A --> B["<a href='javasc`; diagram += `ript#colon;xssAttack()'>AAA</a>"]`; // diagram += '//via.placeholder.com/64\' width=64 />"]'; diff --git a/cypress/platform/xss21.html b/cypress/platform/xss21.html index e65a357ee4..fed0e42893 100644 --- a/cypress/platform/xss21.html +++ b/cypress/platform/xss21.html @@ -96,7 +96,7 @@ // var diagram = ` graph TD // A --> B["<a href='javasc`; // diagram += `ript#colon;xssAttack()'>AAA</a>"]`; - var diagram = ` graph TD + let diagram = ` graph TD A --> B["<a href='javasc`; diagram += `ript#9;t#colon;xssAttack()'>AAA</a>"]`; // diagram += '//via.placeholder.com/64\' width=64 />"]'; diff --git a/cypress/platform/xss3.html b/cypress/platform/xss3.html index b72e8743ce..78fabc4aa4 100644 --- a/cypress/platform/xss3.html +++ b/cypress/platform/xss3.html @@ -42,9 +42,9 @@ startOnLoad: true, useMaxWidth: true, }); - var cnt = 0; - var a; - var handler = setInterval(() => { + let cnt = 0; + let a; + const handler = setInterval(() => { cnt++; a = {}; if (typeof a.polluted !== 'undefined') { diff --git a/cypress/platform/xss4.html b/cypress/platform/xss4.html index b6e36edcd4..924a65e084 100644 --- a/cypress/platform/xss4.html +++ b/cypress/platform/xss4.html @@ -85,7 +85,7 @@ alert('It worked'); } - var diagram = '%%{init: {"flowchart": {"htmlLabels": "true"}} }%%\n'; + let diagram = '%%{init: {"flowchart": {"htmlLabels": "true"}} }%%\n'; diagram += 'flowchart\n'; diagram += 'A["<ifra'; diagram += "me srcdoc='<scrip"; diff --git a/cypress/platform/xss5.html b/cypress/platform/xss5.html index bf8943eeef..f87e655055 100644 --- a/cypress/platform/xss5.html +++ b/cypress/platform/xss5.html @@ -92,7 +92,7 @@ document.getElementsByTagName('body')[0].appendChild(div); throw new Error('XSS Succeeded'); } - var diagram = 'graph LR\n'; + let diagram = 'graph LR\n'; diagram += 'B-->D("<img onerror=location=`java'; // diagram += "script\u003aalert\u0028document.domain\u0029\` src=x>\"\);\n"; diagram += 'script\x3a;xssAttack\u0028\u0029` src=x>");\n'; diff --git a/cypress/platform/xss6.html b/cypress/platform/xss6.html index 0c70133b15..bc0f785614 100644 --- a/cypress/platform/xss6.html +++ b/cypress/platform/xss6.html @@ -92,7 +92,7 @@ document.getElementsByTagName('body')[0].appendChild(div); throw new Error('XSS Succeeded'); } - var diagram = 'graph LR\n'; + let diagram = 'graph LR\n'; diagram += 'A(<img/src/onerror=xssAttack`1`>)'; // diagram += "script\u003aalert\u0028document.domain\u0029\` src=x>\"\);\n"; console.log(diagram); diff --git a/cypress/platform/xss7.html b/cypress/platform/xss7.html index 667a77d33b..d8b2a7620c 100644 --- a/cypress/platform/xss7.html +++ b/cypress/platform/xss7.html @@ -92,7 +92,7 @@ document.getElementsByTagName('body')[0].appendChild(div); throw new Error('XSS Succeeded'); } - var diagram = 'graph LR\n'; + let diagram = 'graph LR\n'; diagram += " B(<a href='<"; diagram += 'script></'; diagram += "script>Javascript:xssAttack`1`'>Click)"; diff --git a/cypress/platform/xss8.html b/cypress/platform/xss8.html index 64211c7781..cf2969f393 100644 --- a/cypress/platform/xss8.html +++ b/cypress/platform/xss8.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'stateDiagram-v2\n'; + let diagram = 'stateDiagram-v2\n'; diagram += "<img/src='1'/onerror=xssAttack()> --> B"; // diagram += "script\u003aalert\u0028document.domain\u0029\` src=x>\"\);\n"; console.log(diagram); diff --git a/cypress/platform/xss9.html b/cypress/platform/xss9.html index 09c1d7f201..916f1506de 100644 --- a/cypress/platform/xss9.html +++ b/cypress/platform/xss9.html @@ -93,7 +93,7 @@ throw new Error('XSS Succeeded'); } - var diagram = 'stateDiagram-v2\n'; + let diagram = 'stateDiagram-v2\n'; diagram += "<img/src='1'/onerror=xssAttack()> --> B"; // diagram += "script\u003aalert\u0028document.domain\u0029\` src=x>\"\);\n"; console.log(diagram); diff --git a/demos/c4context.html b/demos/c4context.html index ec7197b982..e085e611cb 100644 --- a/demos/c4context.html +++ b/demos/c4context.html @@ -277,7 +277,7 @@ <h1>C4 context diagram demos</h1> <script> function testClick(nodeId) { console.log('clicked', nodeId); - var originalBgColor = document.querySelector('body').style.backgroundColor; + let originalBgColor = document.querySelector('body').style.backgroundColor; document.querySelector('body').style.backgroundColor = 'yellow'; setTimeout(function () { document.querySelector('body').style.backgroundColor = originalBgColor; diff --git a/demos/dataflowchart.html b/demos/dataflowchart.html index dc7fe05aff..d49118ae0e 100644 --- a/demos/dataflowchart.html +++ b/demos/dataflowchart.html @@ -46,7 +46,7 @@ <h2>Borders Example</h2> <script> function testClick(nodeId) { console.log('clicked', nodeId); - var originalBgColor = document.querySelector('body').style.backgroundColor; + let originalBgColor = document.querySelector('body').style.backgroundColor; document.querySelector('body').style.backgroundColor = 'yellow'; setTimeout(function () { document.querySelector('body').style.backgroundColor = originalBgColor; diff --git a/demos/flowchart.html b/demos/flowchart.html index a3c139c6bb..e11bfcb262 100644 --- a/demos/flowchart.html +++ b/demos/flowchart.html @@ -1513,7 +1513,7 @@ <h1 id="link-clicked">Anchor for "link-clicked" test</h1> <script> function testClick(nodeId) { console.log('clicked', nodeId); - var originalBgColor = document.querySelector('body').style.backgroundColor; + let originalBgColor = document.querySelector('body').style.backgroundColor; document.querySelector('body').style.backgroundColor = 'yellow'; setTimeout(function () { document.querySelector('body').style.backgroundColor = originalBgColor; diff --git a/demos/gantt.html b/demos/gantt.html index f53dae2794..749208f995 100644 --- a/demos/gantt.html +++ b/demos/gantt.html @@ -174,7 +174,7 @@ <h1>Gantt chart diagram demos</h1> } function testClick(nodeId) { console.log('clicked', nodeId); - var originalBgColor = document.querySelector('body').style.backgroundColor; + let originalBgColor = document.querySelector('body').style.backgroundColor; document.querySelector('body').style.backgroundColor = 'yellow'; setTimeout(function () { document.querySelector('body').style.backgroundColor = originalBgColor; diff --git a/docs/Setup.md b/docs/Setup.md index dec5134989..82e4e2fe8e 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -1561,7 +1561,7 @@ Returns **void** ```html <script> - var config = { + const config = { theme: 'default', logLevel: 'fatal', securityLevel: 'strict', diff --git a/docs/classDiagram.md b/docs/classDiagram.md index 529933b983..60dc6c3906 100644 --- a/docs/classDiagram.md +++ b/docs/classDiagram.md @@ -589,7 +589,7 @@ click Shape2 call callbackFunction() "This is a tooltip for a callback" ```html <script> - var callbackFunction = function () { + const callbackFunction = function () { alert('A callback was triggered'); }; </script> @@ -653,10 +653,10 @@ Beginner's tip—a full example using interactive links in an HTML page: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, securityLevel: 'loose', }; diff --git a/docs/diagrams-and-syntax-and-examples/flowchart.md b/docs/diagrams-and-syntax-and-examples/flowchart.md index a55c6292ac..fee683551b 100644 --- a/docs/diagrams-and-syntax-and-examples/flowchart.md +++ b/docs/diagrams-and-syntax-and-examples/flowchart.md @@ -649,7 +649,7 @@ A node can have click events bound that lead to either a JavaScript callback or ```html <script> - var callback = function (nodeId) { + const callback = function (nodeId) { alert('A callback was triggered on ' + nodeId); }; </script> @@ -727,10 +727,10 @@ Beginner's tip—here's a full example of using interactive links in HTML: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, diff --git a/docs/flowchart.md b/docs/flowchart.md index fd2c95ffee..0ca87d975c 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -695,7 +695,7 @@ Examples of tooltip usage below: ```html <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; </script> @@ -771,10 +771,10 @@ Beginner's tip—a full example using interactive links in a html context: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, securityLevel: 'loose', diff --git a/docs/gantt.md b/docs/gantt.md index 9246f24ddb..9d4fe8a096 100644 --- a/docs/gantt.md +++ b/docs/gantt.md @@ -391,13 +391,13 @@ Beginner's tip—a full example using interactive links in an html context: </pre> <script> - var printArguments = function (arg1, arg2, arg3) { + const printArguments = function (arg1, arg2, arg3) { alert('printArguments called with arguments: ' + arg1 + ', ' + arg2 + ', ' + arg3); }; - var printTask = function (taskId) { + const printTask = function (taskId) { alert('taskId: ' + taskId); }; - var config = { + const config = { startOnLoad: true, securityLevel: 'loose', }; diff --git a/docs/index.html b/docs/index.html index c4eb48af8b..5c0a6f0a4d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -29,7 +29,7 @@ src="https://plausible.io/js/plausible.js" ></script> <script> - var require = { + const require = { paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs' }, }; </script> @@ -51,16 +51,16 @@ <body> <div id="app"></div> <script> - var initEditor = exports.default; - var parser = new DOMParser(); - var currentCodeExample = 0; - var colorize = []; + let initEditor = exports.default; + let parser = new DOMParser(); + let currentCodeExample = 0; + let colorize = []; function colorizeEverything(html) { initEditor(monaco); return new Promise((resolve, reject) => { monaco.editor.setTheme('mermaid'); - var parsed = parser.parseFromString(html, 'text/html').body; + let parsed = parser.parseFromString(html, 'text/html').body; Promise.all( [...parsed.querySelectorAll('pre[id*="code"]')].map((codeBlock) => monaco.editor.colorize(codeBlock.innerText, 'mermaid') @@ -117,7 +117,7 @@ function (hook, vm) { hook.beforeEach(function (html) { url = 'https://github.com/mermaid-js/mermaid/blob/develop/src/docs/' + vm.route.file; - var editHtml = '[:memo: Edit this Page](' + url + ')\n'; + let editHtml = '[:memo: Edit this Page](' + url + ')\n'; return editHtml + html; }); @@ -136,7 +136,6 @@ ], }; - var num = 0; const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; const conf = { diff --git a/docs/usage.md b/docs/usage.md index be986a56b9..c804d0f05b 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -208,14 +208,14 @@ The example below show an outline of how this could be used. The example just lo <script> mermaid.mermaidAPI.initialize({ startOnLoad: false }); - $(function () { + $(async function () { // Example of using the API var element = document.querySelector('#graphDiv'); - var insertSvg = function (svgCode, bindFunctions) { + const insertSvg = function (svgCode, bindFunctions) { element.innerHTML = svgCode; }; - var graphDefinition = 'graph TB\na-->b'; - var graph = mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); + const graphDefinition = 'graph TB\na-->b'; + const graph = await mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); }); </script> ``` @@ -339,7 +339,7 @@ on what kind of integration you use. ```html <script src="../dist/mermaid.js"></script> <script> - var config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; + let config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; mermaid.initialize(config); </script> ``` diff --git a/packages/mermaid/src/docs/Setup.md b/packages/mermaid/src/docs/Setup.md index 0c8f50bb80..95ae2dde4d 100644 --- a/packages/mermaid/src/docs/Setup.md +++ b/packages/mermaid/src/docs/Setup.md @@ -1559,7 +1559,7 @@ Returns **void** ```html <script> - var config = { + const config = { theme: 'default', logLevel: 'fatal', securityLevel: 'strict', diff --git a/packages/mermaid/src/docs/classDiagram.md b/packages/mermaid/src/docs/classDiagram.md index f46d3689c3..362e90bc6c 100644 --- a/packages/mermaid/src/docs/classDiagram.md +++ b/packages/mermaid/src/docs/classDiagram.md @@ -399,7 +399,7 @@ click Shape2 call callbackFunction() "This is a tooltip for a callback" ```html <script> - var callbackFunction = function () { + const callbackFunction = function () { alert('A callback was triggered'); }; </script> @@ -451,10 +451,10 @@ Beginner's tip—a full example using interactive links in an HTML page: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, securityLevel: 'loose', }; diff --git a/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md b/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md index 252faadc2c..cd6ab221bd 100644 --- a/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md +++ b/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md @@ -416,7 +416,7 @@ click nodeId call callback() ```html <script> - var callback = function (nodeId) { + const callback = function (nodeId) { alert('A callback was triggered on ' + nodeId); }; </script> @@ -471,10 +471,10 @@ Beginner's tip—here's a full example of using interactive links in HTML: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, diff --git a/packages/mermaid/src/docs/flowchart.md b/packages/mermaid/src/docs/flowchart.md index 4bf80a6c04..3560334afb 100644 --- a/packages/mermaid/src/docs/flowchart.md +++ b/packages/mermaid/src/docs/flowchart.md @@ -442,7 +442,7 @@ Examples of tooltip usage below: ```html <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; </script> @@ -495,10 +495,10 @@ Beginner's tip—a full example using interactive links in a html context: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, securityLevel: 'loose', diff --git a/packages/mermaid/src/docs/gantt.md b/packages/mermaid/src/docs/gantt.md index cd0ef6b033..ad6573db66 100644 --- a/packages/mermaid/src/docs/gantt.md +++ b/packages/mermaid/src/docs/gantt.md @@ -327,13 +327,13 @@ Beginner's tip—a full example using interactive links in an html context: </pre> <script> - var printArguments = function (arg1, arg2, arg3) { + const printArguments = function (arg1, arg2, arg3) { alert('printArguments called with arguments: ' + arg1 + ', ' + arg2 + ', ' + arg3); }; - var printTask = function (taskId) { + const printTask = function (taskId) { alert('taskId: ' + taskId); }; - var config = { + const config = { startOnLoad: true, securityLevel: 'loose', }; diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index ea3969c777..2a275fef71 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -29,7 +29,7 @@ src="https://plausible.io/js/plausible.js" ></script> <script> - var require = { + const require = { paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs' }, }; </script> @@ -51,16 +51,16 @@ <body> <div id="app"></div> <script> - var initEditor = exports.default; - var parser = new DOMParser(); - var currentCodeExample = 0; - var colorize = []; + let initEditor = exports.default; + let parser = new DOMParser(); + let currentCodeExample = 0; + let colorize = []; function colorizeEverything(html) { initEditor(monaco); return new Promise((resolve, reject) => { monaco.editor.setTheme('mermaid'); - var parsed = parser.parseFromString(html, 'text/html').body; + let parsed = parser.parseFromString(html, 'text/html').body; Promise.all( [...parsed.querySelectorAll('pre[id*="code"]')].map((codeBlock) => monaco.editor.colorize(codeBlock.innerText, 'mermaid') @@ -117,7 +117,7 @@ function (hook, vm) { hook.beforeEach(function (html) { url = 'https://github.com/mermaid-js/mermaid/blob/develop/src/docs/' + vm.route.file; - var editHtml = '[:memo: Edit this Page](' + url + ')\n'; + let editHtml = '[:memo: Edit this Page](' + url + ')\n'; return editHtml + html; }); @@ -136,7 +136,6 @@ ], }; - var num = 0; const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; const conf = { diff --git a/packages/mermaid/src/docs/usage.md b/packages/mermaid/src/docs/usage.md index 0266258948..3293fe78cf 100644 --- a/packages/mermaid/src/docs/usage.md +++ b/packages/mermaid/src/docs/usage.md @@ -208,14 +208,14 @@ The example below show an outline of how this could be used. The example just lo <script> mermaid.mermaidAPI.initialize({ startOnLoad: false }); - $(function () { + $(async function () { // Example of using the API var element = document.querySelector('#graphDiv'); - var insertSvg = function (svgCode, bindFunctions) { + const insertSvg = function (svgCode, bindFunctions) { element.innerHTML = svgCode; }; - var graphDefinition = 'graph TB\na-->b'; - var graph = mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); + const graphDefinition = 'graph TB\na-->b'; + const graph = await mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); }); </script> ``` @@ -339,7 +339,7 @@ on what kind of integration you use. ```html <script src="../dist/mermaid.js"></script> <script> - var config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; + let config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; mermaid.initialize(config); </script> ``` diff --git a/vdocs/config/Setup.md b/vdocs/config/Setup.md index bcf8ef583c..fb58b78ea0 100644 --- a/vdocs/config/Setup.md +++ b/vdocs/config/Setup.md @@ -29,7 +29,7 @@ mermaid.initialize({ flowchart: { htmlLabels: false } }); **Example 2:** ```js -var config = { +const config = { startOnLoad: true, flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, @@ -1560,7 +1560,7 @@ Returns **void** ```html <script> - var config = { + const config = { theme: 'default', logLevel: 'fatal', securityLevel: 'strict', diff --git a/vdocs/config/usage.md b/vdocs/config/usage.md index 10b3b72389..d51b966ba3 100644 --- a/vdocs/config/usage.md +++ b/vdocs/config/usage.md @@ -211,11 +211,11 @@ The example below show an outline of how this could be used. The example just lo $(function () { // Example of using the API var element = document.querySelector('#graphDiv'); - var insertSvg = function (svgCode, bindFunctions) { + const insertSvg = function (svgCode, bindFunctions) { element.innerHTML = svgCode; }; - var graphDefinition = 'graph TB\na-->b'; - var graph = mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); + const graphDefinition = 'graph TB\na-->b'; + const graph = mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); }); </script> ``` @@ -339,7 +339,7 @@ on what kind of integration you use. ```html <script src="../dist/mermaid.js"></script> <script> - var config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; + let config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; mermaid.initialize(config); </script> ``` diff --git a/vdocs/syntax/classDiagram.md b/vdocs/syntax/classDiagram.md index 87d76cd37a..be77f1a1ab 100644 --- a/vdocs/syntax/classDiagram.md +++ b/vdocs/syntax/classDiagram.md @@ -399,7 +399,7 @@ click Shape2 call callbackFunction() "This is a tooltip for a callback" ```html <script> - var callbackFunction = function () { + const callbackFunction = function () { alert('A callback was triggered'); }; </script> @@ -451,10 +451,10 @@ Beginner's tip—a full example using interactive links in an HTML page: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, securityLevel: 'loose', }; diff --git a/vdocs/syntax/flowchart.md b/vdocs/syntax/flowchart.md index 21c0b91459..cbec4ae627 100644 --- a/vdocs/syntax/flowchart.md +++ b/vdocs/syntax/flowchart.md @@ -449,7 +449,7 @@ Examples of tooltip usage below: ```html <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; </script> @@ -502,10 +502,10 @@ Beginner's tip—a full example using interactive links in a html context: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, securityLevel: 'loose', diff --git a/vdocs/syntax/gantt.md b/vdocs/syntax/gantt.md index 5ed4c76017..755f50b1e1 100644 --- a/vdocs/syntax/gantt.md +++ b/vdocs/syntax/gantt.md @@ -327,13 +327,13 @@ Beginner's tip—a full example using interactive links in an html context: </pre> <script> - var printArguments = function (arg1, arg2, arg3) { + const printArguments = function (arg1, arg2, arg3) { alert('printArguments called with arguments: ' + arg1 + ', ' + arg2 + ', ' + arg3); }; - var printTask = function (taskId) { + const printTask = function (taskId) { alert('taskId: ' + taskId); }; - var config = { + const config = { startOnLoad: true, securityLevel: 'loose', }; From ad4b079d636c6f568719f789c0be4c2a008c2777 Mon Sep 17 00:00:00 2001 From: Aniket <annudubey1026@gmail.com> Date: Sat, 8 Oct 2022 01:40:13 +0530 Subject: [PATCH 0322/1038] contribution.md updated --- CONTRIBUTING.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2234d5148b..6303cb733d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,6 +6,16 @@ So you want to help? That's great! Here are a few things to know to get you started on the right path. +Step 1. Fork the project + +Step 2. Copy the URL by clicking the code button just below settings + +Step 3. Copy the project to your local system. + +Step 4. Use command --> git clone URL + +**_NOTE_** : Don't type URL while using git clone URL. Paste the copied link from step2 in place of URL. + ## Development Installation ```bash From 828f69f0112e5b53666a3eebaa3c5be741d59dff Mon Sep 17 00:00:00 2001 From: Aniket <annudubey1026@gmail.com> Date: Sat, 8 Oct 2022 18:35:35 +0530 Subject: [PATCH 0323/1038] Link added for local setup --- CONTRIBUTING.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6303cb733d..fefe1cdcb0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,16 +6,9 @@ So you want to help? That's great! Here are a few things to know to get you started on the right path. -Step 1. Fork the project - -Step 2. Copy the URL by clicking the code button just below settings - -Step 3. Copy the project to your local system. - -Step 4. Use command --> git clone URL - -**_NOTE_** : Don't type URL while using git clone URL. Paste the copied link from step2 in place of URL. +Below link will help you making a copy of the repository in your local system. +https://docs.github.com/en/get-started/quickstart/fork-a-repo ## Development Installation ```bash From 2bb0cf17d1d5f54c0aa006253e5083b9e5fe1c5a Mon Sep 17 00:00:00 2001 From: lemontreejs <arpansaha1300@gmail.com> Date: Sun, 9 Oct 2022 21:03:57 +0530 Subject: [PATCH 0324/1038] refactor: use `posix.join()` instead of replacing `\` --- packages/mermaid/src/docs.mts | 38 ++++++++--------------------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 74a8658b51..3dc685a2a4 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -35,33 +35,18 @@ import { exec } from 'child_process'; import { globby } from 'globby'; import { JSDOM } from 'jsdom'; import type { Code, Root } from 'mdast'; -import { join, dirname } from 'path'; +import { posix, dirname } from 'path'; import prettier from 'prettier'; import { remark } from 'remark'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; -/** - * Windows uses '\\' as path delimitter. - * The package `globby` requires all paths to contain forward-slashes only. - * Also it is better if the `AUTOGENERATED_TEXT` has same paths (type of slashes) in all platforms. - * But while actually using the paths, they should be used with platform-specific delimiters. - * So replace all '\\' with '/' for `globby` and `AUTOGENERATED_TEXT` only to maintain uniformity. - * @param path - * @returns normalized path - */ -const normalizeUniform = (path: string) => { - return path.replace(/\\/g, '/'); -}; - // These paths are from the root of the mono-repo, not from the // mermaid sub-directory -const SOURCE_DOCS_DIR = join(...'packages/mermaid/src/docs'.split('/')); +const SOURCE_DOCS_DIR = 'packages/mermaid/src/docs'; const FINAL_DOCS_DIR = 'docs'; -const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${normalizeUniform( - SOURCE_DOCS_DIR -)}.`; +const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; const LOGMSG_TRANSFORMED = 'transformed'; const LOGMSG_TO_BE_TRANSFORMED = 'to be transformed'; @@ -93,9 +78,7 @@ let filesWereTransformed = false; * @todo Possible Improvement: combine with lint-staged to only copy files that have changed */ const changeToFinalDocDir = (file: string): string => { - // `SOURCE_DOCS_DIR` will have `\\` delimiter in Windows, but path returned by `globby` will have `/` - // So use `normalizeUniform` - const newDir = file.replace(normalizeUniform(SOURCE_DOCS_DIR), FINAL_DOCS_DIR); + const newDir = file.replace(SOURCE_DOCS_DIR, FINAL_DOCS_DIR); mkdirSync(dirname(newDir), { recursive: true }); return newDir; }; @@ -221,12 +204,7 @@ const transformHtml = (filename: string) => { }; const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { - return await globby( - globs.map((glob) => normalizeUniform(glob)), - { - dot: true, - } - ); + return await globby(globs, { dot: true }); }; /** Main method (entry point) */ @@ -234,14 +212,14 @@ const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { if (verifyOnly) { console.log('Verifying that all files are in sync with the source files'); } - const sourceDirGlob = join('.', SOURCE_DOCS_DIR, '**'); + const sourceDirGlob = posix.join('.', SOURCE_DOCS_DIR, '**'); const action = verifyOnly ? 'Verifying' : 'Transforming'; - const mdFiles = await getFilesFromGlobs([join(sourceDirGlob, '*.md')]); + const mdFiles = await getFilesFromGlobs([posix.join(sourceDirGlob, '*.md')]); console.log(`${action} ${mdFiles.length} markdown files...`); mdFiles.forEach(transformMarkdown); - const htmlFiles = await getFilesFromGlobs([join(sourceDirGlob, '*.html')]); + const htmlFiles = await getFilesFromGlobs([posix.join(sourceDirGlob, '*.html')]); console.log(`${action} ${htmlFiles.length} html files...`); htmlFiles.forEach(transformHtml); From 72c266b2428f650978b91187ddcd38e3e3ff817b Mon Sep 17 00:00:00 2001 From: Aniket <annudubey1026@gmail.com> Date: Mon, 10 Oct 2022 01:25:59 +0530 Subject: [PATCH 0325/1038] Contrbution steps updated --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fefe1cdcb0..e5a029b582 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,6 +9,7 @@ Here are a few things to know to get you started on the right path. Below link will help you making a copy of the repository in your local system. https://docs.github.com/en/get-started/quickstart/fork-a-repo + ## Development Installation ```bash From 98f4c2d3ae5dcc3c5415a432df0011f3e34d08a1 Mon Sep 17 00:00:00 2001 From: jasmaa <jasonmaa3955@gmail.com> Date: Sun, 9 Oct 2022 20:56:31 -0400 Subject: [PATCH 0326/1038] Update pie docs to reflect label order change --- docs/pie.md | 2 +- packages/mermaid/src/docs/pie.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/pie.md b/docs/pie.md index f59efd93ad..1b70fdb864 100644 --- a/docs/pie.md +++ b/docs/pie.md @@ -28,7 +28,7 @@ Drawing a pie chart is really simple in mermaid. - Start with `pie` keyword to begin the diagram - `showData` to render the actual data values after the legend text. This is **_OPTIONAL_** - Followed by `title` keyword and its value in string to give a title to the pie-chart. This is **_OPTIONAL_** -- Followed by dataSet +- Followed by dataSet. Pie slices will be ordered clockwise in the same order as the labels. - `label` for a section in the pie diagram within `" "` quotes. - Followed by `:` colon as separator - Followed by `positive numeric value` (supported upto two decimal places) diff --git a/packages/mermaid/src/docs/pie.md b/packages/mermaid/src/docs/pie.md index b7dcd7aa53..4e14efce1b 100644 --- a/packages/mermaid/src/docs/pie.md +++ b/packages/mermaid/src/docs/pie.md @@ -19,7 +19,7 @@ Drawing a pie chart is really simple in mermaid. - Start with `pie` keyword to begin the diagram - `showData` to render the actual data values after the legend text. This is **_OPTIONAL_** - Followed by `title` keyword and its value in string to give a title to the pie-chart. This is **_OPTIONAL_** -- Followed by dataSet +- Followed by dataSet. Pie slices will be ordered clockwise in the same order as the labels. - `label` for a section in the pie diagram within `" "` quotes. - Followed by `:` colon as separator - Followed by `positive numeric value` (supported upto two decimal places) From 800cb65706a14824233bb6b3bf6205ec077e8bde Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Oct 2022 11:27:41 +0000 Subject: [PATCH 0327/1038] 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 ef47cc5b6fd72ef643400012ea1245fefc7c028b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 20:07:59 +0800 Subject: [PATCH 0328/1038] chore: Add volta --- CONTRIBUTING.md | 6 ++++++ package.json | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e5a029b582..c0fbea5445 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,6 +10,12 @@ Below link will help you making a copy of the repository in your local system. https://docs.github.com/en/get-started/quickstart/fork-a-repo +## Requirements + +- [volta](https://volta.sh/) to manage node versions. +- [Node.js](https://nodejs.org/en/). `volta install node` +- [pnpm](https://pnpm.io/) package manager. `volta install pnpm` + ## Development Installation ```bash diff --git a/package.json b/package.json index 166d23636d..c19028c529 100644 --- a/package.json +++ b/package.json @@ -151,5 +151,8 @@ "sideEffects": [ "**/*.css", "**/*.scss" - ] + ], + "volta": { + "node": "18.5.0" + } } From 1fea43e125092cb1bf10a504f378525efe910dfc Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 20:10:23 +0800 Subject: [PATCH 0329/1038] chore: Set node v16 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c19028c529..f7a538d3a9 100644 --- a/package.json +++ b/package.json @@ -153,6 +153,6 @@ "**/*.scss" ], "volta": { - "node": "18.5.0" + "node": "16.17.1" } } From 1570eb7b73fba4e5ecb396b767393a7fe2b0a98b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 20:13:50 +0800 Subject: [PATCH 0330/1038] chore: Bump node to v18 --- .github/workflows/build.yml | 2 +- .github/workflows/e2e-applitools.yml | 2 +- .github/workflows/e2e.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/release-preview-publish.yml | 2 +- .github/workflows/release-publish.yml | 2 +- .github/workflows/test.yml | 2 +- package.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a8bafc91ae..2a70b5901d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x] + node-version: [18.x] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/e2e-applitools.yml b/.github/workflows/e2e-applitools.yml index 5c515b433b..da6dbdb1f9 100644 --- a/.github/workflows/e2e-applitools.yml +++ b/.github/workflows/e2e-applitools.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x] + node-version: [18.x] steps: - if: ${{ ! env.USE_APPLI }} name: Warn if not using Applitools diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 8925a828de..55e06f46d3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [16.x] + node-version: [18.x] containers: [1, 2, 3, 4] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index dd2f7aa3b1..9adbb177c3 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x] + node-version: [18.x] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/release-preview-publish.yml b/.github/workflows/release-preview-publish.yml index ed55c847d0..2b2ff559b2 100644 --- a/.github/workflows/release-preview-publish.yml +++ b/.github/workflows/release-preview-publish.yml @@ -13,7 +13,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Install Yarn run: npm i yarn --global diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 9cf49e282b..6f0806de14 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -14,7 +14,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: Install Yarn run: npm i yarn --global diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fd058406db..6397e53051 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x] + node-version: [18.x] steps: - uses: actions/checkout@v3 diff --git a/package.json b/package.json index f7a538d3a9..c19028c529 100644 --- a/package.json +++ b/package.json @@ -153,6 +153,6 @@ "**/*.scss" ], "volta": { - "node": "16.17.1" + "node": "18.5.0" } } From 8ea1a1a07703390bebd57fb0954e8d3c6d4f2615 Mon Sep 17 00:00:00 2001 From: Matthieu MOREL <matthieu.morel35@gmail.com> Date: Mon, 10 Oct 2022 14:22:04 +0200 Subject: [PATCH 0331/1038] Update renovate.json --- renovate.json | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/renovate.json b/renovate.json index 39a2b6e9a5..619bbb26dd 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,24 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] + "extends": [ + "config:base", + ":rebaseStalePrs", + "group:allNonMajor", + "schedule:earlyMondays", + ":automergeMinor", + ":automergeTesters", + ":automergeLinters", + ":automergeTypes", + ":automergePatch" + ], + "packageRules": [ + { + "matchUpdateTypes": ["minor", "patch", "pin", "digest"], + "automerge": true + } + ], + "dependencyDashboard": true, + "major": { + "dependencyDashboardApproval": true + }, + "dependencyDashboardAutoclose": true } From f5692e742b2836b483bb8ed892357f744ded750e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 20:39:25 +0800 Subject: [PATCH 0332/1038] chore: renovate lint --- renovate.json | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/renovate.json b/renovate.json index 619bbb26dd..1413a3cea1 100644 --- a/renovate.json +++ b/renovate.json @@ -1,24 +1,24 @@ { - "extends": [ - "config:base", - ":rebaseStalePrs", - "group:allNonMajor", - "schedule:earlyMondays", - ":automergeMinor", - ":automergeTesters", - ":automergeLinters", - ":automergeTypes", - ":automergePatch" - ], - "packageRules": [ - { - "matchUpdateTypes": ["minor", "patch", "pin", "digest"], - "automerge": true - } - ], - "dependencyDashboard": true, - "major": { - "dependencyDashboardApproval": true - }, - "dependencyDashboardAutoclose": true + "extends": [ + "config:base", + ":rebaseStalePrs", + "group:allNonMajor", + "schedule:earlyMondays", + ":automergeMinor", + ":automergeTesters", + ":automergeLinters", + ":automergeTypes", + ":automergePatch" + ], + "packageRules": [ + { + "matchUpdateTypes": ["minor", "patch", "pin", "digest"], + "automerge": true + } + ], + "dependencyDashboard": true, + "major": { + "dependencyDashboardApproval": true + }, + "dependencyDashboardAutoclose": true } From 8ffa7e63347e1dae75ccad621c7cd6741465a8a7 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 20:47:34 +0800 Subject: [PATCH 0333/1038] docs: Update twitter link --- README.md | 2 +- README.zh-CN.md | 2 +- docs/README.md | 2 +- packages/mermaid/src/docs/README.md | 2 +- vdocs/intro/index.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 89dc16033d..90ae1ad4cd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) # Whoa, what's going on here? diff --git a/README.zh-CN.md b/README.zh-CN.md index 28ef2c6281..fcaa1f5234 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) [English](./README.md) | 简体中文 diff --git a/docs/README.md b/docs/README.md index d344087ca3..69acccb499 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,7 +10,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins <img src="img/header.png" alt="" /> -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) <!-- Mermaid book banner --> diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/src/docs/README.md index 64c176825f..880e40b43d 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/src/docs/README.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins <img src="img/header.png" alt="" /> -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) <!-- Mermaid book banner --> diff --git a/vdocs/intro/index.md b/vdocs/intro/index.md index 144894f904..e2f36651f4 100644 --- a/vdocs/intro/index.md +++ b/vdocs/intro/index.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins <img src="/header.png" alt="" /> -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) ![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) <!-- Mermaid book banner --> From 960ea450e91035b92914e62863f4c223b3af2cf0 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 21:50:59 +0800 Subject: [PATCH 0334/1038] fix: Dirty fix for sync render. Should be reverted for v10 --- packages/mermaid/src/Diagram.ts | 25 ++- packages/mermaid/src/mermaid.ts | 111 ++++++++++- packages/mermaid/src/mermaidAPI.ts | 283 ++++++++++++++++++++++++++++- 3 files changed, 402 insertions(+), 17 deletions(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 0aa7419948..e4f1d2645c 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -81,25 +81,32 @@ export class Diagram { } } -// eslint-disable-next-line @typescript-eslint/ban-types -export const getDiagramFromText = async (txt: string, parseError?: Function): Promise<Diagram> => { +export const getDiagramFromText = ( + txt: string, + // eslint-disable-next-line @typescript-eslint/ban-types + parseError?: Function +): Diagram | Promise<Diagram> => { const type = detectType(txt, configApi.getConfig()); try { // Trying to find the diagram getDiagram(type); + return new Diagram(txt, parseError); } catch (error) { const loader = getDiagramLoader(type); if (!loader) { throw new Error(`Diagram ${type} not found.`); } - // Diagram not available, loading it - const { diagram } = await loader(); - registerDiagram(type, diagram, undefined, diagram.injectUtils); - // new diagram will try getDiagram again and if fails then it is a valid throw + // TODO: Uncomment for v10 + // // Diagram not available, loading it + // const { diagram } = await loader(); + // registerDiagram(type, diagram, undefined, diagram.injectUtils); + // // new diagram will try getDiagram again and if fails then it is a valid throw + return loader().then(({ diagram }) => { + registerDiagram(type, diagram, undefined, diagram.injectUtils); + return new Diagram(txt, parseError); + }); } - // If either of the above worked, we have the diagram - // logic and can continue - return new Diagram(txt, parseError); + // return new Diagram(txt, parseError); }; export default Diagram; diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index ae6c62547c..b83d40a83f 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -54,8 +54,10 @@ const init = async function ( addDetector(id, detector, loadDiagram); }) ); + await initThrowsErrorsAsync(config, nodes, callback); + } else { + initThrowsErrors(config, nodes, callback); } - await initThrowsErrors(config, nodes, callback); } catch (e) { log.warn('Syntax Error rendering'); if (isDetailedError(e)) { @@ -67,7 +69,7 @@ const init = async function ( } }; -const initThrowsErrors = async function ( +const initThrowsErrors = function ( config?: MermaidConfig, // eslint-disable-next-line no-undef nodes?: string | HTMLElement | NodeListOf<HTMLElement>, @@ -134,7 +136,7 @@ const initThrowsErrors = async function ( log.debug('Detected early reinit: ', init); } try { - await mermaidAPI.render( + mermaidAPI.render( id, txt, (svgCode: string, bindFunctions?: (el: Element) => void) => { @@ -162,8 +164,107 @@ const initThrowsErrors = async function ( } }; -const initialize = async function (config: MermaidConfig) { - await mermaidAPI.initialize(config); +/** + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ + +const initThrowsErrorsAsync = async function ( + config?: MermaidConfig, + // eslint-disable-next-line no-undef + nodes?: string | HTMLElement | NodeListOf<HTMLElement>, + // eslint-disable-next-line @typescript-eslint/ban-types + callback?: Function +) { + const conf = mermaidAPI.getConfig(); + // console.log('Starting rendering diagrams (init) - mermaid.init', conf); + if (config) { + // This is a legacy way of setting config. It is not documented and should be removed in the future. + // @ts-ignore: TODO Fix ts errors + mermaid.sequenceConfig = config; + } + + // if last argument is a function this is the callback function + log.debug(`${!callback ? 'No ' : ''}Callback function found`); + let nodesToProcess: ArrayLike<HTMLElement>; + if (typeof nodes === 'undefined') { + nodesToProcess = document.querySelectorAll('.mermaid'); + } else if (typeof nodes === 'string') { + nodesToProcess = document.querySelectorAll(nodes); + } else if (nodes instanceof HTMLElement) { + nodesToProcess = [nodes]; + } else if (nodes instanceof NodeList) { + nodesToProcess = nodes; + } else { + throw new Error('Invalid argument nodes for mermaid.init'); + } + + log.debug(`Found ${nodesToProcess.length} diagrams`); + if (typeof config?.startOnLoad !== 'undefined') { + log.debug('Start On Load: ' + config?.startOnLoad); + mermaidAPI.updateSiteConfig({ startOnLoad: config?.startOnLoad }); + } + + // generate the id of the diagram + const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); + + let txt: string; + const errors = []; + + // element is the current div with mermaid class + for (const element of Array.from(nodesToProcess)) { + log.info('Rendering diagram: ' + element.id); + /*! Check if previously processed */ + if (element.getAttribute('data-processed')) { + continue; + } + element.setAttribute('data-processed', 'true'); + + const id = `mermaid-${idGenerator.next()}`; + + // Fetch the graph definition including tags + txt = element.innerHTML; + + // transforms the html to pure text + txt = utils + .entityDecode(txt) + .trim() + .replace(/<br\s*\/?>/gi, '<br/>'); + + const init = utils.detectInit(txt); + if (init) { + log.debug('Detected early reinit: ', init); + } + try { + await mermaidAPI.renderAsync( + id, + txt, + (svgCode: string, bindFunctions?: (el: Element) => void) => { + element.innerHTML = svgCode; + if (typeof callback !== 'undefined') { + callback(id); + } + if (bindFunctions) bindFunctions(element); + }, + element + ); + } catch (error) { + log.warn('Catching Error (bootstrap)', error); + // @ts-ignore: TODO Fix ts errors + const mermaidError = { error, str: error.str, hash: error.hash, message: error.str }; + if (typeof mermaid.parseError === 'function') { + mermaid.parseError(mermaidError); + } + errors.push(mermaidError); + } + } + if (errors.length > 0) { + // TODO: We should be throwing an error object. + throw errors[0]; + } +}; + +const initialize = function (config: MermaidConfig) { + mermaidAPI.initialize(config); }; /** diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7c967e5fd9..69425c7b58 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -110,7 +110,283 @@ export const decodeEntities = function (text: string): string { * element will be removed when rendering is completed. * @returns {void} */ -const render = async function ( +const render = function ( + id: string, + text: string, + cb: (svgCode: string, bindFunctions?: (element: Element) => void) => void, + container?: Element +): void { + addDiagrams(); + configApi.reset(); + text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; + const graphInit = utils.detectInit(text); + if (graphInit) { + directiveSanitizer(graphInit); + configApi.addDirective(graphInit); + } + const cnf = configApi.getConfig(); + + log.debug(cnf); + + // Check the maximum allowed text size + if (text.length > cnf.maxTextSize!) { + text = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; + } + + let root: any = select('body'); + + // In regular execution the container will be the div with a mermaid class + if (typeof container !== 'undefined') { + // A container was provided by the caller + if (container) { + container.innerHTML = ''; + } + + if (cnf.securityLevel === 'sandbox') { + // IF we are in sandboxed mode, we do everyting mermaid related + // in a sandboxed div + const iframe = select(container) + .append('iframe') + .attr('id', 'i' + id) + .attr('style', 'width: 100%; height: 100%;') + .attr('sandbox', ''); + // const iframeBody = ; + root = select(iframe.nodes()[0]!.contentDocument!.body); + root.node().style.margin = 0; + } else { + root = select(container); + } + + root + .append('div') + .attr('id', 'd' + id) + .attr('style', 'font-family: ' + cnf.fontFamily) + .append('svg') + .attr('id', id) + .attr('width', '100%') + .attr('xmlns', 'http://www.w3.org/2000/svg') + .attr('xmlns:xlink', 'http://www.w3.org/1999/xlink') + .append('g'); + } else { + // No container was provided + // If there is an existing element with the id, we remove it + // this likely a previously rendered diagram + const existingSvg = document.getElementById(id); + if (existingSvg) { + existingSvg.remove(); + } + + // Remove previous tpm element if it exists + let element; + if (cnf.securityLevel === 'sandbox') { + element = document.querySelector('#i' + id); + } else { + element = document.querySelector('#d' + id); + } + + if (element) { + element.remove(); + } + + // Add the tmp div used for rendering with the id `d${id}` + // d+id it will contain a svg with the id "id" + + if (cnf.securityLevel === 'sandbox') { + // IF we are in sandboxed mode, we do everyting mermaid related + // in a sandboxed div + const iframe = select('body') + .append('iframe') + .attr('id', 'i' + id) + .attr('style', 'width: 100%; height: 100%;') + .attr('sandbox', ''); + + root = select(iframe.nodes()[0]!.contentDocument!.body); + root.node().style.margin = 0; + } else { + root = select('body'); + } + + // This is the temporary div + root + .append('div') + .attr('id', 'd' + id) + // this is the seed of the svg to be rendered + .append('svg') + .attr('id', id) + .attr('width', '100%') + .attr('xmlns', 'http://www.w3.org/2000/svg') + .append('g'); + } + + text = encodeEntities(text); + + // Important that we do not create the diagram until after the directives have been included + let diag; + let parseEncounteredException; + try { + // diag = new Diagram(text); + diag = getDiagramFromText(text); + if ('then' in diag) { + throw new Error('Diagram is a promise'); + } + } catch (error) { + diag = new Diagram('error'); + parseEncounteredException = error; + } + // Get the tmp element containing the the svg + const element = root.select('#d' + id).node(); + const graphType = diag.type; + + // insert inline style into svg + const svg = element.firstChild; + const firstChild = svg.firstChild; + + let userStyles = ''; + // user provided theme CSS + // If you add more configuration driven data into the user styles make sure that the value is + // sanitized bye the santiizeCSS function + if (cnf.themeCSS !== undefined) { + userStyles += `\n${cnf.themeCSS}`; + } + // user provided theme CSS + if (cnf.fontFamily !== undefined) { + userStyles += `\n:root { --mermaid-font-family: ${cnf.fontFamily}}`; + } + // user provided theme CSS + if (cnf.altFontFamily !== undefined) { + userStyles += `\n:root { --mermaid-alt-font-family: ${cnf.altFontFamily}}`; + } + + // classDef + if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { + const classes: any = flowRenderer.getClasses(text, diag); + const htmlLabels = cnf.htmlLabels || cnf.flowchart?.htmlLabels; + for (const className in classes) { + if (htmlLabels) { + userStyles += `\n.${className} > * { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} span { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + } else { + userStyles += `\n.${className} path { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} rect { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} polygon { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} ellipse { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} circle { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + if (classes[className].textStyles) { + userStyles += `\n.${className} tspan { ${classes[className].textStyles.join( + ' !important; ' + )} !important; }`; + } + } + } + } + + const stylis = (selector: string, styles: string) => + serialize(compile(`${selector}{${styles}}`), stringify); + const rules = stylis(`#${id}`, getStyles(graphType, userStyles, cnf.themeVariables)); + + const style1 = document.createElement('style'); + style1.innerHTML = `#${id} ` + rules; + svg.insertBefore(style1, firstChild); + + try { + diag.renderer.draw(text, id, pkg.version, diag); + } catch (e) { + errorRenderer.draw(text, id, pkg.version); + throw e; + } + + root + .select(`[id="${id}"]`) + .selectAll('foreignobject > *') + .attr('xmlns', 'http://www.w3.org/1999/xhtml'); + + // Fix for when the base tag is used + let svgCode = root.select('#d' + id).node().innerHTML; + + log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); + if (!evaluate(cnf.arrowMarkerAbsolute) && cnf.securityLevel !== 'sandbox') { + svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g'); + } + + svgCode = decodeEntities(svgCode); + + // Fix for when the br tag is used + svgCode = svgCode.replace(/<br>/g, '<br/>'); + + if (cnf.securityLevel === 'sandbox') { + const svgEl = root.select('#d' + id + ' svg').node(); + const width = '100%'; + let height = '100%'; + if (svgEl) { + height = svgEl.viewBox.baseVal.height + 'px'; + } + svgCode = `<iframe style="width:${width};height:${height};border:0;margin:0;" src="data:text/html;base64,${btoa( + '<body style="margin:0">' + svgCode + '</body>' + )}" sandbox="allow-top-navigation-by-user-activation allow-popups"> + The “iframe” tag is not supported by your browser. +</iframe>`; + } else { + if (cnf.securityLevel !== 'loose') { + svgCode = DOMPurify.sanitize(svgCode, { + ADD_TAGS: ['foreignobject'], + ADD_ATTR: ['dominant-baseline'], + }); + } + } + + if (typeof cb !== 'undefined') { + switch (graphType) { + case 'flowchart': + case 'flowchart-v2': + cb(svgCode, flowDb.bindFunctions); + break; + case 'gantt': + cb(svgCode, ganttDb.bindFunctions); + break; + case 'class': + case 'classDiagram': + cb(svgCode, classDb.bindFunctions); + break; + default: + cb(svgCode); + } + } else { + log.debug('CB = undefined!'); + } + attachFunctions(); + + const tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id; + const node = select(tmpElementSelector).node(); + if (node && 'remove' in node) { + node.remove(); + } + + if (parseEncounteredException) { + throw parseEncounteredException; + } + + return svgCode; +}; + +/** + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ + +const renderAsync = async function ( id: string, text: string, cb: (svgCode: string, bindFunctions?: (element: Element) => void) => void, @@ -302,7 +578,7 @@ const render = async function ( try { await diag.renderer.draw(text, id, pkg.version, diag); } catch (e) { - await errorRenderer.draw(text, id, pkg.version); + errorRenderer.draw(text, id, pkg.version); throw e; } @@ -453,7 +729,7 @@ const handleDirective = function (p: any, directive: any, type: string): void { }; /** @param {MermaidConfig} options */ -async function initialize(options: MermaidConfig) { +function initialize(options: MermaidConfig) { // Handle legacy location of font-family configuration if (options?.fontFamily) { if (!options.themeVariables?.fontFamily) { @@ -482,6 +758,7 @@ async function initialize(options: MermaidConfig) { export const mermaidAPI = Object.freeze({ render, + renderAsync, parse, parseDirective, initialize, From ba436cc37a55d902352c5658052d1ee41e9dc827 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 21:57:22 +0800 Subject: [PATCH 0335/1038] fix: Tests --- cypress/platform/render-after-error.html | 4 ++-- cypress/platform/rerender.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cypress/platform/render-after-error.html b/cypress/platform/render-after-error.html index 059f793454..96dcd3f8b5 100644 --- a/cypress/platform/render-after-error.html +++ b/cypress/platform/render-after-error.html @@ -17,10 +17,10 @@ (async () => { try { console.log('rendering'); - await mermaid.mermaidAPI.render('graphDiv', `>`); + await mermaid.mermaidAPI.renderAsync('graphDiv', `>`); } catch (e) {} - await mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => { + await mermaid.mermaidAPI.renderAsync('graphDiv', `graph LR\n a --> b`, (html) => { document.getElementById('graph').innerHTML = html; }); })(); diff --git a/cypress/platform/rerender.html b/cypress/platform/rerender.html index 61c6891f76..0d7588ef58 100644 --- a/cypress/platform/rerender.html +++ b/cypress/platform/rerender.html @@ -19,7 +19,7 @@ function rerender(text) { const graphText = `graph TD A[${text}] -->|Get money| B(Go shopping)`; - mermaid.mermaidAPI.render('id', graphText).then((svg) => { + mermaid.mermaidAPI.renderAsync('id', graphText).then((svg) => { console.log('\x1b[35m%s\x1b[0m', '>> graph', svg); document.getElementById('graph').innerHTML = svg; }); From 60e4585e208a0a2f67cdb41d1c2182b5d96167bb Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 22:04:05 +0800 Subject: [PATCH 0336/1038] Revert "fix: use async in render-after-error" This reverts commit d59f8780208e82e0f7b55f751ef6d148a4cdfe44. --- cypress/platform/render-after-error.html | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/cypress/platform/render-after-error.html b/cypress/platform/render-after-error.html index 96dcd3f8b5..f5165e0ee5 100644 --- a/cypress/platform/render-after-error.html +++ b/cypress/platform/render-after-error.html @@ -14,16 +14,14 @@ mermaid.init({ startOnLoad: false }); mermaid.mermaidAPI.initialize({ securityLevel: 'strict' }); - (async () => { - try { - console.log('rendering'); - await mermaid.mermaidAPI.renderAsync('graphDiv', `>`); - } catch (e) {} + try { + console.log('rendering'); + mermaid.mermaidAPI.render('graphDiv', `>`); + } catch (e) {} - await mermaid.mermaidAPI.renderAsync('graphDiv', `graph LR\n a --> b`, (html) => { - document.getElementById('graph').innerHTML = html; - }); - })(); + mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => { + document.getElementById('graph').innerHTML = html; + }); </script> </body> </html> From 23e590e09bcda31620bfe71b97354206abd8dde2 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 10 Oct 2022 22:04:33 +0800 Subject: [PATCH 0337/1038] Revert "fix(test): Rerender" This reverts commit a017ffc3c947084d2977a12aa75c831574ed19b9. --- cypress/platform/rerender.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cypress/platform/rerender.html b/cypress/platform/rerender.html index 0d7588ef58..ab1b8e009d 100644 --- a/cypress/platform/rerender.html +++ b/cypress/platform/rerender.html @@ -19,10 +19,9 @@ function rerender(text) { const graphText = `graph TD A[${text}] -->|Get money| B(Go shopping)`; - mermaid.mermaidAPI.renderAsync('id', graphText).then((svg) => { - console.log('\x1b[35m%s\x1b[0m', '>> graph', svg); - document.getElementById('graph').innerHTML = svg; - }); + const graph = mermaid.mermaidAPI.render('id', graphText); + console.log('\x1b[35m%s\x1b[0m', '>> graph', graph); + document.getElementById('graph').innerHTML = graph; } </script> <button id="rerender" onclick="rerender('Saturday')">Rerender</button> From 7e8631dd196e9bca7d1fdbc9346d9037e783102d Mon Sep 17 00:00:00 2001 From: Michael Maier <maier1michael@gmail.com> Date: Mon, 10 Oct 2022 17:59:29 +0200 Subject: [PATCH 0338/1038] fix: vertex property `props` is overwritten instead of being merged with new value Fixes #3263 --- packages/mermaid/src/diagrams/flowchart/flowDb.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 5aa2032257..34efa86d8d 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -119,7 +119,11 @@ export const addVertex = function (_id, text, type, style, classes, dir, props = if (typeof dir !== 'undefined') { vertices[id].dir = dir; } - vertices[id].props = props; + if (typeof vertices[id].props === 'undefined') { + vertices[id].props = props; + } else if (typeof props !== 'undefined') { + Object.assign(vertices[id].props, props); + } }; /** From f05f07e44f722222615e878d759b74c18af65ac7 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 10 Oct 2022 20:53:09 -0400 Subject: [PATCH 0339/1038] add the way to add notes to class diagram --- README.md | 2 + .../mermaid/src/diagrams/class/classDb.js | 17 ++++ .../src/diagrams/class/classDiagram.spec.js | 10 ++ .../src/diagrams/class/classRenderer-v2.js | 95 +++++++++++++++++++ .../src/diagrams/class/classRenderer.js | 32 ++++++- .../diagrams/class/parser/classDiagram.jison | 10 ++ packages/mermaid/src/diagrams/class/styles.js | 4 + .../mermaid/src/diagrams/class/svgDraw.js | 75 ++++++++++++++- packages/mermaid/src/utils.ts | 7 +- 9 files changed, 241 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index b30d8d4387..e363c74470 100644 --- a/README.md +++ b/README.md @@ -162,6 +162,7 @@ Class01 <|-- AveryLongClass : Cool Class09 --> C2 : Where am I? Class09 --* C3 Class09 --|> Class07 +note "I love this diagram!\nDo you love it?" Class07 : equals() Class07 : Object[] elementData Class01 : size() @@ -172,6 +173,7 @@ class Class10 { int id size() } +note for Class10 "Cool class\nI said it's very cool class!" ``` ### State diagram [<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkEFvgzAMhf8K8nEqpYSNthx22Xbcqcexg0sCiZQQlDhIFeK_L8A6TfXp6fOz9ewJGssFVOAJSbwr7ByadGR1n8T6evpO0vQ1uZDSekOrXGFsPqJPO6q-2-imH8f_0TeHXm50lfelsAMjnEHFY6xpMdRAUhhRQxUlFy0GTTXU_RytYeAx-AdXZB1ULWovdoCB7OXWN1CRC-Ju-r3uz6UtchGHJqDbsPygU57iysb2reoWHpyOWBINvsqypb3vFMlw3TfWZF5xiY7keC6zkpUnZIUojwW-FAVvrvn51LLnvOXHQ84Q5nn-AVtLcwk">live editor</a>] diff --git a/packages/mermaid/src/diagrams/class/classDb.js b/packages/mermaid/src/diagrams/class/classDb.js index 223bfe067a..fd970b902f 100644 --- a/packages/mermaid/src/diagrams/class/classDb.js +++ b/packages/mermaid/src/diagrams/class/classDb.js @@ -16,6 +16,7 @@ const MERMAID_DOM_ID_PREFIX = 'classid-'; let relations = []; let classes = {}; +let notes = []; let classCounter = 0; let funs = []; @@ -82,6 +83,7 @@ export const lookUpDomId = function (id) { export const clear = function () { relations = []; classes = {}; + notes = []; funs = []; funs.push(setupToolTips); commonClear(); @@ -98,6 +100,10 @@ export const getRelations = function () { return relations; }; +export const getNotes = function () { + return notes; +}; + export const addRelation = function (relation) { log.debug('Adding relation: ' + JSON.stringify(relation)); addClass(relation.id1); @@ -168,6 +174,15 @@ export const addMembers = function (className, members) { } }; +export const addNote = function (text, className) { + const note = { + id: `note${notes.length}`, + class: className, + text: text, + }; + notes.push(note); +}; + export const cleanupLabel = function (label) { if (label.substring(0, 1) === ':') { return common.sanitizeText(label.substr(1).trim(), configApi.getConfig()); @@ -369,7 +384,9 @@ export default { clear, getClass, getClasses, + getNotes, addAnnotation, + addNote, getRelations, addRelation, getDirection, diff --git a/packages/mermaid/src/diagrams/class/classDiagram.spec.js b/packages/mermaid/src/diagrams/class/classDiagram.spec.js index 3f47701e60..04a8e9bf3c 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram.spec.js +++ b/packages/mermaid/src/diagrams/class/classDiagram.spec.js @@ -529,6 +529,16 @@ foo() parser.parse(str); }); + + it('should handle "note for"', function () { + const str = 'classDiagram\n' + 'Class11 <|.. Class12\n' + 'note for Class11 "test"\n'; + parser.parse(str); + }); + + it('should handle "note"', function () { + const str = 'classDiagram\n' + 'note "test"\n'; + parser.parse(str); + }); }); describe('when fetching data from a classDiagram graph it', function () { diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js index 20722e6d05..ab556c4ae9 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js @@ -133,6 +133,99 @@ export const addClasses = function (classes, g, _id, diagObj) { }); }; +/** + * Function that adds the additional vertices (notes) found during parsing to the graph to be rendered. + * + * @param {{text: string; class: string; placement: number}[]} notes + * Object containing the additional vertices (notes). + * @param {SVGGElement} g The graph that is to be drawn. + * @param {number} startEdgeId starting index for note edge + * @param classes + */ +export const addNotes = function (notes, g, startEdgeId, classes) { + log.info(notes); + + // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition + notes.forEach(function (note, i) { + const vertex = note; + + /** + * Variable for storing the classes for the vertex + * + * @type {string} + */ + let cssNoteStr = ''; + + const styles = { labelStyle: '', style: '' }; + + // Use vertex id as text in the box if no text is provided by the graph definition + let vertexText = vertex.text; + + let radious = 0; + let _shape = 'note'; + // Add the node + g.setNode(vertex.id, { + labelStyle: styles.labelStyle, + shape: _shape, + labelText: sanitizeText(vertexText), + noteData: vertex, + rx: radious, + ry: radious, + class: cssNoteStr, + style: styles.style, + id: vertex.id, + domId: vertex.id, + tooltip: '', + type: 'note', + padding: getConfig().flowchart.padding, + }); + + log.info('setNode', { + labelStyle: styles.labelStyle, + shape: _shape, + labelText: vertexText, + rx: radious, + ry: radious, + style: styles.style, + id: vertex.id, + type: 'note', + padding: getConfig().flowchart.padding, + }); + + if (!vertex.class || !(vertex.class in classes)) { + return; + } + const edgeId = startEdgeId + i; + const edgeData = {}; + //Set relationship style and line type + edgeData.classes = 'relation'; + edgeData.pattern = 'dotted'; + + edgeData.id = `edgeNote${edgeId}`; + // Set link type for rendering + edgeData.arrowhead = 'none'; + + log.info(`Note edge: ${JSON.stringify(edgeData)}, ${JSON.stringify(vertex)}`); + //Set edge extra labels + edgeData.startLabelRight = ''; + edgeData.endLabelLeft = ''; + + //Set relation arrow types + edgeData.arrowTypeStart = 'none'; + edgeData.arrowTypeEnd = 'none'; + let style = 'fill:none'; + let labelStyle = ''; + + edgeData.style = style; + edgeData.labelStyle = labelStyle; + + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + + // Add the edge to the graph + g.setEdge(vertex.id, vertex.class, edgeData, edgeId); + }); +}; + /** * Add edges to graph based on parsed graph definition * @@ -304,10 +397,12 @@ export const draw = function (text, id, _version, diagObj) { // Fetch the vertices/nodes and edges/links from the parsed graph definition const classes = diagObj.db.getClasses(); const relations = diagObj.db.getRelations(); + const notes = diagObj.db.getNotes(); log.info(relations); addClasses(classes, g, id, diagObj); addRelations(relations, g); + addNotes(notes, g, relations.length + 1, classes); // Add custom shapes // flowChartShapes.addToRenderV2(addShape); diff --git a/packages/mermaid/src/diagrams/class/classRenderer.js b/packages/mermaid/src/diagrams/class/classRenderer.js index c1236afea7..14fdc5efee 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer.js +++ b/packages/mermaid/src/diagrams/class/classRenderer.js @@ -208,12 +208,42 @@ export const draw = function (text, id, _version, diagObj) { ); }); + const notes = diagObj.db.getNotes(); + notes.forEach(function (note) { + log.debug(`Adding note: ${JSON.stringify(note)}`); + const node = svgDraw.drawNote(diagram, note, conf, diagObj); + idCache[node.id] = node; + + // Add nodes to the graph. The first argument is the node id. The second is + // metadata about the node. In this case we're going to add labels to each of + // our nodes. + g.setNode(node.id, node); + if (note.class && note.class in classes) { + g.setEdge( + note.id, + getGraphId(note.class), + { + relation: { + id1: note.id, + id2: note.class, + relation: { + type1: 'none', + type2: 'none', + lineType: 10, + }, + }, + }, + 'DEFAULT' + ); + } + }); + dagre.layout(g); g.nodes().forEach(function (v) { if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') { log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))); root - .select('#' + diagObj.db.lookUpDomId(v)) + .select('#' + (diagObj.db.lookUpDomId(v) || v)) .attr( 'transform', 'translate(' + diff --git a/packages/mermaid/src/diagrams/class/parser/classDiagram.jison b/packages/mermaid/src/diagrams/class/parser/classDiagram.jison index ba0e69fbab..157e3d7d81 100644 --- a/packages/mermaid/src/diagrams/class/parser/classDiagram.jison +++ b/packages/mermaid/src/diagrams/class/parser/classDiagram.jison @@ -56,6 +56,8 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili "callback" return 'CALLBACK'; "link" return 'LINK'; "click" return 'CLICK'; +"note for" return 'NOTE_FOR'; +"note" return 'NOTE'; "<<" return 'ANNOTATION_START'; ">>" return 'ANNOTATION_END'; [~] this.begin("generic"); @@ -263,6 +265,7 @@ statement | annotationStatement | clickStatement | cssClassStatement + | noteStatement | directive | direction | acc_title acc_title_value { $$=$2.trim();yy.setAccTitle($$); } @@ -300,6 +303,11 @@ relationStatement | className STR relation STR className { $$ = {id1:$1, id2:$5, relation:$3, relationTitle1:$2, relationTitle2:$4} } ; +noteStatement + : NOTE_FOR className noteText { yy.addNote($3, $2); } + | NOTE noteText { yy.addNote($2); } + ; + relation : relationType lineType relationType { $$={type1:$1,type2:$3,lineType:$2}; } | lineType relationType { $$={type1:'none',type2:$2,lineType:$1}; } @@ -351,4 +359,6 @@ alphaNumToken : UNICODE_TEXT | NUM | ALPHA; classLiteralName : BQUOTE_STR; +noteText : STR; + %% diff --git a/packages/mermaid/src/diagrams/class/styles.js b/packages/mermaid/src/diagrams/class/styles.js index 9e7665c586..bb5580492d 100644 --- a/packages/mermaid/src/diagrams/class/styles.js +++ b/packages/mermaid/src/diagrams/class/styles.js @@ -80,6 +80,10 @@ g.classGroup line { stroke-dasharray: 3; } +.dotted-line{ + stroke-dasharray: 1 2; +} + #compositionStart, .composition { fill: ${options.lineColor} !important; stroke: ${options.lineColor} !important; diff --git a/packages/mermaid/src/diagrams/class/svgDraw.js b/packages/mermaid/src/diagrams/class/svgDraw.js index 9a4dc761e2..bcb0d2c3da 100644 --- a/packages/mermaid/src/diagrams/class/svgDraw.js +++ b/packages/mermaid/src/diagrams/class/svgDraw.js @@ -9,13 +9,13 @@ export const drawEdge = function (elem, path, relation, conf, diagObj) { switch (type) { case diagObj.db.relationType.AGGREGATION: return 'aggregation'; - case diagObj.db.EXTENSION: + case diagObj.db.relationType.EXTENSION: return 'extension'; - case diagObj.db.COMPOSITION: + case diagObj.db.relationType.COMPOSITION: return 'composition'; - case diagObj.db.DEPENDENCY: + case diagObj.db.relationType.DEPENDENCY: return 'dependency'; - case diagObj.db.LOLLIPOP: + case diagObj.db.relationType.LOLLIPOP: return 'lollipop'; } }; @@ -55,6 +55,9 @@ export const drawEdge = function (elem, path, relation, conf, diagObj) { if (relation.relation.lineType == 1) { svgPath.attr('class', 'relation dashed-line'); } + if (relation.relation.lineType == 10) { + svgPath.attr('class', 'relation dotted-line'); + } if (relation.relation.type1 !== 'none') { svgPath.attr( 'marker-start', @@ -284,6 +287,69 @@ export const drawClass = function (elem, classDef, conf, diagObj) { return classInfo; }; +/** + * Renders a note diagram + * + * @param {SVGSVGElement} elem The element to draw it into + * @param {{id: string; text: string; class: string;}} note + * @param conf + * @param diagObj + * @todo Add more information in the JSDOC here + */ +export const drawNote = function (elem, note, conf, diagObj) { + log.debug('Rendering note ', note, conf); + + const id = note.id; + const noteInfo = { + id: id, + text: note.text, + width: 0, + height: 0, + }; + + // add class group + const g = elem.append('g').attr('id', id).attr('class', 'classGroup'); + + // add text + let text = g + .append('text') + .attr('y', conf.textHeight + conf.padding) + .attr('x', 0); + + const lines = JSON.parse(`"${note.text}"`).split('\n'); + + lines.forEach(function (line) { + log.debug(`Adding line: ${line}`); + text.append('tspan').text(line).attr('class', 'title').attr('dy', conf.textHeight); + }); + + const noteBox = g.node().getBBox(); + + const rect = g + .insert('rect', ':first-child') + .attr('x', 0) + .attr('y', 0) + .attr('width', noteBox.width + 2 * conf.padding) + .attr( + 'height', + noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin + ); + + const rectWidth = rect.node().getBBox().width; + + // Center title + // We subtract the width of each text element from the class box width and divide it by 2 + text.node().childNodes.forEach(function (x) { + x.setAttribute('x', (rectWidth - x.getBBox().width) / 2); + }); + + noteInfo.width = rectWidth; + noteInfo.height = + noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin; + + return noteInfo; +}; + export const parseMember = function (text) { const fieldRegEx = /^(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+) *(\*|\$)?$/; const methodRegEx = /^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/; @@ -435,5 +501,6 @@ const parseClassifier = function (classifier) { export default { drawClass, drawEdge, + drawNote, parseMember, }; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 395e6fe2a5..a62c4d3ad3 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -306,15 +306,10 @@ const calcLabelPosition = (points) => { const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => { let prevPoint; - log.info('our points', points); + log.info(`our points ${JSON.stringify(points)}`); if (points[0] !== initialPosition) { points = points.reverse(); } - points.forEach((point) => { - totalDistance += distance(point, prevPoint); - prevPoint = point; - }); - // Traverse only 25 total distance along points to find cardinality point const distanceToCardinalityPoint = 25; From 9660b0e9fbd30e2f3a73e4afd37b4afdabfc8792 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 11 Oct 2022 11:48:52 +0530 Subject: [PATCH 0340/1038] docs: Fix initial install step --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c0fbea5445..ed436a8d1a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,8 @@ https://docs.github.com/en/get-started/quickstart/fork-a-repo ```bash git clone git@github.com:mermaid-js/mermaid.git cd mermaid -pnpm install +# npx is required for first install as volta support for pnpm is not added yet. +npx pnpm install pnpm test ``` From bc5ef5fb7d1a029c47ca6b0a46295a897a13f7ba Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Tue, 11 Oct 2022 11:20:34 +0200 Subject: [PATCH 0341/1038] Fix for async issue in parse, adding parseAsync --- .gitignore | 1 + cypress/platform/knsv2.html | 10 ---------- package.json | 2 +- packages/mermaid/src/mermaid.ts | 5 +++++ packages/mermaid/src/mermaidAPI.ts | 14 ++++++++++++++ 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 6e4fe723a2..15acfceeb8 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo +knsv*.html diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 506ac51aea..de9780185d 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -75,16 +75,6 @@ <pre id="diagram" class="mermaid2"> mindmap root - A - B - C - D - E - A2 - B2 - C2 - D2 - E2 child1((Circle)) grandchild 1 grandchild 2 diff --git a/package.json b/package.json index 25d614f950..15adccd647 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mermaid-monorepo", "private": true, - "version": "9.2.0-rc2", + "version": "9.2.0-rc4", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid.core.mjs", "module": "dist/mermaid.core.mjs", diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index b83d40a83f..6149bb19c1 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -309,6 +309,9 @@ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: an const parse = (txt: string) => { return mermaidAPI.parse(txt, mermaid.parseError); }; +const parseAsync = (txt: string) => { + return mermaidAPI.parseAsync(txt, mermaid.parseError); +}; const mermaid: { startOnLoad: boolean; @@ -317,6 +320,7 @@ const mermaid: { parseError?: Function; mermaidAPI: typeof mermaidAPI; parse: typeof parse; + parseAsync: typeof parseAsync; render: typeof mermaidAPI.render; init: typeof init; initThrowsErrors: typeof initThrowsErrors; @@ -328,6 +332,7 @@ const mermaid: { diagrams: {}, mermaidAPI, parse, + parseAsync, render: mermaidAPI.render, init, initThrowsErrors, diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 69425c7b58..7a409edcc5 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -43,6 +43,18 @@ function parse(text: string, parseError?: Function): boolean { const diagram = new Diagram(text, parseError); return diagram.parse(text, parseError); } +/* eslint-disable @typescript-eslint/ban-types */ +/** + * + * @param text + * @param parseError + */ +async function parseAsync(text: string, parseError?: Function): Promise<boolean> { + addDiagrams(); + const diagram = await getDiagramFromText(text, parseError); + return diagram.parse(text, parseError); +} +/* eslint-enable @typescript-eslint/ban-types */ export const encodeEntities = function (text: string): string { let txt = text; @@ -760,6 +772,7 @@ export const mermaidAPI = Object.freeze({ render, renderAsync, parse, + parseAsync, parseDirective, initialize, getConfig: configApi.getConfig, @@ -778,6 +791,7 @@ export const mermaidAPI = Object.freeze({ setLogLevel(configApi.getConfig().logLevel); configApi.reset(configApi.getConfig()); export default mermaidAPI; + /** * ## mermaidAPI configuration defaults * From 551b37f969a3de62725e40289159852f99400ff8 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Tue, 11 Oct 2022 12:29:39 +0200 Subject: [PATCH 0342/1038] #3252 Handling for trailing whitespaces in subgraph titles --- packages/mermaid/src/diagrams/flowchart/flowDb.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 5aa2032257..4a3fd5e9c0 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -456,8 +456,8 @@ export const defaultStyle = function () { export const addSubGraph = function (_id, list, _title) { // console.log('addSubGraph', _id, list, _title); let id = _id.trim(); - let title = _title; - if (_id === _title && _title.match(/\s/)) { + let title = _title.trim(); + if (id === title && title.match(/\s/)) { id = undefined; } /** @param a */ From cc2f4f779a6a36fd4d9e7f03f83cb519c361d6c9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 11 Oct 2022 16:16:54 +0530 Subject: [PATCH 0343/1038] feat: Add initializeAsync --- packages/mermaid/src/mermaid.ts | 46 ++++++++++++++++++++++++------ packages/mermaid/src/mermaidAPI.ts | 4 +-- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 6149bb19c1..05dfe1bcd0 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -47,13 +47,7 @@ const init = async function ( try { const conf = mermaidAPI.getConfig(); if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { - // Load all lazy loaded diagrams in parallel - await Promise.allSettled( - conf.lazyLoadedDiagrams.map(async (diagram: string) => { - const { id, detector, loadDiagram } = await import(diagram); - addDetector(id, detector, loadDiagram); - }) - ); + await registerLazyLoadedDiagrams(conf); await initThrowsErrorsAsync(config, nodes, callback); } else { initThrowsErrors(config, nodes, callback); @@ -164,6 +158,26 @@ const initThrowsErrors = function ( } }; +let lazyLoadingPromise: Promise<unknown> | undefined; +/** + * @param conf + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +const registerLazyLoadedDiagrams = async (conf: MermaidConfig) => { + // Only lazy load once + // TODO: This is a hack. We should either throw error when new diagrams are added, or load them anyway. + if (lazyLoadingPromise === undefined) { + // Load all lazy loaded diagrams in parallel + lazyLoadingPromise = Promise.allSettled( + (conf?.lazyLoadedDiagrams ?? []).map(async (diagram: string) => { + const { id, detector, loadDiagram } = await import(diagram); + addDetector(id, detector, loadDiagram); + }) + ); + } + await lazyLoadingPromise; +}; + /** * @deprecated This is an internal function and should not be used. Will be removed in v10. */ @@ -267,6 +281,15 @@ const initialize = function (config: MermaidConfig) { mermaidAPI.initialize(config); }; +/** + * @param config + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +const initializeAsync = async function (config: MermaidConfig) { + await registerLazyLoadedDiagrams(config); + mermaidAPI.initialize(config); +}; + /** * ##contentLoaded Callback function that is called when page is loaded. This functions fetches * configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the @@ -300,7 +323,7 @@ if (typeof document !== 'undefined') { * This is provided for environments where the mermaid object can't directly have a new member added * to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid). * - * @param {function (err, hash)} newParseErrorHandler New parseError() callback. + * @param newParseErrorHandler New parseError() callback. */ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: any) => void) { mermaid.parseError = newParseErrorHandler; @@ -309,6 +332,11 @@ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: an const parse = (txt: string) => { return mermaidAPI.parse(txt, mermaid.parseError); }; + +/** + * @param txt + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ const parseAsync = (txt: string) => { return mermaidAPI.parseAsync(txt, mermaid.parseError); }; @@ -325,6 +353,7 @@ const mermaid: { init: typeof init; initThrowsErrors: typeof initThrowsErrors; initialize: typeof initialize; + initializeAsync: typeof initializeAsync; contentLoaded: typeof contentLoaded; setParseErrorHandler: typeof setParseErrorHandler; } = { @@ -337,6 +366,7 @@ const mermaid: { init, initThrowsErrors, initialize, + initializeAsync, parseError: undefined, contentLoaded, setParseErrorHandler, diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7a409edcc5..68b7c52008 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -43,18 +43,18 @@ function parse(text: string, parseError?: Function): boolean { const diagram = new Diagram(text, parseError); return diagram.parse(text, parseError); } -/* eslint-disable @typescript-eslint/ban-types */ + /** * * @param text * @param parseError */ +// eslint-disable-next-line @typescript-eslint/ban-types async function parseAsync(text: string, parseError?: Function): Promise<boolean> { addDiagrams(); const diagram = await getDiagramFromText(text, parseError); return diagram.parse(text, parseError); } -/* eslint-enable @typescript-eslint/ban-types */ export const encodeEntities = function (text: string): string { let txt = text; From 56f3fa64956671dc1b56cb8e7be452baff10a709 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Mon, 10 Oct 2022 18:02:20 -0700 Subject: [PATCH 0344/1038] API: getClasses() with the diagram renderer (not flowchart renderer); add const --- packages/mermaid/src/mermaidAPI.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7c967e5fd9..a85fecb242 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -33,6 +33,8 @@ import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; +const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram']; + /** * @param text * @param parseError @@ -255,8 +257,8 @@ const render = async function ( } // classDef - if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { - const classes: any = flowRenderer.getClasses(text, diag); + if (CLASSDEF_DIAGRAMS.includes(graphType)) { + const classes: any = diag.renderer.getClasses(text, diag); const htmlLabels = cnf.htmlLabels || cnf.flowchart?.htmlLabels; for (const className in classes) { if (htmlLabels) { From 278a19f87aec156d81e5178579971cd5cc29d6d0 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Mon, 10 Oct 2022 18:25:33 -0700 Subject: [PATCH 0345/1038] state demo add classDefs to example with explanations; add some headers; update composite from docs --- demos/state.html | 51 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/demos/state.html b/demos/state.html index 7f85fceb1e..57f89779c6 100644 --- a/demos/state.html +++ b/demos/state.html @@ -15,6 +15,7 @@ <body> <h1>State diagram demos</h1> + <h2>Very simple showing change from State1 to State2</h2> <pre class="mermaid"> stateDiagram accTitle: This is the accessible title @@ -24,16 +25,43 @@ <h1>State diagram demos</h1> <hr /> + <h2>This has classDef statements to apply style classes to specific states</h2> + <h4>Here are the <code>classDef</code> statements:</h4> + <p> + <code> + classDef notMoving fill:white<br /> + classDef movement font-style:italic;<br /> + classDef badBadEvent fill:#f00,color:white,font-weight:bold<br /> + </code> + </p> + <h4>And these are how they are applied:</h4> + <p> + <code> + class Still notMoving<br /> + class Moving, Crash movement<br /> + class Crash badBadEvent<br /> + </code> + </p> <pre class="mermaid"> stateDiagram-v2 accTitle: This is the accessible title accDescr: This is an accessible description + + classDef notMoving fill:white + classDef movement font-style:italic; + classDef badBadEvent fill:#f00,color:white,font-weight:bold + [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] + + class Still notMoving + class Moving, Crash movement + class Crash badBadEvent + </pre> <hr /> @@ -46,14 +74,29 @@ <h1>State diagram demos</h1> </pre> <hr /> - + <h2>This shows Composite states</h2> <pre class="mermaid"> - stateDiagram + + + stateDiagram-v2 [*] --> First + First --> Second + First --> Third + state First { - [*] --> second - second --> [*] + [*] --> 1st + 1st --> [*] + } + state Second { + [*] --> 2nd + 2nd --> [*] } + state Third { + [*] --> 3rd + 3rd --> [*] + } + + </pre> <pre class="mermaid"> stateDiagram From 965eae5f453349aed94791eb0d93fabaabf1e2fb Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Mon, 10 Oct 2022 18:26:31 -0700 Subject: [PATCH 0346/1038] add spec for stateDB addStyleClass --- .../mermaid/src/diagrams/state/stateDb.spec.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 packages/mermaid/src/diagrams/state/stateDb.spec.js diff --git a/packages/mermaid/src/diagrams/state/stateDb.spec.js b/packages/mermaid/src/diagrams/state/stateDb.spec.js new file mode 100644 index 0000000000..786c122aaf --- /dev/null +++ b/packages/mermaid/src/diagrams/state/stateDb.spec.js @@ -0,0 +1,17 @@ +import stateDb from './stateDb'; + +describe('stateDb', () => { + describe('addStyleClass', () => { + it('is added to the list of style classes', () => { + const newStyleClassId = 'newStyleClass'; + const newStyleClassAttribs = 'font-weight:bold, border:blue;'; + + stateDb.addStyleClass(newStyleClassId, newStyleClassAttribs); + const styleClasses = stateDb.getClasses(); + expect(styleClasses[newStyleClassId].id).toEqual(newStyleClassId); + expect(styleClasses[newStyleClassId].styles.length).toEqual(2); + expect(styleClasses[newStyleClassId].styles[0]).toEqual('font-weight:bold'); + expect(styleClasses[newStyleClassId].styles[1]).toEqual('border:blue'); + }); + }); +}); From 7b7db4f60ee006b0a49be614e5b95aac50cce103 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Mon, 10 Oct 2022 18:50:04 -0700 Subject: [PATCH 0347/1038] (minor) API: removed unused flowRenderer import; add comment --- packages/mermaid/src/mermaidAPI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index a85fecb242..d4333e3709 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -20,7 +20,6 @@ import * as configApi from './config'; import { addDiagrams } from './diagram-api/diagram-orchestration'; import classDb from './diagrams/class/classDb'; import flowDb from './diagrams/flowchart/flowDb'; -import flowRenderer from './diagrams/flowchart/flowRenderer'; import ganttDb from './diagrams/gantt/ganttDb'; import Diagram, { getDiagramFromText } from './Diagram'; import errorRenderer from './diagrams/error/errorRenderer'; @@ -33,6 +32,7 @@ import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; +// diagram names that support classDef statements const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram']; /** From d1f3b889d601f26782e621e7f046991abcc8bbf3 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Mon, 10 Oct 2022 22:03:22 -0700 Subject: [PATCH 0348/1038] add cypress tests for classDefs and applying classes to states --- .../rendering/stateDiagram-v2.spec.js | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/cypress/integration/rendering/stateDiagram-v2.spec.js b/cypress/integration/rendering/stateDiagram-v2.spec.js index aa2bc06ef6..5b43c890cb 100644 --- a/cypress/integration/rendering/stateDiagram-v2.spec.js +++ b/cypress/integration/rendering/stateDiagram-v2.spec.js @@ -521,4 +521,42 @@ stateDiagram-v2 { logLevel: 0, fontFamily: 'courier' } ); }); + + describe('classDefs and applying classes', () => { + it('v2 states can have a class applied', () => { + imgSnapshotTest( + ` + stateDiagram-v2 + [*] --> A + A --> B: test({ foo#colon; 'far' }) + B --> [*] + classDef badBadEvent fill:#f00,color:white,font-weight:bold + class B badBadEvent + `, + { logLevel: 0, fontFamily: 'courier' } + ); + }); + it('v2 can have multiple classes applied to multiple states', () => { + imgSnapshotTest( + ` + stateDiagram-v2 + classDef notMoving fill:white + classDef movement font-style:italic; + classDef badBadEvent fill:#f00,color:white,font-weight:bold + + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] + + class Still notMoving + class Moving, Crash movement + class Crash badBadEvent + `, + { logLevel: 0, fontFamily: 'courier' } + ); + }); + }); }); From 15dd60ab8560a6f4650fe6e4d579ce0f7acd904e Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 08:34:30 -0700 Subject: [PATCH 0349/1038] state demo: add more diagrams, add explanatory text --- demos/state.html | 63 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/demos/state.html b/demos/state.html index 57f89779c6..dbe2286a30 100644 --- a/demos/state.html +++ b/demos/state.html @@ -61,23 +61,31 @@ <h4>And these are how they are applied:</h4> class Still notMoving class Moving, Crash movement class Crash badBadEvent - </pre> <hr /> <pre class="mermaid"> - stateDiagram + stateDiagram-v2 accTitle: very very simple state accDescr: This is a state diagram showing one state State1 </pre> + <hr /> + <h2>You can label the relationships</h2> + <pre class="mermaid"> + stateDiagram-v2 + [*] --> State1 + State1 --> State2 : Transition 1 + State1 --> State3 : Transition 2 + State1 --> State4 : Transition 3 + State1 --> [*] + </pre> <hr /> + <h2>This shows Composite states</h2> <pre class="mermaid"> - - stateDiagram-v2 [*] --> First First --> Second @@ -95,31 +103,48 @@ <h2>This shows Composite states</h2> [*] --> 3rd 3rd --> [*] } + </pre> + <hr /> - + <h2>Compsite states can link to themselves</h2> + <pre class="mermaid"> + stateDiagram-v2 + state Active { + Idle + } + Inactive --> Idle: ACT + Active --> Active: LOG </pre> + <hr /> + + <h2>transition labels can span multiple lines using "br" tags or \n</h2> <pre class="mermaid"> - stateDiagram - State1: The state with a note - note right of State1 - Important information! You can write - notes. - end note - State1 --> State2 - note left of State2 : This is the note to the left. + stateDiagram-v2 + [*] --> S1 + S1 --> S2: This long line uses a br tag<br/>to create multiple<br/>lines. + S1 --> S3: This transition descripton uses \na newline character\nto create multiple\nlines. + </pre> + <hr /> + + <h2>You can add Notes</h2> <pre class="mermaid"> - stateDiagram - State1 - note right of State1 - Line1<br>Line2<br />Line3<br />Line4<br />Line5 - end note + stateDiagram-v2 + direction LR + State1: A state with a note + note right of State1 + Important information!<br />You can write notes.<br/>And\nthey\ncan\nbe\nmulti-\nline. + end note + State1 --> State2 + note left of State2 : Notes can be to the left of a state\n(like this one). + note right of State2 : Notes can be to the right of a state\n(like this one). </pre> + <hr /> <script src="./mermaid.js"></script> <script> mermaid.initialize({ - theme: 'base', + theme: 'default', // themeCSS: '.node rect { fill: red; }', logLevel: 3, securityLevel: 'loose', From 370806365ff4efb96578f0dc283e366df2622458 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 08:36:04 -0700 Subject: [PATCH 0350/1038] parser: idStatement returns stmt: 'state'...; add classDef, class statements --- .../diagrams/state/parser/state-style.spec.js | 189 ++++++++++++++++++ .../diagrams/state/parser/stateDiagram.jison | 110 ++++++++-- 2 files changed, 277 insertions(+), 22 deletions(-) create mode 100644 packages/mermaid/src/diagrams/state/parser/state-style.spec.js diff --git a/packages/mermaid/src/diagrams/state/parser/state-style.spec.js b/packages/mermaid/src/diagrams/state/parser/state-style.spec.js new file mode 100644 index 0000000000..0d95cd1170 --- /dev/null +++ b/packages/mermaid/src/diagrams/state/parser/state-style.spec.js @@ -0,0 +1,189 @@ +import stateDb from '../stateDb'; +import stateDiagram from './stateDiagram'; +import { setConfig } from '../../../config'; + +setConfig({ + securityLevel: 'strict', +}); + +describe('ClassDefs and classes when parsing a State diagram', () => { + beforeEach(function () { + stateDiagram.parser.yy = stateDb; + stateDiagram.parser.yy.clear(); + }); + + describe('class for a state (classDef)', () => { + describe('defining (classDef)', () => { + it('has "classDef" as a keyword, an id, and can set a css style attribute', function () { + stateDiagram.parser.parse('stateDiagram-v2\n classDef exampleClass background:#bbb;'); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const styleClasses = stateDb.getClasses(); + expect(styleClasses['exampleClass'].styles.length).toEqual(1); + expect(styleClasses['exampleClass'].styles[0]).toEqual('background:#bbb'); + }); + + it('can define multiple attributes separated by commas', function () { + stateDiagram.parser.parse( + 'stateDiagram-v2\n classDef exampleClass background:#bbb, font-weight:bold, font-style:italic;' + ); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const styleClasses = stateDb.getClasses(); + expect(styleClasses['exampleClass'].styles.length).toEqual(3); + expect(styleClasses['exampleClass'].styles[0]).toEqual('background:#bbb'); + expect(styleClasses['exampleClass'].styles[1]).toEqual('font-weight:bold'); + expect(styleClasses['exampleClass'].styles[2]).toEqual('font-style:italic'); + }); + + // need to look at what the lexer is doing. see the work on the chevotrain parser + it('an attribute can have a dot in the style', function () { + stateDiagram.parser.parse( + 'stateDiagram-v2\n classDef exampleStyleClass background:#bbb,border:1.5px solid red;' + ); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const classes = stateDiagram.parser.yy.getClasses(); + expect(classes['exampleStyleClass'].styles.length).toBe(2); + expect(classes['exampleStyleClass'].styles[0]).toBe('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toBe('border:1.5px solid red'); + }); + + it('an attribute can have a space in the style', function () { + stateDiagram.parser.parse( + 'stateDiagram-v2\n classDef exampleStyleClass background: #bbb,border:1.5px solid red;' + ); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const classes = stateDiagram.parser.yy.getClasses(); + expect(classes['exampleStyleClass'].styles.length).toBe(2); + expect(classes['exampleStyleClass'].styles[0]).toBe('background: #bbb'); + expect(classes['exampleStyleClass'].styles[1]).toBe('border:1.5px solid red'); + }); + }); + + describe('applying to states in the diagram', () => { + it('can apply a class to a state', function () { + let diagram = ''; + diagram += 'stateDiagram-v2\n' + '\n'; + diagram += 'classDef exampleStyleClass background:#bbb,border:1px solid red;\n'; + diagram += 'a --> b '; + diagram += 'class a exampleStyleClass'; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const classes = stateDb.getClasses(); + expect(classes['exampleStyleClass'].styles.length).toEqual(2); + expect(classes['exampleStyleClass'].styles[0]).toEqual('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toEqual('border:1px solid red'); + + const state_a = stateDb.getState('a'); + expect(state_a.classes.length).toEqual(1); + expect(state_a.classes[0]).toEqual('exampleStyleClass'); + }); + + it('can be applied to a state with an id containing _', function () { + let diagram = ''; + + diagram += 'stateDiagram-v2\n' + '\n'; + diagram += 'classDef exampleStyleClass background:#bbb,border:1px solid red;\n'; + diagram += 'a_a --> b_b' + '\n'; + diagram += 'class a_a exampleStyleClass'; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const classes = stateDiagram.parser.yy.getClasses(); + expect(classes['exampleStyleClass'].styles.length).toBe(2); + expect(classes['exampleStyleClass'].styles[0]).toBe('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toBe('border:1px solid red'); + + const state_a_a = stateDiagram.parser.yy.getState('a_a'); + expect(state_a_a.classes.length).toEqual(1); + expect(state_a_a.classes[0]).toEqual('exampleStyleClass'); + }); + + describe('::: syntax', () => { + it('can be applied to a state using ::: syntax', () => { + let diagram = ''; + diagram += 'stateDiagram-v2\n' + '\n'; + diagram += 'classDef exampleStyleClass background:#bbb,border:1px solid red;' + '\n'; + diagram += 'a --> b:::exampleStyleClass' + '\n'; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDiagram.parser.yy.getStates(); + const classes = stateDiagram.parser.yy.getClasses(); + + expect(classes['exampleStyleClass'].styles.length).toEqual(2); + expect(classes['exampleStyleClass'].styles[0]).toEqual('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toEqual('border:1px solid red'); + + expect(states['b'].classes[0]).toEqual('exampleStyleClass'); + }); + + it('can be applied to a [*] state', () => { + let diagram = ''; + diagram += 'stateDiagram-v2\n\n'; + diagram += 'classDef exampleStyleClass background:#bbb,border:1px solid red;\n'; + diagram += '[*]:::exampleStyleClass --> b\n'; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDiagram.parser.yy.getStates(); + const classes = stateDiagram.parser.yy.getClasses(); + + expect(classes['exampleStyleClass'].styles.length).toEqual(2); + expect(classes['exampleStyleClass'].styles[0]).toEqual('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toEqual('border:1px solid red'); + + expect(states['root_start'].classes[0]).toEqual('exampleStyleClass'); + }); + + it('can be applied to a comma separated list of states', function () { + let diagram = ''; + diagram += 'stateDiagram-v2\n\n'; + diagram += 'classDef exampleStyleClass background:#bbb,border:1px solid red;\n'; + diagram += 'a-->b\n'; + diagram += 'class a,b exampleStyleClass'; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + let classes = stateDiagram.parser.yy.getClasses(); + let states = stateDiagram.parser.yy.getStates(); + + expect(classes['exampleStyleClass'].styles.length).toEqual(2); + expect(classes['exampleStyleClass'].styles[0]).toEqual('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toEqual('border:1px solid red'); + expect(states['a'].classes[0]).toEqual('exampleStyleClass'); + expect(states['b'].classes[0]).toEqual('exampleStyleClass'); + }); + + it('a comma separated list of states may or may not have spaces after commas', function () { + let diagram = ''; + diagram += 'stateDiagram-v2\n\n'; + diagram += 'classDef exampleStyleClass background:#bbb,border:1px solid red;\n'; + diagram += 'a-->b\n'; + diagram += 'class a,b,c, d, e exampleStyleClass'; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + const classes = stateDiagram.parser.yy.getClasses(); + const states = stateDiagram.parser.yy.getStates(); + + expect(classes['exampleStyleClass'].styles.length).toEqual(2); + expect(classes['exampleStyleClass'].styles[0]).toEqual('background:#bbb'); + expect(classes['exampleStyleClass'].styles[1]).toEqual('border:1px solid red'); + + const statesList = ['a', 'b', 'c', 'd', 'e']; + statesList.forEach((stateId) => { + expect(states[stateId].classes[0]).toEqual('exampleStyleClass'); + }); + }); + }); + }); + }); +}); diff --git a/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison b/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison index e2a984ca1f..1115edfe94 100644 --- a/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison +++ b/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison @@ -23,6 +23,10 @@ %x acc_title %x acc_descr %x acc_descr_multiline +%x CLASSDEF +%x CLASSDEFID +%x CLASS +%x CLASS_STYLE %x NOTE %x NOTE_ID %x NOTE_TEXT @@ -39,6 +43,8 @@ %% +"default" return 'DEFAULT'; + .*direction\s+TB[^\n]* return 'direction_tb'; .*direction\s+BT[^\n]* return 'direction_bt'; .*direction\s+RL[^\n]* return 'direction_rl'; @@ -69,6 +75,20 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili <acc_descr_multiline>[\}] { this.popState(); } <acc_descr_multiline>[^\}]* return "acc_descr_multiline_value"; +<INITIAL,struct>"classDef"\s+ { this.pushState('CLASSDEF'); return 'classDef'; } +<CLASSDEF>DEFAULT\s+ { this.popState(); this.pushState('CLASSDEFID'); return 'DEFAULT_CLASSDEF_ID' } +<CLASSDEF>\w+\s+ { this.popState(); this.pushState('CLASSDEFID'); return 'CLASSDEF_ID' } +<CLASSDEFID>[^\n]* { this.popState(); return 'CLASSDEF_STYLEOPTS' } + +<INITIAL,struct>"class"\s+ { this.pushState('CLASS'); return 'class'; } +<CLASS>(\w+)+((","\s*\w+)*) { this.popState(); this.pushState('CLASS_STYLE'); return 'CLASSENTITY_IDS' } +<CLASS_STYLE>[^\n]* { this.popState(); return 'STYLECLASS' } + +"scale"\s+ { this.pushState('SCALE'); /* console.log('Got scale', yytext);*/ return 'scale'; } +<SCALE>\d+ return 'WIDTH'; +<SCALE>\s+"width" {this.popState();} + + <INITIAL,struct>"state"\s+ { /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE'); } <STATE>.*"<<fork>>" {this.popState();yytext=yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yytext);*/return 'FORK';} <STATE>.*"<<join>>" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yytext);*/return 'JOIN';} @@ -111,10 +131,12 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili <INITIAL,struct>[^:\n\s\-\{]+ { /*console.log('=>ID=',yytext);*/ return 'ID';} // <INITIAL,struct>\s*":"[^\+\->:\n;]+ { yytext = yytext.trim(); /*console.log('Descr = ', yytext);*/ return 'DESCR'; } <INITIAL,struct>\s*":"[^:\n;]+ { yytext = yytext.trim(); /*console.log('Descr = ', yytext);*/ return 'DESCR'; } + <INITIAL,struct>"-->" return '-->'; -<struct>"--" return 'CONCURRENT'; -<<EOF>> return 'NL'; -. return 'INVALID'; +<struct>"--" return 'CONCURRENT'; +":::" return 'STYLE_SEPARATOR'; +<<EOF>> return 'NL'; +. return 'INVALID'; /lex @@ -124,20 +146,23 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili %% /* language grammar */ +/* $$ is the value of the symbol being evaluated (= what is to the left of the : in the rule */ + start : SPACE start | NL start | directive start - | SD document { /*console.warn('Root document', $2);*/ yy.setRootDoc($2);return $2; } + | SD document { /* console.log('--> Root document', $2); */ yy.setRootDoc($2); return $2; } ; document - : /* empty */ { $$ = [] } + : /* empty */ { /*console.log('empty document'); */ $$ = [] } | document line { - if($2!='nl'){ - $1.push($2);$$ = $1 + if($2 !='nl'){ + /* console.log(' document: 1: ', $1, ' pushing 2: ', $2); */ + $1.push($2); $$ = $1 } - // console.warn('Got document',$1, $2); + /* console.log('Got document',$1, $2); */ } ; @@ -148,24 +173,34 @@ line ; statement - : idStatement { /*console.warn('got id and descr', $1);*/$$={ stmt: 'state', id: $1, type: 'default', description: ''};} - | idStatement DESCR { /*console.warn('got id and descr', $1, $2.trim());*/$$={ stmt: 'state', id: $1, type: 'default', description: yy.trimColon($2)};} + : classDefStatement + | cssClassStatement + | idStatement { /* console.log('got id', $1); */ + $$=$1; + } + | idStatement DESCR { + const stateStmt = $1; + stateStmt.description = yy.trimColon($2); + $$ = stateStmt; + } | idStatement '-->' idStatement - { - /*console.warn('got id', $1);yy.addRelation($1, $3);*/ - $$={ stmt: 'relation', state1: { stmt: 'state', id: $1, type: 'default', description: '' }, state2:{ stmt: 'state', id: $3 ,type: 'default', description: ''}}; - } + { + /* console.info('got ids: 1: ', $1, ' 2:', $2,' 3: ', $3); */ + // console.log(' idStatement --> idStatement : state1 =', $1, ' state2 =', $3); + $$={ stmt: 'relation', state1: $1, state2: $3}; + } | idStatement '-->' idStatement DESCR - { - /*yy.addRelation($1, $3, $4.substr(1).trim());*/ - $$={ stmt: 'relation', state1: { stmt: 'state', id: $1, type: 'default', description: '' }, state2:{ stmt: 'state', id: $3 ,type: 'default', description: ''}, description: $4.substr(1).trim()}; - } + { + const relDescription = yy.trimColon($4); + /* console.log(' idStatement --> idStatement DESCR : state1 =', $1, ' state2stmt =', $3, ' description: ', relDescription); */ + $$={ stmt: 'relation', state1: $1, state2: $3, description: relDescription}; + } | HIDE_EMPTY | scale WIDTH | COMPOSIT_STATE | COMPOSIT_STATE STRUCT_START document STRUCT_STOP { - /* console.warn('Adding document for state without id ', $1);*/ + /* console.log('Adding document for state without id ', $1); */ $$={ stmt: 'state', id: $1, type: 'default', description: '', doc: $3 } } | STATE_DESCR AS ID { @@ -181,7 +216,7 @@ statement } | STATE_DESCR AS ID STRUCT_START document STRUCT_STOP { - // console.warn('Adding document for state with id zxzx', $3, $4, yy.getDirection()); yy.addDocument($3); + /* console.log('Adding document for state with id zxzx', $3, $4, yy.getDirection()); yy.addDocument($3);*/ $$={ stmt: 'state', id: $3, type: 'default', description: $1, doc: $5 } } | FORK { @@ -208,6 +243,23 @@ statement | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } ; + +classDefStatement + : classDef CLASSDEF_ID CLASSDEF_STYLEOPTS { + $$ = { stmt: 'classDef', id: $2.trim(), classes: $3.trim() }; + } + | classDef DEFAULT CLASSDEF_STYLEOPTS { + $$ = { stmt: 'classDef', id: $2.trim(), classes: $3.trim() }; + } + ; + +cssClassStatement + : class CLASSENTITY_IDS STYLECLASS { + //console.log('apply class: id(s): ',$2, ' style class: ', $3); + $$={ stmt: 'applyClass', id: $2.trim(), styleClass: $3.trim() }; + } + ; + directive : openDirective typeDirective closeDirective | openDirective typeDirective ':' argDirective closeDirective @@ -229,8 +281,22 @@ eol ; idStatement - : ID {$$=$1;} - | EDGE_STATE {$$=$1;} + : ID + { /* console.log('idStatement id: ', $1); */ + $$={ stmt: 'state', id: $1.trim(), type: 'default', description: '' }; + } + | EDGE_STATE + { /* console.log('idStatement id: ', $1); */ + $$={ stmt: 'state', id: $1.trim(), type: 'default', description: '' }; + } + | ID STYLE_SEPARATOR ID + { /*console.log('idStatement ID STYLE_SEPARATOR ID'); */ + $$={ stmt: 'state', id: $1.trim(), classes: [$3.trim()], type: 'default', description: '' }; + } + | EDGE_STATE STYLE_SEPARATOR ID + { /*console.log('idStatement EDGE_STATE STYLE_SEPARATOR ID'); */ + $$={ stmt: 'state', id: $1.trim(), classes: [$3.trim()], type: 'default', description: '' }; + } ; notePosition From 15f31f9d95faf0f17b5077abaf30151dbcbfbc6a Mon Sep 17 00:00:00 2001 From: Basti Ortiz <39114273+Some-Dood@users.noreply.github.com> Date: Wed, 12 Oct 2022 00:21:52 +0800 Subject: [PATCH 0351/1038] feat: make `parseError` function more type-safe --- packages/mermaid/src/Diagram.ts | 40 ++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 0aa7419948..39b2c20d96 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -3,14 +3,16 @@ import { log } from './logger'; import { getDiagram, registerDiagram } from './diagram-api/diagramAPI'; import { detectType, getDiagramLoader } from './diagram-api/detectType'; import { isDetailedError } from './utils'; + +export type ParseErrorFunction = (str: string, hash?: any) => void; + export class Diagram { type = 'graph'; parser; renderer; db; private detectTypeFailed = false; - // eslint-disable-next-line @typescript-eslint/ban-types - constructor(public txt: string, parseError?: Function) { + constructor(public txt: string, parseError?: ParseErrorFunction) { const cnf = configApi.getConfig(); this.txt = txt; try { @@ -37,8 +39,7 @@ export class Diagram { this.parse(this.txt, parseError); } - // eslint-disable-next-line @typescript-eslint/ban-types - parse(text: string, parseError?: Function): boolean { + parse(text: string, parseError?: ParseErrorFunction): boolean { if (this.detectTypeFailed) { return false; } @@ -53,23 +54,24 @@ export class Diagram { return false; } - // eslint-disable-next-line @typescript-eslint/ban-types - handleError(error: unknown, parseError?: Function) { + handleError(error: unknown, parseError?: ParseErrorFunction) { // Is this the correct way to access mermiad's parseError() // method ? (or global.mermaid.parseError()) ? - if (parseError) { - if (isDetailedError(error)) { - // handle case where error string and hash were - // wrapped in object like`const error = { str, hash };` - parseError(error.str, error.hash); - } else { - // assume it is just error string and pass it on - parseError(error); - } - } else { + + if (parseError === undefined) { // No mermaid.parseError() handler defined, so re-throw it throw error; } + + if (isDetailedError(error)) { + // Handle case where error string and hash were + // wrapped in object like`const error = { str, hash };` + parseError(error.str, error.hash); + return; + } + + // Otherwise, assume it is just an error string and pass it on + parseError(error as string); } getParser() { @@ -81,8 +83,10 @@ export class Diagram { } } -// eslint-disable-next-line @typescript-eslint/ban-types -export const getDiagramFromText = async (txt: string, parseError?: Function): Promise<Diagram> => { +export const getDiagramFromText = async ( + txt: string, + parseError?: ParseErrorFunction +): Promise<Diagram> => { const type = detectType(txt, configApi.getConfig()); try { // Trying to find the diagram From e8cd3c0baf5ad77b9304cd292076ed5ff0ac55b7 Mon Sep 17 00:00:00 2001 From: Basti Ortiz <39114273+Some-Dood@users.noreply.github.com> Date: Wed, 12 Oct 2022 00:49:15 +0800 Subject: [PATCH 0352/1038] fix: use `ParseErrorFunction` alias for mocks --- packages/mermaid/src/__mocks__/mermaidAPI.ts | 5 ++--- packages/mermaid/src/mermaidAPI.ts | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 08c5b7eea2..3102095b9f 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -6,7 +6,7 @@ import * as configApi from '../config'; import { vi } from 'vitest'; import { addDiagrams } from '../diagram-api/diagram-orchestration'; -import Diagram from '../Diagram'; +import Diagram, { type ParseErrorFunction } from '../Diagram'; // Normally, we could just do the following to get the original `parse()` // implementation, however, requireActual returns a promise and it's not documented how to use withing mock file. @@ -15,8 +15,7 @@ import Diagram from '../Diagram'; * @param text * @param parseError */ -// eslint-disable-next-line @typescript-eslint/ban-types -function parse(text: string, parseError?: Function): boolean { +function parse(text: string, parseError?: ParseErrorFunction): boolean { addDiagrams(); const diagram = new Diagram(text, parseError); return diagram.parse(text, parseError); diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7c967e5fd9..7fe5064de5 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -22,7 +22,7 @@ import classDb from './diagrams/class/classDb'; import flowDb from './diagrams/flowchart/flowDb'; import flowRenderer from './diagrams/flowchart/flowRenderer'; import ganttDb from './diagrams/gantt/ganttDb'; -import Diagram, { getDiagramFromText } from './Diagram'; +import Diagram, { getDiagramFromText, type ParseErrorFunction } from './Diagram'; import errorRenderer from './diagrams/error/errorRenderer'; import { attachFunctions } from './interactionDb'; import { log, setLogLevel } from './logger'; @@ -37,8 +37,7 @@ import { evaluate } from './diagrams/common/common'; * @param text * @param parseError */ -// eslint-disable-next-line @typescript-eslint/ban-types -function parse(text: string, parseError?: Function): boolean { +function parse(text: string, parseError?: ParseErrorFunction): boolean { addDiagrams(); const diagram = new Diagram(text, parseError); return diagram.parse(text, parseError); From 79f4eb2e32b67ea745bea199b6ecf12152751903 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 09:53:45 -0700 Subject: [PATCH 0353/1038] stateDb: methods for classDef, (style) classes; update extract(); code cleanup + DRY --- .../mermaid/src/diagrams/state/stateDb.js | 399 +++++++++++++++--- .../src/diagrams/state/stateDb.spec.js | 60 ++- 2 files changed, 390 insertions(+), 69 deletions(-) diff --git a/packages/mermaid/src/diagrams/state/stateDb.js b/packages/mermaid/src/diagrams/state/stateDb.js index 96f92af8a8..1fa0ac98a9 100644 --- a/packages/mermaid/src/diagrams/state/stateDb.js +++ b/packages/mermaid/src/diagrams/state/stateDb.js @@ -11,8 +11,50 @@ import { clear as commonClear, } from '../../commonDb'; -const clone = (o) => JSON.parse(JSON.stringify(o)); +const DEFAULT_DIRECTION = 'TB'; +const START_NODE = '[*]'; +const START_TYPE = 'start'; +const END_NODE = START_NODE; +const END_TYPE = 'end'; +const DEFAULT_TYPE = 'default'; + +const COLOR_KEYWORD = 'color'; +const FILL_KEYWORD = 'fill'; +const BG_FILL = 'bgFill'; +const STYLECLASS_SEP = ','; + +let direction = DEFAULT_DIRECTION; let rootDoc = []; +let classes = []; // style classes defined by a classDef + +const newDoc = () => { + return { + relations: [], + states: {}, + documents: {}, + }; +}; +let documents = { + root: newDoc(), +}; + +let currentDocument = documents.root; +let startEndCount = 0; +let dividerCnt = 0; + +export const lineType = { + LINE: 0, + DOTTED_LINE: 1, +}; + +export const relationType = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3, +}; + +const clone = (o) => JSON.parse(JSON.stringify(o)); export const parseDirective = function (statement, context, type) { mermaidAPI.parseDirective(this, statement, context, type); @@ -41,8 +83,8 @@ const docTranslator = (parent, node, first) => { if (node.doc) { const doc = []; // Check for concurrency - let i = 0; let currentDoc = []; + let i; for (i = 0; i < node.doc.length; i++) { if (node.doc[i].type === 'divider') { // debugger; @@ -77,6 +119,17 @@ const getRootDocV2 = () => { // Here }; +/** + * Convert all of the statements (stmts) that were parsed into states and relationships. + * This is done because a state diagram may have nested sections, + * where each section is a 'document' and has its own set of statements. + * Ex: the section within a fork has its own statements, and incoming and outgoing statements + * refer to the fork as a whole (document). + * See the parser grammar: the definition of a document is a document then a 'line', where a line can be a statement. + * This will push the statement into the the list of statements for the current document. + * + * @param _doc + */ const extract = (_doc) => { // const res = { states: [], relations: [] }; let doc; @@ -95,48 +148,66 @@ const extract = (_doc) => { log.info('Extract', doc); doc.forEach((item) => { - if (item.stmt === 'state') { - addState(item.id, item.type, item.doc, item.description, item.note); - } - if (item.stmt === 'relation') { - addRelation(item.state1.id, item.state2.id, item.description); + switch (item.stmt) { + case 'state': + addState( + item.id, + item.type, + item.doc, + item.description, + item.note, + item.classes, + item.styles, + item.textStyles + ); + break; + case 'relation': + addRelation(item.state1, item.state2, item.description); + break; + case 'classDef': + addStyleClass(item.id, item.classes); + break; + case 'applyClass': + setCssClass(item.id, item.styleClass); + break; } }); }; -const newDoc = () => { - return { - relations: [], - states: {}, - documents: {}, - }; -}; - -let documents = { - root: newDoc(), -}; - -let currentDocument = documents.root; - -let startCnt = 0; - /** * Function called by parser when a node definition has been found. * - * @param {any} id - * @param {any} type - * @param {any} doc - * @param {any} descr - * @param {any} note + * @param {null | string} id + * @param {null | string} type + * @param {null | string} doc + * @param {null | string | string[]} descr - description for the state. Can be a string or a list or strings + * @param {null | string} note + * @param {null | string | string[]} classes - class styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 class, convert it to an array of that 1 class. + * @param {null | string | string[]} styles - styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 style, convert it to an array of that 1 style. + * @param {null | string | string[]} textStyles - text styles to apply to this state. Can be a string (1 text test) or an array of text styles. If it's just 1 text style, convert it to an array of that 1 text style. */ -export const addState = function (id, type, doc, descr, note) { +export const addState = function ( + id, + type = DEFAULT_TYPE, + doc = null, + descr = null, + note = null, + classes = null, + styles = null, + textStyles = null +) { + // add the state if needed if (typeof currentDocument.states[id] === 'undefined') { + log.info('Adding state ', id, descr); currentDocument.states[id] = { id: id, descriptions: [], type, doc, note, + classes: [], + styles: [], + textStyles: [], }; } else { if (!currentDocument.states[id].doc) { @@ -146,8 +217,9 @@ export const addState = function (id, type, doc, descr, note) { currentDocument.states[id].type = type; } } + if (descr) { - log.info('Adding state ', id, descr); + log.info('Setting state description', id, descr); if (typeof descr === 'string') addDescription(id, descr.trim()); if (typeof descr === 'object') { @@ -162,6 +234,24 @@ export const addState = function (id, type, doc, descr, note) { configApi.getConfig() ); } + + if (classes) { + log.info('Setting state classes', id, classes); + const classesList = typeof classes === 'string' ? [classes] : classes; + classesList.forEach((klass) => setCssClass(id, klass.trim())); + } + + if (styles) { + log.info('Setting state styles', id, styles); + const stylesList = typeof styles === 'string' ? [styles] : styles; + stylesList.forEach((style) => setStyle(id, style.trim())); + } + + if (textStyles) { + log.info('Setting state styles', id, styles); + const textStylesList = typeof textStyles === 'string' ? [textStyles] : textStyles; + textStylesList.forEach((textStyle) => setTextStyle(id, textStyle.trim())); + } }; export const clear = function (saveCommon) { @@ -172,7 +262,8 @@ export const clear = function (saveCommon) { currentDocument = documents.root; - startCnt = 0; + // number of start and end nodes; used to construct ids + startEndCount = 0; classes = []; if (!saveCommon) { commonClear(); @@ -193,36 +284,134 @@ export const getRelations = function () { return currentDocument.relations; }; -export const addRelation = function (_id1, _id2, title) { - let id1 = _id1; - let id2 = _id2; - let type1 = 'default'; - let type2 = 'default'; - if (_id1 === '[*]') { - startCnt++; - id1 = 'start' + startCnt; - type1 = 'start'; +/** + * If the id is a start node ( [*] ), then return a new id constructed from + * the start node name and the current start node count. + * else return the given id + * + * @param {string} id + * @returns {{id: string, type: string}} - the id and type that should be used + */ +function startIdIfNeeded(id = '') { + let fixedId = id; + if (id === START_NODE) { + startEndCount++; + fixedId = `${START_TYPE}${startEndCount}`; } - if (_id2 === '[*]') { - id2 = 'end' + startCnt; - type2 = 'end'; + return fixedId; +} + +/** + * If the id is a start node ( [*] ), then return the start type ('start') + * else return the given type + * + * @param {string} id + * @param {string} type + * @returns {string} - the type that should be used + */ +function startTypeIfNeeded(id = '', type = DEFAULT_TYPE) { + return id === START_NODE ? START_TYPE : type; +} + +/** + * If the id is an end node ( [*] ), then return a new id constructed from + * the end node name and the current start_end node count. + * else return the given id + * + * @param {string} id + * @returns {{id: string, type: string}} - the id and type that should be used + */ +function endIdIfNeeded(id = '') { + let fixedId = id; + if (id === END_NODE) { + startEndCount++; + fixedId = `${END_TYPE}${startEndCount}`; } - addState(id1, type1); - addState(id2, type2); + return fixedId; +} + +/** + * If the id is an end node ( [*] ), then return the end type + * else return the given type + * + * @param {string} id + * @param {string} type + * @returns {string} - the type that should be used + */ +function endTypeIfNeeded(id = '', type = DEFAULT_TYPE) { + return id === END_NODE ? END_TYPE : type; +} + +/** + * + * @param item1 + * @param item2 + * @param relationTitle + */ +export function addRelationObjs(item1, item2, relationTitle) { + let id1 = startIdIfNeeded(item1.id); + let type1 = startTypeIfNeeded(item1.id, item1.type); + let id2 = startIdIfNeeded(item2.id); + let type2 = startTypeIfNeeded(item2.id, item2.type); + + addState( + id1, + type1, + item1.doc, + item1.description, + item1.note, + item1.classes, + item1.styles, + item1.textStyles + ); + addState( + id2, + type2, + item2.doc, + item2.description, + item2.note, + item2.classes, + item2.styles, + item2.textStyles + ); + currentDocument.relations.push({ id1, id2, - title: common.sanitizeText(title, configApi.getConfig()), + relationTitle: common.sanitizeText(relationTitle, configApi.getConfig()), }); +} + +/** + * Add a relation between two items. The items may be full objects or just the string id of a state. + * + * @param {string | object} item1 + * @param {string | object} item2 + * @param {string} title + */ +export const addRelation = function (item1, item2, title) { + if (typeof item1 === 'object') { + addRelationObjs(item1, item2, title); + } else { + const id1 = startIdIfNeeded(item1); + const type1 = startTypeIfNeeded(item1); + const id2 = endIdIfNeeded(item2); + const type2 = endTypeIfNeeded(item2); + + addState(id1, type1); + addState(id2, type2); + currentDocument.relations.push({ + id1, + id2, + title: common.sanitizeText(title, configApi.getConfig()), + }); + } }; -const addDescription = function (id, _descr) { +export const addDescription = function (id, descr) { const theState = currentDocument.states[id]; - let descr = _descr; - if (descr[0] === ':') { - descr = descr.substr(1).trim(); - } - theState.descriptions.push(common.sanitizeText(descr, configApi.getConfig())); + const _descr = descr.startsWith(':') ? descr.replace(':', '').trim() : descr; + theState.descriptions.push(common.sanitizeText(_descr, configApi.getConfig())); }; export const cleanupLabel = function (label) { @@ -233,34 +422,105 @@ export const cleanupLabel = function (label) { } }; -export const lineType = { - LINE: 0, - DOTTED_LINE: 1, -}; - -let dividerCnt = 0; const getDividerId = () => { dividerCnt++; return 'divider-id-' + dividerCnt; }; -let classes = []; +/** + * Called when the parser comes across a (style) class definition + * @example classDef someclass fill:#f96; + * + * @param {string} id - the id of this (style) class + * @param {string} styleAttributes - the string with 1 or more style attributes (each separated by a comma) + */ +export const addStyleClass = function (id, styleAttributes = '') { + // create a new style class object with this id + if (typeof classes[id] === 'undefined') { + classes[id] = { id: id, styles: [], textStyles: [] }; + } + const foundClass = classes[id]; + if (typeof styleAttributes !== 'undefined') { + if (styleAttributes !== null) { + styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => { + // remove any trailing ; + const fixedAttrib = attrib.replace(/([^;]*);/, '$1').trim(); + + // replace some style keywords + if (attrib.match(COLOR_KEYWORD)) { + const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL); + const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD); + foundClass.textStyles.push(newStyle2); + } + foundClass.styles.push(fixedAttrib); + }); + } + } +}; + +/** + * Return all of the style classes + * @returns {{} | any | classes} + */ +export const getClasses = function () { + return classes; +}; + +/** + * Add a (style) class or css class to a state with the given id. + * If the state isn't already in the list of known states, add it. + * Might be called by parser when a style class or CSS class should be applied to a state + * + * @param {string | string[]} itemIds The id or a list of ids of the item(s) to apply the css class to + * @param {string} cssClassName CSS class name + */ +export const setCssClass = function (itemIds, cssClassName) { + itemIds.split(',').forEach(function (id) { + let foundState = getState(id); + if (typeof foundState === 'undefined') { + const trimmedId = id.trim(); + addState(trimmedId); + foundState = getState(trimmedId); + } + foundState.classes.push(cssClassName); + }); +}; + +/** + * Add a style to a state with the given id. + * @example style stateId fill:#f9f,stroke:#333,stroke-width:4px + * where 'style' is the keyword + * stateId is the id of a state + * the rest of the string is the styleText (all of the attributes to be applied to the state) + * + * @param itemId The id of item to apply the style to + * @param styleText - the text of the attributes for the style + */ +export const setStyle = function (itemId, styleText) { + const item = getState(itemId); + if (typeof item !== 'undefined') { + item.textStyles.push(styleText); + } +}; -const getClasses = () => classes; +/** + * Add a text style to a state with the given id + * + * @param itemId The id of item to apply the css class to + * @param cssClassName CSS class name + */ +export const setTextStyle = function (itemId, cssClassName) { + const item = getState(itemId); + if (typeof item !== 'undefined') { + item.textStyles.push(cssClassName); + } +}; -let direction = 'TB'; const getDirection = () => direction; const setDirection = (dir) => { direction = dir; }; -export const relationType = { - AGGREGATION: 0, - EXTENSION: 1, - COMPOSITION: 2, - DEPENDENCY: 3, -}; - const trimColon = (str) => (str && str[0] === ':' ? str.substr(1).trim() : str.trim()); export default { @@ -289,4 +549,7 @@ export default { setAccTitle, getAccDescription, setAccDescription, + addStyleClass, + setCssClass, + addDescription, }; diff --git a/packages/mermaid/src/diagrams/state/stateDb.spec.js b/packages/mermaid/src/diagrams/state/stateDb.spec.js index 786c122aaf..d51d919c33 100644 --- a/packages/mermaid/src/diagrams/state/stateDb.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDb.spec.js @@ -1,6 +1,10 @@ import stateDb from './stateDb'; -describe('stateDb', () => { +describe('State Diagram stateDb', () => { + beforeEach(() => { + stateDb.clear(); + }); + describe('addStyleClass', () => { it('is added to the list of style classes', () => { const newStyleClassId = 'newStyleClass'; @@ -14,4 +18,58 @@ describe('stateDb', () => { expect(styleClasses[newStyleClassId].styles[1]).toEqual('border:blue'); }); }); + + describe('addDescription to a state', () => { + beforeEach(() => { + stateDb.clear(); + stateDb.addState('state1'); + }); + + const testStateId = 'state1'; + + it('removes only the first leading :', () => { + const restOfTheDescription = 'rest of the description'; + const oneLeadingColon = `:${restOfTheDescription}`; + const twoLeadingColons = `::${restOfTheDescription}`; + + stateDb.addDescription(testStateId, restOfTheDescription); + let states = stateDb.getStates(); + expect(states[testStateId].descriptions[0]).toEqual(restOfTheDescription); + + stateDb.addDescription(testStateId, oneLeadingColon); + states = stateDb.getStates(); + expect(states[testStateId].descriptions[1]).toEqual(restOfTheDescription); + + stateDb.addDescription(testStateId, twoLeadingColons); + states = stateDb.getStates(); + expect(states[testStateId].descriptions[2]).toEqual(`:${restOfTheDescription}`); + }); + + it('adds each description to the array of descriptions', () => { + stateDb.addDescription(testStateId, 'description 0'); + stateDb.addDescription(testStateId, 'description 1'); + stateDb.addDescription(testStateId, 'description 2'); + + let states = stateDb.getStates(); + expect(states[testStateId].descriptions.length).toEqual(3); + expect(states[testStateId].descriptions[0]).toEqual('description 0'); + expect(states[testStateId].descriptions[1]).toEqual('description 1'); + expect(states[testStateId].descriptions[2]).toEqual('description 2'); + }); + + it('sanitizes on the description', () => { + stateDb.addDescription( + testStateId, + 'desc outside the script <script>the description</script>' + ); + let states = stateDb.getStates(); + expect(states[testStateId].descriptions[0]).toEqual('desc outside the script '); + }); + + it('adds the description to the state with the given id', () => { + stateDb.addDescription(testStateId, 'the description'); + let states = stateDb.getStates(); + expect(states[testStateId].descriptions[0]).toEqual('the description'); + }); + }); }); From 17ff584d15d54cacad91ae2c7479079fcf421f3e Mon Sep 17 00:00:00 2001 From: Basti Ortiz <39114273+Some-Dood@users.noreply.github.com> Date: Wed, 12 Oct 2022 01:06:31 +0800 Subject: [PATCH 0354/1038] feat: account for the fact that an error may be a `DetailedError` --- packages/mermaid/src/Diagram.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 39b2c20d96..d6c226cdee 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -2,9 +2,9 @@ import * as configApi from './config'; import { log } from './logger'; import { getDiagram, registerDiagram } from './diagram-api/diagramAPI'; import { detectType, getDiagramLoader } from './diagram-api/detectType'; -import { isDetailedError } from './utils'; +import { isDetailedError, type DetailedError } from './utils'; -export type ParseErrorFunction = (str: string, hash?: any) => void; +export type ParseErrorFunction = (err: string | DetailedError, hash?: any) => void; export class Diagram { type = 'graph'; From 4b31112bcb5713d8f9c72767aa4ee68a74528392 Mon Sep 17 00:00:00 2001 From: Basti Ortiz <39114273+Some-Dood@users.noreply.github.com> Date: Wed, 12 Oct 2022 01:07:17 +0800 Subject: [PATCH 0355/1038] fix: apply new types to the Mermaid API --- packages/mermaid/src/mermaid.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index ae6c62547c..717675f0b8 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -8,6 +8,7 @@ import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; import { addDetector } from './diagram-api/detectType'; import { isDetailedError } from './utils'; +import { ParseErrorFunction } from './Diagram'; /** * ## init @@ -62,7 +63,7 @@ const init = async function ( log.warn(e.str); } if (mermaid.parseError) { - mermaid.parseError(e); + mermaid.parseError(e as string); } } }; @@ -212,8 +213,7 @@ const parse = (txt: string) => { const mermaid: { startOnLoad: boolean; diagrams: any; - // eslint-disable-next-line @typescript-eslint/ban-types - parseError?: Function; + parseError?: ParseErrorFunction; mermaidAPI: typeof mermaidAPI; parse: typeof parse; render: typeof mermaidAPI.render; From 7391baae3409a573effb347898f49c71fc327ecf Mon Sep 17 00:00:00 2001 From: Basti Ortiz <39114273+Some-Dood@users.noreply.github.com> Date: Wed, 12 Oct 2022 01:14:09 +0800 Subject: [PATCH 0356/1038] fix: ensure that `ParseErrorFunction` type alias is compile-time only --- packages/mermaid/src/mermaid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 717675f0b8..09842c4265 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -8,7 +8,7 @@ import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; import { addDetector } from './diagram-api/detectType'; import { isDetailedError } from './utils'; -import { ParseErrorFunction } from './Diagram'; +import type { ParseErrorFunction } from './Diagram'; /** * ## init From 3c0727c7442b503878bcaadf0c4d704d1b89b5e3 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 10:16:57 -0700 Subject: [PATCH 0357/1038] diagram-v2 spec: added tests for labels, composite; fix typos, --- .../diagrams/state/stateDiagram-v2.spec.js | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js index ad224f14da..2f3b765da2 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js @@ -1,10 +1,13 @@ import { parser } from './parser/stateDiagram'; import stateDb from './stateDb'; +import stateDiagram from './parser/stateDiagram.jison'; describe('state diagram, ', function () { describe('when parsing an info graph it', function () { beforeEach(function () { parser.yy = stateDb; + stateDiagram.parser.yy = stateDb; + stateDiagram.parser.yy.clear(); }); it('super simple', function () { @@ -121,6 +124,30 @@ describe('state diagram, ', function () { parser.parse(str); }); + describe('relationship labels', () => { + it('simple states with : labels', () => { + const diagram = ` + stateDiagram-v2 + [*] --> State1 + State1 --> State2 : Transition 1 + State1 --> State3 : Transition 2 + State1 --> State4 : Transition 3 + State1 --> [*] + `; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const rels = stateDb.getRelations(); + const rel_1_2 = rels.find((rel) => rel.id1 === 'State1' && rel.id2 === 'State2'); + expect(rel_1_2.relationTitle).toEqual('Transition 1'); + const rel_1_3 = rels.find((rel) => rel.id1 === 'State1' && rel.id2 === 'State3'); + expect(rel_1_3.relationTitle).toEqual('Transition 2'); + const rel_1_4 = rels.find((rel) => rel.id1 === 'State1' && rel.id2 === 'State4'); + expect(rel_1_4.relationTitle).toEqual('Transition 3'); + }); + }); + it('scale', function () { const str = `stateDiagram-v2\n scale 350 width @@ -355,7 +382,7 @@ describe('state diagram, ', function () { parser.parse(str); }); - it('should handle notes for composit states', function () { + it('should handle notes for composite (nested) states', function () { const str = `stateDiagram-v2\n [*] --> NotShooting @@ -372,5 +399,28 @@ describe('state diagram, ', function () { parser.parse(str); }); + + it('A composite state should be able to link to itself', () => { + const diagram = ` + stateDiagram-v2 + state Active { + Idle + } + Inactive --> Idle: ACT + Active --> Active: LOG + `; + + stateDiagram.parser.parse(diagram); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDb.getStates(); + expect(states['Active'].doc[0].id).toEqual('Idle'); + + const rels = stateDb.getRelations(); + const rel_Inactive_Idle = rels.find((rel) => rel.id1 === 'Inactive' && rel.id2 === 'Idle'); + expect(rel_Inactive_Idle.relationTitle).toEqual('ACT'); + const rel_Active_Active = rels.find((rel) => rel.id1 === 'Active' && rel.id2 === 'Active'); + expect(rel_Active_Active.relationTitle).toEqual('LOG'); + }); }); }); From ba71afcce5238561b4d43b4cc623580c8ac96454 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 10:19:28 -0700 Subject: [PATCH 0358/1038] diagram-v2: store results of stateDb.extract(), apply class to state; code cleanup --- .../src/diagrams/state/stateRenderer-v2.js | 324 +++++++++++------- 1 file changed, 203 insertions(+), 121 deletions(-) diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 13c474b5e1..84b62b2ca8 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -7,7 +7,23 @@ import { configureSvgSize } from '../../setupGraphViewbox'; import common from '../common/common'; import addSVGAccessibilityFields from '../../accessibility'; +const DEFAULT_DIR = 'TD'; + +// When information is parsed and processed (extracted) by stateDb.extract() +// These are globals so the information can be accessed as needed (e.g. in setUpNode, etc.) +let diagramStates = []; +let diagramClasses = []; + +// List of nodes created from the parsed diagram statement items +let nodeDb = {}; + +let graphItemCount = 0; // used to construct ids, etc. + +// Configuration const conf = {}; + +// ----------------------------------------------------------------------- + export const setConf = function (cnf) { const keys = Object.keys(cnf); for (let i = 0; i < keys.length; i++) { @@ -15,150 +31,187 @@ export const setConf = function (cnf) { } }; -let nodeDb = {}; - /** * Returns the all the styles from classDef statements in the graph definition. * - * @param {any} text - * @param diag + * @param {string} text - the diagram text to be parsed + * @param {Diagram} diagramObj * @returns {object} ClassDef styles */ -export const getClasses = function (text, diag) { +export const getClasses = function (text, diagramObj) { log.trace('Extracting classes'); - diag.sb.clear(); - - // Parse the graph definition - diag.parser.parse(text); - return diag.sb.getClasses(); + if (diagramClasses.length > 0) return diagramClasses; // we have already extracted the classes + + diagramObj.db.clear(); + try { + // Parse the graph definition + diagramObj.parser.parse(text); + // must run extract() to turn the parsed statements into states, relationships, classes, etc. + diagramObj.db.extract(diagramObj.db.getRootDocV2()); + + return diagramObj.db.getClasses(); + } catch (e) { + return e; + } }; -const setupNode = (g, parent, node, altFlag) => { - // Add the node - if (node.id !== 'root') { +/** + * Get classes from the db info item. + * If there aren't any or if dbInfoItem isn't defined, return an empty string. + * Else create 1 string from the list of classes found + * + * @param {undefined | null | object} dbInfoItem + * @returns {string} + */ +function getClassesFromDbInfo(dbInfoItem) { + if (typeof dbInfoItem === 'undefined' || dbInfoItem === null) return ''; + else { + if (dbInfoItem.classes) { + return dbInfoItem.classes.join(' '); + } else return ''; + } +} + +/** + * Create a graph node based on the statement information + * + * @param g - graph + * @param {object} parent + * @param {object} parsedItem - parsed statement item + * @param {object} diagramDb + * @param {boolean} altFlag - for clusters, add the "statediagram-cluster-alt" CSS class + * @todo This duplicates some of what is done in stateDb.js extract method + */ +const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => { + const itemId = parsedItem.id; + const classStr = getClassesFromDbInfo(diagramStates[itemId]); + + if (itemId !== 'root') { let shape = 'rect'; - if (node.start === true) { + if (parsedItem.start === true) { shape = 'start'; } - if (node.start === false) { + if (parsedItem.start === false) { shape = 'end'; } - if (node.type !== 'default') { - shape = node.type; + if (parsedItem.type !== 'default') { + shape = parsedItem.type; } - if (!nodeDb[node.id]) { - nodeDb[node.id] = { - id: node.id, + // Add the node to our list (nodeDb) + if (!nodeDb[itemId]) { + nodeDb[itemId] = { + id: itemId, shape, - description: common.sanitizeText(node.id, getConfig()), - classes: 'statediagram-state', + description: common.sanitizeText(itemId, getConfig()), + classes: classStr + ' statediagram-state', }; } - // Build of the array of description strings accordinging - if (node.description) { - if (Array.isArray(nodeDb[node.id].description)) { + const newNode = nodeDb[itemId]; + + // Build of the array of description strings + if (parsedItem.description) { + if (Array.isArray(newNode.description)) { // There already is an array of strings,add to it - nodeDb[node.id].shape = 'rectWithTitle'; - nodeDb[node.id].description.push(node.description); + newNode.shape = 'rectWithTitle'; + newNode.description.push(parsedItem.description); } else { - if (nodeDb[node.id].description.length > 0) { - // if there is a description already transformit to an array - nodeDb[node.id].shape = 'rectWithTitle'; - if (nodeDb[node.id].description === node.id) { + if (newNode.description.length > 0) { + // if there is a description already transform it to an array + newNode.shape = 'rectWithTitle'; + if (newNode.description === itemId) { // If the previous description was the is, remove it - nodeDb[node.id].description = [node.description]; + newNode.description = [parsedItem.description]; } else { - nodeDb[node.id].description = [nodeDb[node.id].description, node.description]; + newNode.description = [newNode.description, parsedItem.description]; } } else { - nodeDb[node.id].shape = 'rect'; - nodeDb[node.id].description = node.description; + newNode.shape = 'rect'; + newNode.description = parsedItem.description; } } - nodeDb[node.id].description = common.sanitizeTextOrArray( - nodeDb[node.id].description, - getConfig() - ); + newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig()); } - // - if (nodeDb[node.id].description.length === 1 && nodeDb[node.id].shape === 'rectWithTitle') { - nodeDb[node.id].shape = 'rect'; + // update the node shape + if (newNode.description.length === 1 && newNode.shape === 'rectWithTitle') { + newNode.shape = 'rect'; } // Save data for description and group so that for instance a statement without description overwrites // one with description // group - if (!nodeDb[node.id].type && node.doc) { - log.info('Setting cluster for ', node.id, getDir(node)); - nodeDb[node.id].type = 'group'; - nodeDb[node.id].dir = getDir(node); - nodeDb[node.id].shape = node.type === 'divider' ? 'divider' : 'roundedWithTitle'; - nodeDb[node.id].classes = - nodeDb[node.id].classes + + if (!newNode.type && parsedItem.doc) { + log.info('Setting cluster for ', itemId, getDir(parsedItem)); + newNode.type = 'group'; + newNode.dir = getDir(parsedItem); + newNode.shape = parsedItem.type === 'divider' ? 'divider' : 'roundedWithTitle'; + + newNode.classes = + newNode.classes + ' ' + (altFlag ? 'statediagram-cluster statediagram-cluster-alt' : 'statediagram-cluster'); } + // This is what will be added to the graph const nodeData = { labelStyle: '', - shape: nodeDb[node.id].shape, - labelText: nodeDb[node.id].description, - // typeof nodeDb[node.id].description === 'object' - // ? nodeDb[node.id].description[0] - // : nodeDb[node.id].description, - classes: nodeDb[node.id].classes, //classStr, + shape: newNode.shape, + labelText: newNode.description, + // typeof newNode.description === 'object' + // ? newNode.description[0] + // : newNode.description, + classes: newNode.classes, style: '', //styles.style, - id: node.id, - dir: nodeDb[node.id].dir, - domId: 'state-' + node.id + '-' + cnt, - type: nodeDb[node.id].type, + id: itemId, + dir: newNode.dir, + domId: 'state-' + itemId + '-' + graphItemCount, + type: newNode.type, padding: 15, //getConfig().flowchart.padding }; - if (node.note) { + if (parsedItem.note) { // Todo: set random id const noteData = { labelStyle: '', shape: 'note', - labelText: node.note.text, + labelText: parsedItem.note.text, classes: 'statediagram-note', //classStr, - style: '', //styles.style, - id: node.id + '----note-' + cnt, - domId: 'state-' + node.id + '----note-' + cnt, - type: nodeDb[node.id].type, + style: '', // styles.style, + id: itemId + '----note-' + graphItemCount, + domId: 'state-' + itemId + '----note-' + graphItemCount, + type: newNode.type, padding: 15, //getConfig().flowchart.padding }; const groupData = { labelStyle: '', shape: 'noteGroup', - labelText: node.note.text, - classes: nodeDb[node.id].classes, //classStr, - style: '', //styles.style, - id: node.id + '----parent', - domId: 'state-' + node.id + '----parent-' + cnt, + labelText: parsedItem.note.text, + classes: newNode.classes, //classStr, + style: '', // styles.style, + id: itemId + '----parent', + domId: 'state-' + itemId + '----parent-' + graphItemCount, type: 'group', padding: 0, //getConfig().flowchart.padding }; - cnt++; + graphItemCount++; - g.setNode(node.id + '----parent', groupData); + g.setNode(itemId + '----parent', groupData); g.setNode(noteData.id, noteData); - g.setNode(node.id, nodeData); + g.setNode(itemId, nodeData); - g.setParent(node.id, node.id + '----parent'); - g.setParent(noteData.id, node.id + '----parent'); + g.setParent(itemId, itemId + '----parent'); + g.setParent(noteData.id, itemId + '----parent'); - let from = node.id; + let from = itemId; let to = noteData.id; - if (node.note.position === 'left of') { + if (parsedItem.note.position === 'left of') { from = noteData.id; - to = node.id; + to = itemId; } g.setEdge(from, to, { arrowhead: 'none', @@ -172,66 +225,92 @@ const setupNode = (g, parent, node, altFlag) => { thickness: 'normal', }); } else { - g.setNode(node.id, nodeData); + g.setNode(itemId, nodeData); } } if (parent) { if (parent.id !== 'root') { - log.trace('Setting node ', node.id, ' to be child of its parent ', parent.id); - g.setParent(node.id, parent.id); + log.trace('Setting node ', itemId, ' to be child of its parent ', parent.id); + g.setParent(itemId, parent.id); } } - if (node.doc) { + if (parsedItem.doc) { log.trace('Adding nodes children '); - setupDoc(g, node, node.doc, !altFlag); + setupDoc(g, parsedItem, parsedItem.doc, diagramDb, !altFlag); } }; -let cnt = 0; -const setupDoc = (g, parent, doc, altFlag) => { - // cnt = 0; + +/** + * Turn parsed statements (item.stmt) into nodes, relationships, etc. for a document. + * (A document may be nested within others.) + * + * @param g + * @param parentParsedItem - parsed Item that is the parent of this document (doc) + * @param doc - the document to set up + * @param diagramDb + * @param altFlag + * @todo This duplicates some of what is done in stateDb.js extract method + */ +const setupDoc = (g, parentParsedItem, doc, diagramDb, altFlag) => { + // graphItemCount = 0; log.trace('items', doc); doc.forEach((item) => { - if (item.stmt === 'state' || item.stmt === 'default') { - setupNode(g, parent, item, altFlag); - } else if (item.stmt === 'relation') { - setupNode(g, parent, item.state1, altFlag); - setupNode(g, parent, item.state2, altFlag); - const edgeData = { - id: 'edge' + cnt, - arrowhead: 'normal', - arrowTypeEnd: 'arrow_barb', - style: 'fill:none', - labelStyle: '', - label: common.sanitizeText(item.description, getConfig()), - arrowheadStyle: 'fill: #333', - labelpos: 'c', - labelType: 'text', - thickness: 'normal', - classes: 'transition', - }; - let startId = item.state1.id; - let endId = item.state2.id; - - g.setEdge(startId, endId, edgeData, cnt); - cnt++; + switch (item.stmt) { + case 'state': + setupNode(g, parentParsedItem, item, diagramDb, altFlag); + break; + case 'default': + setupNode(g, parentParsedItem, item, diagramDb, altFlag); + break; + case 'relation': + { + setupNode(g, parentParsedItem, item.state1, diagramDb, altFlag); + setupNode(g, parentParsedItem, item.state2, diagramDb, altFlag); + const edgeData = { + id: 'edge' + graphItemCount, + arrowhead: 'normal', + arrowTypeEnd: 'arrow_barb', + style: 'fill:none', + labelStyle: '', + label: common.sanitizeText(item.description, getConfig()), + arrowheadStyle: 'fill: #333', + labelpos: 'c', + labelType: 'text', + thickness: 'normal', + classes: 'transition', + }; + g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount); + graphItemCount++; + } + break; } }); }; -const getDir = (nodes, defaultDir) => { - let dir = defaultDir || 'TB'; - if (nodes.doc) { - for (let i = 0; i < nodes.doc.length; i++) { - const node = nodes.doc[i]; - if (node.stmt === 'dir') { - dir = node.value; + +/** + * Get the direction from the statement items. Default is TB (top to bottom). + * Look through all of the documents (docs) in the parsedItems + * + * @param {object[]} parsedItem - the parsed statement item to look through + * @param [defaultDir='TB'] - the direction to use if none is found + * @returns {string} + */ +const getDir = (parsedItem, defaultDir = DEFAULT_DIR) => { + let dir = defaultDir; + if (parsedItem.doc) { + for (let i = 0; i < parsedItem.doc.length; i++) { + const parsedItemDoc = parsedItem.doc[i]; + if (parsedItemDoc.stmt === 'dir') { + dir = parsedItemDoc.value; } } } return dir; }; + /** - * Draws a flowchart in the tag with id: id based on the graph definition in text. + * Draws a state diagram in the tag with id: id based on the graph definition in text. * * @param {any} text * @param {any} id @@ -244,18 +323,21 @@ export const draw = function (text, id, _version, diag) { nodeDb = {}; // Fetch the default direction, use TD if none was found let dir = diag.db.getDirection(); - if (typeof dir === 'undefined') { - dir = 'LR'; - } + if (typeof dir === 'undefined') dir = DEFAULT_DIR; const { securityLevel, state: conf } = getConfig(); const nodeSpacing = conf.nodeSpacing || 50; const rankSpacing = conf.rankSpacing || 50; log.info(diag.db.getRootDocV2()); + + // This parses the diagram text and sets the classes, relations, styles, classDefs, etc. diag.db.extract(diag.db.getRootDocV2()); log.info(diag.db.getRootDocV2()); + diagramStates = diag.db.getStates(); + diagramClasses = diag.db.getClasses(); + // Create the input mermaid.graph const g = new graphlib.Graph({ multigraph: true, @@ -272,7 +354,7 @@ export const draw = function (text, id, _version, diag) { return {}; }); - setupNode(g, undefined, diag.db.getRootDocV2(), true); + setupNode(g, undefined, diag.db.getRootDocV2(), diag.db, true); // Set up an SVG group so that we can translate the final graph. let sandboxElement; From adf77022115e6a350615a0188e2a4146322d64e9 Mon Sep 17 00:00:00 2001 From: devcer <viswanathamsantosh@gmail.com> Date: Tue, 11 Oct 2022 22:52:49 +0530 Subject: [PATCH 0359/1038] updated eslint config and fixed cspell warnings --- .eslintrc.json | 11 ++++++++++- myWords.txt | 14 ++++++++++++++ .../mermaid/src/diagrams/state/stateRenderer.js | 2 +- .../src/diagrams/user-journey/journeyRenderer.ts | 2 +- .../mermaid/src/diagrams/user-journey/svgDraw.js | 2 +- packages/mermaid/src/mermaidAPI.ts | 8 ++++---- packages/mermaid/src/setupGraphViewbox.js | 2 +- packages/mermaid/src/themes/theme-base.js | 2 +- packages/mermaid/src/themes/theme-dark.js | 2 +- packages/mermaid/src/themes/theme-default.js | 2 +- packages/mermaid/src/themes/theme-forest.js | 2 +- packages/mermaid/src/themes/theme-neutral.js | 2 +- packages/mermaid/src/utils.ts | 4 ++-- 13 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 myWords.txt diff --git a/.eslintrc.json b/.eslintrc.json index 8bf674047a..902db3175d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -49,7 +49,16 @@ } ], "json/*": ["error", "allowComments"], - "no-empty": ["error", { "allowEmptyCatch": true }] + "no-empty": ["error", { "allowEmptyCatch": true }], + "@cspell/spellchecker": [ + "warn", + { + "checkIdentifiers": false, + "checkStrings": false, + "checkStringTemplates": false, + "customWordListFile": { "path": "./myWords.txt" } + } + ] }, "overrides": [ { diff --git a/myWords.txt b/myWords.txt new file mode 100644 index 0000000000..1ae2e945ee --- /dev/null +++ b/myWords.txt @@ -0,0 +1,14 @@ +customizability +Gantt +jison +knsv +Knut +mindmap +Mindmaps +mitigations +sandboxed +Sveidqvist +verdana +Visio +vitepress +colour diff --git a/packages/mermaid/src/diagrams/state/stateRenderer.js b/packages/mermaid/src/diagrams/state/stateRenderer.js index 75368c5576..1c218a8705 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer.js @@ -47,7 +47,7 @@ const insertMarkers = function (elem) { export const draw = function (text, id, _version, diagObj) { conf = getConfig().state; const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts index e3ebb839cf..2eaa9e0204 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts @@ -54,7 +54,7 @@ export const draw = function (text, id, version, diagObj) { diagObj.parser.parse(text + '\n'); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/user-journey/svgDraw.js b/packages/mermaid/src/diagrams/user-journey/svgDraw.js index f655b9c3a9..a8c59a9397 100644 --- a/packages/mermaid/src/diagrams/user-journey/svgDraw.js +++ b/packages/mermaid/src/diagrams/user-journey/svgDraw.js @@ -218,7 +218,7 @@ export const drawSection = function (elem, section, conf) { let taskCount = -1; /** - * Draws an actor in the diagram with the attaced line + * Draws an actor in the diagram with the attached line * * @param {any} elem The HTML element * @param {any} task The task to render diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index f9544ee44f..bac2a20651 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -110,7 +110,7 @@ export const decodeEntities = function (text: string): string { * @param {string} id The id of the element to be rendered * @param {string} text The graph definition * @param {(svgCode: string, bindFunctions?: (element: Element) => void) => void} cb Callback which - * is called after rendering is finished with the svg code as inparam. + * is called after rendering is finished with the svg code as param. * @param {Element} container Selector to element in which a div with the graph temporarily will be * inserted. If one is provided a hidden div will be inserted in the body of the page instead. The * element will be removed when rendering is completed. @@ -152,7 +152,7 @@ const render = async function ( } if (cnf.securityLevel === 'sandbox') { - // IF we are in sandboxed mode, we do everyting mermaid related + // IF we are in sandboxed mode, we do everything mermaid related // in a sandboxed div const iframe = select(container) .append('iframe') @@ -201,7 +201,7 @@ const render = async function ( // d+id it will contain a svg with the id "id" if (cnf.securityLevel === 'sandbox') { - // IF we are in sandboxed mode, we do everyting mermaid related + // IF we are in sandboxed mode, we do everything mermaid related // in a sandboxed div const iframe = select('body') .append('iframe') @@ -250,7 +250,7 @@ const render = async function ( let userStyles = ''; // user provided theme CSS // If you add more configuration driven data into the user styles make sure that the value is - // sanitized bye the santiizeCSS function + // sanitized bye the sanitizeCSS function if (cnf.themeCSS !== undefined) { userStyles += `\n${cnf.themeCSS}`; } diff --git a/packages/mermaid/src/setupGraphViewbox.js b/packages/mermaid/src/setupGraphViewbox.js index 8ffdab5e75..6ec7f564bd 100644 --- a/packages/mermaid/src/setupGraphViewbox.js +++ b/packages/mermaid/src/setupGraphViewbox.js @@ -1,7 +1,7 @@ import { log } from './logger'; /** - * Applys d3 attributes + * Applies d3 attributes * * @param {any} d3Elem D3 Element to apply the attributes onto * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes diff --git a/packages/mermaid/src/themes/theme-base.js b/packages/mermaid/src/themes/theme-base.js index 0172df81b5..c940a00554 100644 --- a/packages/mermaid/src/themes/theme-base.js +++ b/packages/mermaid/src/themes/theme-base.js @@ -126,7 +126,7 @@ class Theme { this.specialStateColor = this.lineColor; /* Color Scale */ - /* Each color-set will have a background, a forgroupnd and a border color */ + /* Each color-set will have a background, a foreground and a border color */ this.cScale0 = this.cScale0 || this.primaryColor; this.cScale1 = this.cScale1 || this.secondaryColor; this.cScale2 = this.cScale2 || this.tertiaryColor; diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js index 707c342ef8..5ba63e1558 100644 --- a/packages/mermaid/src/themes/theme-dark.js +++ b/packages/mermaid/src/themes/theme-dark.js @@ -173,7 +173,7 @@ class Theme { this.cScale12 = this.cScale12 || '#010029'; /* Color Scale */ - /* Each color-set will have a background, a forgroupnd and a border color */ + /* Each color-set will have a background, a foreground and a border color */ this.cScale0 = this.cScale0 || this.primaryColor; this.cScale1 = this.cScale1 || this.secondaryColor; this.cScale2 = this.cScale2 || this.tertiaryColor; diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js index 54f0ad8a28..1cd2f505c6 100644 --- a/packages/mermaid/src/themes/theme-default.js +++ b/packages/mermaid/src/themes/theme-default.js @@ -121,7 +121,7 @@ class Theme { } updateColors() { /* Color Scale */ - /* Each color-set will have a background, a forgroupnd and a border color */ + /* Each color-set will have a background, a foreground and a border color */ this.cScale0 = this.cScale0 || this.primaryColor; this.cScale1 = this.cScale1 || this.secondaryColor; this.cScale2 = this.cScale2 || this.tertiaryColor; diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js index ee086ad109..bacdd5bd03 100644 --- a/packages/mermaid/src/themes/theme-forest.js +++ b/packages/mermaid/src/themes/theme-forest.js @@ -94,7 +94,7 @@ class Theme { this.errorTextColor = '#552222'; } updateColors() { - /* Each color-set will have a background, a forgroupnd and a border color */ + /* Each color-set will have a background, a foreground and a border color */ this.cScale0 = this.cScale0 || this.primaryColor; this.cScale1 = this.cScale1 || this.secondaryColor; this.cScale2 = this.cScale2 || this.tertiaryColor; diff --git a/packages/mermaid/src/themes/theme-neutral.js b/packages/mermaid/src/themes/theme-neutral.js index 7747a00dd3..f227103873 100644 --- a/packages/mermaid/src/themes/theme-neutral.js +++ b/packages/mermaid/src/themes/theme-neutral.js @@ -110,7 +110,7 @@ class Theme { this.border2 = this.contrast; /* Color Scale */ - /* Each color-set will have a background, a forgroupnd and a border color */ + /* Each color-set will have a background, a foreground and a border color */ this.cScale0 = this.cScale0 || '#555'; this.cScale1 = this.cScale1 || '#F4F4F4'; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 395e6fe2a5..eecda41e99 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -109,7 +109,7 @@ export const detectInit = function (text: string, config?: MermaidConfig): Merma * * ```mermaid * graph LR - * %%{somedirective}%% + * %%{someDirective}%% * a-->b * b-->c * c-->d @@ -215,7 +215,7 @@ export const formatUrl = (linkStr, config) => { /** * Runs a function * - * @param {string} functionName A dot seperated path to the function relative to the `window` + * @param {string} functionName A dot separated path to the function relative to the `window` * @param {...any} params Parameters to pass to the function */ export const runFunc = (functionName, ...params) => { From 85ba4549fb847656aa383d17cc5d83a146e69ffb Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 13:02:49 -0700 Subject: [PATCH 0360/1038] (minor) add "V2" to top level of v2 diagram spec --- packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js index 2f3b765da2..39ec0f0d2c 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js @@ -2,7 +2,7 @@ import { parser } from './parser/stateDiagram'; import stateDb from './stateDb'; import stateDiagram from './parser/stateDiagram.jison'; -describe('state diagram, ', function () { +describe('state diagram V2, ', function () { describe('when parsing an info graph it', function () { beforeEach(function () { parser.yy = stateDb; From 589dd7035655d2d93c9eca056781e22178e3548b Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 11 Oct 2022 13:03:55 -0700 Subject: [PATCH 0361/1038] common consts; add consts in stateRenderer-v2 (will esp. make theme usage easier) --- .../mermaid/src/diagrams/state/stateCommon.ts | 32 +++ .../mermaid/src/diagrams/state/stateDb.js | 36 ++-- .../src/diagrams/state/stateRenderer-v2.js | 185 ++++++++++++------ 3 files changed, 176 insertions(+), 77 deletions(-) create mode 100644 packages/mermaid/src/diagrams/state/stateCommon.ts diff --git a/packages/mermaid/src/diagrams/state/stateCommon.ts b/packages/mermaid/src/diagrams/state/stateCommon.ts new file mode 100644 index 0000000000..2df19eee8d --- /dev/null +++ b/packages/mermaid/src/diagrams/state/stateCommon.ts @@ -0,0 +1,32 @@ +/** + * Constants common to all State Diagram code + */ + +// default diagram direction +export const DEFAULT_DIAGRAM_DIRECTION = 'LR'; + +// default direction for any nested documents (composites) +export const DEFAULT_NESTED_DOC_DIR = 'TB'; + +// parsed statement type for a state +export const STMT_STATE = 'state'; +// parsed statement type for a relation +export const STMT_RELATION = 'relation'; +// parsed statement type for a classDef +export const STMT_CLASSDEF = 'classDef'; +// parsed statement type for applyClass +export const STMT_APPLYCLASS = 'applyClass'; + +export const DEFAULT_STATE_TYPE = 'default'; +export const DIVIDER_TYPE = 'divider'; + +export default { + DEFAULT_DIAGRAM_DIRECTION, + DEFAULT_NESTED_DOC_DIR, + STMT_STATE, + STMT_RELATION, + STMT_CLASSDEF, + STMT_APPLYCLASS, + DEFAULT_STATE_TYPE, + DIVIDER_TYPE, +}; diff --git a/packages/mermaid/src/diagrams/state/stateDb.js b/packages/mermaid/src/diagrams/state/stateDb.js index 1fa0ac98a9..5cc5ebc080 100644 --- a/packages/mermaid/src/diagrams/state/stateDb.js +++ b/packages/mermaid/src/diagrams/state/stateDb.js @@ -11,19 +11,27 @@ import { clear as commonClear, } from '../../commonDb'; -const DEFAULT_DIRECTION = 'TB'; +import { + DEFAULT_DIAGRAM_DIRECTION, + STMT_STATE, + STMT_RELATION, + STMT_CLASSDEF, + STMT_APPLYCLASS, + DEFAULT_STATE_TYPE, + DIVIDER_TYPE, +} from './stateCommon'; + const START_NODE = '[*]'; const START_TYPE = 'start'; const END_NODE = START_NODE; const END_TYPE = 'end'; -const DEFAULT_TYPE = 'default'; const COLOR_KEYWORD = 'color'; const FILL_KEYWORD = 'fill'; const BG_FILL = 'bgFill'; const STYLECLASS_SEP = ','; -let direction = DEFAULT_DIRECTION; +let direction = DEFAULT_DIAGRAM_DIRECTION; let rootDoc = []; let classes = []; // style classes defined by a classDef @@ -69,11 +77,11 @@ const setRootDoc = (o) => { const getRootDoc = () => rootDoc; const docTranslator = (parent, node, first) => { - if (node.stmt === 'relation') { + if (node.stmt === STMT_RELATION) { docTranslator(parent, node.state1, true); docTranslator(parent, node.state2, false); } else { - if (node.stmt === 'state') { + if (node.stmt === STMT_STATE) { if (node.id === '[*]') { node.id = first ? parent.id + '_start' : parent.id + '_end'; node.start = first; @@ -86,7 +94,7 @@ const docTranslator = (parent, node, first) => { let currentDoc = []; let i; for (i = 0; i < node.doc.length; i++) { - if (node.doc[i].type === 'divider') { + if (node.doc[i].type === DIVIDER_TYPE) { // debugger; const newNode = clone(node.doc[i]); newNode.doc = clone(currentDoc); @@ -100,7 +108,7 @@ const docTranslator = (parent, node, first) => { // If any divider was encountered if (doc.length > 0 && currentDoc.length > 0) { const newNode = { - stmt: 'state', + stmt: STMT_STATE, id: generateId(), type: 'divider', doc: clone(currentDoc), @@ -149,7 +157,7 @@ const extract = (_doc) => { doc.forEach((item) => { switch (item.stmt) { - case 'state': + case STMT_STATE: addState( item.id, item.type, @@ -161,13 +169,13 @@ const extract = (_doc) => { item.textStyles ); break; - case 'relation': + case STMT_RELATION: addRelation(item.state1, item.state2, item.description); break; - case 'classDef': + case STMT_CLASSDEF: addStyleClass(item.id, item.classes); break; - case 'applyClass': + case STMT_APPLYCLASS: setCssClass(item.id, item.styleClass); break; } @@ -188,7 +196,7 @@ const extract = (_doc) => { */ export const addState = function ( id, - type = DEFAULT_TYPE, + type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, @@ -309,7 +317,7 @@ function startIdIfNeeded(id = '') { * @param {string} type * @returns {string} - the type that should be used */ -function startTypeIfNeeded(id = '', type = DEFAULT_TYPE) { +function startTypeIfNeeded(id = '', type = DEFAULT_STATE_TYPE) { return id === START_NODE ? START_TYPE : type; } @@ -338,7 +346,7 @@ function endIdIfNeeded(id = '') { * @param {string} type * @returns {string} - the type that should be used */ -function endTypeIfNeeded(id = '', type = DEFAULT_TYPE) { +function endTypeIfNeeded(id = '', type = DEFAULT_STATE_TYPE) { return id === END_NODE ? END_TYPE : type; } diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 84b62b2ca8..c4c1cb7f04 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -6,9 +6,58 @@ import { log } from '../../logger'; import { configureSvgSize } from '../../setupGraphViewbox'; import common from '../common/common'; import addSVGAccessibilityFields from '../../accessibility'; - -const DEFAULT_DIR = 'TD'; - +import { + DEFAULT_DIAGRAM_DIRECTION, + DEFAULT_NESTED_DOC_DIR, + STMT_STATE, + STMT_RELATION, + DEFAULT_STATE_TYPE, + DIVIDER_TYPE, +} from './stateCommon'; + +// -------------------------------------- +// Shapes +const SHAPE_STATE = 'rect'; +const SHAPE_STATE_WITH_DESC = 'rectWithTitle'; +const SHAPE_START = 'start'; +const SHAPE_END = 'end'; +const SHAPE_DIVIDER = 'divider'; +const SHAPE_GROUP = 'roundedWithTitle'; +const SHAPE_NOTE = 'note'; +const SHAPE_NOTEGROUP = 'noteGroup'; + +// -------------------------------------- +// CSS classes +const CSS_DIAGRAM = 'statediagram'; +const CSS_STATE = 'state'; +const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`; +const CSS_EDGE = 'transition'; +const CSS_NOTE = 'note'; +const CSS_NOTE_EDGE = 'note-edge'; +const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`; +const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`; +const CSS_CLUSTER = 'cluster'; +const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`; +const CSS_CLUSTER_ALT = 'cluster-alt'; +const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`; + +// -------------------------------------- +// DOM and element IDs +const PARENT = 'parent'; +const NOTE = 'note'; +const DOMID_STATE = 'state'; +const DOMID_TYPE_SPACER = '----'; +const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`; +const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`; +// -------------------------------------- +// Graph edge settings +const G_EDGE_STYLE = 'fill:none'; +const G_EDGE_ARROWHEADSTYLE = 'fill: #333'; +const G_EDGE_LABELPOS = 'c'; +const G_EDGE_LABELTYPE = 'text'; +const G_EDGE_THICKNESS = 'normal'; + +// -------------------------------------- // When information is parsed and processed (extracted) by stateDb.extract() // These are globals so the information can be accessed as needed (e.g. in setUpNode, etc.) let diagramStates = []; @@ -72,6 +121,21 @@ function getClassesFromDbInfo(dbInfoItem) { } } +/** + * Create a standard string for the dom ID of an item. + * If a type is given, insert that before the counter, preceded by the type spacer + * + * @param itemId + * @param counter + * @param type + * @param typeSpacer + * @returns {string} + */ +export function stateDomId(itemId = '', counter = 0, type = '', typeSpacer = DOMID_TYPE_SPACER) { + const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : ''; + return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`; +} + /** * Create a graph node based on the statement information * @@ -80,23 +144,16 @@ function getClassesFromDbInfo(dbInfoItem) { * @param {object} parsedItem - parsed statement item * @param {object} diagramDb * @param {boolean} altFlag - for clusters, add the "statediagram-cluster-alt" CSS class - * @todo This duplicates some of what is done in stateDb.js extract method */ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => { const itemId = parsedItem.id; const classStr = getClassesFromDbInfo(diagramStates[itemId]); if (itemId !== 'root') { - let shape = 'rect'; - if (parsedItem.start === true) { - shape = 'start'; - } - if (parsedItem.start === false) { - shape = 'end'; - } - if (parsedItem.type !== 'default') { - shape = parsedItem.type; - } + let shape = SHAPE_STATE; + if (parsedItem.start === true) shape = SHAPE_START; + if (parsedItem.start === false) shape = SHAPE_END; + if (parsedItem.type !== DEFAULT_STATE_TYPE) shape = parsedItem.type; // Add the node to our list (nodeDb) if (!nodeDb[itemId]) { @@ -104,55 +161,56 @@ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => { id: itemId, shape, description: common.sanitizeText(itemId, getConfig()), - classes: classStr + ' statediagram-state', + classes: `${classStr} ${CSS_DIAGRAM_STATE}`, }; } const newNode = nodeDb[itemId]; + // Save data for description and group so that for instance a statement without description overwrites + // one with description @todo TODO What does this mean? If important, add a test for it + // Build of the array of description strings if (parsedItem.description) { if (Array.isArray(newNode.description)) { // There already is an array of strings,add to it - newNode.shape = 'rectWithTitle'; + newNode.shape = SHAPE_STATE_WITH_DESC; newNode.description.push(parsedItem.description); } else { if (newNode.description.length > 0) { // if there is a description already transform it to an array - newNode.shape = 'rectWithTitle'; + newNode.shape = SHAPE_STATE_WITH_DESC; if (newNode.description === itemId) { - // If the previous description was the is, remove it + // If the previous description was this, remove it newNode.description = [parsedItem.description]; } else { newNode.description = [newNode.description, parsedItem.description]; } } else { - newNode.shape = 'rect'; + newNode.shape = SHAPE_STATE; newNode.description = parsedItem.description; } } newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig()); } - // update the node shape - if (newNode.description.length === 1 && newNode.shape === 'rectWithTitle') { - newNode.shape = 'rect'; + // If there's only 1 description entry, just use a regular state shape + if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) { + newNode.shape = SHAPE_STATE; } - // Save data for description and group so that for instance a statement without description overwrites - // one with description - // group if (!newNode.type && parsedItem.doc) { log.info('Setting cluster for ', itemId, getDir(parsedItem)); newNode.type = 'group'; newNode.dir = getDir(parsedItem); - newNode.shape = parsedItem.type === 'divider' ? 'divider' : 'roundedWithTitle'; - + newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP; newNode.classes = newNode.classes + ' ' + - (altFlag ? 'statediagram-cluster statediagram-cluster-alt' : 'statediagram-cluster'); + CSS_DIAGRAM_CLUSTER + + ' ' + + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : ''); } // This is what will be added to the graph @@ -167,7 +225,7 @@ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => { style: '', //styles.style, id: itemId, dir: newNode.dir, - domId: 'state-' + itemId + '-' + graphItemCount, + domId: stateDomId(itemId, graphItemCount), type: newNode.type, padding: 15, //getConfig().flowchart.padding }; @@ -176,35 +234,36 @@ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => { // Todo: set random id const noteData = { labelStyle: '', - shape: 'note', + shape: SHAPE_NOTE, labelText: parsedItem.note.text, - classes: 'statediagram-note', //classStr, + classes: CSS_DIAGRAM_NOTE, style: '', // styles.style, - id: itemId + '----note-' + graphItemCount, - domId: 'state-' + itemId + '----note-' + graphItemCount, + id: itemId + NOTE_ID + '-' + graphItemCount, + domId: stateDomId(itemId, graphItemCount, NOTE), type: newNode.type, padding: 15, //getConfig().flowchart.padding }; const groupData = { labelStyle: '', - shape: 'noteGroup', + shape: SHAPE_NOTEGROUP, labelText: parsedItem.note.text, - classes: newNode.classes, //classStr, + classes: newNode.classes, style: '', // styles.style, - id: itemId + '----parent', - domId: 'state-' + itemId + '----parent-' + graphItemCount, + id: itemId + PARENT_ID, + domId: stateDomId(itemId, graphItemCount, PARENT), type: 'group', padding: 0, //getConfig().flowchart.padding }; graphItemCount++; - g.setNode(itemId + '----parent', groupData); + const parentNodeId = itemId + PARENT_ID; + g.setNode(parentNodeId, groupData); g.setNode(noteData.id, noteData); g.setNode(itemId, nodeData); - g.setParent(itemId, itemId + '----parent'); - g.setParent(noteData.id, itemId + '----parent'); + g.setParent(itemId, parentNodeId); + g.setParent(noteData.id, parentNodeId); let from = itemId; let to = noteData.id; @@ -216,13 +275,13 @@ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => { g.setEdge(from, to, { arrowhead: 'none', arrowType: '', - style: 'fill:none', + style: G_EDGE_STYLE, labelStyle: '', - classes: 'transition note-edge', - arrowheadStyle: 'fill: #333', - labelpos: 'c', - labelType: 'text', - thickness: 'normal', + classes: CSS_EDGE_NOTE_EDGE, + arrowheadStyle: G_EDGE_ARROWHEADSTYLE, + labelpos: G_EDGE_LABELPOS, + labelType: G_EDGE_LABELTYPE, + thickness: G_EDGE_THICKNESS, }); } else { g.setNode(itemId, nodeData); @@ -257,13 +316,13 @@ const setupDoc = (g, parentParsedItem, doc, diagramDb, altFlag) => { log.trace('items', doc); doc.forEach((item) => { switch (item.stmt) { - case 'state': + case STMT_STATE: setupNode(g, parentParsedItem, item, diagramDb, altFlag); break; - case 'default': + case DEFAULT_STATE_TYPE: setupNode(g, parentParsedItem, item, diagramDb, altFlag); break; - case 'relation': + case STMT_RELATION: { setupNode(g, parentParsedItem, item.state1, diagramDb, altFlag); setupNode(g, parentParsedItem, item.state2, diagramDb, altFlag); @@ -271,14 +330,14 @@ const setupDoc = (g, parentParsedItem, doc, diagramDb, altFlag) => { id: 'edge' + graphItemCount, arrowhead: 'normal', arrowTypeEnd: 'arrow_barb', - style: 'fill:none', + style: G_EDGE_STYLE, labelStyle: '', label: common.sanitizeText(item.description, getConfig()), - arrowheadStyle: 'fill: #333', - labelpos: 'c', - labelType: 'text', - thickness: 'normal', - classes: 'transition', + arrowheadStyle: G_EDGE_ARROWHEADSTYLE, + labelpos: G_EDGE_LABELPOS, + labelType: G_EDGE_LABELTYPE, + thickness: G_EDGE_THICKNESS, + classes: CSS_EDGE, }; g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount); graphItemCount++; @@ -289,14 +348,14 @@ const setupDoc = (g, parentParsedItem, doc, diagramDb, altFlag) => { }; /** - * Get the direction from the statement items. Default is TB (top to bottom). + * Get the direction from the statement items. * Look through all of the documents (docs) in the parsedItems - * + * Because is a _document_ direction, the default direction is not necessarily the same as the overall default _diagram_ direction. * @param {object[]} parsedItem - the parsed statement item to look through - * @param [defaultDir='TB'] - the direction to use if none is found + * @param [defaultDir=DEFAULT_NESTED_DOC_DIR] - the direction to use if none is found * @returns {string} */ -const getDir = (parsedItem, defaultDir = DEFAULT_DIR) => { +const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => { let dir = defaultDir; if (parsedItem.doc) { for (let i = 0; i < parsedItem.doc.length; i++) { @@ -323,7 +382,7 @@ export const draw = function (text, id, _version, diag) { nodeDb = {}; // Fetch the default direction, use TD if none was found let dir = diag.db.getDirection(); - if (typeof dir === 'undefined') dir = DEFAULT_DIR; + if (typeof dir === 'undefined') dir = DEFAULT_DIAGRAM_DIRECTION; const { securityLevel, state: conf } = getConfig(); const nodeSpacing = conf.nodeSpacing || 50; @@ -370,7 +429,7 @@ export const draw = function (text, id, _version, diag) { // Run the renderer. This is what draws the final graph. const element = root.select('#' + id + ' g'); - render(element, g, ['barb'], 'statediagram', id); + render(element, g, ['barb'], CSS_DIAGRAM, id); const padding = 8; @@ -380,7 +439,7 @@ export const draw = function (text, id, _version, diag) { const height = bounds.height + padding * 2; // Zoom in a bit - svg.attr('class', 'statediagram'); + svg.attr('class', CSS_DIAGRAM); const svgBounds = svg.node().getBBox(); @@ -400,7 +459,7 @@ export const draw = function (text, id, _version, diag) { // Get dimensions of label const dim = label.getBBox(); - const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + const rect = document.createElementNS('http://www.w3.org/2000/svg', SHAPE_STATE); rect.setAttribute('rx', 0); rect.setAttribute('ry', 0); rect.setAttribute('width', dim.width); From e5c85cbc64450c7fcb8d8db5fdeec502d19f37e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 20:56:31 +0000 Subject: [PATCH 0362/1038] chore(deps): update actions/checkout action to v3 --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 1e08a5c16b..f75fd15960 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,7 +16,7 @@ jobs: name: 'Docs: Spellcheck' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 name: Check out the code - uses: actions/setup-node@v1 name: Setup node From 44706bc32ecb0cda6a9596bad69fc95e32bd153e Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Tue, 11 Oct 2022 19:02:43 -0400 Subject: [PATCH 0363/1038] add statement aliases for ER diagram --- .../mermaid/src/diagrams/er/parser/erDiagram.jison | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison index 6294599b56..3af56221c5 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison @@ -36,15 +36,29 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili <block>[\n]+ /* nothing */ <block>"}" { this.popState(); return 'BLOCK_STOP'; } <block>. return yytext[0]; + +"one or zero" return 'ZERO_OR_ONE'; +"one or more" return 'ONE_OR_MORE'; +"one or many" return 'ONE_OR_MORE'; \|o return 'ZERO_OR_ONE'; +"zero or one" return 'ZERO_OR_ONE'; +"zero or more" return 'ZERO_OR_MORE'; +"zero or many" return 'ZERO_OR_MORE'; \}o return 'ZERO_OR_MORE'; +"many(0)" return 'ZERO_OR_MORE'; +"many(1)" return 'ONE_OR_MORE'; +"many" return 'ZERO_OR_MORE'; \}\| return 'ONE_OR_MORE'; +"one" return 'ONLY_ONE'; +"only one" return 'ONLY_ONE'; \|\| return 'ONLY_ONE'; o\| return 'ZERO_OR_ONE'; o\{ return 'ZERO_OR_MORE'; \|\{ return 'ONE_OR_MORE'; \.\. return 'NON_IDENTIFYING'; \-\- return 'IDENTIFYING'; +"to" return 'IDENTIFYING'; +"optionally to" return 'NON_IDENTIFYING'; \.\- return 'NON_IDENTIFYING'; \-\. return 'NON_IDENTIFYING'; [A-Za-z][A-Za-z0-9\-_]* return 'ALPHANUM'; From 3e1b23505544b30110646ceb390810f859758ece Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Tue, 11 Oct 2022 19:37:05 -0400 Subject: [PATCH 0364/1038] add tests --- .../src/diagrams/er/parser/erDiagram.spec.js | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index 1d891ffeab..e7540fcece 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -532,18 +532,90 @@ describe('when parsing ER diagram it...', function () { expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ONE_OR_MORE); }); + it('should handle zero-or-one-to-zero-or-more relationships (aliases "one or zero" and "zero or many")', function () { + erDiagram.parser.parse('erDiagram\nA one or zero to many B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ZERO_OR_MORE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ZERO_OR_ONE); + }); + + it('should handle one-or-more-to-zero-or-one relationships (aliases "one or many" and "zero or one")', function () { + erDiagram.parser.parse('erDiagram\nA one or many optionally to zero or one B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ZERO_OR_ONE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ONE_OR_MORE); + }); + + it('should handle zero-or-more-to-zero-or-more relationships (aliases "zero or more" and "zero or many")', function () { + erDiagram.parser.parse('erDiagram\nA zero or more to zero or many B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ZERO_OR_MORE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ZERO_OR_MORE); + }); + + it('should handle zero-or-more-to-one-or-more relationships (aliases "many(0)" and "many(1)")', function () { + erDiagram.parser.parse('erDiagram\nA many(0) to many(1) B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ONE_OR_MORE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ZERO_OR_MORE); + }); + + it('should handle zero-or-more-to-only-one relationships (aliases "many(0)" and "many(1)")', function () { + erDiagram.parser.parse('erDiagram\nA many optionally to one B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ONLY_ONE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ZERO_OR_MORE); + }); + + it('should handle only-one-to-only-one relationships (aliases "only one")', function () { + erDiagram.parser.parse('erDiagram\nA only one optionally to only one B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ONLY_ONE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ONLY_ONE); + }); + it('should represent identifying relationships properly', function () { erDiagram.parser.parse('erDiagram\nHOUSE ||--|{ ROOM : contains'); const rels = erDb.getRelationships(); expect(rels[0].relSpec.relType).toBe(erDb.Identification.IDENTIFYING); }); + it('should represent identifying relationships properly (alias "to")', function () { + erDiagram.parser.parse('erDiagram\nHOUSE one to one ROOM : contains'); + const rels = erDb.getRelationships(); + expect(rels[0].relSpec.relType).toBe(erDb.Identification.IDENTIFYING); + }); + it('should represent non-identifying relationships properly', function () { erDiagram.parser.parse('erDiagram\n PERSON ||..o{ POSSESSION : owns'); const rels = erDb.getRelationships(); expect(rels[0].relSpec.relType).toBe(erDb.Identification.NON_IDENTIFYING); }); + it('should represent non-identifying relationships properly (alias "optionally to")', function () { + erDiagram.parser.parse('erDiagram\n PERSON many optionally to many POSSESSION : owns'); + const rels = erDb.getRelationships(); + expect(rels[0].relSpec.relType).toBe(erDb.Identification.NON_IDENTIFYING); + }); + it('should not accept a syntax error', function () { const doc = 'erDiagram\nA xxx B : has'; expect(() => { From 4fc3cc7aff7317929a610e0856101ac729056485 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Tue, 11 Oct 2022 21:57:00 -0400 Subject: [PATCH 0365/1038] add aliases '0+', '1+' and '1' --- .../src/diagrams/er/parser/erDiagram.jison | 3 +++ .../src/diagrams/er/parser/erDiagram.spec.js | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison index 3af56221c5..f0411fd724 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison @@ -40,10 +40,12 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili "one or zero" return 'ZERO_OR_ONE'; "one or more" return 'ONE_OR_MORE'; "one or many" return 'ONE_OR_MORE'; +"1+" return 'ONE_OR_MORE'; \|o return 'ZERO_OR_ONE'; "zero or one" return 'ZERO_OR_ONE'; "zero or more" return 'ZERO_OR_MORE'; "zero or many" return 'ZERO_OR_MORE'; +"0+" return 'ZERO_OR_MORE'; \}o return 'ZERO_OR_MORE'; "many(0)" return 'ZERO_OR_MORE'; "many(1)" return 'ONE_OR_MORE'; @@ -51,6 +53,7 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili \}\| return 'ONE_OR_MORE'; "one" return 'ONLY_ONE'; "only one" return 'ONLY_ONE'; +"1" return 'ONLY_ONE'; \|\| return 'ONLY_ONE'; o\| return 'ZERO_OR_ONE'; o\{ return 'ZERO_OR_MORE'; diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index e7540fcece..eb738fe4b2 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -582,16 +582,26 @@ describe('when parsing ER diagram it...', function () { expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ZERO_OR_MORE); }); - it('should handle only-one-to-only-one relationships (aliases "only one")', function () { - erDiagram.parser.parse('erDiagram\nA only one optionally to only one B : has'); + it('should handle only-one-to-only-one relationships (aliases "only one" and "1+")', function () { + erDiagram.parser.parse('erDiagram\nA only one optionally to 1+ B : has'); const rels = erDb.getRelationships(); expect(Object.keys(erDb.getEntities()).length).toBe(2); expect(rels.length).toBe(1); - expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ONLY_ONE); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ONE_OR_MORE); expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ONLY_ONE); }); + it('should handle zero-or-more-to-only-one relationships (aliases "0+" and "1")', function () { + erDiagram.parser.parse('erDiagram\nA 0+ optionally to 1 B : has'); + const rels = erDb.getRelationships(); + + expect(Object.keys(erDb.getEntities()).length).toBe(2); + expect(rels.length).toBe(1); + expect(rels[0].relSpec.cardA).toBe(erDb.Cardinality.ONLY_ONE); + expect(rels[0].relSpec.cardB).toBe(erDb.Cardinality.ZERO_OR_MORE); + }); + it('should represent identifying relationships properly', function () { erDiagram.parser.parse('erDiagram\nHOUSE ||--|{ ROOM : contains'); const rels = erDb.getRelationships(); From 627ddc07740ca2bcc5fa1045762ae0d8df93c841 Mon Sep 17 00:00:00 2001 From: uttk <46495635+uttk@users.noreply.github.com> Date: Wed, 12 Oct 2022 02:14:56 +0000 Subject: [PATCH 0366/1038] fix: Fix useMaxWidth option for git graph --- packages/mermaid/src/diagrams/git/gitGraphRenderer.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js index e15e43ac3b..0b52b0360f 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js @@ -495,7 +495,6 @@ const drawBranches = (svg, branches) => { */ export const draw = function (txt, id, ver, diagObj) { clear(); - const conf = getConfig(); const gitGraphConfig = getConfig().gitGraph; // try { log.debug('in gitgraph renderer', txt + '\n', 'id:', id, ver); @@ -523,7 +522,7 @@ export const draw = function (txt, id, ver, diagObj) { drawCommits(diagram, allCommitsDict, true); // Setup the view box and size of the svg element - setupGraphViewbox(undefined, diagram, gitGraphConfig.diagramPadding, conf.useMaxWidth); + setupGraphViewbox(undefined, diagram, gitGraphConfig.diagramPadding, gitGraphConfig.useMaxWidth); }; export default { From 3240f8ae566e37f51955c68dd80d46d1f58dcf70 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 12 Oct 2022 11:56:39 +0530 Subject: [PATCH 0367/1038] feat: loadExternalDiagramsAtStartup --- packages/mermaid/package.json | 4 +- packages/mermaid/src/config.type.ts | 1 + packages/mermaid/src/mermaid.ts | 23 ++++++- pnpm-lock.yaml | 101 ++-------------------------- 4 files changed, 30 insertions(+), 99 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 6ce4f8109b..76648977dd 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -72,7 +72,8 @@ "lodash": "^4.17.21", "moment-mini": "^2.24.0", "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.2" + "stylis": "^4.1.2", + "uuid": "^9.0.0" }, "devDependencies": { "@applitools/eyes-cypress": "^3.25.7", @@ -86,6 +87,7 @@ "@types/lodash": "^4.14.185", "@types/prettier": "^2.7.0", "@types/stylis": "^4.0.2", + "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^5.37.0", "@typescript-eslint/parser": "^5.37.0", "concurrently": "^7.4.0", diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts index 2343bdd34f..222b05de87 100644 --- a/packages/mermaid/src/config.type.ts +++ b/packages/mermaid/src/config.type.ts @@ -4,6 +4,7 @@ import DOMPurify from 'dompurify'; export interface MermaidConfig { lazyLoadedDiagrams?: string[]; + loadExternalDiagramsAtStartup?: boolean; theme?: string; themeVariables?: any; themeCSS?: string; diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 05dfe1bcd0..7a280fa31f 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -8,6 +8,7 @@ import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; import { addDetector } from './diagram-api/detectType'; import { isDetailedError } from './utils'; +import { registerDiagram } from './diagram-api/diagramAPI'; /** * ## init @@ -178,6 +179,22 @@ const registerLazyLoadedDiagrams = async (conf: MermaidConfig) => { await lazyLoadingPromise; }; +const loadExternalDiagrams = async (conf: MermaidConfig) => { + // Only lazy load once + // TODO: This is a hack. We should either throw error when new diagrams are added, or load them anyway. + if (lazyLoadingPromise === undefined) { + // Load all lazy loaded diagrams in parallel + lazyLoadingPromise = Promise.allSettled( + (conf?.lazyLoadedDiagrams ?? []).map(async (url: string) => { + const { id, detector, loadDiagram } = await import(url); + const { diagram } = await loadDiagram(); + registerDiagram(id, diagram, detector, diagram.injectUtils); + }) + ); + } + await lazyLoadingPromise; +}; + /** * @deprecated This is an internal function and should not be used. Will be removed in v10. */ @@ -286,7 +303,11 @@ const initialize = function (config: MermaidConfig) { * @deprecated This is an internal function and should not be used. Will be removed in v10. */ const initializeAsync = async function (config: MermaidConfig) { - await registerLazyLoadedDiagrams(config); + if (config.loadExternalDiagramsAtStartup) { + await loadExternalDiagrams(config); + } else { + await registerLazyLoadedDiagrams(config); + } mermaidAPI.initialize(config); }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2f88060c6..63a1f3d432 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,7 +27,6 @@ importers: '@vitest/coverage-c8': ^0.23.4 '@vitest/ui': ^0.23.4 concurrently: ^7.4.0 - coveralls: ^3.1.1 cypress: ^10.0.0 cypress-image-snapshot: ^4.0.1 d3: ^7.0.0 @@ -112,7 +111,6 @@ importers: '@vitest/coverage-c8': 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna '@vitest/ui': 0.23.4 concurrently: 7.4.0 - coveralls: 3.1.1 cypress: 10.8.0 cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1 documentation: 13.2.0 @@ -164,10 +162,10 @@ importers: '@types/lodash': ^4.14.185 '@types/prettier': ^2.7.0 '@types/stylis': ^4.0.2 + '@types/uuid': ^8.3.4 '@typescript-eslint/eslint-plugin': ^5.37.0 '@typescript-eslint/parser': ^5.37.0 concurrently: ^7.4.0 - coveralls: ^3.1.1 cypress: ^10.0.0 cypress-image-snapshot: ^4.0.1 d3: ^7.0.0 @@ -209,6 +207,7 @@ importers: ts-node: ^10.9.1 typescript: ^4.8.3 unist-util-flatmap: ^1.0.0 + uuid: ^9.0.0 dependencies: '@braintree/sanitize-url': 6.0.0 d3: 7.6.1 @@ -222,6 +221,7 @@ importers: moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.2 + uuid: 9.0.0 devDependencies: '@applitools/eyes-cypress': 3.27.1 '@commitlint/cli': 17.1.2 @@ -234,10 +234,10 @@ importers: '@types/lodash': 4.14.185 '@types/prettier': 2.7.0 '@types/stylis': 4.0.2 + '@types/uuid': 8.3.4 '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha concurrently: 7.4.0 - coveralls: 3.1.1 cypress: 10.8.0 cypress-image-snapshot: 4.0.1_cypress@10.8.0 documentation: 13.2.0 @@ -3273,7 +3273,6 @@ packages: /@types/uuid/8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - dev: false /@types/web-bluetooth/0.0.15: resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} @@ -5133,18 +5132,6 @@ packages: yaml: 1.10.2 dev: true - /coveralls/3.1.1: - resolution: {integrity: sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==} - engines: {node: '>=6'} - hasBin: true - dependencies: - js-yaml: 3.14.1 - lcov-parse: 1.0.0 - log-driver: 1.2.7 - minimist: 1.2.6 - request: 2.88.2 - dev: true - /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -7772,20 +7759,6 @@ packages: uglify-js: 3.17.1 dev: true - /har-schema/2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: true - - /har-validator/5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: true - /hard-rejection/2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -7979,15 +7952,6 @@ packages: - supports-color dev: true - /http-signature/1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.17.0 - dev: true - /http-signature/1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} engines: {node: '>=0.10'} @@ -9186,16 +9150,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsprim/1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: true - /jsprim/2.0.2: resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} engines: {'0': node >=0.6.0} @@ -9284,11 +9238,6 @@ packages: readable-stream: 2.3.7 dev: true - /lcov-parse/1.0.0: - resolution: {integrity: sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==} - hasBin: true - dev: true - /lead/1.0.0: resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} engines: {node: '>= 0.10'} @@ -9466,11 +9415,6 @@ packages: /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-driver/1.2.7: - resolution: {integrity: sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==} - engines: {node: '>=0.8.6'} - dev: true - /log-symbols/4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -10248,10 +10192,6 @@ packages: resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} dev: true - /oauth-sign/0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: true - /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -11305,33 +11245,6 @@ packages: throttleit: 1.0.0 dev: true - /request/2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.11.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: true - /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -12843,12 +12756,6 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /uuid/3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true - /uuid/8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true From 24605784f2ede3c72277b2b3e19242ae4aff091a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 12 Oct 2022 12:01:54 +0530 Subject: [PATCH 0368/1038] chore: Update lockfile --- pnpm-lock.yaml | 1524 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 1453 insertions(+), 71 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 63a1f3d432..6e8a66ae1f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,6 +27,7 @@ importers: '@vitest/coverage-c8': ^0.23.4 '@vitest/ui': ^0.23.4 concurrently: ^7.4.0 + coveralls: ^3.1.1 cypress: ^10.0.0 cypress-image-snapshot: ^4.0.1 d3: ^7.0.0 @@ -108,9 +109,10 @@ importers: '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@vitest/coverage-c8': 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna + '@vitest/coverage-c8': 0.23.4_dnicfi6n7tywwajisjusxhbdzm '@vitest/ui': 0.23.4 concurrently: 7.4.0 + coveralls: 3.1.1 cypress: 10.8.0 cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1 documentation: 13.2.0 @@ -143,10 +145,10 @@ importers: typescript: 4.8.4 unist-util-flatmap: 1.0.0 vite: 3.1.4 - vitepress: 1.0.0-alpha.19 - vitepress-plugin-mermaid: 2.0.8_vitepress@1.0.0-alpha.19 - vitepress-plugin-search: 1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4 - vitest: 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-mermaid: 2.0.8_ml5vzxpqibyfsid5kdls3ch6aa + vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y + vitest: 0.23.4_dnicfi6n7tywwajisjusxhbdzm packages/mermaid: specifiers: @@ -166,6 +168,7 @@ importers: '@typescript-eslint/eslint-plugin': ^5.37.0 '@typescript-eslint/parser': ^5.37.0 concurrently: ^7.4.0 + coveralls: ^3.1.1 cypress: ^10.0.0 cypress-image-snapshot: ^4.0.1 d3: ^7.0.0 @@ -238,15 +241,16 @@ importers: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha concurrently: 7.4.0 + coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0 + cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 documentation: 13.2.0 esbuild: 0.15.8 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -265,7 +269,7 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_typescript@4.8.3 + ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a typescript: 4.8.3 unist-util-flatmap: 1.0.0 @@ -306,13 +310,14 @@ packages: '@algolia/autocomplete-shared': 1.7.1 dev: true - /@algolia/autocomplete-preset-algolia/1.7.1_algoliasearch@4.14.2: + /@algolia/autocomplete-preset-algolia/1.7.1_qs6lk5nhygj2o3hj4sf6xnr724: resolution: {integrity: sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==} peerDependencies: '@algolia/client-search': ^4.9.1 algoliasearch: ^4.9.1 dependencies: '@algolia/autocomplete-shared': 1.7.1 + '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true @@ -2125,7 +2130,15 @@ packages: /@braintree/sanitize-url/6.0.0: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} - dev: false + + /@cnakazawa/watch/1.0.4: + resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} + engines: {node: '>=0.1.95'} + hasBin: true + dependencies: + exec-sh: 0.3.6 + minimist: 1.2.6 + dev: true /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -2340,10 +2353,10 @@ packages: resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} dev: true - /@docsearch/js/3.2.1: + /@docsearch/js/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} dependencies: - '@docsearch/react': 3.2.1 + '@docsearch/react': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y preact: 10.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -2352,7 +2365,7 @@ packages: - react-dom dev: true - /@docsearch/react/3.2.1: + /@docsearch/react/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -2367,7 +2380,7 @@ packages: optional: true dependencies: '@algolia/autocomplete-core': 1.7.1 - '@algolia/autocomplete-preset-algolia': 1.7.1_algoliasearch@4.14.2 + '@algolia/autocomplete-preset-algolia': 1.7.1_qs6lk5nhygj2o3hj4sf6xnr724 '@docsearch/css': 3.2.1 algoliasearch: 4.14.2 transitivePeerDependencies: @@ -2493,6 +2506,18 @@ packages: engines: {node: '>=8'} dev: true + /@jest/console/26.6.2: + resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + jest-message-util: 26.6.2 + jest-util: 26.6.2 + slash: 3.0.0 + dev: true + /@jest/console/29.1.0: resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2505,6 +2530,46 @@ packages: slash: 3.0.0 dev: true + /@jest/core/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/reporters': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-changed-files: 26.6.2 + jest-config: 26.6.3_ts-node@10.9.1 + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-resolve-dependencies: 26.6.3 + jest-runner: 26.6.3_ts-node@10.9.1 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + jest-watcher: 26.6.2 + micromatch: 4.0.5 + p-each-series: 2.2.0 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /@jest/core/29.1.1_ts-node@10.9.1: resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2547,6 +2612,16 @@ packages: - ts-node dev: true + /@jest/environment/26.6.2: + resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + dev: true + /@jest/environment/29.1.1: resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2574,6 +2649,18 @@ packages: - supports-color dev: true + /@jest/fake-timers/26.6.2: + resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@sinonjs/fake-timers': 6.0.1 + '@types/node': 18.8.1 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-util: 26.6.2 + dev: true + /@jest/fake-timers/29.1.1: resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2586,6 +2673,15 @@ packages: jest-util: 29.1.0 dev: true + /@jest/globals/26.6.2: + resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/types': 26.6.2 + expect: 26.6.2 + dev: true + /@jest/globals/29.1.1: resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2598,6 +2694,40 @@ packages: - supports-color dev: true + /@jest/reporters/26.6.2: + resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-haste-map: 26.6.2 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 7.1.2 + optionalDependencies: + node-notifier: 8.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/reporters/29.1.0: resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2643,6 +2773,15 @@ packages: '@sinclair/typebox': 0.24.43 dev: true + /@jest/source-map/26.6.2: + resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} + engines: {node: '>= 10.14.2'} + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.10 + source-map: 0.6.1 + dev: true + /@jest/source-map/29.0.0: resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2652,6 +2791,16 @@ packages: graceful-fs: 4.2.10 dev: true + /@jest/test-result/26.6.2: + resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/types': 26.6.2 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + /@jest/test-result/29.1.0: resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2662,6 +2811,23 @@ packages: collect-v8-coverage: 1.0.1 dev: true + /@jest/test-sequencer/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/test-result': 26.6.2 + graceful-fs: 4.2.10 + jest-haste-map: 26.6.2 + jest-runner: 26.6.3_ts-node@10.9.1 + jest-runtime: 26.6.3_ts-node@10.9.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /@jest/test-sequencer/29.1.0: resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2672,6 +2838,29 @@ packages: slash: 3.0.0 dev: true + /@jest/transform/26.6.2: + resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/core': 7.12.3 + '@jest/types': 26.6.2 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.8.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 26.6.2 + jest-regex-util: 26.0.0 + jest-util: 26.6.2 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/transform/29.1.0: resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2695,6 +2884,17 @@ packages: - supports-color dev: true + /@jest/types/26.6.2: + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.8.1 + '@types/yargs': 15.0.14 + chalk: 4.1.2 + dev: true + /@jest/types/29.1.0: resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2769,6 +2969,14 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -2798,6 +3006,12 @@ packages: type-detect: 4.0.8 dev: true + /@sinonjs/fake-timers/6.0.1: + resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} + dependencies: + '@sinonjs/commons': 1.8.3 + dev: true + /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: @@ -2892,6 +3106,12 @@ packages: resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true + /@types/concat-stream/1.6.1: + resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -3117,6 +3337,12 @@ packages: '@types/serve-static': 1.15.0 dev: true + /@types/form-data/0.0.33: + resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/geojson/7946.0.10: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true @@ -3191,6 +3417,10 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true + /@types/node/10.17.60: + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + dev: true + /@types/node/14.18.29: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true @@ -3206,6 +3436,10 @@ packages: /@types/node/18.8.1: resolution: {integrity: sha512-vuYaNuEIbOYLTLUAJh50ezEbvxrD43iby+lpUA2aa148Nh5kX/AVO/9m1Ahmbux2iU5uxJTNF9g2Y+31uml7RQ==} + /@types/node/8.10.66: + resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} + dev: true + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -3282,6 +3516,12 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true + /@types/yargs/15.0.14: + resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + /@types/yargs/17.0.13: resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} dependencies: @@ -3559,11 +3799,11 @@ packages: vue: 3.2.40 dev: true - /@vitest/coverage-c8/0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna: + /@vitest/coverage-c8/0.23.4_dnicfi6n7tywwajisjusxhbdzm: resolution: {integrity: sha512-jmD00a5DQH9gu9K+YdvVhcMuv2CzHvU4gCnySS40Ec5hKlXtlCzRfNHl00VnhfuBeaQUmaQYe60BLT413HyDdg==} dependencies: c8: 7.12.0 - vitest: 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna + vitest: 0.23.4_dnicfi6n7tywwajisjusxhbdzm transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3737,6 +3977,53 @@ packages: p-iteration: 1.1.8 dev: true + /@yankeeinlondon/builder-api/0.4.1_owgwhktbfueopkpwpts4jzdaqq: + resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} + peerDependencies: + fp-ts: ^2.12.1 + inferred-types: ^0.22.0 + markdown-it: ^13.0.1 + vite-plugin-md: '*' + dependencies: + '@yankeeinlondon/happy-wrapper': 2.6.0_dnicfi6n7tywwajisjusxhbdzm + fp-ts: 2.12.3 + inferred-types: 0.22.0 + markdown-it: 13.0.1 + vite-plugin-md: 0.20.4_ucycamvpk6tvs7aryt7d45qco4 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /@yankeeinlondon/happy-wrapper/2.6.0_dnicfi6n7tywwajisjusxhbdzm: + resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} + peerDependencies: + happy-dom: ^6.0.4 + dependencies: + happy-dom: 6.0.4 + native-dash: 1.23.2_dnicfi6n7tywwajisjusxhbdzm + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /JSONSelect/0.4.0: resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} engines: {node: '>=0.4.7'} @@ -3962,6 +4249,15 @@ packages: engines: {node: '>=12'} dev: true + /anymatch/2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -4040,6 +4336,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -4115,6 +4415,25 @@ packages: - debug dev: true + /babel-jest/26.6.3_@babel+core@7.12.3: + resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/babel__core': 7.1.19 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 26.6.2_@babel+core@7.12.3 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-jest/29.1.0_@babel+core@7.12.3: resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4152,6 +4471,16 @@ packages: - supports-color dev: true + /babel-plugin-jest-hoist/26.6.2: + resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.19.0 + '@types/babel__core': 7.1.19 + '@types/babel__traverse': 7.18.2 + dev: true + /babel-plugin-jest-hoist/29.0.2: resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4218,6 +4547,17 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 dev: true + /babel-preset-jest/26.6.2_@babel+core@7.12.3: + resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + babel-plugin-jest-hoist: 26.6.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 + dev: true + /babel-preset-jest/29.0.2_@babel+core@7.12.3: resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4355,6 +4695,28 @@ packages: fill-range: 7.0.1 dev: true + /brilliant-errors/0.6.0_dnicfi6n7tywwajisjusxhbdzm: + resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} + engines: {node: '>=12.0.0'} + dependencies: + callsites: 3.1.0 + common-types: 1.31.1 + inferred-types: 0.22.0 + vitest: 0.19.1_dnicfi6n7tywwajisjusxhbdzm + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true @@ -4511,6 +4873,13 @@ packages: resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} dev: true + /capture-exit/2.0.0: + resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} + engines: {node: 6.* || 8.* || >= 10.*} + dependencies: + rsvp: 4.8.5 + dev: true + /caseless/0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true @@ -4617,10 +4986,18 @@ packages: fsevents: 2.3.2 dev: true + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true + /cjs-module-lexer/0.6.0: + resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} + dev: true + /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -4793,7 +5170,6 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -4810,6 +5186,10 @@ packages: engines: {node: '>=4.0.0'} dev: true + /common-types/1.31.1: + resolution: {integrity: sha512-eixAd22Gmek1dgsPgyqCSjzMAlp8rpSLkb44iEMfOzR9fwGFYEkH+AWOHmwSFxWmO8MvMND/m1jpZX0Wk4+yJA==} + dev: true + /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -5132,6 +5512,18 @@ packages: yaml: 1.10.2 dev: true + /coveralls/3.1.1: + resolution: {integrity: sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==} + engines: {node: '>=6'} + hasBin: true + dependencies: + js-yaml: 3.14.1 + lcov-parse: 1.0.0 + log-driver: 1.2.7 + minimist: 1.2.6 + request: 2.88.2 + dev: true + /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -5164,10 +5556,18 @@ packages: source-map: 0.6.1 dev: true + /css.escape/1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true + /cssom/0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + dev: true + /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -5183,7 +5583,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0: + /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -5193,7 +5593,7 @@ packages: cypress: 10.8.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0 + jest-image-snapshot: 4.2.0_jest@26.6.3 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5298,12 +5698,10 @@ packages: engines: {node: '>=12'} dependencies: internmap: 2.0.3 - dev: false /d3-axis/3.0.0: resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} engines: {node: '>=12'} - dev: false /d3-brush/3.0.0: resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} @@ -5314,38 +5712,32 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 - dev: false /d3-chord/3.0.1: resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 - dev: false /d3-color/3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} - dev: false /d3-contour/4.0.0: resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-delaunay/6.0.2: resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} engines: {node: '>=12'} dependencies: delaunator: 5.0.0 - dev: false /d3-dispatch/3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} - dev: false /d3-drag/3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} @@ -5353,7 +5745,6 @@ packages: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 - dev: false /d3-dsv/3.0.1: resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} @@ -5363,19 +5754,16 @@ packages: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 - dev: false /d3-ease/3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} - dev: false /d3-fetch/3.0.1: resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} engines: {node: '>=12'} dependencies: d3-dsv: 3.0.1 - dev: false /d3-force/3.0.0: resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} @@ -5384,51 +5772,42 @@ packages: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 - dev: false /d3-format/3.1.0: resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} engines: {node: '>=12'} - dev: false /d3-geo/3.0.1: resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-hierarchy/3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} engines: {node: '>=12'} - dev: false /d3-interpolate/3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 - dev: false /d3-path/3.0.1: resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} engines: {node: '>=12'} - dev: false /d3-polygon/3.0.1: resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} engines: {node: '>=12'} - dev: false /d3-quadtree/3.0.1: resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} engines: {node: '>=12'} - dev: false /d3-random/3.0.1: resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} engines: {node: '>=12'} - dev: false /d3-scale-chromatic/3.0.0: resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} @@ -5436,7 +5815,6 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 - dev: false /d3-scale/4.0.2: resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} @@ -5447,38 +5825,32 @@ packages: d3-interpolate: 3.0.1 d3-time: 3.0.0 d3-time-format: 4.1.0 - dev: false /d3-selection/3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} - dev: false /d3-shape/3.1.0: resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 - dev: false /d3-time-format/4.1.0: resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} engines: {node: '>=12'} dependencies: d3-time: 3.0.0 - dev: false /d3-time/3.0.0: resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-timer/3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} - dev: false /d3-transition/3.0.1_d3-selection@3.0.0: resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} @@ -5492,7 +5864,6 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 - dev: false /d3-zoom/3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} @@ -5503,7 +5874,6 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 - dev: false /d3/7.6.1: resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} @@ -5539,7 +5909,6 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1_d3-selection@3.0.0 d3-zoom: 3.0.0 - dev: false /dagre-d3/0.6.4: resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} @@ -5548,14 +5917,12 @@ packages: dagre: 0.8.5 graphlib: 2.1.8 lodash: 4.17.21 - dev: false /dagre/0.8.5: resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} dependencies: graphlib: 2.1.8 lodash: 4.17.21 - dev: false /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} @@ -5574,6 +5941,15 @@ packages: engines: {node: '>= 6'} dev: true + /data-urls/2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + dev: true + /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -5779,7 +6155,6 @@ packages: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: robust-predicates: 3.0.1 - dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -5832,6 +6207,11 @@ packages: minimist: 1.2.6 dev: true + /diff-sequences/26.6.2: + resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} + engines: {node: '>= 10.14.2'} + dev: true + /diff-sequences/29.0.0: resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5955,6 +6335,13 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true + /domexception/2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + dependencies: + webidl-conversions: 5.0.0 + dev: true + /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -5971,7 +6358,6 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} - dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -6043,6 +6429,11 @@ packages: engines: {node: '>=12'} dev: true + /emittery/0.7.2: + resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} + engines: {node: '>=10'} + dev: true + /emoji-regex/6.1.1: resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} dev: true @@ -6629,7 +7020,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: + /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6645,6 +7036,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha eslint: 8.23.1 + jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -6972,6 +7364,10 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true + /exec-sh/0.3.6: + resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} + dev: true + /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -7057,6 +7453,18 @@ packages: - supports-color dev: true + /expect/26.6.2: + resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + ansi-styles: 4.3.0 + jest-get-type: 26.3.0 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + dev: true + /expect/29.1.0: resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7356,6 +7764,15 @@ packages: mime-types: 2.1.35 dev: true + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7370,6 +7787,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /fp-ts/2.12.3: + resolution: {integrity: sha512-8m0XvW8kZbfnJOA4NvSVXu95mLbPf4LQGwQyqVukIYS4KzSNJiyKSmuZUmbVHteUi6MGkAJGPb0goPZqI+Tsqg==} + dev: true + /fragment-cache/0.2.1: resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} @@ -7492,6 +7913,11 @@ packages: yargs: 16.2.0 dev: true + /get-port/3.2.0: + resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} + engines: {node: '>=4'} + dev: true + /get-port/5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} @@ -7744,7 +8170,21 @@ packages: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 - dev: false + + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + + /growly/1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + dev: true + optional: true /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} @@ -7759,6 +8199,34 @@ packages: uglify-js: 3.17.1 dev: true + /happy-dom/6.0.4: + resolution: {integrity: sha512-b+ID23Ms0BY08UNLymsOMG7EI2jSlwEt4cbJs938GZfeNAg+fqgkSO3TokQMgSOFoHznpjWmpVjBUL5boJ9PWw==} + dependencies: + css.escape: 1.5.1 + he: 1.2.0 + node-fetch: 2.6.7 + sync-request: 6.1.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /har-schema/2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: true + + /har-validator/5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + /hard-rejection/2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -7887,6 +8355,13 @@ packages: lru-cache: 6.0.0 dev: true + /html-encoding-sniffer/2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + dependencies: + whatwg-encoding: 1.0.5 + dev: true + /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -7911,6 +8386,16 @@ packages: entities: 4.4.0 dev: true + /http-basic/8.1.3: + resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} + engines: {node: '>=6.0.0'} + dependencies: + caseless: 0.12.0 + concat-stream: 1.6.2 + http-response-object: 3.0.2 + parse-cache-control: 1.0.1 + dev: true + /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -7952,6 +8437,21 @@ packages: - supports-color dev: true + /http-response-object/3.0.2: + resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} + dependencies: + '@types/node': 10.17.60 + dev: true + + /http-signature/1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: true + /http-signature/1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} engines: {node: '>=0.10'} @@ -8062,6 +8562,12 @@ packages: engines: {node: '>=8'} dev: true + /inferred-types/0.22.0: + resolution: {integrity: sha512-7JF/huiuS1ANuQisfRigytz4IdYbmQVXOW+Jt6IL4k3TQxsCxAz72rWccBKTomnmGzBRcd3ki8gyrESYY/2bYw==} + dependencies: + common-types: 1.31.1 + dev: true + /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -8085,7 +8591,6 @@ packages: /internmap/2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - dev: false /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} @@ -8158,6 +8663,13 @@ packages: engines: {node: '>=4'} dev: true + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -8207,6 +8719,13 @@ packages: kind-of: 6.0.3 dev: true + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + optional: true + /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -8386,6 +8905,14 @@ packages: resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} dev: true + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + optional: true + /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true @@ -8419,6 +8946,18 @@ packages: engines: {node: '>=8'} dev: true + /istanbul-lib-instrument/4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.12.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-instrument/5.2.0: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} @@ -8468,6 +9007,15 @@ packages: plist: 3.0.6 dev: true + /jest-changed-files/26.6.2: + resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + execa: 4.1.0 + throat: 5.0.0 + dev: true + /jest-changed-files/29.0.0: resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8503,6 +9051,32 @@ packages: - supports-color dev: true + /jest-cli/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/core': 26.6.3_ts-node@10.9.1 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + is-ci: 2.0.0 + jest-config: 26.6.3_ts-node@10.9.1 + jest-util: 26.6.2 + jest-validate: 26.6.2 + prompts: 2.4.2 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-cli/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8531,6 +9105,41 @@ packages: - ts-node dev: true + /jest-config/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} + engines: {node: '>= 10.14.2'} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + '@babel/core': 7.12.3 + '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 + '@jest/types': 26.6.2 + babel-jest: 26.6.3_@babel+core@7.12.3 + chalk: 4.1.2 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-environment-jsdom: 26.6.2 + jest-environment-node: 26.6.2 + jest-get-type: 26.3.0 + jest-jasmine2: 26.6.3_ts-node@10.9.1 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + micromatch: 4.0.5 + pretty-format: 26.6.2 + ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + /jest-config/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8571,6 +9180,16 @@ packages: - supports-color dev: true + /jest-diff/26.6.2: + resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.2 + diff-sequences: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-diff/29.1.0: resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8581,6 +9200,13 @@ packages: pretty-format: 29.1.0 dev: true + /jest-docblock/26.0.0: + resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} + engines: {node: '>= 10.14.2'} + dependencies: + detect-newline: 3.1.0 + dev: true + /jest-docblock/29.0.0: resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8588,6 +9214,17 @@ packages: detect-newline: 3.1.0 dev: true + /jest-each/26.6.2: + resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + jest-get-type: 26.3.0 + jest-util: 26.6.2 + pretty-format: 26.6.2 + dev: true + /jest-each/29.1.0: resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8599,6 +9236,36 @@ packages: pretty-format: 29.1.0 dev: true + /jest-environment-jsdom/26.6.2: + resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node/26.6.2: + resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + dev: true + /jest-environment-node/29.1.1: resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8611,11 +9278,39 @@ packages: jest-util: 29.1.0 dev: true + /jest-get-type/26.3.0: + resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} + engines: {node: '>= 10.14.2'} + dev: true + /jest-get-type/29.0.0: resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-haste-map/26.6.2: + resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.8.1 + anymatch: 3.1.2 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 26.0.0 + jest-serializer: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + micromatch: 4.0.5 + sane: 4.1.0 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + transitivePeerDependencies: + - supports-color + dev: true + /jest-haste-map/29.1.0: resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8635,7 +9330,7 @@ packages: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0: + /jest-image-snapshot/4.2.0_jest@26.6.3: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8644,6 +9339,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 + jest: 26.6.3_ts-node@10.9.1 lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8670,6 +9366,44 @@ packages: ssim.js: 3.5.0 dev: true + /jest-jasmine2/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/traverse': 7.19.1 + '@jest/environment': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + co: 4.6.0 + expect: 26.6.2 + is-generator-fn: 2.1.0 + jest-each: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + pretty-format: 26.6.2 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + + /jest-leak-detector/26.6.2: + resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} + engines: {node: '>= 10.14.2'} + dependencies: + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-leak-detector/29.1.0: resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8678,6 +9412,16 @@ packages: pretty-format: 29.1.0 dev: true + /jest-matcher-utils/26.6.2: + resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.2 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-matcher-utils/29.1.0: resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8688,6 +9432,21 @@ packages: pretty-format: 29.1.0 dev: true + /jest-message-util/26.6.2: + resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 26.6.2 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 26.6.2 + slash: 3.0.0 + stack-utils: 2.0.5 + dev: true + /jest-message-util/29.1.0: resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8703,6 +9462,14 @@ packages: stack-utils: 2.0.5 dev: true + /jest-mock/26.6.2: + resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + dev: true + /jest-mock/29.1.1: resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8712,6 +9479,18 @@ packages: jest-util: 29.1.0 dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 26.6.2 + dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} @@ -8724,11 +9503,27 @@ packages: jest-resolve: 29.1.0 dev: true + /jest-regex-util/26.0.0: + resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} + engines: {node: '>= 10.14.2'} + dev: true + /jest-regex-util/29.0.0: resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-resolve-dependencies/26.6.3: + resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + jest-regex-util: 26.0.0 + jest-snapshot: 26.6.2 + transitivePeerDependencies: + - supports-color + dev: true + /jest-resolve-dependencies/29.1.1: resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8739,6 +9534,20 @@ packages: - supports-color dev: true + /jest-resolve/26.6.2: + resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 + jest-util: 26.6.2 + read-pkg-up: 7.0.1 + resolve: 1.22.1 + slash: 3.0.0 + dev: true + /jest-resolve/29.1.0: resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8754,6 +9563,38 @@ packages: slash: 3.0.0 dev: true + /jest-runner/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + emittery: 0.7.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-config: 26.6.3_ts-node@10.9.1 + jest-docblock: 26.0.0 + jest-haste-map: 26.6.2 + jest-leak-detector: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-util: 26.6.2 + jest-worker: 26.6.2 + source-map-support: 0.5.13 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-runner/29.1.1: resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8783,6 +9624,46 @@ packages: - supports-color dev: true + /jest-runtime/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/globals': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/yargs': 15.0.14 + chalk: 4.1.2 + cjs-module-lexer: 0.6.0 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-config: 26.6.3_ts-node@10.9.1 + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + slash: 3.0.0 + strip-bom: 4.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-runtime/29.1.1: resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8813,6 +9694,38 @@ packages: - supports-color dev: true + /jest-serializer/26.6.2: + resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/node': 18.8.1 + graceful-fs: 4.2.10 + dev: true + + /jest-snapshot/26.6.2: + resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/types': 7.19.0 + '@jest/types': 26.6.2 + '@types/babel__traverse': 7.18.2 + '@types/prettier': 2.7.1 + chalk: 4.1.2 + expect: 26.6.2 + graceful-fs: 4.2.10 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + jest-haste-map: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + natural-compare: 1.4.0 + pretty-format: 26.6.2 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color + dev: true + /jest-snapshot/29.1.0: resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8845,6 +9758,18 @@ packages: - supports-color dev: true + /jest-util/26.6.2: + resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + is-ci: 2.0.0 + micromatch: 4.0.5 + dev: true + /jest-util/29.1.0: resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8857,6 +9782,18 @@ packages: picomatch: 2.3.1 dev: true + /jest-validate/26.6.2: + resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 26.3.0 + leven: 3.1.0 + pretty-format: 26.6.2 + dev: true + /jest-validate/29.1.0: resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8869,6 +9806,19 @@ packages: pretty-format: 29.1.0 dev: true + /jest-watcher/26.6.2: + resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest-util: 26.6.2 + string-length: 4.0.2 + dev: true + /jest-watcher/29.1.0: resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8883,6 +9833,15 @@ packages: string-length: 4.0.2 dev: true + /jest-worker/26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.8.1 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + /jest-worker/29.1.0: resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8892,6 +9851,22 @@ packages: supports-color: 8.1.1 dev: true + /jest/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/core': 26.6.3_ts-node@10.9.1 + import-local: 3.1.0 + jest-cli: 26.6.3_ts-node@10.9.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8986,6 +9961,48 @@ packages: engines: {node: '>=12.0.0'} dev: true + /jsdom/16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.4.1 + domexception: 2.0.1 + escodegen: 2.0.0 + form-data: 3.0.1 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.4.6 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsdom/20.0.0: resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} engines: {node: '>=14'} @@ -9150,6 +10167,16 @@ packages: engines: {'0': node >= 0.2.0} dev: true + /jsprim/1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + /jsprim/2.0.2: resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} engines: {'0': node >=0.6.0} @@ -9168,7 +10195,6 @@ packages: /khroma/2.0.0: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} - dev: false /kind-of/3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -9238,6 +10264,11 @@ packages: readable-stream: 2.3.7 dev: true + /lcov-parse/1.0.0: + resolution: {integrity: sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==} + hasBin: true + dev: true + /lead/1.0.0: resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} engines: {node: '>= 0.10'} @@ -9415,6 +10446,11 @@ packages: /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /log-driver/1.2.7: + resolution: {integrity: sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==} + engines: {node: '>=0.8.6'} + dev: true + /log-symbols/4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -9683,6 +10719,20 @@ packages: engines: {node: '>= 8'} dev: true + /mermaid/9.1.7: + resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + dagre: 0.8.5 + dagre-d3: 0.6.4 + dompurify: 2.4.0 + graphlib: 2.1.8 + khroma: 2.0.0 + moment-mini: 2.24.0 + stylis: 4.1.2 + dev: true + /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -10015,6 +11065,10 @@ packages: - supports-color dev: true + /moment-mini/2.24.0: + resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==} + dev: true + /moment-mini/2.29.4: resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} dev: false @@ -10070,6 +11124,25 @@ packages: - supports-color dev: true + /native-dash/1.23.2_dnicfi6n7tywwajisjusxhbdzm: + resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} + dependencies: + brilliant-errors: 0.6.0_dnicfi6n7tywwajisjusxhbdzm + inferred-types: 0.22.0 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10108,6 +11181,19 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true + /node-notifier/8.0.2: + resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} + requiresBuild: true + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.3.7 + shellwords: 0.1.1 + uuid: 8.3.2 + which: 2.0.2 + dev: true + optional: true + /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true @@ -10192,6 +11278,10 @@ packages: resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} dev: true + /oauth-sign/0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true + /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -10305,6 +11395,11 @@ packages: engines: {node: '>=8'} dev: true + /p-each-series/2.2.0: + resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} + engines: {node: '>=8'} + dev: true + /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -10418,6 +11513,10 @@ packages: callsites: 3.1.0 dev: true + /parse-cache-control/1.0.1: + resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} + dev: true + /parse-entities/1.2.2: resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} dependencies: @@ -10734,6 +11833,16 @@ packages: engines: {node: '>=6'} dev: true + /pretty-format/26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 17.0.2 + dev: true + /pretty-format/29.1.0: resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10751,6 +11860,12 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true + /promise/8.2.0: + resolution: {integrity: sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==} + dependencies: + asap: 2.0.6 + dev: true + /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -10919,6 +12034,10 @@ packages: unpipe: 1.0.0 dev: true + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -11245,6 +12364,33 @@ packages: throttleit: 1.0.0 dev: true + /request/2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: true + /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -11365,7 +12511,6 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} - dev: false /rollup/2.78.1: resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} @@ -11381,7 +12526,11 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: false + + /rsvp/4.8.5: + resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} + engines: {node: 6.* || >= 7.*} + dev: true /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -11391,7 +12540,6 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - dev: false /rxjs/7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} @@ -11427,6 +12575,25 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + /sane/4.1.0: + resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} + engines: {node: 6.* || 8.* || >= 10.*} + deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added + hasBin: true + dependencies: + '@cnakazawa/watch': 1.0.4 + anymatch: 2.0.0 + capture-exit: 2.0.0 + exec-sh: 0.3.6 + execa: 1.0.0 + fb-watchman: 2.0.2 + micromatch: 3.1.10 + minimist: 1.2.6 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + dev: true + /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -11441,6 +12608,14 @@ packages: xmlchars: 2.2.0 dev: true + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -11538,6 +12713,11 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true + /shellwords/0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true + optional: true + /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -11710,6 +12890,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true @@ -11973,6 +13158,11 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -12023,7 +13213,6 @@ packages: /stylis/4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} - dev: false /subarg/1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} @@ -12081,6 +13270,21 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /sync-request/6.1.0: + resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} + engines: {node: '>=8.0.0'} + dependencies: + http-response-object: 3.0.2 + sync-rpc: 1.3.6 + then-request: 6.0.2 + dev: true + + /sync-rpc/1.3.6: + resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} + dependencies: + get-port: 3.2.0 + dev: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -12115,6 +13319,23 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /then-request/6.0.2: + resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} + engines: {node: '>=6.0.0'} + dependencies: + '@types/concat-stream': 1.6.1 + '@types/form-data': 0.0.33 + '@types/node': 8.10.66 + '@types/qs': 6.9.7 + caseless: 0.12.0 + concat-stream: 1.6.2 + form-data: 2.3.3 + http-basic: 8.1.3 + http-response-object: 3.0.2 + promise: 8.2.0 + qs: 6.11.0 + dev: true + /throat/5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true @@ -12164,6 +13385,11 @@ packages: resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} dev: true + /tinypool/0.2.4: + resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} + engines: {node: '>=14.0.0'} + dev: true + /tinypool/0.3.0: resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} @@ -12269,6 +13495,13 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true + /tr46/2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + dependencies: + punycode: 2.1.1 + dev: true + /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -12368,7 +13601,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_typescript@4.8.3: + /ts-node/10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12387,6 +13620,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 + '@types/node': 18.8.1 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -12493,6 +13727,12 @@ packages: mime-types: 2.1.35 dev: true + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + /typedarray/0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true @@ -12756,6 +13996,12 @@ packages: engines: {node: '>= 0.4.0'} dev: true + /uuid/3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true + /uuid/8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -12781,6 +14027,15 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /v8-to-istanbul/7.1.2: + resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} + engines: {node: '>=10.10.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + source-map: 0.7.4 + dev: true + /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -12934,6 +14189,35 @@ packages: replace-ext: 1.0.1 dev: true + /vite-plugin-md/0.20.4_ucycamvpk6tvs7aryt7d45qco4: + resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} + peerDependencies: + '@rollup/pluginutils': ^4.2.1 + rollup: ^2.77.0 + dependencies: + '@rollup/pluginutils': 4.2.1 + '@yankeeinlondon/builder-api': 0.4.1_owgwhktbfueopkpwpts4jzdaqq + '@yankeeinlondon/happy-wrapper': 2.6.0_dnicfi6n7tywwajisjusxhbdzm + gray-matter: 4.0.3 + markdown-it: 13.0.1 + rollup: 2.79.1 + source-map-js: 1.0.2 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - fp-ts + - happy-dom + - inferred-types + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /vite/3.1.3: resolution: {integrity: sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -12988,17 +14272,19 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_vitepress@1.0.0-alpha.19: + /vitepress-plugin-mermaid/2.0.8_ml5vzxpqibyfsid5kdls3ch6aa: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 vite-plugin-md: ^0.20.4 vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: - vitepress: 1.0.0-alpha.19 + mermaid: 9.1.7 + vite-plugin-md: 0.20.4_ucycamvpk6tvs7aryt7d45qco4 + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4: + /vitepress-plugin-search/1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y: resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -13007,15 +14293,16 @@ packages: vue: '3' dependencies: vite: 3.1.4 - vitepress: 1.0.0-alpha.19 + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vue: 3.2.40 dev: true - /vitepress/1.0.0-alpha.19: + /vitepress/1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-0FIUZB6JGXio7SELDDUkyQoMjmO/UAXqDXmznzOsBKsdZ3EHlyb6NaP/V/BMfN5S8+GV88ScbIL0jd/pDzkLBg==} hasBin: true dependencies: '@docsearch/css': 3.2.1 - '@docsearch/js': 3.2.1 + '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y '@vitejs/plugin-vue': 3.1.2_vite@3.1.4+vue@3.2.40 '@vue/devtools-api': 6.4.3 '@vueuse/core': 9.3.0_vue@3.2.40 @@ -13035,7 +14322,52 @@ packages: - terser dev: true - /vitest/0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna: + /vitest/0.19.1_dnicfi6n7tywwajisjusxhbdzm: + resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.3 + '@types/chai-subset': 1.3.3 + '@types/node': 18.8.1 + '@vitest/ui': 0.23.4 + chai: 4.3.6 + debug: 4.3.4 + happy-dom: 6.0.4 + jsdom: 20.0.1 + local-pkg: 0.4.2 + tinypool: 0.2.4 + tinyspy: 1.0.2 + vite: 3.1.4 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /vitest/0.23.4_dnicfi6n7tywwajisjusxhbdzm: resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} engines: {node: '>=v14.16.0'} hasBin: true @@ -13063,6 +14395,7 @@ packages: '@vitest/ui': 0.23.4 chai: 4.3.6 debug: 4.3.4 + happy-dom: 6.0.4 jsdom: 20.0.1 local-pkg: 0.4.2 strip-literal: 0.4.2 @@ -13159,6 +14492,13 @@ packages: browser-process-hrtime: 1.0.0 dev: true + /w3c-xmlserializer/2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + dependencies: + xml-name-validator: 3.0.0 + dev: true + /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -13205,6 +14545,16 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true + /webidl-conversions/5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + dev: true + + /webidl-conversions/6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + dev: true + /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -13224,6 +14574,12 @@ packages: engines: {node: '>=0.8.0'} dev: true + /whatwg-encoding/1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + dependencies: + iconv-lite: 0.4.24 + dev: true + /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -13235,6 +14591,10 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true + /whatwg-mimetype/2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + dev: true + /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -13263,6 +14623,15 @@ packages: webidl-conversions: 3.0.1 dev: true + /whatwg-url/8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: true + /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true @@ -13313,6 +14682,15 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + /write-file-atomic/4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -13377,6 +14755,10 @@ packages: resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} dev: true + /xml-name-validator/3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + dev: true + /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} From ebef4a1416ad8101b46a3c4727e938825a5d8bc2 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 11 Oct 2022 10:24:40 +0530 Subject: [PATCH 0369/1038] chore: add `auto-install-peers` to `.npmrc` --- .npmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..f87a044348 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +auto-install-peers=true \ No newline at end of file From eec97d10af2ba016f26fe0e772d2405689441e58 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Wed, 12 Oct 2022 11:48:51 +0200 Subject: [PATCH 0370/1038] #3192 Adding the ability to create invisible links in flowcharts(v2) --- packages/mermaid/src/dagre-wrapper/edges.js | 3 +++ packages/mermaid/src/diagrams/flowchart/flowDb.js | 4 ++++ packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js | 5 +++++ packages/mermaid/src/diagrams/flowchart/parser/flow.jison | 1 + 4 files changed, 13 insertions(+) diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index 6ed08e924f..6a75b8b28d 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -438,6 +438,9 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph case 'thick': strokeClasses = 'edge-thickness-thick'; break; + case 'invisible': + strokeClasses = 'edge-thickness-thick'; + break; default: strokeClasses = ''; } diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 4a3fd5e9c0..4712994d5a 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -674,6 +674,10 @@ const destructEndLink = (_str) => { stroke = 'thick'; } + if (line[0] === '~') { + stroke = 'invisible'; + } + let dots = countChar('.', line); if (dots) { diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index 6b7c4c1bfe..ce206ce02d 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -280,6 +280,11 @@ export const addEdges = function (edges, g, diagObj) { edgeData.pattern = 'solid'; edgeData.style = 'stroke-width: 3.5px;fill:none;'; break; + case 'invisible': + edgeData.thickness = 'invisible'; + edgeData.pattern = 'solid'; + edgeData.style = 'stroke-width: 0;fill:none;'; + break; } if (typeof edge.style !== 'undefined') { const styles = getStylesFromArray(edge.style); diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow.jison b/packages/mermaid/src/diagrams/flowchart/parser/flow.jison index fae7c6cf26..e461165c40 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow.jison +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow.jison @@ -120,6 +120,7 @@ that id. \s*[xo<]?\-\-+[-xo>]\s* return 'LINK'; \s*[xo<]?\=\=+[=xo>]\s* return 'LINK'; \s*[xo<]?\-?\.+\-[xo>]?\s* return 'LINK'; +\s*\~\~[\~]+\s* return 'LINK'; \s*[xo<]?\-\-\s* return 'START_LINK'; \s*[xo<]?\=\=\s* return 'START_LINK'; \s*[xo<]?\-\.\s* return 'START_LINK'; From 4d46ea9801ad1d6e8eddf6e97f2e89e8fc993c26 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Wed, 12 Oct 2022 11:53:02 +0200 Subject: [PATCH 0371/1038] #3192 Adding link type of the std docs --- docs/flowchart.md | 14 ++++++++++++++ packages/mermaid/src/docs/flowchart.md | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/docs/flowchart.md b/docs/flowchart.md index 0ca87d975c..fe4231ede6 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -264,6 +264,20 @@ flowchart LR A --- B ``` +### An invisisble link + +This can be a usefull tool in some instances where you want to alter the default positining of a node. + +```mermaid-example +flowchart LR + A ~~~ B +``` + +```mermaid +flowchart LR + A ~~~ B +``` + ### Text on links ```mermaid-example diff --git a/packages/mermaid/src/docs/flowchart.md b/packages/mermaid/src/docs/flowchart.md index 3560334afb..edeabb6518 100644 --- a/packages/mermaid/src/docs/flowchart.md +++ b/packages/mermaid/src/docs/flowchart.md @@ -167,6 +167,15 @@ flowchart LR A --- B ``` +### An invisisble link + +This can be a usefull tool in some instances where you want to alter the default positining of a node. + +```mermaid-example +flowchart LR + A ~~~ B +``` + ### Text on links ```mermaid-example From 353895dcebde1b997e8cde94c19c497d27f3a241 Mon Sep 17 00:00:00 2001 From: Iulian Onofrei <5748627+revolter@users.noreply.github.com> Date: Wed, 12 Oct 2022 15:44:21 +0300 Subject: [PATCH 0372/1038] Remove inconsistent and deprecated semicolons --- docs/flowchart.md | 20 ++++++++++---------- packages/mermaid/src/docs/flowchart.md | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/flowchart.md b/docs/flowchart.md index 0ca87d975c..9e85a18e59 100644 --- a/docs/flowchart.md +++ b/docs/flowchart.md @@ -315,13 +315,13 @@ flowchart LR ### Dotted link ```mermaid-example -flowchart LR; - A-.->B; +flowchart LR + A-.->B ``` ```mermaid -flowchart LR; - A-.->B; +flowchart LR + A-.->B ``` ### Dotted link with text @@ -866,13 +866,13 @@ A shorter form of adding a class is to attach the classname to the node using th ```mermaid-example flowchart LR A:::someclass --> B - classDef someclass fill:#f96; + classDef someclass fill:#f96 ``` ```mermaid flowchart LR A:::someclass --> B - classDef someclass fill:#f96; + classDef someclass fill:#f96 ``` ### Css classes @@ -895,14 +895,14 @@ below: **Example definition** ```mermaid-example -flowchart LR; +flowchart LR A-->B[AAA<span>BBB</span>] B-->D class A cssClass ``` ```mermaid -flowchart LR; +flowchart LR A-->B[AAA<span>BBB</span>] B-->D class A cssClass @@ -924,7 +924,7 @@ The icons are accessed via the syntax fa:#icon class name#. flowchart TD B["fab:fa-twitter for peace"] B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); + B-->D(fa:fa-spinner) B-->E(A fa:fa-camera-retro perhaps?) ``` @@ -932,7 +932,7 @@ flowchart TD flowchart TD B["fab:fa-twitter for peace"] B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); + B-->D(fa:fa-spinner) B-->E(A fa:fa-camera-retro perhaps?) ``` diff --git a/packages/mermaid/src/docs/flowchart.md b/packages/mermaid/src/docs/flowchart.md index 3560334afb..16979137e7 100644 --- a/packages/mermaid/src/docs/flowchart.md +++ b/packages/mermaid/src/docs/flowchart.md @@ -198,8 +198,8 @@ flowchart LR ### Dotted link ```mermaid-example -flowchart LR; - A-.->B; +flowchart LR + A-.->B ``` ### Dotted link with text @@ -587,7 +587,7 @@ A shorter form of adding a class is to attach the classname to the node using th ```mermaid-example flowchart LR A:::someclass --> B - classDef someclass fill:#f96; + classDef someclass fill:#f96 ``` ### Css classes @@ -610,7 +610,7 @@ below: **Example definition** ```mermaid-example -flowchart LR; +flowchart LR A-->B[AAA<span>BBB</span>] B-->D class A cssClass @@ -634,7 +634,7 @@ The icons are accessed via the syntax fa:#icon class name#. flowchart TD B["fab:fa-twitter for peace"] B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); + B-->D(fa:fa-spinner) B-->E(A fa:fa-camera-retro perhaps?) ``` From 673a2e82289b5fb026168314c2052648c29fb999 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 22:52:41 +0000 Subject: [PATCH 0373/1038] chore(deps): update actions/setup-node action to v3 --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f75fd15960..a7ad03a7a4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v3 name: Check out the code - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 name: Setup node with: node-version: '16' From d03fdfdbcab45ddcf224e7f288033dcded38d10c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Thu, 13 Oct 2022 13:48:00 +0530 Subject: [PATCH 0374/1038] Update packages/mermaid/src/docs.mts Co-authored-by: Alois Klink <alois@aloisklink.com> --- packages/mermaid/src/docs.mts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 59bcfc544b..bf03741a7e 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -67,7 +67,9 @@ const prettierConfig: prettier.Config = { let filesWereTransformed = false; const generateHeader = (file: string): string => { - return `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [${file}](../${file}).`; + // path from file in docs/* to repo root, e.g ../ or ../../ */ + const rootDirectory = relative(file, "packages/mermaid/src/docs"); + return `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [${file}](${join(rootDirectory, file)}).`; }; /** From d62c2d1e228b2a0e47aefc264dcc12e5a2af9d08 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Thu, 13 Oct 2022 13:51:27 +0530 Subject: [PATCH 0375/1038] fix: relative paths --- docs/developer-docs/configuration.md | 2 +- docs/diagrams-and-syntax-and-examples/flowchart.md | 2 +- docs/landing/index.html | 2 +- packages/mermaid/src/docs.mts | 9 ++++++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/developer-docs/configuration.md b/docs/developer-docs/configuration.md index 8188396ae0..03a32f313c 100644 --- a/docs/developer-docs/configuration.md +++ b/docs/developer-docs/configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/developer-docs/configuration.md](../packages/mermaid/src/docs/developer-docs/configuration.md). +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/developer-docs/configuration.md](../../packages/mermaid/src/docs/developer-docs/configuration.md). # Configuration diff --git a/docs/diagrams-and-syntax-and-examples/flowchart.md b/docs/diagrams-and-syntax-and-examples/flowchart.md index 3dd4069cd7..6257c8afbb 100644 --- a/docs/diagrams-and-syntax-and-examples/flowchart.md +++ b/docs/diagrams-and-syntax-and-examples/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md](../packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md). +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md](../../packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md). --- diff --git a/docs/landing/index.html b/docs/landing/index.html index 044ee679ce..e8d0c89c4d 100644 --- a/docs/landing/index.html +++ b/docs/landing/index.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <html lang="en"> - <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/landing/index.html](../packages/mermaid/src/docs/landing/index.html).--><head> + <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [packages/mermaid/src/docs/landing/index.html](../../packages/mermaid/src/docs/landing/index.html).--><head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index f415cfb0ab..8b6041cc51 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -35,7 +35,7 @@ import { exec } from 'child_process'; import { globby } from 'globby'; import { JSDOM } from 'jsdom'; import type { Code, Root } from 'mdast'; -import { posix, dirname } from 'path'; +import { posix, dirname, relative } from 'path'; import prettier from 'prettier'; import { remark } from 'remark'; // @ts-ignore No typescript declaration file @@ -72,8 +72,11 @@ let filesWereTransformed = false; const generateHeader = (file: string): string => { // path from file in docs/* to repo root, e.g ../ or ../../ */ - const rootDirectory = relative(file, "packages/mermaid/src/docs"); - return `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [${file}](${join(rootDirectory, file)}).`; + const rootDirectory = relative(file, SOURCE_DOCS_DIR); + return `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the source file in [${file}](${posix.join( + rootDirectory, + file + )}).`; }; /** From 4be66554b3feebdb3c7882ff97419fd0674dd895 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Thu, 13 Oct 2022 14:26:05 +0200 Subject: [PATCH 0376/1038] #3659 Adding height when not using maxWidth --- cypress/platform/knsv2.html | 40 +++++++++++------------ packages/mermaid/src/setupGraphViewbox.js | 1 + 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 506ac51aea..c521ea5c5c 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -56,21 +56,10 @@ <body> <div>Security check</div> <pre id="diagram" class="mermaid"> -classDiagram - direction LR - class Student { - -idCard : IdCard - } - class IdCard{ - -id : int - -name : string - } - class Bike{ - -id : int - -name : string - } - Student "1" --o "1" IdCard : carries - Student "1" --o "1" Bike : rides +flowchart TD + A --> B + B --> C + A --> C </pre> <pre id="diagram" class="mermaid2"> mindmap @@ -98,8 +87,14 @@ ::icon(mdi mdi-fire) gc7((grand<br/>grand<br/>child 8)) </pre> - <pre id="diagram" class="mermaid2"> - example-diagram + <pre id="diagram" class="mermaid"> + gantt + title Style today marker (vertical line should be 5px wide and half-transparent blue) + dateFormat YYYY-MM-DD + axisFormat %d + todayMarker stroke-width:5px,stroke:#00f,opacity:0.5 + section Section1 + Today: 1, -1h </pre> <!-- <div id="cy"></div> --> @@ -116,13 +111,18 @@ theme: 'forest', startOnLoad: true, logLevel: 0, - // basePath: './packages/', - // themeVariables: { darkMode: true }, + flowchart: { + useMaxWidth: false, + htmlLabels: true, + }, + gantt: { + useMaxWidth: false, + }, + useMaxWidth: false, lazyLoadedDiagrams: [ './mermaid-mindmap-detector.esm.mjs', './mermaid-example-diagram-detector.esm.mjs', ], - // lazyLoadedDiagrams: ['../../mermaid-mindmap/registry.ts'], }); function callback() { alert('It worked'); diff --git a/packages/mermaid/src/setupGraphViewbox.js b/packages/mermaid/src/setupGraphViewbox.js index 8ffdab5e75..dad451df67 100644 --- a/packages/mermaid/src/setupGraphViewbox.js +++ b/packages/mermaid/src/setupGraphViewbox.js @@ -26,6 +26,7 @@ export const calculateSvgSizeAttrs = function (height, width, useMaxWidth) { attrs.set('width', '100%'); attrs.set('style', `max-width: ${width}px;`); } else { + attrs.set('height', height); attrs.set('width', width); } return attrs; From 069951a748b8363ef75acf8c463f115437c6435a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 14 Oct 2022 13:03:27 +0530 Subject: [PATCH 0377/1038] fix: docs --- docs/index.html | 1 + packages/mermaid/src/docs/index.html | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/index.html b/docs/index.html index 015ce128bd..7c92a1e31a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -57,6 +57,7 @@ let parser = new DOMParser(); let currentCodeExample = 0; let colorize = []; + let num = 0; function colorizeEverything(html) { initEditor(monaco); diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 2d6e1c7149..29643d9743 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -57,6 +57,7 @@ let parser = new DOMParser(); let currentCodeExample = 0; let colorize = []; + let num = 0; function colorizeEverything(html) { initEditor(monaco); From bed95c77a982a247bee7a4e38c43cfd480e14f5b Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Fri, 14 Oct 2022 10:01:32 +0200 Subject: [PATCH 0378/1038] Some changes in the docs for mindmap --- .gitignore | 2 ++ docs/mindmap.md | 8 +++----- packages/mermaid/src/docs/mindmap.md | 7 +++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6e4fe723a2..33718aaf75 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo + +local*.html diff --git a/docs/mindmap.md b/docs/mindmap.md index 94baf43e01..32f1e099dc 100644 --- a/docs/mindmap.md +++ b/docs/mindmap.md @@ -26,7 +26,6 @@ mindmap Tools Pen and paper Mermaid - ``` ```mermaid @@ -47,14 +46,13 @@ mindmap Tools Pen and paper Mermaid - ``` ## Syntax The syntax for creating Mindmaps is simple and relies on indentation for setting the levels in the hierarchy. -In the following example you can see how there are 3 different levels. One with starting at the left of the text and another level with two rows starting at the same column, defining the node A. At the end there is one more level where the text is indented further then the previous lines defining the nodes B and C. +In the following example you can see how there are 3 different levels of indentation. The leftmost indentation is the root of the mindmap. There can only be one root and if you by misstake add two of them on the same level there will be a syntax error. Rows with larger indentation will be connected as children to the previous row with lower indentation. Based on that you can see in the example how the nodes B and C both are children to node A whci in turn is a child of the node Root. mindmap Root @@ -62,7 +60,7 @@ In the following example you can see how there are 3 different levels. One with B C -In summary is a simple text outline where there are one node at the root level called `Root` which has one child `A`. `A` in turn has two children `B`and `C`. In the diagram below we can see this rendered as a mindmap. +In the diagram below you can see the example rendered as a mindmap. ```mermaid-example mindmap @@ -220,7 +218,7 @@ The actual indentation does not really matter only compared with the previous ro B C -This outline is unclear as `B` clearly is a child of `A` but when we move on to `C` the clarity is lost. `C` is not a child of `B` with a higher indentation nor does it have the same indentation as `B`. The only thing that is clear is that the first node with smaller indentation, indicating a parent, is A. Then Mermaid relies on this known truth and compensates for the unclear indentation and selects `A` as a parent of `C` leading till the same diagram with `B` and `C` as siblings. +This outline is unclear as `B` clearly is a child of `A` but when we move on to `C` the clarity is lost. `C` is not a child of `B` with a higher indentation nor does it have the same indentation as `B`. The only thing that is clear is that the first node with smaller indentation, indicating a parent, is A. Mermaid will rely on this known truth and compensates for the unclear indentation and selects `A` as a parent of `C` leading till the same diagram with `B` and `C` as siblings. ```mermaid-example mindmap diff --git a/packages/mermaid/src/docs/mindmap.md b/packages/mermaid/src/docs/mindmap.md index af7a3df85e..5aa6f4953d 100644 --- a/packages/mermaid/src/docs/mindmap.md +++ b/packages/mermaid/src/docs/mindmap.md @@ -24,14 +24,13 @@ mindmap Tools Pen and paper Mermaid - ``` ## Syntax The syntax for creating Mindmaps is simple and relies on indentation for setting the levels in the hierarchy. -In the following example you can see how there are 3 different levels. One with starting at the left of the text and another level with two rows starting at the same column, defining the node A. At the end there is one more level where the text is indented further then the previous lines defining the nodes B and C. +In the following example you can see how there are 3 different levels of indentation. The leftmost indentation is the root of the mindmap. There can only be one root and if you by misstake add two of them on the same level there will be a syntax error. Rows with larger indentation will be connected as children to the previous row with lower indentation. Based on that you can see in the example how the nodes B and C both are children to node A whci in turn is a child of the node Root. ``` mindmap @@ -41,7 +40,7 @@ mindmap C ``` -In summary is a simple text outline where there are one node at the root level called `Root` which has one child `A`. `A` in turn has two children `B`and `C`. In the diagram below we can see this rendered as a mindmap. +In the diagram below you can see the example rendered as a mindmap. ```mermaid mindmap @@ -145,7 +144,7 @@ mindmap C ``` -This outline is unclear as `B` clearly is a child of `A` but when we move on to `C` the clarity is lost. `C` is not a child of `B` with a higher indentation nor does it have the same indentation as `B`. The only thing that is clear is that the first node with smaller indentation, indicating a parent, is A. Then Mermaid relies on this known truth and compensates for the unclear indentation and selects `A` as a parent of `C` leading till the same diagram with `B` and `C` as siblings. +This outline is unclear as `B` clearly is a child of `A` but when we move on to `C` the clarity is lost. `C` is not a child of `B` with a higher indentation nor does it have the same indentation as `B`. The only thing that is clear is that the first node with smaller indentation, indicating a parent, is A. Mermaid will rely on this known truth and compensates for the unclear indentation and selects `A` as a parent of `C` leading till the same diagram with `B` and `C` as siblings. ```mermaid mindmap From 9ac3992fd2e9b679d79b9e798c0918253d42f608 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 13:18:19 +0200 Subject: [PATCH 0379/1038] chore(deps): update all non-major dependencies (minor) (#3632) * chore(deps): update all non-major dependencies * chore: add `auto-install-peers` to `.npmrc` * chore: Update lockfile * Update docs/index.html Co-authored-by: Matthieu MOREL <matthieu.morel35@gmail.com> * Update packages/mermaid/src/docs/index.html Co-authored-by: Matthieu MOREL <matthieu.morel35@gmail.com> * Define integrity, crossorigin and referrerpolicy * Define integrity, crossorigin and referrerpolicy * chore: format Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com> Co-authored-by: Matthieu MOREL <matthieu.morel35@gmail.com> --- .npmrc | 1 + docs/index.html | 23 ++++++++-- package.json | 6 +-- packages/mermaid/src/docs/index.html | 23 ++++++++-- pnpm-lock.yaml | 65 ++++++++-------------------- 5 files changed, 61 insertions(+), 57 deletions(-) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..f87a044348 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +auto-install-peers=true \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 7c92a1e31a..6d129c346c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -28,12 +28,27 @@ ></script> <script> const require = { - paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs' }, + paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs' }, }; </script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs/loader.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs/editor/editor.main.nls.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs/editor/editor.main.js"></script> + <script + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/loader.min.js" + integrity="sha512-6bIYsGqvLpAiEBXPdRQeFf5cueeBECtAKJjIHer3BhBZNTV3WLcLA8Tm3pDfxUwTMIS+kAZwTUvJ1IrMdX8C5w==" + crossorigin="anonymous" + referrerpolicy="no-referrer" + ></script> + <script + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.nls.min.js" + integrity="sha512-CCv+DKWw+yZhxf4Z+ExT6HC5G+3S45TeMTYcJyYbdrv4BpK2vyALJ4FoVR/KGWDIPu7w4tNCOC9MJQIkYPR5FA==" + crossorigin="anonymous" + referrerpolicy="no-referrer" + ></script> + <script + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.min.js" + integrity="sha512-iVHvVf6TQEoF5oQrocjP88wstImQHQZCxGsa5nKYOs6gXWzsV7QZHyk80HrXhrEWRJ1ADoIV6Uji3UUXtCmBMg==" + crossorigin="anonymous" + referrerpolicy="no-referrer" + ></script> <script> exports = {}; </script> diff --git a/package.json b/package.json index 25d614f950..5517a79120 100644 --- a/package.json +++ b/package.json @@ -102,8 +102,8 @@ "@types/stylis": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", - "@vitest/coverage-c8": "^0.23.4", - "@vitest/ui": "^0.23.4", + "@vitest/coverage-c8": "0.24.1", + "@vitest/ui": "0.24.1", "concurrently": "^7.4.0", "coveralls": "^3.1.1", "cypress": "^10.0.0", @@ -141,7 +141,7 @@ "vitepress": "^1.0.0-alpha.19", "vitepress-plugin-mermaid": "^2.0.8", "vitepress-plugin-search": "^1.0.4-alpha.11", - "vitest": "^0.23.4" + "vitest": "0.24.1" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 29643d9743..8c13f6f6b0 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -28,12 +28,27 @@ ></script> <script> const require = { - paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs' }, + paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs' }, }; </script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs/loader.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs/editor/editor.main.nls.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs/editor/editor.main.js"></script> + <script + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/loader.min.js" + integrity="sha512-6bIYsGqvLpAiEBXPdRQeFf5cueeBECtAKJjIHer3BhBZNTV3WLcLA8Tm3pDfxUwTMIS+kAZwTUvJ1IrMdX8C5w==" + crossorigin="anonymous" + referrerpolicy="no-referrer" + ></script> + <script + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.nls.min.js" + integrity="sha512-CCv+DKWw+yZhxf4Z+ExT6HC5G+3S45TeMTYcJyYbdrv4BpK2vyALJ4FoVR/KGWDIPu7w4tNCOC9MJQIkYPR5FA==" + crossorigin="anonymous" + referrerpolicy="no-referrer" + ></script> + <script + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.min.js" + integrity="sha512-iVHvVf6TQEoF5oQrocjP88wstImQHQZCxGsa5nKYOs6gXWzsV7QZHyk80HrXhrEWRJ1ADoIV6Uji3UUXtCmBMg==" + crossorigin="anonymous" + referrerpolicy="no-referrer" + ></script> <script> exports = {}; </script> diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2f88060c6..3af45ffee2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: '@types/uuid': ^8.3.4 '@typescript-eslint/eslint-plugin': ^5.39.0 '@typescript-eslint/parser': ^5.39.0 - '@vitest/coverage-c8': ^0.23.4 - '@vitest/ui': ^0.23.4 + '@vitest/coverage-c8': 0.24.1 + '@vitest/ui': 0.24.1 concurrently: ^7.4.0 coveralls: ^3.1.1 cypress: ^10.0.0 @@ -76,7 +76,7 @@ importers: vitepress: ^1.0.0-alpha.19 vitepress-plugin-mermaid: ^2.0.8 vitepress-plugin-search: ^1.0.4-alpha.11 - vitest: ^0.23.4 + vitest: 0.24.1 dependencies: '@braintree/sanitize-url': 6.0.0 '@types/node': 18.8.1 @@ -109,8 +109,8 @@ importers: '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@vitest/coverage-c8': 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna - '@vitest/ui': 0.23.4 + '@vitest/coverage-c8': 0.24.1_xzgakswda4jfhzd65tgzmbprsy + '@vitest/ui': 0.24.1 concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 @@ -148,7 +148,7 @@ importers: vitepress: 1.0.0-alpha.19 vitepress-plugin-mermaid: 2.0.8_vitepress@1.0.0-alpha.19 vitepress-plugin-search: 1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4 - vitest: 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna + vitest: 0.24.1_xzgakswda4jfhzd65tgzmbprsy packages/mermaid: specifiers: @@ -3560,11 +3560,11 @@ packages: vue: 3.2.40 dev: true - /@vitest/coverage-c8/0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna: - resolution: {integrity: sha512-jmD00a5DQH9gu9K+YdvVhcMuv2CzHvU4gCnySS40Ec5hKlXtlCzRfNHl00VnhfuBeaQUmaQYe60BLT413HyDdg==} + /@vitest/coverage-c8/0.24.1_xzgakswda4jfhzd65tgzmbprsy: + resolution: {integrity: sha512-cOFHXRHB9WHtGgsHE4FX4Ef1c9Hon668RNJQOJvqSy1/1Y7zIYIBhFWmuFKLZRCMV4jGT5CRiuB9KtdNsOc3og==} dependencies: c8: 7.12.0 - vitest: 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna + vitest: 0.24.1_xzgakswda4jfhzd65tgzmbprsy transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3578,8 +3578,8 @@ packages: - terser dev: true - /@vitest/ui/0.23.4: - resolution: {integrity: sha512-lNZVTTrkHThGAwNQ1ah1qCNnm70r7OLB5LCUdSqboStve/1eKTrtt27QfDSSUTG8AVJQzU0eaN/j8UocH+CqfA==} + /@vitest/ui/0.24.1: + resolution: {integrity: sha512-7baeu1+XspO+eAOsygPNL1k8EQRpn7Mj8fhwgyzsTzoYAkqP62mOPO+sqa+TdVaE3241sbAniIzHD1mVMJp70A==} dependencies: sirv: 2.0.2 dev: true @@ -12247,8 +12247,8 @@ packages: - supports-color dev: true - /tinybench/2.1.5: - resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} + /tinybench/2.3.0: + resolution: {integrity: sha512-zs1gMVBwyyG2QbVchYIbnabRhMOCGvrwZz/q+SV+LIMa9q5YDQZi2kkI6ZRqV2Bz7ba1uvrc7ieUoE4KWnGeKg==} dev: true /tinypool/0.3.0: @@ -13027,33 +13027,6 @@ packages: replace-ext: 1.0.1 dev: true - /vite/3.1.3: - resolution: {integrity: sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - terser: ^5.4.0 - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.15.10 - postcss: 8.4.16 - resolve: 1.22.1 - rollup: 2.78.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/3.1.4: resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -13128,8 +13101,8 @@ packages: - terser dev: true - /vitest/0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna: - resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} + /vitest/0.24.1_xzgakswda4jfhzd65tgzmbprsy: + resolution: {integrity: sha512-NKkK1xnDIOOr42pKBfGQQl6b6IWdFVBpG6ZS1T+nUlJuqcOiZ7lxjVwHy9wrtTYpJ0BWww9y6bSGYXubD29Nag==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -13152,17 +13125,17 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.7.21 - '@vitest/ui': 0.23.4 + '@types/node': 18.8.1 + '@vitest/ui': 0.24.1 chai: 4.3.6 debug: 4.3.4 jsdom: 20.0.1 local-pkg: 0.4.2 strip-literal: 0.4.2 - tinybench: 2.1.5 + tinybench: 2.3.0 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.1.3 + vite: 3.1.4 transitivePeerDependencies: - less - sass From fc8db955977f7bdb19250c777e9785f464a9804e Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Fri, 14 Oct 2022 15:05:00 +0200 Subject: [PATCH 0380/1038] Release 9.20 fixes of docsify --- docs/index.html | 56 ++++++++++++++++++---------- packages/mermaid/src/docs/index.html | 56 ++++++++++++++++++---------- 2 files changed, 72 insertions(+), 40 deletions(-) diff --git a/docs/index.html b/docs/index.html index 015ce128bd..414ae33a52 100644 --- a/docs/index.html +++ b/docs/index.html @@ -49,14 +49,39 @@ <body> <div id="app"></div> <script type="module"> - import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9/dist/mermaid.esm.min.mjs'; + // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9/dist/mermaid.esm.min.mjs'; + // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; + import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; + console.log(mermaid); // eslint-disable-line window.mermaid = mermaid; + const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; + + const conf = { + logLevel: 4, + startOnLoad: true, + themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', + lazyLoadedDiagrams: [ + // 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc5/dist/mermaid.esm.min.mjs', + 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', + ], + }; + if (isDarkMode) conf.theme = 'dark'; + + async function loadMermaid() { + await mermaid.initialize(conf); + console.log('mermaid initialized'); // eslint-disable-line + } + mermaid.parseError = (e) => { + console.log('parse error', e); // eslint-disable-line + }; + await loadMermaid(); </script> <script> let initEditor = exports.default; let parser = new DOMParser(); let currentCodeExample = 0; let colorize = []; + let num = 0; function colorizeEverything(html) { initEditor(monaco); @@ -97,14 +122,12 @@ renderer: { code: function (code, lang) { if (lang === 'mermaid-example') { + console.log('An example'); // eslint-disable-line currentCodeExample++; colorize.push(currentCodeExample); return '<pre id="code' + currentCodeExample + '">' + escapeHTML(code) + '</pre>'; } else if (lang === 'mermaid') { - // TODO: This will need to be updated when render is async. - return ( - '<pre class="mermaid">' + mermaid.render('mermaid-svg-' + num++, code) + '</pre>' - ); + return '<pre class="mermaid">' + code + '</pre>'; } return this.origin.code.apply(this, arguments); }, @@ -123,6 +146,10 @@ const editHtml = '[:memo: Edit this Page](' + url + ')\n'; return editHtml + html; }); + // Invoked on each page load after new HTML has been appended to the DOM + hook.doneEach(function () { + window.mermaid.init(); + }); hook.afterEach(function (html, next) { next(html); @@ -138,28 +165,17 @@ }, ], }; - - const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; - - const conf = { - logLevel: 4, - startOnLoad: false, - themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', - }; - if (isDarkMode) conf.theme = 'dark'; - mermaid.initialize(conf); </script> <script> window.onhashchange = function (a) { - //code - if (location) { - ga('send', 'pageview', location.hash); - } + // if (location && ga) { + // ga('send', 'pageview', location.hash); + // } }; </script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script> - <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script> + <!-- <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script> --> <script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-coffeescript.min.js"></script> </body> </html> diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 2d6e1c7149..4fddd358ed 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -49,14 +49,39 @@ <body> <div id="app"></div> <script type="module"> - import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs'; + // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs'; + // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; + import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; + console.log(mermaid); // eslint-disable-line window.mermaid = mermaid; + const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; + + const conf = { + logLevel: 4, + startOnLoad: true, + themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', + lazyLoadedDiagrams: [ + // 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc5/dist/mermaid.esm.min.mjs', + 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', + ], + }; + if (isDarkMode) conf.theme = 'dark'; + + async function loadMermaid() { + await mermaid.initialize(conf); + console.log('mermaid initialized'); // eslint-disable-line + } + mermaid.parseError = (e) => { + console.log('parse error', e); // eslint-disable-line + }; + await loadMermaid(); </script> <script> let initEditor = exports.default; let parser = new DOMParser(); let currentCodeExample = 0; let colorize = []; + let num = 0; function colorizeEverything(html) { initEditor(monaco); @@ -97,14 +122,12 @@ renderer: { code: function (code, lang) { if (lang === 'mermaid-example') { + console.log('An example'); // eslint-disable-line currentCodeExample++; colorize.push(currentCodeExample); return '<pre id="code' + currentCodeExample + '">' + escapeHTML(code) + '</pre>'; } else if (lang === 'mermaid') { - // TODO: This will need to be updated when render is async. - return ( - '<pre class="mermaid">' + mermaid.render('mermaid-svg-' + num++, code) + '</pre>' - ); + return '<pre class="mermaid">' + code + '</pre>'; } return this.origin.code.apply(this, arguments); }, @@ -123,6 +146,10 @@ const editHtml = '[:memo: Edit this Page](' + url + ')\n'; return editHtml + html; }); + // Invoked on each page load after new HTML has been appended to the DOM + hook.doneEach(function () { + window.mermaid.init(); + }); hook.afterEach(function (html, next) { next(html); @@ -138,28 +165,17 @@ }, ], }; - - const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; - - const conf = { - logLevel: 4, - startOnLoad: false, - themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', - }; - if (isDarkMode) conf.theme = 'dark'; - mermaid.initialize(conf); </script> <script> window.onhashchange = function (a) { - //code - if (location) { - ga('send', 'pageview', location.hash); - } + // if (location && ga) { + // ga('send', 'pageview', location.hash); + // } }; </script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script> - <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script> + <!-- <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script> --> <script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-coffeescript.min.js"></script> </body> </html> From 59cf085af51c248ec9489207175170a21b1c4285 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Fri, 14 Oct 2022 15:11:29 +0200 Subject: [PATCH 0381/1038] #448 Fix for root nodes without children --- packages/mermaid-mindmap/package.json | 2 +- packages/mermaid-mindmap/src/mindmapRenderer.js | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index befe56016c..847eeffef2 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.0-rc2", + "version": "9.2.0-rc3", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid-mindmap.core.mjs", "module": "dist/mermaid-mindmap.core.mjs", diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index acbb350481..f69b0b381a 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -34,7 +34,7 @@ function drawNodes(svg, mindmap, section, conf) { * @param cy */ function drawEdges(edgesEl, cy) { - cy.edges().map((edge, id) => { + cy?.edges().map((edge, id) => { const data = edge.data(); if (edge[0]._private.bodyBounds) { const bounds = edge[0]._private.rscratch; @@ -100,9 +100,10 @@ function addNodes(mindmap, cy, conf, level) { */ function layoutMindmap(node, conf) { return new Promise((resolve) => { - if (node.children.length === 0) { - return node; - } + // if (node.children.length === 0) { + // resolve(node); + // return; + // } // Add temporary render element const renderEl = select('body').append('div').attr('id', 'cy').attr('style', 'display:none'); From 16be835c9b8e583b022d342ccfdaba8e0549cd66 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Fri, 14 Oct 2022 15:12:22 +0200 Subject: [PATCH 0382/1038] Removing error thrown disrupting rendering --- packages/mermaid/src/diagram-api/diagramAPI.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 2bc8091ec9..91c5ffe712 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -35,7 +35,12 @@ export const registerDiagram = ( ) => void ) => { if (diagrams[id]) { - throw new Error(`Diagram ${id} already registered.`); + log.warn(`Diagram ${id} already registered.`); + // The error throw is commented out to as it breaks pages where you have multiple diagrams, + // it can happen that rendering of the same type of diagram is initiated while the previous + // one is still being imported. import deals with this and only one diagram is imported in + // the end. + // throw new Error(`Diagram ${id} already registered.`); } diagrams[id] = diagram; if (detector) { From 957e64fe8a1ae417da9fc2d46a4cc019e9e07834 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Fri, 14 Oct 2022 16:10:57 +0200 Subject: [PATCH 0383/1038] Docs with lazy loading using rc bundles --- docs/index.html | 8 ++++---- packages/mermaid/package.json | 2 +- packages/mermaid/src/docs/index.html | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/index.html b/docs/index.html index 414ae33a52..119df5f941 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,8 +50,8 @@ <div id="app"></div> <script type="module"> // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9/dist/mermaid.esm.min.mjs'; - // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; - import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; + import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; + // import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; console.log(mermaid); // eslint-disable-line window.mermaid = mermaid; const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; @@ -61,8 +61,8 @@ startOnLoad: true, themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', lazyLoadedDiagrams: [ - // 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc5/dist/mermaid.esm.min.mjs', - 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', + 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-mindmap@9.2.0-rc3/dist/mermaid-mindmap-detector.esm.mjs', + // 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', ], }; if (isDarkMode) conf.theme = 'dark'; diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 76648977dd..86d5593b49 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.2.0-rc2", + "version": "9.2.0-rc6", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.core.mjs", "module": "./dist/mermaid.core.mjs", diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 4fddd358ed..b8015275eb 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -50,8 +50,8 @@ <div id="app"></div> <script type="module"> // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs'; - // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; - import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; + import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; + // import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; console.log(mermaid); // eslint-disable-line window.mermaid = mermaid; const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; @@ -61,8 +61,8 @@ startOnLoad: true, themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', lazyLoadedDiagrams: [ - // 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc5/dist/mermaid.esm.min.mjs', - 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', + 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-mindmap@9.2.0-rc3/dist/mermaid-mindmap-detector.esm.mjs', + // 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', ], }; if (isDarkMode) conf.theme = 'dark'; From b486177ca7089acb03765614d1726f5c57f3ed47 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 15 Oct 2022 00:28:21 +0530 Subject: [PATCH 0384/1038] fix: Diagram load issue --- .vite/build.ts | 12 +++++++++--- package.json | 1 + packages/mermaid/src/Diagram.ts | 8 ++++++-- packages/mermaid/src/diagram-api/diagramAPI.ts | 11 ++++++++++- packages/mermaid/src/logger.ts | 3 +++ packages/mermaid/src/mermaid.ts | 11 +++++++---- 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index 7398d30d5a..360f878ba2 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -6,6 +6,7 @@ import pkg from '../package.json' assert { type: 'json' }; const { dependencies } = pkg; const watch = process.argv.includes('--watch'); +const mermaidOnly = process.argv.includes('--mermaid'); const __dirname = fileURLToPath(new URL('.', import.meta.url)); type OutputOptions = Exclude< @@ -129,14 +130,19 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => { const main = async () => { const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[]; for (const pkg of packageNames) { + if (mermaidOnly && pkg !== 'mermaid') { + continue; + } await buildPackage(pkg); } }; if (watch) { - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' })); + if (!mermaidOnly) { + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + } } else { void main(); } diff --git a/package.json b/package.json index 15adccd647..5dc6792a11 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "git graph" ], "scripts": { + "build:mermaid": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts --mermaid", "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts", "build:types": "concurrently \"tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly\" \"tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly\"", "build:watch": "pnpm build:vite --watch", diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index e4f1d2645c..cdd771e4df 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -1,6 +1,6 @@ import * as configApi from './config'; import { log } from './logger'; -import { getDiagram, registerDiagram } from './diagram-api/diagramAPI'; +import { DiagramNotFoundError, getDiagram, registerDiagram } from './diagram-api/diagramAPI'; import { detectType, getDiagramLoader } from './diagram-api/detectType'; import { isDetailedError } from './utils'; export class Diagram { @@ -92,9 +92,13 @@ export const getDiagramFromText = ( getDiagram(type); return new Diagram(txt, parseError); } catch (error) { + if (!(error instanceof DiagramNotFoundError)) { + log.error(error); + throw error; + } const loader = getDiagramLoader(type); if (!loader) { - throw new Error(`Diagram ${type} not found.`); + throw new Error(`Loader for ${type} not found.`); } // TODO: Uncomment for v10 // // Diagram not available, loading it diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 91c5ffe712..6eeff6df1d 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -34,6 +34,7 @@ export const registerDiagram = ( _setupGraphViewbox: any ) => void ) => { + log.debug(`Registering diagram ${id}`); if (diagrams[id]) { log.warn(`Diagram ${id} already registered.`); // The error throw is commented out to as it breaks pages where you have multiple diagrams, @@ -50,11 +51,19 @@ export const registerDiagram = ( if (typeof callback !== 'undefined') { callback(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); } + log.debug(`Registered diagram ${id}. ${Object.keys(diagrams).join(', ')} diagrams registered.`); }; export const getDiagram = (name: string): DiagramDefinition => { + log.debug(`Getting diagram ${name}. ${Object.keys(diagrams).join(', ')} diagrams registered.`); if (name in diagrams) { return diagrams[name]; } - throw new Error(`Diagram ${name} not found.`); + throw new DiagramNotFoundError(name); }; + +export class DiagramNotFoundError extends Error { + constructor(message: string) { + super(`Diagram ${message} not found.`); + } +} diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index b01934e88b..3eae56d8a7 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -30,6 +30,8 @@ export const log: Record<keyof typeof LEVELS, typeof console.log> = { * @param {LogLevel} [level="fatal"] The level to set the logging to. Default is `"fatal"` */ export const setLogLevel = function (level: keyof typeof LEVELS | number | string = 'fatal') { + // TODO: Even if we call initialize with loglevel 0, many initial logs are skipped as LL is set to 5 initially. + let numericLevel: number = LEVELS.fatal; if (typeof level === 'string') { level = level.toLowerCase(); @@ -39,6 +41,7 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin } else if (typeof level === 'number') { numericLevel = level; } + numericLevel = 0; log.trace = () => {}; log.debug = () => {}; log.info = () => {}; diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 7a280fa31f..a630016dc0 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -159,7 +159,7 @@ const initThrowsErrors = function ( } }; -let lazyLoadingPromise: Promise<unknown> | undefined; +let lazyLoadingPromise: Promise<unknown> | undefined = undefined; /** * @param conf * @deprecated This is an internal function and should not be used. Will be removed in v10. @@ -179,12 +179,15 @@ const registerLazyLoadedDiagrams = async (conf: MermaidConfig) => { await lazyLoadingPromise; }; +let loadingPromise: Promise<unknown> | undefined = undefined; + const loadExternalDiagrams = async (conf: MermaidConfig) => { // Only lazy load once // TODO: This is a hack. We should either throw error when new diagrams are added, or load them anyway. - if (lazyLoadingPromise === undefined) { + if (loadingPromise === undefined) { + log.debug(`Loading ${conf?.lazyLoadedDiagrams?.length} external diagrams`); // Load all lazy loaded diagrams in parallel - lazyLoadingPromise = Promise.allSettled( + loadingPromise = Promise.allSettled( (conf?.lazyLoadedDiagrams ?? []).map(async (url: string) => { const { id, detector, loadDiagram } = await import(url); const { diagram } = await loadDiagram(); @@ -192,7 +195,7 @@ const loadExternalDiagrams = async (conf: MermaidConfig) => { }) ); } - await lazyLoadingPromise; + await loadingPromise; }; /** From 58a53c0fa8999276360239754803a7a5c9007042 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 15 Oct 2022 00:28:21 +0530 Subject: [PATCH 0385/1038] fix: Diagram load issue --- .vite/build.ts | 12 +++++++++--- package.json | 1 + packages/mermaid/src/Diagram.ts | 8 ++++++-- packages/mermaid/src/diagram-api/diagramAPI.ts | 11 ++++++++++- packages/mermaid/src/logger.ts | 3 +++ 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index 7398d30d5a..360f878ba2 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -6,6 +6,7 @@ import pkg from '../package.json' assert { type: 'json' }; const { dependencies } = pkg; const watch = process.argv.includes('--watch'); +const mermaidOnly = process.argv.includes('--mermaid'); const __dirname = fileURLToPath(new URL('.', import.meta.url)); type OutputOptions = Exclude< @@ -129,14 +130,19 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => { const main = async () => { const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[]; for (const pkg of packageNames) { + if (mermaidOnly && pkg !== 'mermaid') { + continue; + } await buildPackage(pkg); } }; if (watch) { - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' })); + if (!mermaidOnly) { + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + } } else { void main(); } diff --git a/package.json b/package.json index 25d614f950..dd436e6158 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "git graph" ], "scripts": { + "build:mermaid": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts --mermaid", "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts", "build:types": "concurrently \"tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly\" \"tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly\"", "build:watch": "pnpm build:vite --watch", diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 0aa7419948..c471e0f5fb 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -1,6 +1,6 @@ import * as configApi from './config'; import { log } from './logger'; -import { getDiagram, registerDiagram } from './diagram-api/diagramAPI'; +import { DiagramNotFoundError, getDiagram, registerDiagram } from './diagram-api/diagramAPI'; import { detectType, getDiagramLoader } from './diagram-api/detectType'; import { isDetailedError } from './utils'; export class Diagram { @@ -88,9 +88,13 @@ export const getDiagramFromText = async (txt: string, parseError?: Function): Pr // Trying to find the diagram getDiagram(type); } catch (error) { + if (!(error instanceof DiagramNotFoundError)) { + log.error(error); + throw error; + } const loader = getDiagramLoader(type); if (!loader) { - throw new Error(`Diagram ${type} not found.`); + throw new Error(`Loader for ${type} not found.`); } // Diagram not available, loading it const { diagram } = await loader(); diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 91c5ffe712..6eeff6df1d 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -34,6 +34,7 @@ export const registerDiagram = ( _setupGraphViewbox: any ) => void ) => { + log.debug(`Registering diagram ${id}`); if (diagrams[id]) { log.warn(`Diagram ${id} already registered.`); // The error throw is commented out to as it breaks pages where you have multiple diagrams, @@ -50,11 +51,19 @@ export const registerDiagram = ( if (typeof callback !== 'undefined') { callback(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); } + log.debug(`Registered diagram ${id}. ${Object.keys(diagrams).join(', ')} diagrams registered.`); }; export const getDiagram = (name: string): DiagramDefinition => { + log.debug(`Getting diagram ${name}. ${Object.keys(diagrams).join(', ')} diagrams registered.`); if (name in diagrams) { return diagrams[name]; } - throw new Error(`Diagram ${name} not found.`); + throw new DiagramNotFoundError(name); }; + +export class DiagramNotFoundError extends Error { + constructor(message: string) { + super(`Diagram ${message} not found.`); + } +} diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index b01934e88b..3eae56d8a7 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -30,6 +30,8 @@ export const log: Record<keyof typeof LEVELS, typeof console.log> = { * @param {LogLevel} [level="fatal"] The level to set the logging to. Default is `"fatal"` */ export const setLogLevel = function (level: keyof typeof LEVELS | number | string = 'fatal') { + // TODO: Even if we call initialize with loglevel 0, many initial logs are skipped as LL is set to 5 initially. + let numericLevel: number = LEVELS.fatal; if (typeof level === 'string') { level = level.toLowerCase(); @@ -39,6 +41,7 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin } else if (typeof level === 'number') { numericLevel = level; } + numericLevel = 0; log.trace = () => {}; log.debug = () => {}; log.info = () => {}; From cbcf7f8a1123754e7f8b839157326a4c12523771 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Sat, 15 Oct 2022 00:50:11 -0300 Subject: [PATCH 0386/1038] docs: new Documentation --- .gitignore | 3 + {vdocs => docs}/.vitepress/config.ts | 24 +- .../.vitepress/mermaid-markdown-all.ts | 0 docs/.vitepress/theme/custom.css | 13 + {vdocs => docs}/.vitepress/theme/index.ts | 0 docs/CHANGELOG.md | 1050 ---- docs/Configuration.md | 22 - docs/SUMMARY.md | 17 - docs/Setup.md | 1629 ------ docs/_navbar.md | 15 - docs/_sidebar.md | 46 - docs/breakingChanges.md | 51 - docs/{ => community}/development.md | 2 +- docs/{ => community}/img/er.png | Bin docs/{ => community}/n00b-overview.md | 6 +- docs/{ => community}/newDiagram.md | 66 +- docs/{ => community}/security.md | 2 +- docs/{ => config}/8.6.0_docs.md | 56 +- docs/{ => config}/Tutorials.md | 4 +- docs/{ => config}/accessibility.md | 2 +- .../configuration.md | 2 +- docs/{ => config}/directives.md | 18 +- .../img/accessibility-div-example-2.png | Bin .../img/accessibility-div-example.png | Bin docs/{ => config}/img/assignWithDepth.png | Bin .../img/object.assign without depth.png | Bin .../img/python-mermaid-integration.png | Bin docs/{ => config}/img/wrapped text.png | Bin docs/{ => config}/mermaidCLI.md | 2 +- docs/{ => config}/n00b-advanced.md | 2 +- docs/config/setup/.nojekyll | 1 + docs/config/setup/README.md | 9 + docs/config/setup/modules/config.md | 272 + docs/config/setup/modules/defaultConfig.md | 55 + docs/config/setup/modules/mermaidAPI.md | 59 + docs/{ => config}/theming.md | 42 +- docs/{ => config}/usage.md | 32 +- .../flowchart.md | 927 ---- docs/edit.md | 9 + docs/img/Configuration.png | Bin 26097 -> 0 bytes docs/img/Editing-process.png | Bin 18851 -> 0 bytes docs/img/EditingHistory+Links.png | Bin 33416 -> 0 bytes docs/img/GitHub-Mark-32px.png | Bin 878 -> 0 bytes docs/img/Live-Editor-Usage.png | Bin 18605 -> 0 bytes docs/img/book-banner-post-release.jpeg | Bin 40076 -> 0 bytes docs/img/book-banner-post-release.png | Bin 828545 -> 0 bytes docs/img/book-banner-pre-release.jpg | Bin 39321 -> 0 bytes docs/img/book-banner-pre-release.png | Bin 828688 -> 0 bytes docs/img/class.png | Bin 26920 -> 0 bytes docs/img/flow.png | Bin 4591 -> 0 bytes docs/img/gantt.png | Bin 12818 -> 0 bytes docs/img/git.png | Bin 15505 -> 0 bytes docs/img/n00b-firstFlow.png | Bin 12700 -> 0 bytes docs/img/new-diagrams.png | Bin 32225 -> 0 bytes docs/img/sequence.png | Bin 22906 -> 0 bytes docs/img/simple-er.png | Bin 8027 -> 0 bytes docs/img/user-journey.png | Bin 36968 -> 0 bytes docs/img/without wrap.png | Bin 158551 -> 0 bytes docs/index.html | 165 - docs/index.md | 135 + docs/{ => intro}/img/Code-Preview-Config.png | Bin docs/{ => intro}/img/Live-Editor-Choices.png | Bin .../img/book-banner-post-release.jpg | Bin docs/{README.md => intro/index.md} | 67 +- docs/{ => intro}/n00b-gettingStarted.md | 38 +- docs/{ => intro}/n00b-syntaxReference.md | 28 +- docs/introduction.md | 1 - docs/landing/class.png | Bin 34954 -> 0 bytes docs/landing/cover.jpg | Bin 17803 -> 0 bytes docs/landing/er.png | Bin 13419 -> 0 bytes docs/landing/flowchart.png | Bin 14794 -> 0 bytes docs/landing/gantt.png | Bin 43239 -> 0 bytes docs/landing/index.html | 337 -- docs/landing/sequence-diagram.png | Bin 19823 -> 0 bytes docs/landing/state.png | Bin 15574 -> 0 bytes docs/{ => misc}/faq.md | 2 +- docs/{ => misc}/integrations.md | 2 +- docs/{ => public}/.nojekyll | 0 docs/{img => public}/header.png | Bin docs/{ => syntax}/c4c.md | 2 +- docs/{ => syntax}/classDiagram.md | 2 +- .../{ => syntax}/entityRelationshipDiagram.md | 2 +- docs/{ => syntax}/examples.md | 6 +- docs/{ => syntax}/flowchart.md | 44 +- docs/{ => syntax}/gantt.md | 4 +- docs/{ => syntax}/gitgraph.md | 6 +- .../img/Gantt-excluded-days-within.png | Bin .../img/Gantt-long-weekend-look.png | Bin docs/{ => syntax}/mindmap.md | 2 +- docs/{ => syntax}/pie.md | 2 +- docs/{ => syntax}/requirementDiagram.md | 2 +- docs/{ => syntax}/sequenceDiagram.md | 10 +- docs/{ => syntax}/stateDiagram.md | 2 +- docs/{ => syntax}/user-journey.md | 2 +- docs/theme.css | 827 --- docs/theme_themed.css | 1653 ------ docs/upgrading.md | 27 - {vdocs => docs}/vite.config.ts | 12 +- package.json | 10 - packages/mermaid/docs/.vitepress/config.ts | 162 + .../docs/.vitepress/mermaid-markdown-all.ts | 32 + .../mermaid/docs/.vitepress/theme/custom.css | 13 + .../mermaid/docs/.vitepress/theme/index.ts | 11 + .../docs => docs/community}/development.md | 0 .../{src/docs => docs/community}/img/er.png | Bin .../docs => docs/community}/n00b-overview.md | 4 +- .../mermaid/docs}/community/newDiagram.md | 2 +- .../{src/docs => docs/community}/security.md | 0 .../mermaid/docs}/config/8.6.0_docs.md | 26 +- .../mermaid/docs}/config/Tutorials.md | 0 .../docs => docs/config}/accessibility.md | 0 .../config}/configuration.md | 0 .../mermaid/docs}/config/directives.md | 0 .../img/accessibility-div-example-2.png | Bin .../config}/img/accessibility-div-example.png | Bin .../config}/img/assignWithDepth.png | Bin .../img/object.assign without depth.png | Bin .../img/python-mermaid-integration.png | Bin .../docs => docs/config}/img/wrapped text.png | Bin .../{src/docs => docs/config}/mermaidCLI.md | 0 .../docs => docs/config}/n00b-advanced.md | 0 .../{src/docs => docs/config}/theming.md | 24 +- .../{src/docs => docs/config}/usage.md | 30 +- {vdocs => packages/mermaid/docs}/edit.md | 0 {vdocs => packages/mermaid/docs}/index.md | 2 +- .../intro}/img/Code-Preview-Config.png | Bin .../intro}/img/Live-Editor-Choices.png | Bin .../intro}/img/book-banner-post-release.jpg | Bin .../docs/README.md => docs/intro/index.md} | 77 +- .../docs}/intro/n00b-gettingStarted.md | 12 +- .../docs}/intro/n00b-syntaxReference.md | 12 +- .../mermaid/{src/docs => docs/misc}/faq.md | 0 .../{src/docs => docs/misc}/integrations.md | 0 .../{src/docs => docs/public}/.nojekyll | 0 .../{src/docs/img => docs/public}/header.png | Bin .../mermaid/{src/docs => docs/syntax}/c4c.md | 0 .../{src/docs => docs/syntax}/classDiagram.md | 0 .../syntax}/entityRelationshipDiagram.md | 0 .../mermaid/docs}/syntax/examples.md | 0 .../{src/docs => docs/syntax}/flowchart.md | 29 +- .../mermaid/docs}/syntax/gantt.md | 2 +- .../mermaid/docs/syntax/gitgraph.md | 0 .../img/Gantt-excluded-days-within.png | Bin .../syntax}/img/Gantt-long-weekend-look.png | Bin .../{src/docs => docs/syntax}/mindmap.md | 0 .../mermaid/{src/docs => docs/syntax}/pie.md | 0 .../syntax}/requirementDiagram.md | 0 .../mermaid/docs}/syntax/sequenceDiagram.md | 2 +- .../{src/docs => docs/syntax}/stateDiagram.md | 0 .../{src/docs => docs/syntax}/user-journey.md | 0 packages/mermaid/docs/vite.config.ts | 45 + packages/mermaid/package.json | 18 +- packages/mermaid/src/defaultConfig.ts | 14 +- packages/mermaid/src/docs.mts | 7 +- packages/mermaid/src/docs/8.6.0_docs.md | 213 - packages/mermaid/src/docs/CHANGELOG.md | 2 +- packages/mermaid/src/docs/Configuration.md | 20 - packages/mermaid/src/docs/SUMMARY.md | 15 - packages/mermaid/src/docs/Setup.md | 1627 ------ packages/mermaid/src/docs/Tutorials.md | 72 - packages/mermaid/src/docs/_navbar.md | 13 - packages/mermaid/src/docs/_sidebar.md | 44 - packages/mermaid/src/docs/breakingChanges.md | 49 - .../flowchart.md | 645 --- packages/mermaid/src/docs/directives.md | 255 - packages/mermaid/src/docs/examples.md | 158 - packages/mermaid/src/docs/gantt.md | 343 -- packages/mermaid/src/docs/gitgraph.md | 1016 ---- .../mermaid/src/docs/img/Configuration.png | Bin 26097 -> 0 bytes .../mermaid/src/docs/img/Editing-process.png | Bin 18851 -> 0 bytes .../src/docs/img/EditingHistory+Links.png | Bin 33416 -> 0 bytes .../mermaid/src/docs/img/GitHub-Mark-32px.png | Bin 878 -> 0 bytes .../src/docs/img/Live-Editor-Usage.png | Bin 18605 -> 0 bytes .../docs/img/book-banner-post-release.jpeg | Bin 40076 -> 0 bytes .../src/docs/img/book-banner-post-release.png | Bin 828545 -> 0 bytes .../src/docs/img/book-banner-pre-release.jpg | Bin 39321 -> 0 bytes .../src/docs/img/book-banner-pre-release.png | Bin 828688 -> 0 bytes packages/mermaid/src/docs/img/class.png | Bin 26920 -> 0 bytes packages/mermaid/src/docs/img/flow.png | Bin 4591 -> 0 bytes packages/mermaid/src/docs/img/gantt.png | Bin 12818 -> 0 bytes packages/mermaid/src/docs/img/git.png | Bin 15505 -> 0 bytes .../mermaid/src/docs/img/n00b-firstFlow.png | Bin 12700 -> 0 bytes .../mermaid/src/docs/img/new-diagrams.png | Bin 32225 -> 0 bytes packages/mermaid/src/docs/img/sequence.png | Bin 22906 -> 0 bytes packages/mermaid/src/docs/img/simple-er.png | Bin 8027 -> 0 bytes .../mermaid/src/docs/img/user-journey.png | Bin 36968 -> 0 bytes .../mermaid/src/docs/img/without wrap.png | Bin 158551 -> 0 bytes packages/mermaid/src/docs/index.html | 165 - packages/mermaid/src/docs/introduction.md | 0 packages/mermaid/src/docs/landing/class.png | Bin 34954 -> 0 bytes packages/mermaid/src/docs/landing/cover.jpg | Bin 17803 -> 0 bytes packages/mermaid/src/docs/landing/er.png | Bin 13419 -> 0 bytes .../mermaid/src/docs/landing/flowchart.png | Bin 14794 -> 0 bytes packages/mermaid/src/docs/landing/gantt.png | Bin 43239 -> 0 bytes packages/mermaid/src/docs/landing/index.html | 337 -- .../src/docs/landing/sequence-diagram.png | Bin 19823 -> 0 bytes packages/mermaid/src/docs/landing/state.png | Bin 15574 -> 0 bytes .../mermaid/src/docs/n00b-gettingStarted.md | 198 - .../mermaid/src/docs/n00b-syntaxReference.md | 67 - packages/mermaid/src/docs/newDiagram.md | 263 - packages/mermaid/src/docs/sequenceDiagram.md | 569 --- packages/mermaid/src/docs/theme.css | 827 --- packages/mermaid/src/docs/theme_themed.css | 1653 ------ packages/mermaid/src/docs/upgrading.md | 25 - pnpm-lock.yaml | 4459 ++++++----------- vdocs/.vitepress/theme/custom.css | 6 - vdocs/community/CHANGELOG.md | 1024 ---- vdocs/community/development.md | 136 - vdocs/community/img/er.png | Bin 56576 -> 0 bytes vdocs/community/n00b-overview.md | 68 - vdocs/community/security.md | 23 - vdocs/config/Setup.md | 1628 ------ vdocs/config/accessibility.md | 208 - .../img/accessibility-div-example-2.png | Bin 122847 -> 0 bytes .../config/img/accessibility-div-example.png | Bin 122202 -> 0 bytes vdocs/config/img/assignWithDepth.png | Bin 6595 -> 0 bytes .../img/object.assign without depth.png | Bin 6067 -> 0 bytes .../config/img/python-mermaid-integration.png | Bin 39043 -> 0 bytes vdocs/config/img/wrapped text.png | Bin 105313 -> 0 bytes vdocs/config/mermaidCLI.md | 3 - vdocs/config/n00b-advanced.md | 24 - vdocs/config/n00b-syntaxReference.md | 67 - vdocs/config/theming.md | 484 -- vdocs/config/usage.md | 394 -- vdocs/intro/directives.md | 254 - vdocs/intro/img/Code-Preview-Config.png | Bin 148873 -> 0 bytes vdocs/intro/img/Live-Editor-Choices.png | Bin 53011 -> 0 bytes vdocs/intro/img/book-banner-post-release.jpg | Bin 75158 -> 0 bytes vdocs/intro/index.md | 398 -- vdocs/misc/faq.md | 11 - vdocs/misc/integrations.md | 180 - vdocs/public/.nojekyll | 0 vdocs/public/header.png | Bin 69565 -> 0 bytes vdocs/syntax/c4c.md | 363 -- vdocs/syntax/classDiagram.md | 625 --- vdocs/syntax/entityRelationshipDiagram.md | 188 - vdocs/syntax/flowchart.md | 699 --- .../syntax/img/Gantt-excluded-days-within.png | Bin 79453 -> 0 bytes vdocs/syntax/img/Gantt-long-weekend-look.png | Bin 79092 -> 0 bytes vdocs/syntax/pie.md | 51 - vdocs/syntax/requirementDiagram.md | 158 - vdocs/syntax/stateDiagram.md | 260 - vdocs/syntax/userJourney.md | 22 - 243 files changed, 2660 insertions(+), 26001 deletions(-) rename {vdocs => docs}/.vitepress/config.ts (88%) rename {vdocs => docs}/.vitepress/mermaid-markdown-all.ts (100%) create mode 100644 docs/.vitepress/theme/custom.css rename {vdocs => docs}/.vitepress/theme/index.ts (100%) delete mode 100644 docs/CHANGELOG.md delete mode 100644 docs/Configuration.md delete mode 100644 docs/SUMMARY.md delete mode 100644 docs/Setup.md delete mode 100644 docs/_navbar.md delete mode 100644 docs/_sidebar.md delete mode 100644 docs/breakingChanges.md rename docs/{ => community}/development.md (99%) rename docs/{ => community}/img/er.png (100%) rename docs/{ => community}/n00b-overview.md (91%) rename docs/{ => community}/newDiagram.md (85%) rename docs/{ => community}/security.md (97%) rename docs/{ => config}/8.6.0_docs.md (92%) rename docs/{ => config}/Tutorials.md (95%) rename docs/{ => config}/accessibility.md (99%) rename docs/{developer-docs => config}/configuration.md (96%) rename docs/{ => config}/directives.md (97%) rename docs/{ => config}/img/accessibility-div-example-2.png (100%) rename docs/{ => config}/img/accessibility-div-example.png (100%) rename docs/{ => config}/img/assignWithDepth.png (100%) rename docs/{ => config}/img/object.assign without depth.png (100%) rename docs/{ => config}/img/python-mermaid-integration.png (100%) rename docs/{ => config}/img/wrapped text.png (100%) rename docs/{ => config}/mermaidCLI.md (81%) rename docs/{ => config}/n00b-advanced.md (90%) create mode 100644 docs/config/setup/.nojekyll create mode 100644 docs/config/setup/README.md create mode 100644 docs/config/setup/modules/config.md create mode 100644 docs/config/setup/modules/defaultConfig.md create mode 100644 docs/config/setup/modules/mermaidAPI.md rename docs/{ => config}/theming.md (96%) rename docs/{ => config}/usage.md (98%) delete mode 100644 docs/diagrams-and-syntax-and-examples/flowchart.md create mode 100644 docs/edit.md delete mode 100644 docs/img/Configuration.png delete mode 100644 docs/img/Editing-process.png delete mode 100644 docs/img/EditingHistory+Links.png delete mode 100644 docs/img/GitHub-Mark-32px.png delete mode 100644 docs/img/Live-Editor-Usage.png delete mode 100644 docs/img/book-banner-post-release.jpeg delete mode 100644 docs/img/book-banner-post-release.png delete mode 100644 docs/img/book-banner-pre-release.jpg delete mode 100644 docs/img/book-banner-pre-release.png delete mode 100644 docs/img/class.png delete mode 100644 docs/img/flow.png delete mode 100644 docs/img/gantt.png delete mode 100644 docs/img/git.png delete mode 100644 docs/img/n00b-firstFlow.png delete mode 100644 docs/img/new-diagrams.png delete mode 100644 docs/img/sequence.png delete mode 100644 docs/img/simple-er.png delete mode 100644 docs/img/user-journey.png delete mode 100644 docs/img/without wrap.png delete mode 100644 docs/index.html create mode 100644 docs/index.md rename docs/{ => intro}/img/Code-Preview-Config.png (100%) rename docs/{ => intro}/img/Live-Editor-Choices.png (100%) rename docs/{ => intro}/img/book-banner-post-release.jpg (100%) rename docs/{README.md => intro/index.md} (92%) rename docs/{ => intro}/n00b-gettingStarted.md (85%) rename docs/{ => intro}/n00b-syntaxReference.md (76%) delete mode 100644 docs/introduction.md delete mode 100644 docs/landing/class.png delete mode 100644 docs/landing/cover.jpg delete mode 100644 docs/landing/er.png delete mode 100644 docs/landing/flowchart.png delete mode 100644 docs/landing/gantt.png delete mode 100644 docs/landing/index.html delete mode 100644 docs/landing/sequence-diagram.png delete mode 100644 docs/landing/state.png rename docs/{ => misc}/faq.md (95%) rename docs/{ => misc}/integrations.md (99%) rename docs/{ => public}/.nojekyll (100%) rename docs/{img => public}/header.png (100%) rename docs/{ => syntax}/c4c.md (99%) rename docs/{ => syntax}/classDiagram.md (99%) rename docs/{ => syntax}/entityRelationshipDiagram.md (99%) rename docs/{ => syntax}/examples.md (97%) rename docs/{ => syntax}/flowchart.md (96%) rename docs/{ => syntax}/gantt.md (99%) rename docs/{ => syntax}/gitgraph.md (99%) rename docs/{ => syntax}/img/Gantt-excluded-days-within.png (100%) rename docs/{ => syntax}/img/Gantt-long-weekend-look.png (100%) rename docs/{ => syntax}/mindmap.md (99%) rename docs/{ => syntax}/pie.md (97%) rename docs/{ => syntax}/requirementDiagram.md (99%) rename docs/{ => syntax}/sequenceDiagram.md (99%) rename docs/{ => syntax}/stateDiagram.md (99%) rename docs/{ => syntax}/user-journey.md (95%) delete mode 100644 docs/theme.css delete mode 100644 docs/theme_themed.css delete mode 100644 docs/upgrading.md rename {vdocs => docs}/vite.config.ts (73%) create mode 100644 packages/mermaid/docs/.vitepress/config.ts create mode 100644 packages/mermaid/docs/.vitepress/mermaid-markdown-all.ts create mode 100644 packages/mermaid/docs/.vitepress/theme/custom.css create mode 100644 packages/mermaid/docs/.vitepress/theme/index.ts rename packages/mermaid/{src/docs => docs/community}/development.md (100%) rename packages/mermaid/{src/docs => docs/community}/img/er.png (100%) rename packages/mermaid/{src/docs => docs/community}/n00b-overview.md (92%) rename {vdocs => packages/mermaid/docs}/community/newDiagram.md (99%) rename packages/mermaid/{src/docs => docs/community}/security.md (100%) rename {vdocs => packages/mermaid/docs}/config/8.6.0_docs.md (96%) rename {vdocs => packages/mermaid/docs}/config/Tutorials.md (100%) rename packages/mermaid/{src/docs => docs/config}/accessibility.md (100%) rename packages/mermaid/{src/docs/developer-docs => docs/config}/configuration.md (100%) rename {vdocs => packages/mermaid/docs}/config/directives.md (100%) rename packages/mermaid/{src/docs => docs/config}/img/accessibility-div-example-2.png (100%) rename packages/mermaid/{src/docs => docs/config}/img/accessibility-div-example.png (100%) rename packages/mermaid/{src/docs => docs/config}/img/assignWithDepth.png (100%) rename packages/mermaid/{src/docs => docs/config}/img/object.assign without depth.png (100%) rename packages/mermaid/{src/docs => docs/config}/img/python-mermaid-integration.png (100%) rename packages/mermaid/{src/docs => docs/config}/img/wrapped text.png (100%) rename packages/mermaid/{src/docs => docs/config}/mermaidCLI.md (100%) rename packages/mermaid/{src/docs => docs/config}/n00b-advanced.md (100%) rename packages/mermaid/{src/docs => docs/config}/theming.md (97%) rename packages/mermaid/{src/docs => docs/config}/usage.md (98%) rename {vdocs => packages/mermaid/docs}/edit.md (100%) rename {vdocs => packages/mermaid/docs}/index.md (98%) rename packages/mermaid/{src/docs => docs/intro}/img/Code-Preview-Config.png (100%) rename packages/mermaid/{src/docs => docs/intro}/img/Live-Editor-Choices.png (100%) rename packages/mermaid/{src/docs => docs/intro}/img/book-banner-post-release.jpg (100%) rename packages/mermaid/{src/docs/README.md => docs/intro/index.md} (90%) rename {vdocs => packages/mermaid/docs}/intro/n00b-gettingStarted.md (95%) rename {vdocs => packages/mermaid/docs}/intro/n00b-syntaxReference.md (91%) rename packages/mermaid/{src/docs => docs/misc}/faq.md (100%) rename packages/mermaid/{src/docs => docs/misc}/integrations.md (100%) rename packages/mermaid/{src/docs => docs/public}/.nojekyll (100%) rename packages/mermaid/{src/docs/img => docs/public}/header.png (100%) rename packages/mermaid/{src/docs => docs/syntax}/c4c.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/classDiagram.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/entityRelationshipDiagram.md (100%) rename {vdocs => packages/mermaid/docs}/syntax/examples.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/flowchart.md (96%) rename {vdocs => packages/mermaid/docs}/syntax/gantt.md (99%) rename vdocs/syntax/gitGraph.md => packages/mermaid/docs/syntax/gitgraph.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/img/Gantt-excluded-days-within.png (100%) rename packages/mermaid/{src/docs => docs/syntax}/img/Gantt-long-weekend-look.png (100%) rename packages/mermaid/{src/docs => docs/syntax}/mindmap.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/pie.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/requirementDiagram.md (100%) rename {vdocs => packages/mermaid/docs}/syntax/sequenceDiagram.md (99%) rename packages/mermaid/{src/docs => docs/syntax}/stateDiagram.md (100%) rename packages/mermaid/{src/docs => docs/syntax}/user-journey.md (100%) create mode 100644 packages/mermaid/docs/vite.config.ts delete mode 100644 packages/mermaid/src/docs/8.6.0_docs.md delete mode 100644 packages/mermaid/src/docs/Configuration.md delete mode 100644 packages/mermaid/src/docs/SUMMARY.md delete mode 100644 packages/mermaid/src/docs/Setup.md delete mode 100644 packages/mermaid/src/docs/Tutorials.md delete mode 100644 packages/mermaid/src/docs/_navbar.md delete mode 100644 packages/mermaid/src/docs/_sidebar.md delete mode 100644 packages/mermaid/src/docs/breakingChanges.md delete mode 100644 packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md delete mode 100644 packages/mermaid/src/docs/directives.md delete mode 100644 packages/mermaid/src/docs/examples.md delete mode 100644 packages/mermaid/src/docs/gantt.md delete mode 100644 packages/mermaid/src/docs/gitgraph.md delete mode 100644 packages/mermaid/src/docs/img/Configuration.png delete mode 100644 packages/mermaid/src/docs/img/Editing-process.png delete mode 100644 packages/mermaid/src/docs/img/EditingHistory+Links.png delete mode 100644 packages/mermaid/src/docs/img/GitHub-Mark-32px.png delete mode 100644 packages/mermaid/src/docs/img/Live-Editor-Usage.png delete mode 100644 packages/mermaid/src/docs/img/book-banner-post-release.jpeg delete mode 100644 packages/mermaid/src/docs/img/book-banner-post-release.png delete mode 100644 packages/mermaid/src/docs/img/book-banner-pre-release.jpg delete mode 100644 packages/mermaid/src/docs/img/book-banner-pre-release.png delete mode 100644 packages/mermaid/src/docs/img/class.png delete mode 100644 packages/mermaid/src/docs/img/flow.png delete mode 100644 packages/mermaid/src/docs/img/gantt.png delete mode 100644 packages/mermaid/src/docs/img/git.png delete mode 100644 packages/mermaid/src/docs/img/n00b-firstFlow.png delete mode 100644 packages/mermaid/src/docs/img/new-diagrams.png delete mode 100644 packages/mermaid/src/docs/img/sequence.png delete mode 100644 packages/mermaid/src/docs/img/simple-er.png delete mode 100644 packages/mermaid/src/docs/img/user-journey.png delete mode 100644 packages/mermaid/src/docs/img/without wrap.png delete mode 100644 packages/mermaid/src/docs/index.html delete mode 100644 packages/mermaid/src/docs/introduction.md delete mode 100644 packages/mermaid/src/docs/landing/class.png delete mode 100644 packages/mermaid/src/docs/landing/cover.jpg delete mode 100644 packages/mermaid/src/docs/landing/er.png delete mode 100644 packages/mermaid/src/docs/landing/flowchart.png delete mode 100644 packages/mermaid/src/docs/landing/gantt.png delete mode 100644 packages/mermaid/src/docs/landing/index.html delete mode 100644 packages/mermaid/src/docs/landing/sequence-diagram.png delete mode 100644 packages/mermaid/src/docs/landing/state.png delete mode 100644 packages/mermaid/src/docs/n00b-gettingStarted.md delete mode 100644 packages/mermaid/src/docs/n00b-syntaxReference.md delete mode 100644 packages/mermaid/src/docs/newDiagram.md delete mode 100644 packages/mermaid/src/docs/sequenceDiagram.md delete mode 100644 packages/mermaid/src/docs/theme.css delete mode 100644 packages/mermaid/src/docs/theme_themed.css delete mode 100644 packages/mermaid/src/docs/upgrading.md delete mode 100644 vdocs/.vitepress/theme/custom.css delete mode 100644 vdocs/community/CHANGELOG.md delete mode 100644 vdocs/community/development.md delete mode 100644 vdocs/community/img/er.png delete mode 100644 vdocs/community/n00b-overview.md delete mode 100644 vdocs/community/security.md delete mode 100644 vdocs/config/Setup.md delete mode 100644 vdocs/config/accessibility.md delete mode 100644 vdocs/config/img/accessibility-div-example-2.png delete mode 100644 vdocs/config/img/accessibility-div-example.png delete mode 100644 vdocs/config/img/assignWithDepth.png delete mode 100644 vdocs/config/img/object.assign without depth.png delete mode 100644 vdocs/config/img/python-mermaid-integration.png delete mode 100644 vdocs/config/img/wrapped text.png delete mode 100644 vdocs/config/mermaidCLI.md delete mode 100644 vdocs/config/n00b-advanced.md delete mode 100644 vdocs/config/n00b-syntaxReference.md delete mode 100644 vdocs/config/theming.md delete mode 100644 vdocs/config/usage.md delete mode 100644 vdocs/intro/directives.md delete mode 100644 vdocs/intro/img/Code-Preview-Config.png delete mode 100644 vdocs/intro/img/Live-Editor-Choices.png delete mode 100644 vdocs/intro/img/book-banner-post-release.jpg delete mode 100644 vdocs/intro/index.md delete mode 100644 vdocs/misc/faq.md delete mode 100644 vdocs/misc/integrations.md delete mode 100644 vdocs/public/.nojekyll delete mode 100644 vdocs/public/header.png delete mode 100644 vdocs/syntax/c4c.md delete mode 100644 vdocs/syntax/classDiagram.md delete mode 100644 vdocs/syntax/entityRelationshipDiagram.md delete mode 100644 vdocs/syntax/flowchart.md delete mode 100644 vdocs/syntax/img/Gantt-excluded-days-within.png delete mode 100644 vdocs/syntax/img/Gantt-long-weekend-look.png delete mode 100644 vdocs/syntax/pie.md delete mode 100644 vdocs/syntax/requirementDiagram.md delete mode 100644 vdocs/syntax/stateDiagram.md delete mode 100644 vdocs/syntax/userJourney.md diff --git a/.gitignore b/.gitignore index 6e4fe723a2..433a9b05f4 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,6 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo + +#docs generate from code +packages/mermaid/docs/config/setup \ No newline at end of file diff --git a/vdocs/.vitepress/config.ts b/docs/.vitepress/config.ts similarity index 88% rename from vdocs/.vitepress/config.ts rename to docs/.vitepress/config.ts index d3cdccc9a4..4597de9009 100644 --- a/vdocs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,15 +1,14 @@ import { version } from '../../package.json'; -import ExampleMarkdown from './mermaid-markdown-all'; +import MermaidMarkdown from './mermaid-markdown-all'; import { defineConfig } from 'vitepress'; -import { update } from 'lodash'; export default defineConfig({ lang: 'en-US', title: 'Mermaid', description: 'Create diagrams and visualizations using text and code.', base: '/mermaid-docs/', - lastUpdated: true, - markdown: ExampleMarkdown, + markdown: MermaidMarkdown, + ignoreDeadLinks: true, //TODO: try to fixe those in autogenerated docs themeConfig: { nav: nav(), @@ -21,14 +20,6 @@ export default defineConfig({ // "/misc/": sidebarMisc(), // "/community/": sidebarCommunity(), }, - - // TODO: update to mermaid - editLink: { - pattern: 'https://github.com/emersonbottero/mermaid/edit/develop/vdocs/:path', - text: 'Edit this page on GitHub', - }, - - socialLinks: [{ icon: 'github', link: 'https://github.com/emersonbottero/mermaid' }], }, }); @@ -56,7 +47,7 @@ function nav() { }, { text: 'Contributing', - link: 'https://github.com/knsv/mermaid/issues/866', + link: 'https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md', }, ], }, @@ -85,6 +76,10 @@ function sidebarAll() { ...sidebarConfig(), ...sidebarMisc(), ...sidebarCommunity(), + // { + // text: "Generated", + // items: [{ text: "modules", link: "docs/code/modules" }], + // }, ]; } @@ -122,12 +117,13 @@ function sidebarConfig() { items: [ { text: 'Tutorials', link: '/config/Tutorials' }, { text: 'API-Usage', link: '/config/usage' }, - { text: 'Mermaid API Configuration', link: '/config/Setup' }, + { text: 'Mermaid API Configuration', link: '/config/setup/modules' }, { text: 'Directives', link: '/config/directives' }, { text: 'Theming', link: '/config/theming' }, { text: 'Accessibility', link: '/config/accessibility' }, { text: 'Mermaid CLI', link: '/config/mermaidCLI' }, { text: 'Advanced usage', link: '/config/n00b-advanced' }, + { text: 'Configuration', link: '/config/configuration' }, ], }, ]; diff --git a/vdocs/.vitepress/mermaid-markdown-all.ts b/docs/.vitepress/mermaid-markdown-all.ts similarity index 100% rename from vdocs/.vitepress/mermaid-markdown-all.ts rename to docs/.vitepress/mermaid-markdown-all.ts diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000000..d42052792b --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,13 @@ +@media (min-width: 1440px) { + .VPDoc:not(.has-sidebar) .container[data-v-10119189] { + max-width: 100%; + } + + .VPDoc.has-aside .content-container[data-v-10119189] { + max-width: 100%; + } +} + +:root { + --vp-layout-max-width: 100%; +} diff --git a/vdocs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts similarity index 100% rename from vdocs/.vitepress/theme/index.ts rename to docs/.vitepress/theme/index.ts diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md deleted file mode 100644 index 7dbfecee4a..0000000000 --- a/docs/CHANGELOG.md +++ /dev/null @@ -1,1050 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -# Change Log - -All changes are in descending order, beginning with the newest (latest) version. - -## Unreleased - -[Full Changelog](https://github.com/knsv/mermaid/compare/8.7.0...HEAD) - -## 8.7.0 (2020-08-09) - -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | -📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) - -This version brings with it a system for [dynamic and integrated configuration of the diagram themes](./theming.md). -The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. - -Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md). - -**These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.** - -### Site-wide Themes - -Site-wide themes are still declared via `initialize` by site owners. - -Example of `Initalize` call setting `theme` to `base`: - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', - theme: 'base', -}); -``` - -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. - -### Themes at the Local or Current Level - -When Generating a diagram using on a webpage that supports mermaid. -It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. - -**Following is an example:** - -```mermaid-example -%%{init: {'theme':'base'}}%% - graph TD - a --> b -``` - -```mermaid -%%{init: {'theme':'base'}}%% - graph TD - a --> b -``` - -### Making a Custom Theme with `themeVariables` - -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. - -| Parameter | Description | Type | Required | Objects contained | -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | - -Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -**Notes:** -Leaving it empty will set all variable values to default. - -## 8.6.0 (2020-07-13) - -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.6.0) - -[Version 8.6.0](../getting-started/8.6.0_docs.md) introduces New Configuration Protocols and Directives and a Beta for the [New Mermaid Live-Editor](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) - -**With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation.** - -Directives allow for a diagram specific overriding of config, as it has been discussed in Configurations. -This allows site users to input modifications to config alongside diagram definitions, when creating diagrams on a private webpage that supports Mermaid. - -## 8.5.0 (2020-04-11) - -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/untagged-31c93788afe260d914bb) - -This version introduces New diagrams! - -**New diagrams in 8.5** - -With version 8.5 there are some bug fixes and enhancements, plus a new diagram type, entity relationship diagrams. - -![Image showing the new ER diagram type](./img/er.png) - -## 8.2.0 (2019-07-17) - -🏷️ [Tag](https://github.com/mermaid-js/mermaid/tree/8.2.0) - -Version 8.2.0, introduces a security improvement. - -A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. -This was introduced in version 8.2 as a security improvement, aimed at preventing malicious use. - -### securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------- | -| securitylevel | Level of trust for parsed diagram | String | Required | Strict, Loose, antiscript | - -**Notes:** - -- **strict**: (**default**) tags in text are encoded, click functionality is disabled -- **loose**: tags in text are allowed, click functionality is enabled -- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - -⚠️ **Note**: This changes the default behaviour of mermaid so that after upgrade to 8.2, if the `securityLevel` is not configured, tags in flowcharts are encoded as tags and clicking is prohibited. - -If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing. -By doing this clicks and tags are again allowed. - -### To change `securityLevel` with `mermaidAPI.initialize`: - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', -}); -``` - -**Closed issues:** - -- please add tag for 8.0.0 release [#863](https://github.com/knsv/mermaid/issues/863) -- classDiagram breaks on any edit [#858](https://github.com/knsv/mermaid/issues/858) - -## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0) - -**Implemented enhancements:** - -- Theme for dark background [#301](https://github.com/knsv/mermaid/issues/301) -- \[Feature request] gantt diagram axis format [#269](https://github.com/knsv/mermaid/issues/269) -- Implement render function for server side rendering using phantomjs [#169](https://github.com/knsv/mermaid/issues/169) - -**Fixed bugs:** - -- mermaid -v filename.mmd gives You must specify at least one source file. [#328](https://github.com/knsv/mermaid/issues/328) -- Not Able to See Labels even htmlLabels:false added [#268](https://github.com/knsv/mermaid/issues/268) - -**Closed issues:** - -- Gantt and sequence diagram do not render [#853](https://github.com/knsv/mermaid/issues/853) -- margins around flowchart are not balanced [#852](https://github.com/knsv/mermaid/issues/852) -- Smaller bundles [#843](https://github.com/knsv/mermaid/issues/843) -- unicode in labels [#776](https://github.com/knsv/mermaid/issues/776) -- Hard-changing drawing of arrows per edge type [#775](https://github.com/knsv/mermaid/issues/775) -- SequenceDiagram wrong [#773](https://github.com/knsv/mermaid/issues/773) -- Render mermaid on github pages with simple code [#772](https://github.com/knsv/mermaid/issues/772) -- FlowChart - large space between text and the image [#754](https://github.com/knsv/mermaid/issues/754) -- Class Diagram Issues when using Mermaid in Stackedit [#748](https://github.com/knsv/mermaid/issues/748) -- Multi-platform CI [#744](https://github.com/knsv/mermaid/issues/744) -- gantt: sections can't have a colon [#742](https://github.com/knsv/mermaid/issues/742) -- Yarn build does not add mermaid.min.css to dist [#732](https://github.com/knsv/mermaid/issues/732) -- Is there a grammar / keyword / more than just the basic examples? [#718](https://github.com/knsv/mermaid/issues/718) -- Click event and react component [#717](https://github.com/knsv/mermaid/issues/717) -- Long text going outside the box [#706](https://github.com/knsv/mermaid/issues/706) -- How to migrate from yUML to mermaid? [#704](https://github.com/knsv/mermaid/issues/704) -- Issue on Dynamic Creation in PHP [#690](https://github.com/knsv/mermaid/issues/690) -- `click "\#target"` and `click "http://url"` should create regular links [#689](https://github.com/knsv/mermaid/issues/689) -- Support Chinese punctuation [#687](https://github.com/knsv/mermaid/issues/687) -- \[Question] Proper way to install on Mac? [#681](https://github.com/knsv/mermaid/issues/681) -- Has Mermaid a graphical interface to make diagrams? [#668](https://github.com/knsv/mermaid/issues/668) -- mermaid installation on debian [#649](https://github.com/knsv/mermaid/issues/649) -- "Cannot activate" in sequenceDiagram [#647](https://github.com/knsv/mermaid/issues/647) -- Link ("click" statement) in flowchart does not work in exported SVG [#646](https://github.com/knsv/mermaid/issues/646) -- How to pass styling [#639](https://github.com/knsv/mermaid/issues/639) -- The live editor cant show seq diagram with notes for 8.0.0-alpha.3 [#638](https://github.com/knsv/mermaid/issues/638) -- import mermaid.css with ES6 + NPM [#634](https://github.com/knsv/mermaid/issues/634) -- Actor line cuts through other elements [#633](https://github.com/knsv/mermaid/issues/633) -- Graph TD line out of the picture (left side) [#630](https://github.com/knsv/mermaid/issues/630) -- Flowchart labels appear "cutoff" [#628](https://github.com/knsv/mermaid/issues/628) -- Uncaught TypeError: \_.constant is not a function (mermaid.js) [#626](https://github.com/knsv/mermaid/issues/626) -- Missing tags and releases for newer versions [#623](https://github.com/knsv/mermaid/issues/623) -- Mermaid and Leo / Leo Vue [#622](https://github.com/knsv/mermaid/issues/622) -- mermaidAPI gantt Vue.js [#621](https://github.com/knsv/mermaid/issues/621) -- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [#620](https://github.com/knsv/mermaid/issues/620) -- how to get mermaidAPI? [#617](https://github.com/knsv/mermaid/issues/617) -- Error in startOnLoad documentation? [#616](https://github.com/knsv/mermaid/issues/616) -- Example export to SVG generates error [#614](https://github.com/knsv/mermaid/issues/614) -- The new online editor does not support previously generated links [#613](https://github.com/knsv/mermaid/issues/613) -- Grammar / Syntax documentation for flowcharts [#607](https://github.com/knsv/mermaid/issues/607) -- Mermaid does not work with d3.js [#606](https://github.com/knsv/mermaid/issues/606) -- Why does this code's flowchart lines get cut-off on screen? [#604](https://github.com/knsv/mermaid/issues/604) -- click keyword does not fire my callback (on the demo Website too) [#603](https://github.com/knsv/mermaid/issues/603) -- Online Editor fails to show exported SVG [#601](https://github.com/knsv/mermaid/issues/601) -- Just saying thanks! [#597](https://github.com/knsv/mermaid/issues/597) -- stylesheet crashed with other library like abcjs [#596](https://github.com/knsv/mermaid/issues/596) -- Missing connection [#594](https://github.com/knsv/mermaid/issues/594) -- How to use mermaid on node.js restful api? [#593](https://github.com/knsv/mermaid/issues/593) -- Remove status code [#589](https://github.com/knsv/mermaid/issues/589) -- Golang based editor [#588](https://github.com/knsv/mermaid/issues/588) -- sequenceDiagram -> notetext css font is hardcoded [#587](https://github.com/knsv/mermaid/issues/587) -- Multiple graph in the live editor [#586](https://github.com/knsv/mermaid/issues/586) -- All \<svg> elements in page are colored black [#584](https://github.com/knsv/mermaid/issues/584) -- Styling: classes aren't applied to elements. [#582](https://github.com/knsv/mermaid/issues/582) -- Rounded connections [#580](https://github.com/knsv/mermaid/issues/580) -- Arrows are not being shown correctly in the dark theme [#578](https://github.com/knsv/mermaid/issues/578) -- The documentation for CLI seems outdated. [#572](https://github.com/knsv/mermaid/issues/572) -- No effect of click event:can not open link [#571](https://github.com/knsv/mermaid/issues/571) -- Text colors are not correct in VSCODE [#570](https://github.com/knsv/mermaid/issues/570) -- Nodes aren't aligned properly (just need an explanation) [#568](https://github.com/knsv/mermaid/issues/568) -- setting margin around figure in R [#567](https://github.com/knsv/mermaid/issues/567) -- Arrows should Come out in upward and Downward direction from decision Node [#566](https://github.com/knsv/mermaid/issues/566) -- TypeError: Cannot read property 'select' of undefined [#563](https://github.com/knsv/mermaid/issues/563) -- A little bug [#557](https://github.com/knsv/mermaid/issues/557) -- Japanese text appears garbled [#554](https://github.com/knsv/mermaid/issues/554) -- classdiagram not works in mermaid live_editor [#553](https://github.com/knsv/mermaid/issues/553) -- font awesome in link text? [#546](https://github.com/knsv/mermaid/issues/546) -- q: heard of the cosmogol standard? [#545](https://github.com/knsv/mermaid/issues/545) -- Arrow heads missing (cli, 7.0.3) [#544](https://github.com/knsv/mermaid/issues/544) -- No Edge Boxes if useHtmlLabels=false [#541](https://github.com/knsv/mermaid/issues/541) -- how to change mermaid text color or line text block color? [#534](https://github.com/knsv/mermaid/issues/534) -- FlowChart visualization broken when downloading from live editor [#533](https://github.com/knsv/mermaid/issues/533) -- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [#532](https://github.com/knsv/mermaid/issues/532) -- live editor make browser(safari on macOS\&iOS) not longer respond [#531](https://github.com/knsv/mermaid/issues/531) -- css classes need a prefix/namespace [#527](https://github.com/knsv/mermaid/issues/527) -- input activate/deactivate cause safari unresponding [#521](https://github.com/knsv/mermaid/issues/521) -- Cannot Render the Mermaid Graph to PDF ? [#520](https://github.com/knsv/mermaid/issues/520) -- clicking links works from inset in subgraph but not from nodes [#516](https://github.com/knsv/mermaid/issues/516) -- Strange syntax error - when importing mermaid.js [#515](https://github.com/knsv/mermaid/issues/515) -- gantt x-axis display [#510](https://github.com/knsv/mermaid/issues/510) -- phantomjs renamed to phantomjs-prebuilt [#508](https://github.com/knsv/mermaid/issues/508) -- issue when using sphinxcontrib-mermaid extension for sphinx [#507](https://github.com/knsv/mermaid/issues/507) -- layout of docs page looks broken [#504](https://github.com/knsv/mermaid/issues/504) -- Problem showing graph with php on localhost [#502](https://github.com/knsv/mermaid/issues/502) -- logLevel's option doesn't work at 7.0.0 [#501](https://github.com/knsv/mermaid/issues/501) -- How do I get the log for a render or parse attempt? [#500](https://github.com/knsv/mermaid/issues/500) -- Mermaid neutral style style to built in latest release [#499](https://github.com/knsv/mermaid/issues/499) -- Any plans for adding a typescript definition file? [#495](https://github.com/knsv/mermaid/issues/495) -- Gantt diagrams too narrow [#493](https://github.com/knsv/mermaid/issues/493) -- Flowchart edge labels placement [#490](https://github.com/knsv/mermaid/issues/490) -- Very different styles when rendering as png vs. svg [#489](https://github.com/knsv/mermaid/issues/489) -- New editor that supports mermaid: Caret [#488](https://github.com/knsv/mermaid/issues/488) -- Gant PNG margin [#486](https://github.com/knsv/mermaid/issues/486) -- ReferenceError: window is not defined [#485](https://github.com/knsv/mermaid/issues/485) -- Menu and layout bugs in docs [#484](https://github.com/knsv/mermaid/issues/484) -- Mermaid resets some of the page CSS styles [#482](https://github.com/knsv/mermaid/issues/482) -- Arrows rendering incorrectly in online editor [#480](https://github.com/knsv/mermaid/issues/480) -- CSS stroke-dasharray ignored by browsers but not other viewers [#474](https://github.com/knsv/mermaid/issues/474) -- mermaid - Browser Support issue [#472](https://github.com/knsv/mermaid/issues/472) -- Totally love mermaid I might pop! [#471](https://github.com/knsv/mermaid/issues/471) -- Sequence Diagram: Missing x on async arrows (png) [#469](https://github.com/knsv/mermaid/issues/469) -- live editor: the svg file rendered from graph is not supported by browsers [#468](https://github.com/knsv/mermaid/issues/468) -- Not found css [#462](https://github.com/knsv/mermaid/issues/462) -- Phantomjs Dependency [#461](https://github.com/knsv/mermaid/issues/461) -- Mermaid cli not working for subgraphs [#459](https://github.com/knsv/mermaid/issues/459) -- Support for notes across multiple participants? [#458](https://github.com/knsv/mermaid/issues/458) -- Related to Issue #329: Phantomjs issues. [#455](https://github.com/knsv/mermaid/issues/455) -- Add a click style [#426](https://github.com/knsv/mermaid/issues/426) -- Add Parallel block (par) to sequence diagrams [#425](https://github.com/knsv/mermaid/issues/425) -- updating shapes after the flow chart rendering complete [#424](https://github.com/knsv/mermaid/issues/424) -- can't catch parse error Maximum call stack size exceeded on safari [#421](https://github.com/knsv/mermaid/issues/421) -- Arrows endings are missing [#419](https://github.com/knsv/mermaid/issues/419) -- shouldn't mermaid become more like Markdown ? [#417](https://github.com/knsv/mermaid/issues/417) -- Live editor show rendered diagram if syntax invalid [#415](https://github.com/knsv/mermaid/issues/415) -- Linkstyle stroke does not work [#410](https://github.com/knsv/mermaid/issues/410) -- flowchart id's with dots in them .. break links [#408](https://github.com/knsv/mermaid/issues/408) -- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [#407](https://github.com/knsv/mermaid/issues/407) -- Some Chinese character will case Safari no responding. [#405](https://github.com/knsv/mermaid/issues/405) -- Cannot center-justify text in nodes? [#397](https://github.com/knsv/mermaid/issues/397) -- Edge labels should have white background in live editor [#396](https://github.com/knsv/mermaid/issues/396) -- Live editor does not support activate/deactivate [#394](https://github.com/knsv/mermaid/issues/394) -- Styling subgraph? [#391](https://github.com/knsv/mermaid/issues/391) -- Update live editor to version 6.0.0 [#387](https://github.com/knsv/mermaid/issues/387) -- sequence diagram config issue [#385](https://github.com/knsv/mermaid/issues/385) -- How to add newline in the text [#384](https://github.com/knsv/mermaid/issues/384) -- PhantomJS crashes on a large graph [#380](https://github.com/knsv/mermaid/issues/380) -- Finnish support for class diagrams using plantuml syntax [#377](https://github.com/knsv/mermaid/issues/377) -- mermaidAPI.render generated different svg code from mermaid.int() [#374](https://github.com/knsv/mermaid/issues/374) -- Put your own action on the chart [#372](https://github.com/knsv/mermaid/issues/372) -- when declaring participants the elements are generated twice [#370](https://github.com/knsv/mermaid/issues/370) -- Example Flowchart is cut in display (Chrome). [#368](https://github.com/knsv/mermaid/issues/368) -- Add shebang support to diagrams [#365](https://github.com/knsv/mermaid/issues/365) -- Silencing CLI output [#352](https://github.com/knsv/mermaid/issues/352) -- SequenceDiagram: 3+ Alternative Paths [#348](https://github.com/knsv/mermaid/issues/348) -- Smaller height of actor boxes [#342](https://github.com/knsv/mermaid/issues/342) -- Question: lib/phantomscript.js - foreignObjects in SVG - related to #58 [#340](https://github.com/knsv/mermaid/issues/340) -- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [#337](https://github.com/knsv/mermaid/issues/337) -- Tabs & subgraphs cause rendering error [#336](https://github.com/knsv/mermaid/issues/336) -- Display question: right angles [#335](https://github.com/knsv/mermaid/issues/335) -- No Arrows rendered v0.5.8 [#330](https://github.com/knsv/mermaid/issues/330) -- You had errors in your syntax. Use --help for further information. [#327](https://github.com/knsv/mermaid/issues/327) -- Allow alternate arrow syntax that doesn't close html comments [#322](https://github.com/knsv/mermaid/issues/322) -- Comment in subgraph [#319](https://github.com/knsv/mermaid/issues/319) -- Update graph [#311](https://github.com/knsv/mermaid/issues/311) -- css conflicts with boostrap's css [#308](https://github.com/knsv/mermaid/issues/308) -- Can not get click event to fire. [#306](https://github.com/knsv/mermaid/issues/306) -- Fix phantomjs2 compatibility [#304](https://github.com/knsv/mermaid/issues/304) -- Flowcharts do not work in native IE11 [#303](https://github.com/knsv/mermaid/issues/303) -- Integration with remark.js - tutorial added [#302](https://github.com/knsv/mermaid/issues/302) -- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#299](https://github.com/knsv/mermaid/issues/299) -- src/mermaid.js generates bad code [#297](https://github.com/knsv/mermaid/issues/297) -- Fresh fork: jasmine tests fail [#294](https://github.com/knsv/mermaid/issues/294) -- CSS clash [#292](https://github.com/knsv/mermaid/issues/292) -- Mermaid does not work in Chrome 48 [#281](https://github.com/knsv/mermaid/issues/281) -- circle and ellipse cannot change color by classDef [#271](https://github.com/knsv/mermaid/issues/271) -- npm run watch doesn't work due missing dependencies [#266](https://github.com/knsv/mermaid/issues/266) -- label out of node [#262](https://github.com/knsv/mermaid/issues/262) -- IE11 Support issue [#261](https://github.com/knsv/mermaid/issues/261) -- mermaid without browser [#260](https://github.com/knsv/mermaid/issues/260) -- Insufficient capacity of gantt diagrams [#226](https://github.com/knsv/mermaid/issues/226) -- some WARN about installation [#222](https://github.com/knsv/mermaid/issues/222) -- Live editor offline access [#217](https://github.com/knsv/mermaid/issues/217) -- suggest: code highlight mode config for editors [#212](https://github.com/knsv/mermaid/issues/212) -- Uncaught RangeError: Maximum call stack size exceeded [#189](https://github.com/knsv/mermaid/issues/189) -- Styling label texts [#50](https://github.com/knsv/mermaid/issues/50) - -**Merged pull requests:** - -- Remove console.log in classDB. [#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey)) -- Bump sshpk from 1.13.1 to 1.16.1 [#851](https://github.com/knsv/mermaid/pull/851) ([dependabot\[bot\]](https://github.com/apps/dependabot)) -- Significantly smaller bundles [#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato)) -- Support styling of subgraphs [#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-)) -- fix dark theme loop labels not visible [#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn)) -- fix draw function can only call once [#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship)) -- Fix dotted lines not appearing in flowcharts when HTML labels disabled [#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu)) -- Fix issue with XML line breaks inside vertex labels [#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang)) -- fixed diagrams [#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus)) -- Clickable gantt tasks [#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht)) -- linkStyle now supports list of indexes with a few tests [#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov)) -- fix class diagram mermaid [#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai)) -- Added exclude weekdays to definition [#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo)) -- SVG link rendering [#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep)) -- Gantt milestones [#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs)) -- Remove duplicate code [#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030)) -- Render nodes as real links [#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep)) -- Fix issue with marker-end. [#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen)) -- Make Class Diagrams usable in Stackedit and Live Editor [#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe)) -- Adding trapezoid and inverse trapezoid vertex options. [#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf)) -- Add option for right angles [#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland)) -- Add nested activation classes [#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland)) -- wip: class diagram cardinality display [#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz)) -- add comments about CSS in config [#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90)) -- SequenceDiagram: Add support for multiple alt else statements [#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel)) -- fix #426 - add class .clickable on nodes with click function or link [#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil)) -- Spec fix 1 [#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt)) - -## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5) - -**Closed issues:** - -- live editor latin error after update [#560](https://github.com/knsv/mermaid/issues/560) -- Simple full example in online documentation is broken [#558](https://github.com/knsv/mermaid/issues/558) -- Graph No Arrow Head v7.0.3 [#543](https://github.com/knsv/mermaid/issues/543) -- Conflict while using mermaid along with core-js [#512](https://github.com/knsv/mermaid/issues/512) -- Export to pdf on website [#496](https://github.com/knsv/mermaid/issues/496) -- New downstream project: Mermaid Preview for VSCode [#442](https://github.com/knsv/mermaid/issues/442) -- Can't Zoom the flowchart ? [#399](https://github.com/knsv/mermaid/issues/399) -- line labels are not rendered correctly in live editor [#366](https://github.com/knsv/mermaid/issues/366) -- mermaid-loader [#361](https://github.com/knsv/mermaid/issues/361) -- Are there any documentation or examples for classDiagram and gitGraph? [#359](https://github.com/knsv/mermaid/issues/359) -- \# character broken in 0.5.8 [#347](https://github.com/knsv/mermaid/issues/347) -- Documentation issue: CSS example is not visible [#345](https://github.com/knsv/mermaid/issues/345) -- Include documentation for command line usage [#326](https://github.com/knsv/mermaid/issues/326) -- Fresh fork: can't build dist [#296](https://github.com/knsv/mermaid/issues/296) -- Invalid value for \<svg> attribute viewBox="0 0 -Infinity -Infinity" [#291](https://github.com/knsv/mermaid/issues/291) -- Webpack require fails [#277](https://github.com/knsv/mermaid/issues/277) -- New documentation - need improved logo [#216](https://github.com/knsv/mermaid/issues/216) - -## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3) - -**Closed issues:** - -- the documentation website is down [#539](https://github.com/knsv/mermaid/issues/539) -- Good example of interactivity with mermaidAPI [#514](https://github.com/knsv/mermaid/issues/514) - -## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2) - -**Closed issues:** - -- CDN is not working [#511](https://github.com/knsv/mermaid/issues/511) -- A sampe sequenceDiagram crashes mermaid-cli [#492](https://github.com/knsv/mermaid/issues/492) -- Mermaid doesn't delete nodes when called multiple times [#491](https://github.com/knsv/mermaid/issues/491) -- API crashes on 2nd render() call [#478](https://github.com/knsv/mermaid/issues/478) -- sequenceDiagram: dotted line for alt and empty bracket should be hidden [#456](https://github.com/knsv/mermaid/issues/456) -- SVG output (almost) not correct [#434](https://github.com/knsv/mermaid/issues/434) -- How to set axisFormatter of gantt in mermaid CLI? [#428](https://github.com/knsv/mermaid/issues/428) -- customizing link style with any color sets `fill` property to `black` instead of `none` [#416](https://github.com/knsv/mermaid/issues/416) -- New line at the end of SVG file [#400](https://github.com/knsv/mermaid/issues/400) -- CLI doesn't work [#389](https://github.com/knsv/mermaid/issues/389) -- Can't render subgraphs with htmlLabels: false [#367](https://github.com/knsv/mermaid/issues/367) -- Color arrowhead [#362](https://github.com/knsv/mermaid/issues/362) -- CLI: Invisible text, lines in SVG output [#341](https://github.com/knsv/mermaid/issues/341) - -**Merged pull requests:** - -- Support Multi-line Actor Descriptions [#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj)) -- Update Travis config [#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong)) -- Fix spelling of 'you' in sequenceDiagram docs [#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson)) -- Improve CLI output [#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042)) -- Modernize mermaid [#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong)) -- Modernize mermaid [#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong)) -- Update CLI instructions [#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps)) -- Add style for classDiagram to dark/default theme [#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel)) -- Fix documentation for git graph. [#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs)) -- Fix links in documentations [#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71)) -- Update README.md with git graph sample [#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur)) -- Fix misspelling of “another” [#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert)) -- Fixed #456 sequenceDiagram: dotted line for alt and empty bracket sho… [#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong)) -- Add viewbox attr to class diagram [#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm)) -- add par statement to sequenceDiagram [#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor)) - -## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29) - -[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0) - -**Implemented enhancements:** - -- npm install -g mermaid does not install phantomjs [#329](https://github.com/knsv/mermaid/issues/329) -- activation boxes [#313](https://github.com/knsv/mermaid/issues/313) - -**Closed issues:** - -- demos on io site not working [#466](https://github.com/knsv/mermaid/issues/466) -- Can not be generated PNG pictures through CLI with Chinese [#451](https://github.com/knsv/mermaid/issues/451) -- Round nodes cannot be styled with CSS classes [#443](https://github.com/knsv/mermaid/issues/443) -- webpack gulp UglifyJsPlugin error. [#440](https://github.com/knsv/mermaid/issues/440) -- String concatenation isn't working [#432](https://github.com/knsv/mermaid/issues/432) -- text flow/wrap in actor box of sequence diagram [#422](https://github.com/knsv/mermaid/issues/422) -- Online live editor still use old version [#402](https://github.com/knsv/mermaid/issues/402) -- uncaught TypeError: t.getTransformToElement is not a function [#401](https://github.com/knsv/mermaid/issues/401) -- Only works when using browserify'd code [#373](https://github.com/knsv/mermaid/issues/373) -- document the use of shebang line in mmd files [#364](https://github.com/knsv/mermaid/issues/364) -- Diagrams are small and unreadable in IE 11 - since 0.5.1 [#356](https://github.com/knsv/mermaid/issues/356) -- \[Feature Request] ER-Diagram Support [#354](https://github.com/knsv/mermaid/issues/354) -- The need for mermaid.css should be mentioned explicitly in the intro docs... [#273](https://github.com/knsv/mermaid/issues/273) - -**Merged pull requests:** - -- Update index.html [#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight)) -- Fix for #416, customizing link style with any color sets `fill` property to `black` instead of `none` [#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin)) -- Allow .node>circle to receive css styles [#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz)) -- Fix spelling [#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn)) -- added tests and fix cli css style selector lowercase problem [#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev)) -- Update d3.js [#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz)) -- added tests to reproduce #434 in flowchart [#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev)) -- Code Climate config [#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott)) -- fix gantt and sequence digram cli cfg [#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev)) -- fix gantt chart cli configuration broken [#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev)) -- fix gantt chart cli configuration parsing including functions [#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev)) -- Uses an empty text node instead of a string for svg group labels [#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick)) -- use tspan via d3.textwrap to place actor text in sequence diagram [#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev)) -- \#422 use foreignObject/div to place actor label in sequence diagram [#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev)) -- Clarify the need for a CSS stylesheet [#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb)) -- Added hads downstream project [#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied)) -- update usage and fix #273 [#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance)) -- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur)) -- New neutral theme [#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied)) -- fix cli issues [#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page)) -- Add missing space for 'Labels out of bounds' section [#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist)) -- Fix typo: `pats` -> `paths` [#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon)) -- Added class diagram example to README.md [#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion)) -- override normal flowchart arrowhead to allow css styling [#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue)) -- added sphinx extension [#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan)) -- Fix typo in the sequence diagram documentation [#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino)) - -## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0) - -**Closed issues:** - -- Docs css: code hard to read [#324](https://github.com/knsv/mermaid/issues/324) -- About Markpad integration [#323](https://github.com/knsv/mermaid/issues/323) -- How to link backwards in flowchart? [#321](https://github.com/knsv/mermaid/issues/321) -- Help with editor [#310](https://github.com/knsv/mermaid/issues/310) -- \+1 [#293](https://github.com/knsv/mermaid/issues/293) -- Basic chart does not render on Chome, but does in Firefox [#290](https://github.com/knsv/mermaid/issues/290) -- Live editor is broken [#285](https://github.com/knsv/mermaid/issues/285) -- "No such file or directory" trying to run mermaid 0.5.7 on OS X [#284](https://github.com/knsv/mermaid/issues/284) -- participant name as "Long Long Name" [#283](https://github.com/knsv/mermaid/issues/283) -- Windows - cli - could not find phantomjs at the specified path [#236](https://github.com/knsv/mermaid/issues/236) - -**Merged pull requests:** - -- The option of gantt for the spaces for the section names. [#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi)) -- Gitgraph: Make reset work with parent ref carets [#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur)) -- Remove the text-shadows that make the text look blurry [#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers)) -- add line interpolation to linkStyle in flowchart [#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn)) -- Support git graph diagrams in mermaid [#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur)) -- Build and test execution changes [#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea)) -- Reformatting of css files [#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr)) -- (WIP) Sequence Diagram Title Support [#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja)) -- activations doc + few fixes [#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy)) -- Dark theme for better contrast on darker backgrounds [#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a)) -- Activations [#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy)) -- Support leading comments for sequenceDiagrams [#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle)) -- Show a little lenience for white-space around names [#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle)) -- Update list of downstream projects [#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo)) -- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) -- Issue 297 - src/mermaid.js generates bad code [#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) -- Updated instructions for running tests [#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) -- Add Markdown Plus to Downstream projects [#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong)) -- Quote phantomPath so that it doesn't fail on window [#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur)) - -## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8) - -## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7) - -**Closed issues:** - -- Mermaid + LightPaper = ❤️ [#280](https://github.com/knsv/mermaid/issues/280) -- Bower Integration [#278](https://github.com/knsv/mermaid/issues/278) -- Mermaid breaks when variables end in 'v' [#276](https://github.com/knsv/mermaid/issues/276) -- sequence diagrams don't support participant aliasing [#263](https://github.com/knsv/mermaid/issues/263) -- One diagram that fails to render stops further execution on the page [#259](https://github.com/knsv/mermaid/issues/259) -- Where to find line layout algorithm? [#258](https://github.com/knsv/mermaid/issues/258) -- Compatibility with node.js [#257](https://github.com/knsv/mermaid/issues/257) -- Label resizing with dynamically loaded fonts [#255](https://github.com/knsv/mermaid/issues/255) -- SVG arrowheads are broken in the CLI [#249](https://github.com/knsv/mermaid/issues/249) -- Cannot read property 'replace' of undefined [#239](https://github.com/knsv/mermaid/issues/239) - -**Merged pull requests:** - -- gh-50 Allow styling of edge labels in css [#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia)) -- Allow sequenceDiagram participant aliasing [#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042)) - -## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6) - -**Implemented enhancements:** - -- Add download SVG link to the live editor [#144](https://github.com/knsv/mermaid/issues/144) - -**Fixed bugs:** - -- Live Editor: Permalink address not being parsed [#202](https://github.com/knsv/mermaid/issues/202) - -**Closed issues:** - -- title doesn't work in sequenceDiagram [#248](https://github.com/knsv/mermaid/issues/248) -- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [#247](https://github.com/knsv/mermaid/issues/247) -- Broken in firefox? [#245](https://github.com/knsv/mermaid/issues/245) -- When there is a Chinese symbol in the flowchart, it will crash。 [#238](https://github.com/knsv/mermaid/issues/238) -- Non-alpha characters included in ALPHA token (flow graph jison) [#232](https://github.com/knsv/mermaid/issues/232) -- subgraph not rendering with change to sample [#231](https://github.com/knsv/mermaid/issues/231) -- sequence diagram requires a new line at the end? [#229](https://github.com/knsv/mermaid/issues/229) - -**Merged pull requests:** - -- Make sequenceDiagram terminal newline optional [#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042)) -- Support sequenceDiagram "over" notes [#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042)) -- Properly handle "rest of line" statements [#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042)) -- CLI: Propagate exit code from lib (i.e., phantomjs) [#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042)) -- flowRender.js - Fix FontAwesome icon insert [#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal)) -- updated sequence diagram link in live editor [#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) -- updated links in README.md [#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) -- Ellipse syntax [#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88)) -- Allow keywords as suffixes of node ids [#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88)) -- Highlighted the editor in the nav [#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv)) -- Live editor tweaks [#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88)) -- Add a Gitter chat badge to README.md [#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger)) - -## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5) - -**Closed issues:** - -- sequence diagram, arrowhead instead of crosshead [#227](https://github.com/knsv/mermaid/issues/227) - -**Merged pull requests:** - -- Fix a typo: crosshead --> arrowhead [#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong)) - -## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4) - -**Implemented enhancements:** - -- Set log level from mermaid configuration [#220](https://github.com/knsv/mermaid/issues/220) -- Links in sequence diagrams [#159](https://github.com/knsv/mermaid/issues/159) -- Add syntax for double headed arrows [#123](https://github.com/knsv/mermaid/issues/123) - -**Fixed bugs:** - -- comment characters `%%` cause parse error [#141](https://github.com/knsv/mermaid/issues/141) - -**Closed issues:** - -- Marker-end arrow cannot be shown for URL with query parameter [#225](https://github.com/knsv/mermaid/issues/225) -- Please update bower's D3 version [#221](https://github.com/knsv/mermaid/issues/221) -- Width fixed to 400px [#204](https://github.com/knsv/mermaid/issues/204) -- render to png from the cli does not display the marker-end arrow heads [#181](https://github.com/knsv/mermaid/issues/181) - -**Merged pull requests:** - -- Allow `end` as a substring of vertex id [#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88)) -- Remove duplicate npm dependencies: d3 and he [#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88)) - -## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3) - -## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2) - -**Implemented enhancements:** - -- Support for hyperlink and tooltip [#34](https://github.com/knsv/mermaid/issues/34) - -**Closed issues:** - -- Installing “atom-mermaid@0.1.3” failed [#218](https://github.com/knsv/mermaid/issues/218) -- node feature request [#211](https://github.com/knsv/mermaid/issues/211) -- Please add prefix for styles [#208](https://github.com/knsv/mermaid/issues/208) -- Bad handling of block arguments [#207](https://github.com/knsv/mermaid/issues/207) -- please consider port to mac osx [#203](https://github.com/knsv/mermaid/issues/203) -- allow phantomjs >=1.9.x [#201](https://github.com/knsv/mermaid/issues/201) -- syntax for venn diagrams? [#200](https://github.com/knsv/mermaid/issues/200) -- Broken CLI Graphs? (v0.5.1) [#196](https://github.com/knsv/mermaid/issues/196) -- Static site does not render under HTTPS [#194](https://github.com/knsv/mermaid/issues/194) -- Error on simple graph [#192](https://github.com/knsv/mermaid/issues/192) -- Escape "~" [#191](https://github.com/knsv/mermaid/issues/191) -- Trying to add link using 'click' to flowchart [#188](https://github.com/knsv/mermaid/issues/188) -- cli: no lines and arrowheads rendered / only dotted lines [#187](https://github.com/knsv/mermaid/issues/187) -- text of mermaid div displayed on page [#186](https://github.com/knsv/mermaid/issues/186) -- using mermaid with laravel [#185](https://github.com/knsv/mermaid/issues/185) -- Atom editor package [#183](https://github.com/knsv/mermaid/issues/183) -- Auto linewrap for notes in sequence diagrams [#178](https://github.com/knsv/mermaid/issues/178) -- Execute code after initialize [#176](https://github.com/knsv/mermaid/issues/176) -- Autoscaling for all diagram types [#175](https://github.com/knsv/mermaid/issues/175) -- Problem wit click event callback [#174](https://github.com/knsv/mermaid/issues/174) -- How to escape characters? [#170](https://github.com/knsv/mermaid/issues/170) -- it can not work [#167](https://github.com/knsv/mermaid/issues/167) -- Broken subgraph using the CLI [#153](https://github.com/knsv/mermaid/issues/153) -- IE Support issue [#142](https://github.com/knsv/mermaid/issues/142) -- Flowchart truncated [#140](https://github.com/knsv/mermaid/issues/140) -- Double Quote as text is not working [#219](https://github.com/knsv/mermaid/issues/219) -- classDef / class not working with htmlLabels? [#210](https://github.com/knsv/mermaid/issues/210) -- Links in graph missing [#209](https://github.com/knsv/mermaid/issues/209) -- Last word in comment boxes getting cut off by word wrap library : ( [#195](https://github.com/knsv/mermaid/issues/195) -- Escaping characters in sequence diagram [#193](https://github.com/knsv/mermaid/issues/193) -- SVG foreignObject rendering [#180](https://github.com/knsv/mermaid/issues/180) -- IE9 issue [#179](https://github.com/knsv/mermaid/issues/179) -- inoperable in an AMD/requirejs environment: IPython Notebook [#127](https://github.com/knsv/mermaid/issues/127) -- \[Parser] Hyphen in participant name bring TypeError [#74](https://github.com/knsv/mermaid/issues/74) - -**Merged pull requests:** - -- Update flowchart.md [#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro)) -- Default style when using the CLI [#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey)) -- Gantt chart - add minutes and seconds durations [#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans)) -- Using QUnit for AMD testing [#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl)) -- Update phantomscript.js [#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow)) - -## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1) - -**Implemented enhancements:** - -- To SVG Export [#146](https://github.com/knsv/mermaid/issues/146) -- Possibility to set the width of the generated flowchart [#129](https://github.com/knsv/mermaid/issues/129) -- Special characters break parsing [#54](https://github.com/knsv/mermaid/issues/54) -- Responsive graph layout for mobile viewers [#51](https://github.com/knsv/mermaid/issues/51) -- Styling connector lines [#31](https://github.com/knsv/mermaid/issues/31) - -**Fixed bugs:** - -- flowchart - styling of edges via css overrides specific styles set in the graph definition [#128](https://github.com/knsv/mermaid/issues/128) - -**Closed issues:** - -- Live editor is broken [#173](https://github.com/knsv/mermaid/issues/173) -- 0.5.0 no longer respects custom date definitions in Gantt diagrams [#171](https://github.com/knsv/mermaid/issues/171) -- Drop label character restrictions [#162](https://github.com/knsv/mermaid/issues/162) -- can't nest subgraphs in flowchart [#161](https://github.com/knsv/mermaid/issues/161) -- Unable to generate gantt diagram with mermaid CLI [#158](https://github.com/knsv/mermaid/issues/158) -- Inline css by "mermaid" [#157](https://github.com/knsv/mermaid/issues/157) -- Finite State Machine Diagram [#152](https://github.com/knsv/mermaid/issues/152) -- How to center align gantt diagram [#150](https://github.com/knsv/mermaid/issues/150) -- Security concern regarding class definition [#148](https://github.com/knsv/mermaid/issues/148) -- File Extension [#147](https://github.com/knsv/mermaid/issues/147) -- `setTimeout` with clusters problematic with programmatic edits and no callback [#133](https://github.com/knsv/mermaid/issues/133) -- module.exports.cloneCssStyles() in combination with Angularjs breaks display in Chrome and IE [#126](https://github.com/knsv/mermaid/issues/126) -- Gantt - suitable xAxis for longer project [#125](https://github.com/knsv/mermaid/issues/125) -- How to get started with this project ? [#64](https://github.com/knsv/mermaid/issues/64) - -**Merged pull requests:** - -- Remove moot `version` property from bower.json [#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche)) - -## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0) - -**Implemented enhancements:** - -- Add a css file, mermaid.css, with default styling [#122](https://github.com/knsv/mermaid/issues/122) -- software architecture diagram [#36](https://github.com/knsv/mermaid/issues/36) -- Support for bar charts and pie diagrams [#22](https://github.com/knsv/mermaid/issues/22) - -**Closed issues:** - -- uglifyjs wanrings which means we can improve the code [#156](https://github.com/knsv/mermaid/issues/156) -- New(er) features unavailable in downloadable js files? [#151](https://github.com/knsv/mermaid/issues/151) -- Add gh-gapes link to description [#143](https://github.com/knsv/mermaid/issues/143) -- Some examples not displayed on Firefox 36.0.1 [#138](https://github.com/knsv/mermaid/issues/138) -- tags ending in a "v" don't render [#132](https://github.com/knsv/mermaid/issues/132) -- Links in flowchart [#131](https://github.com/knsv/mermaid/issues/131) -- Using the library for iOS development [#130](https://github.com/knsv/mermaid/issues/130) -- Add capability for gantt diagrams [#118](https://github.com/knsv/mermaid/issues/118) -- lower case v causes error in the parser [#108](https://github.com/knsv/mermaid/issues/108) -- Label's css conflict with boostrap's .label [#67](https://github.com/knsv/mermaid/issues/67) -- TypeError: Cannot read property 'layout' of undefined [#37](https://github.com/knsv/mermaid/issues/37) - -**Merged pull requests:** - -- Dev 0.5.0 [#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv)) -- Fix spacing [#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho)) -- Fixing typo: "Think" -> "Thick" [#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a)) -- IE, local html, cssRules access is denied [#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong)) -- Add automatically generated change log file. [#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder)) -- Adding init argument to the global API [#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl)) -- Add description of manual calling of init [#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl)) -- Allow other forms of node selection for init() [#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl)) -- Use a library-level variable for assigning ids [#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl)) - -## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0) - -**Implemented enhancements:** - -- Assymetric shapes not documented [#82](https://github.com/knsv/mermaid/issues/82) -- Improve arrows [#3](https://github.com/knsv/mermaid/issues/3) - -**Fixed bugs:** - -- NoModificationAllowedError [#23](https://github.com/knsv/mermaid/issues/23) - -**Closed issues:** - -- subgraph background is black in rendered flowchart PNG via CLI [#121](https://github.com/knsv/mermaid/issues/121) -- Integrate editor at https://github.com/naseer/mermaid-webapp [#110](https://github.com/knsv/mermaid/issues/110) -- Internet Explorer Support [#99](https://github.com/knsv/mermaid/issues/99) - -## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5) - -## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4) - -**Implemented enhancements:** - -- Apply styling from css when using the CLI utility [#85](https://github.com/knsv/mermaid/issues/85) -- Generated SVG works poorly outside web browsers [#58](https://github.com/knsv/mermaid/issues/58) -- Generating SVG text blob for use in Node [#2](https://github.com/knsv/mermaid/issues/2) - -**Closed issues:** - -- Subgraph syntax bug? [#120](https://github.com/knsv/mermaid/issues/120) -- Live editor [#115](https://github.com/knsv/mermaid/issues/115) -- Error in "Basic Syntax" wiki page [#113](https://github.com/knsv/mermaid/issues/113) -- semicolons, anyone? [#111](https://github.com/knsv/mermaid/issues/111) -- undefined `sequenceConfig` fails [#109](https://github.com/knsv/mermaid/issues/109) -- Sequence Diagrams: Show Actors below as well [#106](https://github.com/knsv/mermaid/issues/106) -- Allow overriding sequence diagram configuration (SVG properties) [#103](https://github.com/knsv/mermaid/issues/103) -- Error when rendering A-- This is the text -- B [#102](https://github.com/knsv/mermaid/issues/102) -- Clipping in documentation [#97](https://github.com/knsv/mermaid/issues/97) -- isolate class styling to the svg container [#92](https://github.com/knsv/mermaid/issues/92) -- Make the new graph declaration more visual [#40](https://github.com/knsv/mermaid/issues/40) - -**Merged pull requests:** - -- Add live editor [#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer)) -- Adds CSS option to the CLI [#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog)) -- Update flowchart.md in response Issue #113 [#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40)) -- Ignore all files except the license and dist/ folder when installing with Bower. [#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy)) - -## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3) - -**Implemented enhancements:** - -- Support for dotted links [#26](https://github.com/knsv/mermaid/issues/26) - -**Closed issues:** - -- Missing arrows in sequence diagram [#98](https://github.com/knsv/mermaid/issues/98) -- Error with >9 linkStyles [#95](https://github.com/knsv/mermaid/issues/95) - -**Merged pull requests:** - -- Require d3 directly to better support Node usage [#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish)) -- update doc with -c option [#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr)) -- Add new parameter to the console client to override the svg configuration in sequence diagrams [#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr)) -- Text based labels, new shape [#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes)) -- fix html tags in example usage [#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin)) - -## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2) - -**Implemented enhancements:** - -- Make link text look like it is on the line [#53](https://github.com/knsv/mermaid/issues/53) - -**Closed issues:** - -- disable auto render [#91](https://github.com/knsv/mermaid/issues/91) -- Tidy breaks mermaid (linebreaks in \<div>) [#87](https://github.com/knsv/mermaid/issues/87) -- Bug: \<br> being rendered as text in node [#73](https://github.com/knsv/mermaid/issues/73) -- Graph edges appear to render outside of the canvas [#70](https://github.com/knsv/mermaid/issues/70) - -**Merged pull requests:** - -- Merge pull request #1 from knsv/master [#96](https://github.com/knsv/mermaid/pull/96) ([gkchic](https://github.com/gkchic)) -- Removed duplicated section in flowchart docs [#94](https://github.com/knsv/mermaid/pull/94) ([kaime](https://github.com/kaime)) -- Grammar changes to sequence page [#93](https://github.com/knsv/mermaid/pull/93) ([gkchic](https://github.com/gkchic)) -- Github buttons [#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic)) -- Template change [#88](https://github.com/knsv/mermaid/pull/88) ([gkchic](https://github.com/gkchic)) - -## [0.3.1](https://github.com/knsv/mermaid/tree/0.3.1) (2015-01-05) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1) - -**Implemented enhancements:** - -- Support for sequence diagrams [#16](https://github.com/knsv/mermaid/issues/16) -- Client utility for mermaid [#6](https://github.com/knsv/mermaid/issues/6) - -**Closed issues:** - -- Non ASCII chars in labels [#84](https://github.com/knsv/mermaid/issues/84) -- 'undefined' titles of Quicklinks on the usage page [#80](https://github.com/knsv/mermaid/issues/80) -- \[cli] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [#71](https://github.com/knsv/mermaid/issues/71) - -**Merged pull requests:** - -- Flowchart doc: Text in the circle now in a circle [#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack)) -- Fix for issue #73 [#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a)) -- Ink template [#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic)) -- Show help and version even if phantom isn't present. Fixes #71 [#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog)) -- Add apostrophe & 'and' [#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki)) - -## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0) - -**Implemented enhancements:** - -- How do I do comments? [#47](https://github.com/knsv/mermaid/issues/47) -- Improve readability with new line as terminator and whitespace [#38](https://github.com/knsv/mermaid/issues/38) - -**Fixed bugs:** - -- This characters failed the lexical parsing [#46](https://github.com/knsv/mermaid/issues/46) - -**Closed issues:** - -- Trailing whitespace at the end of lines is not ignored [#55](https://github.com/knsv/mermaid/issues/55) -- Use classes instead of inline style for easy styling [#24](https://github.com/knsv/mermaid/issues/24) - -**Merged pull requests:** - -- Adds Command Line Interface for generating PNGs from mermaid description files [#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog)) -- Allow special symbols for direction along with acronyms [#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40)) - -## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16) - -**Fixed bugs:** - -- Lines routed outside visible area [#19](https://github.com/knsv/mermaid/issues/19) - -**Closed issues:** - -- Mermaid not rendering properly on Wordpress pages [#59](https://github.com/knsv/mermaid/issues/59) -- Improve example page with live demo [#52](https://github.com/knsv/mermaid/issues/52) -- Does not render upon AngularJS Updates [#45](https://github.com/knsv/mermaid/issues/45) -- Download link in README.MD doesn't work. [#42](https://github.com/knsv/mermaid/issues/42) -- linkStyle usage is not obvious [#41](https://github.com/knsv/mermaid/issues/41) -- Move \*.spec.js in src/ to test/ [#35](https://github.com/knsv/mermaid/issues/35) - -**Merged pull requests:** - -- New grammar will allow statements ending without semicolon as disccused in Issue #38 [#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40)) -- Class based styling [#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes)) -- Fix typos [#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino)) -- Included .DS_Store in gitignore [#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq)) -- Improves readability discussed in issue #38 [#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40)) -- Added a linting task for gulp [#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv)) - -## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15) - -**Fixed bugs:** - -- Error with some characters [#25](https://github.com/knsv/mermaid/issues/25) -- Cap-cased words break parser [#8](https://github.com/knsv/mermaid/issues/8) - -**Closed issues:** - -- Question marks don't render properly with /dist/mermaid.full.min.js [#30](https://github.com/knsv/mermaid/issues/30) -- Provide parse function in browser widthout `require`? [#21](https://github.com/knsv/mermaid/issues/21) -- Better label text support [#18](https://github.com/knsv/mermaid/issues/18) - -**Merged pull requests:** - -- Include bower_components/ to .gitignore [#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv)) -- Fixed reference to Git repo. [#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis)) - -## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14) - -## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13) - -**Implemented enhancements:** - -- Publish to NPM [#7](https://github.com/knsv/mermaid/issues/7) - -**Closed issues:** - -- modified init to be applied more than once [#29](https://github.com/knsv/mermaid/issues/29) -- Wanted to know build process for the project. [#28](https://github.com/knsv/mermaid/issues/28) -- can not support Chinese description [#20](https://github.com/knsv/mermaid/issues/20) -- Support unicode chars in labels [#9](https://github.com/knsv/mermaid/issues/9) - -## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10) - -## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9) - -**Closed issues:** - -- Add link to jsbin playground to README [#11](https://github.com/knsv/mermaid/issues/11) -- What are the requirements ? [#10](https://github.com/knsv/mermaid/issues/10) - -**Merged pull requests:** - -- Allow unicode chars in labels [#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige)) - -## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8) - -## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7) - -**Closed issues:** - -- Provide parser as separate module [#4](https://github.com/knsv/mermaid/issues/4) - -## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6) - -## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5) - -**Merged pull requests:** - -- Added new shapes! [#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes)) - -## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4) - -## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3) - -## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2) - -## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1) - -## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0) - -## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1) - -## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16) diff --git a/docs/Configuration.md b/docs/Configuration.md deleted file mode 100644 index 4902dabdbe..0000000000 --- a/docs/Configuration.md +++ /dev/null @@ -1,22 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -# Configuration - -Configuration is the second half of Mermaid, after deployment. Together Deployment and Configuration constitute the whole of Mermaid. - -This section will introduce the different methods of configuring of the behaviors and appearances of Mermaid Diagrams. -The Following are the most commonly used methods, and are all tied to Mermaid [Deployment](./n00b-gettingStarted.md) methods. - -## Configuration Section in the [Live Editor](https://mermaid.live/). - -## The `initialize()` call, for when Mermaid is called via an API, or through a <script> tag. - -## [Directives](./directives.md), - -Directives allows limited reconfiguration of a diagram just before it is rendered. It can alter the font style, color and other aesthetic aspects of the diagram. You can pass a directive alongside your definition inside `%%{ }%%`, either above or below your diagram definition. - -## Theme Creation: - -An application of using Directives to change [Themes](./theming.md). `Theme` is an value within mermaid's configuration that dictates the color scheme for diagrams. - -If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](./Setup.md) here. It includes themes diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md deleted file mode 100644 index 41156fee58..0000000000 --- a/docs/SUMMARY.md +++ /dev/null @@ -1,17 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -# Summary - -- [mermaid](README.md) -- [FAQ](faq.md) -- [Breaking changes](breakingChanges.md) -- [Usage](usage.md) -- [Flowchart](flowchart.md) -- [Sequence diagram](sequenceDiagram.md) -- [Gantt diagram](gantt.md) -- [mermaid CLI](mermaidCLI.md) -- [Demos](demos.md) -- [mermaidAPI](mermaidAPI.md) -- [Development](development.md) -- [Upgrading](upgrading.md) -- [Contribute to this website](https://github.com/mermaidjs/mermaid-gitbook) diff --git a/docs/Setup.md b/docs/Setup.md deleted file mode 100644 index 82e4e2fe8e..0000000000 --- a/docs/Setup.md +++ /dev/null @@ -1,1629 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -<!-- Generated by documentation.js. Update this documentation by updating the source code. --> - -## mermaidAPI - -This is the API to be used when optionally handling the integration with the web page, instead of -using the default integration provided by mermaid.js. - -The core of this api is the [**render**][1] function which, given a graph -definition as text, renders the graph/diagram and returns an svg element for the graph. - -It is then up to the user of the API to make use of the svg, either insert it somewhere in the -page or do something completely different. - -In addition to the render function, a number of behavioral configuration options are available. - -## Configuration - -**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click -here][2]].** - -## **What follows are config instructions for older versions** - -These are the default options which can be overridden with the initialization call like so: - -**Example 1:**<pre> mermaid.initialize({ flowchart:{ htmlLabels: false } }); </pre> - -**Example 2:**<pre> <script> var config = { startOnLoad:true, flowchart:{ useMaxWidth:true, -htmlLabels:true, curve:'cardinal', }, - - securityLevel:'loose', - -}; mermaid.initialize(config); </script> </pre> - -A summary of all options and their defaults is found [here][3]. -A description of each option follows below. - -## theme - -Theme , the CSS style sheet - -| Parameter | Description | Type | Required | Values | -| --------- | --------------- | ------ | -------- | ---------------------------------------------- | -| theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | - -**Notes:** To disable any pre-defined mermaid theme, use "null".<pre> "theme": "forest", -"themeCSS": ".node rect { fill: red; }" </pre> - -## fontFamily - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | -| fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. - -## logLevel - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------------------------- | ------ | -------- | -------- | --------------------------------------------- | -| logLevel | This option decides the amount of logging to be used. | string | number | Required | 'trace','debug','info','warn','error','fatal' | - -**Notes:** - -- Trace: 0 -- Debug: 1 -- Info: 2 -- Warn: 3 -- Error: 4 -- Fatal: 5 (default) - -## securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | string | Required | `sandbox`, `strict`, `loose`, `antiscript` | - -**Notes**: - -- **`strict`**: (**default**) tags in text are encoded, click functionality is disabled -- **`loose`**: tags in text are allowed, click functionality is enabled -- **`antiscript`**: html tags in text are allowed, (only script element is removed), click - functionality is enabled -- **`sandbox`**: With this security level all rendering takes place in a sandboxed iframe. This - prevent any JavaScript from running in the context. This may hinder interactive functionality - of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. - -## startOnLoad - -| Parameter | Description | Type | Required | Values | -| ----------- | -------------------------------------------- | ------- | -------- | ----------- | -| startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | - -**Notes:** Default value: true - -## arrowMarkerAbsolute - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | -| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | - -**Notes**: - -This matters if you are using base tag settings. - -Default value: false - -## secure - -This option controls which currentConfig keys are considered _secure_ and can only be changed -via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the -`secure` keys in the current currentConfig. This prevents malicious graph directives from -overriding a site's default security. - -**Notes**: - -Default value: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] - -## deterministicIds - -This option controls if the generated ids of nodes in the SVG are generated randomly or based -on a seed. If set to false, the IDs are generated based on the current date and thus are not -deterministic. This is the default behavior. - -**Notes**: - -This matters if your files are checked into source control e.g. git and should not change unless -content is changed. - -Default value: false - -## deterministicIDSeed - -This option is the optional seed for deterministic ids. if set to undefined but -deterministicIds is true, a simple number iterator is used. You can set this attribute to base -the seed on a static string. - -## flowchart - -The object containing configurations specific for flowcharts - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 8 - -### htmlLabels - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | -| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | - -**Notes:** Default value: true. - -### nodeSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | -| nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | - -**Notes:** - -Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the -vertical spacing for LR as well as RL graphs.\*\* - -Default value: 50 - -### rankSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | -| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | - -**Notes**: - -Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal -spacing for LR as well as RL graphs. - -Default value 50 - -### curve - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | -| curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | - -**Notes:** - -Default Value: 'basis' - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid - -Default value: `dagre-wrapper` - -## sequence - -The object containing configurations specific for sequence diagrams - -### activationWidth - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------- | ------- | -------- | ------------------ | -| activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | - -**Notes:** Default value :10 - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### actorMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ---------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------ | -------- | ------------------------- | -| messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### mirrorActors - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------- | -------- | ----------- | -| mirrorActors | Mirror actors under diagram | boolean | Required | true, false | - -**Notes:** Default value: true - -### forceMenus - -| Parameter | Description | Type | Required | Values | -| ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | -| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | - -**Notes:** - -Default value: false. - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | ------------------------------------ | ------- | -------- | ----------- | -| rightAngles | display curve arrows as right angles | boolean | Required | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curve - -Default value: false - -### showSequenceNumbers - -| Parameter | Description | Type | Required | Values | -| ------------------- | ------------------------------- | ------- | -------- | ----------- | -| showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | - -**Notes:** Default value: false - -### actorFontSize - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | - -**Notes:** **Default value 14**.. - -### actorFontFamily - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | -| actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: "'Open Sans", sans-serif' - -### actorFontWeight - -This sets the font weight of the actor's description - -**Notes:** Default value: 400. - -### noteFontSize - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | -| noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 14 - -### noteFontFamily - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | -| noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' - -### noteFontWeight - -This sets the font weight of the note's description - -**Notes:** Default value: 400 - -### noteAlign - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | -| noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### messageFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------------- | ------- | -------- | ------------------- | -| messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | - -**Notes:** Default value: 16 - -### messageFontFamily - -| Parameter | Description | Type | Required | Values | -| ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | -| messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' - -### messageFontWeight - -This sets the font weight of the message's description - -**Notes:** Default value: 400. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: false. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -### labelBoxWidth - -This sets the width of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 50. - -### labelBoxHeight - -This sets the height of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 20. - -## gantt - -The object containing configurations specific for gantt diagrams - -### titleTopMargin - -### titleTopMargin - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 25 - -### barHeight - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------- | -------- | ------------------ | -| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### barGap - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | -| barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | - -**Notes:** Default value: 4 - -### topPadding - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | -| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### rightPadding - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | -| rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### leftPadding - -| Parameter | Description | Type | Required | Values | -| ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | -| leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### gridLineStartPadding - -| Parameter | Description | Type | Required | Values | -| -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ------------------ | -| fontSize | Font size | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### sectionFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------- | ------- | -------- | ------------------ | -| sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### numberSectionStyles - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | -| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | - -**Notes:** Default value: 4 - -### axisFormat - -| Parameter | Description | Type | Required | Values | -| ---------- | --------------------------- | ---- | -------- | ---------------- | -| axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | - -**Notes:** - -This might need adjustment to match your locale and preferences - -Default value: '%Y-%m-%d'. - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### topAxis - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ----------- | -| topAxis | See notes | Boolean | 4 | True, False | - -**Notes:** when this flag is set date labels will be added to the top of the chart - -**Default value false**. - -## journey - -The object containing configurations specific for journey diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### leftMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | Margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ----------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages. | Integer | Required | Any Positive Value | - -**Notes:** - -Space between messages. - -Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ---- | -------- | ------------------------- | -| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------- | ---- | -------- | ----------- | -| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curves - -Default value: false - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | - -**Notes**: - -Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid - -Default value: `dagre-d3` - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid - -Default value: `dagre-d3` - -## er - -The object containing configurations specific for entity relationship diagrams - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 20 - -### layoutDirection - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | -| layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | - -**Notes:** - -'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. - -T = top, B = bottom, L = left, and R = right. - -Default value: 'TB' - -### minEntityWidth - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------- | ------- | -------- | ------------------ | -| minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | - -**Notes:** Expressed in pixels. Default value: 100 - -### minEntityHeight - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------- | ------- | -------- | ------------------ | -| minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | - -**Notes:** Expressed in pixels Default value: 75 - -### entityPadding - -| Parameter | Description | Type | Required | Values | -| ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ | -| entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value | - -**Notes:** - -The minimum internal padding between text in an entity box and the enclosing box borders, -expressed in pixels. - -Default value: 15 - -### stroke - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------ | -------- | -------------------- | -| stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | - -**Notes:** Default value: 'gray' - -### fill - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------- | ------ | -------- | -------------------- | -| fill | Fill color of entity boxes | string | 4 | Any recognized color | - -**Notes:** Default value: 'honeydew' - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| fontSize | Font Size in pixels | Integer | | Any Positive Value | - -**Notes:** - -Font size (expressed as an integer representing a number of pixels) Default value: 12 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## pie - -The object containing configurations specific for pie diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## requirement - -The object containing configurations specific for req diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## c4 - -The object containing configurations specific for c4 diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### c4ShapeMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------- | ------- | -------- | ------------------ | -| c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### c4ShapePadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------- | ------- | -------- | ------------------ | -| c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| width | Width of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 216 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------- | ------- | -------- | ------------------ | -| height | Height of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 60 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| boxMargin | Margin around boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### c4ShapeInRow - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------- | ------- | -------- | ------------------ | -| c4ShapeInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many shapes to place in each row. - -Default value: 4 - -### c4BoundaryInRow - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ------------------ | -| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many boundaries to place in each row. - -Default value: 2 - -### personFontSize - -This sets the font size of Person shape for the diagram - -**Notes:** Default value: 14. - -### personFontFamily - -This sets the font family of Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### personFontWeight - -This sets the font weight of Person shape for the diagram - -**Notes:** Default value: normal. - -### external_personFontSize - -This sets the font size of External Person shape for the diagram - -**Notes:** Default value: 14. - -### external_personFontFamily - -This sets the font family of External Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_personFontWeight - -This sets the font weight of External Person shape for the diagram - -**Notes:** Default value: normal. - -### systemFontSize - -This sets the font size of System shape for the diagram - -**Notes:** Default value: 14. - -### systemFontFamily - -This sets the font family of System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### systemFontWeight - -This sets the font weight of System shape for the diagram - -**Notes:** Default value: normal. - -### external_systemFontSize - -This sets the font size of External System shape for the diagram - -**Notes:** Default value: 14. - -### external_systemFontFamily - -This sets the font family of External System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_systemFontWeight - -This sets the font weight of External System shape for the diagram - -**Notes:** Default value: normal. - -### system_dbFontSize - -This sets the font size of System DB shape for the diagram - -**Notes:** Default value: 14. - -### system_dbFontFamily - -This sets the font family of System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_dbFontWeight - -This sets the font weight of System DB shape for the diagram - -**Notes:** Default value: normal. - -### external_system_dbFontSize - -This sets the font size of External System DB shape for the diagram - -**Notes:** Default value: 14. - -### external_system_dbFontFamily - -This sets the font family of External System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_dbFontWeight - -This sets the font weight of External System DB shape for the diagram - -**Notes:** Default value: normal. - -### system_queueFontSize - -This sets the font size of System Queue shape for the diagram - -**Notes:** Default value: 14. - -### system_queueFontFamily - -This sets the font family of System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_queueFontWeight - -This sets the font weight of System Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_system_queueFontSize - -This sets the font size of External System Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_system_queueFontFamily - -This sets the font family of External System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_queueFontWeight - -This sets the font weight of External System Queue shape for the diagram - -**Notes:** Default value: normal. - -### boundaryFontSize - -This sets the font size of Boundary shape for the diagram - -**Notes:** Default value: 14. - -### boundaryFontFamily - -This sets the font family of Boundary shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### boundaryFontWeight - -This sets the font weight of Boundary shape for the diagram - -**Notes:** Default value: normal. - -### messageFontSize - -This sets the font size of Message shape for the diagram - -**Notes:** Default value: 12. - -### messageFontFamily - -This sets the font family of Message shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### messageFontWeight - -This sets the font weight of Message shape for the diagram - -**Notes:** Default value: normal. - -### containerFontSize - -This sets the font size of Container shape for the diagram - -**Notes:** Default value: 14. - -### containerFontFamily - -This sets the font family of Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### containerFontWeight - -This sets the font weight of Container shape for the diagram - -**Notes:** Default value: normal. - -### external_containerFontSize - -This sets the font size of External Container shape for the diagram - -**Notes:** Default value: 14. - -### external_containerFontFamily - -This sets the font family of External Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_containerFontWeight - -This sets the font weight of External Container shape for the diagram - -**Notes:** Default value: normal. - -### container_dbFontSize - -This sets the font size of Container DB shape for the diagram - -**Notes:** Default value: 14. - -### container_dbFontFamily - -This sets the font family of Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_dbFontWeight - -This sets the font weight of Container DB shape for the diagram - -**Notes:** Default value: normal. - -### external_container_dbFontSize - -This sets the font size of External Container DB shape for the diagram - -**Notes:** Default value: 14. - -### external_container_dbFontFamily - -This sets the font family of External Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_dbFontWeight - -This sets the font weight of External Container DB shape for the diagram - -**Notes:** Default value: normal. - -### container_queueFontSize - -This sets the font size of Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### container_queueFontFamily - -This sets the font family of Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_queueFontWeight - -This sets the font weight of Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_container_queueFontSize - -This sets the font size of External Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_container_queueFontFamily - -This sets the font family of External Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_queueFontWeight - -This sets the font weight of External Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### componentFontSize - -This sets the font size of Component shape for the diagram - -**Notes:** Default value: 14. - -### componentFontFamily - -This sets the font family of Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### componentFontWeight - -This sets the font weight of Component shape for the diagram - -**Notes:** Default value: normal. - -### external_componentFontSize - -This sets the font size of External Component shape for the diagram - -**Notes:** Default value: 14. - -### external_componentFontFamily - -This sets the font family of External Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_componentFontWeight - -This sets the font weight of External Component shape for the diagram - -**Notes:** Default value: normal. - -### component_dbFontSize - -This sets the font size of Component DB shape for the diagram - -**Notes:** Default value: 14. - -### component_dbFontFamily - -This sets the font family of Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_dbFontWeight - -This sets the font weight of Component DB shape for the diagram - -**Notes:** Default value: normal. - -### external_component_dbFontSize - -This sets the font size of External Component DB shape for the diagram - -**Notes:** Default value: 14. - -### external_component_dbFontFamily - -This sets the font family of External Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_dbFontWeight - -This sets the font weight of External Component DB shape for the diagram - -**Notes:** Default value: normal. - -### component_queueFontSize - -This sets the font size of Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### component_queueFontFamily - -This sets the font family of Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_queueFontWeight - -This sets the font weight of Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_component_queueFontSize - -This sets the font size of External Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_component_queueFontFamily - -This sets the font family of External Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_queueFontWeight - -This sets the font weight of External Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: true. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -## parse - -### Parameters - -- `text` **[string][4]** -- `parseError` **[Function][5]?** - -Returns **[boolean][6]** - -## setSiteConfig - -## setSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls -to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) -will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this -function _Default value: At default, will mirror Global Config_ - -### Parameters - -- `conf` **MermaidConfig** The base currentConfig to use as siteConfig - -Returns **[object][7]** The siteConfig - -## getSiteConfig - -## getSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | -| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | - -**Notes**: Returns **any** values in siteConfig. - -Returns **[object][7]** The siteConfig - -## setConfig - -## setConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure -keys. Any values found in conf with key found in siteConfig.secure will be replaced with the -corresponding siteConfig value. - -### Parameters - -- `conf` **any** The potential currentConfig - -Returns **any** The currentConfig merged with the sanitized conf - -## render - -Function that renders an svg with a graph from a chart definition. Usage example below. - -```javascript -mermaidAPI.initialize({ - startOnLoad: true, -}); -$(function () { - const graphDefinition = 'graph TB\na-->b'; - const cb = function (svgGraph) { - console.log(svgGraph); - }; - mermaidAPI.render('id1', graphDefinition, cb); -}); -``` - -### Parameters - -- `id` **[string][4]** The id of the element to be rendered -- `text` **[string][4]** The graph definition -- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void** -- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be - inserted. If one is provided a hidden div will be inserted in the body of the page instead. The - element will be removed when rendering is completed. - -Returns **void** - -## getConfig - -## getConfig - -| Function | Description | Type | Return Values | -| --------- | ------------------------- | ----------- | ------------------------------ | -| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | - -**Notes**: Returns **any** the currentConfig - -Returns **any** The currentConfig - -## sanitize - -## sanitize - -| Function | Description | Type | Values | -| -------- | -------------------------------------- | ----------- | ------ | -| sanitize | Sets the siteConfig to desired values. | Put Request | None | - -Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies -options in-place - -### Parameters - -- `options` **any** The potential setConfig parameter - -## addDirective - -Pushes in a directive to the configuration - -### Parameters - -- `directive` **[object][7]** The directive to push in - -## reset - -## reset - -| Function | Description | Type | Required | Values | -| -------- | ---------------------------- | ----------- | -------- | ------ | -| reset | Resets currentConfig to conf | Put Request | Required | None | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | -| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | - -**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) - -### Parameters - -- `config` (optional, default `siteConfig`) - -Returns **void** - -## initialize - -### Parameters - -- `options` **MermaidConfig** - -## - -## mermaidAPI configuration defaults - -```html -<script> - const config = { - theme: 'default', - logLevel: 'fatal', - securityLevel: 'strict', - startOnLoad: true, - arrowMarkerAbsolute: false, - - er: { - diagramPadding: 20, - layoutDirection: 'TB', - minEntityWidth: 100, - minEntityHeight: 75, - entityPadding: 15, - stroke: 'gray', - fill: 'honeydew', - fontSize: 12, - useMaxWidth: true, - }, - flowchart: { - diagramPadding: 8, - htmlLabels: true, - curve: 'basis', - }, - sequence: { - diagramMarginX: 50, - diagramMarginY: 10, - actorMargin: 50, - width: 150, - height: 65, - boxMargin: 10, - boxTextMargin: 5, - noteMargin: 10, - messageMargin: 35, - messageAlign: 'center', - mirrorActors: true, - bottomMarginAdj: 1, - useMaxWidth: true, - rightAngles: false, - showSequenceNumbers: false, - }, - gantt: { - titleTopMargin: 25, - barHeight: 20, - barGap: 4, - topPadding: 50, - leftPadding: 75, - gridLineStartPadding: 35, - fontSize: 11, - fontFamily: '"Open Sans", sans-serif', - numberSectionStyles: 4, - axisFormat: '%Y-%m-%d', - topAxis: false, - }, - }; - mermaid.initialize(config); -</script> -``` - -[1]: Setup.md?id=render -[2]: 8.6.0_docs.md -[3]: #mermaidapi-configuration-defaults -[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean -[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[8]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/docs/_navbar.md b/docs/_navbar.md deleted file mode 100644 index 7f9f495a7b..0000000000 --- a/docs/_navbar.md +++ /dev/null @@ -1,15 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -- Getting started - - - [Quick start](quickstart.md) - - [Writing more pages](more-pages.md) - - [Custom navbar](custom-navbar.md) - - [Cover page](cover.md) - -- Configuration - - [Configuration](configuration.md) - - [Themes](themes.md) - - [Using plugins](plugins.md) - - [Markdown configuration](markdown.md) - - [Language highlight](language-highlight.md) diff --git a/docs/_sidebar.md b/docs/_sidebar.md deleted file mode 100644 index 17cde68c9d..0000000000 --- a/docs/_sidebar.md +++ /dev/null @@ -1,46 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -- 📔 Introduction - - - [About Mermaid](README.md) - - [Deployment](n00b-gettingStarted.md) - - [Syntax and Configuration](n00b-syntaxReference.md) - -- 📊 Diagram Syntax - - - [Flowchart](flowchart.md) - - [Sequence Diagram](sequenceDiagram.md) - - [Class Diagram](classDiagram.md) - - [State Diagram](stateDiagram.md) - - [Entity Relationship Diagram](entityRelationshipDiagram.md) - - [User Journey](user-journey.md) - - [Gantt](gantt.md) - - [Pie Chart](pie.md) - - [Requirement Diagram](requirementDiagram.md) - - [Gitgraph (Git) Diagram 🔥](gitgraph.md) - - [C4C Diagram (Context) Diagram 🦺⚠️](c4c.md) - - [Mindmaps 🦺⚠️](mindmap.md) - - [Other Examples](examples.md) - -- ⚙️ Deployment and Configuration - - - [Tutorials](Tutorials.md) - - [API-Usage](usage.md) - - [Mermaid API Configuration](Setup.md) - - [Directives](directives.md) - - [Theming](theming.md) - - [Accessibility](accessibility.md) - - [Mermaid CLI](mermaidCLI.md) - - [Advanced usage](n00b-advanced.md) - -- 📚 Misc - - - [Use-Cases and Integrations](integrations.md) - - [FAQ](faq.md) - -- 🙌 Contributions and Community - - [Overview for Beginners](n00b-overview.md) - - [Development and Contribution ](development.md) - - [Changelog](CHANGELOG.md) - - [Adding Diagrams ](newDiagram.md) - - [Security ](security.md) diff --git a/docs/breakingChanges.md b/docs/breakingChanges.md deleted file mode 100644 index 964d89e4fa..0000000000 --- a/docs/breakingChanges.md +++ /dev/null @@ -1,51 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - -# Breaking changes - -### Breaking changes from history version to latest version: - -## #1 - -```javascript -mermaid.initialize({ - sequenceDiagram:{ - ... - } -}) -``` - -has been changed to - -```javascript -mermaid.initialize({ - sequence:{ - ... - } -}) -``` - -## #2 - -In old versions you needed to reference a CSS file in your HTML: - -```html -<link rel="stylesheet" href="mermaid.min.css" /> -``` - -or - -```html -<link rel="stylesheet" href="mermaid.forest.min.css" /> -``` - -Now it is not needed, and there are no more CSS files in the distribution files. - -You just: - -```javascript -mermaid.initialize({ - theme: 'forest', -}); -``` - -and it works like a charm because now the CSS is inline with the SVG to allow simpler portability. diff --git a/docs/development.md b/docs/community/development.md similarity index 99% rename from docs/development.md rename to docs/community/development.md index 3f2033d618..7ccd31f6ad 100644 --- a/docs/development.md +++ b/docs/community/development.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Development and Contribution 🙌 diff --git a/docs/img/er.png b/docs/community/img/er.png similarity index 100% rename from docs/img/er.png rename to docs/community/img/er.png diff --git a/docs/n00b-overview.md b/docs/community/n00b-overview.md similarity index 91% rename from docs/n00b-overview.md rename to docs/community/n00b-overview.md index df400e4bb6..e601432b2a 100644 --- a/docs/n00b-overview.md +++ b/docs/community/n00b-overview.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Overview for Beginners @@ -41,7 +41,7 @@ It is a relatively straightforward solution to a significant hurdle with the sof **Nodes** -> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](./n00b-syntaxReference) +> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](../intro/n00b-syntaxReference) ## Advantages of using Mermaid @@ -65,6 +65,6 @@ In fact one can pick up the syntax for it quite easily from the examples given a ## Mermaid is for everyone. -Video [Tutorials](https://mermaid-js.github.io/mermaid/#/./Tutorials) are also available for the mermaid [live editor](https://mermaid.live/). +Video [Tutorials](https://mermaid-js.github.io/mermaid/#/../config/Tutorials) are also available for the mermaid [live editor](https://mermaid.live/). Alternatively you can use Mermaid [Plug-Ins](https://mermaid-js.github.io/mermaid/#/./integrations), with tools you already use, like Google Docs. diff --git a/docs/newDiagram.md b/docs/community/newDiagram.md similarity index 85% rename from docs/newDiagram.md rename to docs/community/newDiagram.md index 0708657020..6d3f811eb8 100644 --- a/docs/newDiagram.md +++ b/docs/community/newDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Adding a New Diagram/Chart 📊 @@ -17,20 +17,18 @@ For instance: There are some jison specific sub steps here where the parser stores the data encountered when parsing the diagram, this data is later used by the renderer. You can during the parsing call a object provided to the parser by the user of the parser. This object can be called during parsing for storing data. -```jison -statement - : 'participant' actor { $$='actor'; } - | signal { $$='signal'; } - | note_statement { $$='note'; } - | 'title' message { yy.setTitle($2); } - ; -``` + statement + : 'participant' actor { $$='actor'; } + | signal { $$='signal'; } + | note_statement { $$='note'; } + | 'title' message { yy.setTitle($2); } + ; In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -```tip +::: tip Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. -``` +::: For more info look in the example diagram type: @@ -117,12 +115,12 @@ There are a few features that are common between the different types of diagrams Here some pointers on how to handle these different areas. -#### [Directives](./directives.md) +#### [Directives](../config/directives.md) Here is example handling from flowcharts: Jison: -```jison +``` /* lexical grammar */ %lex @@ -179,27 +177,25 @@ The syntax for adding title and description looks like this: In a similar way to the directives the jison syntax are quite similar between the diagrams. -```jison -* lexical grammar */ -%lex -%x acc_title -%x acc_descr -%x acc_descr_multiline - -%% -accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } -<acc_title>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } -accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } -<acc_descr>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } -accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} -<acc_descr_multiline>[\}] { this.popState(); } -<acc_descr_multiline>[^\}]* return "acc_descr_multiline_value"; - -statement - : acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); } - | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } - | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } -``` + * lexical grammar */ + %lex + %x acc_title + %x acc_descr + %x acc_descr_multiline + + %% + accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } + <acc_title>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } + accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } + <acc_descr>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } + accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} + <acc_descr_multiline>[\}] { this.popState(); } + <acc_descr_multiline>[^\}]* return "acc_descr_multiline_value"; + + statement + : acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); } + | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } + | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } The functions for setting title and description are provided by a common module. This is the import from flowDb.js: @@ -226,7 +222,7 @@ addSVGAccessibilityFields(parser.yy, svg, id); ## Theming -Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](./theming.md). +Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](../config/theming.md). When adding themes to a diagram it comes down to a few important locations in the code. diff --git a/docs/security.md b/docs/community/security.md similarity index 97% rename from docs/security.md rename to docs/community/security.md index cac6d8da29..62334e0263 100644 --- a/docs/security.md +++ b/docs/community/security.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Security diff --git a/docs/8.6.0_docs.md b/docs/config/8.6.0_docs.md similarity index 92% rename from docs/8.6.0_docs.md rename to docs/config/8.6.0_docs.md index cc812901e4..dddf5979f0 100644 --- a/docs/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Version 8.6.0 Changes @@ -8,8 +8,8 @@ With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. -`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](./Setup.md). -This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams. +`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](../config/configuration). +This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](directives), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams. **A likely application for this is in the creation of diagrams/charts inside company/organizational webpages, that rely on mermaid for diagram and chart rendering.** @@ -48,9 +48,9 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -```note +::: note All directives are enclosed in `%%{ }%%` -``` +::: Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -62,18 +62,18 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -```note +::: note init would be an argument-directive: `%%{init: { **insert argument here**}}%%` The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. - **for example**: +**for example**: `%%{init: {"theme": "default", "logLevel": 1 }}%%` Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. When deployed within code, init is called before the graph/diagram description. -``` +::: **for example**: @@ -107,19 +107,19 @@ When deployed within code, init is called before the graph/diagram description. | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -```note +::: note Wrap is a function that is currently only deployable for sequence diagrams. -Wrap respects a manually added <br\>, so if the user wants to break up their text, they have full control over line breaks by adding <br\> tags. +Wrap respects a manually added \<br>, so if the user wants to break up their text, they have full control over line breaks by adding \<br> tags. It is a non-argument directive and can be executed thusly: `%%{wrap}%%` . -``` +::: **An example of text wrapping in a sequence diagram**: -![Image showing wrapped text](img/wrapped%20text.png) +!\[Image showing wrapped text]\(img/wrapped text.png) # Resetting Configurations: @@ -143,7 +143,7 @@ Example of **assignWithDepth**: Example of **object.Assign**: -![Image showing object.assign without depth](img/object.assign%20without%20depth.png) +!\[Image showing object.assign without depth]\(img/object.assign without depth.png) • **calculateTextDimensions**, **calculateTextWidth**, and **calculateTextHeight** - for measuring text dimensions, width and height. @@ -157,13 +157,13 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -```note +::: note Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this function。 Default value: will mirror Global Config -``` +::: ## getSiteConfig @@ -171,9 +171,9 @@ Default value: will mirror Global Config | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -```note -Returns any values in siteConfig. -``` +::: note +Returns any values in siteConfig. +::: ## setConfig @@ -181,11 +181,11 @@ Returns any values in siteConfig. | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -```note +::: note Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any values found in conf with key found in siteConfig.secure will be replaced with the corresponding siteConfig value. -``` +::: ## getConfig @@ -193,9 +193,9 @@ siteConfig value. | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -```note +::: note Returns any values in currentConfig. -``` +::: ## sanitize @@ -203,10 +203,10 @@ Returns any values in currentConfig. | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -```note +::: note modifies options in-place Ensures options parameter does not attempt to override siteConfig secure keys. -``` +::: ## reset @@ -220,8 +220,8 @@ Ensures options parameter does not attempt to override siteConfig secure keys. | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -```note -default: current siteConfig (optional, default `getSiteConfig()`) -``` +::: note +default: current siteConfig (optional, default `getSiteConfig()`) +::: s -## For more information, read [Setup](Setup.md). +## For more information, read [Setup](setup/README). diff --git a/docs/Tutorials.md b/docs/config/Tutorials.md similarity index 95% rename from docs/Tutorials.md rename to docs/config/Tutorials.md index 0f9465a35c..3894c99f3c 100644 --- a/docs/Tutorials.md +++ b/docs/config/Tutorials.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Tutorials @@ -24,7 +24,7 @@ The definitions that can be generated the Live-Editor are also backwards-compati ## Mermaid with HTML -Examples are provided in [Getting Started](n00b-gettingStarted.md) +Examples are provided in [Getting Started](../intro/n00b-gettingStarted) **CodePen Examples:** diff --git a/docs/accessibility.md b/docs/config/accessibility.md similarity index 99% rename from docs/accessibility.md rename to docs/config/accessibility.md index 09d80df652..68e825425a 100644 --- a/docs/accessibility.md +++ b/docs/config/accessibility.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Accessibility Options diff --git a/docs/developer-docs/configuration.md b/docs/config/configuration.md similarity index 96% rename from docs/developer-docs/configuration.md rename to docs/config/configuration.md index ba3422f6d9..1c2a5566a5 100644 --- a/docs/developer-docs/configuration.md +++ b/docs/config/configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Configuration diff --git a/docs/directives.md b/docs/config/directives.md similarity index 97% rename from docs/directives.md rename to docs/config/directives.md index f814782f09..85d678139e 100644 --- a/docs/directives.md +++ b/docs/config/directives.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Directives @@ -84,7 +84,13 @@ Here the directive declaration will set the `logLevel` to `debug` and the `theme Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means: -```mmd2 +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% +%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% +... +``` + +```mermaid %%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% %%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% ... @@ -92,11 +98,11 @@ Note: You can use 'init' or 'initialize' as both acceptable as init directives. parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: -```json5 +```json { - logLevel: 'fatal', - theme: 'dark', - startOnLoad: true, + "logLevel": "fatal", + "theme": "dark", + "startOnLoad": true } ``` diff --git a/docs/img/accessibility-div-example-2.png b/docs/config/img/accessibility-div-example-2.png similarity index 100% rename from docs/img/accessibility-div-example-2.png rename to docs/config/img/accessibility-div-example-2.png diff --git a/docs/img/accessibility-div-example.png b/docs/config/img/accessibility-div-example.png similarity index 100% rename from docs/img/accessibility-div-example.png rename to docs/config/img/accessibility-div-example.png diff --git a/docs/img/assignWithDepth.png b/docs/config/img/assignWithDepth.png similarity index 100% rename from docs/img/assignWithDepth.png rename to docs/config/img/assignWithDepth.png diff --git a/docs/img/object.assign without depth.png b/docs/config/img/object.assign without depth.png similarity index 100% rename from docs/img/object.assign without depth.png rename to docs/config/img/object.assign without depth.png diff --git a/docs/img/python-mermaid-integration.png b/docs/config/img/python-mermaid-integration.png similarity index 100% rename from docs/img/python-mermaid-integration.png rename to docs/config/img/python-mermaid-integration.png diff --git a/docs/img/wrapped text.png b/docs/config/img/wrapped text.png similarity index 100% rename from docs/img/wrapped text.png rename to docs/config/img/wrapped text.png diff --git a/docs/mermaidCLI.md b/docs/config/mermaidCLI.md similarity index 81% rename from docs/mermaidCLI.md rename to docs/config/mermaidCLI.md index 01860cab2d..a2cc8a21a0 100644 --- a/docs/mermaidCLI.md +++ b/docs/config/mermaidCLI.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # mermaid CLI diff --git a/docs/n00b-advanced.md b/docs/config/n00b-advanced.md similarity index 90% rename from docs/n00b-advanced.md rename to docs/config/n00b-advanced.md index e6a6adcc37..2ca0d684fd 100644 --- a/docs/n00b-advanced.md +++ b/docs/config/n00b-advanced.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Advanced n00b mermaid (Coming soon..) diff --git a/docs/config/setup/.nojekyll b/docs/config/setup/.nojekyll new file mode 100644 index 0000000000..e2ac6616ad --- /dev/null +++ b/docs/config/setup/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/config/setup/README.md b/docs/config/setup/README.md new file mode 100644 index 0000000000..cc2038c200 --- /dev/null +++ b/docs/config/setup/README.md @@ -0,0 +1,9 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. + +# mermaid + +## Modules + +- [config](modules/config.md) +- [defaultConfig](modules/defaultConfig.md) +- [mermaidAPI](modules/mermaidAPI.md) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md new file mode 100644 index 0000000000..a24002c136 --- /dev/null +++ b/docs/config/setup/modules/config.md @@ -0,0 +1,272 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. + +# Module: config + +## Variables + +### <a id="defaultconfig" name="defaultconfig"></a> defaultConfig + +• `Const` **defaultConfig**: `MermaidConfig` + +#### Defined in + +[config.ts:7](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L7) + +## Functions + +### <a id="adddirective" name="adddirective"></a> addDirective + +▸ **addDirective**(`directive`): `void` + +Pushes in a directive to the configuration + +#### Parameters + +| Name | Type | Description | +| :---------- | :---- | :----------------------- | +| `directive` | `any` | The directive to push in | + +#### Returns + +`void` + +#### Defined in + +[config.ts:191](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L191) + +--- + +### <a id="getconfig" name="getconfig"></a> getConfig + +▸ **getConfig**(): `MermaidConfig` + +## getConfig + +| Function | Description | Type | Return Values | +| --------- | ------------------------- | ----------- | ------------------------------ | +| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | + +**Notes**: Returns **any** the currentConfig + +#### Returns + +`MermaidConfig` + +- The currentConfig + +#### Defined in + +[config.ts:136](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L136) + +--- + +### <a id="getsiteconfig" name="getsiteconfig"></a> getSiteConfig + +▸ **getSiteConfig**(): `MermaidConfig` + +## getSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | +| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | + +**Notes**: Returns **any** values in siteConfig. + +#### Returns + +`MermaidConfig` + +- The siteConfig + +#### Defined in + +[config.ts:96](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L96) + +--- + +### <a id="reset" name="reset"></a> reset + +▸ **reset**(`config?`): `void` + +## reset + +| Function | Description | Type | Required | Values | +| -------- | ---------------------------- | ----------- | -------- | ------ | +| reset | Resets currentConfig to conf | Put Request | Required | None | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | +| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | + +**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) + +#### Parameters + +| Name | Type | Default value | +| :------- | :-------------- | :------------ | +| `config` | `MermaidConfig` | `siteConfig` | + +#### Returns + +`void` + +#### Defined in + +[config.ts:222](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L222) + +--- + +### <a id="sanitize" name="sanitize"></a> sanitize + +▸ **sanitize**(`options`): `void` + +## sanitize + +| Function | Description | Type | Values | +| -------- | -------------------------------------- | ----------- | ------ | +| sanitize | Sets the siteConfig to desired values. | Put Request | None | + +Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies +options in-place + +#### Parameters + +| Name | Type | Description | +| :-------- | :---- | :-------------------------------- | +| `options` | `any` | The potential setConfig parameter | + +#### Returns + +`void` + +#### Defined in + +[config.ts:151](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L151) + +--- + +### <a id="saveconfigfrominitialize" name="saveconfigfrominitialize"></a> saveConfigFromInitialize + +▸ **saveConfigFromInitialize**(`conf`): `void` + +#### Parameters + +| Name | Type | +| :----- | :-------------- | +| `conf` | `MermaidConfig` | + +#### Returns + +`void` + +#### Defined in + +[config.ts:75](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L75) + +--- + +### <a id="setconfig" name="setconfig"></a> setConfig + +▸ **setConfig**(`conf`): `MermaidConfig` + +## setConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure +keys. Any values found in conf with key found in siteConfig.secure will be replaced with the +corresponding siteConfig value. + +#### Parameters + +| Name | Type | Description | +| :----- | :-------------- | :-------------------------- | +| `conf` | `MermaidConfig` | The potential currentConfig | + +#### Returns + +`MermaidConfig` + +- The currentConfig merged with the sanitized conf + +#### Defined in + +[config.ts:113](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L113) + +--- + +### <a id="setsiteconfig" name="setsiteconfig"></a> setSiteConfig + +▸ **setSiteConfig**(`conf`): `MermaidConfig` + +## setSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls +to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) +will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this +function _Default value: At default, will mirror Global Config_ + +#### Parameters + +| Name | Type | Description | +| :----- | :-------------- | :------------------------------------------ | +| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig | + +#### Returns + +`MermaidConfig` + +- The siteConfig + +#### Defined in + +[config.ts:61](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L61) + +--- + +### <a id="updatecurrentconfig" name="updatecurrentconfig"></a> updateCurrentConfig + +▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig` + +#### Parameters + +| Name | Type | +| :------------ | :-------------- | +| `siteCfg` | `MermaidConfig` | +| `_directives` | `any`\[] | + +#### Returns + +`MermaidConfig` + +#### Defined in + +[config.ts:14](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L14) + +--- + +### <a id="updatesiteconfig" name="updatesiteconfig"></a> updateSiteConfig + +▸ **updateSiteConfig**(`conf`): `MermaidConfig` + +#### Parameters + +| Name | Type | +| :----- | :-------------- | +| `conf` | `MermaidConfig` | + +#### Returns + +`MermaidConfig` + +#### Defined in + +[config.ts:79](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md new file mode 100644 index 0000000000..24cd325fb1 --- /dev/null +++ b/docs/config/setup/modules/defaultConfig.md @@ -0,0 +1,55 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. + +# Module: defaultConfig + +## Variables + +### <a id="configkeys" name="configkeys"></a> configKeys + +• `Const` **configKeys**: `string`\[] + +#### Defined in + +[defaultConfig.ts:1855](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/defaultConfig.ts#L1855) + +--- + +### <a id="default" name="default"></a> default + +• `Const` **default**: `Partial`<`MermaidConfig`> + +**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click +here](8.6.0_docs.md)].** + +## **What follows are config instructions for older versions** + +These are the default options which can be overridden with the initialization call like so: + +**Example 1:** + +```js +mermaid.initialize({ flowchart: { htmlLabels: false } }); +``` + +**Example 2:** + +```js +let config = { + startOnLoad: true, + flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, + + securityLevel: 'loose', +}; +mermaid.initialize(config); +``` + +A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). +A description of each option follows below. + +**`Name`** + +Configuration + +#### Defined in + +[defaultConfig.ts:31](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/defaultConfig.ts#L31) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md new file mode 100644 index 0000000000..cbb5d3351f --- /dev/null +++ b/docs/config/setup/modules/mermaidAPI.md @@ -0,0 +1,59 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. + +# Module: mermaidAPI + +## References + +### <a id="default" name="default"></a> default + +Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) + +## Variables + +### <a id="mermaidapi" name="mermaidapi"></a> mermaidAPI + +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`> ; `parse`: (`text`: `string`, `parseError?`: `Function`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> + +#### Defined in + +[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/mermaidAPI.ts#L483) + +## Functions + +### <a id="decodeentities" name="decodeentities"></a> decodeEntities + +▸ **decodeEntities**(`text`): `string` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `text` | `string` | + +#### Returns + +`string` + +#### Defined in + +[mermaidAPI.ts:73](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/mermaidAPI.ts#L73) + +--- + +### <a id="encodeentities" name="encodeentities"></a> encodeEntities + +▸ **encodeEntities**(`text`): `string` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `text` | `string` | + +#### Returns + +`string` + +#### Defined in + +[mermaidAPI.ts:47](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/mermaidAPI.ts#L47) diff --git a/docs/theming.md b/docs/config/theming.md similarity index 96% rename from docs/theming.md rename to docs/config/theming.md index c2dd3f2ae6..32a6244171 100644 --- a/docs/theming.md +++ b/docs/config/theming.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Theme Configuration @@ -152,9 +152,9 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -```note +::: note Variables that are unique to some diagrams can be affected by changes in Theme Variables -``` +::: | Variable | Default/Base/Factor value | Calc | Description | | -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | @@ -371,42 +371,6 @@ In the following examples, the directive `init` is used, with the `theme` being end ``` -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - ### Flowchart (beta) ```mermaid-example diff --git a/docs/usage.md b/docs/config/usage.md similarity index 98% rename from docs/usage.md rename to docs/config/usage.md index 0c8d103a89..35d1ba68f0 100644 --- a/docs/usage.md +++ b/docs/config/usage.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Usage @@ -14,7 +14,7 @@ Please note that you can switch versions through the dropdown box at the top rig ## Using mermaid -For the majority of users, Using the [Live Editor](https://mermaid.live/) would be sufficient, however you may also opt to deploy mermaid as a dependency or using the [Mermaid API](./Setup.md). +For the majority of users, Using the [Live Editor](https://mermaid.live/) would be sufficient, however you may also opt to deploy mermaid as a dependency or using the [Mermaid API](setup/README). We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermaid Live Editor. @@ -37,7 +37,7 @@ We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermai **Hosting mermaid on a web page.** -> Note:This topic explored in greater depth in the [User Guide for Beginners](./n00b-gettingStarted.md) +> Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted) The easiest way to integrate mermaid on a web page requires two elements: @@ -115,10 +115,10 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -```note +::: note This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. **sandbox** security level is still in the beta version. -``` +::: **If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** @@ -183,9 +183,9 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -```warning +::: warning This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. -``` +::: ## Usage with webpack @@ -324,7 +324,7 @@ setting the options in mermaid. 4. Instantiation of the configuration using the **mermaid.init** call- **Deprecated** The list above has two ways too many of doing this. Three are deprecated and will eventually be removed. The list of -configuration objects are described [in the mermaidAPI documentation](Setup.md). +configuration objects are described [in the mermaidAPI documentation](setup/README). ## Using the `mermaidAPI.initialize`/`mermaid.initialize` call @@ -339,9 +339,9 @@ on what kind of integration you use. </script> ``` -```tip +::: tip This is the preferred way of configuring mermaid. -``` +::: ### The following methods are deprecated and are kept only for backwards compatibility. @@ -357,9 +357,9 @@ approach are: mermaid.startOnLoad = true; ``` -```warning +::: warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +::: ## Using the mermaid_config @@ -373,9 +373,9 @@ approach are: mermaid_config.startOnLoad = true; ``` -```warning +::: warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +::: ## Using the mermaid.init call @@ -388,6 +388,6 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -```warning +::: warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +::: diff --git a/docs/diagrams-and-syntax-and-examples/flowchart.md b/docs/diagrams-and-syntax-and-examples/flowchart.md deleted file mode 100644 index fee683551b..0000000000 --- a/docs/diagrams-and-syntax-and-examples/flowchart.md +++ /dev/null @@ -1,927 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. - ---- - -sort: 3 -title: Flowchart - ---- - -# Flowcharts - Basic Syntax - -## Graph - -This statement declares the direction of the flowchart, either from top to bottom (`TD` or `TB`): - -```mermaid-example -graph TD - Start --> Stop -``` - -```mermaid -graph TD - Start --> Stop -``` - -or left to right (`LR`): - -```mermaid-example -graph LR - Start --> Stop -``` - -```mermaid -graph LR - Start --> Stop -``` - -## Flowchart Orientation - -Possible FlowChart orientations are: - -- TB - top to bottom -- TD - top-down (same as top to bottom) -- BT - bottom to top -- RL - right to left -- LR - left to right - -## Flowcharts - -This renders a flowchart that allows for features such as: more arrow types, multi directional arrows, and linking to and from subgraphs. - -Apart from the graph type, the syntax is the same. This is currently experimental. When the beta period is over, both the graph and flowchart keywords will render in this new way. At this point it is OK to start beta testing flowcharts. - -> **Important note** Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897).\*\* - -## Nodes and shapes - -### A node (default) - -```mermaid-example -graph LR - id -``` - -```mermaid -graph LR - id -``` - -> **Note** The id is what is displayed in the box. - -### A node with text - -It is also possible to set text in the box that differs from the id. If this is done several times, only the last text -found for the node will be rendered. Also if you define edges for the node later on, you can omit text definitions. The -text previously defined will be used when rendering the box. - -```mermaid-example -graph LR - id1[This is the text in the box] -``` - -```mermaid -graph LR - id1[This is the text in the box] -``` - -## Node Shapes - -### A node with round edges - -```mermaid-example -graph LR - id1(This is the text in the box) -``` - -```mermaid -graph LR - id1(This is the text in the box) -``` - -### A stadium-shaped node - -```mermaid-example -graph LR - id1([This is the text in the box]) -``` - -```mermaid -graph LR - id1([This is the text in the box]) -``` - -### A node in a subroutine shape - -```mermaid-example -graph LR - id1[[This is the text in the box]] -``` - -```mermaid -graph LR - id1[[This is the text in the box]] -``` - -### A node in a cylindrical shape - -```mermaid-example -graph LR - id1[(Database)] -``` - -```mermaid -graph LR - id1[(Database)] -``` - -### A node in the form of a circle - -```mermaid-example -graph LR - id1((This is the text in the circle)) -``` - -```mermaid -graph LR - id1((This is the text in the circle)) -``` - -### A node in an asymmetric shape - -```mermaid-example -graph LR - id1>This is the text in the box] -``` - -```mermaid -graph LR - id1>This is the text in the box] -``` - -Currently it is only possible to render the shape above, and not its mirror. _This might change with future releases._ - -### A node (rhombus) - -```mermaid-example -graph LR - id1{This is the text in the box} -``` - -```mermaid -graph LR - id1{This is the text in the box} -``` - -### A hexagonal node - -```mermaid-example -graph LR - id1{{This is the text in the box}} -``` - -```mermaid -graph LR - id1{{This is the text in the box}} -``` - -### Parallelogram - -```mermaid-example -graph TD - id1[/This is the text in the box/] -``` - -```mermaid -graph TD - id1[/This is the text in the box/] -``` - -### Parallelogram alt - -```mermaid-example -graph TD - id1[\This is the text in the box\] -``` - -```mermaid -graph TD - id1[\This is the text in the box\] -``` - -### Trapezoid - -```mermaid-example -graph TD - A[/Christmas\] -``` - -```mermaid -graph TD - A[/Christmas\] -``` - -### Trapezoid alt - -```mermaid-example -graph TD - B[\Go shopping/] -``` - -```mermaid -graph TD - B[\Go shopping/] -``` - -## Links between nodes - -Nodes can be connected with links/edges. It is possible to have different types of links, or attach a text string on a link. - -### Link with arrow head - -```mermaid-example -graph LR - A-->B -``` - -```mermaid -graph LR - A-->B -``` - -### Open link - -```mermaid-example -graph LR - A --- B -``` - -```mermaid -graph LR - A --- B -``` - -### Text on links - -```mermaid-example -graph LR - A-- This is the text! ---B -``` - -```mermaid -graph LR - A-- This is the text! ---B -``` - -or - -```mermaid-example -graph LR - A---|This is the text|B -``` - -```mermaid -graph LR - A---|This is the text|B -``` - -### Link with arrow head and text - -```mermaid-example -graph LR - A-->|text|B -``` - -```mermaid -graph LR - A-->|text|B -``` - -or - -```mermaid-example -graph LR - A-- text -->B -``` - -```mermaid -graph LR - A-- text -->B -``` - -### Dotted link - -```mermaid-example -graph LR; - A-.->B; -``` - -```mermaid -graph LR; - A-.->B; -``` - -### Dotted link with text - -```mermaid-example -graph LR - A-. text .-> B -``` - -```mermaid -graph LR - A-. text .-> B -``` - -### Thick link - -```mermaid-example -graph LR - A ==> B -``` - -```mermaid -graph LR - A ==> B -``` - -### Thick link with text - -```mermaid-example -graph LR - A == text ==> B -``` - -```mermaid -graph LR - A == text ==> B -``` - -### Chaining of links - -It is possible to declare many links on the same line as per below: - -```mermaid-example -graph LR - A -- text --> B -- text2 --> C -``` - -```mermaid -graph LR - A -- text --> B -- text2 --> C -``` - -It is also possible to declare multiple nodes links in the same line as per below: - -```mermaid-example -graph LR - a --> b & c--> d -``` - -```mermaid -graph LR - a --> b & c--> d -``` - -You can then describe dependencies in a very expressive way. Like the one-liner below: - -```mermaid-example -graph TB - A & B--> C & D -``` - -```mermaid -graph TB - A & B--> C & D -``` - -If you describe the same diagram using the the basic syntax, it will take four lines: - -```mermaid-example -graph TB - A --> C - A --> D - B --> C - B --> D -``` - -```mermaid -graph TB - A --> C - A --> D - B --> C - B --> D -``` - -A word of warning, one could go overboard with this, making the graph harder to read in -markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little. -This goes for expressive syntaxes as well. - -### New arrow types - -When using flowchart instead of graph there are new types of arrows supported as per below: - -```mermaid-example -flowchart LR - A --o B - B --x C -``` - -```mermaid -flowchart LR - A --o B - B --x C -``` - -### Multi directional arrows - -When using flowchart instead of graph there is the possibility to use multidirectional arrows. - -```mermaid-example -flowchart LR - A o--o B - B <--> C - C x--x D -``` - -```mermaid -flowchart LR - A o--o B - B <--> C - C x--x D -``` - -### Minimum length of a link - -Each node in the flowchart is ultimately assigned to a rank in the rendered -graph, i.e. to a vertical or horizontal level (depending on the flowchart -orientation), based on the nodes to which it is linked. By default, links -can span any number of ranks, but you can ask for any link to be longer -than the others by adding extra dashes in the link definition. - -In the following example, two extra dashes are added in the link from node _B_ -to node _E_, so that it spans two more ranks than regular links: - -```mermaid-example -graph TD - A[Start] --> B{Is it?}; - B -->|Yes| C[OK]; - C --> D[Rethink]; - D --> B; - B ---->|No| E[End]; -``` - -```mermaid -graph TD - A[Start] --> B{Is it?}; - B -->|Yes| C[OK]; - C --> D[Rethink]; - D --> B; - B ---->|No| E[End]; -``` - -> **Note** The rendering engine may cause some links to be longer than -> the number of ranks requested in order to accommodate the overall topology. - -When the link label is written in the middle of the link, the extra dashes must -be added on the right side of the link. The following example is equivalent to -the previous one: - -```mermaid-example -graph TD - A[Start] --> B{Is it?}; - B -- Yes --> C[OK]; - C --> D[Rethink]; - D --> B; - B -- No ----> E[End]; -``` - -```mermaid -graph TD - A[Start] --> B{Is it?}; - B -- Yes --> C[OK]; - C --> D[Rethink]; - D --> B; - B -- No ----> E[End]; -``` - -For dotted or thick links, the characters to add are equals signs or dots, -as summed up in the following table: - -| Length | 1 | 2 | 3 | -| ----------------- | :----: | :-----: | :------: | -| Normal | `---` | `----` | `-----` | -| Normal with arrow | `-->` | `--->` | `---->` | -| Thick | `===` | `====` | `=====` | -| Thick with arrow | `==>` | `===>` | `====>` | -| Dotted | `-.-` | `-..-` | `-...-` | -| Dotted with arrow | `-.->` | `-..->` | `-...->` | - -## Special characters that break syntax - -Use quotes around text in order to render more troublesome characters, as in the example below: - -```mermaid-example -graph LR - id1["This is the (text) in the box"] -``` - -```mermaid -graph LR - id1["This is the (text) in the box"] -``` - -### Entity codes to escape characters - -Special characters (including Unicode) can be included by using HTML escaping syntax: - -```mermaid-example - graph LR - A["A double quote:#quot;"] -->B["A dec char:#9829;"] -``` - -```mermaid - graph LR - A["A double quote:#quot;"] -->B["A dec char:#9829;"] -``` - -## Subgraphs - - subgraph title - graph definition - end - -An example: - -```mermaid-example -graph TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end -``` - -```mermaid -graph TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end -``` - -You can also set an explicit id for the subgraph: - -```mermaid-example -graph TB - c1-->a2 - subgraph ide1 [one] - a1-->a2 - end -``` - -```mermaid -graph TB - c1-->a2 - subgraph ide1 [one] - a1-->a2 - end -``` - -## Flowcharts - -With the graphtype `flowchart` it is also possible to set edges to and from subgraphs: - -```mermaid-example -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end - one --> two - three --> two - two --> c2 -``` - -```mermaid -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end - one --> two - three --> two - two --> c2 -``` - -## Interaction - -A node can have click events bound that lead to either a JavaScript callback or to open a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - - click nodeId callback - click nodeId call callback() - -- nodeId is the id of the node -- `callback` is the name of a JavaScript function defined on the page displaying the graph. The function will be called with the nodeId as an incoming parameter. - -```html -<script> - const callback = function (nodeId) { - alert('A callback was triggered on ' + nodeId); - }; -</script> -``` - -Examples of tooltip usage: - -The tooltip text is surrounded in double quotes. The styles of the tooltip are set by the class .mermaidTooltip. - -```mermaid-example -graph LR; - A-->B; - B-->C; - C-->D; - click A callback "Tooltip for a callback" - click B "https://www.github.com" "This is a tooltip for a link" - click A call callback() "Tooltip for a callback" - click B href "https://www.github.com" "This is a tooltip for a link" -``` - -```mermaid -graph LR; - A-->B; - B-->C; - C-->D; - click A callback "Tooltip for a callback" - click B "https://www.github.com" "This is a tooltip for a link" - click A call callback() "Tooltip for a callback" - click B href "https://www.github.com" "This is a tooltip for a link" -``` - -> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. - -?> Due to limitations with how Docsify handles JavaScript callback functions, an alternate working demo for the above code can be viewed at [this jsfiddle](https://jsfiddle.net/s37cjoau/3/). - -Links are opened in the same browser tab/window by default. It is possible to change this by adding a link target to the click definition (`_self`, `_blank`, `_parent` and `_top` are supported): - -```mermaid-example -graph LR; - A-->B; - B-->C; - C-->D; - D-->E; - click A "https://www.github.com" _blank - click B "https://www.github.com" "Open this in a new tab" _blank - click C href "https://www.github.com" _blank - click D href "https://www.github.com" "Open this in a new tab" _blank -``` - -```mermaid -graph LR; - A-->B; - B-->C; - C-->D; - D-->E; - click A "https://www.github.com" _blank - click B "https://www.github.com" "Open this in a new tab" _blank - click C href "https://www.github.com" _blank - click D href "https://www.github.com" "Open this in a new tab" _blank -``` - -Beginner's tip—here's a full example of using interactive links in HTML: - -```html -<body> - <pre class="mermaid"> - graph LR; - A-->B; - B-->C; - C-->D; - click A callback "Tooltip" - click B "https://www.github.com" "This is a link" - click C call callback() "Tooltip" - click D href "https://www.github.com" "This is a link" - </pre> - - <script> - const callback = function () { - alert('A callback was triggered'); - }; - const config = { - startOnLoad: true, - flowchart: { - useMaxWidth: true, - htmlLabels: true, - curve: 'cardinal', - }, - securityLevel: 'loose', - }; - mermaid.initialize(config); - </script> -</body> -``` - -### Comments - -Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text until the next newline will be treated as a comment, including all punctuation and any flow syntax. - -```mermaid-example -graph LR -%% this is a comment A -- text --> B{node} - A -- text --> B -- text2 --> C -``` - -```mermaid -graph LR -%% this is a comment A -- text --> B{node} - A -- text --> B -- text2 --> C -``` - -## Styling and classes - -### Styling links - -It is possible to style links. For instance, you might want to style a link that is going backwards in the flow. As links -have no ids in the same way as nodes, some other way of attaching style is required. -So instead of ids, the order number of when the link was defined in the graph is used, starting with zero. Here's a linkStyle statement that would apply style to the fourth link in the graph: - - linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; - -You can specify a `default` to apply to all links, or you can give a comma-separated list of link order numbers. - -Instead of giving a styles option, you can also use custom d3 curve types with the following syntax: - - linkStyle default|numList|num interpolate curveType - -If you want to add both D3 and style options, instead of writing: - - linkStyle default interpolate cardinal - linkStyle default stroke:#ff3,stroke-width:4px,color:red; - -You can combine them: - - linkStyle default interpolate cardinal stroke:#ff3,stroke-width:4px,color:red; - -### Styling a node - -It is possible to apply specific styles such as a thicker border or a different background color to a node. - -```mermaid-example -graph LR - id1(Start)-->id2(Stop) - style id1 fill:#f9f,stroke:#333,stroke-width:4px - style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 -``` - -```mermaid -graph LR - id1(Start)-->id2(Stop) - style id1 fill:#f9f,stroke:#333,stroke-width:4px - style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 -``` - -#### Classes - -More convenient than defining the style every time is to define a class of styles and attach this class reference to multiple nodes. - -here's a class definition: - - classDef className fill:#f9f,stroke:#333,stroke-width:4px; - -and then attaching this class to a node is simply: - - class nodeId1 className; - -It is also possible to attach a class to multiple nodes in one statement: - - class nodeId1,nodeId2 className; - -An even shorter form of adding a class is to attach the classname to the node using the `:::`operator: - -```mermaid-example -graph LR - A:::someclass --> B - classDef someclass fill:#f96; -``` - -```mermaid -graph LR - A:::someclass --> B - classDef someclass fill:#f96; -``` - -### Css classes - -It is also possible to predefine classes in css styles that can be applied from the graph definition: - -**Example style** - -```css -.cssClass > rect { - fill: #ff0000; - stroke: #ffff00; - stroke-width: 4px; -} -``` - -**Example definition** - -```mermaid-example -graph LR; - A-->B[AAA<span>BBB</span>]; - B-->D; - class A cssClass; -``` - -```mermaid -graph LR; - A-->B[AAA<span>BBB</span>]; - B-->D; - class A cssClass; -``` - -### Default class - -If a class is named `default` it will be assigned to all nodes that do not have a specific class definition. - - classDef default fill:#f9f,stroke:#333,stroke-width:4px; - -## Basic support for fontawesome - -It is possible to add icons from fontawesome. These are accessed via the syntax fa:#icon-class-name#. - -```mermaid-example -graph TD - B["fa:fa-twitter for peace"] - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); - B-->E(A fa:fa-camera-retro perhaps?); -``` - -```mermaid -graph TD - B["fa:fa-twitter for peace"] - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); - B-->E(A fa:fa-camera-retro perhaps?); -``` - -## Graph declarations with spaces between vertices and link and without semicolon - -- After release 0.2.16, graph declaration statements do not need to end with a semicolon. (And they can continue to have the ending semicolon—it has now just become optional.) So the below graph declaration is valid along with the old declarations. - -- A single space is allowed between vertices and the link, however there should not be any space between a vertex and its text, or a link and its text. The old syntax of graph declarations will also work, so this new feature is optional and is introduced to improve readability. - -Below is an example of the new way to declare graph edges. This is valid alongside any old-style declarations of graph edges. - -```mermaid-example -graph LR - A[Hard edge] -->|Link text| B(Round edge) - B --> C{Decision} - C -->|One| D[Result one] - C -->|Two| E[Result two] -``` - -```mermaid -graph LR - A[Hard edge] -->|Link text| B(Round edge) - B --> C{Decision} - C -->|One| D[Result one] - C -->|Two| E[Result two] -``` - -## Configuration... - -Is it possible to adjust the width of the rendered flowchart. - -This is done by defining **mermaid.flowchartConfig**, or by the CLI to use a json file with the configuration (which is described in the mermaidCLI page). -In Javascript config parameters can be set by using `mermaid.flowchartConfig`: - -```javascript -mermaid.flowchartConfig = { - width: '100%', -}; -``` diff --git a/docs/edit.md b/docs/edit.md new file mode 100644 index 0000000000..7d3dc338fd --- /dev/null +++ b/docs/edit.md @@ -0,0 +1,9 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. + +--- + +layout: home + +## title: Live Mermaid + +<iframe id="editor" src="https://mermaid.live" style="position: fixed;left: 0px;bottom: 0px;right: 0px;top: 80px;width: 100%;height: calc(100% - 80px);"></iframe> diff --git a/docs/img/Configuration.png b/docs/img/Configuration.png deleted file mode 100644 index 60a808f2c3c5ea8929929910b8dea4b08d583804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26097 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 diff --git a/docs/img/Editing-process.png b/docs/img/Editing-process.png deleted file mode 100644 index a49b352248d92605386e0666905a7eee0daf0d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18851 zcmbWf1yohv*Y|tqBY6lx=_81UluAp3grFdx(p^f30@B^mDuN&_r63?FDUBc^h;*ui zba%XS>;HZ3bH^R`j_19O@%!n3z1LoA?X~8b^E1D5hpFFEBqOFLMxjt-%1ZJYC=`wi z{MUyjgrB_0N^C%(lpiR|%V@a{FO9kBYi*4atwtY&vW9o?n(96~6O%Th;cw|{a^vFk z%j|TW#7gt=w)3M;JAZ^5^zl+<e+-u3>d0*R(OmOXMUD<l8WE^Kqk~VVLnxdgRXN*? z!o&OWW#!B3m4mIS!iCqOjx!#F`>RJsUtc+j_4W7n`(tF~-?A;>qOpPJiDhI%b8n-m zWaT4eV=(6)(D(;pZf9cH14DJK`Ux;5RbD0ZE+5`$$IB>Hf2=q4Th31IlT^bhCBE3v zJH76GuQA)mr9TVPYborbF*!un#fh&xGPrrwZ{dtezXkkwo#8akdpXDdYLz~S6)WGz ziGK>4p@3CFQwsjSci_J+z3;D|5-?PP7n7LyrHZCNle449>5u;IzB`uNmgmKd^9#=s zGBE5**;-tbwB@vQb%v406>tG3jYYmnU+!{3f>Qr^L1nH;o6V2qf;DhM-Ts41qod-n zF|1AVKa#MqO003MCfkds_GwZ2hnEBe&q5pYN9op`+gm}hG1igM(JViI@?x<vttTs; zd^?S!qq3O;j!aLr=yNu7H8r1Kc3VHQdqA{aCMF{ChX<`!UD)4W9vUUtF)*AHP39kv zQ!b|U;lq`f*jWEl)VNwNM}|bp-C4MK3XJXSI;Ccga|O1}mRlU`%f|Pf%V3M2HD2iN z#xOGzxVWf!e@vY)@6Wn#dwh5v<!d)0Wc;gjiT))0b9Z+@+?|IBN$(8Lb&ZWtAMCVM zyd}Jlb4*{K%`-AUH;*4?sFd{xO`;cWGr+qhSGC{77L-A{Fc89e^(qr3WfDEv-h8*2 zpeIkoQI^W=&($f3L$Ud){1U5QQ}gqFG6DK}`FiP`cibj|M<T+)w9aPt`=l&HoMUU+ zHQ8Al!f9_;vU_4AI6W;${OZ-8_O2s?X~$e6wWIgk92`{8e9Ws?QE6%S_I7?7YMxw; z3=5N2RejU3J+EfxAZKDPlCQ;8>~&zt&T)g1p<2!2D7&2EP;_Ou50iS}W>oz|c~+B_ z#$Wy+6?K-9+6jf!n~m-5mU26WH1!t^qocSC!uBEIofvMt@>>>lH+Z`nezufo1;4*) zMaU-Nn%Lo~WoapPy!(q*iv8i+5?C%VFJDGTdfBqZD(U9$`JC*agzQJ70`bpgWJdp- zY_L9-_;@n=fS4j$R=zn~!O?teZKA2k><kr^`Cz>i^ZWP94|d7~E2pfzy_tQhCdC|Q zL`==PVKoE~4mv8SsLV83z{}Atw`Gzlof-e${qV|59=!qUgW}?Y-J|gEYW!>06g{_o z+~thBQCaPAPF(z{(Y<rAtnB7Io}Pyo8UaNMt~Ys0IoTZ0d3wvQq%##1s8sKLzYfOr zC?=DH%Vv@%dq$NpX<L7&h-ESa!@@LFQ^XbQ27dp%g0GqLb%w>mEmBrl`7+JZUdsxP zZCml0TCY2@T_YoOl9JvrpP%hoz-okMyx%pw5#5;KnF>jqnR!|CVZJLQs=E4u6gPn{ zyl#dc_<db*?j8s8n<ep`jxmW`O;1m!{&+Wl3%AH9C=e5qZ0OZ??K`WmQ@Og5%E4qj zcrffDpp&Qd^UJGWk>yfmt)4Gl(7bahhxgF*IZq1pX?U3Y{d?w0N5%I)x}#?B!}@o3 zcd_i|cJE|!i&mL$sHp53Z3b6<<+*w_c|~=eggCM3q&n{-uR-n!i^+orSMC<*=9Y7y z=v|VR9{p0FhaH4r6ffv;+@dfnrQ1<d`7YX?-Pgw%o0>}Gb0QtropsD|)@l~#fsv7x zmak$obGk}AukO$VVi{A6zyD0GlY!ljf+YMWPog-vxO_G8Z10IEXFUoH9c*SXo|<Xd z%qlI#NAbHBG1!kP1(cQXl-q`B9S{WxL<Tp>f1?k+>+z_ms#*RbbYr-NDN7^l#fwyU zdm&Pd`q~N65fL=CUP4!NsPqjaU{@2tJFk03E4FNv_-y@oN4Hiw=XGV};&HW{bPT(H zPoEFtsQzu3RC4BsnSr=YM~B_j6roxQ;nd0pKV;(q&gA8Nrf12DQ(~X{-WE(@m8J2S z#krro=m&vc_M2W2{mPh6-F{WDm^iJ;%k7U;r_qa3O&*(1{IBf1dXsft*u%d@{+wUE zPg)1dIq0ceh^c_&gTk8vj2ybp6F9G%W@uTwf(>LlT4?}=%&)?-iwf2hA!;{$<|R+8 zc8O(JN6loSpotxQ?+tdUe8bwa%*;*nU9&t!b<ES#7W8&j^L<0w^^*9{FGNp;WH>wX z$lSfFP;zovxT5gpMedrMD-(1y0y#ZyE~8E|M_a)ZERk!!E|kx2+>g%Fv|{7oIV&Sm zh>Jq@$?x0l%X5#9y6cZ$KlY%gD^&;?9v;@Mt!21;=HBs&B(ub_(hd^`;nEj-(Zku{ zjCg~4WeeXN68>*T)qkB7|I<Tdj_Zni!8PGa>IQ2G&SwKlUvbpe)A+wp?k4?%qv^Q6 z^(_wUo7TO1c&K1<rl<FeyyBdd6+YJ)@oid9?Id`2DnGZ~S2q5xR<YB9DbY)(Q@?wc z5ar-8gv%Fk*~;LVb<gYn^Hc7B+V}snv-AJiYJr@cogL4@IrL?YoLk9_!DI}j<r12j zn);Ovep~iudFJs?^?Xo%&e71{f7fOtNzzMf!Qcww7tDQX3?eD}zy#NRNw^%awR{FS zyq%==#wIuad^fSQY;|{uKwgDd@3?(TmGn^>hFxB9c!W%YE|&$lUtO<SW*&Dd1RM>f z2R6b=25HCYXsQgef+fN{l0H79vHY?zR%gHc>sX~wX6s?(P9Nk>zwEz1R)im?l=i`o z+X>-0?!6k&2rC0}MQj!F$R{v4J#5a%#fwPOR%F!;yarY3bnO`AdZGKh>`rsv{Co}< zOS+*EjDb#KXh&wE?xA}vqs8@T_1oJCI!yJ)`<LFnefuq4j%aXX#AfSUenHRmUdpkX zVvWPf{<Fb}R}RFr!Qse=-O&>~b}mAZcW+Cx5S<cxvi$8hlD?8WS!}Z5NHI6h(?6qz zOZ8}wGPyc*!4WoohQooSp!saaYRAZvd=<+40~ebZZl2~%wfzsg*9)z0#hj^C6f6^Q z$@Rr8BB))gHfisyjajwBS<u*gDht0fDvWPB9%9b#<VSCJCr(BiUAnD#^uqa~yBt<2 z!ceD&ZSzq~5pR?6AQ`{RBSW%<E1SW{Z8uuXoaWfye?H!J-G4(X*l{7h^Bcqe!0-BR zYiIuUe>q)whkSy9I(#d9|K&5~OA+_XeW^mp26BQun&~#eMJe69+4}Yl$(@&fo+c-= zEf~--!Si${mzTrR(nR6R43@o3=;%n2TsLrhw3hFpqh&3k8cN8>_*z{<Bcid<1Myqh z+xY{73W5p?<2zRGz#$J_$05J_pWct^oE<3C<;$^L(SA}P6Y!6i8^7r7)SlY~!{r)z zzX#%P{L%_uxsgR>Vq)`XdGw_C_zXc9tU9vMk8B~}HPw+sM4vE&Ns9pw5IW%Scs{zX z&m5mft*Il90e&ba>rZNLpQ2skO8a}AQ8fYM`|O$N@0sJT4|h7^Sa48q>;{8hhBzS8 zUV6jX@dKRZ=5Nx9_*tY4CbQlg241y_+Gx=JcP@}J&Nc3v(Xb;k04{9A;Goy)4uyPo z3M~r7!XoABaj?Dsz5)2@jGZqF0^mrl_XP6_2XrKZa4&M0+`C87ZmxW2qoLvLpOj?v zT+a4p`JY8`-xFb!xrN2#^4LhF$Bqz7gs}aahK{$w`<ulkN4JTox=vB`2Ex-qBgfjL z$SI=zq3H>Otv_aXVZXa=XdaK<HO-(wTtU0;2`LO!82<6G-(c0&RTwV{g|uk-C1Jvx zEYbEm_+0QiCFQ+S<KuPUQt&_enS}BMU-7b|B|p-udLLHzP0VcM3td^Pk`nc>JG<-9 z2j|s|r2OqYa4ry+62{^%8^yT1YzWgm@!pP{c`^8VPW06NmP&h9S8HEhNxJ%rpX<{b zo>sZM)~CoqPW2EwI;v>vY_%p|TelqeRn-t0db832>$id)DY<E5b8T>Br{yKjyUXsI zA_+-)pTOmKolIo<<84q;#R`dyO;!C<F)$6*ejh&)%yjAb!%V<J*`0>7l`9(O(~uiV zUqATMj~|&s4!urEFnm}LFx%k`0b{$<)ExNWzPx04`aHV_P8*&_E<5tBt~B71w0BSG z=#7}J{rthT@Myyo+zFoG=h-8SqK~;>bUcVlFDol!0uO8o-p`gIo3+z~iRtE7Pe+P! zyqi-33FM^KKYMrfTuok_O>vW9Or?Wy{@rI0i5hv$nTpX6Y2inJuhgTgrq)(wGvIKv z@63MTg4uYp(x%t=GiM$7G*0}mhJ#<xQpm6LtDlfvc}05q^l7f{__(-Y-dOaRAlAzw zSy@??PnPH>mQK^q2vmC?g_B@<!3I)_gFEp1w|U)2=hv_ObIyi_hG#CD;;UXVG_EC) z{{$_w9<6usc~<PCo*XJ>4v^9dpxG26KCMnQt^Ew=%h0Q^N6p`g#md8eK8ODJ@nfa; zk=T2~+NaQ_*4?}1yYvhU3=zx{i7UHby1J6|)p|3j#hm|qa;GB;ZZ0JebHa4bf^kn! z=cMt>aakG`9IYOBT+v@*rAEpiMA{TW(H2U{HaV9&lr>lFyn?>oBPSw060l{@5O~h* zbWQ7)xk2za81~vc7Iz&T9iI0SWj6O*U0qkxcMdnYEB<&Lh&*XpTBPr<eu#Ns<M;kq zR8i@2V--y;7+<mHuU>s-X{dd&l&Dbn=+UDFWK6v(d<|n`$*BW2(N;zR*XQdy9aioN z+NS>bx^G5V`tAbB<i3WQ(;|Dy6u*~Cg7wYYw<(`Jd$#-S`|m?>Jw3ge&0ZDHiX3~x z!rBx`oVpW5W<t_3-wn(o&kN;(%u;V#wsvth8O(7j;#;oL5JGHx&EVr>0%c|8%E!~h zj~yNL^e6iIUP#4UHf=_Wh>HFx8z)f=k4bqWZ4}S!dKj}*=<Vz*SmpG`|7)_dFssM@ z=Eb+~-u2{ZUT|6-{n+E7?CvCgJB3Q(%Qdt1_7qp|%1T@e9J&QBl9D=!Cc33gA`%l{ z&JG)Tu3eYhG<20g%`X1H4XUtF*E|Z;IrZbm5A9-80$V$~V(%k&FvS;AJu@Dc*4`^L zbZ~MC%*<p<@mLn!^vV_{tP)8JP%31XhPeNZfkC9r!27i^LvL^I@ItqlS5~{<HrCfO zNZf_6TwKIGJv}Jj=NHr($Hxt=R?a{FyxKs-B2fLcA%N(z^*7dj77}VF<3NFDuU>^+ zy7zvvBkt1f-fSvN#FsCm$VzLEWm|(4*woSSbc+`~96&??zOl*i+VWU6B|ZJyk{x(f zBb?1Yj=AIcjChAp__@^VC^)YjraMmS*Lj|W+2!QrwO<pI3npz);j0b2ovF~!)paw# z1^as6fHmZfu*j1|ZQGIZ$SuW28fX7=aY;$x5GhRcW~sz{HitD;?eY+Lv1dddvnxc> z6I{J|wZGaphW?2kBkdR%2%ZNI9;9h;U6-(sNlpu8KYxB|eY&&K=?@jWlkY$GQ&Lj? z-WkPsaenHVkl+u3$D3nhw^AjULMT{TKl$MmJI>zPoc|HN)z*X`lt!t^Nwd4w#`0+G z=XL#B_p%n18(Yg`3}6XbA!g%;g^`euP&7`Exjxx|r<y2`*Rw?~ii3kAwnT_y+~7}u z%wDnQ-eYjd@MgPH+lI?*OziEWlCQb^d}Wnla&-9*Q&3v$N9P4vUc;Kua5}zoJUj(0 zTSl%^1d_Y@`uf`O5BqraD}Cic$k(F5wKK7>2&(fsSnqtYGG6eV-u%khpTB<HY1|$# z@@aW?UPWC~Gaxh+?ds-Me4Gnj$v1Sn`4!3C_4V~cg9@wee?yOEj_k=)Tv%kFe`8Tt zx6kG2<+b+tLh9U>7mK*-H|twF<Fy{Ut4$Qx_)d7IPknuTh3v;xzxh$(Y2CRK)EUqB ztBu7+UPFVbqq8%~;AF@ub-G%Df`X!dnz}VnEZ4%uCj4Rj5iJ&rMU#=Wu=pJMMN967 zI_J5|V69o<p4fzh(2d#dU+`Xd-b=w0MlfBY{nZ*Nw=!O<6R$?<o0oU7?s(tku>0hY zqHb@7LELQ}ADX$m@WClcR{c{)M+fvyYVvSzgU2warLT_$c^!krW|u9$oDs{F8D8Az zmQsY3P<OPg2R@?Nd|zI^O7BHt8NZ9XysaM{XC00Y_h{=2OrWR5W^Ja6gT-egJw+CJ z!zlN_jH>JFM-&zD4-O7aPRAQr8a(@|jwY7Y(K-7y`5IB4*3%a+URVw|KY7wx`REtF z{iujoqKXsOxpTOVvtL{0f4rk)Vv2<ARKlx#ffN61UVgs3sp+{l8W+J14=+}AOCE5y zMzcge`qdh?F3#H+41;~LG#sQ;VmSqeMl0NDVrJG<#a)nz>B~$^q(3~EI0@F`Y6&8t zOEhq4kHN04tu+LmqITNn!Ie!kv$KmdsD5Gsi+gu2GrGuS#V{d}e&G83i}+itJUnC< z)KZ#<O01G<!-pNaC5ViSjCS|;8~giTIu8Y+P=w@+p>`wXQ<>3{jqo;{y=5!vZlmXw zl$B52N)`*!%(*4#(PDAo!Ug1}?rw^s{Vg*CA?!_hIFw}N<dD_DbnS`p+Rql4UwUF0 z9u-y9=FiVBtgZN*=q-r}2?-_eo8TTE9?ne?UOofcLh076R#;tAv$G+7ctjs~l`nDP zm!-XVgAY8Q1zv^2$?*}#K&%q`8DV=yj+=>rCQZS`ysu(}bm}}sksb2wn>wS2gRirw zt_*gN91fYmdLOAb8hOLcqhn*2A%IX#;Kz}0|JGF>W&)O>35=#c9MeC+B*A_qTzEDd zDO*JLHANyEOxHOHiQ3Pz2b+HaVEZsVtXT^lU&&SoeZRN2hn19MzUH#ryu0>`?6~wS zal_r18(D+39>TvLyFKrwfYT6`xKK?kEZ7^Nw+i$s$RF12aR}KB2f~CD@#YwC;tM(~ zkBZ7)zmC0dA*aWYgM-8MXlvlI*S^#IeyBApF5{kz>w|S(*I;SD3~9&rS<?7-iTE6g z!`6;mTwGM>78MgSo%!-ALFCc7t}V*jiGnt?$ZLV%msrM(ExxlD77<5%+rs3e@6Ln| z%X5yKrUo3?FJ6ahZQ4~%7r&-TA<L|oH|HiNJ_B^#<+)Y!$ndZ!tbQ~psky;9tUq{X z)*@nJ02rHS{DYU{jl3Hm<fQkiZW<n@-<avTx^MHAviI&)%P-Qdt|C{iUL{-qeG-*V zVqB1sft%`cEIRJ7QmcToyIj5U6T(ay-#~$1k;3EB(aaJKzuPJMvr5Bq<@ovdC{}7V z$fKC9Wq&yQIGfTG%cdy*=>8+wVU=^S#vLy%hDJx<JBYl9rM5$7=j51eFAi0@tT5NB zA|Q?(KZKm=O5)0Ostk(nIch{G&y%B_e3kox0m;<jPIEECN!k;&9(3^19vJEA>OKW0 zD3ANO61&Lb-)KfACY=>}EMZ%JKkfMVIMU4`hbh_q>C&eS!IQ8AFicDZWlLUbEp*WJ z(xz)GH31}ayhy~1%=*G(0n4JMsk2utt(S-^zy=G>GknHmP=H@nR94o~5>BTR-^)eF z;BRSZc_=RL(G%7kXx#><THj9z$G}!&IZW;X;fTjscW_1^z9=>S-5#5pn=7rWOTVBY zVEGMeZE4xRtgJ1U)O=pPz4E~5!uj*Xyw}YLnf#^4)XNKyNIB3t{?)6qqobpw50q?I zvFOs;q)grz%o2m(1Df9N-_y0YbmB88Gtmv@P6653*?k058F&ypp?s5sA41&9ra<YB zDtbKKakrqbfUPqSb0>h13>P(8`6$5oBK_q=%;xrXE9?$I-GM%!b@mv!P|T}WuNub3 znc=T|m7dU^KvopDc9C@ER<>FyIda@iQ<;{+*_2Cd-q6|kt_2D0Wu3ZPS_mra$F771 zuqmAOm+l-hmX=0A_vg+C^I4<iOfyMj`1tt1)Zbm&KsxC$dODlIus}I9f)^jhxaH~T zo4gcgv~O*##KJoIvU{!jmOqRePA+Z0?wO=A9v&X}`1k_4@BjEw%PJj+iik{tJ<jj6 zj=des`b}gNY#Go7to!fDN$F%(mF?~Ax%;MM-B$jnzA@oIOokNvB+}lHL!QvX;{MH= zKYJ9F^_Il5fpq+rT+s`U(Uhl&h=^bc((?03X=!QmJ8ySd%Q>`tuvInEb18YV{4BOz zq)>iBH2>W>dGX3WIW;xnG9hWV$wL;1SW%lUCB9u(vtyR42cin7WObVw8gNkfQhe4< z*g<}j=&gX87tyDBGQE%XaZtp>#4sf8Okx>loc459cKLd4Zf<p5-HxgV%d<Dp<utyG z#ImxRA+qXf0%X!r-;Fi3cUExzRL}$l&OHkXBDitmhIV`pcK}60KOt*Q>btY~$w=ep z=kcBM3;wlO!HMsjTl??dF5Emkf98sKtuLWOktPUTo;g`qoL|uByHbf6E#_wUK48uF z_gB^|bpEo;R18|^b(}#N;gMN?{wY0^ij}}K5a~IhkP{HOD*@BzjC#EPF)=;5<P-rG ztNSfekpd+Rt}yc3P)y%F)MHNQP!#xtc!=w#9iQ=XQciv1Z-3q#sj8}?)GrKL=Htf5 z$tWouIAE2MjTwr_rOBZ&yEd|rJZjtX>G*$#w!e8*rqLUwLpOjtqSWsjZp`<Gp=b9+ zZeyr=X>Vjbb3XOp6c>IF{og6m?QU+yk7kjwGzix9KP8h+#2Vrs6Vv}^xa<<Mq-T2- zX&FAHe=ybGYXt^AI$DXlZ-zRbeQ=qgfvK}(EeeN#HD>~Ib@R!UhI$yl{ksG24KCvU z7%CQLSUK#LcH%EW{T89PEXN1^N&JzeLYGKw`}99gnQ{Kp8zj~c9C7~dROTvT2YrhP z{&pbSd3p3za1)~$+20XHI?wl=QcDpxfnK_k$e2+`M{U4E=WYCbn9^9;@zXH)tSRuI zdgEZjD0pEg>9#1Qwaq`8{T8`}Y6A~h%Td48F;p6geaUIsc*qonhRUfg{+(RY3msGZ z1ZiBvvga%_7VuqoyIZgMq@!#@{bNG!Kr=1W{@3EIel69L$`j4RTVOcgLWN{8XR0=b z1YGs2G=cKA@|Q0t;S7qwKUKw?=6nJ6!gGHt4`!fj8Q^LT1qOc_-z9iz^C#<TGQ`qL z4&Du<cgbl2n_bUZpy@qOt<Cc1xNQr@?WqSRBK>2|6q4gg8NGM3F-luPX>rBDiFXz9 zMqHioJbFY@^`CXebe3yTNV<icD(r5>1oP3@7ZmD5Ox<_Da;S(m1XFPN?Jf0qrnLXc z@*#O05yzRz{_4wN^8S)ufeie8lvHNs0@&PcY!T1|Bz<&vD9$K;rr?KNcWOQUyL%65 zwdk~22(Xuhz#Lw?H|InC4WJ1yq<^rhl`lFhEU>VU?nEk2;MTM=@%6JWd6PS(q&%LW zfG`36`G>mhWs+Y7x@K|Ir=^qW4yZqF2Xbe9Lv@-MDl^knY^CFMp>e~m8P?E%0O}hz zo&qvi$KKV_`b3eG`7fCz83XNc8;X-4&sK^-(o}JmgeSkHpFufq_(DdAYXuAB4k!tl zB6@#Cs6M3D%P7tnJjh2gUmi8Lru+(7xPSk%n1pNZL>KAH?XgGOtS~HFI58+XQqmN= zzxs<1zmALZg9+f)Eq%t)Att)j_T^QBXN4=|o*@0f4@~Gp404xcO-7J%wED`}_Q7HS z*x#wNwVHHD<@RZvy_>&FIx|Cyny>0}+jz;!#zt`cdKF0?vqW`T_WZ>ZaoS}*%zc)0 z7SSKH*bw6q#gHy;v8m)Zui}#pJy*xQtEwb%pP&6F$H*Wt3z@L#X=2EHG<9`p{@SY> z9i6xhAQ4DT-+RaZo;rd|nApg~;l#UDkH=>@_&y8_d0@&@B)zy2F*F}&)na2e=K_aL zzDFx##sL++dq<RCu!QOh8f%Rl*^A1Tv>*T0(4f5FtPKFD^QDrA=+;1|w<hW-Aa$Og zG?cZ#w`u>?!HI`|3ix5<FpaCLX9&aOGp<MtzOWx-FDh}AztN#a-~C-jR~H8b39!ER zW>&MI06e?iXWpdo{V9XxB&F}({&N)__b*MoxX3uQv_yhh-QEs@?v&e&d~)#uvI*1^ zFeqd+Cs$ZPo8|L5?h8J4BPVAW|Ni>`de`vd2cBMqH{nO|kO|8pH%WLK_yk?Ib%;=K zN#?pX11G8_NLKxf?p7qF0eK`f?3W4pQxwrZDej`2iMVBD`%MqFySO&|ad0&Ee5xVS zB(~4lpRa>JG}L_XhfDYDtv_6Qp~S9T>wXp1&Yq~0jg6kR?zV=gthmoH6-xaT9iybD zKx=erZrM=|iiU+)#$--?B)CbaqvOKh$sWrWikD}?5B2V}zl<{>CP>SzIb82d5VE6} zJl-|y&zkF-=}L-y@gflXu@c@aWjnFGpccmT;tUi`Ay^EjMNZ$1Zu$3JQaHqo+nFdD zVQlKP3mi-PSLI~}pV0We$<7X*!6!%?s}&(IS-6d&A}0$O`re`D>#yzzzm=TFANoF= zidBxjm9Q1>Ewb&hlyc2Vb$RTq?6z7K_-TsCtRA{Yr<{bB0(E>IWw6>d*6Q8aUCPl= z-TUU}d{JIn%z3`K3cu(3ekzu@v6T}Q2BdNE&l|cN)<bFn*89XeWZ7Sn^}Lc;GAzWB zV$xXOpxEanybsTyg3>T^PIvEqkx{}?O5FJUnHnX)NQ;}yl1OES8Sl(%?OLGmm6v!= z{RU&M#@9C6LKC?2`0b+&-BY+y8PLX~WL9J(Bg!{S(XzzS85ilvNkR;}`vhi?M-;&F zVRV-=7&{XXgBw%Y4^b-$Wl-g0V(@hC^4?c+y1+IzQYrLBl(L?<=Pm~I4d_{aRw#1` zAMX<w>Z^BT*U%)#488=(x6(5*{GCOcebp~;GOE_s+O^AQ$7n_x71I2&ZKd^uIAeD* zfI^_IlL;#*D2U3Xroo+wFXC@z<!;YY=r5x>%wZ)SC^RBMnOj<(V`mR^zTYhEkjxsy z>hVPm!=KOk8<&5TjVNEc7<YTy$B<Tq<GIP7-mH8Tc0%7I>NivT9{y;VPyGHx-Y8t( ztgQ18u#f>*^iBpgU^d+mm#=ajSCL2|P>vsqMqfiS5V9ivceTq(Ft{)Ei;$<%uJ@K$ zcoyc{<3~A#(L&=kk~aE}J}@`D<3k@25P+AFnF$%@4!&z%`vQ$kO*-+n@SlpwOkwol zO5%T4UTjDTPm-c2@;N!)oqtydTW!~(xVSj<=~GicrM{f_L2@zhbT+ggne<oS0nrdO z#aRIU5^<PBm3Xl>HYcCcJc;Hokt@QYi^v+mmzr&%GinB(^3F@Ui8`hUpOf109Y6HF zJ9kc_h-I)CCp50De-U_CXCeAM-XExc%S}Q;()8zh&Q>{v{2-t|6I0X1DpFiLv`iW= z+RF27Dy!{7)MF&t2iT`?F|@z6um<2_&XXl{_0GL}nI1dK`JJr%F&KOl_0=(=^m5#o zjbWQYldeQTu1?9LO-&$9cXCosQ%VxcOz|gR@SPX}hsmXH85^@o?)|2Yvw-;yQRVpl z$Le}u!P~b_gPU+o)UoI}4z%-W-`5or-V7|Bt2igSQ%xc0Q>PmE>JKwEy2H`bU8jgc z8iH8U##j+gZrta@3!i{sEgEc^<l(B^;r7Twv6Gt6RmiY@k2Ue*Z^z)5QU~r6OMiWP z=N-RA2hH&#aQ0|<^+R7XZeIwZKFYYIE<!4V@3&2mUWXS`@?=R@^|eT>kG`Q{)a0ab z`}E`5ewo3yxw-0liRVq)(jY1#kxg}}F6Ba#oaD9^D(_QBe{GFqxNOphfBXo%Oj>Sj zUkJYW^Fro~+}uRnw--Odw6dXPP`kFj9xT=uVTz}O_4F%NqaTb`>ibu`EULZGPG{ul z2Uu$(Iy^kQ*th|AwAv;5zJa_H7Z;Z?BtMY`PBnb_qN>HE;_!Rjl<_EOACFA-l=N4K zdBb3aHlj(0iHqPy8alcX-pDz1cry5@oESnD|1G>s4ISL?vzm#F^dvkeQA$cmR|pyR z+FVw~uRA#K!%?9Vuiz9&A~TO4)G#SmG=&p%jJL$V#7+4Cg)0qV5$5dKFsxkgYN!1~ zT_j8jCk=7`G$oVk>Ld;d?rEHp{Wdi8aXEL5>jL9M3fmm&w-P(m;&2%WFE8)mhtW}e zZcr82Pu~x;7UAZG9s%3uie_S*Z~Xek>Vm4?Fdab!7XgzmBQ-Vk;YR97Gl0xJi=m+* z#18Cs@>2dna^SwfO|mAdSnYc1d=^%e@p$#snw)J*gN#<yn>Q&>pC+)fvhvokwB$fm z0kJIG<C9}Al(X>sxy7@0(Ax_G(axevmH;p3=B(pbRn^pTSOw0VKYtztU7|rIDWvJv zty}q>J;W+1D)NeoO+7uaMy&+t8hPdh%=dGC{xlsN9{#`^a2PKWGPyKTafg{f?m~NU zX=yXimoZK>9iO49jP>O5M18bjt$Xo*E(GqEzCM^Bi$S^XEJqgBAJad1^5pOXNLh$w z@$PA8$YMEJ!TBLmi$2S5j9PeB8s-0O7hW5;0<}McaS9&y&w*(|Okz=a`Aqz64E=kg zCxe4U{~lm$XvloB0!Z}(uVM}-IucJfx+}T+#^6<OIhy$5ARHx&Bx7{>C;;(ie^$)N zl|)Rw56zE+JQ7(kuU38sEN8IPaB!os9AXTAo|2jDPJeX7s;Z)rN&S}W(^$0&P9M|i zxkh6FEN6LrJ`l0cu&~>re}sU|A)C{{N#+x<yUcYv)<))_G@O$1^41gy53TJZ*bv%9 z#yAA&($h0D8ffB(hG16V{K-D42V5Nbn0~3-hj0eF0t(rC7l)Z@|N6DHq+7DHic}-I zA=voH<5B2+$)bx8Ma!zHM%=(yT3P+7-5LK?pRYCuxg|oB_|B+fz6y5h%yo3Xlr-yI zm@A}bdlZY?OCt%_TzJQ7lv%wG3YL$BY5W^yvDWesr51VY*po7gCm221SvL5Re66CV z#VYLB!rc5*U!T^CjR9H9BCNKycKb=vE%Br0KsJx}x_uhEx+0D40#gO>3dAkh*)8KG zxDJ2GUVwmc40h1LRdK*l)56r$A3>STp_GRoo<1dp6_0^rhlN23C*;p$c;nxV+9aX_ zWP*)v-;V7t+rQ#&23bL{6M+>K!u9#t*@S@46+At~7uMx3T)s?+;>0ItXO$~DRzHI> zc$s?^xKL1PYHG&^V2H3hOL%W;L9&S7_!A0fPl)ryH#h;L4Z&~<8gB?a9FG9=sb`_1 zr9}gvQzxE-KAzX0G52;RBmfhQX|UGz_Ft>m8xDRyS1WQ|GmW!YTU$e37uTgrI`LM0 zm2TSf#3aw5uSe9r_a)UG5jLECGfC^^5oE$#S88|E)zv>$iD$;Wc!3`#j|*f378l1E zb9DcSA@|s)D(AzaBP0_6R=|4*@Zu_vt8<qwg*&?`D09WVWz4(K2=RtB9FkRx0at;c zH#axuj_zz99~~q}`AG5_)qR21*Wt85=<4zDF}&*s>gcC^X)*z;OBEAuUz_ED$j|AI zMsrI`F>kjuql7!n-Me>Pw|?ByiI?pIqwfi}>Et1CL%E}qQ!}*7;1%!uJ^N;8M1;9P zN<%fIEFk*;Ip~HenqJZXQZRjGZN0rz9@~ozfLgU)u8dSryt`LuX^<il9vMl1!Y3sB zz#AmcguD{xbx!;dHDG@S+e-<8HZMEYVS=V$fd<H?8yjRa+~$e{B-r-*^YcG6ynYK` zs(gdN$rxMQfWY~-+u=fCz0d*uwQJWP;}Qm{n827A%;v%Xg<iSsR6LR)O}J`BUbjDg zDYCHtd0bo&8G{gnSaSI;VXq+fC7Y)uwBIBfsOW%o-B}*H>s7G@X&K1JCJxU^9V|jR z$y^;553i@<p;5m6$7iWe+B-X&@^wluw6y&{@2E42yZRyx!uAt!o_}F|f?66XA%eWp z+(f<9f`$?azA&R<k+ENYIb=dE4WFP#nmRj4V4#{Gmy>1FKV@7GU+of}5I7h{&^xq( z(p{d9yrZg0`V>wsgidB*$k4p_OG`_X7))B6T@Rnh$QF$5U}q%+{&cKE_6WSTH=h|q zA$Gr!72e(5-Ik}BqrLLfFz)5cpGgnv8h~40cA8V~pZ?nv&XQ9=A3?cMcZ$T?)_@U` z5aH_NGpGtgvJQZbXX7m_EKEkq?IO#IVT;FUCPs`&9j{S9;0q#(2ym(8{7Gf(kVYPK zLyDu=q=_)j!p+Uib!W`w(ea_1H*-<mGQX6RkpPj>hYued=KC&wNtH_F-L#R$KkF}j zPzB1OvK4rA8!RLf6O#tMcX@dYh&%CcTpVt`2+23v>%zO>fu+Hjifj<=cv)SUBJ5xa zf)~eJkN0LD0Z^{2tjy)^{`~p=wlf$7g$c4_NChcDE*?@+`HvqFpY!x5lS#8fz-iSF z$P_}d07ZS_7Cs7;)ekns%$5l|A$v4Xe|)-IVu$hMBc=&Ehp|;b)K1=@x1$98_1w4g z0EGnxN8#N+IjI?M-`<#JcQh5j2PC_I3}ee`p}!z<d8?PoY>^Q98VR}ez~JECupYu2 ztJuNBzuKxwhbi1BM$z8+fwOwToX<ZahO=g^mBA^G8;@fbgD<dvXsV*YB`#keyxH1I zHeT<;0;<xBualFJbZ`H3%oBb<X>S<b@TyDA`{Y#eL}W4Oe|&r%vYQx6N@UO7BBb<} z-uSD$Dt2Dzx9leBdy(!EQ2k`75j;JAL7V=xhZA-Ao!BLFe(az=GQ{OFXPE2YQL@&y zHZxcZ30EwL$Ap`e&ZwesZ@L7);QI*XK`TfLy1KVz;e*Q~72T6n4R7AC!w4H;6+>#- z!hpPos=+|5NECpogQKGy!0h_PF_#GogO{9rE9H<w^v%!b22li?loShOXm-Ke=$6&O z8#ev=S`^9GxNpuixbNt`fFyI=rF*8Id~pOQtj$Yl{o|(9R*UwP4}|;tFE@E%yXz>@ zmPd%$3>iau{X@ijj5Nc)&h>Vs(a$O{zmRPG6{1#Flx2VB+W;BfepMcK*XPeNpa6ix zeQa#3Ut^;zcyjN?Zn&*c{~qV|ul1tqXSunNIuby%+xfK1;e!{mk?kRF$NDYxmkY-( z?`x}^7SNg`0rQRtbL#K@?4;;AEF0te*10oxuE$OtmQMzpFkpUU;2=OEvt%EoJJV|X z-c^ExRSerls!{gcau$1LPV@Og72>7o<>j<$sgf-aAm7&03vY`~O)KB-X6+y7E~;gg za1Vq$PP&<5)2`g^t_hF(kaG(I$&yaIe^-()+r^8ga@0~S4Q@Oy-L}dor*+u)6M1ZJ znZKjFz{^tIR)t@XTR@<2tNi*y#eM(!;?9#=;`$SPaBu^R&-nDCvGR)le>I31cR+lT zAaM=#*zMMVa5kRCeMV2O+R255Adp{yDZw#*oXqr3rv9m`i+W?0Zz^8puSPe}qO-pN zq}2=E3VoHSw=FH*GiMR`G}Q-MD&<Z(Q}vw^do{ADsoM@NJGNVrS=k)FK-n#?$P)Bi z^F(MM=bzpjWxeKT-BlGx)}U{z3X-yhfF2rOTxyW2{+POBRAEmwI3)U(`}vJu4#2`- zw=w~vDtIdcS0)OoOfD^rysd)r0a#?@4<8yyqJI1sp!!P)ZPfw6@u`65t-m1E1jta_ zl5iO>C9O<gn(XahQ0;@v2oI!Fuvc{1W0i{Bw=4_nx<Rl68slc9>B-4AYb;+9>Cdlk zY)npFR=u=U#^F1%p%^%q!a9Rrf8s5Lf^1$KR}%ruj!OL3=~;)wM4M-wj{E=+>%aD9 zIRXjHtC75NMb#o1DR`*16`((kFg4o|+GE^#<){g{mOp4>_p+Ogj{W^l9GthL0Ys^D z#T~B0)pg`XMto2$fSUJKq~%Kq`trp|Uf%ZSL`mL0z(mi(HO4pD9PbwCDtJIWR8&;9 zy0s;%J*W%D8-8vED3O!9CS-E*{^9=3f_Lxx_f!3}=tJN-IPo+}>JQ|vC4?A*o*Q~& zGG23@OO9=sZU7W#r%qjAXKzPvA(Tk0)$_yJK$E8+xN>!&@}nC_taP~Q`QzeFhejPU z!^Hq6!4_O;Y(#cS@YXVez_QivnVHW%$6$`QPHO&<S#r8~?BNvvzlb6q6ke=C+l(OP zFG!jA6`ZiQ=a!pyd)-766ylYYDhMD2umvh?1y$9tRj0NnJcmbT{XwI6=pl561@+?P zcw34@>|o`iYtRG$Q>YN&fHBMcmwtbDYivw{5^6O7f5B?I4#Gii@8?PS@$UqAcwSAM ztgdqA>z2h(=%SQVU!0RTk~*B7Us?)>C9&!=8Me(&)&ObF#UafdI&BUW4Y%dRAy*It zz9n@*BxJvS5xwFLOZ}x&ZkycUBaf&KLA^Lyxi;ICATA!f#+3aZX&b1|p{rIO4+ybB zPf~}YrlFb2DtF_VFUH<FHnRhz*h`o2VC-CMr=Ub6LG<bwV3T&lQTskGl9P!(wOF8G z-IZ$CAj0s2<>eGKabjlgP*o*q1IY6B2HgI4fq_P?Pu)^h)-~5T((j@TAchA8cL)Gn zV^{;L>-0#$3RK+y@>YNf40zpw?gr}L7-?u{*nsdt;R39x2c=P<OCR1TD=o!EiMy(k z>*;Op7-OzD6Dd@t#)6J;gDnMQ^innUxhC-g%r49ABejvhnky?w{Yo}aant1Fw~z<i zjMP}NAt6~wFD;dy{uGYQEhsp>S*w!}Yz$AV`wqnf0U*LO`^I`NZuZAbF2|;^nJA9$ z-x@?N#@(PfeHzTm^ObB^9s(Yvue|97-PV7f5_6$#zC6friX-KMDq0%U`Mml{lWKZU zEuj8N^?mo~DAnD&wIiDYuNb(JUTvAzju3_)oV}lU?E#NH%_J1UNE^^uaLQc=>A$&U zHk<H{OWZVc-vj`!{aD0`cq2$9&{fnlsurV+AcyMV<o?nYadrca68`|A%spq=YK)RK zM4wU}J)m?%i{k}U7TsaSd)sto*;5|u4Lxy10I2#y+KLoX>p3<o=l!LrNB?MnSvk}% zs;J-t^sYsYq!OB&<>w3VerIdXcV8E_fEj?Yiz%qlIAn2Mo=n4J(>lq_VL5Y|oqx9% zL!Ltfpt5fyL&e5yz>icq{SppR;LB8Dfl^!*P>kSh_-%NYHk_{T?$C09p77MdLW`9B z%BfGLR1DRHJvH1rk(994fNX2+9oE(;lvmzdmi~lDf6H@tQS$?!mm2wf>N6H=gVg)P zxi$Fu=D8odu9W%-!cz=oaTrUA@Z#e9fEbiedAsS=6PTe996vWz)Nfzsy)BKy&7_L& zJYlkY={6`(m-cBprp<QvT`Th%COjpC&QUD?a{ulXa^1IjW%W13VDyu_@AbpL=|SWe zkimcE;GrcOdfOFwxd^c(EkjN&v8~l9Ij4pGNJ!0{a!Gqn09Jl?y|WfjnS382u!D3X z<fN`AgNQ!|(u>A_soTF>v$VK+K<9w`8p_vtE`nMfn{n5`;3iVcRyaTZAmP=i*~6*e zzt7QBS9j6Fxpe7Lf7ZXtUmff$ydSy`o3D!IUwfJw8o0h<P=u!hkvxTOk(~Owi8F5M z>zEd|j_rp^#t+`66!FT~bUbDL!0R{Xm!W+|YIdaJAsz~3dytlY*)RL8H~Z4#D_pld zt95e-fF-8q=STS1nwe$B^I5s9U`P3UZQe%9-E05enSRolMn${0UsA6dqtB~&a@<(Q z<O>bh_@A%gnDbuW0G~c|^h1!(>zEi{AS8bdy(0b8VgwhcLfc2{y!2MFN=PAJ^5?Fu zETlqE^TrKg6l|nO=ZjsC>a}$(^asD<18*3nHxT?d9F(|3kk<$*fTTgvYd=@~eSW^V z0TuSmDFDMrn2}b<ig(5sJv=y=D}I-gCST=Tpny843n9`6F(||YJXdxx+<bgi$W1t} zR0&atRCPf^*W3Y#OW!`WQGnT}OewMI&VVp}b#>L);6^wpB>O*o{Tg-RVsFn2S$FIf zkg(U1Ui6531~d_-F<5OMr7vY;ff$p}@Nhg-%~ro2qC$`fPK%GHJ6YM>bOIGxF^po} zXu@lUsWswk04Rz|K<Pku)*tv#RmU&z$otPz%A!F0m!6jP$+$}TleAnBxMOD|+yzcV zgoIu?D+gjwMqXQ|-M8k0006!MEyPveoW8>2t^p@I;FUW3Y9)h4&OJaBRM70x>*2J; zyjgdEbGAjZP=FNgcujc1v#E+*R{q_G4^$_+ZBmmzfBIk4%m(=nav6?s?;GXAdLVLp zD_m5vn+xv>>tum${^be14**($zDDz7+yv-)w0J9TpnGcJwM>D+5+Y(+kTbMby}rAk z4$_g%s?hC9*R^vm`Ha3wK`L7W1Y<2#+_LghFml(~WEW#Ivw)SlgD7WFJJWB;tf-px zj!Q_k=42O;Gn#_J%77NDpq8fvQ6oO+lbT_~pQ~OAU4=-*_h0B7?Ze2x5DrwXgf|?M zS#CcjW)8#%WL(v058w1rfxN_itZJ&z=jdI>2RtHjV^D(StFSe5BB5_sSQsc(gJksC z(?t=r3BSXnG)U^?EQWxMU$*Jze)00<2i|B*W--({B1{v6N{zr=bmG6;6Z#mxNe7t6 zZBV5({q%dS#}4>tdY8@HF@Q%+zabz7!Z$=Bq+R`lXW?-vkWvilLrF=obx(!@(`1d? z#_CiE3(|amrjAZn{oyp9(v2I9{sbfl%k4jZKN932s8J9IH8eDEa&oHcNJ95Kf!_Mp zld)oDW1l|{$Wn>_31Wp^Kr?H=--~&b-$hv7D#8NtTO6yV!y_bB*GWlEj=cXp+XS-c z;Fslhvde$-K3r4$k|;=m`1$E_ArZVN9JXcrh49eOPoUys;HdzX_rao*AFy`+d8%`q zadC0GBNNBLySuI+(42bcbCA?gQ4$fx2_y18-m?P4KzRN7^~e;4E9Pjhl*&Z6&@y8K zlajzBUc|?nfnF>@!b51`nbQpcEE;v^&YjSxs8$H5lRS^(?in_K{?ocHCRF2S8PVbx zd9D%cZ!dLLaVJyXK|hA5sMw;D_Hb6}<o>#wl#~?UHFcVLR3OTE0C%+5j0j{Ut38S= z2!t^+cs3q-1z%L^c$e+T;-KH_*RMHJeU{1wkSP_pcCCar4wJkK(LB;3q>xMpi%g&@ zjSNv+#b@2iAeZ?XMtuQu`t*<Ao>)}P{`@-xLvxab^>ALi*nsf%lY{z`0FW@lijKNx z=oaLxqpFTRzIXE`899q&1gwG#`19Er+1xG@UUZ<mvM}Jq+94v_MZijmQH(h1I|Tl2 z8#Bec;TMS;2!Zk=LS#s4o|&GWzWM&D>#FgW6bZd|IsHiJ`u)4+^n;;5YZXZ5kTZz| z!V*pc&kh8REwECIEi7891ZFt#f8@S@-wNl;qsdP=pz;*>7zO+n5SJh9YUy*arF*pi zf1oOa1@#G5DP(@T+;_q#MIocKy*w5UrH3`g`wQBo*0C~1`!_}q3E<-3WduPy{#f&Q z_U6r-P>O7>nj}<k^LfXAs=IdW;FX(vOOwfWNjg&m*b@P95GyNy2Gi5i6L}>)HBYEH z@%5%4Z?+4$nb?;vv!5h`Y#PhSi8gDE=y9zEdEO@o9rxO30^bxsGGYxv?w=rt&CSnm zwkfO)hIu;syH;v52(*v(qm_OV9@~@9+Jk}OiV8)@CIRgND3kuA7S86kqjIl6-l59| zqCH4ZwZNN1p%Ci~N<=)6NcCr(Vh%FC_Iq~r7l;N$+}7U=vvo+1T@-p)yG0Ay!T!0A zz$@1k=jq*-KhDA;uqd4vVqbFEn!f`@82Au9`-g>{8h2mdLG}&+YEy&6hBQncE(9;I zGdzJPJy5G5^aUjUv!G(U5g6c}F%%fv3rSx@E6af_{%}PP4iCW5{2->RIoclK7Ze0a z+>nmx`>-%j_zNs3SWDBAg`2NMC}HzTo12@5kGx@JmmZ7RfnNeyRJ?wjAjRj{4f0++ z_wOvpV{_Sn1U4ZG)b-!Wzzr%qJb>u^%_iyv`dzj9%F4@24wW1Ls9TU31>DwqC%QCH zR-FQoS(>#)O#v5M8omXhH^jiNkoN?@QT1Bfjp_tah3dC&<A60m4l{(gK=B1oVl7Vm zElyx0kZF{-^;!fcNVX^2P8~yE2n(sXt?d_#yb>rY%J^`14Y^Apit#f*-Rs!)c7}&F zeh57JQ-<g&!B%{Brwe_FNQGNLehUI?Gzy9Y<l)tVh*sXn=6k@`d=gA%ety0XsMV17 z04l(YQ;+ao#>a<%fn^1`YfDSZ97v@=i@G|K^stveY%@YO#t*hgnFj-dkgYGEOR!Md zFtQk^g#nn4p`&Xv`nCfK_qKzTdI}#OpUt_R0Ozm_`6d%WT`}PzK{$OvybiW|_DpbJ zrldr{gC-Y;N?=t6e*7rPaqD&Hr%%%28(*&GcT!8t<B!bs^TpY@8@RiR<yT2iyt5z9 z%PhxL`uLgx$-S_gx}R25gqiT%AoD36zrF0Y3Y7-oe0ACtvKAvg(Yl?zRhPK!s)~-4 z@WaF!gmS%z7xiN!>v#)T>cHt1_de8qw*}ROIN-=BwnZs;Fx(H&0x|<WAyjLe1*B@Z zy>XGxI}|DiO#-Eu%<mIB``h)U<MCU*Wm>p`zTd+~r!rhm$)-?%_ka9}g#TWu7yFM2 zXlOpazISXYPpAIvImGzQt;@eysv)8SDGL+`G?Zq8c?t~750XD;azuHS5jMxth%npb z+r%h{{sQ(k;){60OR1dw-QnX1U>WfL6W#XoC_>dtAwQXPuOtF<#N9{_kMQ7A3P{Zy z#Acyk_xB`w<+XFE`-;JjVLLy40Rq~_zxCkozmtcit`O+hj_sdqY{~>t&}Y7#jifJC z0=<MZ{_YxDTBt0Iq2EO%Q$@t66P5%}3jw@G;@G&8c927X<SLR!@7&byzEq<^s3G?) zC#zU+xjg#K>tDGUX`TQ%1QsX(=50a7dB?&j2uG1RWuPC2S0F^Mdt&cXxg@;BJU@SD zr_NdC^wYf!DaeP#9(oAp7fe}6S;yFfr+yzQSp!63{b($B#J;jSv94aoyIfv^o_s-j z_G|LgU&YNuU>35x-S<ns29cZsnNKUlJ0ut`(31+#Pr-vI8x%X&|1lQSyzDfDUr5+} z>()^$lmG%N(f;@tubxa;SPisV?>_I?+_GJibcHw@X0f<<7U55?MIPaEa7ZBKh){V3 z(X<R#Bp%8eH`QYTr~(3L;vI3?$ryh9<ZWncqxkw2k2ThbNS)3S6jzG2i=xL~-+Q0I z7cpK=%z_Zm2*t@$8!h2+4m90Q%F4X<{}7@6gFsA<52N>r?mq=oRa$Dk`N!=0qWA;N zkre1}L&JC7t>fXtp=a43+xLS4LilC^E(*qud@m!;$QWWjuCdSUv1TR~Kj5<rZ*WjG zH40dW_Je}<P`>|{4hsrq5PjL-Pc~Q!InUe1*;#kAwMDNeeCgtuoS6v&=0wUONhocQ z1N9~$*Ia%d*8Nx+temy@@J68w*Y|JW%MT@(<XIo+LFuHSX`x;G^J-lQl$?L6aZ}OS z{+QQY`f+FaOHxJP#CsqG01RZ{BLyfZF@lQCaN2_3cwN1{#Gn9MI(}vJah(n1bC=<p z1>PeNL30U~ZypaH!!UaswAEg}-ZwircCEXrTVknP(j<d|dQE)w9hOQ^V0}%AY&+aj zVSRpn%`pNxa^;FfOaiCf=KlW3w=AHTKzr0Jbbvub8hZS9<rz=VZM}(|uS}u<5dYP2 z=G+R713mz?kvKLBQV$zIVe$<=7Xl|VeCDET_ZVjIi%+?!G&a`?0#szQU>)(18c*0q zh~_G@4VKeh8j{F|uaB5^rzioMViUXr1WoQv`G~`N6{E`4nHm0%qP$TsA$2y79?y4& zP|#tZ4MEX+{o^}7;{K`9Y@bBk8__<pZSfCoB86JYMyMk7m6}bc+>=PNN9&xh;;Ijj z4G)PT#gzb9e-2ESw~(oAg^`pZsLUa9!SHx=peo%C=ooyK#bo_=m5HE>eFl{N5+j60 zYa<Eg{(2ox-b7qpl8e@k7)7)Rg2OIdl3Q{In-Lkj0muPPO!(RXA&ix$PO3AtAVD2g z9DHKsiV5VP5BA)yyf2yb?m7MRiawO(Hibmr-J700{)IO`gBI0q?~~HT=_5P6Ak`lf zER&(dwa1pT6`u?xwSa^Vn~&i$FMH%2@SPMH8OL2bnb%DrJGsfb1HZilrvTglnF7Po z#dnE^=l=F5^y=*BI6^SI-{<A|Fn^hvaqdouoK3BFz~Y=edoh6@E1kJxwO4YQ8Vtf2 zmlWe8Q6^xHgT=p4Qgi~aqVjb#cRIf&AIBseT!XJOkU}l#s=);8kw>#pH9hxf5Wq$e z-3X7^+bJ$DZ~58s&biJ9=w9po78Wt6QuzeFVD?xqT?!~Hn;K09W$FakV<M6HZW8cb z>3_AU*=`)@>Xv&(8!Y>t-WkGkW^z$+jD=)12vLI(Ky*;%x#tcpeFLx?*p_Y3FhJX% zJ{(&iM~OAa>}r4O8W>62zF1^qAvCUYHOBcOVczlms{#XA9`*X%GA^g)W)>d6hZg2W z!>AQuL9RugeyRa+6cWCHW{pFPBYt+$2fn2OAJci)u^wzB$`*K<SSCYrbT2j#efocw zwf@h(@B_!!#F_h<x+u~6(?DU~T(=+)oEtA>Sh#{84j!eL6H33vJ%ih5Bm5Cn<J0@y wx8}ab%c?U~y`Y7Y66)svKfeZ1c0%M{6z*um9<B=?UqUHgza{@(*4Y1l0V!4g>i_@% diff --git a/docs/img/EditingHistory+Links.png b/docs/img/EditingHistory+Links.png deleted file mode 100644 index 3891f39c16c4555b4016b633d3627a47c994b593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33416 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 IHTd-Z00U@O0RR91 diff --git a/docs/img/GitHub-Mark-32px.png b/docs/img/GitHub-Mark-32px.png deleted file mode 100644 index 790fa77108fc14ae3ce25b4bd118f73a7b769632..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0VAKil32_B-|Ns9lE-E&P2!=rI zb4Dv*cqNwv`2{mDh$Jt$^x1IbZ~oc;?m2xl7QBCL?YtQF7Y9v@G?><zO8kjWe=PJU z>D$BGcRq<-h?{$nC9<FQ>uSmAUG|55tx9FK%#izDe3EfPorR)}-I1LFRc@mB@`p<k zDmb>Myn4-Z>rF}DTC+dEXzKHHaSX9I-8$)c7?YtutNS#)&{LOIcU=l(3=|X**r*_u zv!bE$f4RZT1M_m9TiDOIS-qcUrV2xl1k2)+J{>nxM0ghPc3*W{vLRAe>-N5v3S9*` zw?t3RbrJT96rMi&Ma%82-)wi;soLE6o_CRde!Sz(zjnWNKXp|&Fh!xmsiRMV?{c7X z6Nlq6wi)sVRRhhubk4O@^zaI}S~{&}3G@8AQzg)kVacV4)GH2bPfNHqMdZ9+(Kt8O zWK+V?IhW_v^6_f_*f2Sk`^LxpwHuCK+IQ~lLA&B_4AM`(HZVoWXuM){<@*qF>DSV$ zmyDiuiLF==*rxUDR^u)E6$=Afo$G4dvmSK3ZV$-+uxjR{+sA#^nZ07rb@KB&&yhL5 zTq!oEu5f0?`g^Y3b>Dv-F%($;;awY#M4b2gW%rX0b%dF3f0OsF;(s-##K*sVoRtlo zAAVeUdf@Xd`Soeu7oBS-zAf1FiTl#N<&{ox_wU);i8|D2Rm&PrQ7cMVR^fbjeZK04 t%aW`7^6VmXT;sY<AAKKVWcIJq-n(w;{;p}(w!nnI;OXk;vd$@?2>>TkB8&h4 diff --git a/docs/img/Live-Editor-Usage.png b/docs/img/Live-Editor-Usage.png deleted file mode 100644 index 04df642dc7435ee41ac0fe8b41704d31f52a5240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18605 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 b*k?0~<@FlDl{3R<h!7eVwN!GHOdtL)|BD>y diff --git a/docs/img/book-banner-post-release.jpeg b/docs/img/book-banner-post-release.jpeg deleted file mode 100644 index 005a3282b6b7fa1c126b5336087c2a464b0ef3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40076 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 diff --git a/docs/img/book-banner-post-release.png b/docs/img/book-banner-post-release.png deleted file mode 100644 index 7db35ea7aa299950c6b22b81601be3a9538b36aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828545 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�D z_ul^D0+uSE{T27l{mkGm<SYN~G5CW9p!%PG>A%*b9S=6vpmj}ZTA%;GJMz5)5y1mr zp9Sa?@`K@vAVl#K{!vtm*0p=u3O<h7+a_d?4`LUcu!67V(O4?OCf3KD$HAVjx3lP? zjge4*H~08gi9rryGI|i{`9Dbv@}Ng%-VF7SRO7}~k^nC%KVD0)x!A7W7<LBuF#wH< zI@3x-_8&>$d*pQ*q+<Ut0f%YmwQ|)Gx1m^wA<zvY&}{osNe}G(VbJ_YasLM@z*pMA z*XI0GO0M?3WoNG^Ha}~SXNXcLM0i<yu1x?9LYka=MWv!OLt1~R{E&J6Oo@1m*@F%u zBZkdA8!Z~SrJw&ouH+0jsO=;;XhU9SmNd5Fg~$gZ=!T&|GPL^xa8%#`A|B*VzmUg* zwTdY0QPNPu4EE@OpHTe%0S&;q^6X?2hB?E~R=%t1hwbs?_+4OinPQWWbHsCZWst+g zsF=093(*GZcE%UBX{HEIk5J4fjVNGBjY<NvfNw0*T_0{}b&%G=F+cOKR87RV@euwO zp8+DSx=6=YcCqC{xKnxECar}&cDA2NJD5Yzpy`zSbClS+)e&pR5q3*TCf?bwisnnQ zI*ZPN>wLf*hom&paWG%rJJmIp(Mr_KChw1X+<dq_VG7Etrnn<vq{s?T3?{CyOT|1| z>@150Snu&MKV-QFL_s~ORIW#@mul>c%!Ub~?-bUdYc@GuE?Wm}!9>gQPGL(RYr(gS zdVW6{XDs2iI#LTT@mps|K~dSGURc>omEQQ%ptT$6A)54en(+=Dfl9)hRAhQSxOff% z#P)1re>}zkJMnRd4<%<Y@`g^(1Sitv-809KkIN-k4CFjx>sixkM&$5yNigO*`OcNK z>GLDH&DGNpU0H5<k3`SDCsEjO1gi=+K2!KY<+gUp{y0%_{O;^qUg4990hcQ*HdF^c zD84h?PRV8Sx*YWjMq6uefYR5=mvhxfHA*Yxg%fUYXg`;cXNDOSdD9~_VRNoe{rKs) zJFyhmt>0ck(2y}t4N@(@50H0$u#b!v;+aqmjAF7q(H^SXMXXfveB&0Cpdz)~R~dE2 ziTO3ywW#&$1wC5jt{>N?n9>)S8pkkP)RS}p<MA8Mlpkyw4fzunUUrn9f<44Tqy^F{ zw3byuTCfE=`;QD$x-#6SQc@Yg%Bd1c4Jta7zN6{uL8haxHC>BS%u)$IyZhrRlBzpQ z*qYKd(}kbK5fyaLER{OHbx)qqSk>WXe#j&S_D9w@yf;7?2Bn&PtFO-*1HUY<HWGIn zHx=__NNn1=)t8x7e}gt-ZkX$xYsxU)u2bTy(#95nec3UAu|Y$3_BJ#+eoaRO*|DR1 zLoEe<nD{A?oiJ|BTc6N^4!zxiJ#-NFm7)b1StC3_*JD=0lz<RygTPf2HAO2-1WsC5 zv-^&x<~Q=PEa<grSOA6X0%vD_$!UXyb%dY_=gGbzL)Y9OV;hcNHynSgZ|Ijp!4Nge z{U-KVB>yr$HtWSVqGFlR(KG^EM8f)`8Z;0b1t})EDB8Y4gYi^n<B?~D9&e1S9pfrd z_im$ve&l{D7toFo!Cn5QCk&tD66YTU%s%?*7iQAE=Z(Qu#JLMUuNjHr=6D6`2x*`J zrBsVhw4{NckS_H(DIoA?wMt6Eq^xS2bU07PATzN3uKO!yJg}#wy_sVK@sBAVIog71 zw!M|=S|j(K#UNO^R&$$nzztyONLZ6d@sFnbh$K8kw8UIql}`O$jqwx6Z8BZz*x#sv z4D!-_pyzVo%oD%#78Mt5ANk^U?N!x@S9O*>b33aoRcG(Seo)%JhNq;YIY8#)GZ!L2 z8c92!ViE&_7a$k?s}$c~!Su<_@_LTF972^C>;=Te_ehJ9f-{d8|ETagagjmrUm=)5 z+bH26()skP6-(*mF*=)QM7ET)_0J{D8Bz#o;OVDGw<}9cF9yhw0??!mVS)n^RCm%p zBz7UM8yZ4uLbF(ZF81Ib?!SX{t+u?KxzmxbSWSY2cy=p}dzK+VWCY{}GGGPZ0L#^O z+pSC=eg)EGv|zZlR3#&UodP@P#Ga8>jY|5f;KuZKGfXBR&1A?a5q5}4kHJmfD7*MV zuhK1jzk~|A7`d75x@lS8_k5kdsiCf%q+5j45c}M}d*tdj3x$WL%j6$9kLnLCk^nb# z$RR@<=}5cRk(p(VSHZpg)Q$T(`XxJ1#J-qi@W1S!bwU#$DhP4NTl-(ad)?V>ZC>b} z>^%gb1Y25nmtB@82oljR2Vo|FB*Rp22Lg|1UldhRZld26c0z!RHmlnbEF`m_nVeOq zd_W?Qr1b@MzC^hY`2)i7=llAUAEySzhz3n}o9oPn*PD{~5)iq)W-S!@hOT;o(|Dz7 zi@3zzW2rvrDat51XsW*s3y~KYC%Ev!=P)=&w(#@2;tOFJ$8ZIVw@Zkvv$KO*0gj5{ z*+;=@xdA}Ykn8S=Ib;|ava9DlAPQvLBQJ!v*1&vzp1hO>ou0j$Rx=y|%n>eo#skY) z5cHPfUwe=Z)@vJHrM+@OMd90KELxQ$!+{{lc+$xx_A(6T2w-tU!UTq#!0*o~*e@82 zs()GRw`djM$>NYcC?x5^%LMC|Qj7=Z7>L0(VGx?Je_HZd`v(o5&<8`>Z^$XWBOfb& zoyISrrgB2%z02sD``jULHg7>&v5NZg`Q10KX9S}o`-M7Ew0^J~1!E{gVGpnRhQem| z*BxzLL&iH+p>7G<>X}FBY5`1eTUooOCw0QvsJX8H-n&sQOn0=>uJ-vBWSMA;ceN6m ztG|_ptNL_Xn1n>$&ll^u{e<}3OowWkfvt3>e^S#D9}6@PPTfRJsB$P9d@Xn=>X*GZ z;FB~~coOC&3AOB`H($thPUZggufA1IDM<+*5?!Ugr=}=wZT&Yi6pq~=X6oc@;BOy~ z&#*Jm_#}jTum62$Iy+MYf>V97KPBpucA&KJpP6YS&fhZALaMxvj0O(MrruqU_rW0D z;muiTdka&(vRYk-pneJ5Lv{4skq!b--%BFG5jwSt$&*C2^Q1z9mW!!1V0equxN(81 z=!#guEKe{OewYZ%XTLm_743@x9;uHQn44jj=Gna!7q3DC2{e1#MvsLXWRVuR981C| z3MC@ZqVaT46hXAr18<y*)eV?=QBEy=NWP-ZHVQ($ZT^(_1tV@Qal7n!;Q@YV4`o?6 zRxV+WG+85f3(DPGGg~jKJiAqhn}dD#K{-^5@d%%h=o15LONTalcj#?I#Cz4;^JfqE zr0sqawuD-3c2Ok=y&AUe!GNuU9LHh#CIxUW(x2JYqXgHq&couUqnK1kQ)?|&jeXB@ z+x>!q+fexleVmhbMPK_ekO;(#BTBSmioQF3(ma%mQj;^n%rY5munWOXcZ}{Zwj3Gv z_B3*WU~)8BFiFk~{ko2H*M(RdnUr~mEO@8Zza63I6jXE&RN~khiLrhUMIYC~_|et5 ztsP49gXW!et4z)4>~}0s=$P+)26Zs$q`!KIoQGdnROVh9vnTGPKHE!W_b-9pa*Rh$ zWoDM!ar!1*=p^uVZOrxCe|PQv4`y#5>p1>MarokXyJLPXM`5-Z!r_+bj=zx)^vhT3 z%dMlY5LGx_LOPQk(qn+1`h@vv%4}DXpOql}(33R!;CbbrcFRJEgGa*i#R9+j6=@?z z{at4zcv}i_R>za}CA_d~*1rv(`eYSnQWWvP?G-riG^JO!{G2_?DUg34fg&C+2N2df zg#p`hPPcxJKbftKg=0n`!cUpKv-VQO3Hx{h+py_c67eofQBL29;ghZJD#o``8|*-o z@YD=1lY;KC@ohchggJ&1^w<w`X<6>=DfkomIW0)o6ORq72q_Z6pM&JJABxv`0B*9C zRo3`R-xyv_f@xB&6cWA7kcOO%=63nE5PPuewJ~d$Q7A^<KsO<<2E+zd*<!l!ePE(A z*@qJI7wb*p4tz42XWq4K-$omVf<2UU0c<$T5U<;FG+#|0wA`UEV9V7q_bF`MP%`pN z&)z&RTQN<XFl*^p>|FV+bETksC3%s=I)=IkoG4?|guUggWQ{GworFk}&?;GP&j}93 z7mhw)<FkL5T)yiriNnz-R(|QhwDG?3)Y~zm)**A@O8%&^;NAz#6-JSlwC(m(37h&@ zRlbZkxWO3VXdA<`B{+YQ+IaYAvHb`$kt@hF0RIw7SA(%=mIAZNqOqI^vz+LGv`vK@ zKpV^6Edzhh7zHF^Ry=_`W}i@;C{@3A>`lTs&ox0_i8uLO>GTgqV8FW+!fK2>d3f*- zD{jGkA(OXe$U8w$yA0)*34EBxx%}92T8hx|=ICyWIh(4q`|@ZfC?ReA9@Zs*ct%y0 zkr>Z5$-zLQPSLzJ8gjogZF2vO@v62qpW9>%R&xK#;Zbffy|$Xfsd9~~RgZ^()$UMB z>_zc(32CyXliI7dpiNoaell`aKjEyxNVSA$ohT1>q$FgTvIzn*{NiXGGI*-1D4cV@ zt<VoE;`g#Gr#!sZV-*s=x*K#xX=CH`6r$F8?j?AZPQA5IQgcXoc$M`MpTQ&NKqv|q z8yDG*PW}CeG<-sti8fhPO3`NVQ00Bdk#xJK<%AZvZLG135*hO}uzqmKW8t!zLVn$D zXpRk<UP%cGblYfJRAC~`<zdi1C;#e5-NGK*pFAf>hEnAb*`}sx(Tb|vbP=F=7TP_E z1igGj+lKb8VDyVkDoXo(2)Ul^lEnUn@%OgJE%(*?ReYhR;HviDDQ)To<K#|c@0mMM z*ofXf+*J8r&H3#Rll!JeXd<*g`+bX3vU$zk<><G)#GPuR?kNKklnPLa47ZP<+Ddf1 zW0=#AiL!ead0Xn>bcN{s3ORbMMpd~N%o6IlZZU4JF;{;Et5?gY&d1lMHUdJ3MdCiv zDDF!OAaT|<n{AdUU_++RUX*MZ+&ae3GV>K6p+)U1di6JF4;zk}G(I20ep8K98dZ9R z(%WI4bw@$2D9!dbG$9_3KiS||xUdujudD6?DMGgbGNMP1(w7#6&=!uh+?gD<;?{qY z44&AB=kg8?;C}lYptyFRf$QFzadk}k?{mR>YkKTJJKA=0wcCak*Ia+bgLdVe82Fcn z^XGF{hIhZ<XHz6wp&{LE>Wps=BP@zLP~i-Fxt<XTk-qx&v=JpHmGPwt2*MI`8WDoX zaT#NZvLSd?n(n?5Og>hW9BOR<jt9-nQXPkP{{vZj%C!FEHQqVI0R8V%!LX?$-#j`V zFzXk+Jec`O*}#YpJsqLdj=L56=O+L2)1Bb7s#V`-X+2%NcAu+_{sGGC!(WW6nsE_5 za@Q32o1;Qd%U-k-7YFE9e1i`3<cDVp$}WBT$2IXrdY%_Tx5LzO_?!ZkD5bvFiUhN3 z!X-zD0q!-fIJZ&3cmA+18ItX;<iCqY$Vu<;{V|_g;;(e5VK^u_fBR4skA_N^3QQTm z<Z*nxmn~YkobmNDkR0gB;ABv=nn~&9UDRbs3;V31h))0|WL>az00!fGb1(sUUIkoG z6wnlj1wE$HSjB5GZGFV@cFtW$hX;t?*V*pt%RSk{=pWfi$~RK-ot<Kxcm$r-y!9Ye zOkhFV;BJYwX7!U`70So2x)*K4Pt&-j@PB@o^trRvf83b-eLbm{LJG+&<MqIOtj*T< zTMC9ktSr{REIlkUkDVU`(O;Aw{k((}rch$^*O0&b;8L8L6P@rkS~Ny!AAC}^fvoPO z$H#ngH2gL6eh2(8Ls=oiti$Z1^=>XQvSxVdV|JruajwG;-6?pN?JhC}Zzc_kmW-?v zWIoHZ_y^}W@>n2yxfxNCMx^&NVrwSKZG+!#u~@$WNOpQ;=OJ_?Ji93PjjY=BzG2Ca zygOVCs{$nO;sf-yLk0KQtB}^cQ8DDObQKJ@W?aGpqXY1lsbJ=-i5&4H7pH&=NuPgM zUiB<Wr`*m&roih$r5>1Ys)5krZ+H|`?F<?%lMgZjs-f)UcZ{wzv`LzPn%R664{?#Y z@|9J-Luk7rQbE6d122M7vWbVy{9)lAF~y{(Hm0au9-+B%&EkH0fMg}YYfaIjT>w@{ zr;!&v1q3Hgpah2b4Tj0M{+;fLGLeoSED3sqW!Xt4BVJwe#6=9B8`LH_g#)_nQrHF! zxT(f`tFy`l-ss=9SxD>%=!G|bOxhL??f#gTE&R>7rNN5z=O&%N+Fg~au#!p8&Sf!6 zEQEb%>(80ge&bMu(456Cdf27*1mxcG-WF3WT)s(pY+`HDPjAf;N`}yu9lIIp*k6=i z9(1vqP9L**b3)&CR8divI(#r?YoHdQ9)=4}?ft6c?fz9qsf-OdE;lts$x&$SZYBu@ zNzIDe!MAL0Omn%YFA=A<($!bjhxG_nWlrixjiCKTxrbk16q4^@KzmF=)SmlM6kyrf z=*!AGaxFCmHzxda#b!aCRUO*c6~Ra7%=@moZo6MMGz=KZiSUEU@WZ*ds$^rAV^aRI zb0s-OaL1Z0G$Z}R8W>d_zc(>DE`o)hSDW;Fo~PYB*TYAn@!O7GJz64$cJ^a1<kDiv zGRRov@K;%+)<|NR&z12EjP6z+g39Awy3OaR`S7p1>Mue=O$)hd8GSZ<vtvU|lYKYV zE=qhA#Cv>hFjSF$Fw25mySyAw-`ojhHdKkN^r?fyDuTI;0zZ+2_p{20Q@R|?_7pep z-|?Oq2c-D|RZImwZ~PXR{$vsNGVpU-ys%8az^l~hnfdJ%SGf|7f_!)$qHkEsPu)QZ zR%#8@{eyLLUMP~Ka=w$ytsd&JT3z8N89$OK1TTJ0*2fl&Q?^w#skSAp=?v~gz;WvX zv;kgAeYmvyB6G5Y>OGdzJSMiWT^^vb0C92EV1t|d^<MsUe=A;}#yH4Bi|oFYEzLB& z@;l=oL@VNVy-~<rs;E>#pHiGz^r?>CUv=l%fw;VTIf8?4HKh3n-&urYk9<yD9=5`b z?VYc%=0e$@XfdV#oP$MJPpPF7MqZcMCm)VU7Z%b-GZb)JbO!{6!+Cv*TFIJY$i&7~ zz!gM-B39K?>P8s8Wuyfhh%-dLMS<M^?UgzJ=o!MIlNIOwcQaU2FjK9p_#eZ?6C^3T z#G;Oux}*3}ryV)?DyQ?{?tGKk+m?lyt3~=M6j03(6NSm_2zPUb&T)_Zb$8qodh;=& zq<V(MIznl&@01q5>P8j!oK}dzt}wTK6flZ{7n7+{LK<|-8)Aa9jvO)-b>JSUW6NUx zFX1BP8cmxPI+huAd&|5jBfgPhW)U_qlC#0af-bg@1MPhO=pEy3cO|Guu&Nxzyf_RI z3LN&=Y0AXp4u)FFOB4S8)C*3OJ$^6vrISLw&?%SP=A)TxFzY6L+|3R{yhrT}D6>&} z%5QaqH%Ns%Y2S=H7J#H&{8r>+Og!WdMI7|3fC?)7$`;G?W4&1+{7}xyPlDj)qSF3b zj}xQ*BvekTvk_#Jk0#jE0hNKN-ieR||Bd_vI0r*(6i$rM|07LYTV_2}XhAD0{NO~X zr^E2FfwQj^ODhRUUa7iLy=gAe_vxdgJyy<#|C?k{KzP;D=W2(%?OyRWYv;rLNt3?M z^XceG1^22+L9`BwcaxWghp1eSTrK7(ZT!>X^yol*+sR8+N4tQK&`cmV+O1vl#<C{) zs@Ly9YcI33A8$jlD+5-3*BcUbD!EZnE=Z@_6A~p`v$mc4$XOW78%sxe`<wXNwS~G) zpKxHVhO<dX6G$eAWdIsEu(@Q}F&B^xX6RXVr_W!K2zy)jb?7stGpRBvc*%3S`g&8= zbTBrM6RRUisfTN9$J%hyMuiABzHf+Fh9&u&H=CHA58p`j66*^Z2S-R}o4P;|KvNuy z7@#LZSE_Ct24^(IMs9||EOv@>M}*mxe)AQsByJTd_Cht!wz<g;8<niu{v|;cs!4WG z5l-%N9xD8LK>mAs?LN7)D|uZL-dd3-I#Ip-BKoMp@4p{3^?N?@8loBwU%DO6vL9-- z7i_z8^7h^u-P)qV_Y{!yw<PykjNroZ{4AA<Qq%U`27?&$!h*SAO5!%wBO@+K2s=40 z^U|PXvuykPEORu2g_4~dor!f1Wu>v;A`E){Wz9@%miE`%tR(K=54&mShb(=3uQPa8 zq;+_W?S|T0AwQ0tIs-hCANIn<8TQ{cw#oX8ttFt0Y03`v8CZO0778ij@M**R-2%is zq9(n(!Wy<2mU96uZtjJPy7Wk-vrHBHNWb!)^k9t&N%fDn@O?5`*rXk69eE0th}f^y zeI9>N`6~Qt26i2Zh9P*jqBpdpDLOviTKvnn5Dth}ZseC`0}DlOM+5Q+<E2D892$BZ z%iZqk5`L;bMy?PrECh(l!(Sv7y|nT`;M{pG<ZXoi!Gx+~KaW_D#Nrnk0})Or3s|mC zJL(r%@9QLre)>c0bm$kXOXZ+3iszk+eqwt&VqKQ_cpuMsJwbssuM3ACHUTP9LQvUu znVF{o%e!S2r!k+tDeA61ut9*}vEd{hVRyDP^|q1WR0>1i!v+R-qtEA5xR<t2;k1Vn z+@>ubRvVl`+bJBDm&;Uq7DpgUA~_h4(`?>`^{9XQNX%m9%Is}d#_7k@W1o4~dT4O* z(`|D*3%!Ar{_ND`({6$H@nWxT`FPHUn(!Q>#SvNCl`5CPgDwOoj+>dE^5ze8%h0Y8 zJ3L?9gA(jICMTMg8ekaieuPp^2=F}FHXty#0}fOHj{+IwLq>28Ct51u-h0l;59@Sb zYz#J3=jiz%)d_yx$XF1>D*SZ($XQ)rGH~5@6Ug^2!~|sD+_}RWQgjJx`Nep`<6Ymp zx+mP|6#ES<w?x!?)6t<B%ez~KacDVO7ug?XGNE7Yg)W|9d)Ys8NJ)3KYdhDOGh-5O z>y*?<I2Z{Me~aN)1Hs&+u50p$Snp7iU@Uoe?SBxgat@#iHa6VO@_>B4Ae<z}y3QY2 zz{<u|MSbW}6A+#gmV9(O<<T_3BYS*yO%k}bEC}VWG9_1)T7LSL*Bd$bME^^m&<U>! zzkQGm`?wKHO`hloC4_lS7=Y`RSwUjJn4AJVU1*v^jgRgShGt><(|qNI2EAIE5sx1D zp$yxHg5Fxr3Vs<zhkVW05EI3%E28U0FcvvkZi=c1J&ulD^u33sf`!*y_+E%&k{)m1 z5ifFmCem(aPR-`yPvGWvKWF@!WC}&06R2>24Cx{&sN52hrZh~0HZL^Quu@vF7OS-N z_N#%r>}%;PYKB0G?r(7){qd4qX$VeOu0y^mT*~x0i3C=<kmLN*i0_6qPF0z%fx92g zC1h;H*1p4It73E%|5}8S*uJOj;`aRf{P35tcHI#1@a%v?BUkZYPjGBPKi<g+@5qIh zPrdwQyQ5DL7moAF4p^Lej#&n0RcrX>2&M|#TbM;WUM}9of|hSUr-^n3)*hdLP97nE zJ`QieQVyf-OYr-rohOwL3u6MFo)U-W$REbvV(t`K>RErJoB$@i-6&IHE)3Dr5?}0` zGp#_KOGv%metOi*XS9vIc&qN-jVY?L$mGz1_Rik%UMu``B(W!UA3Wxlhs%HB!FRDk zP>TxN6&^?OF?54twaIv`xq*5ifdONXs_8|2tZ`kim-@Ek`rEY1JVJnD_!i1EtsFkq zF5+f1Tr{RDKjoc&0iYETv&MJi?ts82AOQn(hY^8WQB*=$8Yj#;c)5As(ul%Yqb%j3 zZxw~6$108?j?cU92eLcqZ~IMhJFTH<ABv~Gk`WQgN^I-29uZmrn)hFQ#Yv6j`p%}$ zWkuYG9pSF22`7y7c~M+boCUu_U?x<Pg?L&lxEaNhG^f8*CJ-JIBv#22d;SlX&XDaF zTqN!@pY+oh)$NX9TOU@fH#V{N;+~-yjnZCUeBA!7gxA&Ng{Wi4uv72kIJ;9--J)C` zBtsM61Czpd74Z)pDbYzM{wU#(3j}cdE}j!dc4FDdj;sGFSl9D8zHj<Cb8s)8N0ejG zc+_hgIYN~H3yxZZRO8sKvTxM&RPxn%6Tb2#&s}>A|6-}XB;s1<jKwq!Wy-U1Mj%^I zT1?t}wakIcyHu_{dw!rIL$0-Pr^^UJj@J3t`1I4Q_f(z}yvCm)UX4bsW5@c#-uizp zgm2`o%3dw4(11>Q2rO4+k;_RoagWxf3{~+=*-H!lgsmz-bI=Ypg&L07qr-c>_V5!8 z!5akIH~iPl^V=)o|A)=<;DyqXrANNgrm=q!!Y_2q_jM>HNupf^k%7v}>JXVnE@S?A z@4P6Jq^0zw4neAbVZNp9DFk2Je&@}Mw*T|xj=k`6^6%qLzlUDdHlLf8lZ(K6+>20d zv(?5}a&mIk9`UTH0hfjC#Dhd>JzJlRSc|2ian})aOy1&wQzR;P*sdj7<=zD3l)STe z+>Tu*L&%2`4C{lVEdnSrOj;WaC-?GKfmOh?YZ}TZWAUh4%yYdy^MDhXeP8WEphCMW zF_arsR=Do1-vn{%N<}YE84$@lG<to$ZZdM)NqNeGCMF&c8VV`^N=95%RdG%AWS;xz z;vsZdy261NYS#{)4MQpa!xC0X8;ETdt~G%pVk>oH(4(%{Z4k;~4=2JU%7d2rOsQm4 zC=9tm0?v3lL`kHir^lPH;<$?aBYKs-?pFl!)sLMnN0WEB>-e;rCs>F9H<zK%2BzBK zy4}@~IlF_N+0LIyw(1{rvZBGWJwq4GkqJ9H1v7Yc$TkPB&@ePWslj$O6x~}E=A!nF z2480wCZ7%CumQita(OatuWjQh?~A4ziv!Vq@%pzlLt8tShg%x<LeJ~ve{K?9`^trH zuJpByZ6mR@Stv0v+t24(?b63i;8}8&GU#$|(-q4Q!hd*qrW0gMND1|9f8Ihf_o`Hk z3B4lLKj}N2gDdr{lertd7u6)LZ}zBE5_(x}UV&WrvmFwyO-3eARvgmp_YZsN+8>ML z{^%@G&L9858b0e4(j{P;wM8DasK&TdZ<kHbx+X;^t+1^70oe#2vcc^3fK}tI3O9vN zGp$2ERKifMIKM;kjfjxUlKhx%h&*|!%wi`1$Rn)5o6fCbXz!<sng%M$<RB&Dn;Lq! zHo2^^#<zzC5m~;g*;-zm!T1Ew`bflScXSbBPlFjc-+M6mPPn>&J)Q4@n7(b)V6W7- z{ha0-x{ULyRtW)B-{6tC7{IV-KN?o6S}Z6%n)E<CKH-bBBQe-5jbBXKAOU->>E}q3 zZD6%rxKZ_$*`3haw~6u^=(uvocEe3hUtk~+UeG**cE0ced*KI>$_E+SuO2~ssB?QV zXY7+_(oSXI4es|LIOn$viaLbyI{IW)t<4|Pxs^Af>Ma`N^0s4cNj?XC^vE#zz+Egc z8ITaS7mwWIhHzb`McWXTkcplGpr6GxrNBt!H%*5Cd|%^)*OU(y<)#MjN)!qoTk?Us zVU_mld?chJ>}94&Z8P+e83qyTuC((2zcQ!kQxpcAPrJKv2~KnPAD@ekh{IYkj_RDc z$1CmMcFZvluW7pYZU6+x6$e^!p||OD^y9uTzUvl+w|x5nNV7^|w8nXLK>1;SeB`mq zmfBOoG(G_;Bztf7k8=XVqi_|3M82=IA!3KbbmK?mA`-(iy{Auj48B}bGcW^e;Mqch zh<`-mFZIHr=#r5Od-~i+KOb(u+twlt@1)o)-5L;+UeS*A^<8(h#n&}V7gfw9?>l*J z8!w-T++e~ig>{M-Q8lxP6P$>x<cZsM#a@nD`tV{$>ae&ZhSucW@;=k!FN8=Rj?zmn z<<WZU`Mh3^`aOhNV0$imSc~~Cg|ZOW0F!mN@<(5TOKXQOcoPAmZi%-p`LT-ubjnZ3 z2VjgR$+3{UGlVt#D0cF*tOf%bib#D;)V$G}-0B;2Q#*uYONIG<1z~pS_uSQAJDO4j zr+s1lBXn49&c3j>tnH`Vo9UOznvlXaEQA|y7ST1$qkPO!m8TPoGo3vDB*iM_QKvsa zNj*68i!ly`w7o&)i2wpBk;B32Epp-;svfg@C|#ChB{>LuSR}?R!k@@+eEg(ieUme% zqd@%QwQ#Y5G-JD`k1wD?7{=!~$IqwZtj@tOX$AVC5d4CvPFSv%;Vx`iLi&R<E_6Pq zUCkU|^R002>Cw+J8GNfWCbu-OG*Ev5`@=29Y|w!8=r<dxl>!gx%XoR~6V*R}OI}Zp zaB549eXbD;yKfOjiIkw>Kab}EJRdo##M~>ncq?=Cr)N@bg?62MF9I6MNvUZuTR+)f z)&wAL_>i0Cl*yY}zcbhKfyw-{R*t>=`O%T_KcZfxkH0?Bdu2Xv^Xjb9ZdO9$HskYa zfGiy=fwfQ&!y9;aD4;b-pVbX?^g*pfDPNtCL>Mww{)6jR+Yfbgyb;yxfIc>!Mz*h0 zGr3A6GUNPzO0sYJ%+SBQPxeY+5<EKqCb@tA8mBFHtm|yD4y`bLGOkMYgr*Rz8wBD1 zS2rKA5}FO@5433AgsHiF=l_&sVGhIQ{$X|PALhz6+HDB|^83K#?;VE53eO@=Cw+88 zVAWSrT+NGPxPyS$I3KHufbM@IE$<j=7}_jAc4b8TYi(`wRXW%eF-iBBeZIxKWRdB6 zEoaE~#bPY@25|5kmb^f>WB%80DKYoeuF+ah0y}fTMMFJm65FnO_UrfmxwJf#)29`| zPBV!1Bo*#IwdIa&bl6Wf=Kpo9+%OpujH(*Wjy(29A$%E;tvpMWbI2E@EWk>k6A;!5 zr1pGEh+1@<DhE`}HHVBc=8nLn1yRWpy{CZ@QmUb?W^3i`Hamp>?v_g}C2KMlW<YnY zdmQ|P&tRoXPnv1%^qpVm=_2dwd3DtP`tCQq|J@2cxo;Rbd1Lr!Z!g*Xz7t!)3kZYh z&jlfQC`<fO@RVe2&GEvg0mmjbJ8zF^)VjB_OYQ3E+#7;Cq08L5LqqaF{u6?J7kTQs zc9WAU6n(NCr$k@l^&hZZJ!!@d_9T9%zvYC|R#ezb_gHoP3_I9Pv^y3z^|ZqwviBN8 zUn~BTL`}^I_h6J|k0n;~#m&pvt$O3n>X{oO@cAoyk9$<@i`><}y7isxQ%AVGLh_Y2 z3W;@|-)rO-quB>P>9eFwL$P7n2QyDf^^C?n#fGjZ?bc>GeS<3gbxxG4&?lai-SP7j z<kNCFGRqS06MJ5d!m2AKR`(sTe=>9jIhn4h{c<rj(iYy%;ju>?zb0-A-yS8=W{|+) zSN@~$#TAMjzG7U-sbXM7{mUL$ocIUqG%fyjpUeBpjaG7>3q;{3>?*%kbKxO~Qln)H zf1BaUfe7g`&u_GU#<>59>Hdc=P|-nN5|{5;h(~*2JLmOmFz^>y@G-GA5mQHnWDUth z<_8Tl7Z2BrRVC*!`08oGDC5&^f5f)2{x8bTGN`S$U)MOngHt@X6^azs;O;HO-Q8V- zwK&Dyp)Kz2#hv2r6nBS{|GW3Q_ntXtX3v?-tPlB+S+kN^S<myk@9Vl2B7mj%mX?}! z$F8u}$ZZz?f`yZ?onbOtoz)OPO;zJ?hx#qo9o7*+!f{eV*(Bkct||4BR>aGAsZJ}Q zztYK-__H6c1x0VeA~X0^8R=)!gi+MjSc9__<h17K;;RbhjF+yqNTGHNQ*r_t+)GQA zu<k!E^5#Sgc1M+=spnj+>Q2WKKwkOOlh0<MvG33Z?s5EM0!~Geeb65{A{JB_Eu<KG zZ`15BV@~AqRUG#9koc8ygaq<3)oGq6D{Mo=G{O*jnqLlKy79vYL2buEJg*UzbtU`a z58#xG!RIx`tIG6AUeCpnwb*EXYrr{WN-kv@=VHII{K)A;sg16*n^{*}nZ*qZ;! z+JS4}Hcj(_4qGnJZrR-y(0O)Gd3m4uOnJshc5l+J#I-yGpM>!93^oj~Utb?tRM*<u zM33*}BUF5Ocq=6_olMh+v_w`jDLiwlH7dqGG~I}z<h<gbV5FoQtaLWNBq+@@@P1s& z?rwT9qKPDuv=wuDGY@Ot3nCHpfijF}HAk~IkCbDwI`~B^wP#bR>G}KO=!l_Or3km7 z?(4Gh6$NRN(YJ~WY*qa91#(a()lRC<oVmm)iQ$6jL?Cb)h2hr%uRYuNV6BPB3@cmE z)M;vv?xv!&POa8VI_jw6Jyf8V*cXN&N^L@5CqV2D;M1q)<SBCkXWd1gd};GoXe_In z?8IB!w33Rz6v@TK76Kb?m(R6(BrOw|a;Hh&%~M^0Bp{Vvus%;1(nA~Ivlq1`b`8ap zOiQEbCe&=fda<@KX5s*9u!5&}gdzfxsS<WVBa!=8a{NvGaH^&=i7-@PcKQP8`ROzw zeurqpBP^sb@F;{d7cnplBY%%)bar6}E&L(%5PxnMp#pv5y>S;EmaR+Rzq{C+XJP;= zfIB9>dJ?+{4%S{r8Rq5EuX3edH)4)~upoqriHQw1Y~zSCAQcKY!tcpU2w`u&k<ST4 zo5AI?ke`T|A&&m1K?z8;0pkOK$ZTSR8No7-*>hy}Yx(y|osJQ)^LSzvs|)E3ULhc| z>4saC!Gky>D8@4oE$`KS`(4tzXQ_GFl_#QaTx!b%`sX4FWe6Oeo+0MWgvWt-)`cGu z6eQv?#j0GUMmWeCk?f<d!#>3@c_i2S=L=}!s7_p=cnQawIDG|*hHgI;>SAI$1G>Kg zA+86T@%u=q7GDo)V(s6{pGht2%f4TDSH-vau%_(?HQlc_WvZGPrtZkroD9mDTT3UL zMEG{e;$`|drE+pZNUb7>22C>X0P%PrKjM$#5#o%0D9<95@@twU+ZiYk;4-&IEwHz; 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≫>|VDJ>=leZGO^Zt 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�|Mqpf*yX171<c<OBL#cQU6Cq? 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%0Dkv>=U2^j36n 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�{_n?wuW) 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ྰLh&uRHdDw*TAf}511Z+DW|U-Wi={p(<y-u4gi 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 G_CEkVmUYPh diff --git a/docs/img/book-banner-pre-release.jpg b/docs/img/book-banner-pre-release.jpg deleted file mode 100644 index 6dc996fd91ad72f34839ae6afc87461d51eec2d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39321 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 L>;G>Hd?x=tSa@KS diff --git a/docs/img/book-banner-pre-release.png b/docs/img/book-banner-pre-release.png deleted file mode 100644 index b85b165db0579c289f902b21aef58e6f7f2a49a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828688 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�D 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%0D9<95@@twU+ZiYk;4-&IEwHz; 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≫>|VDJ>=leZGO^Zt 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�|Mqpf*yX171<c<OBL#cQU6Cq? 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%0Dkv>=U2^j36n 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 T!q;}Rr;oadj&dE?Ci;H^W1M^+ diff --git a/docs/img/class.png b/docs/img/class.png deleted file mode 100644 index fde265f63b526b4a14a387752201708980b9b099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26920 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[jh*oOL;hkpEfl)Mvo;Vl<DUI~DtU%ma(hT+fD8`uHKk`lC4 zGbt=}3Gnb0{Ml()dJ8};a@<~TmzQFY0w-Sm0b~OW8UT2|qpDApW`_<VZ-seRB89>3 zAAq>2k2Bvu6V1Cj7f{!&h>=?d3MF8oW1mCLq*<8m0`&F0Yk<!J$XDj8-zaM<Y_8>? zl7(QQohmxjE~GyCy}y|w>LE5@_fmvY0j1p7qRF4Q%L#O^pQu=Xq27)(E*>Sy9I7l0 zZHs_12L}{6<$Z|chuztXRsj^zGH7Kvjhje-a!T%pati2xs|Rx3km*{e&KPzxEdqa6 zG8=tga2e+LGI~4>)Jo`YL-%ih>f~xdKabzqu9Ow{-pf`ZGpfb}uc#m8OJI+lP3HrL ztT`@GQVTz>PGneKh&~^YARXRmA^Qle9Z0Mh9=jAl2nb&}>#5@L7C_)Z*++L0^LVlh z>^tfTk6}RLWrMbZW7lvLQg9B7nw)5$!nC&2Gb@t3B>3!8xmLImX~lpxwFC))wk_>i z2{4XNwph1VfJx*RR~z(9eoK5(E3_aBLPKGqM6l8pzUKaidi+b2{-JKsVA-*GN7Wcj zLm`+#^*+Aet(ALaawOFRZgn)8|HT-t)4k9V<(LVUTCR|fec!^9FpmX-3tTuC&*p_& zj?4_%R}K^70WQ|DMBIV8LydJF?d3VKC1y2bd0*vVG(zSAuOe}7LxaPcb~_6AR#ZdV zW`FC!KJQ`_I=c0*RjI?1FD$;=<yl@_&V-DnZuNzV(CLIF#JKw0QARG^$e8YY`e`zB zc{jM?jT?J>-wi*whfd9u6@nO9D%~jVlD0u?D!v<A4D)J$dDl8bgK<Nz6V_<026LbD z%YW43fvl)*{+?P|W#j9>AwA)wp20$oufZ-8-~lG^cC>y0c1q>mJ>S0vswr2@iKVWw z3!_UFwMRWj50gFR)FbTGW?A}fP;m;6<kFNtu6TWzNN9eWi%Qu39#%_V9y8-OvY{qN ziS3aU&%(?c-UVFgd4HFI+#L@QjQQBpJI`CSp}iih^A!iT9hNeY1o{ZHTe@t*vR*9< z_tj^-57mPjT*Adrs>bS;@OJ54)@H_4Gs1(6n2SHa39aZrpkxVnk{yNMKT^+swH1@4 zO$AGMb@p~QIo;Od80ry)sb7r$n<(}D&^q5DKF4E^Dx<V1M<?D1aF1{<-_BX96DwVr zx^-Y3&&%Q>W(FD@cJ1Mp5Szeq`Pr>?pZd<u$q<%xyQTh#EG6KxL7QlnXuv&U<DDUl zZ#hFq+Fg{194)Ie4nZ)@2`w%5?NMV<xgJdW+hb<JD6U`oI<)j+KG$2?U)Q<TYmh@1 zW#-tpIg*LMfP+bzW7)-w#DPu#bZG%jhf<dmBD|%_7_QlTVt!|%y}O7O;|fX%p!hRF z$d;cH4nVwlRI_h3_i6xxVLJ?AU)eW28Rn^Bf|JB<9+|b}IBg#9@jwcbnI8oQtD?+? zbudnhY~sGTuZH%^mpMV9qSudMfc)b=L(AN1ZQxz)>yUE+2~(vcrti~ZCrH!B0ILry zT|Nt{qd>KQZL?7!ZkUp-EQw6?n3X4bGkRhLQx>zQ-XjnO4(#{CJ<<`Rxp3z4O`rxc zIRZ=I_vpBVm@ArHt7$2>Hz;S?+_gxXuD`;%{*=RXZQpOiwQg}4t5udMedCKvyB^t4 z>47ps%PaX(Q5eYVv}6HkcY^iH%PJGub#%~GeeJCiCIq|yZt3FZi|xM&T;C<q=gK#o z`m$P>3v#_i${0oU*s1&CjeTCE99{9Pd}f=e7L2blZ55uKE%~QH!G)puiV8lr=-aAx zkK-@~^Y15%49fcvTfL$<<%ed(s6DnF^^q4IP~SB<z21XARLQ=MNOWMI43OC>L!&>v zhU?sAPBm`ZJy}(h)FE2BYF*Qun9LX24{^SJ%0~d3M7XmFOQ-(oN4As*xI5z10{Y&m z*xRzvxYl{5knQ!E#VDJsedhb?tKs=&1M+qt*?KKV9V&C@Ijb=4o!?&}vq`8(Y-wnl zmIk0-#fFfHyZWh&1LDrdg5y<;zQ10SC$$t?PXcwvZ0BSIHUpK2(%LXV59e6yY%KB^ z^iS14+iRwr_b1zCY6`j1QMhQ~DRe{vN7lb<@VI;YMkh&MnoPUT%9(?)RLS;vNvG2_ z%x_RLy4u*G7<mb&fqfseqK%En+h9cF2!XvlHL-i8oLv6kueqUe?B;%!QJqpB$M?4E z+XN+$gExIvdETQf8Y7X`&{itlA;iyld0x9bBGSx3NLg`DSYSHzMIu?f;SNt)iQp`K z!>A{^eO@q?d{xCz?-tVLO6feJRg<@4Z@hw6`ipc&z(j-tzxHnX=Fn!l4(s}h<p-DP z$1c2#@M@SG+jo*W*MBkT?Tz?ex7h>G9e0^m{YBrqMdvl`VaPu%E@IXm#`1~fKw5P- zv)Fw=A#zIo(eisK*;@%;_+6cDZPJF#_nLK0rrk2~T0NZl{H+ij^=_w<Y5e-{80FP- zkAuzUJ)x-&2$5<xGj*=kQ-Z33sbDCdF5klqY(t5smxyiB*gZhIn!ugv264kO6dlR+ zeEk{`=CRvd>EO0*Xu50R{)@mO275CioNs^RiaiA)iZ>0F)J^E7u7v@6P}BJHsUJY6 zz#YDdlsMFp%J4k&r=fl=1U{9&(k!~aYbt}Of8*snik^e}DzM@~o~O+Uxo%^c$ZY&y zwW8RKN!%{|;1Mena8NFJFfez2(lDRIZ4>IJR?<eCt&eU-QbktQH&LWF58@zqOB1I4 z=uu;BId%i$1CK2ohv?nTb__Po*GnHU1TG77$(GJ_43boOzKn}F5iT>ctUhUlAm*2C zIL}?r3BpnXXBLZ@R^_80SFcd*%0VGmoDsf9x+T!>b1h5ymZOuC2civG6@~N#v0n7( z3S1ax56@L_v9S4=gjD5~CeDA|M@6F9FX5_8=zbIk7}|^N-h)fN2wlPtiNMK%bS4Vn zwuP0GY)IGn(e76yJF~gUM~<-Md|iI<g}sCQ1mrne|N1n%L4L;g!>t1gF%VQW_1gg! zrSZm8h&O9x+*}0X(<L7hBtEbKBN^aO*DRnS85h@Dqh}2nOk7tM?|wN0!z|C2b_}RY z=#Av4%rJV+f_Pjj76?|P!*h6Uy>*V-H$dJVmr*_IV|dknja3Oq?+IVmY#axQfI|m- zE@{=(9z)7WWtJQb*(}vYldu;?B$&1F#xZ1%@K$Yzt}4{+r}_A;=Zgd&2L=zMnWH~H zwr)r6U1lb@2(WsKQV)2<px4hjT)z<_DqG0?3wBSl;As6JEU>a=e9+&v)D=Vlr5~Uu zz<4{znYlfxumze`8^*g86XdlH7>W$ughxOx487nUJGY9$oJiMa-nE{~GR?dxw!u0) zI<na|Q<S@^)v-{;G1Lz=HS>f3<7j@nKk;y9otMSt=$x>OR|?@ESax%$LCs1bAH9C< zTVg5lSJ&L@lFEWRk4mXDd%{3MeZVuO2$YOUEf0CFX}8%x@mln?#dRtKbW8B@AeyQ# z)9P`T<zPRuf102{JQ+QMM4kodgCMS0Nd#>0>L}##(WSxlYn~1*Ze(Hu*FN!jcvN4; zvH2Dju!_L4J6(PcSpXVz;XXEJWf4)Gor<YO+dEI)DV^tmWEGGqnNWxGR1Kc=E;EvW zL^8J6^`?6Op!AEUShYtr=uAd>mXEu8?%Xslc-IyG<oo6drh|d`ai#|GWf7U3N5}Ob zX)3_C?&e8~yJ<IJSv!uM(g!_*1)*~}@A|k34}eMYjF3!fD3-qW)Br1608?P?<AU^3 zn3#%vVUaF-qxJ%G0Y~v25bs$eS_lmpHTvVXnu1Ge(o%0C1{y2?-5%(4Tp&EIKbt7{ zvWT$zG-TO@(me{$_-EGhq$6Yk_>{FpqMhbZ$D>^M&wvDehjV4F5q$)tW_V+kVtCY2 zZJbYo=A+Zoq6(&6GG{ZJ&W2(j+R!C_#>1$|9Viual&+<Wt$810nXTHcYE^nsGK?_X z`evUFR1l93*CMY}lP>NZTp*nAOP=xfuDKcnr^Wy5uZZwIC_O2IcX8lMu{{(2>#sLz z?r!7!u3W<omB^F2t4i_GJHG^g(#O2vSD&j_fj|t%B5rx%uOA@CJ3jZaZcfzPhwk-f z9lf6l&xc)5ghMqT-VBT|(qb`N9z>dgppR#CJN^!2Pe~ogHSe#KPa?^^bi9o9M+1;8 zmz4FTqD$#~cy~xiB*>Y_4Ne=;H0?=TP<;sLwYQHiCRh41ET_<mR7tS7a_`)TF!lBn ze->dEX~OI1Q{_q7EpGb(zv||=u{*=Wj{)i-*w=c7TZ<QYiE&G`PVvEf%JuQGgsh~v z{!%>wbs_aVeE%gIiuCu2SLzYdl3-grzB~D@CqG_>GXqZY9-mbe&R7{|hn2W#;d;|2 zt8=Gm-r(zS-4();^!rvbs>|c3#8Qi6KnFq$PpLzXP?A?777I8kAwzpu&q!uo?`F$= zan9iZS;>3G;o)DSdDF^Ad$VseWr%FSAA50Y6G-DjqhGE~bs7)vm4gWU*(y$U>4>S~ zXT3RdRnc>@iv`9zL<jrUU;LT!bRa2hCr&sFbS#fKZf@>bww$P!-P0>sHq8MTd7hPr zPb$sZOU*~gYfkM?S#33i(#y3Ng}iz-=I0{WFjKvYe-OtTChLSJVPXPY+Iw@=!tR5c zAM!MxP;oJntW^cp&3qQ{l(5!2D9J7GM+aXwriUCdhxp{dJ)OkbJ^3B(wQ7-qeZ3p* zoW*2!dSO2?{e-ViaCEGFHSaP?`S>$qY)=$Ec|CVotD{VdP9cJ_wPoQXoglG35}joK zYr$vfTYd{Ns9s+qcS4TP->$MSe>1FH(w}@q<1X2;C+EZB?b@<dOSdd7w;qSlKZGhE zohrmTYzhBbXDpOQ`jj&}%!>T6>OF>UKN!4}IqkyOgZKkTCC<^+y_v0MPN12Js6&(8 zFuqBg`KiylSk;+MW;uC9Axku`kj*msgOTJZN_%ebMgS+*)MKhQ@qq=%f^Yce#yC$V zX1&a>#9UJ_A;UnjeXrc4XHZzzKT%wAc)^{+{2tMm|C_hp^b_AOaq&}n`paR1^PSzO zqHjld=dG&|<C2VsJ&swZqx<SUDG+yk3B*gURoh=I5hE7ruW5l@aJuRME`{F4D~-c7 z>{8Le{OX1O{}<X=UWQx{1t`dcyrm`@<)Sh;n!K#PpO-L^%%v{#_wd9vjfUTF8ZvK7 zrjQJI^c11nmQM^0@(fdS#$Mlx&<2$?#UEvmXsH5g{r&0^pd)kjCM*DIwsb}iE0Ivw mh4`qyyXpUnHwNt?nNOMXjQa4ngEt@@dmyhWS9sUZ@81Abl5@ZS diff --git a/docs/img/flow.png b/docs/img/flow.png deleted file mode 100644 index 37537c18f983d1932cf4664385e942408308a971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4591 zcmb_gS5#Bownh=8OZk5wLO_Zj7LX!6fFRPFks?Tu-b+9Np-FE_#2_Jppi~6}1gS}g z(t?Ntf*`$!lnBxi!BFq^Jlt_!PPt>;hrQ<*d#$}@TXTNjTIrVN2AphX*%%lYIE@T% z+yZ1F@a(cM1MjuipA-fLo+hIk*KbEm{G5&odjxNLzZF!&%Tp}rqnmWI`?cQ<o{pTQ zgtnbmEkqw<ztPKn)?R}HG!Cfs@aQ|mDhSjb!uPc$UtHFR$Ld4z8)p4PW-HcgZprMm zHEJpp4*L*01K(Jt7CmpolVYjU8?n1```_Ff?cZGRa2p^qULcmv%kZ2n<bC-cL=BnI z5D_<Snjh3~M~6l3J`&YV`6jH6lTb^2<<LClIjNB!m+g5%jI1)rEv&BjpeMGSw#My= z3W%xmZl!&`#sMKh#g#PA>vsMZqN>Sn&H3P(2G``e^_3mN&Z_e5Dd^=%x}wl%!HXLR zLB8S5N|`9QR9JvT<}gV3QchtHP6_wp)dlyjOVKxJeikG_JDj#NLVTFKS@}|O-;0aq zy0@div#?mMT+xzOx`>ORu-~@lY>96l#^`Wk$q%Ro@zGfYoE2^_GHKrBB?h?4ivw<} z=4m2)3C&(taEX(H(i}Ek-;FIijS*c{#R(+_zmr*<R{w&9Rxo`?fpZ0W>YR%YB=bGX z6xpim>i8Ix#j7Q|vJ+JqcW$WQ+X}^x%=j$p&rotW!R*DfBRXn(N}842iFqQjmBYem zkv_QjuSM|K=72NAVl?@3e&8@$^-)M8%}nJ~Do1S#E>D1;pfj3W<li<8GXYh_-u)=r zd|-tTNDFP*yjcA=#~tM)yw?t|2zTIc0JgPdsNs&BXF17zy}gx;)y?U|t9x|pu}U82 z^cTd2j^Sf8DyRc*T^2m^1C9w3$Zq<(OMIgiFG8k!XfbWIG+CZ`%lXd}@|mssOA6Ou z7Z*B-(1<mhS+nRIr@8q+wP0I9ubc#^-k(LoY36$B11>VQXQ`mtrpg+@;$Vjemg%(N zkf^a1Hqv`iN}N9!q2B1vd{I~W7{9Q~dsog5A(;<L+ida*lJ<@Li|0B|X_is<=W)SW zD5*WqjMxg^+S(M85KByH6f#D-D~2C`7gv-+9hvM6*WWW4<#P7RTVY68Woq#GA_bFO z<i=jj{RSh_?KrSpaupX+SLj0#*eH~ORB~J64`XB)n(GAEPCkrjpS14PTQ7Fo4!rQF zEnH}(jBIk_GqM<n>=*ghzoY0T$S~)aqV-R>c&g!%42E@8+7Ri+7f!EksxE#AC=bQW zsmhc<y~pdyXogQSf&~7g$<x2+I<%-92cnnL43X%Of!lVMszW|4RGSYMR0Bym4>51- zuFYyz;PfNMOH!;vE@3sknHga^$cZL&hqYP3DOep%bwoL6P7{^^6U6%}ow$E;g=b0+ zQA+Hn$%QVh=YOhNb@FgsPCvl!&Xy5hzrEyPoAz5gVJ&lfEh6%Cz`=welGZzJ7EyJk z))VlLg9F^#*YZ?#UJ^pq`-p#HvP{x|-g4?_x7{7;#byIm<~SxbuhL{=skO6%VlNnd z+=heUA!rdwc5mBb{R)!Cyfd+Ax^_+ZJIvAy6RUQ9RhK_T;Md~oJ&SBjh4H{*M(?8= zp-&8?{siO@O<R7}9jjH+{bl|+0a5shZq<TqL8(hU-4pp$W`OwKrnIh0ek@6D7zQ=D z3fh<+Gce_;;{N#HDENt9wQK}Jxx$xqn$J$bu8Qs+<&C7;Dyn(Z(^Qd3GHB>!8}`H} z%-NWHqwQXIZ1gC+BK^5EZ2Oy$))ZaLLVHUI*qA0rnx!eose{002q`oMbQKq7JP{#! zYNgR1EHDu<b+ISgo!ZOqR^YB9n6Pc-LHU6mXGbv<#WDjPD|;v3pIZb-_4-DOgQB^I zArk6VZf|ZhRn$9n%?%`~Rj78jWQdelx<xs!9yf%U`qa7xYEE6UP(q8mo-pNe`muEz zA-87cPqhQ~Wo84)r$_+8tER7(L}Dd&jwDVmgbVGBsO-9CY${L{(t)%Mro8-<w!)f1 zvII!i(@84Z`6f^jc@J$BHeu8!BCq>6;>LP`GN2uJpTseaDfyyq!ZVd)1MD=SucVSh zJuS)SF56_%46Qv^Hrb5X(w>PXcl(OnH?7peOTVl{oZ5Bykjefh5*>uk)a!F8j^?eN ztv6@&V?MU#bY`L9s#Dmy%0IO!&1Sy2^fie5r9x)7FkcFCtBgZv2Jm|PK0@H51PZ(z zQ!#Q4sQn7r=dOr}FncBM4{6F0r3Q#|omyYYJu2jDI#u_SHY6Y!KG74q(6f;$;#V}x z5IM#mWgMGda;F^TOA-o&l9_p3PPp^mfx-Xc1qW4kP*LA2a37xBm{8?m8-&#y)UZUD zcD9BR?o{(b*Hk)jpZu+s#BaVidw;eFi*14KRotS;b4pWmcsp&m2pc5Fg1Z-vH((U` z4cENXiR^%zy!_nZvqcsed6JM~F-||oLodc6{07Mx8R3ZNic&C*U_iA^X~?Pws5ou7 z_Jh4o?P8(o8frp2Tz;=MZ#IJU$53$5UsCrmNk!-)T13jV>R(sYnZt3b+eSPnmREe| zATtoqMa`D|nbjX_zGG2uvZq>+1qB7``z)@fQrLrTPg=c;t3P}cXOS^j;%Lng1S!~j zpYMF2`TCRON!+8zcZ`fFr&TuaHwj<Qetxsxw}RwF#(*~tJrw=IAhn?)zeje?%SSpj z)=s{$h6Anbs3mB^&3gFIX1PF`(@(`^J|%8sWe=6w?tz-z9qYtKG(N7%bsK4)X{lRv z#vGXpwfj15%xw*qBe~AW|6+GlPqp4h)FwH`F-G6t71Fum!<av<m4C3<@u@RWps3-q zt%TWOkz7DM*kOfl2$S;b$GE#ge)xvia`n%^d@<5i&f)OCL9%~BxlSCO=Rt;e`1u$T zsK)9pM^1us6@M7zY*KSREtuKXzPIM-q#agK^nsUap@fwBDd)skM)cdP2!3{AxJcQU zT+%vzVzA7C+bcK7bJW&L<mkA`%OklO;db87f_dx5q#ph7i`H-OL=Q1;OfUXAA@aT5 ze5;PyV4EZKnG#i^)RFz0R8#7kWWkN+FMC1)Nm@HYg|il173l<(UqYvOA$0A?6jQE3 z`6Yo>&?U_p?HvI}*%UVRMKrrw{chAr=4(o0YVp~2s;DEy6LQIx$D_054QC{dvvu47 z3h`jqy=AsSy6)bNtMU|VeD1Xt*$w2hD%H5rJ{X+(G@nDjNq*34+gn@+%g8?fhI9}c z_$`kUPw8?Xiv3TGFW2ZQ!YT5V{lUBGu=gdopMHHTaNG<4bt%4Yjdm-n>J5DvOJo+F zegY>()+Hwj?Sx$Ynz#Qsc)s-{Q>1>*UD@(ib&n-{W<%4MPbptrYR%wLqL5k5E2!hP z+R)p~i)G!yCX+qie$6h-d-NZAwxrryxJ(v2^~Z)7K~v1L%F?y^XPlqwloP<6WVo`T zAGKD1Sw3u=MfZo{8F)|+8)-aMK-*|epQ2{kJEEPIT_kDg<bT2|_>D)u#Pp-cveTBx z+^UMViTh9I2exwD{weGKj_Ks%4CjoESlN{WV}Bp_e(>)d3s|@^F_aqgwd$uHq@yYZ zKMrbO4d6B=@E=y*$3F-kna$<tHo)I1S&ezOD)CHvsNm?zp6zkpOcORHg+4K;!PL*? z;<BQnwYrO;T`1?JS#jg@cbBL~MJC8?9Yj{e4eto!q?G>`aj!G9!w7K-+UD7s(tx@b z_eMo9yrb|lLcwcRcogg?4fI1(JMDPfrAV6p1Qe0ecZaj`9q!A-Vy3JO5+pJ@T>&>i zx<zaR#(nKmsvd4OLyMFdbL<<PWMDea6!!e<(*`uD9)94Y`y<s5>2Am#XV<$jQUV$Y z|BIbj?y*RPF$Y*g$J~l*KD6WYqJ3tN^I<M?Vbi_~NO272$}Z3Dn#PsxIh}UDMU|qm zugUueCzK6vp^hiI#mfevWosEU!<4P*@eRQ`cZPt&$$Is`MxSCvzNFKGJ++*EskMtb zGbflYgC2DI_HVc}mZ1bJcp=))q*pbK`tttLybCEcsN{zNvn5(ivpd~=Kg#C-!g^NI zRExJWsg$Q<><_MNIhaQ7-Kz`=dg%AJLHIpo=&cHF0O3G*Pr#qh^NZ(ikdRAjiw&iO z0&^6?3|No{ntb|d>!f?u-@*&iG`Noq0mOQbl`JuC3bg+ZCa0-->u3B$@R&O3PGGkD zaPsL*lEBf&)=SHRgm6v3!y#;B5GC8+^<ZMlzki}P;RE~1NHv<Kdd2`D_O@I&Af7Jg z6DL1%GQ@*}khOa*tNy)z57W24Jax^MnD|Ii3*;aCk7kIuAK#)-e&)<MfNuf>*XLF( zE7oZ|8J&*?cvBbLi%_zUp7t4f!KA?#{w(m#`gPL=U^#;9RZ+FLq!T90mQGf(0PRxT z2Q;mTYqqq$$1Qg8->eoEgAC}sO$AhrnMDKxDs8@8&K0#EaBwC74Dr!an@)j(RQEgf zuBY;g>NAO^6y;=qx<m#MqmndvTq~J8Ge=xifYG<u&AA;W&)JD~4i@k^2-%U%gbg6e ztv~DE`t?kZ0Ij70yrO7lfxPM25JEtFBqhFVG&XbJ2<gSSf4P4TdSsz;bh!K`uBqye zE#0ub!zsW<c|Qq)$q~45+BbCZO6%8O0eurUHuUj6cbnxuIobETWhbr$0)Yt!i%i{h zk(H5~ccpX-p@Y(A#dpf{WL`rfj`Md<1c!!n-nu6yCD~KMpLWU3mgKupmJOFcD6d93 zgaseUoxBw|9gZn`$mYkCXwL=9TX}z?Bh!J$fE-_nl|{43?ZRZENNf1j?XRQw9%ll* zs@IfvZSUm{olereT1T-U1W*Yq?n_{odq+?9j}9Ky1a01<r7Ax+N^nd?N2#H^4$~#q zExr%7>cI~+=L}=M6*m8joY|2u_&vHh=ZGdIb#c$i7V-r2AKIcT>sL1e8)f|X()ao9 zz~+{QdX9r3HUyPK`@leDj9AR^ndrJe8MPxi!*2wg7x?XW_}04}zbp7m|2|oP#~bIH zA}_!F?1lkr<acfGVK7?2LIvIS*DuZ5m_91#d(~7@3eOb8#=$}=9;lxHJ{hlz!a_ot z4i9UfC0=TqlZ;$ou&PT0VLR+s*Z9YsB17xiT;xB_dYl#?$^QmdgYyU@TGhoRslP8m zL|d5c-V>2o&-GXX)?^^hWGFnf8OCgJ^Mmm2ck4T%VU*Elmd(*iB>Vp2chQs~QzK-A zwP(DSuJ>1k%{^@gX5I+})SY9y&g{BVx~s+{FInKkn`IKbT2UX-%u=Qud=+blP#7NC z6v<#OB)!M5+m@Y{2Xk)Rb4=KC%A&5<8R&ObWoeKW2A;c)`*?%bBp?{d3M%trXuKZ% z``^spIRARC{-GjN;l(QT-S*SM&(TV_O4tsw0-a`oIgY!|SWKiz*Q1KoyUq^A*yy)| zHMRnY=47`q&i~5|0#sc1Xhh~y`;70x74-wz)56hmroyTpmnJzjbK6IH=B^g))jZS( k_{x7eeE%!(N;_u!K>}w{nG<}0iyQ_cee)YNx-JR-1C65w*#H0l diff --git a/docs/img/gantt.png b/docs/img/gantt.png deleted file mode 100644 index 304b598b8ccacea12d413b06c5f11c24c0c7d009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12818 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 Kk|-B54EkS5)8hI7 diff --git a/docs/img/git.png b/docs/img/git.png deleted file mode 100644 index 2da331a1eda912e1fb6057726dc8608985b045ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15505 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 diff --git a/docs/img/n00b-firstFlow.png b/docs/img/n00b-firstFlow.png deleted file mode 100644 index 5d3c7738d5ea77c61ff53ff0cac968cbda8e3fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12700 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 diff --git a/docs/img/new-diagrams.png b/docs/img/new-diagrams.png deleted file mode 100644 index bd9c8c97ab584193045046212f1913a74fab3b86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32225 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 b4-}r|_tA9>)+AsD!oWz2D~MH!7zO+<n~r{5 diff --git a/docs/img/sequence.png b/docs/img/sequence.png deleted file mode 100644 index f37d523f8d96f34fc8e43ab3c27217281da2541a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22906 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 diff --git a/docs/img/simple-er.png b/docs/img/simple-er.png deleted file mode 100644 index 6ebf4135261592b5d18703f8ccdb22e1b0e70373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8027 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 XM6#F}ySh1WXilJ}tPQSJdKvK_0+hlH diff --git a/docs/img/user-journey.png b/docs/img/user-journey.png deleted file mode 100644 index 825d467d8564bf6140ce2274bc2aea62bc77d4bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36968 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 Q`v0q!6)$C8FuMQ$0rq^OY5)KL diff --git a/docs/img/without wrap.png b/docs/img/without wrap.png deleted file mode 100644 index 038408d2bad57ec5d2863046789a203461effd5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158551 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�hRT-jQwi5%NCj`J6j!#c3no?z%;8wWm>hetKvJo4!6pGl} zb3*Dsb<1h`I*S*eIgA#Y5V@W2io?ktEUld#9f=B=i3-_Cvg(eSLx5m)_iPLbCF<or zdjQZwh+uSpX$IY0eA?ll3PY=O0#x8U7wC{D12yE@E3$GC(b1^!QmDCM*nk2gZOrzf zrli8^<M1P*4l~aBs^Eao768S`cD)$0S?Mb=Q)%r5&!U{GfMcPoOafYpHtj1rRS`Yr zlWFh?2!&N7-FSP8CCIr##1`;U_~y$MIZEER-=(2bf86ADvP4v5GC|1id{772p)AH< znzH6)6o1Zv%@Il`Bcrr<j%M-gH1#q(EuFaO<ZdyHCqGV>b(mf1%@=5S79Yl^=xCAb z;R?0K008tgNOoh9xpdMKFtFZC<mcD!qSUBX5ks=nD&uw7;<`a5nj$3r@k$JV)P{-V zZ!+7JhlhlKM!-!HcC>|-(B_g{74m!s_0DY4*3Ug$#k`<uIs&SjPS%>fJp(GT*F(e% zfbghvU6XOueMEbgx8CdXh9jc-&vLor4f?sQTvspQInpMB5;)lb{HPgqrQ<E8ChWo8 zU|ceShi@-im%HK27dY!`A?RT(V5;zY^TEmxPfku)1QD+{-x;iy5@42uEOq5X0nYZq zJx^52Je|IqnkE^A&9)8a!TBs=)z!4~sJatsRZ^qx9C(ALO;rmZNCHr)Qkf++aHj@j z<={Xo21ds69kj*{Nr;b+54ZIJL;9;&PgDvQoR{Bj@($nOu)Zr6O7?bFsT%z@1dYoU z8w3}P`PGEL;M|FgJw8ite`Gww@XGpKle#4Elsy2QZlRlN+GENbJVqQY5s{w{rHjYb z)#Zlc)L(>FE~^+L2#rJl4p56N7QTmcI{tr&+4<oQFgq-Ot~G4joH}6+s*uElgb={m zC|GU8o|AJT`i`3ZS{%?+Vbw?Kwi_ci0mv#y;2h_rPx5?Wb@FvdSf*a*Cr7uD2XG`0 zz@pfXZSDcshUR*a5uBHLZ-SY_91ujo=o45;6!Gxz+<_x)wuTiEAi2t=_NJjxdw?!9 ze|ZLLbl$EBf-_#PV59E=Xa!FDBg?lkFC9`Ped72?|BV2N64?*OJhk;Q1j~Sa^4&>9 zZ?KWfe>isI{7}wq>*(-IvwmRwSPBNXXtQ3(n6oC2AP@@YO;+}RU{Q7RyakRP6OSRv z@7%XrsiIzM_iUugzv2L|C((^~z!}$V4oGa5{wvAcGmvW#<!rrIwwV+FZGqu{B#y%! zLlFMElvyU}&?a%$HcgTf-Oi^53+1svSDnY@1u#;d;d?19HMMSLh7z2%-)O_)q1N$I z^mjytPad$c_AiwUapU01EZ|PwrKlE@1hL_INaiE#@>qjwa>3>4nvQP5{^rs6pKc@} zLtC4oEjx0~2d=F$gg{P*0KWTR-vzwK{~%!`PmOPLrgrAKsVz%E+7Szn_h;iz4h<*J zj&x_0W1S_HPHkLmUHLBiGpj;$gTVoEy>Hm2`}T&SqIc)upi9_PWufVbHHcc2auom( zY~=JpIk%(*pmW{<Qw$Ccr^yod3fPN%4Dd9$3y;q)E@V_yH_HZN0X4Z@H|r86NCSpI zAj;u>wiy;IGzehTTBj0NeCstWCtWjn;iw%3hVbCC!*Uy|<2GCuz%m-H(MXf!fqj*a zBW`BRlxG5vLm|G4iwknn-L(J3=9t^a0{;^@pV=2<V{n))0O8b*FUYcv(4{kh!~FU4 z=XE<K`OVABDh1$>Xon87o7**)cXJ$~&+<Y+kqSGBWbTTyT5#OA)a9?0mzL^}jnBT0 zhspsDad$@q8;(@up0^H_VTo>pLQ7km7Fn)RwKG@}Qb#0T>tuzD=LB(dH%q9|n+*C& z#G8CQK28bSS=9+kDk$jNW!RM9*9ZV7?5HWI${`ewb!0w@+~>9hFt^(+VXbh#37j`U zSz&D|09hOn5itiq7U-($4t`7_guF9PK^D}BFY+C3Y#&9-4)NxdO%%MQV`5l`vf+KL zyO3DNt};~Z8|e-}wH#d5xAD7!3`jh9TT$rN_+suQyo%!V^*qWG8XDuxqIZHw-t0oB zYmK0EKn=y*?U>x<>Zgb&oBB3z^ts@~FJxro=PzIG*~_uq2Rjh(Rqai0P{Z+I$0sWZ z8@X-(oD*=HZgwYv7OoGJHm0H29!)vu%uH90R^(cp7otNYw~4K$?38}k=Zcf^2V}sm zQ99A5l|>*+QM6`tlatxG7f6VhB2OQI`_YZBwCtuS&S!q~0HyilEyMlX3w@hE1q&dl zRJ6v5We~b)8~L`Q3sf`sj>%WnqQQ$@lE=|8F&6}3fP^4}i54KbFNGLxZ5s`GtfJpn z<;VlLI8o#-oIhSg&CgF>E)`~$It~<zOekNDT4*Q*zjFRz+$%cMiJJJhuX#_w%kG=N zK@C(f)V#Q9tIcC8^LKQ6$-Y$!_hih}*0%>bnDyFvrJlW*bKkF`pn&4dS>;B!orYge z#T${<Bsf3aEgZD(1X({;gV{n;-}12=jr2&U{Yd~$%f@_sPkXf|MJCUuhBCFeMfYD7 zqgo->`+7rlC-JhY<Q$t9&v|!BuX~jW)#9Wh<JLfxOa;R0ZA$O5ktt+7Fc@{Qw0!?o zmh4~#Jguxrxt8?E&Yg=(<DUKzQf-@=+I#EQyh0Xmj}EEX(~*^JDHz}a6(O{O@8D7h zUTZ?S^AZEB!6pHrw;+w&U!>OiZ~OgTPeOCvO!ParLuxpkng4$-zPEcQE-&nC!Id%% z2u@8&W+vArs^{yd--ia5UrlDp@d#S|-N<^a4i+uDQ*osKl*FI~`acVsE4_Ahxovbo z$IQPs&dew#)?o#|w&*?kr)M=#%xg5vGcJ(X+qrJ#Rn+IC=GxCm%z0B<Z#ZmbDf07g zQ4i>CD>(7<xsG@nwDJBa5=y@R>1E2Zr-qU6Xu5}N`hEO{&ui0&ap<QwCqg~_kJm2x zleCvNt7~PX?Pv2fEWv;OjyGC}d8p6=#V^q=&Z!5qnEfe0s?d&7>5z_0*aC8397vt_ z>m1*OOZJ@AwYV>%#;@f-X_ayU@O~c8@3$_*uW>8`|KeDFiM!uH^H4N8r58Z#|1%^X z?&J3v+JQ2%YMw#^%nv^=7~xZ?prDMUQa*g$1Vo|B)~44Gx4t#LqbBl`;Fo)a%Yg^V zRsM9k!FLEkW$xtvx$Chlk12gnrMNDsy>bas!G0k#-PhXw$IeBMSIfVaAdBMD%n`H> zUTiW%$mj_l*Zl9xtGyVIB5zrLy>cz<gA%H$zZF?vu&2y{+yFnty214SKWx1RJl6g9 zKdybJ<Ss&lhEWNTJu68F*_)!w%*$o37G)NR?7c1{dy}2yvR$^2?J~0W@4PQ{_xV2l ze~-Jzqg%Y*uj{<e>%7i+p65Bo%6eXxKmn7=JIeW~im>U(P6ZE8m)ku^dCdQ|x}gYr zgFR$Xl^In&iR3E2@Ls6-KfAvA;Tj~JksJZpPzLX%(EO^8^ppgiUJ&_sT)zhF8|ixG zp%M4Gf<x<JS8+YJ(ZFcv|Ef2qqAWu0+mE+og~$HSu}m9RfFVTiZ!1h23%1)^eY}LN z0}ThFw0-S1P&}S}x8k~RG3t=tTz|{|vgs_JoOkpsg=SIFjd!2i5wzfa{+kQ-X3{HR zwe>Pzb_$|_(EI&P(gEJ%h;joP>_v|f(h~ztJZ4S&ZhO~@Y~b*`Ysr%PU*(2rC|bL* z?~(;1kL@nnlKoltO@>-R?Z$m!^w++oWZo3!RsFpo41rn(vhh%vpCK%q2|*`Vk$*o# zh!oN$k(&RX7El)$&d?t7A*goibn3-H^Mk)%GIWBHo}hWvO`%PYHwBKEHItgqTfuhx z>!}aq<NHaOn}?}d)5LUds{;$`jmcovu;YKd6<)uXUE<3{gL%3g46TK>C;yMEVVaGl z-aG|z+@C}WKM#yu2YGPMv`~5w#q9^pRkJ70_dp-2>-dh_@eu;u?gRgk;+|i;L3KRh zC_(=wZJW$iRO|p2nJ(J_$XE=Tyv?lK1axZd6OYWV?nBU>5mFP&+1_uj^`n}FZ&0(i zX7$BMkRCpIRAoy;uD<rsjcDlCo9F5x1HXjyaR(e&{^49kQ(nqiDkh^id2MxWfM($C ze0pOD`$xbJ0h)->EHG!Quj{uVLw*4oEaIfYFf`0rVf8+@pFD|I-AWM|aB3FT+1dWc zs&NZC3L0@;sxwZ*kU`IT4&H&E3Uh1~LQNGOYJGy}**8<|Nx01wEXVzb=Kj151wCRI z5MgO)S+?rQSGU<#q{!TFUroX`mZwcdt^eSs;|?#ROQ?0{o48~8lvRh{LNoY1*PZiE z(N?ZVehr?e)!_t??nJ<-?=UqlC+C^9Av=0#l&9sV{as-4c#2iP2!6@PC3P;m?;*7P z)=<Jug-jaNR~$0Agl;-fs7nTJEF`B~I=;Rybod^kQBi))V;XCSE@L~RJ+<xg7>sW+ zqRT#~v)-67Zrc?@Q^(7FZeovZJ@&2X-n)Nt=bg%;uQOabeNq1H|H;+;ocOU^X+|*A zyW5K|9Wh&-syZoatNv6RcYaCF7n7ek?{iTsp1u>)Y1EP=7v<<X6_#0X50`;nqY6L} zc%O4OrxP;SK9*3;6qBZ&JSRkTF-Z56T=@(ev?)#O#W@P#Mn*@i0KV%|*93>?#z^tZ z;ip)$ImrH$Ym^pttqeelLuBVC83OT#EH1ax6-?C8SlDc|$(%=NH|O=%tPhsV#{wV) z_&-~H2Q^8tE#3?IUaItsOEYrI>J1d5#bAI(`ixed_0x#F%!?=KMfx#Od$7oluD4{1 zkiWBE=~NvkFNeOrg_3$V-AlMD2duI-MRfB3aD;B*zb3uSC#d4FhI75nS2=_MZngjM z{MdB5XuMt;`=O&JlUD^|cucDjYJN`j>e8&Bv1R0QU6q?^%(XbTcJOxVa84*0fSo5> zvMz6~&Cg#c=|KJJvnYGbJ7|9>v-B5nvEBTfRTyC6FO!p#sr6UuxaW?Ypn!|(Ao1&} zvF_Tmmyz$NnXg7J+qtA2SV=MK%P(wrN%9D728}%Jmwb8uJ$LRcpkTOZA%_1{0yDqV z3CXk<i=*|`%|jJ`l4Q7<ORYg{>^IMD?QJ)JC8}8G#E$egxDbpdeoKcGw84K`rR%8} zsyV9GZ$<j<(<GYD|MfJ?YN6gf-I*rb7GQ7aY;CbnQ@_}RQJhIIFBxE4-{@4;74PFQ zduP3ReXeMN4iLmc!o_yb3!&b_m*zAbg$ML?j7v`bC$n_(nnA_FL84nsfsaQMW$d@` z1xHq7%C^iA1p%0do#+P)Sg>(6UY#<Gx(E>`L}>2N2)=E;Tr6kZo}7|04%$aUuUt<^ z_rX{OfP9IF$SlgvLRQOfv%0$KhQ*)|^dyJ)=XO&2<5o|4XlPIB_H59HcgUFxrRzp3 zdR<p%hH41Oew_>iBscD!??Iw|x4j)CZFz*lCD-UQG+JHQPE)@xD_iFh%g&F$4l@$I zcc76p1-p(9bgn<47fR@79(K&l&F#FfBRTl6e(VCO=~{13UzRAQt=EJd0Vwmj$)NhO zzlc{uAoB^m?eUq+7~IUozy`~;jugZle-W~|iuZ>16bHSL<(fmDw<pPs#`%l9sEDG6 zA-g|DM=!rw9F-HP%z^X|Re`I^7O|gO#j|sB>rg-l8LA%%!8%nkFpOm}SQq)2FpmS7 znE<Hw*_zMJ8`gjZLOA`X4PP+&l2qiDjnW5wKiAKX4pdcF)9ThiFI>ZaPMz|AJ?^w8 zjrN*moc8gy@6XQ8fkI_yBF<j1d<Fp714_;pA-`t`<4l}aHzuxdf4Tu(j^Y0xS$}lR zdrmE(eQKdKR@~3ZX*sKYp&=<sFR?xN8ysX92t?<$ZB<_=0stl8H%7jr0?;kkd1VE+ z4o&}K;P+N=Fp;mnXnhD@aG8<uh}+H%uK_mX08rkRmu(;n(7u6l_ws#$QOT$YV3hu> zUw`WMcVzC%ql~h}@vvYn^Q9pdoS6^3+w$obFJFRa5l{~x1M=@>2(W)BynNZbC-!x8 z6J+mCr=9Z_*EOnGoyOew^uT`iHRVFP*IE1Rx6C(YiY83XGiUizutG10!_Fi}Z_}~q z=AUd9+Pa=N=)w!x^M}yQn}c^~wp%INWK3$iQ18ffiWA7i0{yw^oF^~B%#jn*l=YU- z-1oM~faT5#q(85)vr7QnS-!KX`5;P!7TylL8Du)kEazIkZ=ij|A@?Y^P3Yx(T)*BI zrA}FEdJhJRM1JBY1E@xHd*RSg61wXl-k`i%qlItO(^ZhnGo;Uvs9Xzx!Of|OsK+;` zKEsA2zK?L<e&DQiKG0r^ZN>R41qBmTK?#!_MaNK%p&Zix9dOQpjAG(+jl3$;pfJ+4 zxdCs(C@1VwR=4H%5{Eh7G#ifalnCm+^^cO2d@iVh>0BI|t215==SL>*oJTDIQ3E+3 zfVf_S#N{_k=17#=Zi-cSjp<g)MX|$Xu4A35v?z8_QThl0^udQa=&$H%&(RD>he#z@ zhwDbUPN#S^Z*HT~wDP1rGZlKvU#l2&*fOgO{V~<M2X_1t@Hn16eTt-v>0H+z-+mCr zW0txY?xf4g^A71zoNGQn4GFsfnNWr|R)7H5{~Y#&ogm$mg;ti^**KKTD!{-X;}Y)q z)3JtN=9N~RItA2BIFEO&7G;((@zK$qW&9fDG+#mr>h!9~;3WWoE3r*VBhC(cJ8MU9 zZpvuYb3#V%9u0(Ve7{L3<mKBts_l|@!3}bTw0m3hj;ph8t;0xYc%e9LW9f+5Tt`aa zqkhCDV2+WzxT9mWN4dBm<1A}yw?j!r>$|>g?-O<709YpEf||h4Sd_|tUajXfn+`E0 z75()O;LSSWH;=)akrP=V-(10Kj&hqD7>qOeYTDZ7_fdg4IS$>xVPwk%n1A6fwEg+f zoI~*`flSoBxYNi;p*pz`ccfXjdXB;RT^kt|I_9fbl-U>e120UI`j}*@n4_Ez>b^Ws zFBeW2^^kpZd)^PaLThm>_J{L5esMWUM6IyJ3Rj=X9V@oA`T`BzA&P61+W8Lrn}%X> z-8_D@j1D<@&kr5D;e<UOjLu3ePo4S4YPWQ0wU1jzut-0rXQ2%;eF!@t>wd-n7D`^N z?pQW$b>eiLa<AIMPS|FmL+nY^7f1acUJHT-_dpC7)gF&bn!rfVyO6tVEk9RCxm$qA zcmZv5v~cX2<yxOV4sjXyT!03Y&w@?0tmr#z$^!&s?`9mVj&03ozQ4WO6gFrsRklDv zEb-8u3nB$R#7D=gRUA$bKk~a-EJU!)GrP=JmQMJ&>wY#YIrwL2!Y@OfvzJF_A%1<y zMurh_EWa(n3@yc3&yZO)c4t8$qd4HcF}SIBK|!y<lI!(#r5kmo2I-5bL=Be7>*)B! z#$MV694o-C9?3-^e_dEvIYI=)g>V5E>L{08ek31{Gy{j0{UW>T`rBE?WWcU)wh;hp zeC5MgH+m-+4g!!J{Kw_%P1fNC`8hyzkWnWH)fea$u`qZ5dXDpMN(!|#YWskvjB<di ziVHF~L=`44)iN?dR<mf!9CA6|9TvqK*ej8d8sNml<mQqCJ;Cy=@pMNDY)l*=&@*IY zS?icg%O5{(11SIlJ?4NF5N1(F2CN5|2|@#HvKj9sD7<Aa-#!E9s=DSanYLc>*hkHG z@82K5bb9R#xC$o9Mi2wP1d&Lq1btBrA2eA9;0&^e!<+JPT7IT^8p+($L}zt5`PXV$ zp@%hG7;GHK_>yC!w09mox`5=#VDwKvr)`@4p+VubL2nQwOs*nwhpcR{H|6O1Te1*P z$;QGr`sDRCKPTmd*7{K`O8M=NZu|h1=`MYG;^-+V_trQGeTW{AWWdiex>d5pc%I5a zNnyIiq9#Gx*)M$-6}}@QdOlSAZAfz<8283!Gx;wOv<5#+o!8q+0cjzaM+B1;>U`<_ zAp?6Kn-?f4xxOAKM`&XoGW3a8?gowx-T#0ou#bva?$Zm%WPK0eCz~%@i)`#CBP&oZ zHF(1c!*6H>Y`(mKl3UJCmgq62%+NZ?XWs_wz{UC6N~sLk<xkFYp*&_@6??lh7Aodl z>EGHxcraK>q;e(h-tg<5ocEtTy%pSD6Aj+1<#@AnoJgU)&2qV$188nAfeKn6lEa-K z216$>5l(<}+ectRdEr(7hJ;OtLBHFOOLsAv#r&Kg1>6p^gi$FWV9{X072HQeN+q_c zwU8u(QI0RNM(Y4F1U4P^sm#A*^py1sDwGo}6INtf6H#spl~u3#+;)ZT`J8|2<8$&^ zUp@)s&{|`}juBPm39+*`oB7Oj3ER~RkC}%%u1qtAgq6Fx!icfgcVfOkD|H6?sY!D) z%7Pw;IpbW70^CK&4%flN9S<0tqf`T_Y=BT-a+~7xV8#KI-v{ZAa96hH?fEx_Wf?Zp zK|iaLCF9h=A^j1k0pq@W)-x<9=dPvZlA7dB6Y%R6ek#gc1mvAD5e#YN$`DMK(i%^- zrzOwCkBlm8=oj>Hn08%%5M0<7#0PVq5c7Q+Qfw$0A@h+CNUG_GIWA8=FG-RWmw$XQ zH+Ja=QA6IqrxH}Q;DP7QA*1Fe`oL=UP*CbpkUicm(o}io2aKJ04P&bw_jhNRXIinN z`%TD3-@Ly}i!&7$7l%Cg_dqn8pdbz8L#TLduRGez`*l|APTPj3n#L_@p~`Kg?%#LU zNvei{TnjK?r#S6EVw*xRDkG$^-{xD=j0dTm`sJGa#D(J736#0I`X_yvcN&xtnU`VS z&{TlvNYNF)h6o@-Kt4vRQ1+c#Ni7Gz?vhu13eV^jont^<c>^AGx7BF$yT(?0Du!*t zc?B}`dT?x!DMg90VdK`?>^hCYzA!YPNR#sIS7q5=<7e6{pO7%n>qPc@q+K)8(`Tu8 z4_MM&`z>m^iWr{lK92dkxWNyjagG1C-&8{Dr3+lsZ7i`YRWhWdgBPMkCnk=WIuwnb zC{5L^Q5|4}mk8a1M;C^x)p86-0-D30gBn6v!P^FgB1uUpNh^-*oNRDpU#?MJ|AN&n zxdAjFgupd6HumrudCTTHpN_7ILlPe_c(O0v!?Z$2DQL36Lv-QBjei04zH;TdO%Y3g zY!ZrQ^wUj4tzJR6h@L!of&>Y7k#6?BnBsMMAR_`y5Sv^`_3axwON2i0!kTBpld9or z&qbKt1_eF5w^jff@E7@YKQD?E{O`Gb{`e?S(jbMYGjSkMxI@9eBSx~kf$+aEVxFH} zcO0K>j*`NxIC2W5ZElo;LV&an9HPa9>FG|4wx1>|#n-2tSCmsv=n5HgtwTaoUP0jn zOgg!}1*4bV9@yEs%+1}|I-bfNRBLB!^D!{Omow)aj2AGkPcIG$AEP9X?s)P-DjiU; z+m9b#l=AXs)TJRO|0!V3qv`ALQ0Ei7^5)u%Cj>1yy)ut$Yio@Liu2-{58O&uIl(gu zXC1gy!{0yMY(q6YyJs$YO6gkAPeVRJvN}%#Pe@iDQ+kHwR2p=VeE>GgY;R2$O8Xv! z-#7pxMb={LQWEnIegQ8AfTZWhytH2&#o(aA91rk}0{i(G{ceZL5!z#69?fZ9r+~l< zc(WIUg!&m1L+et!mIRms8_sV$y+PHVaSlj?K%s$j?QIQ>&_=Bf)WMXIZgfCrQO(=g zfD2=I>zhoof@uNj0i2`HJ<t3^7OVs$>^WVr9GxD_6D%oKm<AYx<pt^f5ogEZ%ZA~& zUjfuSUnQFazwB&CO&69}S&y5C+XRJOi<n3Rmed0#D8jSi_f)NSFbg)xS?WjG(Z;qK zy#uBU+$%%~Ww5A231T0<%~l5)OUgJU*CI`_{&a6L<_EVP%b)(%*ckKhik6<W9rlR( zaWbYy+l5vEE2e~O(1#BnE?l)(%4sJeawn3!dt2$MBxfC`_mMGKJ3$-2tJk@dEO+eS zf+|2Mo0w59zpYt`e85yaC+x(KSzEJlseCtZq|{t0!mxH!B`hQy_b=S(aEa8@`qswR zHL2(zz~`5hO$#9ChOG3X0y3K#o6ydFOMBiE9!tIRLbwl7j6ges(MrJfP#G;&Qyxn2 z3sdspKEAMK_sI#n!%{mSPzX$=lQcXhVO~bX_U4Q@%raTbYX{=xXT4hD<>?+WIibb7 z;uZYq2Re5&Yk<NiFwvedP{N24o<J*JgBN(*Qg}ij^EiycTtdIP!<Nb8mRe%VN$qPt z)5P1VIzpQ0?lseQmPO@<(O8Id`oKs?zxGn`Wu0RKSuie|jm;yk^t?=LEZ84Lrt%ER z%&`D7Yn1QIob%Wm-)Sgq3XPecbYd%uy(fiPdx?O&NYAe&(i88|Yz={_Gq#6xj2@s) zQty5KyeM!eSD;$F>;CWDNHE4)`W&>SGr{-arssp5fYRMqzDI}r0j34O;nmsm6`mk) z_^^jFg~1OXK5>HM(HEkV=Qs}&7xm+VkD&~j?}0^p9}+TYe;6jFr7r+SNFO&h5CZcM zC;L;#VA2_}w-<p1XE8)q=C}$JK+CNo-`Fd*UnE*t*{^;wJTF>bS2u#G^`;HGOLT#m z`Is)Njt`7v!BNG1NQ!bKh6z0YZb<0pL_T?7*c?%f;4R>V7nO>_cs9ru{zG#7y^nEq zoiA|7{9K#By~~P|XwBCabY7iGBDzKw15GmLP5SI7TP`BsQ7eCT?uoTS9*2rcK40R? zW2CV_Sfk>zya0ntU&Dn;Ars0~*~Tb+-v1}sZxQ&b;`a7@M^93@n-7$foENp-=7XtA z2(A)d5Zj&F6QYn869Y6r;NJO>+yTIY&Hj1}oQV%t6)o%cc8`TMc>tCf2lGMJU8;}n zcZV^a?ao4`)x>m~WUV){AHmCCA@9z9dcwSTiV3FbsauOR!PK8ZpT3m#BpB4W2%}wL zz^$z@SjID4)FdCBw^)JB+lo<T&%OWP?tRP8Pbz>7MS&z!*MQS}jNTdH{Mr9{%M6&6 zx|t{tYf_z^e!iFZ?6hXy5E6m#(`bl-sS@}yX@F>>%ws;Q_8o?{B{Yq|{6`2ue$32x z*LqXpOv3xGva;5K8rUsQxd1U3COBU?OI#oP9RlegR&6iv5yAGJMKA$9ef`Cpn$hMO zaIqv!v{#mvs!4$-4?(J~^G1R+FbEW7z*$phjzE<dr0L`wMI0EAvt_gJTH$x`6f5JQ za=@`>n0AV+`3Xcv7$s$0REjVPn9@~dCSM{^%Jvz|oIQFX2r|l@wu*+GLQ*o)KsrW3 z3EGX((vQ3rgIb&(sY^Y;@ENfkK-u*V@Ey1njE%^e-I`x)!s(XKGFz2@l9r|odyW}J z94dA2epj}JU<?of4neU3V2IrXZlcIU6{Z1On*8kzW}<((UeOBL7DjmMfm=1u%dP?t z1zUvRiMiCD-v{_9i9ASXy<m>0Wd1zd&M=0p3Pe^v!d_uRE0NUwBq$1hzJ1VT>lMz8 z_;sV!kykU(9ldkTTH%nqT@rUD1h9-lt|y4pfa3uaNXoP@uolo6h(j{{_?Oq*3|Frn z*L7Vy0<a5XCRu!)8Q!8I1_m9jk1RD0L<Sy+b}BIU6MW(oAt_l2bohl8Rb3dZ=6VZU zT5YWA+&DF0ZbL3c?TI8j_qC+oBCj8;oI<M3%r6W7Z_Ue3Xvw!+dpO|&23C2o%IHtO z_1+Y~(I3~mISq3lVZw^wxKt-KOi4p;S)5+%x4|aC*@ba__5&ZhQh3hKgd52uo8#^1 zSgdvnOKgdcpSq`~cgb;O_G%Bs>pRc=MK=)suT+qfHJ$=hK7KayxUyS|g1EELrID(L zh$o%lsx_wfJ1dlJL`1q_+Ad>MCef`a8{bO=bEm)|5Y-HNF>c*I0QVDh@S9hh*z?u% zFadh%EVshPwlg2d#|XJ266(DhF!aM|zctB{Tb7FIrw6Bs?mV}id0p}9%`+9NzEKz_ zL;e3hMCsQ}kBir0E}t^foIz4;k9ucVJ})fN9Da&Mm$kP|VgLQ4t`1lh!lZ!VSisc8 z7wX^dJW2}nD>XHD$tlP$unN<{z-;7dwvs#!<GHc%@&8Qw!@=ENafaz~<`p}(z|<ST zWLDIHMU8HsYDraQfs6A83|u5~2j~H~deVaq*I5Mn#v0v2La4yes?yT%x-8*e1#><n z1DW`&MqZ8P2}GQN=j3_Ge@CXR<{0of{9?$?$<fwJ^(uPmP4OZs0u9uPp3eTDYb=5^ zA|fJhyuHP&t+VwN6+0)+^E;A9xvic9=y4H72r3JHH0#X;V4wz|RzL|4bJX3HxD3Bm zc`t6%N(&26k8Zk(K0sK0h5GvXFm83$-WTNq&xalq)!@CI-<fqTHEvHt^yEX(FpLfK z<560B>ep&?*T#m+Iy;Bf<qR#YuR>tMq5~GS0+R-70bi~LMh&tSCmSKa7N|db>+>RO zyRkEfEtHul7G{J^ww4JZq+wMZ2l4Et5v!ZjzW*FQ_3;_1(-|W$H#$1HK0m$5$Rt30 z5oo<Ia*yZ&l;k8Z1?saMqw#&gKOuzkl9u}S%$b8Qc?_x(_(e*jIwPKh6S%pOl5a2E zOIdq6L*6VrQKY1`!DtqA^XgSLQx7%ea@E=i^YHM#<o2l>_6v{t9qMTj{PHtIQ4&7N zC=MXAS5{WS6F>i?4vdKKg`4U!JFlv>@H>sQ@TCR^Z4yxbJ9iEOGUmGhOf3j<_&2-x z6MKEgh;FmdgZNoBb1ieT61n42(-I*HNlE0+nqEQ+MChOL#+grqq;9ItjE+toTHKH> z_3-weK??+j)GYl{z^cOJ!5iiZ{?uqc%49W9yscozwV=@ztZ9*w4;Cep+1^<=*J+@g zW*i>h<pWW2xP@)WKx<tpch>;lTb%78f8n%1e8-bJ@>U!t9bJ5J7jM;a2g2MpEBVu) zsuuv8fl@FSGHdfT&%`X_>b)%B5m$y@;5O$@_XeE<4*M;j9zU}!dGcTmTO_)-Ojf?R zY3dB@mjJW0=>lY8ngCkrh9A+t&$upOtg)bK9gIv9GZleBb~@IP80Dzp(o<fr5vz%9 z{=k3{HOkb>SjveR(MA3OxF4xF^j<w0AouqMPLz6Mg#MWcQld&~>uM6-Tbb>TTcU3x z6&SmlTNc4Q(!QF?WpEzNn;Wou+7Ucvy|)q+BqK9Z=P0I~X?3}AspG+Jw}^m|#*mp1 zpMivzH5^h_8Hy%z4%w%q-oEvt2tQ^*&1^+;`SN8BU`qPX2~)?x{BI(yjELR>3sP_- zg`HOU1}9375>-J|$+wqU2cYn%(O9Xa&Sf1ZJa^@9(sdN7*7Suvo>Er=oY{YV)eqza z+6!AUmGdNrR*xW8S6u6r!twOf3a^fp$aR6TX@SZOY6T(o2;DsZ@<U*tDv*uO&uk|| zX4c?LvA7jO1%<<=8<1#X)K3dF9pS!ba^56|O~(r=5g{1UvKGFJo>FiNrszpyEk1e9 zGw4LrqV1KHOAM*!wtY_X6|Gen7(!J(aRPDvFY9i6{ysGd>TJbv7e^PDsy=b^z_{Bt zZ`f#gf1LjRjuSgXoFKIz5%FcrsSE|BG@pC$YUR$*!N*#Csx|J|sq=h4>|fCxK&X7Y zL#~>5rZnkJs2O<hN$4E2Y-9~!T#Y5Sv@U{ovIs>&qs^jwHAzt}<M?qRqTT{i&x>N7 zBQV+)#`a`f5z=*#aLL5)iGyk(2oDV68^tGrdy{1@8*&3iAD*fW%`;sz8`Dmlte7tz zuI7Mz1|ZtRz<6D>MG;vJEPsSK&NQUL+Y1S*%k*_5_8n9RQ3;%kC)P)vjpeyLSs7yh zxj4V9dY?PbE`bc%lW*6l@<R_f=Hk-L=iQls&!JGM$A<nOUNCu*=stgOqmwY=9xv0| z6uDlMfv&ZufTeY5r1!^qq-f~?dGW~y4o}aCI6C@7```qB`_Ua#R>-h4gyHpOooAAB zk|J%>=wpFc3T53JHL8Pm-Z|TQA~dNmskqmjdX;-UCG!i(sV=^w7LM~lAMcR<>lnl) ze*519wTH7iy^UGkW8EcmPV;K=%+Xhf4_>;|cKlW3!#j@iPv_`wePufI#3mr(-TZ{Z z9O|nDlj&fdL08WfcH^mqDO$O#US!d?5dZJ#0d;*tYKznIDhkQjXLe1XuOI|iAM0wH zv<G*e8`R&rx!9nu8cKTr`99H)kn)X9)3Wud6U9J8JxfDlYJ2|6a9coN?n0p9cfZz0 zS_8skQ=^8-J=3N%f=jmIckS{mo=F^S>dq0Xa9K%>86TzZ4>3JLSS<97SGK~KK|(0) zp{5!iO`Vowq`J?Neb3#zce7b^Xx51ELqyhgcDVe28)Irq9gn{p-l$&=X21^w#W%4~ zhSHL*<EnbmO7o`;jVnFnLTD3iL+_R33%u<Qb2@RWeX5zgE?NAZJU?FN`pIv9ZrB`a zH#9Zb=s8A>g2s99b&G6xcr5O77e1)eIH5<r<)rgooeSEeV*A&Lg6REC%2cW9x~4>g z?Y3bnC_6fYc3v<#e4-_>d^5XKvRpDoo1@P~MZfpx$m@d6UA#oOMQ$gK=gF^x-p}7- zmp`Ph(DlU>L^nzH#VL!r86+QhEphdVP-+(LB;oNPX}MSAw(QI~1&@ZlUCf!|5<E!w z{ud6JD30pce{Q`b_IlIizId|<Bui}F7L;XJVuj_|>{Z#>{$$;@+RdFWMze6RS_8B8 zHHRe6$E7bQ%VJCP{At1}T&jbvm0okbL$g#yOs-qgXLBwSzE4ENs$yOzlD=h@(ZfOg z;FghTp2^SvBC#%~pFPAUP0euKr_8=IHcKgvc+r#Osc=}CoF&7B%=~_9?p6H{%ybJn zkY$fXS!MO?KaR+qqEVDVVc=+#xvkI9K-2|srvMcill;xzGpgIk+i6@Sb+$%_A}t;! z3#`%^C*ue5Wt|GrO~0?~e`XnXxBIV(NvJJsPjZo&Qn;Ae9^T(=bnUh8kUr$D_(U65 z`6?eDy}Fo0g)9rpTpfyjNLW_KN+;izIfJVswuI!NO~C=*A|1kSM<4&%)Sa0pU49c0 z@!U(fo4-X&)S|a>_%KUi-z|87A-MyRQW`6m7z0eEncaxg*@>rp1knn)9O_6ED~-uV z?acQU?XJ~nLEQ*^wH!Vyo~yWLHSq~i-PJs2x8Iu$Nr=B8w`Ke6hTy%I#se`W#ZjD< z1j)iGu-GhhUkr);Q%3P`-30>=XFBY11y*PW{z`VXV?g8mLSzp|%Y$5ef8Xpsgr^bR z@*W!=!+g%CMf70xnKlMp(Zt>HY$fmMY+pupz@>f3hIu9(6ziih3ESJ2gg+@9xD$k5 z=Q<E$CTLWXJM-P|xxpp<d7l5#0|)iDzc|+r$=<CedAMhFlZ0Cnnuf-h{Tv@QCa3`> z^@^%|`66B6q8Rg4*U9+5B8X?S=&X{9;s(hc-+QNG0D~QnFQ&q|UelS5qoj0cP#&HW z*D0-L^f^&3tSdUxYS&=`ssm?reTQdeFaQJgIi~@2f<)vPmrI8E+^^LWJRrB8JgXv= z?>7gtYE^VK<z4eruYJQ4<c4KqvtC=^?C83_d(V`@t^KduRI;o>EvH-%YbCFu_2{?i zwEROCF02Xp3c03cGG^JdrEnIu3N45m_v$m>Kg#0jb?%iYXw98!rxh{B^Fv}&1~#)} z$KO|g8w=J}Swi90Vt~a$!g-8~y;C{p8aoTJy{T@eR~`{)Uqo4&2CAiDSGK<R>95f$ zk}B#Xd9L~f_XAXRgp#tl{)j(Ckk@#yFQ*B_UnME~M^1Zf$?|bFGpq$)dwSF%b=gtv zFBHo=WG@E%?oG3XGs?;;scw6_0jGFEWI~111D1E}hEn3=?@mP8Md~=MD2oH%bL`=v z2QO-4r>Cbw>*s;NLvoJuu5xFmMy}C&9mgp~F^_6r)8iE0<E~rjK=eo|nJ<<OScVjT zW5Byd_O4L%Y%?#s_H|%DJIZbGHB?k4Z_Srvj!$G(>}pt)Z6qE%c<{r=h|Hutori{l z<su?dpVe|<`1}BRZNPE5ff>2YA)`H=-N=rEn>r0T6EwhQsbJHH|N7>i>QO*P>myz= z2rvJ584!=jDAxe-3eSaaE>G!)RO_;+PG?EbD+5%+Ff|@#&RI&j=QMV<`aGTM&-bDH z%#4gv`F$2R;kADFVIZCvuGW*Bny^uDlPEy1=$UEe)F9`|AiaIZR_|2V!N|N+sk2X? zdh~{h4;eLG%5VoxH`sS+vU7dDEI(of`^%ia`yt;VBHCq?lao_cQksOCKm`D#(3M9h zlS@mrRJGAT_fFDhQ0h3#)9{+L0iJ9cI-jP3!3yp<7nPJ?Al@%tEuK+QQ@a8yg!z-w z38|?<9-8<B@z1GYdFJY2D`uI<G^kRLp!^=50-YqL>yMn^f&fdPSrol&q^zPc4Rsk^ z7T%OIp_oh+G&+y-=1uOg?>Et{Y3e}fXvanfo~8Sl<nHb+pbvQ>-1j1gMu4f0`~x8K z2@Qcv4fTDRQ2iXr<&eFrl@*H}WeydCg$DP29K!b%$WdxpRvw?QSw5f7z&Q2%7~Q-2 zn3e1mk&Z|)Jii^lMUZpy;CBXgm4RDF3sJbX7IM(RUbm;L-6s*<G7)QnLnp5ODNR`! zw7P}mM^Rx>W4&n0LvMQ9g^DZC7+ZrNM2!!*KN(oJf2!x`M}GpY_aD1z>Hf=$7*tm( z;Khp<AEKf%w_m&nW$6Wfn4h1v=-bD@z(DvsPxCa!Mzq!h6eL9FW@po2>^Z!T4i<m- z;(68&FGI+|$qDDM9i*z;Ny6J7eS)p<mX(#&uhmr*N5^6)8j6PQ(!gg-hVu}{YoQ{a z*LQs4Jk`G!Ffbx2jMo$hNWB3c;v<EfrlDU$Ks=Ck1pK4k<mBYo;(HU?+7uk@?ZYi) zC7LTg#tnJ)qJVCb@d<t@%rp{Ze+nTDZG4WFOi8<<YIPgAB)?-x8iPt55(sC$Ui2ZG z`P{yAls^Pr<3&}(<Zm=bLCf7JYIG$*JnkD+y|x{1jB&^XaaXPH)PJY`<H}cGnuzcS zZs0?SOGwO&`im%-n4~fon<@l2*3{2H(969&J#6rKZOBOu;_>2N-&oL7jKLia&Y-KC z3ol8@sj07FI#+!!NlQsB*G@#4LQYwu;_*wS2rCb^P;P1IU{=ghKTSr34y5tlmz0zc z6QAIQ+EXwXCQzC{&1dvZB<!Yyxw$zt^i3Yo)5P`Ht*D^}L16GAe5tvmpdcAzEF?60 z*S{~c`mwqBF&ZK{uB5mLOW=@A!?g8}Nl8f}n+w&&^VRaGWZ?;`(YmWFESOf2J2(7G z;1;^0Nw`t$Xrf(5vAoDdHD)lUDz2WQtuH8EU(@Z>*Q-zLWt4PE*weVPIjXbclpV3T z+Q$VsPjE5ZNfs9udp|#Z*~0-H#hG~RNF6rUF&CJtXRjC?6<DKBPsdQ4GYOw3$hoD| z-pPrDi{UN=cwQzrS<Qd|@-t^*A;>d=HY3;A*gi6d=b18FSXh`zN-5yjv`uzzK5eFh z@2TF@xo41Abw`ZE9|$uWzZO@!po)39Ls4#OZLHC3{0*!I<!ax)eN(Wp$%W<?dB*Kb zVa>kY-ikm10X0$%WEZ-02Wr~kDJu8xztPjv>xh|GOV?d>X_|N3JR&`J;G68=qmZ0} zf&u}%xwIGC&iL*kML2)~O6^~5mq+V08mmzYi>oRIDj)BN-BD7~a<1a16+Xt!&i?wf zN0*T8da9G>kmm<sr)T9B92^`{va%`$1_lxQ(Nh}*LkSLBN3O-AeO4LLxt*?&R8==h zWSG-k`_`P10>1Z*=$tc9FCOq4J538CPGYI^&RO!)2|I#3T^*%6FBv6k^QsPkKR-0; z_U<SV7kU^kkg|1^EN^m&vdQm-!K12#wJFcFUDIT%a`-X$^5a2`KZxLQEp^rUd@IUj zwWor<<rEovsk$KC4of*nx}U%OOhBCSvg=<ecG+0@I5lXU{9C@!i*myDF6GxhdYy+) z4ia_MQbat>VlmRO_=M#68x@24B?6qu1#X{XM~_ldFX)YIN(Y=NB4H&wl~oGyR5dwq zh_iWSPitZR*nS|wTqY;FqZH-3nbO1I9w=+&njgTM$pzOl|7Ry}7*|X1V_K~aDXS<L zsUC{Vx%`r1{E5j{@6gFS;l3{8=6tko`F?=$MQius`)Qs98^n@L-gFH8<IkQqfb=-E zuwyQR@pO-280|5>i_o?VJ$<unmWqTa&FmQZ4ZT4!zDK7Z(+n0?3JKizn3hQ2J}kIh z$KIt`Yomw>G5_m}UisdTyyWTlB`Ymt@A;p{%<}B`v~us2&$daM@$|XeT>Gkh>6EA| zG%lIW*R<dk6nS`AbjJP6-gYbU*sWXH3i)ZA9U9^|yy*<jq|JusT_g;!xE&UjrEBV6 zocExv9PeACLJ(i{+l5t91*Lu>+WWGcg2bWE-?#6|MTw%ykh6t+&Hm~v73bb_T`OBN z*)20_y%g3g+V8VAi)!xdNQ`vJ2cVvWJ38x#N1pteB9lq$1bZk1S%+WcsaW34<y@Oj zMU+jm<Vl9t5(;r{Rll5obG<u?6-}i`h<=m&*IWERarO!t$Ak!ZeJYN*>Gx&)$jf3J zn{He#=-j6fodqgk)F~Gg3jQeh6T>U|nOVbFxR1cmX1Nj@0oEh;0J|W%K!u^yF!}5g z`iHkypZ|S=y}biVu8b4%gb?S>%YQ5`kw)4Nl`Lw`DNZC*v)GFk@I^!P0Ba<HyN#If zqopnRv|M_<Xo=UP9}C<pFSAh+gkwbftx+l{_>&0|lIWJ%WB$Cd2X<+ixPv6D`t!D| z8=J~V1d%;*@a)fcLb!A9L5VDQ-21^<TR?%ya8fgMbuf8qTKwm~KKZ`C%Y}p`C+1us z*dsiWNT%v(u#SoC;oMuNTeZ1XU-ThCb-$3%*ck02B&gP0pURPv9yB5N=B8(9l8y%t z8YUMN7B|**mi=A5Q&~9`+PWgE+s#*e`MY|_e3>D#`Y~HZliiX%Za6V18EHySpMD|) zKXB|*l%Iv~OBy}F)a2xpFWI;s+=NnK(y~Ko4>r{V`MVka_OacWp0oU@Jel5Whl^*S z=Y-`_o7Xy*1|!ouBEn{=aS-mj&$1HO32-9GOZBo=R{p?Sb%t<+-4kniYL(~c1_>C$ z?z7)68_@-;BSImgUox6Dhsy%ji0!c%=GLe+F60)8aBV2_;#wlMH*V-#ZcJ*XF`*kQ z|Fy7c_FoWr>#2B=*Al_i9@#D#yzx8Qb06?HHJ5plNw&imyorKA=Ouc76r8Y7;j_7x z!>tkAw&M+3{ApKMRU~gmB7(pN%SEYb{NmXUF4g*0sX6e}V(EOMVeEZ`-5Wjc7cM3L zx2p~@Oy#bNwts@E?x){s76nkV54D}}z!r5ag~9=@mDwEsEkQ_PWjM&<6H5?+=j>GU z>&E^PG3j#GCOFu2)%CirmBSvP>E-#S+cV_hk^8DS+wo+FW8OuqiJd{g_2PTqLM?)# zL|?tadR3`z5RXWYW9r+n{|;2}{P<qH+&EiHV$EIfst^}x=z9c<WT@k654W$a1n(HW zw@mYljGd9j3(Z=ig?MQss)Y0VA>yMRqGDV6gInKZW%5m*sY)Cr@iM~9iNVRIWbf>- zJ{7<1eVXw3Z=uHUG|@b?BYAc+8aZ*%=him@lm6R7!Ae;E<kH%%YLaW=>G?@Fc8%Px zvtQk1;5u4ftKv7PH@X2ImiVoYLhl@_#Q3wg%=EqPrQ9k14XGi;JyABh$+HXAHx=^C zr|dj5)WZCTP202nf+knkHA~0<l7i6tYYOfUG(}{Tg&-lgg{#Q&Md!A1E$Z(f?rdLi z!q8RT%bginw7u>V^k*^(pO2E{bqu_f8i?rrFNP%g&$b&escbL2|8v&eDOf~VWZt^% zJ^?S8?993J$&4Ms<zjWH9`KHS!m6qvVF}R4p4tR2u%b{RTSkp4BfO<sWbdNTx8Ab2 z63+SH<z}A$fgg@~r0Qo5Bbz<vWM@>r`IPYTVVTq$yp8*t#Zx9H#|a#<W8O^|2-`FH ztLBf?XjWoVh*xqQ#+v`f(2cx!#%Q7b6xr#yc4h5Ne*#J%j>fZFRNUIvWn=m03U+3k z9RkbLiQs>6k68acjTe|%#i0i}+@}CO_|xnC#b16cAAdNrIzRv)=DVYP8z;^o_zNtf z0ILyfMRRqdW=wh?jfv*ot}^_|`)i6S)AhM+evKh|3gDFEpK}5rl)B`5&eeJ3(l+i( z@Za<aH9^$xgxP=&oz5U=Kg85yPZPifb9WSzh-e4o8nohk^B)l;`^EX3Q~pdrrVa;U z<63xV|3r60xoYNgk;MNPBT@(iSZ~!_T_0Juu~ACdf#8DX9%$}tD#Hp};@Ee}IdH^; z1-VXx!R@g4&M#$envXz%<WG`5{YE`OwE%=r4u~>EA|(;mWR1M}jG^*PT^UfXumas^ zt%3f1h@!JoIrTdG&5li<NG3^*m8I}|noutfUysTUm7L+;8<0Rin5u#H`adQau$`Z? zmsIUYkz2&f)U|yzPx>SR!UT;yP0h&2Hhl*8WrK-wUS97*jh)8ezgN3aXL-q{ub|vV z-26?r+Yc}sGXE9s$H4Z69a`-q*UO!WE~OMMiwekIHS_W`vNisoDH+ylH+J)^GvyT- zB~4uuPLm=Vb^rJivAv6B^~g?RbFU2j-Kny+a>B1RJ!Ge}roqOzO;N&5=jcSNZL=~H zuwd+i&W>HfHgk6H>_)aEd;dlZJr<I&)50dHuFiY%h^_eNAG7~~_pGf@!E(3WAXwxx z|BGHeZ`-pihLRD-f(6^G00td2Opr6V#54F{buYCEoI4itAM1bb{U>vMF$pMLUPKX= zKbR4Y19KLn8%=(E0RS8MP@!oE(wsPtTz8U#+rhg!>qUr}XT6b@4t9JWmP=rKEj47i zoo&+>D&CuKAg`bC+YLBKu#@M4Ly%amgw2JZYO;EUQRt7dqC4O>B9D;y=o#!^)n|)b zfyTI^0!QC)f;E*MDv^Pe5o4~|;<$A*S;jN6w*+k_lkU<S6A&-c=w|etd*8)oY6P6P z^TY)5oSIcM*kxqvpXEe1?m{4FZEfAAtg4$1%mdTST;pq3ueQnn=mN~sE0uck0096} zkr<9viQqW8JfC^kTYSE3uiSNg_*fZm5sCl#=OIw#%u9A`U6zMEf32+rdwY8W)N*>j zX4KcC9&CVnpt|wn$kjPD3sCYLw+SWy7at=B$Fw~rNs8E7N#UL5d={<ak<!@GXL#A| z_J`7grBV%Hs@$ug1QS9O2yUXv_UEg6t`~Cu8Ss2SxP6VPw6wKXDn02<APHam<HZRs zz&lo2s!3TcUlt42v3|?YV3KD7gw*2UIvO*-EcA>Dt9r3goP=+ic#c6sbF&;&n=3)+ zd-lwkOOhHz)(KetHLVEiZ&!Kf5sXJxW$-|y*ObUt#5=xJ>@Bb++=(DV`GSjbXU7OQ zZl?PL4SAxh%e||t{3(fD`TBB_Z67OKjsMEMS*m?JNR$BPPV1HvV0fdd@Q4V2aM*%A ze*9KlEyl*i)|;j8nTo-TO-)^uMBWCZoc#Ik>A03lNlX14pUe31<5AFu4@L<1Q0kDw z&;Y*$9C1Zx?o?V<IxTbxb{qbk7{!_AvO+jR-^&D*-bEN7GM?!${E)xBk|X7P0*Ti$ z-Gd4DhEGAL%s`oVN=X6Ne?s0M+#8Px_x_W%1cJIZxrc>?F&OXd?l^9x7m(A^rq8od zl+;;TS+yFX#=kZ-$v`z#TcOn`lwUDQrsiufPKEd*O2^Cs)n#bGxAO|8$<HO&YHw2i z2JEA^(++{olGBpuqm^0~Y$G~GKipiNnPBhe0NkBTvbWsUSU;17i0F$XtB8mW4G%!x zM~R5)e~!&$Mt?QJ4`COHnJIb`%Q)BYTpfHvpdp?RbtipKyZ+kaRdRBnn!39BbWcu_ zHOl%!wxK^mifJ$#U^Y*d)=Y=)bOFe9)oJw#1H;|Ffp3#3kR5T`vUo&WnRM)PY<J6| z#|`Bw9tAZ>hpDo02~sa)R!F0k76QN||Ke0^ij;b}aN<;Outjv6VtyCFgLIs0>MeAR zY+HMVS?fMkcEoJ;IeEI)!rPdSf#tXl;`;}29J%oza^w0Dqa$0gZtn7{JBVONWIBeK zN<N4+Sq0<*5w#lS*XhjMV0omZdJp^U8)pY;#XbCl)tDd%HkZ8eJ)T^2_5omI=W^n> z{u%mWdBn4To9hR>ZOx(|WI+^TNRGkcHccCoidb`L|HCENs;;H|U$gT~+UrA5aU;RQ zblcJSYur`F%Lg=ecLWjNf$<3cw}$@xgq!2|7_l*#>3;gAJ4YKbZr|jGQOXMM`rb7D zw#5fkN#$Tr=bxNgvf_!8Cp)H+A`-zXR@8ObNa)#j@W39ZsFj?e<{sTcLJ*-+moXYD z!UesB$EbdQOw@jm07tG)$G#+Hd~S->PHz6578`te$dHgLDXS#MUui~mFXGT)ztyv_ zV5x0~&nw>DoaqEIi-V)%H85NN({MX38!@U~Cx(sWrYJt$*maU@JFBV{LptcD8?YQD zIM=e&EX*wFII>v3@?~dDI$+R#2d%y5cC6z5_AhUCE&wJR92~Az>b1UVms6eTN)LLJ zWdt06>DD;UGuJ5qf0eBEBvl2Vyye}$GM_lb0TPG9ji73i0KWw=3_x=^N9eH0Ai3xA z^YlJmt*YxF&O2Ze$Y6{$jG6-K%+K-hM6jxXOfm|0@4kX{5gX(+)2j@tjTGB<UQG&* zg?|U$Zm3P&Ie^NMU+^|)Y71``31mRbtm8`1OSgZwT3(V)SM2R%GE704U>opjuSsq~ z3ltmJ4w4Fh<)E+;*(%6{n!~wJ06iTK3ky3gw?scb1fMM#2oM50%kA*juZ@k;(5bB> zSl9WYWby9auAD{bZZX3YVEi~Te^E9`$K9d{M1=1cTo!h>ibuRy7$k?>)*_%4WGZwW zLmmML2hbRh8>7r|MFElmA0B00N!1qgrQwx@%>eX;p5vdGgeu~X4BDtBZpR6H0i)zv zze_=+>-1I0wwrRI>5$CV3|Phr&QAic{gI(*XPhPih2;lKTM@(#JhN-pu1UdSP)vmZ z@(>HW_-D`3WQCU<;AU!p?!icQLoy(v^p{i_G@%NJ7u;K-7q(kpTCO20-Yef?khCaY z^w^y*o?(zgloSgLfY9c4L~jA>gA1?~aNe`@^vI{66$Iq<^kw8zfc-FxK!1dn1x=Es zvZdKOCFou47nW@L%p9R7C!?hQ?plST<?1uZHq*@VR44>n{4rsSJ>OKka0d{7*k<cF z!*CeVbRQ8E=aV-hBO|bGGT16=0h?r4_qC^|>92T6<aJL^r+Tv$-;Z+HOd(`6+F16s zq8O%zJ?Yvm`wLx?bleyVMnk^md_RWXElrxOTn+9N_(hxXPlngHxRgLV9;7sh0QDo{ z0TvZE^oE7!nn0lw(}R#`_-K)lk;oN_puW-pNI_HCZm(%T{4qNFTmGV}Aq-QmC!%n) z1@zk)8`Y#DEn~s-rAuC8Tl3ryfSx5MN7M)|0tL@gw8*CbF6;DAMFo5cxaVX?>;2(~ zT!PlE5q5J$o12(S21%TbQ~IFm469^Y*;;>GQlzs&!1C<P=1C|Y3}7hR!U`5|reZ*$ zun`z&+4*&7NEbc?R87ZCP9i6Ix-ZEevORI|STN(%sOc0$PV@7bz;c}_v8V`Q&_<61 zInEE*F-qDEI3z{7tg1`4K`~Cs)|{~Ykru=x;k2F78K!13%iA0#A`l=K))g?@w$C%` zQ-Oy8*)}@TQ$!9}AuV6uUxp)bg^y1Sx*Fxf$C7M=JYFIxsY@inr$bl^0r5zm<s5qZ zTLH_PrkPV7H0E$JL=64dN`D-LqyVBxP-unNC*+MoXVGHx407zDPPO&(<7z~yu3vv( zC>xmu--P#9yguT+GQ}KqKft_b!(eBAEEtpuDgu#ONy)Z79ar^&e&-y9sdhP$)>=y4 z>#C}%uyCl5Lv~eF6|82|-4Zk1mf#J$g;Omfc9c{F4h$%q40KU|&nF}#WHWq(a&n0u z#URN$X!%k{aM>YL*eM@r_$moSex=cU79}zP%TQ4bi8!`E21GtvX*uNQ&m&tzDt_w4 zqLQFghlJ|JEm*M^YM0t&1!dr`rDbJkNXd3`dFVn>fFp3s;am?mWkx!W9G7fEHH%<M z=1LU<mZ1!EI+cZ#ZlZi^RZ}KPMEk&j1Bl{IrzBltV!8(_A#WLYiikl6w7kym9BN_d z=R^`H#bjR*icwNk7acU{GVw$C>Kvpgg_pip_K69vbSM_DMLNORu2}h)0k&WhDzVX! zWB68IF9D0z`O_o;&<=)O9z2^)jA8T3s3f>9pnDvANFZ#rb>uXQSo@T1Te~b&9s{E> zS186Vv{%Y71?`1z(&=Yb=ma2VW#+}Fo2Gt4WK0hp&VVd{e47Flzwik<fSq}{zPsh2 z4FA%1uqTYcTCs8>yJ`VQUY5!~i&U6F(s9gfuf56BFAF)?Y{iqYq588wB?HOn=rTaQ zKt5E)Ro8bH@<nhy`C8emc=r{S&&CH0q?NQ2>|E#dbs<$N+4eHWaHbW0j8YfA#a^<k z0QLyEu+$Y3ul!u#u&wzAJ>3nqCq;skM99Vm8Zr1TQaSBza7QKWZB^{Ghgp<bEl@cP zxp?T$M(l0)GfeHQ4Ymj6`De8!UR_w2fG(4@b#;jN=LgID&+Es<asf{pq=aM@`6t5T ziiVs~u)s<uEC2?ZRnl=YCCR3FSbw(9VkXoyBZa>%(g_Uq%8D}RpA{^;vzY>2z>hWe z=;_ad=X9ReH;u~KnGp3r<!_O?MGo3m+hbL>sGK&ZOi=6LW<PFK^M?&nX>Nt%+oVY* zo_YFb?d{CF`4avX<&p^0Q&@r-QdEoK_yvx9Q&kdSXDkI>h9pSVv$^LKy}ku7+DG~O zU`x{MQ(e_jN&cc4PFUM@WYKgdI}!nq3l!Tho!=A!-(mVi@5D2lt}Y6@3O>QiBD_~9 zZW$zO3Vy+?<4QHZCSE^nI2_-PGR5{}l#PeNn?v%+LWUR@A9y;CT?Y0ON3|tZ1?7|O zf~6pfQzWI;KXmXQmrHMMsQ$AER6e{i=ExQo*x;aZ4whfDi6eiNzt8;uNZ~zL9Uyns zq4FEqF#LukJNbPkep&t^o5_pe>8pgFt9c7Q*ITbv&EFTJpN7F;*vbj&1IhAd`<wW) zB=kd}cAli_1G^(5WP=?a9=7_9%I_f+impEul~cCx;=eV&zK1mrz_THl&K;Q(VW-o? z--pKOU<%*|;q3nRgUeI@J$zU{t)jx<L6i>4r))YE<3o5UU}c^BQNKTXS4D**ok*SS zWVE~|wg*zT(~&u}B6WkVB|3c0SZEUfAG5c<8$?dVM1}1srr#7o&-M50tH5F{cYU{} zc~R{j;p1byPfk1o9fBQz1i#*ou$l~S0-6D(j(rSagR2YtectR{{Dv6*x-Jnz8jd@( zr1biuqudKE{F+c<?&pAAb%RE2yrl4<?4pJdiFR3HdCWqG!&z5bCK{^ybl+Q5ccOlB ziPw>+KIyj{dzy5D?;OHOX{L_~FNg|?|Mp8E=qx26pg}y;OR*&Y$t&7C@acRk84><- zb~bi8^;@XI%&EnIc*u)!trkOE5#9mKPx2lgnouKhPi$o8yJIG}+D3>Ck2HPZmUBzO z&4=hENANpjgYo1x_)Z1IaK@WH=M3uiLGp+8_JwWj#-(EIzby6&s=H_%llKajR(59A zLWP5lp6<$jx&7jDE^6nO1}dWuH$FR(Iz4@@L1XWu0D!G#1OFj97-h7U8$H35HWCRB zheqPeNMgf&D-t!`VT&J3hwipU*ci;dw+&NZsZs>VxaaYJ1Gh$phx?VQKN~2|znS6u z&}~mhV$1GX+FBumJNW0?VJo9f{^v{}|6q+qS(FC-reEDbD+dA8hJZdJ0iGh9e}PKz zI@`{v;C_981r(LlW4x?K*E#|Ib9J8QpzY4<At05Mbe-z@*oxYREUauwQ}S!g`_Tro zC?&5Q@T|fRM8i-{$Mi3#C?(gEs4L<$h+yAM?V5w-&k67+$HY)9phf#|i2;J_43!!r zFNz~E6%f}HA&G3=zD9^%I%pzWCHBgIher6f=p)pkw(k-nxVvYmzEqqcr-~2nSDe|| zensE)mD579sX4~17lV6qb#p2%={rP*S6IKPM&@`E(jHU1nJH;C<=##FkYFlQ_8IY% z>0*x((Nt_~eqi=J@3)9v?IS!2zs8jfByQilF^}*0gT1mUg>_w|=It$K(K#Tas8$wL zq&LP>-Q1JXunB0ofn0Ru`nu;8zU&AEJ99$Lj7Dfm!A#9S-tk+Pqdx)-jmP6#hfYjT zncP0j0jxjcpN#vlr~wP>_x3^B8H7EgH+#e`<S!<9@N#eJQ1=oNo)Kr0Uco0P3IJ}1 zp~T9|_R{U6y^qvPSI+a)K5XnRQ9kE1Gjw`C%_Mv3KhVU8=_A&q=`Y3?6!kupM7rW8 zz*xsmT3~o+9SJ80Bq9%s?XT*p63Uag-SE)#Y@c?zUJ38GBLM(%XNtbTtk{RU&VxX4 z&y$+}M~OCGzrxIXSwtdM^^^vw!O}JYNaHXj_pMnfhX8W!0~^C0y@O_^d3Jrhe?v(a z8kOAl<2V6Ao+~K&BXlE`R7|>uo2s%hZllOHy|D0s3TCBHzsnU{yiyVr9`M-Sd2e_2 z-X}RRldt^e^9?N$n;ab-BfHXv(zCO_-TQ<QCPwAt>JKO&fF`i(I%DWu%xIlRf-N2; z6N1~!!V8)Wl9-cuA#;b$w!1v~n;5jdxoV0Zu^>RCGwxY`ca#{hms>8qE*)SqBo;M= z-4bo><SmWSE@^x6sX~gZ*;T1vaOHVh`_hMn>TANgvs&6NJ2dFfX@->CT&*=>A&KVF z^|Ep2JgtBa5sLA_I$;*}gBFcvW+K=HOCHX<<t7g{yG?J*=b8q)sM2jQ&wi>FUHR@! z5w_BnP3*GXV<BL9A*u3acVi#>LwW73Fvz3E;|J4N-B=0vGe+ig1*_*SGNBoMC#R># zqPwyNa^1E(LVH*98mXQBq%8hD-y^$NjqRwCi{wCZ#t}5Cf0Qn|vUIuE886q=>XUN} zqv+Wcy41<3jqc%dS*_*tr5==dE4h{XL_Jn7t{UBt)~b=`=vf}N7EF9XiraMjpB4PT z;0+xOjf`SD|F(c3GVZ5sM3QaV1+uLkGEU3wnKS5>vC-Veie3g0qIZUe4}@~XR4~a* zX1=b-z|FfcTot(X{l?%o<-SggM6SUDS_MTKj_b0=Md^zE#o>lBT8e!e1opxo2gDZ) z=_daa{zNU9npBK7i>r@}WHB^kmI-aqeR<TTV{dT%wrSU#!ejZAj0%Gn*4AD&)n@aP zqjnZ)xKKv(L5%;zb@@lp{^liC*<Rj_D=-lmla_lY>Ev8&d);am&HQd!Y^;K|5GsD0 zRV|%WbB*Oji-d4-Ub{oPXV<x$)$^y~$EJttD?S7#l_biZi;od2o~~6Lzsj3=zuKcF z#nAr>t4?V0IYrOO1l+jk=7&nh?H&t+5H&oP+OrmZ+0Bi;dR^Cb$@638{kFOq@-WmJ z6Ux-?$pw9EYi+H%zwnOluM<)~=O+@J=0bXnqFUQx4<^i+tdHN#$(^Ihe3Q(!d3m@j z6iFn)`vue%6Hv8{*cg@{LBZr#QG0A+>CzR7oe4uJzGVgk)A{Aer!8C4jkS3K!X0*M z@jre3x5PG~!6b+-!lit0%P4Dmr!3cY$6Q%i*>tf@hM1JJV^3%6wy@J()8SYWDabIG zo4-G}UAD5V7@RDZ*)5>Y1|M}XX;n#GJwZyEg@Ly8MSn0V*mTyYZz$)(N0rIOBDcw9 ztFjrPd{_PK-g=K2dobW?jErLe@n(IBdCuYij`j7ELA<WW3Q&N*+!2?vyi;276OWHE zWuwo$__BC%)0F9cK>vU?x3ztNV`g6oJ!{*Jos8;}yU|@{-Ra-HT{G*8Of`%uRBLah zOLGw2g~Lx=d-wHJgg=F`om3+BlfYdU$2ueZkw`LZOj_C<oya-I@kQ_Dp5O{hY^+qp z-uw6z#iKJF^1@0gDk(cDJ)YxEw-TP7o$k3T1(Ki^&MvW?6L>^blASHpxZ52&5mkJb zZZ3mo!ZMa$s?94%6WxqgM6clu1!r%n(L-vB*o<~-{+LNDP<L8G#dQg!0pL<7I7q$+ zv$ITWpFtP-i`0*+1Blbzf64NnZD~8~mbseT)+&(e=N-C(9{vCLdJ}jk_cngGI#2bS zN=~PwBsy(EI1)lgB_X>ZdnMc03Pbizov4JeW*M?CW63g>u}mdo-)2m<QTBc8V;kP< z9&OM2{@=gP$0x!)_x$ePa$VPVxi(LxXh?>X2l^)k+1V`s@>L4Dws$<MkZO=BQ)Y_N z&`5i8jGKj{SrKNx=Jlt<lW7)oOU0nzU@fdLyHHQ+mt!Vo!v`$MW0OJPR~?=4^y#Ij z!|Cbi3-3-iI@K)%AK;weS5)c<=C$DA!P_2*Uz%#^Eao?2tT_F>W{e3X4?S4kUI~S; ztkZcJno;fV9q!-PF+(lHb!*}mKG8~wi&J$2N8GXvtgMRRDGl~d#(nspsi;Xa7Itu! zDdH-2mFFN4gZl^tEhkyU%cjRXfcpn^Eu;3aF}E_G!a(2X=xA+?`)~i5j;I!DE&QE- zVZ4t;(tbrfG!zB5sc)9FGitH)Vh<bV0KXcm3mZ3jKnj+q67bdxV8)gPO6=4XXAk9G z;r#4&QIfB;F?50B3Lt^AxqH`E|A|Z;Df$NuL<)eAvJuc}jx|7Ab;TG?Isl>5`S`Up zLo8AkIK7hH_R8k{gf*>d3>N09yS)xB^dC92_??zy`H0}+*P8sXj6i>{ChB!VNU_z* z)O|c{nAn!swo=p9W^`o-rls03Y>X_<o=RA`_ghqO!whUQ+D5kI1lC4U0&8^k6F;%* zL579_`CA(pUP%W9I#N?imW*NeR;Gh1J72$s1}qE}*^OLCZr`W)g--YP1|`b<CW-E; zx+}dj!VY^fO|<{Xze}SnDdn$DN^dwk5<8tdQXIaYl;n71aFBhxO(<*>SImF%h{lyG z47}s;*0O1$Yfxf$_i?OC&F*SL2sTGY*@+bCJX!LiSPHuK@NZ7EE3sBHtyft_C^KIi z(Phm8zccXnX52hiD$g;>kEa>a<R>LyMO%*MHW0@DQ9HjDa)FI4bhLqfkWaku`m23% zuv;{TWx9*5wg~O<|F^nta4_qwx@?c@Ms;Tnze<oz<L#xF7s^(KwlS6|Vo`xnm6c>8 zYWdb=bIa>e;%jzAjEuV_*_nxF)KH;po5+M?pW1cl<?RZow$;X+rL!p~guZy(bEFjJ z9e`bJVLwy@AxMTTZOcPbbWfb`N}!ZUFVQO-0eANtlGQ@M?zpOD1eSsLc~7|Uc@286 z>$S(k#`pY*#hi09u%3$vl1Dg3Ia(#yWm3XpinU+8k`u)T1v$977E|0`AYZr<j^^pT zjicO<{QPoca`HC)a}Dp|6+5a4VI_BFcKTkXYuOmux}gb$BIoL7I$$tq^dd8}P*I{u ztOUs-faU8ep5f6l)?v!p1UqLILZ}!7|6FNh(~;H<ZM+?Kw!BH{O@uOcQ2bu$qMb>~ zBQU0BMvRgYimHuOEMz+Aa8M$V-HW=!&m=u>xe-hd(U_xp0VHO58UU;B(0KD3RnlEl zi4{(`lre_K*kRCWb3L-I<z-`SuNT!KX(xG4epWM8SU8`t+LBFIi~K9li(BpdPLW8O zO|Cx5R@znQZ2@M%9-yBzBx-J`=}=r;43=~n*3m_!mF9m|H=uVF`WI<42lP$a(-))Z z<tdHLr7o5qDxSGwKNc1;f3n5$d4OHHwUvjbG+7`kvqLy?j|IDKvHQwv2v?jYqzyAo zOGXQ`O){AfFu#BfCe+jW>_qd9i_B!=-$Q6=AJvePnMM~2e{$?c-3vy;C7O^#<0?=F zf5A!+M$l|75+pm@uU+Ad(q)ntJbt?zGHTu%di1DU+sHR?m?V~Mm<kj|v9U+Ycy`O& zlLD*keOlQ}jsYC3-;c#D`e$8Og|<Jzmg@fJ#q;rOFViL_(E<==)F#UnC<bj^3P7qn zjK;3KP*0IL@e3sc8=1j2CkuF4<g<`O^3RKAwDw(2f}8@uUtPu}Gfh^oOpv<Nh{x5f z%Z1<Am-?t6@tB%>VYWEQ*>)-6CwJkWeYRxJPge!j`%WPM`v}RRs36nW#(7g`)V$5i z{Gg?yCd0n$FjRq~qdD_Tf7?(pH~;6Wg*|Z#ev+iMT97F!rT-Y=6aa`#s@)z-Lh!Q5 zo^s<;+g*`#Y{x~~!&{Y3+=)Q!LZczNR1Sh9AWegvh51xp^UIz<9SQSd>UW~THhzdO zF6#{mg_^Cmy2;93yl6N&I%;0MV-GXQuJG|*Ta|b1=qwvm%S&mw)v6T~5?o%5BnAiD zJYN=s9ZX9+1N=~_`GfgSBqA{Dny$S8ES-h@vBcudIp#XMd#^5KYd<p%r@cP>b1csy zbe<`xS_BmaQXrmo|2Z?$>l#DkMERQu2c#9%FMs#Zzw5*<f6c|}C%xvjahP+4i8;di zs}rF8!Z4c6+iTfByNskU9XmDiEygzq^MQZuAK?D;_9pPw@Hs`)k0?xnBVBuF9s861 zIlZ`BTbts=L~d82qrNXoV66Oe+m>WOIuCisp^fHtG+S2#GdnV$5wC6dY{9(j?tmBV z58DL)CT*+e;`_VQ_9slJ<hRS|mP<Us+c~@RMdO#Lzlm+;Aj}F4JD+ollYb-6l;y(Y zw(SbnHWf|)&yr?oy<((YxoxPISn5wc6swT^c7-ZtrX4|%vHO|11H_1n)5=14J2SJp zwbftebO1@S3$CIwB(plTI0l5ux6at}=qeVUNI+ss8QYHB-+W+~wA77t($^+_L&jjH z(oy`Ep*^=~L+KMTK_oW3{DRuIjgy%VjP&Bjf%dH6O|VhG)z52viPv<g^-gH$LGd5l zrFWZW1#@J_sV={aEW)B(|FD5<Ek(udwH0+u$jC0vRjcvB#Wu4%l#RGb(Ztp(4V9HB zLBXt_5A3ZzPFqjI4w(k_z3y4RP{J^}@qaQmSe9f0K@)|lqTy^8@W@s0&nL~94@|iy zBGpx)Y@cdlql1I<NF8&=J~V%a#-|eqFfT1nXL+nC|MIkeVkOEX^0nLoDn|yH%q)nw z+RMU<dxosQ#-dNJvm_aPB`o;ovzn-oaIqhW_dB?CF5`0Mu)e>-9`#+WnYi!hQ2~2< z+753l)ciBwoAgiQHEIGAW1O^e@1Zvv-S>U31srOb7$O}w`ngPRx6FfXq##2k8v&_@ z`TA`_<p!^WjW#($$SzB1iWMi7daMl&_V@mnEe~s-JFpFzGnp%{E~VeeV-JI?PO!>m z0RAVoG~NyFn=I=bDKT#801#-UO!f7}8<)9T4}5yXB9^k#qNyE<vu$4-ZFYU=!nCIi z_t+p6Cu9A@_(x}%JihE$+3b1gE@11Bvn*mSSw=06N!)qvwLX#-sejwf+%)?;U#DBT z>;UJ!BqJnog|c1u2IB|aipPH}!4BU+^!D!Yq!<My(tEv4!v6gaRLX&D6-GvrAG1m) zf(lA)YHDg_%}<C_sK$)|$ZTwEL5aHsOVvTt<RiTQY*?gs;8Brl;@$Ti8yXsd38rKZ zROj8kE)SD)Ocj7Lf`+0XAPncNX7743$h!Iq^j;1yv4kfJ(DTC5ezg(kx%l@BZ(yOK zVFVyH=*+VS1bpGRO01X)cvBKU6}3?PoJ|r_f2f#~@MPrK(1pQ_ygmKy?(XAQ7wW6n z?Cb*D-Ylf>`gcl{JwXwAf@VjIC)NZvco`hg9x6YoFG*)X_7t_=OWXg=Z!NbSw?^n4 zK3GrxcA;fes~SZ_pQ`(=PF1Bn7EUA*C^z_z<zq~<4>M=$-+ERWaeEU<8_K)#ZT1U! z|KJhxWbQU^Btd(%h5kp|BPB8Ezmj+`4P;#$fuN75lpKa4f)dNz>FK$-nxUbg&;6gJ ziI`9NoCp0BjL}&4T%%SX7l14|IXU{E9gp#xlBl2oHd52mpt4G*AtWU+`;I$vV!2?S z*o@GhK%%198Y0p}x&jjmyzz|OYEC&f%~%5J8xmMpc=q?--TM8-$LdF)u$z#oRHE|1 zA1}CkSvBa9fxPwfM?WMGcs_eBG?dWA+zE!)SVORpHk*6w3rk#iN{n@?S;~~oqQ+Nd z6!5O5sY~b*5IdPwEoRB`8&{i00Kn48E}}_CM+Zog!kpgjvuo(YD=8|z0?kKjTiXIy z`HlH<d%Zjv%1v0olF^|hzSX~*B*e#G2E#3&5NU#L1QF`t(PSl;?)wT2)=EKhas2I| z6sxVNQ4D2c6RUP{cGmIoDhDA7q|bvB;G?Z=WF!CssHllSp&E#4=c^MkO^C+5Ao5cM z{U4x1lO-bHVhO_-!B`Z19-Z%r5C@Sn%j^BC=TFC&ERJ#avEp4XEWeROny!<5%zBTY zZ);!=93-dh3;(8F+>RX2#WR84vVZ9RdmGvGH#5$6iWNXr2sd&|D_@yamS&K&{yz#N z@Gu+ZKX*<OVIIAcdkky{=kA$=PJA1a57DqZA%Z9v0W$9OVBlwGXMviOgkW7-H*dZ+ zG&0mSG|T{@mgmA?I3$#>P8JggTy#-QEv<za1#Vu5B!cq2H@wOi?FP>S0@~@mc5EeI zQesJE?k)(?fhW4Z1$-&rfDcLyg`x{|c+3#eu+UaTNi%TiK^c9j#GIJKBKY@tO$a6t z&R&g5FV3@z!Yp=*on19vKAg6hWgz^g=JuSiR__;H8|#yiktWmcRn+0A{5%eXr+b=y zfq@k0G+Q6Ab;~<pBwz%3G2Urv9LdrDASY#OA}Z)_a;1mKXP7aNN(t-fbfc0;+&eaQ zc78;Vq@Yj-_X)^H&`Hc>t32qK_7L}T?TZ7u7~o4Cs;aB6)dU4xLlc!s1))>c(6C(( z!3w$@yFn{jJdoy)3rR}qL*GJ#d<Ggj;LF7WdYYD>c=ZWPHfM(*n3U(viJVdd=9Ld+ z9<+48szd2(#=oe)0S>=uKnJL8sL`m6k;V)WPVtWZ>v&Ng`VbC+Ko9r<?Gak=6VN(| zz32^LbkSNbmN6jaNrMd;sir>-7|(8QpIo2|nJ@!K7U{WNr!rUMBUW9=?g)hyL|puT zmuBvrP|8Td9Px-e$$P(Y+nmlHpg}tMapM@v7Rxc%wg>nB5g(l|z2WtD^n7E{or0k< z#><~M+VjXOzZsj3ALh=!-(Niry^BPpl>8R#iORdJ*fLc;6|5>tS&^HWo?Qr!@(rBL z3oz_K^dom|#F5b4O2ezH+Id94vW&5fja(cUSK!{JG)c{G4SDj7_XQR21et^sW){(! zF8@88d?%alRk0(I7Fpc)=;CAt0Z9KWr_U8c_3a1{K_V)7%+!fZf;E1;gGXIo`^|4P z27B;(%X}1r#LniOZ~tB&KPDwA&+om)Ow8^OSV_S3Mdl6ip)LfnH*<wcyV-jae3R8; zvq0fE`8nrGadGj+)WLk2^5-w6(mlJ{qonaWa=g3Tk|xEd*FHns_0NC+p8(%mW<=`> z5*QF(@fxgWrNQXqTiCxD4G86{WVrcXG+-X^prb=5;NO<=r82OlI8&|w1mrhQb_YIv zSyHn4-rLu=uC8v}#9!A~Gb4j^H!p>Js}nPs@^mC?g;7$7Mvjq3ClXLEJug*mmq1Pt z7U*tlR@)>@?I*0hYy(2^LC>C4KUg8~Q6E}vQF73GCKriO|D$mAdwBB3xV5!)og7-V zMFE_wbZ=Uw9$cUGYtPV2fQie%&48K20QUjA#e9zXEPro4*STJ1NU{cwgW=&FOohIo zVfVlw_)S2v<e4CNkoj_!9DwzuZhUq$bDi6Yq(k7I`TgB)X|@4N@Nw$u6mEIBSL_QE z@Y3@?mm6e@@f>wyMU8*v(q9{VCCgDrrVI`C^RTmvGa-){vVPK7?XD}CO(Rx8i7447 ztNiWX=8SSrXzIU(+z7+}cXn~sp8*}Bbu~1cw7zJqTEHl~*`>3=q<Z4AGG3DP&EUYX zdzY7<-g@ZPLbi$M*qu!XB{>eF(X5BQZc-7%ZsseTw*^5sObn6!!NJPm9nSpx{91Yu zo`qtzH&j&x9h@=3uzQV??6tA{2)7WIo)JVw<E?FW_C9Jyfj-7ZKl_!1Vo-bY(@jaV zUr<<dVyuh@sMst|gY4s5uxuG8<G!I<iTNFz5*`M3CyuJ|-Jjc=XUeICK|O&K17ZI= zXE2OP#4?y!gzJOV+RDoEFiBY3D4h@-v~*JM%J=Xx&0;!;Y_U8JQJgkS!(zOe&Ml7M z2ydP`e_K%bH&H=+^?SE|No=3bK0Dku^jGh@;KIWa1=Yvot3FzF6xuV%nh;Q?=Ej4< z0(<l@si#f({XPvJeaco-GUnaq|Dk^;CH0n@AyN8HXZv3i7O0Se{5%4c$YM3C>qX8$ z=JfgU^h~k4+vfCvH-<TOsz$x5!2DT3re5pMfcA@y28YMWSp;-_I@SIQ2_EcCQa+6c zBFCvMs6Co)2Q%d$J2itQ%Gt6JsU>3@DND=#N~UMvdvveqFLE-l?687|y}tTS^Kl!7 z`!CKJxT0gayau3U0l;ReJ5hz7ooR8=i5U}s1bq{A(*TPLyR`~+WyKW(UPbSpsN1n) z-%c?oC@dwcuOQ_wpl@nm@Z@P)diq#oY-amoS%Asv(9%n#eSNu+-d$2&S9tmOptq|c z)VpHJBE-hW+i5xuO4stD_rIW7U%M8=$Cn<k+`V7g>%0Onut3Iom2M&4hZYs=efS4H zP?kBW$J6s9>4(h_0&`dKeJHa`xW^(I8(>=tGE_xL`k1G>xV<y}g`1l3H;N#DRB!Di zGSh_gSlREQaTdGIWwr5=e~Bj*>C*ENQ>7dGjXW!kK%WAYBVtJ-xz@%l+r!IKLvaQC zUwu)4mlP9LR>a51_rhXL;-#h-Z{H8Ul@&GUa!H0X<KkR=rMa|J%5|YKF{0e?Jjt<F z!f8#n*YHhW-#I8C6QL|Grajb28;``4KznJo`r(+7nFNWIJgf1%#jf0sk=|f;u7}g1 z-CN>_NIJ%2WT1;J?Hx9s>ID&w4)eJX=8v3!0s}l3%-v>SN_Q4re6L=2T@n2gD^|Po zwzE1GJYYbO09dh8ZRpBuG35NrWq!$jdAE-BOpppkb9RF2kuC$ra{XkS;E|N3@|(#T z6(zjFR<U7cm9=f0iUcD>_2FKcUFOy`Z_A~bH*m(4mvtSfQdX`*(Wf-@XWiqIZ*Uw_ zB#gK7cD}U=^jg7`WtDqG1BRyQx?IU|{tZxATmN0xUmAB~tSbb?Cw!Q1+(|rh{NknH z)AQLBPGdLQ^2L-P%c_pY<ZLxx$-|Bge(0gUp>_@UWFh1wv-e!c6Yh<#h{W*QrN8ZT zn4gJ0#UYy<esUCW8B&a=-t5dw^HFgX4F@G3nRSn6>3q0_&sRk7Hp}MQcP#Op{H)-e z)tObcnwxJn?zMf#N~%JkGg7{<Sc00U+fXGf6swgwJG(2&@emWw%SxwnLgld>pFvvj zuR*gNPUIIlYG9!X@aOg2UV8jc%x{piFZ%G|MPdAn?o!=Yui_i0PMHyAI-lj%o0z?B z`#9sdP*oy}OHI{gZ{kcd;ytXibUV~x?)mxq9^4C4Z0;ZEli~75@-0VC<DdVRv|;2) z_?maYbnK5F`ZOotCwyX(h7?2L^2X=_J7scob{H`ERm6>@GzNjJ$iT*i#F}LI2_4ED z<S#fhH1hSUS9kpr`6M6uOh(Ob3!mG1&k)~SUH3933<sq7tR*E4x=rT@fpjMG_x@G% z$G1h2v~d$$f%W?j__40lFK%nY)Ie<wjU;N>9n8%36XO?S@-f7(d7<IDHm`$;u_<3Y zJ&@Oo(0kKedPjQs({@0#njJTk)iEeM;5^A9r{_iPHZ}<fXUN&uT*WqZ{(^;e5(H4( zo&{H@rtFlYUnbP-A1~yII=9iRGbZ!k(LwL!+zt(ntLj&!pd7@{FIt=oRbAWu+5b3Z zKV&~dz2<qX>2J~_gF@YV<BJ>jt}@ToW<xgi0js8VQD&)OJbL(>=I@gK7#jDd*OGyn zw4`#KE+T$Vv8K>;P$>LCp`OI)=}Qb6o|}}Xkbh9H^9_WEgF^>--}M@RF~+l%&z8CR zrRO#J)h5%R<{lcxWpmjLQ11D`?m-Tz&PD8YWo3T&M%HPih#HhAh}Fj#MK!xM+@@rm z*UM~8$ZMjwa|?u>yiye-9na!;y(20OzR*UYl3GrbSPy6YhN*%?v2{tfEaX*$_q1q` zh|@xnDLGTwfKg@+Fze^|&m;GGFkKx%iS-%VzycbVn16Xy%Q0W-l-BT#qwzA*ruoA6 z)vz=B3nx&PPh+P_2hYMZ>4<(T?U=tHbM|JDPD;Q;983u_N7e9pj!dqec&Ble;IZ?) zikj7XUr9P%mX*KuAKtIN#PND7YM?g`P)1>m+it@N@{*XltbnO#h#QLJ7&o}Uiiot< zOWTmS7n4<d#{=7R2XM~<yPj+w?qc;L`{|$1`1Xjly6lZNi^BUL7;h8uqtu=A4!y=o z%TnNuPFu|RiWzzkUk_V$Q2w1kogT+k?H<q74$RP((a|iwM((t&49T&_Y6r=#Ca0_} zZ3LhxV%kY&JLw+)X_lrBRCY$^>&nZUVYp;h@-Xw!0bblLJQgGI5huuaNB&c`JwkP? zxbt(-w~-BCZ{l!!jmJF4=W~-8??I0geiAc9Qqnrj(mbEHBlbXpOHfEufiBLQ!K}gx ziJ+`%qL^nTOf2<V4~}deYtHEB(8%h9>C%g`+PcqOKThB+YTPFB*Dy>CGl-n+zZD?S z+Pb=Rm6h^A15;nqVb}2IY&WtmD^&M%t4;@8UQSL1+45o@3~U1gOgYHSIWX)bWWwab zjx(+P`fu-L<~r`mM=v-lw%UrTw&R2h)Amlnq9X#3$a?XdLZP9o;`{gIL5X6SkJz|| zOtK{o90>bV-DM;w*qEN0nvurc2+9?+*H_fvWd9H5cwTa!y*=yl(u34DZ?Cc&{jHSK zvX9V5poE0$o)y<+hxwBB_U+Z6fzi>^@OywC)#)1<Ss+vb_?z0cHkC$I)#~Ugm{7bi zGN~>ue>$7Q^@)rTCt{-My>9i@GHXsbLG-)n?uG_X9w0|(*%`muu|P}ANm(Q{P*gH% zZsWNQi-;HAd=_O(Z-tkwtzdj%5il~0w)Hw_fZr8#vbdO#O6b(LP&G>$<d8Y9s%tE% zbHaB)9WJzOo5xATtSrGFljp!uHbGz_L|K=5RoHp1FVM!=xD#q?$0TVufpsq`)GmU; zQ=*iV#;7ZcBTZqM5=R9tp1tH%PUREi)w-`(d{Md^bW-MX#Rcte7A+bM0;Gr{uW(wJ zv5kz|>!ud(vSZ7X+Yg!@C?d1$L0R&f?#}?mf~@!2^^P=NCf-omESAIJ)gB6}d|>4K zk1j?Tw90F=otOQlC;45z)sP=@!2OSrgf$Tw&DM1)Fkk;~*z1b={(v^&NWcFB_A2@L z7UnZhh!)nX{T7yW>+rCUJeO+j*xtC&;v2i39P6zor0BL0T&c8le?i!Bqs%R3DuR)Q zd`e<$GF6_rV`z_K+q=W^oU0Os)y)$AnzH2I=u8$WU%oQuZJ24|-E{_s*AJ8y(fwUE zqy5WPqxnp;r1q@dq?dn~fb4*;Tp?d(>Fz742QAz!)14M0tY6^aH|2ddAUYaLDl^c= zN)#1c;6M3MEl_5`zo9yiE_1y#ipI!*GnQ1K^0YxhQB%7_U3zvvxAxN~+}vu8@V=FC z+T_aOYG{x@CE{Wn@t~k_wi@wfa<49DY1!bkR^R-`JV(6SWaH!PVsuoDhh0{Khq3Y0 z7%3-oeRY7c(mO8udF^bBr7C;0_+^^c5{|m@AV+iY?nu4Jj*$ksS36Lf4BD1--2-@P zZD^~9xDLV|&sjG2RR|EzthsWfo%X{7U~^EtHrNq5#)}LO1o=%*&Csz-^~P2QuG<`y z<}sj|+FC@n>k1LqA5$6Ax=|_*nbSulD8^gj>zB|KV^wuU#p1pah0(UA@G*lrB}L8I zm_0rBX$t5p1jzv5=nDNeQH`W0#kCC}8%EF$*>R;O1rjr4K5NJ40nc(e7mieao#^8O zUzyO*17s4Uir0g{z;J!^EgW!f|N2$TcHoarB>=jtE6({Lpt0e4uY}uh`P?4SMi=H` z=zp6k&dQ&q{Imh|E$L9<a;WbW;KzmFaCvdBveK+RNpyQPDYy-+I}U#RdV2VZKkCVo zB%oMlxT?CkB6OC3t^>MJWHd@%KD3+FXnU57<As)fJW3Z?;eQDU(Y;HPlakn~OM^P0 z)qok)7~d{`77_Bwp1MDI{<cS~>H2yLt!`$>(pnV`4%nW~4V>lWm7OXL4DX=QbKoph zRaF&Twk^xX_uT6$aU06<8~FOwtzH<0n{1)#J2=S3zi=r4LPo3)3xKs{U0oj3nf5Qe z_gf(U<G()_u;b9`8}C&keW;);NMi^?#JPKq&CY9Gb+Ukha!Whe4^19h#JfINPK__U z0Ul{cB|zcf(-A=q*}5f4tsNKDVQyN?>??D)9=fKd^PzMMEs<1>TgD;n8=#Wfe^tc@ z==3Ut<*Ya`8Or|)JRiXmBv?B|uC}KKPgOB!eUGCY?McMMOOOhomJ22Hb<`X-alcrv zqNLq^3OU@r4R{vZbb6qdNr1S5fg{umvx4WY&dC^?yZ0*S>at()GN4)8vd4(86*ahM z_B82u4r#kfi`h~W_N9D0nzuZ4)%sqpvNAP(Gc{&O&Mh?@Op<42j9|@}VO5V4^5xpD z>2jLyYvxWCJkWMgy1GB*^Y5TuE10#gF}q)&Yj6W=`t7*7l>!H@*z%5#$)B2<>YDTa zYt{Tvl|`~VJ39qoI+eM1xLCJ@B_a@1>DpGLSkGf&AyIOOm|Z}ogiW_UR_ckcgjxZ^ z{=Lp*iB)STD+juLOi2$n?yV@p9MyXc_Z%Ev<&8hv;5hVBdw4OA`M+DXaHx%CeGFb) z%xitW<021xKk6WYP!VS3!0oYtN!kr(76Q&0KYwY^%q;6RpM!EpYGUd;q%<H%*f9E8 z%+R^&r0Y){kwwy86q^~Jki?9DrT5B+V$vy|%~TrFeNw8U-FcGIE>Il4{zY-<;=;PT z^9hp!JlsTG`p%WvG97q#q9Ymj4G7TFKQ+kT`|uVM=z+^<KPU-+QvglLQ#<C^D=4r! zB>)x}(_h#pLH95IqoDRCBk^X(&LD&w+m|uUMX3%nzP$;0U)nuSF66HdcxZn5_;Euk zD}bFZiS!K&#Fwp}s}Hzu2y9?}ucZk6rI|K!1*<<!Z7&XrW~$li%H5UCoT(j^P||vz z84tQw#T88BoG8BgMVWu;clV9y`5CRdPP$1p%Uy^s6_BC71F!n2bQy3{{?B<4=%uct zma>(VCmc*XGS|MEB9Axro%)ljS4ZDvePmMf<Wibis|J4uHna{RuHN0*J@2WXH^P5K zAQ9vKB;T(0v-M^T?S_uwOI!%}Wg<M_`C{>3ya@miPN$7nA&+J`B25wukeJA6Lwt5f zRCyEgQG@M88dpm6?bM`{lf2TWe({DZ-})Dt+xt0EnOn1S{ehER@(Ya(P51Y%XA*$} zUTAhTmN8>DX;q0UV3@RdLVt+fbBe*h#kCVWOZ5u_?LQ8Fqe{!ksS>~i@eZ=m8Pzer z@V;kv@6sLiN<k_eAly$f`j$}#t*@h=NF0XCg6o6KR-|z9lquTP3|hCF_~{X9$&cZ_ zDCbA?=s<>DY|U$S9kXc_W!bSZKb4F`&K<&Ej%5?`)Wck%y889r6IVTeFqr-d)2XVv z?7KAh**)}`E>z{!e}I!9v;p3}S;DN`?%J7Wn;Cbo%k=F@s}m;io6918AbFBJW<q58 zv^IKPLsNW$>AN?VU$euLCo8;g1|Y8*_gA^Og5@7nuYb^#oWi{mH_l5bJ-!Y=aJ{D# zbM)K`GEw*CVi20&!TcDcs5^Ei)z&2MY8NHi!zh-ybiXViP*wB4yOCLa+^ml8msJRU z8?Bl_2!_?^G?uh<+k%N#98Vy8YO5|ktqire(D1M`QUaCg<L7Q=5cVAU8Bafid%#b0 zi6ax}_;Ja`pOo*xq0!7YPtU;Yd@XIDW7Uvt!Yp#+wrOe`>)&A_V~!X{h{0aR6<95M z*y_s=fAZjNPfA+N7Z);_qpB-hzuYTIK4RA#thJU~cii^0y!)N~8}X)MU~I^ac~x9` zy0+f^xVU!f0lhKN*^HlzZ(uFQZ|A<qgx;y;a^DN_e;a9NM9j|Fns{2%%Fn_%xv^l) zdEsS3etx&9jPa@{&;iZx9Nsc(-oD;~yu8_TYpLVjo)f*XJ!i5V&)s*vADoinS!isl zT99p&-b-|^Lm)sM9mCZ0bfwKYFSBNAv<FWndZfW;#}D1~BiMdNU+|kVu>ln7$#*iq zjl#{!Q>Vv-xBXh`tb?g(GtOR6{r-KuvTBnu=M-c2Ri42iwl0sg!lY-Cm=BM4=1nxU zf6U`1W9gn5>?RSQY#t>qb6gzbl3uSjRBT-+EYIYLUDZ(|PJ5OaZy?;kEF&wH@&KZM zvduK*LdVTa6oAzTXf@jHl6dV#StIf`hWf^iLzK;|NvZSju!ASmVYH_jR#0(eHC$-D z<|T7-y@^nQdNnuI6I2qGr}=7?zkBvHr|M)<<7h*Sqz{iY8zLnxXP$Wcz0#BTxWOUT zqg;D%5JgztIIR?f1c<wK)y)r_U>_+od-lKO73)K?JWzcj%9ub<LRhSA3&9$tLjCQS ztcj4>-Jvw);dab90sUN!glkT^t?i82xdjsM;}Xk7>0!&xdJ89p=zga<mf(E53cDVc z;qxHP6*4}hC^`IL7;QY~(?xBmrcrNZi(ZG)4|kJZ{JTrsJ<k1ii;FId=cEudyyTt% z=hKNn-ar3K4agPBZFTL8U3=y=0_`T9sPl1{s<o9aHvK|jz2R7q8#`Ma7N+}6YU|pJ zv{Lr8HveU`(8oU)5~Z7X`%2$=bEi_IN@iE;9KTLqVU@IQy(GQ7=JLO_u@3IgYq#<G zC_TLm++i{CuJ*Gn0hl`Gks=5dRt^q1%$j_`<x2VOKAkH`z1ED@6-+U6hj|#RfSj)- z({R3C68Xx0$oyOQ@bFq_ltJPaZ+qzt(y6gFejOknBB}Seb91K@X`cBv)fg^e$3Oh0 z?KHyY65c3@GLkCPgfacKte`rFJ;_)bm-LsyLvIr??cUQF+J!|0k$;y5Hbx0+SExS2 z&8<Q8W|7v^P7>LPZfW%oN*v@5a-#eeYdP{V%i(@bk9qzyWr0I9zT{+0PY>#ZuM3XO zQM%f4yvLj31f>mhk55lfA{&3<SWH*S*i=_jdnxyZj-K9=JMmC$RPg)XN=jgZa0*tm zXs7^)kZiNFP85+qlf<U-H6u1Q)Cwc;qzd-j&6I$#zZ5%jL^6kDm6htqc?u!0w$HoW zb(!qOydyPTH+8s=2@Y3#h;W;Hm*T+Q4I1G9)OTOwpB|U-dtfwOQsTSz_yY^x?ux2z z;a@4gl*>(<#01u7&5+XmC&{;U-#0@4EQA-G>snV=TdO1?B~{Zl_o?ShMa8y(;qlDA zpxnsbJpD|u>PDe6VS$Au9v&C9)$jF{u-e?Xp`oK1SH9-_B#comA9Vh%I=l3G^Nk+2 zijz^qIeO$#eS$|`R+&TT$(n`+(AZz4xUWN15MtcWz(U_$yIIX&1ndfj>MHP@kr^k) zkg}Rclg7+p_CpH&OSK@IGQBwS5_TvM(+>^}#anO@ult4Bkd(6<!%w16M>$iV^bj;K zIGP2NZdbP=T+zTl+41fcK5(&%^_&&soKjswSg+5J@Ss8VjN#N2*XB8%8+6Bv`??qj zj_mYA6!9mo=ooP4unt3P$h2(XEAaik>v0%OR+WT$+qSXyuEj0OX0>M%ZAl%$J4Y8w zWJ%e6;-5Ndoc)@9$txuT{g3o0(>#ixEH7ySNgn-QJzzE`?wpFuQkare+qZ9PZ9N~n zIpO{`A&+d8C_18{fEpfNuy}<HY*ogoJ7u+iIP2i(=R`dv#A#99+6I}BySaDzcG+xl z2;`wuUzxVPq-Ri5H^mOC#Wb7jX3wUin4E2+@du6JlbeXqZ~UL}x=juKC-nbDR1Qik zu)XZmTj7}RT1TyNZHqeNBE<b9|2YH6EGG$zTCpu{%w-LMC)i5@bwssASXigTtN#K( zqNE(kf5A}XzDj0w^JDrO>eA}kHIoZWdmRstQn0SQg~X=;H4PP7R4=*Ox*MVhHWpCk zYrWc;<ijz%DRg_o3v_8+P%D+i%6d&4D_ifAcP6Srft`;ZH~)cuZeczlZ;$Q=TsExR z44rXdd+x3S+S=MM!3K+(cm)N63kyAUPX+JI`U<!~E2Kx^;8V~r4kxCyS6Ct>h80cK zbDx6e=Bd6a*{ox|Ug1Mv-0}sCTe`d)yts!)Cwagpgl*{VCYXPbaoN_S<SI}e5qBCF z#1&VwVBI!#vU4fL*><h%7XaNFCzFuOKoBmcN!hCJYfI%hOk17oo}`U#hap*XdGJXK zi<Hwn9z3J}LYZ(~1GcCq|5>$~NR9Csk`xyYmuzreuq~I00FzVxbY)p2H2L)TLM6)~ zrqKz4fK_fUM&|C(p(B69@13dGgHILoJU~uT`>D~I&C|rs1iB(qHwTR5zQ+)jn(>`a z&{d?rp!7+aIMWaYsTiRW57tn5>aWAoCdb1O^V-A|n;%YGNBewh#E*Ss2GY7Ou~`D% z44c%+-eN_t?*Hk@_RwDaHMqIkA|dZ@swF?TQeg1K&8acG>poBL%XZ=CQ)11?X<aaw z9gBKtv|(^V8F1h^R_o1R?yCltjf-6TGrX!~(qo&L{2MdJ-tUHnU|&CIK0yJ_4rsi- z4uzNNt`-0(80sCBtWsL*w=*{_t%|MO@hg-j7Cbmz)~fdO{D@|@2_dxK&uvH$P*q?0 zi~f)8K#Qtpbu{91*3bTD+EYu@JS-IE$V9KK?)<XN_#DzAvg5}CjI|amQBfeQ1|?>Y z2C582m=VUU+}6J1Ni?7_!$8dSx_<gT2Uwtg?hRR?PO#IwaNS%du45m^Rp&9gOvDQn zVW=91edj#N?H6iaIn|5UH39n<B$<xAssh+mg0P33d4kZU-1F~P#P1%su_2*&@~ zt)k7%e(}ks;TI5dih9Gc$o9&Bss45$3k>2&?xc>D83x#zwH^cdBHJH-rZJh!z+?ag zq!C-vDP%qwH2V~eCkhW!@1z1_rLL{|mrxf4-e&c6%p{;GhVV-O4fF<_7k2Iu@-|$p za-Q#YU<Ui9jb-vc0pCoI_fAmbxn&=8tK-fHq2yhye$G?Gg!}6#bKbBw$++6vZxTYl zl=qeJeaXqb5(IiTH0&81`pSe_S7#nqV{XyG-wFCD7~>XuoT}LJSVWP!frQk&8S^1r z61jy}YDeRcw61g}77Q_&{|&xGH$e*=GU&ew7k!wKtB+%01I?&~p|Am1c;;E(4S)CU z-Oi(Id4CIONl^p<`$wsONt!<tTtZ_p@BT%IG8bIIdHamCbPpoD<qR%KDfHO(C=@t! z&Iiu_)}t2j1{@OEj>um9CoYq0I&ye+hE=_rHyCBC6W=o2oeEiWq|@M)&O+0&#<EE> zTLVUvpzD%prolyBUFjLTn81cy-jusSiP(Bvn)t<pd1*x$0(b4#QE^`_Oa!d)D9`Hp zm*FN435(pgw_-VHN>X+_?8(>f=J)Nuo>sG$T{z;Bm5$>Ry)%aA`=m(uSD8lsr^n#@ zWU>X`vBJT~X~Vtq?O8eGwc3Rk#_Ub&>RlAUmKO#l+GC9>lKrzgL&77{HAJ#>&Ez9? zyolv>0Rkwu1L4t!E?(#sfgk;>49_%Onb-nvOo!H@H8?Pk2y|$54X*&zC``(^MO%vA z20anFQIMXv5Ys-g$&S`m6G@$wj+hQ_S*_M|6AbleHk#Hh8tJj%9f}Rh5FYM{&kefF zBGZ4Tm{5#VB|!b9?rU6e;P8<YXl*do?D%@^%JBoTYd7HM)}KE5!LgHyD5WRz52%!{ z5IgfQ{*4<=IOt*FC+IyOlBqWzn&sAKeJbnbo82@oEih>t%h+(&JnUX*y_O+`ijK{M zI}V9Xgsr-U=h#i`s=v<7t^jmbPWT-Hi#7m)m?I8^?y^$RTWj0XGtRVqI!xi06+u}T zu0I6kP%F}_1*l7ynF-c>uNoJ^SdD%DZM{c=ZeOG)4L3@Xd*-8Ix@SBKr=|c`$N#lk zCKUe2-rdEs^NU*D@7fM<9!?r5T1TGUWrON;5YW!fvS<^9+du{>I+20XhJ6@##|oqF zK~9S-O_ua3+4JM&F8Nl=tc2N_?0h?T&H1l^c-w_LSjVn9WG<aHT7C(_a5Pj#(n>RK zK0a-D#)VaF;lkja?O;~Cy7U*ir`-2L0wL8gcHb<^E>!kDi<*u~`IH-k8>i%5Io#h* z)^-w=EsR%RFP>y%M!1w`3GjQj4+eV0;r+_n+2CK~`}z{9dTkg{bg;8J1n(VQWqhwh z>G`ZvZDJi_Ct!S{DF~#)k_%jMpHc-8$<b{Zkj||jl}8!tXS57co$k_X#HX-u$rh9v zSGN>9b+y3R*6{vanxRwSuDRUvYZExtA{WBZGM8jBRVqr9F*J;a-Xmg*jXOKb?b6J< zXFm|BQWeRDY4K|lU<I-r8IOP*7cLEFeWji<k&H#^XfiZx8EYQ@L<PPe<)sLkhP{h* zeNpB(*lz-yJGBD3s$7AOYVl<U2c1|At??-=h?@^kRl%_DWmI_hju_{=w1JM#QsMRM z(-+(={7xIY(S#QpAAlI(jAT~qWSN#N`E8!{BsS!+y9Fh#EN_O+?L^-1yV!U|VG_&F zrD<1X>@P#V78)MPX+d++8J0O=y%-Se=jWp;gQgkMixzDpa$T|>Ozh5-D0Nw1(G#J0 zFg{TgrO~t^LMr8H-oTMV&e3K4X>$9`$rIRU*e^Ut)MDg$5B<kI<&2PW#a<d#E2XYZ zX!;X%v|B;r{%;5VJdClVEv5Gs&7mi;=T(a4y^emyS~}8fZldAE?7ZaCO2n-C23gMt z;TEY9CS1lcV><3MD4|Rj_|jEhy2VPWsH#flx(E`q4!g6`u(Fu1J@znKfiUv?h+U)f zVxu}x`;$MJPGPtCOKj+vabG~w)?mGD&@7-}XKl2+6s}}A6D(M?s*+@5oR*gb>uq)K z6gKD)Cy*f>DyXB-?&U)lJXWSur^|i#`OXl6V*)(WASg$~D|2PwUA)wq<>|x}?D$4= zepCz@xP8#qq>S%EsY^OP*?XdRc6L#>``vv&&k{zmcG6X^kKe33yr_!ziS_i~HG2+b z!q9j+PdPYuxT=E%ZomY#EwEEc+6P=Gmrl6z9Mdkl#?>KJ`NWsrsH##tb^nz8x`7By z(v9YUL^bhq8*`DGK{k_E<-v(D{X7@2`ildu6S`;p6ZILldAC$bj7zXXYamt14>MX3 z%V|oxm<a?>r%rj7qo%YM8aJc%qQUzzzHi5w&sEgJ5|fgH7TnDr_1!J131)<)f9T_d zF3B6QeEhY66WI4D{Ac<;QGd5?lQUYu!mHgirA2!_pmjUmrDZ^KB0=|oPt=aW$<#6} z{nYpS;i=TjvOd%HjZs)st)}AX0a3SUcRRYJ997@CtS1CL>h7Pw#()##O}X2)FWgf~ zZzPx-W_Q;!B>SK5#Cuooz&egAcRE|bwI`*F7z5&+ORE<f2sER~?t6D>(O%Dvx?6m? z>AJilwfD8--OQ}k=`>2}G5RNJgj>G|Qb0t0*LKY_<~}WBS!K9;F=!FYa7AFb?uflb z8$g3M!x_g7RjipK%_D)I3v235t1mT5l3#}0GzgZ;lHM!}%rO1RMRnMYcI~l+h%b0> zXzKopvOLvc>iYA7EaSvFn7$t?+%4K-Bi$;r;Ej5PL9dy+v<Is@)08)~VASji7FC~I zQ(YzYPaO4wO+HG}efV9LO5}rOMs1y>dY;QlpsYy@ti%GW8}Ix`Swg~MV~nlj>IzU4 zu(EJ@Us+UZuOEDagHMMe?kV6yiuNQ?M<v#7NR$*=eM(f;)-klE89I`vu1*2%Yi^db zH9dFQ#kdy?Dbe*0QezWGdn3!*6m6xd_>)&}A>QzTa1%SA$AeTOb$R7K?!z1?lx`Xf z<G`SnHO(ol%%!TPj$*>7icSF7#D7WLoyRfuTCA2k?Lk^K?|!yF+OOqE@4%@j^ixNr z$801dN-ReP>eSx4lwW*LEmldA-(KAz)k6m3-EEgou*urw0x|S_(IQo`3s<8nodL9M z*h{@Bol<HZnIDn&I1ZCuD+_p#s94x2hEvP-_t-vs1V32sZ_+h0b8Vm=c7N}k?>$^~ z!rfwVwe#(KGgZ%-MD4()J_{#zN`)3IHX^dP)eG)C$|*)p;jMwiF6Cr1R&Q{da?Gn$ z_7k=IaJIPEowGw~2FCi!y#-F0!B13PzUJ2vczPomyAeytA51OFgPtIJ*Ee#abVmW6 z$j)<t9G~n?(q7*2Z>m-=LdMS!gWu=fKRD$2fEI!#Nr-b<&^)Z?ih{#R<x`9tvUfS0 z3n+1kC(LVIA3xOP&ckyh#l#^HO5>Je{yT}krI)zKv=)depYLxE57CDySERu<c#7k} z%64d#qyf4#SP4cJm?;By+6Br4_C7lo-et<`ioyDtqVC1Tq;|peYvHnz3W~6O$7Fhs z*IRR;bkMnw5}?c~tIGBtXjl4rbmh!B0#3iuS?WEtBLN0n(}Fh9J?*RHH`}nD{#Ne6 z@={$xg|h46Ri?VcIcvjcxx;Gb#)s0F=y=mRoQo+VuX1|6N!MRR>R)wYSJc#Z2ukw< z9mT!eXTS32k;B@FvaU~@cZZ-pqR(Sf(RyAUuoT0STUGY<CLJ|_3&8KSx1;>_h}L|j zh|T1#;@w&(l5hEQn9U?Ct72?{#arhS3C^E~f8Zy2pggn5ddhS;hG_V2T_`>8aui{P z>VCwv*jlAspmOTilos7YsvbW2w^a$d97k4|ZZ>a{?$c*AuH$ZQ8vY^ywf+Sm;<4>d z3WSl&3;tqom#t|py%YKo887}Ly<+{I$4CFt0|Q0Pp>?C5&ecisu1Y;d8+G%W3}P_L z{9~768w#aohcGEu;jj1vKLLXms`-ecF8zIq^^9&d2?T|cHb0?|LX)@gCG&0TlOR3V zL|wL=cU6;J_a19M^#Ss_<HjDC7%%;$ln!B4j;(Q-Y^{9PMtKdG&j`G>(^dGrz(4-z zCh)PWXVp1h&FZ6%dz}@OSo*@#pJ2(%7~UB^DUN{9BjS6<h==BJ2I2n&o-l}F?`hUb zyo~Q#vtgok$+BMRUd{x-Ho&c!+2-x28MJvTHwL|`{SR#=(&i0#^WfIZy#AIgKsvYW zlFN}+Wey@{LQ1JzE^f0d)dxny)Vrngx19`S<*OHd_KLe?SLJ1Ua}oRfrob7<5N1?C z*7~ORuX|f8Ut?W?g=IAe50<xsKs?5$vvGkRjF+DOWDX-e+<J469&X=mrTGKiuGa{0 zE=Haw<i}dZURyVB<y%gh3hh5GgQC~+$NRa&OkwHe-*4rixoyu%kCJN5g(*iM1%wp2 zW`j%3#)v2=znmv7zWMN>)l?>h=~V-;znOlaS7C16Zfh=FRsr-Xir!)H*jrM_-6Y|! z;Vq6JHP9LN`ql|;CB~LdKycF!yx8>tXh1XL3S0*-+Zq@D(pDnQR?>2*gMz5unID$z zxsK20Tdn5;SEEa&Hf~C}aKD6Y(b+kUx?%asD0`+#O4fQg)&QlcsWY6@+UkICAf@N} z=-?vY0BEpvrAgQPxcw1yj1~%&*{ge!yt)u3(3^q6xsX<u!;R*Yt_aX%V=9OXYE+&z zN9edhvY#ksqUP_W3jq8FsVz8LWu`+HIpeUnc1Q?=5=Dt#9hSSlX#>Jza#2K&#nN8} z@Z;MHr`C$nhlWiK+BXN8J$vrImvSoa+IS}YAbQfL2i<o1YK0oFC&wG;;`nfj;#E2A zw*Pf?xs09pQ=CQypM^7E&QjQOL2tLWQFd|fMw)PfTY6DZY2%zOa8iw><3&x!UPkKo z8s{ic9S71qgvuq=fVwFvOJuBHK1Hh`eb$gBXIdYTUYs|Ck}yJ~MYl=b{2xx`DnGy- z;@yh@GG6p5x6GQg?Ku2{n$rlYPb7J-hMZg)m*<LgXsFIe$a^Cazsxlt`<`ZH74La4 zd9{b$Y{AE$9pdYYGslWwE_1JBTF4w^6e#vKttxZH*b$~`+YXQgwS~&hsUcPwVkcF> zZw0YpXm~Ao6*$f&J^h`d26ZOjHK29tVc}GXqds=VnrJ_KLu&9}+I~)JN|kI#bP>~U zNhc&c3A%7V<p8`bkh;UvsBLQI>f{mljJjs@-Kri+ZCI~S>F=eKEvj&ylUI7JWm7Ez zEd>no<<inR2(zs@V=V$oh19<lw{A5i49(7PoJ*|}jv`PQmanFW)`a6Hw&4N8!HQ)S zx>Z(>gdI7}D=C@LI7hL+p|kpVx_^kUKGueJbRnFy>RQwmFnN_ooe_2$^ydch3$M61 zyY#}ySx;G-&@ZGy>)DU%K_^{Ybp1K0na0-YMz*LAtlr~k3Kmw&&rgPiqCjV;)K!o& z*1;p#KA*R9e30U;zWVyVZ0zBq;g#d3c+xy={!NY*y$XzEuMZM;!S>|Sn?}Oo^O=>Q z5?QcHN$TCW-U?_GW-OHpO0A@I(!`ZH={NQD+pw~xsnOU(Am75O;HG=l)$vPyUHwn> zShM?U2+=~BHT9l0gUxn;V78-|8MKh<E=ZTg_?(0;SB@OE@0ly|;WBuDwU!ogfnsEH zjW$o9bdOF{rvYDC{bk?|mJ!6wgZJb|VxuEAIuVUqcx?(|$vOaDWT;$xXU|H1wXSvv zY;QCg9iyaNQE8|o>j82i78`4#o>7!Fi9T1$hqpR<7BPe2Lf>!%nIUT7)oD=}(uJ{o zMnrsSR#;u!4qg{lT_71>4|1bFf0dUPd@?N~->|~B%8K-KYS%Qq<vFpSuB}1^m~?ys znZ4u&k5Xx{n29T0I}Vbhk^dhn7T>Dfd!}E7hnIlqJCK@Bv4@|a$mcDT1Jmdz-Sd&D z?dqzytx4Ip-hBnN)WS;8pXTZ4rsZ}&5E>DMTpJv5e!*%$Wp&!vnfP;a0FgE{vGa19 zPqPOuWfo!p)GwjDFc!5NWRXV0%W-k*oyBtxjhA{aM)j*mm_D5H91%ermw<;8Grh2r zWh51IBzWOVf{A6LE>SrM9HMYZb>ic5*<scj>o#TcW2_)$ER<Oq5MP)&j4NHcgIJt+ zin=@*&~~X`n$lRApG#V4cbE=)Q(P=BNef~Rh=_ahR-0bG&is^eNy2GWUq`ml?Mv=; zv}RjVEZC)NANFr9;a*Rt%Nl2d=oi*Xhb0UjJ6fvwrN613Jn)PG{Lp0aUV~KdU_q$D z7cX8iD3~HoC=gS1_hU2ZlUHFS<FsO5amXy_Gl4EM*N6-<YH^Q1%E;?OzIe?YKO(2q zNPR#k(A(eycz1u(XkiBuvfR7TC<rYdrZuhZ{{wWk8{a#7MaF|OcT!4<lt;H~@5PKF z!M_&V?0|M`XoO|a)yq>r$Z6dZB@O04y(=y4o^&fuNr{3uc8nnv5Pby@8ie}>Tu=IE z6YrACw)#79Cb4@(vo&Bf0XhMCN9(FW#Q7w1L$Y(O+{m%bcg5;!>;hL5tu+7|aR9T{ zj*nk}>54ZFIS4c`Nh*E8Sm5q@CCAT1uHLCD8_p!~eixImwPz)`1zu3zE#vWF;>_j} zdZ##eZ~tdmGkX9MN+N0NHFMBNjXm6(`sOoHZ6~m8j~MrlP*!<NH@fI78-`Bwe}H)b z3;^#Eg!3*SyZVr?PSwMDsFTxew>|>*6a<KpB<WHp>?*eN2POI8kDkAque#--QG7xL zIKcv@bD^1<D5{^gbcFeIEXNle=(B+MB8-fKgH{_^SFhMY4&0do-AI1+l{g-M{?^)! zU*gH4_M?5|{*Y(P1C&uBmX?3!8-Zt%J!3?W!GeEn2Uc{pw|-s(tmv$I>>V4v=?KBf z<||Tb1{jaY;(!=2974rSr-Q%6!Jbb*l(cALkN|Da&j0ie_};m9Q!faeGk3FtSEb}U zCsVW51+^y#l_5MPzmj7>DH6PB&Mn$yrvaDDC<vMuP=84MP_KjIpp6Nr$i8iEXYbw( zy{@PSFwFi}uk>y?{~N5-{?A>uK?|nu6@-G6q0rqSIfZXGOa0=e#CD<8MsO_5%lsi< zY=R=CaL*1t0g0OLPyAA_OHF7XC<!lEAsOiPyCJ!Y-`bH8C!~<h4<h-d;I0pF2BRv* zA{8lLT{xHgQ`ubk#1#sM%r1kQcPd~g=S*k~Ko<c#({4ZE3LOeJtvBjadotO6ryWMS zMy!U07ZZP8BgVLVmvt93X8S%L4mNhlUPp9li2WM;4KH*nV-7tCFn6-Vx@E=<?f>I= z?8BEosV*Vmp=X3lW54fkNGPkPQ4V$-%*3Q3#TW<R1>$+|O0G?-U@W{TM%+h8(B`Mo z2p3fX9sPbh|1T$<M&<XD3s~5<OPyt^jmx0cf7gRC=>YC_8gqG3DTSqL+x9f&fDcBU zMH4PPzCMfM08qkRo9J)-WN>NF_EWqzo{2;}Oim)CYYv)K{)h+e{mF6hZE%(U6cG1L zCzo|>jeH@y(TTQv2iit;dDpbB5&){G66d)Xj5*H9-kcn2_8^#o0Niq(mbvqY>o+ry zwt<s85)ntgB`;eZx_O#N!_Un!q3eyIg@VtE7n8})!h0-IQK&FndT!~yuub9p`BQMn zLTLHp0EHaF(HRqp!}&6aZ+&KTUN|>k+`&r?Ob+yyYVv#{eZ%d4Y7?OXg))3;{mmZ- zneMt8I_W`u7nzw1I3Gf*pl6#G0D=>GV19fL9`YQvVGHqg{moH1{h_Bq3-YS(0$ya{ zT`Xk`upeNiaYrN=l27pC2zL{DX;X>HU?jtV1_A!;?f{#g*#pu8i9X5foxz+#7ZAuB zvC2~%9d$*L0|+>*xr7j@Ub&~PhExogNj+}jJ#j(}j(ip|FAN^FbMF8rU1F6k-Yri> z+IR(Tw(&BsbJguwb=gFp9vzP-d9U5LBETb%r22sQO7~{xkS-UWAN<&U9#*X7K6s3% z@1&<cak3o<Nzc!?%<Z)p6<2KIjV>sl-N>ZB&Mq&$1YBe>?z$$SmZNm9&tK;B^Xv+D z?N&ZwvzDHY1~ahHqNZhAy*mxWaAu-#l)e)hk$;7SQiC9$?QkF4<*&kh;ZCsgiJQi@ zGsGzByRF-1)W1jvc<?fBuK6PjHNWee(vO?7l>0@fhJwHk*d;#LKT}d-R#jcP9g?Zb zU)a9|>|g{ao~d7UrMF>K`N{UANKwas?<Ab~?(&!~u|90Fo+WNloIGS9E2~y{jk_2> z`p<6?D-Rm~^yh9<4$8+Eq=N_N4K6M_L{zro-mtg9<n1+ZB_u4bz^<Yj`KQ;-r0&w= zDxAFv5VCiQR(p9$jwCdNS-L0@a`SdAOf!bZ=CZxBBTQ5FzWP7-J3jEv?9AG}o04u% zdz{UvJtB*4DnAQ4kdc6><TDbdu5f#oUqywI-6rCo_=t_gjApbT#2CCCTVkxYQOf_z zbh2ix4>vbJbD72fp>AP*cP~G9P42tBl`!a|xbh3h$)GT43~mzoJ*%YcbU6Ru63;JA zl;c&_JngQ%D~opC-J*5iVbr=|K`Zaarqg5th{4@a(BP(wr{AGNORhlQ@WMTQOnbU5 zd7ad$Pr8FIAQyD%TN~i+RA!#p_58>I&i`(!EwvHsH=d#v^ViS<cZWyaS2*^EK=yF| zjQd(C&vJ}MwQKCZ18t5R=$?Y*bnDfjU~z2|qbZ6oJ4DX%l_{2AKDYH0gidt62{Jme z*D;VeDZZ@o9T(GJT)VN?S)BPF06+3LPka^%S9ZI#Xcj5r@@&W6Po%Xc{CIC~d}O2n zJjiD<8@cKgz5^rN8(z9W+D1KZM$SZWxsIUy4~6mPNn8!)**jmn(XQjGuir(OyrQI( zk&Hce!)$P}(%5^0a(r;`BrYdMk6U0_XOIoUA)OuwvaIJ}XM5fR^RTwR*6_s4`CBZe zFEu*82+GH$-q7ON+j@f42<Sq5g~DQ@h3JtlXC*lIs$ef(?{W!wFzHx7QeInsU0us@ z)fVG2!Pmw@iBA7#`S6O{f|%#};ORkgp3%lG3(g0n+NvqaNoJzyxI$|SjbcF=@91lL z8d?Y}<wC8_Z7eC)tBsn9tt<W|p|Af)GwA_WTYDStb%-)Ud#J}1$9jcO!>Zf~yPJ;S z@|rj^hla!^`R$0(lVO>sWGI<DGrS$OTz_}kMr9KU{xMb4)%H*dTpd6AM)w^qo3Aa5 z99v{tH_~O?P#o9CxKz&66K`1xz-69k@foD;D1o*=%#VQmm<8u2UG?W8UZ8DlwH_47 zpAMD-@kViStgsRu<Ii{KW!nDg`L<`KdwT+$M&8&c2ED(fZkeiBvBP4u+Z(<ZQl~lK zUaD(_KXGkP5s17{ehK7bnoin9GWxTbnn8CC?Aw>@<C7df!4w<%idH>_=R5JBbncLW ze&+#mQGP+O%Q}8~{yU#{yWPptJHTb9VN_<M+ZY|M7H&(z$TCva=K_zg{dq^z8g~V= z;2(4nC#o$LC4c+2d2w_j7rp1My~b<u@x0>kR?)}rk5&KU`NSuZ)ZKmBw<2vQ`3i$p zYA4Oxm8T-gw%UzM)2`f={bb$H1$4mPU64TAXxy(Ayzt((tI?ky@7P~^seChfTH<=D zc!Tm*QRGq2rZ*b&MS3RpTOOE5aP?qlyN?z=1jm$pZl3E7EZmW}uU8yVT3xB^#(K#V z>QZik(eSpcv9TRSZVM(Q9{$RL9NAso3=_tkc0)3ykiA)jQ}<1E>;ttrU7HqN{(_NE z3b9#=mepDvo6%OU491NXvh5;G0vauLy-$qxtMN5+Z_N7WWOhu=&1CD^QZhP(EZZm8 zN!j+1ltWVE=odW^;v34I>t=B=9z!Q=JM_<n*QNDtEVDqKuVh+1V7>k*JAbI_=<~q9 zmmQq(Gp2JGx~CAjW!2gZzX2T|7DoF0<|jL`E3~;-%cZx5o@H)P=CaezZzM0y;uY4* z)yKsSjD95wh4fJ4|9YG||DjG<^#5V&JHVRCwzj9KV;@CO`iKGof<qTVaZo@ILI>$; z=v7*fP@;o~ih$BvKzdJv5JE>qK)RF=Lg+0(5|A1olz&HO?w$KTAJ2oRoSbuZS?yix z-3$4_Ok4ZqU|v_C4D*TE49&P;DD`7)sG;}aE64#64{{IzH+wGacS~a{3`0!o87(bs zEM9N(FL5aiuR?`k?Dm(LQ=F=xAK)f7><NN(RMBl#Z<ax{H8;%zpsBg~SoOiLR|wnN zjU2z6np*pQ!sC{NwzjsRv$ONNTCWi%1Exwmowv!@z6-WSW@erQd6+I<ZgF!@bYih{ z@?lYFmq<jezdXO+^)wfEzt1iwPY!KG&s{)Dx}ujFDQC^EW=e69$wZ>Oh``6;m9)9J zN}K5ML=)G_Vl-Nd`#591g_^hFa>`mFQB6&!eyG-W8uYnl@=Gjlk<W6VU+YJ3xrjkn zd#Ynz)hfOjLbz)-N-g^ZI4lY8eid|B_aj#Z5YD>W;4Z(u_8rP=I5K7EBkQq)`>^!4 zYyEgy$3M(D<{XEE3T+Ca1*9;9JtJAC<uS)NFJ02c`@{9*u8X|Q{xKsjmoM`gte`H( z(=Z853j@(;#ay!<`Q%si5)EsD*$2O#O!aOc%h~$5zu*kEKN|7XbzD=9jn5*5UL-P3 ztt_4Rw0W#q_KwZznLFQopXI7@Wy_6)y4KMD?C{6@Ew2^>XCMn7lJg^#@?gWb`(c}I zHuTCaGiyuTZ5x~nd2iVN24EJSbx8mx^zv0vRV)kqzyYc(Rq}Wm>J4vzq5=Zn)qZ;f z_`mDjvnLg_U_CY8^pu>XU7DI&R|p*fw3LtH@Ic?le5L!=lRJ#k-HBY7tS##{KTJU0 z+O;08Ut3@Puk5||^5|I9tMKbG#Je{v4qK#f&-zwu<CY(DOl+@iXkz#x6u!Hl<C28| zp)xy15*JF5qwF;Fw>$pu!&U|?<{TFdIuV$4P#~h+!JXBN*)4@xzFi#t$>Oo2OxS0) zvTAp3g^k_E@b7^@kZK%ls6gGP>L<SM_jvri7B(3BVd<m4HaN=Z*zx0`qmj$6=H?vm zjd=97F}ZQClckI0u+2i*ZH+NC;MH)r%7QX<pF0`f!NE5-_U%6J8Rmv?WMq<e14mcD z??cvq&(v4dyvj<sA?q!uvy00EXw4hQ*5%we4yOg~gQcOlVsvR4+R(jJJcLfZ@Hr|) z{QgVmZGW=q!zmf|wCnV{-QQ15+d6e+9IKnr&2;?t3ebnE)WlRDk-k}q`KP|g;`doA zaOhFjCL*3rTC8;MAV%P3sm-n44c}kU|Av)I)H59=$k6ED^Y;S}<w2~ptlMh!H^~Mc zD{=^|w`IyTfBH1ST@a<wA}Cfn@e6%)$Gx?3S5jC^PVkO>EuQZ~IvC%Ch=PK7Zf@?k zO>gZ|P^fQgRc>KHOL;i9Av$VOV05h!97%%yvJUEvEs0kN$;7ej(Xe8_)m&Axg>-Q) z<Yu(7nR(Wme5;Z{huXtY%GN?g&sU$NU$!((>tmiUu+mNdVih;&`0iu&RGj?QWzL&w zGETGw7w1aXnYQzVXqQH)B2!az6l)@Ey9yBbItxde!05`7om-B!2bT2VukldS_Hp2; z<h-DazFjP@=aQy-%gPSAeBD}z$q8u^?%?7p?A&i+k4-{<dZnV>CZd1KEynwB`dj@w zNrzu4s7F<DoJ>`^8Hr=(3Y-I7o5wOm&hP64;!6q6W}}7l@eni?(`ZX3hGh1m>x`Po zMCZOkswVbr5|PT&$7BahoQHCJW__>6sqWZ?JtM^#{b6BHCZgTlZf59Ut1g@)B8|)` zsr+?=U%^}=@y<=5w9>q1T&Rb`vqhq#*)OC$jN7_T?tEbPccSdfrtD8Mft*O8yt=H1 zv9sK|^;-_{%cGfI{TSfsBtO%u*Dn><<$5$FldRU&&M9MhM)IgORa*aOVf9PhZbOZX zi^n2fnPl9bwwK|Obs9-_@hBqB8(lMSS1)VHScAncjg=Tl)SA@Fg_L5^simc^Dg<+4 zmuYVv#;@HT?~F9aY{_842&U&;2MQAlNH&-c)7^0&oQyN>v)M(wGDVEvf2q~2A7p_x z^f@9TAor(2Xp5-CMT53r&B9Wg`K3IYw>yhck;+t;_+>J>@cejIy=6o10&yg_)HT6* zXQPqOz0t7|%0HGl#mg<Tu$xg(Q*m23ZS$t=pqcCZC+uv@ojpxxg5Xs(^X*IQ@vrk{ zIzzO(moNoY=j=~j5WI7@YE=_;HM~DFGqyXv9<42$77`}PSRTwd9+EXhr^?V@LU6(K z^B~vGtk@&>_=3*h75-FwN>HyZYgxS<ZE~Nb96OmRbrY;P`zsZbOpapj!>G5Phc4&Z zoz_=F@HY!NT)`eZG;hi#cy8TlyZ2>c#j&uu3<?W*SY6b?*i?iFZ?{8lgAMH44XvCq z#KsRgJ_j3j!0~f$C)79)9@7_}wB!h{<m>Eq3~>}@-Y#Ejx=A8!f;An3!9%`8&~#q+ zIt@%@C!jLHTp9;iKm*|q&c;bUDgnw>^!nrxO>s!?QD<%Mj&3LOk8U0$=aS;S7knfI zdV#&B3KolW%!Hyy9keu_Dq5QNLJzL?>kYUmG7F0gx&mQ>+OVe*SZS@nuk#+|Fv4TW z{KG;Jwx0NYk_hBy4KdNB&*T1;!E5FWlCyi?dp1NnROec`5BZFvaAhmas(`h65Gq$Z zeRR$d?owACo2+Um$wz9FxFC+j71L;aImeNCQ*_tb&)vg6*gMvwaJ!zChA?GUXCk8h zfCzGpyTeWA2a@ri+=TBlEvUF3lalK`E<qK5sQ>sGii2LKhl5?un?(C0bVVFv1mEFv zhI^Pe_c~x`C%ikLulks$6tZY;=Jm#ow#bYg+N)$aBi)m-T;6{`E(vu!SnGuDpK+iN zJxH8DQe8?)zr1ThVcF*5Q5PDqYw_cxHeT8rR9tp43VWGz04$*SrL6c~1xU5EWB$dr zB+gkgIBUCnTJtns={}hPZ{`JXV0E7DxH`OBF$r~iV0d^$7cLdw>!0*dAe-Pg^b2Q@ zJ!OPyVlf~BQB5x`E#7PEenb+0g{Gkz>OXhK7mYNoeJ+QcH0pj2CAH0`p{{Ijt88C! zbbL2u<Z~`@<R)BHxg5K253WL&gLG|LoK#u3+V;g7em3w8Ds>p^<HsN=^lHL8@5|W- z*a?eX)HU}YdAZC#^|3pB3*Pd`PT2A7*}f<>IM9ADnQBL23BfyFDp+Y<_flPJJ4ao4 zQndjgH*mP;g=P$DSUd9i>{*uJX#w>GjuQsz3*OyLQQRwnkg-0KJ;nxgYgg<XV}ZJi zkiZ&MIu^J1C8NCRJE7Sc=|N>kk^%!^lDJGra!$k{IT)SL#>tmjOZM>YMG;7&;mYPl zith(K6I>&Z*f9}^MEI(vZoI<PI%UXFpzV~nNY%sQkVCMLx4&U%Ga_;dP5y8iABki# ze+klPz|t_Qx%eVqe>0L~Vb8l2ZSAf&ag`=9NOfpyJDA-|dYdSeG`hMr*!r{>WPz9T zV*L&3er&f9%sm&XH2sAcWlKty0di{!<Tf{z_Ug5)QXd4;FJb0KvWZMXJW1$As(Du{ zHZ*OT5asT5o;J3uw%y!Gu|b~q_}ty*wXs7|em5+@j!Megt33v(RR47OcFbaNNAw0` z7nsR|{%0pRvv97&Z?ToHm}GWzQO712g%NNK<6rlJ20relE*?)_;yv}Xmwt%na5qpx zq>D!QgG+A8+Bd&^rDquI7v}ax(#549R<JWKVNNJnt<$@j$Gh4}Dp_q{a998<sG}RX zQLe60oSA2MrtC#g=@kPV!y3_uh`873#eJie@o6Z`6rDRRMP8rj&n_y0#k4b)^sQVH zitaE(MOD-{Oze+EM;XDaBY`~u?i@RC<eGYgK;RVm;j*S>L?=ga3O%y?nPyQL+Tx7l zN>T9@6W<3#MVre8RxXw83=cCyQ`LCdP|iTz6Vb6UgErEhNrPi5Fu%q)B>utKeq+lr z+cRZHfndeSDp_=G9uBi8@vf-+d{3tB-s`ke;X0WPI63(?m*a``XpPGG>mU>p6IC%M z*axyF_U)&<NZzYJ5`}W-P8qLkp49H<d|N&mK6hP6;U;bt%#f~Oa95_nDctaklY2t% zxkZ&$@h+)w(!hYe7;r5YUEA5&6KM_Tg<xZg3UiU_L!x61HX_w@pR^>BSv(VdMNZ)k z!9IL$h=V;JSWxqir@G4edxf;5;1<M^SH^S^2|runCtnl#HA5>4bo(hZHR>er6?0-x z-0^WF+u1<nxhn5QfvjmVQC3M!d{ZMVN!)|F=v&c#&c(phDBmwK%FNoNFzc+L$*8k6 zn>5q;pgWXW^Jg3B2<5t2ydWRd!brsRDYJ%4SE$-5rX#?~TKxVbSnfCCMQb&iDiFyw z&Y}%@$lxEcvOJ@->%8tU86*(AT7zjeE{A0st{vuWrsWjWxJ571s!FME>?rSR_z1M? zm#at0`|U7^;sQI6L{v^^h^WFdQsEHZ=tVM+%`|4s;j0jc+!a{{Bng%Di|imT6yAQ0 zJp(afpI@GHdu0J!q?Y1Rtj+HA(7Lt_`ka)-!JKq(EI!-k^SS%JU4CVjv7`ryls7{Q z0*n7}9c#3>5+I;YI(pQ=a*d%3DJ-Jap-1h62i&}Di8hYHw!rs$g97G5CgoHKm2n-S z#aUE3?+#ZZ437Ao!?K|h=JKYcAu(1_%QkSA_B-cNM}pyJrI|$!mQOY3R$*N4mB(g- z@C3-QIM_n#0+7ig#0{h%1R6eb%nn{|f<s~+oHdNP3W?8Mly|B+MhqEMhYu5RZVWlW zoY?|zRg%Ikjb>`)vh>C=ztrS#sN`*uSNp8@PB#=6z5KYQ9jak#!oh5Zy0z9g*gH5; z&{=OCTPL03t0QQ)1mTPZA73n6Vp`#zdg^FHBhUv4K(JEEgI!!os2hxlAI0C_x!uzb zY@-WlS6H#~<OQFXm!11xMn}yum@HkecI7>Y_ztLBb$<tb5iv0_Rd>!b_-sjZAwdKq zl;&SASGuJ?8;EBhR4+cE8M~{$kh_W`x?8SvM}9~X{>SnD{&QptAQ$g;tqEq^{`qFG z-ytkl^nR>EmHQo?<>F844SyyH{O>2~KwQc#=ll%F<le9zh}q15+7%l|eh9X7enVW# z%F6Qn5Wp5iumTQx(6!FgMjagPzhNosUb{VOCdA6sz4HSD6XTwhV9XJBx(M&ID2sd5 zr{Qi9FYmm$Y(gWG%ET`z8!&bkd9<Qn*ICqsaeE<gTZ4j==O+FM13?zkfKrThA6a+Z z=*stWIY8^ykLlew{<VG6jgY^_=T9Egx8(ff{7)L;`%vDa0JNn?QAQ^?)Y>v750@LY zk+v26=I9>elKW@MpQ-<H|K;~9|M~MPh?MBSc@R^8jAQm#k+>j4ZXT77q*RucmI~fB z`rhE}pUWT1gK&9SX%AAJcB*lc4ZxPUb0_=ERU70B*uJmZf39ro-dU;F?&6*?O9g=) z5P|}K%I=uE<?RCVi<xsaI8P_1LHY3|V|)8x2FA!RcaK?ox;6ucgS(HHjZ<K!!m-l_ zQHK&c1QR>_25j?7N;FDK_e~skiVF+X+1dSU$bq%!@n*@)(Iw?s-h+BiTYG#DeZfob ziIt{pYfArup_Ufm3>{xsxbd#%XyB&tBm26{OmiG=fApHtmm0`v53)_x1~<Ic9WqRv zX`6hw6MQu|qoSe$^rR9R8vT05&o7&cD`m8DL&)}nlCW>{c+VMB>(?$k1Xo<piIH3l z`BonHeYoSwV1tgK)&jvW=ZPU8Ku(M!*ydZoi^-LFEeKiJP4w6H$%l&_?3U{*!mhPJ z-9@tGjUM4~Ge6yI(6>`~%m@ba!E9c`oqw@6el5dP>%3}RM(`v*3n^lKpQ^nvml-}z z+weJ$tg*q=ugu=Bk5V;7VvRO7bTv0*;q39Q`yVlNl?(^#XkVT9_zi@^($wRn@o^Z{ ziQ08xPhoR+h0-WKzqPEF;6A@ut*pEx^13w-1M32>g}rthvcKtXeXudZ+!?*Owm#9c zcDh&(dB70BRaBiHqluvh2I<Yb$Rmi+gy04PF*A4S>PmWd=*h?~#QYh?3Lo8Xbt4Va zFvj&x5=o3p7@Ti5OFTs1@TU!7E((w20i+pSzrvp)-$-F(HfNyw@l<%V`&wt>H88bX zQ`-tz@`}-!<wbu+@2~MTwmiBz7W!X7_+fv=ga`+rlBh^=qb>93QM-I#R{Q&i2Md+r zN}^~YJv-~8jQ3qMobJ(BuH#;6eGszqv#gBFLQ#is$Jjs-3pado=02!6>K&WX1_+-a zLH4Ag&+xA&`4gzP9?gU8s7-dWg)B}OI0`Uje;qGxVmn@fs%`h}8w$cuTAMW%=eVKE zTg(^vs$VvU`!}vNl<OD?oier##)9-r^3??W(bZV#jq&pd1$A{$f@~z>>wa<y^P@0g zIa~JFQQ3u;cZ5YHB`xs#tDJkZXZ-}co_4g4z6s%N;{ladfd{%b)0!_LsG#9vyK4-I z&^9qQz%ZApZ(ZwQ>eRv$sRJT633Csf_WxopzpKX1=H5TrSo7XBL(J5J5Xg`2{X9uu zTkEKuE5Z>nC!4(e2%T-BBXxQ`^}B^U?$Et`d?IyRFZiu1I;p6q;fk?^OG)}8FhTf= zwg*Rh*%P6wDU`lGu08q+-o(ZrpG||Yq42Dmx>zldt+Bqs1+%kDBD;3levNOi#@{Iv zDcf0*&98|p1POxZy}&o77*giWGa=CFo72YU-2^IrXOUX!U7b^l3}{%YVW{IJNp7Zi zzrCsAE@eK;bQOy_(}+a0nTz+U5O~vq2duOG_Lt>@^=Gd%LIHkmVI+Kdm8)O#&fsFd zJ$GCxDyJBeRP?cnxjt3gF)%PvWIG<xK)fLDDFUaibzp+$;I#VvK{F3((zvQF=om{a zD#eP4O6g#iu8)@<aLX<A9>++;j*gXBhIr>m^-XV38tZf0ix9Yq3hkJ=t^>pI5^`>b zMEcv9Jwna$X^d#6%iuO8y<lbfaFz0s>!@P%!hWCxA;lA3#hZG7SPaH11!Lj)>BxXW z3k#l|#tc-UO2885s*>i+oKPUID>87`U7h!Oy2`#C%9d(jMhuCs3g@f(NFS=76?R-K zLyGt5VN|V)2i=INo*4aL>sWMEP)tHdrGY)WU;FKd{z#&3Y{x>MX9y$aqdUjm>Y$Ga z$lg$Fc8vR>oI+YasvqF}#74^XBzw=ij6P0W1&y}GNWxn<kFGBF6y{XERO(F=E5lrn z|Dek{rc?gxfqBkPxHW&e<r{EnMal6IVt!J7ql4Vd8dE`e&7YjkD;}*yl<F~~z`Su2 zoeEt;CZUOy>H){*5hV|h%vN#{8jyLs4uK5LSFSb4a%o?T9?`Y4prK}d*UJVo8Q_MP zTUZ*e$+)D#EZ47Pm|jsD$%2H0pkKlhYn4^6c8<^$wY&p&+dG7)*lWj3Dr)Pd)4ud8 zG)b!-1g$FLVJoG0v#Q8K;X`}U6%TufE^clM*AvnM7mS)eJ*941b|<vi`BHuU40*OM zP5HTgd-K@dOpSAUx3+Ib;x$yyQG0t?8`$bVKQo?Ev&{^_-Jj;e_nbKu-Y>37GJmnd zFyeP&j2(;QPsK>*MSfMp=%(nu4O>R9D`;qWw9bhbg+GdH^ZBO&1nBd}6JLQ9U*A9$ zk(S1-RenYss;e5{iA04&k}HQ_o+X&Z@eJ;dg)m%Y<?*7zVg`C$)+J94aVo-wf3-&R zKGMBjctco^uS7C?2dIsnb@SU;SZheNRo~CpYyD}}ch0f1=TXs$>TE5iL923|uiGgg zXM}LyPh@?+eE!Y_n3&mz*Ku|Wh}^uEh2;Z_oVqkSSvfgsw&1u61ubPAux)p8K7%C{ zz8maDvXAa1c+>{eoMp=v)B<gLG31}Zx>dHexc4Sz?$^xxwZdx_OExjiD`Y#e@FpB> z>ZKL`@9g00tX~Z+YekAHr&2Dwhin(cIck>7dDO+l<64#lKJ)fz)kpDi97~{Q7FOlJ zJJuT;>r0_a4^!OD3e%v8+8y9zLeIn#hBhAM5=x$F37GW;0m4WB#zDdJQN%-(D7yEF z(b5RYg-Ze@Htu80hmp{9rMqTbX;ZR7sa;vzNEzK}XeYxwNLVXY_(Wgai%`(=F5izE z9thUNI#97v324XqvI()hCHcffkX;CfEUT{8&CC>1UVqPypwiiGVBXi$5VVX48Q+JM zDpqx-&CT(M2i-?@2=0`HC!|CX(e_1IjUJUizCau5m4yzBoa^AVZXyOL+2nd6n3*%5 zCanQfuj%pg!KEitH?Le&F>I{asEe``ws|;qmqe#GD|U629>b<=P*kl7&)e>GQoU@c zg8@1hFKS?5{nC0qa}vEb8*A0tw0d2>dJz<Re4bvDAAML;xqLPLawE~tXwqhO?s7F~ zTpWySJ@Bu#Dnfhc`^M=;EBWFyPIM5|rCXe7NezhU(pfMPsS77-_EU^x!C=4<okekR zcXc85N$u^ff^Dv&?P80@mc%Q8M#aEhZP$D3F>@D37GS=U0kC?I><B;|3FZw<S0c8p zrA@YRaTIk~zLZ5y9y=-Vd0o*o5abGdK@PRpNw4_{tW=kIY8@O7au!#qxK27Brg$(? zrWnwE4|IJ(Nr+pm<M<F0$5{EXlvHw^P1D-Y`eJsg!h=?{)ab*mLawBYOpKZ5nnK>v zU>k8-f%Jlx@^masT4`-M;3^`jP<UF8>uu|P{q6pq3xZk*#L|ONA4-_ER#dONtN#vd zt->grnn%?mcC4u+&ZJ+n9qHj5gDo!HT?=Yl<;iYbHcQXAq_k#K6_5cE)a$k5R>KCD zsR1@rk5}oyXOY~lh5qAa0&&f5GP5QREfB9r$hHC(w&Dkj%YjGm-sBw*@`G6HxzscQ zH8@G_6>qZ&%j|pks-h69`g`MgJ?q;+AdFA!m|ZKYLDYV9cSzRJz*SZj%1=GGw2tM5 z5_>$ZTWe(h$=aF7xuAkGN6=RNBLi74rjM^ryFv*wN9n3)VL=TssgHRYfq_q6_b-fP z{J7U=hc!oR>;S1ghEHZ^WoJh-$%K<UuSt@5fBl%O=%u5oygOkMlan<6Ff1$?Bx)Cv zYL{-Q58M55;he)skjgF*bA*BhJmqNSf~tv8|4>;*&CVuyEiBC34);`4u{|$OXj$MX zu)1O7tH(~`eOcyum{7yRll|e|S48BI<wmt;LBh_$!CrpE^bK#g7tig!l0aMiAh)OG zQf!32zBySTTk2wf8#`TsnEvyjKhrHNhV3Nrw)%Z`Qad~_ghiT;Q1<Ytb6RjdBUjhd z2e2l;sicsd={;$7e*WB+76*`G1Bo}O3ny$~>jX-7YdS?y+YoLVla=)`sCxx_?P@Q2 zbe7BbbtX_Mz>5Ys>UaW|Xm&K^PK@}7K<I}r_6<tJE+3r+-)<vI%T!?eO9u5bdN%x` z=7UPMRZK^|$&EO3gi&96WG3G=T+^%fg8(s9Ju*hdS0Bzyk-;x6F>Q=P8hzC@!~EAT zjX1m!@639pF^+#rtMkY_GFaNszrSaW4~6+&M=hSTZB2K~Pzp$wR?<}sj+?u-rOh6{ z0kW~10VSIiP}IK@;2hu|>nvGk`Kj5_jnlFY`TZiXZI`vAEY%dz6GO?AvIUZ+Ek&99 zWX;ODew30_V<~JK?XM!dK9@F`%-;j+_0a(l%IKKIpq<S80&>4%x;;i$R~(q;a~@dV z5eWje=gcGr$t|I&K^ad;LQHLk%qnOg$1zF)bNQ8(29mwNqk}E(T#D(Rgzz^+>FO!h zXZ*_{jyegVFk9qS3_zJST~%3erj}0smlu>8cQJCUiG3h`6T$!U5j&>^3irmUYX+4j ztwC)P9A6AGOIQHTey|F1O6$<hwC&gz5Qo(Bam)O1hbm9&wPrMY@e)i;k4qr1vgI<a zo5w*Fbgy&%DdNrOy26Egob5%Yx!l<Gbu2$MnUYXY5J47puos%&KVoZSZXS7g;UHxD zRi!&4nEgiR3B<<6HP$T<yDu2)p@mKB1K0?VH(#DF>DNFgBe%X-5eDSGy%J8oMxtci zZEW}2#&%*DVl_Fs!rry4UDRcxI56GFHPr~9CMk^*Vx`;g@Tuubc5>lPyF)>v!Q&AY z>-#A-^n(hcXVfxeeKB&M60Eh#5(mU}>guPo(-n@MVZiMRjuN?eQJaiUoX14h)3L$8 zT5;4daS2Eqi89?VNLU-%Sw4QJ;_E0TxbpOI>0;Y)<GrO10SKCHL|yBAHedc)Qi&<H z1(k%M*jRjvC!qO8=QC7o7$b}rhl3@1;7<lb_L^lt_yhORFb`<CX;8h%+W3yP)CHL! zrzj9KX)#6)VotPd{;0Id2&0?j>@d}2WpOSG<&iaO@;$C#J#3=Mba5N%oPtn~-@42+ zjcp^sR<$@fu_V5CBDiMtn`qF<W`&ykwmF`}r2%Bd!6!<Mgn6Zno+`7fN8!b*6Gk4; zn5Bkg!M%Mw%$*o8a8}iV^K_mvZx7^dnqAq`_6J7^YuBz3#)89N${u`8+(uAQ@m&6D z4Gk7$>X^Fyu(1IDc$V`@tU1Y<R(hb)cvr7;d;Z;^Zp^b2?S03=M|Tg|ZVZhP%UBls z+&mCM5NO8}6<M-1J1azum<>~$eb4?rh_@I;EELw#>K(2Kh-TGBq)8+KRj>h8h2_%5 z&D_OEhCfXLB^fVSudJ>~s`GFb56Cb=DB^3aK-kjb=`@*T!UYj(G+RD2x_bTJ;sv6j zg{ay&I60D5@+s;-g;63|L&aZnY3n=5C0&H+p{O!<^AQtzYrdPw*+Fw1v1EnpY7^y! zg}rv4SNrJ{AZU&=&y`Ba`Z-7V(?Rc1Q$*wk56?GkcE&+LIed@i{V=T^VvBWAx;>Hs z|EVzsM&~yk5a~aIDw#>Xa1NojzDC7PuNJGzU%h|k<x4#SQu<9^?my;?wfged`QdKd zcfV*Jx2?TtxQq@N7#bR(ihbVh8(svpKqC50aZQuPuEp6M#ooLk`TYRpAkYc^v`r54 z(oAa`=R%15_<qIyE>q0Dj7K!B5aa1xyW#5NlS-aec6Rmo>?G6v=&gRSJnXBZbsE%+ zDX!Pl8Lo`c)h!)Go9j^#E2sGfvylxNA|hqhOWD9>x_GfA%FAC~!xpycw*2rq@Gyfp z6gKjD_R-lCo@y%z;0FXX?4z@!SPu5+LwbdTZ4>cAAXhBKwF0NGPDIvat13TKPn=fj z^SPy`M9j?(*a#Yt=2r%_C5<MIo@=B1Wx>~Bv=<bGY~lShc~@8Z&VztV___GS7Jgl- z)3SH<xwC!g`2Y$4?~A8Sc<$Fwr>{A55%w5X0uh20Fy82vz(4gU>OH%@DuX|HrPCHR zKq1NSaN3W-dh{p?)5MITi|qDE51P#f5RfT#vJ0ly>cF7d^{pR2$T`W4-`LssJE6e0 zxdqf^!~cSb#ugTc8OTpRJzwtI1<;zfWH!b{Onbl$v%C><>fpR9zrcgD1O7v|@ITcl zTMqK9ghW@o6Z#VNlaSGJgz+iOKrc;3n7pRpy_Kdr!U*=mk2w0aEIS{*yV8;&xrLR` z$ew)Oa<#BkAUS<-qpcO0RZ#HGgE6V#IU3nZOj05<2J+MS82-G<l+XA6@HM}3p8tFy zICPD^DH{~oo3VT0#Nkp4?9IlyjWiG9vJ=Pnc1mmd9AV9?CuluKzWD{}P}UEf<FMw8 zDM(wRAEuxn{<5{Q&r3^YH^OKCt2}aaV<qNzOPkv%FR?5ouH{3@ksWKY5RB#T-LcB` z4Il1ZcK{VJ45o=^ck2FXd`6RaLo6b_=|&0Le;uib&j0|WLfo?CFcv&@Kh?F=Xw!!) z`rIuy-?LrTqN*Z=f9?Op7Ru9q4HRA2EEaApJz_g^pYZ;#SJ^vU=E+Cf+jV~3)c1Nd zJ0~P2FRw5(`mmoMZtmr~@^7T<x&<h60=G4c^otLn3xk@9!LLravnN5Dwr~l@DtfB@ z|B2+@>EON`7>uKB;8-Z=GK%QtsZVMEuqMb&m+Tq{A8}6k??708dk9vz)NLFtOXlAF z2Iii3DHBzcAh?sCT^pxQk$x=Q19;_D`ZV^;e?Q102826n+R((h=DR1^(>p8>XpJLR zX0r9Xxg5OLE5=I(-RH6=r$f9-=8l0vjlj(6YK0-||K8*A^k1N)1$>ByReQo3;Nfho ziw+UwN|OlNHH3|ikF@F^{|lA=^$`>cJtql-_Raw85P^{n{S$-%9%K!acNzHh`YrE! z1^9m+;t5{!ghuFz!w26WSOwlwI2qX*aHi+X#zZIRE%om&6@Y`gI=jU6Pk#O8DM*K< zu=DXQSGt2r4eM`}JFVUC|5Ev|1d!zG-E@*=-th47J^z2+FlZ1LrrFwY&gHwG;p*;T z=(oU!cjs<IsNVGf;P7MU{`z}x=1jEeDy#h>PaZc?MROThrS#uQm<&I6kT4w>9$^g+ z)DGdo#6++e-~<p-S?R%Zk(eA@hPcuu_S?;Pj_m(KRR*JoVvRILipeTS;c^uVtj_>Y zGKuN}T9D#B$d#BqrAMrf{p;)T5#SmHR)&ZLT1S3Iz(LAv_Jm@uyXD~H-gd4(6o37{ zAZ>+EXq>oW_jd$*!(?{2#^nXMvYy;<wEM)r953*oiBJHsmlh`!G!%_|zuaJ@jZ0?f z1m0bQbV$2R;@6Moz$Ydi0#i+zg{jx>G2bslbj<cu(glk!o~zqQO_M<N$Mr8L3Qa3> zV5WU*j13I|!tKc58>eF3178e!4(-+Ru#FIL-|*^9i41c8box*AQ4LYJ@^UVqsH2=3 zPoC@wC!lL;dL7A2-9D{q{*({To;d`s(V-@$gZ^$14(g2a!T#bU8~k$ljk*k8*M{yD z<yo;I%0JV!g<b_YTc;6DV7I=nZLtJ7pK!+p6iGFB*0wX;Pxr}u8%R*O+s(x2z1iMF z9!N9OL27b!#NO~hW5&*njBDdpYe#FZ%mDyrahUrclXSW+>(FwEQpx@`W>B^%dU%jZ zu??J7{YfEM1qAZJoA#3iNR;Y<`;#8}H|+S$wx*v>wCYMa7x!t*?e@ebh03VP^p^SM zGNL7l=x6H%+CW@eTKxuBe__GZ?jYF*Io7pnO{7CMshg04V%5D3-QfD+gKF#D1;yZ6 zk3`~TH>Ene%;U83t^+>W-=EL-dfJY6Ge_`ln+4uoGZ3W|T#NpU(P7BUEpzoSurT_j z?SWZOr*#R-t4ey|zgZNC@d=^?ZJ(w2{F7e^G6TxdvVO+TB$2)b1gZXzyOnm{Go9<2 z{3-{OD0fLM!0>I4$-39YY6Mjy$!ONYVGE4o**9vI)9<YBYmU#S`qlc9nt>|CH0+15 zAQ<;k`TP5cuB@`{5WgOu_AY2&e4^eU?7$|6;0iBj$kYOC*=NLkdAE^l76K?KIa#xp zfZdpE9bb&ZCs5-6EIc$ch1JW~<1UO9K56)<%A}{^>x=F*IW<u43xJ71_C(#m#*F<N zCr|3uEUvZzcxjP=MBD^HEr`rZ*DJ1f1+N$-cV&u76!wuEqXy3dPGEnJ+`JhcMJ!eb zpwydKtS%rTISFRxQL0csKV6njH83(z6x%ZAI`o>SetlR9RE5^Cz|E!chJv{SIrFO* zYo_|NxKyqZT{FJnq3WO^90#)8#<RX&jl;D7#F71RNxuQoY4slRvp4;8zNo;*BEdWI z^I2=H3%$sO>^~1Br!?LR1GswgEwV2IBk^_k;DaAPqdrqEJUi8Gs-tr&k=h4_F4qE3 zN=oGc3m_ip$Y}4K8(2mLRuhw0E-Z(HMd4z~VU&XVQzDOyEN*^myiqj2sSu!mas9LF zT>Y^<K?T;e9e#^(nZRk(i*8NG{}<BCT&^~@tmLSTTu}wrt*$DX5M>rWFdbc}m1psi zgu&s_sM3)UyFF&%>54$lu$Jhq#OAY$vMt@gP~8`Pkj<8;1xjTUes@L(Q>V_C)EG5A z!|z#Kk_F{-_NrN_akima7#imO2ie_eZ5$^o)w6?mem*KAqj+%<fp4X6a^PVdK01y% z+>@120O<4xNRi3Bf!v{50#H`p`$2_AeLxMd&Obf0jqM16*Y&?CfocGwZU$OY>Z`3- zXq2}P`GDxqp)y{OH2-UJYnbbHd#U0wjcuK&T8|!9tj!W=0_VfBt$!@;u*1t!6Ef07 zw03&ZPOs0A#nxk~c_I)ogS9y%$t#^)ms{29X9*f6j0FXTEmBi_n`dKXydT-%shgc6 z&HtP77^ZJ82fu5fD^&&DDI+Tgii+x73ZHc$E=grjezT<xlU`!*Mb*_NY*5iJH%~Vf zLOhf;_4XLq9>lhOR%tg2Z3gKL^L>Eg&ZmgwfmGG8_yjI7EsyOL9v|}nl;ysT5aVDk zgK}YNI(uXloc~xzR+y?O*6R&MJ~Fv)itScq+=}Fve@`8vI-`{Mmv=+p(|-MR-4W@O zS35gGd(=XPi6yz9*a2$dY>p$BJsK`-s<l3E3tukQ*F{<1JZ!HW!?#C)44YZyMmW48 z6r2gJ+o=O#rN`c^G?&!%J4Bm+a?6GwfUWO>dyTftR7<3{4);E4{9AQAUOom)5)7JJ zi0c^Z+qX_-SuvX*F+t1F;Qc`(5Aveu9TPKiu1?mWxHsfMCeL~C)1Qc$%wl%nU47>^ z*jykE&V9+xa35gNEUeY(84Cb><*Pdgx4_@WfBe{4v!dBAv-D|K;<$5qdhK1tNI<4x z3~aq?7^O%*(j@D4JBqbY%CT(0mD{@=YV~plcigXzWbX$XZ2;8-!Y0rzHn9XhzGnfz z&h|F#0VALD#s3Sm{(tNWaV>3~=Y6mLG_OxNo!_4u1~|+&Pg`a7G+s3ZQOfWz&u}^J zE^>R?q~>AE-Mu~Ah`7Yq5`Y{9SIk(p{mzOMKd!YngI%b?2>j0M*i<MfDeA9cV^W2Q zy8Tp731TIkX^+P*K66FB1(F8fc4u2JCS4NmCT<WAfRd<ns(bZpQ`YNxng`Rv)yIi+ zK6U-`O|y;%r&bi6r4Kgyyc%;Y*QzFI)vRrDs<is9&U|16haL?pIvIzan--g!*~pp0 zG&Tsx3|pFP9!vHC{J^DhS@U3vQCm*B%1T(JC#^jR@goPYxHiX*N+Ke?{tLk)CN@S| zX8?@mF_xb&D96I6U4})P>RPG*d|{cP9IXr@`FMG~^IaG6%V0Y!r41&P;BGA_A}DAI z5;}S1s}@>)QP%b~lK}JmL-nRDW^8Vwic&WF4Fu@y{~xN$dV_T#g=b63!PnN_;c`J? z^~SrwjZ{y6Q8DV5>a4mfD1aQx<#8@xlH8>lcU`a!ds9JsJLjcAJLi|(3a~h^C2%0Y z5|hJ1baaUs=tN4egq8<L{*+ky`Gsa>yRo*N?8nxX(ST8&Q~BtI2StZZcY>ZldJNHq z*cm^*b;bOxF99eeBBB5Nk3dO3%-vkZm>T&+RC<Ulc%hU~N&)Zs`lmrnAAI7jSUkwW zJDW!?F4Ap)xMCgml>(wZNF&oJzXrmvA4?qewojWaHk+xg1<*Dspy|>6A*w#rR?6wp z9CcVj7OCiGh7G!I<T3_UmhZPBC@-dEVzN<ADj6<=HCjoq(0%9b5kVE^$nbDp<L-*6 z`>1JFjbiOLX%v1GRhSPG|FUfMw|Dr}dJ2>}tl`rQx5rT5J@XgI!7{U18P)Ds^_I^Z zoNRGgED>Bj!Sf|#mN)dnL}h(x*F`MpvR1i8XH3q(&t@vePD-{d__7MKB+L?-9xg6# z06XMiYA)Gw#t%NY@EtY=1SweuW82_{I(>d|n_>~RBZW12e+ow}<s0eo6&*00nS|25 z{wX^tP6B))JOp6S;cH)__sb+F7h_ZViivPVlvMI?t6SyMg52Etg8N(VcsL^ubDlUX zE01%U+WKj43v8BvkN5tC2j?Z&)I+Pfz^kas;!biYT`^Lvv-@j*6@O@l7NL9Wq--G& z=2PKDT}L+0v+<(e{ecAp4M6dzq8Edt@s}@~Kb02TwoHUQR6Jc8i}71f($HfOibiO5 z){K5+QC?mzCF#WBP%CSm<KyVjLa=Z0?%(tt7@S+@GO{<RKX%w|@ss4<`qxl1-k}U; z87qGU+6Upid<Tbyt^&fDP^`h>&<~Ugv1hZ{Iqw@~*OOdz(pyd4-LoHLH3=3@iyEL> z?^+T8n=m{|*_L|64~5Um<6t3t?aPVi`GSYCa+Ou3u4Zm>5g(hx0X+;9mIb(NbH(O& z2e_2uuXKWipfRTw8s^@w-Ca|G*7b0LB8e~{835~?f9=N3&RcWVYW~TI0e>#f?>IF; z+t+CT^mFyEKFn@cP+F=i_8pX!@XQ}h_2X8&Qfo$q|B*4;^+dP_6e}gGy|OW1cCl6t z3%3MIx4ufvaNXg|KIMv1;#Fb{5b%_7qC#fAkB&d=tDlEIWErPme;f~j{Q?}Wv_sMl z2W{YE1gTON(hRKo-_HNMee|eg054FRvmn!5bJaIC$ETYsJHr~8a=8#ahJKi8E)-jq z{k0d{Q~5^(0LVYO%|!_qBK`P`Jbzi;1F`3~uZBAyp4P3Nchv5rO@9lo@JO>vl}Af@ z9^{l%F2cybqohFK^S>|K{5*ahoLDZPyvqm!`FUE&t<inzfy;8kv5X$Q+t2$p>4G~{ zm?tx6cLduqj|R>haLJrNnzw$j341Ll%N%R_B?1#76x&u%^6D4h^p#t5DKcO6?mTS6 zBPQeRcW51IZJLqIz$73hXLDJ2tyUjMPlI9-Pv32X--d3AEb~xT%HCg<%U4Vq8$@cD z4T<M??WtAj1)2TFyXt&n(nB_3%4;KM+5KwN?aVgm#RJ*V*ZT0T{)>%0NP)t=W4_3( zHEu;_XYbA&8HHdpdCvG&pW|lB%*k<bAFk8H@;}NYPql;sgGe_Msii2mlgn%`UKGlJ zB`Iaz@E>QyXloY*p(Fl$CSeQvABNYIkIuhIV+0iuNsH!Y6T~7Z`rO&6y`I<iZ<hay zuGU8>19_Q(J7`2shd^UQ4?iYwDNqZGWB`)JFhXfliDeZcdES6b=1W#F4bZyU7|B!o zDb#Ptl18f2zoA%m8>*<5ZRt>!nazRPa$T)9Ke8Muk!aL-u*Pjs<rLo%)y6=KtPQR5 z#1a(|JU=ys&n{94WL8~J5C?5L<>wxl`~QcX_xQA2TMmKNGUAwNi7Y;3>;4{kDR_b% zfK0%raili(TpMKbQCZ#I9Z9n*-9i-4HEx&$;xcj^GY*VT?>eV<tN6rSW~`-+j`bD$ zQH$Po_>7(c2+x<j(+zp$<tco`F`|O~#N!j<dqLSYA#@*5YHVd@3sv=dYLn3jPE?uO zbU`7cLfjevxT`LXKt}fLK8mW&-vt(cI<nN%XV2|N@k}Rvial1tV`N4hNNo*VTvKq2 z>;-QH$a_+@pm<|Nkt4XYqrWGlL{F9cW!CjsxTPXG=DO3p1P~)<*DeKTP9KX;4@MWE ziI}ATD5!v7rF7a8fxN2eMQt*__v8iDdWir8VNO)5f)gp!8aH8}Hu>m~e2#PQVb}H3 z68)A3HN`MXL}O-54xmmbkBkB<@IL(F&1X*ZVO)L4J{dEf|JUxLMq9_G7G;q3LM%4& zFJvA;UoUB>w9V`~_hm(1POifN`-^YJ{yGWJ=x~IK#j*p-!9A%5xj@m&xZKK!BEBPo zmmh;aJOG50ix=xN@PM9bel;9zJlKC>*E$jSq8WHydMQYloj80m(aZ*N{j{lTL61PP zeTL^icm#2AtX5*Fy#5<{K)dqmqVubU7O=}e65+FpEWc^S&t*~RNdL_Ub05D0<;2eq zj>h-S*S`C_Hna$iOtQo|)GjWjRFpl8_Nenn8Ta|^3Oq34<Hup<NMBz_@d(-mQ&>n4 zPX+Jh?%r*~zx?E`JaRh_x`IR3JNJ|QSQdAG>uZqm4u#+ERfo?jWfb5sWMCwH{XE7& zae@4}O(r)QH8&W3gFmod;TqikDqnZa7CHQq^5CwQ%oxUFcN>d1Xqv5G3T@2z-bd_* zsIZ)z%ixS3zU`>TKTOri9DooTLTNctu^M_F=V{q<kUbar(@vy2sB1<r+s13$r7!%1 zc%uyT9uI6Y&jDang|$e($@|Nfz5sAD%4NmcbH`1J^K|X|2kXyOjvbe-t#A48AgY_m zNOb&DLl5@V-#RL13u=gYDXm1w#P(id0`(R$TFJ0V1dziwgQOScGP<Gg8+FJ!vrF*& zt5_0GpZ$up*&fyXZyq7RWf1TPXWz~JuCLgrVTS*tETh5@kOR&FafR=>-&$fLC9Wyi z2RU3aUSWwJ_l_c0DYXvu1H+)eAY`Ds=__7u6#d%uF)F|83{kth`bNtxJl|g*2#1*j z3G>!7#QxUnTN0oMWpgvOF}}Zd4(RorQg`j{A0m~u1?u+(G6m`e6Y_r7WkHue-5+?a z0(w;Fy{lbO6@)+}S>Wtyz7y?HFPW^!|3X@io0E25;8##wr8s2$@NdNSp8s@J(?9a@ z_`n{(Y|zF<qQ%BaF(^{cBr=aW{b;kWB)&7Bt2t5`M#}n2M*Z(M`}@ZuQ0ltbdndX8 zM_OW`mKm>~t}E#(9cbX)H)LmvFe0bF;b8yz&;;N_l36qmP{a?)_`n0~S0u!dltvG7 z7F*vr)N78M|ErvJc6rw<zPXl#;(~)sV$(AJg!K%>nDNtxOwH@0zu|w6PxUnJYQ3uk z4~z1#4Z(pq_~*G=4b)*kw0JRy+>UC8d(t;p2&9>%X$c6%yvYek1ictzlNuJX4WP_W zn@8K(_x%3__%*Nr^IB@XnXp*g{`VVjCg%JI3z?`aeZ)ktd)o4s1pFQ7{r$-IkpLhB zSG@gPb(vKn`%~Rc$}xA#+D>;%hl4ZiG*yAytcU&U>oEibh~z;DqhQ@IfLVSg2tw7H zg~j~8-ldP$RKhIPS0tK+91F^;ZUe5Cfo?#Vclay7(g-U*{L0V=R^PXJxUF}v=u>Bd z)P+|sb=wRJnu`jy?84M<b#QPNKOedb7>t0c21roGY8ti*yzZbzzaSy+u>B_g#X$F5 z@59k1*6J^IPGtZH%X(22Q3S{jMLl0uiZBvprXQSSWd}s-mw&_I<UpCQEzl7wg$lr@ z6jQutVrrT5F?;$PAKSHJajV`J3sPZEMODQ0B=T>HDEvGy>}G~&ykAZPH7j2(0OCSX z&$|~z!;O~P*?C2vNMnOj&cM$kx1H1XFPa}gds$wmv`bgJjq~@!{!Fl&04ecYY?8#C zBwfI`I~M&imcUV1uw@*U)b&!YD`CbEaA$`tELkkZ6z;`1lRqpr2(#_nQZ|4ZK|l_i zGf6mCIR3m15Hd`=C&~c7!q8zKFgRqd$a=ozaWB>WJbx*>H)m)@C%N?g%jdc=fM|XH zOfP^#V@MB7+`JP`9L@&NGizQe>i%@8B#QaGzb!jxD(e6BIw5Y^sPRp#iFqB1J7=Q1 ztulK`Su2t-dt?x23d~AzDNbF>e9!)m+g^pFV<&M}0FmVWq(QlQGwUn|2iK|xF;aFi zVOK6rPw<>C$ZbOds-!)p*s%L8n~7QV!TTDH!h?B{BZGcwOrFy`mjZ8=_AyVISo-uo z@$(Z^ku|$`G4mx<2h2z2^Z8#`_`FMmzOUNw6Thzbj#)$P%^z@;G9vZk`mBX3zV`}j z-T}v<M<$6&1_uU4EH+WFrjDU?a|i&&4K{0B?AQ6x33(cTLlW0d8dPZ&ihU3(Wmh?T z?o4dK*MhrYVVWXf0N|7vz`YX;9j0te)W{8rxxT+mAR1rs{Hz7|()s(B@+<gTFP)Ny zNQT(wSJvIy8!5-?1wTulk%oY&5NvaV3p|*zUr>j8pR&te2K#{K4!42=?g1QydTJc@ zbf>-hH(B|C!{U&WvhnTQeJ1dh!m^sF=h$gq#W=1R+7P!(T<|T@Q3E%_oih%Op7JEl z!nu}bmpZ$D$H@?w@u<0_a<=7kUZ1;QcBA0%KD#pYpd;n6JVUe@z~Yh<w9K4?0)|sO zN~HlSy>*LV;)_Djp1=T+YwuZ6X)Z||l9>sn)u{*i$anWi4_kODYIG6u;K6y4h`ycO z(-Ze4M;(MexjEaK_0VLh94TLF5Dxi<fHXPac3L04O2)=Q9+kKNb{`C^*18bns0T@F zUJ4>y(BRS-P1E`H2HYF)^^Oe6&XW}0p*7=BF_$`_l%A<4Jy30rKbejzd}IDU#iKX^ zLk&+m2v6UGOR>8gH3G!nj{;;Y+kz)t1L^{}B6j(EYq#=gPc=oAL;)4`Me9|_;Fw*0 zuKGf7IM3Eq6$`*vvUYTQtqJ!&(mpvKhq|m<?lZCWbeYDp>rZ<^8+c>~_#Ilwdx+0b z^k1<?d9)|l(N`f*$7QUvTh^keG8SeA*jA0$*fc`V-gw#18pREHBbsobBfmqEtsU~q z%t)LYyq}>VKa@)g{Xi-Ml+>~a+Jz`6{AxN$D~80Cmy~m&xuvD;0tZ<Ha%7)3@D@p7 zYx%A!*2p%S_T&gw`U4a4wwts-d4pP4p;J@hBqBDxG{OSoQBgf?!qug&2WMhUEDcIV zKA_6`XVQ7Idkco_7__JAEmuT0!G)o3c(X-}k1m8a{OsahE|zTsA3orP7{oIp>afyZ ze<4x#I-tI4MSwTeoIiUT4Fyk1N2%D56xNrACLHqjAis~3v`p_-F&X&{<Ni@H5VS{m z|2E|9Qh9$fBR`%A>3*S^fZ7j_=j}nZ@|nXmHj_}#Jh1)yy!yUDFF$^~L~i_9@fc}g zm-jW8QzhY@cBs$!@r=rzGK&9=NI#Qy+B)y+=?VWE$_~Po&q6br>&t!Snf=)byqc+o zJ`f~wF&Wj}s0@~2`HMtI;5?9s!v(l%BRFE4eA5#PQ=Vh(4=+@Msw`LhqquT5f&xT& zZ*w9Zr3LthuV@=%;~6`#s5n{>4ltQ2Fx1|jC|oLyM^TtB1pbWYKKvBLzjo5ay)y8? z!~YhE6A&$HcJ>E=7&c&GUq45Ym*IRQP6ZQ!Ju{B7QfqyqydRka^zTxmGS6qI-@+0f zGVu28j`+eg&(ot0tq0?DL_8|#R+wfBoW)l%ansJH`L5NX0^vai9>jFs1LPXCi)q^h z%^$CeHi1tmWBc`>;h6Edz*N*y2%hQ=58Cx0zCkGiHY&4*&jYT6#2?pypTgT*mVLe< z@PhR7fWFa&a`AbEI8+nnJZEvr>eSo8h?yfZ^2-B{i4oU-vbi>egilSg5gdM1Ufd9P zQh-ww-4FnKkvdM7L)PEQt;JUn8c*^BrYsg|+hZ^beqC08ze60*&j&=b(MsI4k>5B^ z0R46{PUP~fHWD~F-^Jj8hHY}w$GF!CV#VTyUTvguu)pLaZ%+2EynK1b$j+@?;6W^K zO7gzWKVlJ-uL_ug^J4(dPxPX=US`5WLHo_vHa7#HYdLi<0y_9zsS9!G^0zdMo*Q}} zW8L4|K{d>xDem={rm5xADZ_Gmz~#0weC7u3AEjqz=N6MS6~oS(QS^2GR<lr^*i|WT zfAeF<qYZ;x($z}k1nt*NfEAx9`B5rGEj|IF4{|on0XOYrQsPo9e>b{a5F@?D4szO{ zis9=0$(MR<Z)625%G%6<oix&UkRtGajh#Is3z$pwPeP(XlDd-yUcdv00T-=^D3m`9 z6I+>Zb(rfoceZF?<R{L^yq_`7PRpSp#%<<5pK~dzWc0ci1-aM+j)MwH;6e<2@(t4z z7FAR+G4N_*u?l^IYFHz=)9#iL8|P;3en$KDa<;x}Qj9cH<nlmPT-v4rw1-=O^8{;Z zz~KXi<wri-RbByk-_F5@f_bxT;Cz6sINHw`QUkj8Xd$q_hG5FGrcRX>vkp7~%P~Am zB=B(LeR|bErzR-h$b0=8YyCdlbF($eE`(XfmhXrSJTOtS;5T<W1N;GlySF-@_(dA| zKCocAwg>}?q&n~#UTWziii<+M+JM@nzvszkm;k2UOi56(+RgYBY5l{Y3-7($3|+c! z0BXN>_af#uton-uaILr|I7+2i(6Nn!Ge7Cm3H47E7+1TIC)3v@bwNHExME;GSO71m zd`KYf^<aK*efbW5()3O0ur+)tuoGGi99lc79Aq!pQP}_atGt^&X=#(`sI532l0Y^) z^%BIugY?26NIRhfPyl89^)=x-c|apBqflS3MAI&dlpDbxu=TU^vFBICbpsU(n6YX# zol#}sv|EAp!tIwJ_YIavWlw=wlNlKCgO?*>QBOB%p8%b?kV(s_vTyyO3tvUNK@IR> z*}xHIj>0(%(u+IFNhlq_qXtB{F)HnHUae#PS`EU!)y?FAhH7$?8=Z92zXy6tr!H&C zF#0;gxjGaOrju@xv>vklSB>ckkLSfUi$e~F`om*_?1Vv+RLK{kj>58d2I;6*Pn1Gu z-qwH>hIXsUUf7^_#aY=dA9<d{c{x^OKn!ve*oM{5P^<E+(Q>xZs+p^RHxAg}f2y#| zjBRGZyG`2Duv&ZJtBd+@#W6C(UU*C#Qpr~iTW^Psy<XA&{Mo4cZJBmE4MY187MG^{ z9z;6eg`=a)+`Ju_h^<a&0XQC^-EMI`rTPdqc08TvfsLI=KwZcny|^BSdbLTr%n*Vk z{2`b_@k>SB<|n;adxHvHrUO^ti!x*(oz!Oh$apuC_Nm&j6|8wxoDQCLnYR;aN}*jC zEr$U%wgDgMg&rWv=KynXHH`O>CqoQk8cj=5tL=v7X~GS??bh0%4^ER59)*B`E@jd# zMDmdq>d=MNKxz2zHL%4#dP+L#*8z2+&~kV>p$>uYsanMN3+ICo*xF~PQ$B45a4iir zfY$g3=7^)$2rgCo8QR#?4z<#b`uH&$tj1jo?J~R@T3}vS{WJJoLm<3w1k2V>rByh- zC6bQfu9W$}!8$5zRbN+{(}xR8#hl)S$YoxFtf+u7$U#_&Z|NcgXduRCsBa+rqhdMR z=o{4K43dIOt4MV^Y2i}GleJjckCz~2U>2vOAznwKrqi*~1>rP1UIVzAVmZvEC+d{F zumbZQd<X9++;s`^;s~&fo+V(u=iZ=bXe`^=#dO|c@QYsHLG7zx`_s*^mhh|A4#JsK z+O1Dlmfkbi=svVJys$txz?2Qwl*(g!@!(hf-O!jUHbaO#<vnF8iuM!`!flBp$*?Pe zj*rz&JG3IMK)iTKZM4tOoF3Yzo$jb+Wr&T>hysL@kEG??19bzd04Zk!G}$Bjk@jVx zBK>CY6ZC@wxd6LX#2*lYmv`C>lN{kd?UEEATFUnMZzE_YfcZTO#xtl4sf?oC0<nu( z=6yLq`2S<=&Euh7-}vD=ol~d%bV^F(R3e1R78BZ#ecu_CeV1))LnSSQvLwscvkfNu zZjvJVI%FM^Z7^fshvypV)cN&&J%9Y3$LkdupXI)<d%ND(^1f>1LGvbE7ArJj8^7&z zz#|`Y2ve9fLa#A~0TT(uCTt%~oUXfll8@AIIt`1VPjXW@q*I7HOr2&MeJLtVUs{eF z3Y`eSy!~Vf!)D}anAG@B07ap=rlFknT|Vya-zC`w3okJ_+}S~%&YjO-JtX_js*Fr9 z)?phb40BD`fW$y~*7XxjEG@8=P~R09&mrb|`^qOA+>I?ZJl-2Fe3CDqEMlI*Bhatm z#e(X0U6UvZXycLo#iWy+yTx8(b`YbTJc!joIT<^>szngPUPJ|$eygaqJg?4Y)1Tz; zhQE*d(uI%kd1|(Co*aU?0qO<NZSZ6t?$mR7FOp@ja0W5vlJ!V@jsuYyMM0!QbsldL zciJO7eE9=xz!I<llVK%3ABVI5AOeAgi7AoanOSI*)OZLqpgV^$fmmQH5>s%4Nax`0 z>G}@>m?s_;pt;E;bP{YtupSE<Ixp(<WZ6&gBg(`kBQbMc&=rr<4Yc`}9rX1T<^paa zXC$|F;t|j@q+usMpn{kdDGJouhFB0~eM5QU7mR2AcrX)=c(NpGaJ?7<GFhM~z&aud zAtv$Nj?tKh{;(o3*}PX{Md8zz82OQ#`Tz$$(R8Odv&M#4;^YBiw#BB!Buv)f$q>vE zY(DcVy&1ENsP)NmE(AbBxrL?4*xHGk?A-iG5fiUrV4OQ(Q&2N3S+zN6-8r_T3skwi zu@gC-p5cMLYED^*vRa4L-VA%Ezk9QTMtKos9<vK<@I8M#5>%sEvbfWMwPExH#N^08 z1MIUK^~Ls1!keF8@yMTT@L!}j<;fF`D&5wHCqY~8IVEDqhNJHsBMDM^GCXJ7V};1; zf|Mv&KkH2M<wEkaX8^;9dd>o^LofgZ1;Ng-3?vJVe*SdI6OwpQZ9{V!y_6G<zM9$Y z`u%ZnW&D}>)5k^He2+L&hpi@3kSy<st}lD6$HiSkF;OJ(ORmZEV??>qTL(LL-z|O0 zC4B1Y{OR6};ojAWxkRMlZFuf-DO@6#uC|DGK`>b%=WWg+1XELD8*t%5H=N}CITinK z&XgLfIq4kNe%?jog(Dj59+&$cwHkAruKNn<o2PX4MwN(t)`NJnKMTH@TqVoSY+6U| zZ~K?KY<s~#an8GAqC@VJU2k>O-nhB-va-BjGBvYSwmQoO{8RVi&GZNM<l}j{UY3*p z{$X5krx4U%rM@Yw#tA^oPCEOC^E$taZTlYGwsl>ZzU85pm%Lw7&B0o8CA9XGq>jbg zk)NzUw9D|9yR?Vwgx1Ut_ro=eR_l&GUPAlr{%!jlp|5s@aKUGtrts^4K7V)nMuheK z$|>KEM^6Q@e}J}dy|b{e0(v2>UtiRw5emdUA2%=J)u}iV8c8?d^8FE8Ki~1(tJb=t zQvojn`%>a#*N`K0JAZkbjFeJrI0I>`TRMh0msa;5T(|;Ha4=h%8Xy4=^wousmoH=Y z@)W$YST#$+INe-jLO7+}H8AkHB=!Vh{NtrdWwjH6x_O^W@m;h88{pFD?m!>fY}V9R zbbwe!F{MbxbFG4z&!r`yqN}Pj+r*+hO)D^=+-ukP!@WFnt_}5qy$(02C1gplmi}vA zzX_1(qdbxEk^!P=7hOr_bwA!Uh0aI!(gW$$99HhuKZw5$MI=LnCpO2_{_P0OGB2a8 z9lpL6iZ>l=d6U&?$sppI<AEN*1SXh7xkzZ}qjT$wvl$OOfpW2PpT*W=-N<D+#@Sjt z_!*xsgI@r+9p%=9+@$G);*XwK3_ScpJKq{ZUYp0|+Lk}`?})f$<YQetuYTOG(!VNt zt<f_$Ffgt?Pk_48fXGdG+ms%#;l6h7O+vya!%JpYJ<3kHPhF$&J2rheE5kSZDAUKM z05~jFJYBvX@?*GoT_sVT;K<8L8rfL%<X~rSe*eebuMWaPc7+g(oSK|`t{35!=QP>% zhM(vjZ{H{+dEm(n`;i7U7jbVLW*KSep32MAiR{whX8XF?;rgJDmg+`EZ!$_q9QB@q z`@J7MO3o-lhUz(mbr5-Z@Vd0$pyM7Q7O%)<<J{g)p48sHFuHQWx@j)Ep+#sU@{Cl` zSYm`~jvMOjL8c!9uX+ITwHVZ(U{f+PI;?(!gh$A8OkZ7_yxj;Z<-P*5=US#Ueo~-x z1v1dOlLCy99)&Qv@hGC3!br4d84JW^WbP5PQMa?pvMw3eDTI*^2@M_Zv2SSB-&hb# z*TEyP>gl9&vKD4$%{X#N_F!HfW^X&x2GQ2hL7Zd;8pAJNzBo*u4gF*|N4+?~CPqym zjgLcJyt7guk@@*~?aaI05&<XEU%dE>%XLw2va?ttNiHJs*<m(P`bT{%l-TUhMdz|q z580V5Omr44ztWi-9LI(BT6a+Ks~8WbR=E`t7MEjA;Na)yH(Qw-L!#&SB^06zkVOtD z;7p47{8@891K%x)c%@KX*A!Wac==<zmE#m&o-$3~VKcX|XeDUqy@A(L7duUIQ50l- zq>##CR#~Wcp1D3%C6*eSdGYg;@5GlNw80NWjYM^zsL;0pi!*&taK<5(!m~izxMb~0 zULJAmdw#qN?}<0AdmRfz^pm~$3LzmOFr9(A#x5rpIwBQlDG(toBa`dCY{#XYb4%In zUPSrr(a$C_7Fb3rE4?z~k*XUvZk(0!^EeU$5~sxnbWL75d9Dkao~~wLfqh?50gPm7 z+FG1Rt({6aCKrz7xYje!L1xm#$nEZEqMa`+bTwjA4D>46V2aTIWx#OZ_WeZJs5JEI zf>a<ZBVAg`21DDh?KzP%72`HwiP?WbV6@_(SX-ci=u4o~@@GP{wY9PMevDfs<MlyO zMY9@sWe*RJsRQ5H!C{_Ng&b1hQ3cwaO<8DY=_U+O8uo8)MN4zhkh99kgHKCKJCB|o z3SDuU)Rq$)Kd<NVkxskFQcLn>*ELGXtiQ6dGM`b+5sdAZXMqXz-rfvX44)2Pq2@Tm zC@KW*lZel{#5>>O%Of3#be$G|lbBc}QfAglEB`R=*P&0zdN&y+WDlJ68O$3?Rl?(G z*(EEmSvxd)({l*2Npfmrr~+MnhLBBGR(AHhdQvyhDbIw0?Dgoj3Kwz9tEsI8KUHGF zhnr!tthkHLe$7Euv$eIgXQhHz<tL5>!TKMc9j-olG*Ll}+BQy^AMdc}DYzFd?3lXq z=n;nr%IybVaFh}i>dJf&*x(%<9p4`OPA5x~&ohvRn$f+N`d0fog@m~A+74$x=Y1>} z6}z~;`s8*aP)*zqU0QOUA8VC7`|%@3SE){5Fb0$U^y#1J`gr7ynOO(~O@3S{ah8?E zROL=A2qPpoG7SdHLAQ{blUGF`LQcFG#d%5;IYdWSQ&XqfOzwpr6V9bsGj`tHmP`RQ z9Ov8gvW+3S#T;5*G?!IdlJQtDrj?FJI>B({(8<2$B-;o%Pmd+s%Ba^O6p21c7n-BL z;@oqPyG_#OO6$eM?aRwus+yy@#L7wuy2-xuLuVwCzg!*Ah0Uz{*nvF6Wr;@WXG;Mf zRH&-r<mFWfp`+u#B{$jIkC4h%DIMhAVkkut+c8pazp4|sb3X%1c4ry^tHH_1n;p-* z%SNa>Nr4%%XwwImA-sBt&+yY<=|F<`J<QxTC^$HwrKJTz*KI3MW)JRlso~oNqf24~ zF%ho4tPqC}rkU&YM<F5Lp$Luqktns;=Z5?H@ZWPQ<GAto0I`K)YV`Vo0+;Ko+9W48 z`SUBGIYac+jMzhwoCBWduZO6_^n9mfL5L8tnSOI>bNgK4j@x#SDDED5^w_JnwqSIx z9WxzwjCgU?=^t>E#4D8E+#9tdw|Q*!BgXpNC?atSxUy{7T#OH;%=e1#<himRs>l@j z!laMB+0YXntn=y$GN0xloA%$Yz4W!TJPIm;0b8i7?DM+@caI!C;Wmmlxa%&OUsR+W zm}4*^uco19R@HzhCyQ>jYxCRhz3<s5;13|~H`)P&B;kk`oHTkFMuQQ|CG8unTu@qG z+0ijKH5Ho+Pe@0W7Iiy~G`@~~Jy7B3VVMRL)3G3amFHW<$Y_u3FW{#Zxp}$$Q37;c z^XomkyhLch`c)yz%;{~rcs431PB{FuM3ra2F*y2?<O$1}nXaU<Bt%BwkB4ll@?9Je zO>Tc>jPE+Oqw_&RU0JwmHP>brw=J2?lL)S^4U8i5bFIRjmCtXZe!A1YFeS7n4sP(s zr3q)bk4am2Lu~6##zYdyTtvjgzajeKjY1)za`F}d?xrXhd1Xd6B!}EkO9a|XxR;{E z;I=~d?Z(&+qVo-C?f!rHwP{^_eH^avk*S~AR6-PiK1m(DX1=AZZGRCFabkjd^U<5% z-d)Tl4Qi<AtBe8J4RSk=@F{VxDupd&>z{4vI3&}5ujX}La{!jgt=53Oo?~q#e)Fu| z=6@B&c=N1XuRKvs{vPH7Z(-#1*7r<UNxihGg7I7tmUr<|*t5Bb_Fs_02&;(|Eof7R z2A+8Jevf;AyDlfr?2JyB8oi9~dh~nN4nIf!u2LhIkuVYZ3tD*ium2%POas0993P*m zhQ7TVuDkNX2h$Hv5Bc~#Q?j<sP)|q7P5;mp?hm$*xh&c=H3m0XeY7gh1P6xTAZlXw zf-bF%g0OCrbCzy-KYlD7Nb3fa4U!5>#bSG-P8>dbM#{&}PYpT<ALN?Pn_CO+-4q|~ zTYo_)JgKs4Pv<xmlzSK@E;%PPGS5~I88t+gU45NAXJ2v`jh-GF{%ZRN;@?}hUET-A z|F#yxMXVe!Bmt$P&r_*=o04JFfLT8GkzRikPVzsUzQ+R6-si@7npG*}Z1I}8!9K%X zjQ#@rg6+G0)uF+=3V+*_dE@O1pN`z!YS53DZ|kR5c`60bZJ@AozvHbw_BX??>U!l1 z#pC<d_3m@O%a5@NDUId+Jp0oV;Me>56Z;+QE^BWo>)D-g$)6LpX2eg|c|7xx3+%L< z-s~o@&ZVC3{2$N&`qXA=1IjbVB5mNMboI%<er*tY=MKaD0b3U_jHjyQxH$fbM2=V? z(<_V2w<g?aVWi6q`Coe<T5^hw{j_i&P5?N$t^%3c9u1EpzrN6$Q%o7HmI4|8sF%r) zRQDej6ZusLkDo_pz#rj_z(hq@T{I<B;eLftwW$I6FH18jX_)ReB+%^1Uzttal-A_~ z`<X>`sjG_zKb2JmFyju(15>%q&6|%{<s*;1UGKB2<y!eTna|uT+S1w@g26Do75$@2 z!E+|)KVE;=$q&3ZW!+RyeECj5JMI)GF1JDb&F#WAa(QGhV4Pe`ZeiY-+9emoH}-a6 z`u%L9#oTCfV8ZbcOj4_YSnuR?Ny!!JXqUx~b`$K!xZQ_Y8Jk5}pEG-Y9-JTQ>&)f{ zbc7W1oJo*!wI=s)GmFjE@$P7cv*r8O<*rwy(>y>!ONNEk_fP-~=Mcv5vd@E*UmgXk z#+Fe^My54-V}_nfuL#)P<us5kZ@5ePf9srdqE0qT&SUl0l>;HhF~_<3Z!WE@n~Oc@ ze9-8S9z%3;;g_LIkx~(A!4d+TWSoli3?u^D0h;iQgqh@c^a@kgAM8?9Y4u1MU{^^T z&C{_70adTaaeS@=zpfS_vH;1@*a@d%?xLl;I8o8LelLd0wlScvJ5C08Bs^K4V=EQ4 zK~@dY4$XN;gOZbzE1HV)<(r+Ub?h_>1+J~pj%;JIipTq{R}oP7mfv{J)T*aIiG8{m zk{R9eFKX8f`~QYd8mWU;zWjmh_8#SK`xijvI8T4^|LueK-lL=b(A9(M(*c1AHf75a z%;>eu?$`Pef(odfdy-YNp3}biG@YoUfap3a2jbDQ8++qALGjd(m-pA!)^-@T${)*L z?882K^gF20y$-Wb@-`puxa#)h(Qa#d+i7unv#+0CUSjYIhe7Hpv`-?3^J5K|Mx0dk z{gjs{BD5T+lS?}VN(^q`y0@6r1jl+e)=zCtbAR6d6Gb(Mj4)Cc%2rj?)f2}|FlV1s z#ICHkrfX(i2UOhdC)o2(Qftc0j2*_UL1<-qzN6MUe|()tl@}`>W0h(du8)`p030rC z<Rd_Llq85>_B(&nm!;Y~H#Ij`4PP`XKTjd*(`E%=i22d@01iIBHms+MiwnoOb4?4A z-E^R>W+y2uy2`^gFS@a2Pdhu#O3~}PXTlwX_Vz?9uBc{wd6wv|azfBr^>sa~6w+Yd z{`~}h41ynKibG%Fi23kPs6~A^zw2V@qQm+!&^rKRFm8-WkFY5e_oQ|cbF8VZ>Dsx{ zt&O5O01vdw+zS`T-AQ*U9=rIt4Aq3Vetjv~*3=X;W)eM_z0@#dH`Y?i9n@*ret-Lp zx$2~7b9gw=OoR*BCqnn4FbEBuJZnN-EzjagxBY?Br%&e?)xPp~6mlV{0vq30HCuEW zo6M`<S1<esv6&KCBztbefF8JIE&(D=;qju*Z_C-`zhLZCP;~+*nV<&OSPIm_cZlC@ zwhnDJ4X!sHKX*YV$5g4x<9X!`W<PUt3xZ)jXPf21ayVCdI)JuK$fVuf1tr-gXA3Vj zHv^XID!3QlhhEgnzsukK;I|@4X0&QbN=nh7Kf*A((~yrL_fEx5^wPi+?U`yek%k8& z$Ihl?#$KZv8Ung>6=&xHny_kWYWzF+j_uPfHTLuI@nOlOuLH0r)j}t>7Q6G{$u#QO zvrOH>0a}5KyO7zOJH4*?`T5ZpP>=hCyDSf-VsW7r1B$n9t$M%a<m3Pb`7|&*;PB}B zYa@=!Rj`?jt6}-<hh+iL&K^5?@B0q4ZQD9M#<ABDyl%8(!sePziGkNq5w!m1Il*YM zKKtP?;Nl>HIYDRd(Q`mpuCP8Lwg=`%tNrjf9-c->{Q=xYJFh=hRbh(~B@{%cISUiL z*lwF*Ig5^Td$){g!<Mt5x^ZBDx~h&<vyVorHv%VA)!@!}CE8-2Ag)Pd8`lT6j?IyX ziSMry2n4g5V0PL&W^iSJEKo9$R9I*~-%`sn-Xg=TBqQT{U6vK7lFR{UF$h{mf;FUU zg~VAp+kmiMU7L37NYN*j1tv@-U(Wwh?zLyn9=_Y}wxJ8%3rQprA2lu8@KV@Z`4i@q z$SOdX!XvOXjR5JzXfFy(5&Z5;QwygNp|w_ZfjQ_^C#~~GOXt4$t_<;bro{CYqsfc6 zUm{ghf+YMH*|7wUlv2~F;Ru^oEL3V{l|wy2qnK)S;aJb`J9|CrvN2Xa#*5d%D&;so zU$vC{69&K=H@7aPq^A>b0#E^hF;t(c=w%>6@k|mj1{GB%_Sqg3H~%x!)6=BZqyT9j zUxd%Q#|M~FNvRwm8mi|2>A~2Wn_8+C)F(otLPEk)622N*eSS-u6M+c;(SQl!T#vEJ z4TE@qKEio4p!R6VIUlVrYM<EB+H!=M8CQ$e^{Y3|PVwAWha#?oyvc4vo{^DpYFdfz zp+n&4z139dcLK4(YufZrSiLa~I2eerMGC0oierN#BhQaN(D}l;aQsaObG`kEK{YU& zeEM`tWN~d4IBaarN_BR2`aFHwv@$=As2q10|D0AQ+i59a#c^IWS`-bK-0;Bud4}0? zC+MTJ>@7tAs!UYT(f;*aUq?`BGEhi>qo$V7^f|d|eH~T0R>P@X>Y7V4q0#F*mrvR> z3Ox-7K<R|e`0SxOawIt`OBvxb@#n%F*s1*=ezPxsFC}q5Vk`a>=!fs0D3jUyoEKLr zi9On=QtiLL)S6}s1~)r6*Ui(g2e#B(UT9P}HG=pFwqh{_(Uf$Z{FAvI!kYIxw1%64 z=F4k0Y`dMnrcg6xXVzEZQXUn>-OF$B3h6xk(f^B3BOV5Csbwoc+nrwN{u9b+c<nwN z!{_0X`|XzQ(Us7S`conbG{X9W(HmO^&;Hj?BeRK1Y{TVk@xU;l1G(3U-gWLB#gjNm z{IOVV&tn`K9JPxrA1qKfCLC#;n`*BnT6`9xwqOXOMjdOYoxNRfPz0w`O?|bJrKM%n z;Khp<0}}u^NhyP(UPVMWksXRZa{YKJBTl_!u>=&vt*!I*2Z#L(Zbh$376Q%?!Irhn zb*Sx`L9k_}1%S`Mgpa=Ts5KNy;`y=Io=8T&W1_m5nVH(TuDM5fkc<-pKOTEk@i~-p zfSAk-pfd%)42=a^HPc>t%9gU{&q+D2m2wanHHaz(42sgFa<j5ZoRN6ml-r>j&xAlJ zKm7p<`wOzkzT&Ca^Yd80i!Yd-K9y6&zf{?Rrc)|_aN+G~G>jL>=g1K~_M;Vy`YV2s zaZf-0zNz5iG82^%9Xwmo>c7Br{(~>@UC_+s-@Yy*Cv@?;e*7U@=u;C6>MIAftXTbj zmI7R3xajWuql^UHRV6DyjD_L=3tI|1!wJ<QH<@n`Qc+Lu{{V$5MQ*;~3@5fEt>~); zDaGFrDlkQ)`uz4&TdH0{kQER`Z#E?=K39C6|2v$00CtyiVAJxY=Q;2n!1Fo<m+~T> z=2!ql{eH7y;79Yl-{9ki4<AO?j`PC7l@40hZYR|DKGT43mZsIEaM`Ul)t)Vk%-Gbl z-`z8sX_BqKQd)Yu!8m*DiwyUeTJh`G$NT{L2Rh8OrKDzLwCkVrxcs>SX8pIX`!Tjc zdUnfN>qo(flGN1|{>^|u=f#Dj1>gDmzhde2B%<M7vU3SQw?VvtfdL&2Ino}NO2D3# zT3j0zEI;|J7!2*XzpLr!fTc2N)3|7|XSbTBv%@!loAtGpUwe6dZ_$@0Vr{|fD(4b^ zY_<0*{yKV+3s$(k)pGzYI`%>4oH7r$3>ui!R1T4qMf~{MUhe+`HKycc-L$Hg+Y*P+ zdEMP+g<GTay^rv7EfAuLAP#Y}MG%D)k46am4-`|zbOLy|w~%z_>A_%(7{{-OC~H;{ zf>1^_;Wj}d)M8w)cB_#;y>H0~KBZL>+q?<_hq3*S%zkZ^vh905_~R;p<~mD;Y=4M> z-h#<LJ*z(yK2=4_z1c!)5FYDyWxnNCD0<w5^acWoXsQ7)C2N(a=$BDte}$0l%L}~b z)@iewmxV$w)M1mJW51$9_%!*^oG3^YDojcH0@oou^X|>b`Jbi*Al+~Jw}at`rd|VE zxiB?c>(_qTt?*|D2kP{LG$79w!n8}N(QaEa?Wd<L4NY$JaE7)HXhdw&-)<ArP_hv9 z|0{;9v!EzRldo=WE;f*Of?isS-fTtx<=Mt6=8j%e?;El8frH^!%v$bD4tkG7cZ@az zha+zTLLn*Iqo{ijl=YS7+>V`Tjq1MQ;B2@Yhn77iw*Iziy!M-e4YE_dN(IgJ^c3oe zdJKn|>`b%y(M8)F+ADJ*AB;AZd%GY!oI!N#O6lSRvlq<-+J89^jM`!wLp<8x1p#kE zM#+q{o^$yhS>2N>-SGh=4gA_0mg?IVOs50SYG)ZfBNwh(!--Ejb;J4Y0U>sr17)JK zE7u|v&|u~Blj(rQOdEI`O{qnWE7TnalM@pq0%=zJUZ?SN08lhn+xkieo|IX267<Fp zaL<U->rW7>o}6@7+_CF`DjHpyL2VA0Yl>b^07LM&^BOMTN?aLwH8mwgiXQ3klID5h zE}pmq)#a$J?dL(UDYx<*!MJ76-tKookmIbVwoOAcML@#0vq!0aaV}B_{D3Vq+k4<# z9ki_cy|;G3?FW(aNdQ#fVCYf0UtnAQTkmwOKB-(R&oglql(xC%D&}Ip<y@CphbktN z!<7ws{F1i-ovY_x=<#|%qx^2i>NlaJO#FtPkdTl$__WgVdlQK?Yx3WJgL}`hwO(+% zjJV!DNqKgdwV=NIBfVb2%QKQSrhMi!>5MdBiU9xnJ4SZPUHs?Ac+DBkc#E}$D~wod zG|15u5YB!za(8Uw(JNb4o~p0_v31RSqEiGCJw!J@*(x~_W$*9dMnrRPa<+nxFA(&6 z5TSaSW^8l3<ap%?YoH{gIW{(-=F-YIt?3&SkEG~chaeU+a4D`hj48`uE{R9%**hNr z+V)Xj@j$~|Z9-R9s(!Ca(#j$Q$B8RZ2IS^C*DOiLz(6A4!Lk9WmFeojBw&=*&ekM1 z5jH_VjcCvH!u6S{iok^bI?aaW*OqO{QfPxyXB@<WyZHF=V{=d!XlPoPhW^1UkZWAe zP`cXZCcLpWdsYe(46;oc+w1dt;_&N}Hc$_=R6Sk$4M4>7mKJ3${W4v*#mUyUcOcQa z#BNAhWaiTub5m1rayBk#xsQNXXAF!CmI4;<?r&fD+NwZ%IN&9k!w$OF*nq)u>EzRZ zs~dGvXcuU-U0FslRYj3k98-b%X6|c{0x9UM%tQ3CA9)>1QLC2aDycpB6`NjpU%7@B zDA=)SEqr%xxDZyZ3$L;1#yU0pqQPTX)}TDAZdM=-%<eo7-@VFXB#MDYQb`~pJ^r0# zbDTKS>P3cwXui~xbhV(~48`ou5sSQ>yqe~AD69}sZ*FBl(^?uwDsM{Gf<tq#($94f zHVYqu<*q%WC((0C;NBwnBgilG^M{~ts5x2c<~7xNWAH4sJ>Gv}Zr};CIpE;A%e$fs zf)gqq?^Fv8<vf30c3@zjtJo$Q<_ZGY3X6I^oFCRkU>ouRxCU9IG}fk`FkEqdyAT@e zU^#xpSjvvkxjqAUsQ^zw9e`>>KAOz1;Bf|*?5R_e^mjATk`-m_vtb)3SzqAah3Ob# zhDZRMMtVzK7%#v5aGinkhaYGEl0Kht*AN^TU{MFlBvkq!MJV+BN!#S_57v1`IbX+> ztYyL1+{aLTb7C3Vbw+GM$;m126}Qf?x+a^{FJ3?qw?)!Iw{`18XLfIt#icNZ>a(Gv zV4}(e^VG2DYT8#j$1Bzs7;<k9TsJZ{GzE{foiGMT?N-%HE-Dh13%evPwp4x)FdvH) z_+G&fr>o~a{c)wU(IfH0hnwE7Wr0GY4R8v-b<bs*fqlo`JtYgvgX0-0fI`5<<~Z}Y z90?+R`0%%0*Kx3NxaOAW6|1*43d?99?|IYOZGTdb{;2uXi&NpVbFDxjaUM%Z9jJJc zPv7bCTq`iohR6-B(@><ll2%xlUPfd2>C(hRRzC(IWq`xVZq5DmV4Z)kV;70$o?0m` z7P=57TeO@Q!Dsj3PuPeFgbwCbgCBm5cN<YQqAoWe|AlH!OLDxoOo%(Nd(4FaDCxK& zHg0Y@q8KHiIywP-X(31Gv8IdGQY}rfH`Mgh-T-8xp}fpYrTu<DUD^q80{K52iOKMJ zAm2Y?_(7Ll;4q|N%)8gGSLM-A=3mT|JW8!egQ}}`I6U03FaVngn2u(Ea?H)`%0s(V z<pInK2?^yqefs+D-MhgmVj$`H!^el37=e(W)I8IWz@Q)_5nGv_52EooGx09g1|_6a z?2+TgQ$`?Kgy^xF&ccpB=)j`Y#(SWvoJDMyB0|F0BkB|7yuE3V7<To#*jS{2=x1(G zQRK7TyTMml98cWE)U$DaZOz}Yy0KA1+@+9#;l%uB;zmZOzKb|k0|!MEi|4+88G^PW z0LHT(S4Jwu!nlHk!My6g2KNr|?3XeBT&{+;ZCgW$3JBz2fclHpOWa%+elAf_v}u0N zyCu$+2wA7^H{sH|#hdQ#CB_@Wg0vI1F-XCDygglVGWWpIe#h_L#-2PqhXHT9BHeI7 z8|2%hBpFnF_#1kpduF_I!z}G^FXP)XZ4t$f^bZsRncZ(^z}LucwA$9D*)hIpgm-p` zgi>o)w?p{R<qTC-)zMec8^Fh9J4>>_{ZYJE#I=7BPg(d$Q@H$!R+<eelkG=tM;f60 z7Odj~A&9D9Q(Eq6Q(KD4St;<See>P0q!bl(O%?)jWa<VDorW0zkQMa~Z<aLNI?eng zp^}>#JZMWN-|wpk(e_Y9j&;+1VcYYm=2IJazdq0c0W?b`nd9Cg^Z}cKV-pL&5d%9h z&HD(L?aY7C!>zhe>|>H$=XmNj7g4<vA$W2NgE4Bn!gVGC1YPa5hU2B>0hS1vbm!n? z>Ok82IZgDqXs-UG{Zq2Tvr3`f-72B-*rx-J9)%nE`fS0WcM4!<0;_^!72Om#6VH6s z`*9H5H>iP1I4=~lH#;`skdyMJ@ZzS@e!l`F(R=SiH(<4$#XmWxZ0mCP1Z&1jX)5sE zDHgANm$smQ?IT*}dm<x$kgb96{KFQy1UE=T8c!Nu7)0W4g?0V44cfHH(Y7UEnmZ8c zs6A&5+H6Qidskd#5ot?H_umA`0GoIHTe22zvaRE5SA)E??{Q^mP!I7tc$J0Cjpjyf zxQ&8HgYRGdVWW>!!>A=YEFlW3$<ju3xo>h)*#<|nrDYn7{efaMIP++5|K%A8Q^Ka_ zHuCnt-QS-8-AS1#?I!&2Mkz_xGo|%<_hbOydcWp!^K+>p^A%0l%3!<bb)T(IP0dh; z=!pDD+Cu?Nf~W7CfPgwy9oMb`ZWV){<hrCE9FEY0TrnsxL;a`#0_)J!Nzprj|L!qV zx9P(^tkZ-^aLXL;ZD~0Xi$CjlgaH3{SX+d^6;(C8beJyo#achwTU81VP=@kXn_{Jh z&@+!StQN3-H)Al~-7_GpSh-FKZZv6`M5WYn7eDW=`Y}1)-5C|Un?<WpBj@M1X+WaI zQCVrOTYrP2a|;N{=p?Fd_kTRiZe|rTC^daGvc?H0Q}fqWnVSCr7ooH+q(jm$9-ta? z&zI_D8`pmYTxsqbe?Z#b3OKqoHp|ZxjCK4P8dwXTa&Yr^Y<bW+qtaI#`UZbRQZrEO zl+a>H^Q+?SheAOg6_dV`zoNIKh7u^awEPXdIaxNv3E{Wa(htdQ>kk#T_h3t^0K7$W zk@MTUXec6sGwX*TXY=AUyLLysnt9(pfSZ=~IG-r|UQP7dqx#)Unj?wT&0Sx%p2J>@ zmoHt*`xT%H&ChfP2lo=Uy0{!=1zi;TA1JWZWkWT)6x^3vzC`~@c|7Z{FdROmmEqm$ zBG4|k*BnIt4_{~qb4fyFm-H4u1&Ua}TRp!v?YQWe?njoy<;`G(T)NfVJIkxT3L*<W zO-=tyfqowChtg@ukTm)0RV~0+3V+-RB>+;*u3R&tUuVU{H^xm`+(Z<V88dV7`qheX zmdoZv+CcNBX#<&Edd+Ax?|(SNfp*h8PjKsfum!~pelxZGG}KFHAyEkawzWx`TD>gI z6aH1C6S)MabGAgNJaYK3y-kep?F+|3L~Ngfa9iGGCSjq>Rt0Ng)4HBF1DbTUOFu`e zf)#^Jr55wsPVj*x1WTNHW^SIUAz!}RPM8VOjBcKaHHI3(YMM85;vjhjvY)`t|1oKZ zz0Fby=984X5#4iT8I|~z1DKe{UDErZ>|-i>FBYghfwwoE!LjBeM`x~7MN$;5<_m_# z=txi}Ypj1_hiYR=kU(sgmwT?1XbS;gXN~4VKORl_{1x(oSi$v;oKES4nrgv;yjQ{b za-1reoc=}&eC2^qEps_ufffX~GeArR!cR;;RMV##j!5_kFP{eAZsMuIBy6I4^h{MG z(2R!6JdR9gZ)c??Wdmjij@*7p#|ko=)SVqlP7ekGk^L!OE@epEG`!?}u9TuE#F$>g z<PaCmU_r3?dW4`x?ufYuDdNsa60$=2XNv{Q+t@>sEf<gO$2j<>N-w7NKVnXfO}vhN zBBu&c$l4<z!<_{6(bzv&D&2LBf+~7G(znzgaq|7?yTPwtCjFJIm4beJOa4jLp33Bp zNE{S(O(`qV-JuYfnA+0IAUviE1^L>c6m9!@-1Ys@S8k}C6=%4--~egfw6tsUtPXaQ zCK#Ho;679`R7(JYnxwZ=w?4AG;k?8xKG1y6N1-;P^Y6sq$OnN5z~O3cmWib_O`9iU zTcAo<a-wDQW7*dkSt8whq+nmw68m@w*-}NiRVUM_rEFD54_#|!t3~R^mz<)pO~ug? zs3A2j7{eo@Nz1mQr7l1He3O>K_4m=(gb8;TH%N2lmbCDl*%=U0S|+g^pG4Z|E~YG{ zVpjtODQ-4_ZrL|}yR-9spUgsE+`dkk$2ET`Zr3rn7w=5yYFDzd&`IB$DgV2Yr}js4 zovXih-jLY&*Pp)!zCZ`Ld3t{Bt1Ydr54Jsy8yRettgkO6+BYnEh!PvCmrs)GWf8Fp zXvuNennR9Em$caYCzSFBS{+tKuQ^V5dR>xd(ujzv2*$Wba0xF4afxa8bvp!IQ!Y)M zJYsl2UDhjc&$FlMHyuR8KMJVYY9^3A<i244=hprRlq!VFh38RHN+RveUF!ca!pNmx zM!D)?)1KE1$s10t?AaZlJh`*}NIxe^cu~WtlBXWC?W2J8SO_9Eqz>~u=P>EBO^!S> zA}!-a(&)|iCz%U*RSQR2cy5t%NCKK+qV^`K@@JV<lO7136PbVAHODyMu3uY?d3sL# zgY&Tbta4$H=QaBz?}s-;GM*U?$$Kmp+Mm9ID=M%{qL>;*r5KXiQsdty&)6je@S+~8 zzd#sx-XZ^<ddI$FRh!yV-B_y}6j<2$*85?_89J?`a_@RfHX9*TmFyrIjffpcrPIOm z9FK3UI-n+oBJnGkstOgVXvQQ?x`kp8yWI#@&iBX;jJ6;?wMay+%#eHniO+l>1R>Y8 zkmgQ~EIC#<=&p|*ZupB>*jkWVcgkqQzgg3}=eR)b5_(d9tt@X$NcPmBi>YeG8GEdj zeat><@ANuy=mhS0c8X7mzA)<UpmxoXzZCC~9gg!|V@nM|)YCDZeDg_o9zEh;fg&d$ z?AiF2V~X~ph8y~y3ERKdAkPJszE#|><CN+^{*X)Jh|nPKQ<3Ppha&6pTKXvK7TT}9 z5MDTuUf0Tw{|6;&{yDA|x|}#kcYC1@<LZ;vJLOLPz5OQHxsI)-29roP)bRO|or&tS zd)(@6T#s2>s;{hC1E#E|UV5<xlQY;*xb(7=Bw#6>(!-uj)_jQmDu45hebRXUY++Ei z`&EqeS9xFV9jg6xOi$u(%||#YUcEi-{+<{0up(YHNxE>>UZ{}wmP_Zz5n`;#J@RGT zv#7$u<S@jmEc+z6utHv~qyT1iG1T*&1PkRzMDu+3ximvEA2$Y3C=_OnF1M>%E_)S( zn4Wayz}+NA3WcRLcyWXw8Z7RH6&_aV>|qy*J|~9Sqh~*zWtW7k|0=JGwZ3%BeMnvp zX0fuZsWZ$KR<+3$)k`R0jZ-KFm>s3Mg}m}9)w|rkHaH5S7J{|czw}hAW&2YbMjFPx zEPq(;=^Sss9C!oM$ue*4l093RdRpALK%fwdY^I-1Xfy)N8I8zWW8}9Utid?#;nO)X z_!6Pym>PswC0H%xfGlHX>_pc6({GYL<QGaDKR(u1IH<j2CJYf2>~!TC(@N9^LO`(i zGRg-!;uw+h3Q91?tLv#5*5Z)lNCbA6X|+aOQJwtZ+-YHTrA$A=l$SkYr=D1FgVb{2 z)mCnPO`UD=A+;FB5%;*Xo@Wao2xaItxu+Vgyw||y{?)&Op^2vf)4#{QY9I{Ju}`(V zQ+n9nf|}z~IH-q`PK%D3p`t9+?2^=b0}BtQ7Rhyex_y2cWocxWq;F(b<+eY0qUT<E z^wAM{H(XEW2rnwDw=gK4)v8#72W4m97ANCrWRj4QZo!S@K(UTKA7N0`Dm<*=-7}`@ zO}p>aOT_SP4RYH;7(%o|0ULtoWqA_7A9KmB3aP5<E_Xfz@zLUHRAH-2|D%@0lQ0P{ z5DQiCW(cVR#Kn{HYSvUfLBtI?#GDY`gT#w6=PZhvrF`D|0wI*)b`V+Enm4y%W_czI z8;tlko`i&1nC2t`+eOT5;o$*JRCs>qL`F}wI!wxtkb!Abng)3Sr%cwoUO}hEfhy^^ zZ}~@|IXT?d?W_Mt=@W~`s%KHxWr%Lc(&T+%ql0}nju*zmuI4q&q^8P&QYK_{IF8t} zHS?k>VdU#MKVf3}XDHojf+*Ru_H62RlrE0gS9PqUNRk~!5!y)sp=e@;16fyPp>$Vc z&$J7%Ap}uI?k=<&F-=)@BGh8Y9G~hrFbKL{x2ZZz+>9NY_Qm-KbxxFfUp{9DLV}P^ zMk8=NVXD{2b37Y;UM8@@6|dgM^&D4~CkNkaEZ$Ri_?Tfzxm#a)DaA$d<GIAFLX~n6 z8(dFHvs>RT?sp<K*^sj}RZDi!;6Ra(OKyE2F!7!7DJz9RPRf(3{zVrSOR#|mdRzQ0 z!%5dYyK#=ylk}PNUz6{xik`Jg8m73wwkJw<(GOe|Kh05QqoJ}Y&QUU=*GWB%pNm4( zPtu$9q{h$eW#YGMEOvBRETQJ=C%kv-BXsiwzOvIS9J!>bs<|xZyq(^B7Q-?$Vm#KC zd4qoD#Wrrbot~&|p<-Sg8+xUwPQRtv7jXxu=+2h%=^i!t@_z2(>BKVpF1u>pwTDFH z(O8F+qVtWtMxA4|Ig9)q-JBy=bdz7|B2B(t$F_{}yi2juWjIs#sJozz(1XxywbFfo z!nNq}>IU-;<<Baz`|ou)$v8Auv?7WB+^L&AZJQ#|J=D|6Y5IHUolu@|p9VSakp?Ad zD3YI>=u+W5d1@rKNF>db0l6{~D<LFJ-KDraLxJ9APGiL7&p-E-_(<yOMRMt`WbrnR zwl$|x(7b%l0@&Vz&5`@Ch-8DRaf>>x>WlDxLMWx|D<uOy*R_QNr?v(Rg4+8nSAz#! z)Y5Wt^C-b>JZW#11Dc6HqFpyt+J3taJAd-L(mqQ)_3rys?+CGa-NS0G9=^l(I5_I2 zQTbaIPw5n<!(<BgHe_niE2p{7>_*1ME5+R!zYBb;@Yx@?G+9$<-Yr~7?ER)WXSfE4 zQJ*2*3`+6E_r!1S_?A4z9e8?V<J%?uHMi$}4v40GT)>#Qofd`t<Lkcpzc+vXknrxO zKJ=f?>SiKuI9+Ds;K&MHDNO#v{iH%^_@bTNOfQ~TcIMhMsiYDQ&$Xp6-<FMV)gS{~ zA$wLC7neWYoK%pjZ(3m5UDL=@a?Sv31@DG@_d9=o$+mamd}ft4xyHQ*0}~WPd*fVu z_1ke|>XWjyjsufDn1n)KWJ{e+RL3yaE}2pR9^BP~8Jg)pICm3E+`zGn)pc5yP9@DF z8&?-rMMB7pVZ2%^RS`thmF32@JAVF*LRy0(DI5mL84CE%sXKP5NQ*>;+O(daxML5q zHMBc3Lpy9;_D=mIp!+g}6`nlv3OoucnSYc)sKi$tzfo$9L0qS-&ARPB*(C3_z}$+* z6XO%*?mEs+oDxQHD{y+QKA4%cBy|_(Cdy6>I+g^nwGztE2GmtCH$H3GgHkPX?9{e= zjT61ph>rOh8DBoP%72Uuhm$n|UcFh#cB#GQNN)NtUa(^|pHS48U*NgkKj_z0#;L@c zxDd)hon+Q$zqp+9_#ipq+K#TVayqP0HeIS&kY;`1y%+0Cp^Z6{NoQ(m8d{lrGdeo6 zJGJdPi1Y1O8BRz4g$a?=eDw_-(EExk#x$W^mB@1U!4Ma2jY9+FMFs=&E45gC4g^9$ zu=nz<Xpc;_)dP$gs;bGtIlirP)l_MwR{MQy@`)DS^CExfJmkBl%QHXTD$$6aOKIWF zBH$Ht_Md1`;#o5*eZ_qeT$9VZe$1^Z3LAI)Adaf;+ICmNWmWN;zq>Jcjw?KwUnnNB zpPCL9Mgf1qKEFY8tXa@!>41C7B8RC=sW22%hedyyms91|DAQgOF;ZAa_B_#V)kt6$ zDT!$}OhAhYR59I&6Y#z<UPn^XO?`B>3Ol=rs-|W_^ufeYltOPp^<mdg;o--Wh0(59 zOmMV*a><nl7PEP`jpiExxc0BR(Hs-4{(8^M+xhZ(Mr0X?I)#Oh6t*&3euRn|^l%(I zh6`PvDP$RY_h8U<Wm>B%mrbj@{F*i&MSFgXpp80TgbX}#<VXw*huX@O(v@LB*U|Or zR1HDtZWQaSKmlvfm?4xxn+-WCMgd$B%gX{E1vBFD5OMi;pu7d?gD9zs9a+4<qH+20 zntQ}Uu4}IC!jhDdMdnUR@s-An1&c2QeGI|{UMyox13~1C#(GZ0qyv6xs;UX6yt>Ax zULJnqztI(OVy^CRHsOuEdze9T%`w<TZ0Elmp89ufZDR%>E4Y?e*grAGJp3(U=e!LL zU$ziZ<YdMXk*=6)?wtzrk3@)nbNB9P$PL1AV+JAp%l)K1$oGgIr>sdsRO>59mb-{> zRMz)naFGk6-jWvOiU;qM-`%!M^kF8^z*K9Xr(VqcG%%YRHe%P7Cl^^95U7gx;F40l zeP7C{_{L5zLsX<E`gV*I2Emsy=TcM4si>%U|N4zO2vQ7U;WuL(UvDd%du};T>QlDr z=4(4<9~0%~QhNP*-JSyn0xPU>swV)ZgFCL%(tFQ7zA>$FMs$gFc3IzBm0D}&^tiY$ zgORm0AuKRIX^lQ=|H3Zv#PSsgR;@9-#Bu(E^6;_Wev{*POQ&xB9As1AI=%bH{&WA} z_U){>mP!h=edW{Bzr3I9viLg1?K*tWg3s7cQ0x3PQY$vMPn(K?FzCIVn273qGo{Pi zY;5|_HBRPIB~Iq3SX@~ryA(2FK96#%Nvy9c1_gT)Oo4x-T+xJ`kQ6B?rHnhtm4nuZ zJE^y<knXV|7RUmesIOn!rn?W{kZNH@>L%&A1<tL~cceICAJ=@UYfkm_z%7b(jb`iT zT1bvg4IFkQ2SiH;wzOvRQ-?=tuJG*in(H1BYo3u*AM@q$Y$<4l>V^gs(+ZSZTfC01 zawD@F8imfi^F*CG>qa#hT$jeUHD3HW)H&C?=;pXlVPkQXm{-%#(7}mAznPn}Bw%$) z!rm%X91|(Ho4Y_pXr~MYF!qTrip;%QEm>ixxG!ooKf|eS+Imn-<FW*ZQMYuT+?PQn z{MrSYOpm$xN2b&zq$2}9Ix?j45Yg2{T7GtNQxbEAVt4z+buvWXTn&NQ4I>z`yt=k_ z{g2;|8C@dOndr-6=G{uCCb&{HaIaP~dwPERW7jUVm1Bj4e`IO?W^~~g2Q_@Ji+{qG z{ZCJw8s=a|TpSB-cVF>3+EA))Y=6I4q_}rrU5mqm`HE-8t?CgCzQ;Asf#tB@ZhEOT znv^TpzFK@j<M*<MKYR`6B*h~#QnSXe!s`n&UzGJ7wL|Jr1Q!oAHDd#9M**UgvaCY^ zY_?w=qtLk;gvHpevz!b&A}G+&{=NFwek7pizL&NxEAD#at<{!cb;fhE0?O30pH4Tp zW7{^>9VdQTleABgcYZ(9Y5${rDem9CPTu-;TLz7q&@3d1`Gk%}N(vjb*J|qzJZW0} z%BqBdE3Okc_+s~u|DM>~J{zm%Dj`wCOasZup2AjQ?^dYO)ZZsgVB6YMp<z?+wZk{2 z=yJZj;@gk^)v`@N_5XcGAcE6f{(g0GOw2zx2ui#021!dHD7+X^UuVC0`@6GMrhHk( z4`k%kI$CCCXQ{nIoR4Fr+)FBm7`ULI3rzIrrG|=B6+}VL$RAHS0=X6=I}E(Nz1M$A zIlEu`2{PzHzN;|(o7)%nAxHCFSSMNW4UV&tdoG1I*RlL)_`8oL|DP3_cV}_QpUCU_ zay8Y}v`A+sr!v~w1?>Te7xP$?^~<%&N0>WUW(defUe+0$WMLMWoSklK+h;|58MC(b zzSdfHvq4Mm|J9M+owb=T#GcezRuIXWiLR-uOK-mzwM-4a<QW>O5wlAptv$QZGmb#n z&=41QvRWH3K~pE?aU<weYLs+7YFPHw`t-112!+VpKKkip5Wnk5U!RGU#!4!G*JBou z)iv$tfRUl@xk>~P*|gvOY}FjqbJ4uE{RaKSk{X(MQ-Rb7-3Ds;w=dfvmjQ)w$16i= ziL#?yz%T*F%*vt_*2DuZ0cGTOQmONvKj{=^@F?xsv4b_jp-G*B2io}c!d;kniqs2U zoiC9OJaXtz+UAYxu8|&H9yd)|vI)u8p3@Ygy5Xx_dRL@zxUQJiq(*j;Gm;8oqAE5S zE9&}d<7|KY9?s{svW<{(c+7FFUgton{S(&kOPK+ynHIu=YIkSY7aN(~OO(1%XU!|y z)&mpp)IrY0V_=U?X7gNq2@KYix<tKF*BoH?oe9gMI^5LibSW}uo)>l#(2*gp6!*D0 zn!RZlh$@wwZzp+ja&V}kxR|h!k-w#{P422`%ucbPw3B)+_F2?<dQ$bfQ2hmQao0ip zj!aY_Ymi>UI!ihI-V18r{=aEBpkZj9DC>@AKfF5XEtcN#^<JqFwYSRdGUKIPe~i8y zQlUF^Xu@%AQFJYOz4#v9X;LbXC4J*AR$$F7-_^k)7Vb;Fr)$M;^|#L0Mb|Rsz~Bg- z7`AAtVjv%?{V#qi?G6jsT^{ny5tKEZYu6q~3*A#UkaS#hMI(_9PNHW-I(;XK*1IeW zQJ?3hyO<3Hc5!fAx_PiqP->&=t;)u_M?kp1GeVmbTBbB$bMT#i(gEn(UY=navc1L0 z92VQr*AwGp^<{3lh)dXoRucFRVdv3Dv?dohJnxY4T-FT?j*6lkg4BVq2tuxXt8!J{ zmC*P_vA$&Zcdoeil#Ff6fwjoEfDUTR0jt5eFVSKu*-J&Rh&u2B6N=Zru+tRMuAEdH zb(jD6aOaJ-SUm%(YxQg82nvf?RmM$z3kDr>0jnPc%Aouv)zY|2rKIu&C};1k21RKJ z=|sb}4#)mCEvu{4jPu;Nt6n>EuyZc%^Yu1!P1GPYoON&>MON|7otGY>uj7a!jzO#n zqk67&Qc3)dcbOe0kKo`WMW3AY_wE?8y`IX#E=EkeE%PEOx1kw9p-Kwqyj-8fQ^PN3 z<Uc+@hP8a1NkM3kk+OSesJkuYh5_Wdn|+E|5O)9is3UXlUf((D#=_Xa#-8)`iuWg+ zp0uME;%P12=q(_QbTp{*RR$hl5>4sRjX2uC6q_hF{)#~b`)Zyabbh&$#NxJLgjAO1 zLq3zrf96NqujBAkKly0Uq~j_p)u!jjp4YC$t}i7u!g~*+=j-K-3=KnFx7PC12exmh z4}fX1y;k9#{ksFJ4TI~|lbaN?Wm&!Ys8e_bd$gcYRIO6Cz&)B0=Q?jX=AoCgAjbl! zg|TfH<1M_$oJQFCrCMH(7mZN^1UM#TU)?o06B4Zvvz^*yKJ{+F=lP$6#f@&<XW^H7 z4(?Tww=QF;wnjNK@v<-HJm2ZX!0)3}wIJuPbSt&U(TcoY%Kq+LL^@Q|k?|`(#c%l+ z7br3BPZ!%W2KL@7tA{}pMwu#)&Ax^WFD7Q2_v6<PBf};|Y7s(87)&p-3k~~;F{<8r zO4Fq6K2L_2pJ8b`?^XU!M7r~if$Vmn73W@Kbm^TWSe!{PFm!aC(A1LY3!nc^7}dU$ z_1Y_Vu;=;c-E2Dc3vZY5ZrpT!`d|IFZg?APII6cf)7p;7keWp0vlHh#C{g-Y00UV4 zXn{9T1{aR0s#Y$cCS;p-SqPX7=RDBPChw9`Ry9n1=;d|fuiMJ<@(;`jdmQn&ix&^o zeEI}MQ8)M2|BlDPB!k6bRJ?0{vs#gprioOGV?{BkB0w-jCMl8Bl9F=il6?*-nm7(J zFVY{e7{thsQuc9q8iu?Q%aTq>Id0ybld+y}hJU=D{Et+)5IP2l9<-nirtg=YS?bbM z0Aw^iokZ+NQGo(c9U4|mMZhV-GEZv04jUz@Ib@@aw779b%Df}-C1k-POIO!D&q{eZ z-^0Mx(?ZeLO=?ePa1AJz?6BzYZyKmzo9kf~3sGHT_iVNC$f&!>u&>1i0CX+0)*GI( zHK{>~#iktrrSbcTlS%>BTt3l*&5A~q6Jtx$yg<s|m}6k_5b3$9Bh`W;QV7(8`1I}Q zZUBt>xRQksP)A`wa(%3nFeg5UcQqUm<ILU8b@}owNAoA+Wl#EAV$ZPAfmCac&d>Gx z5Ma6~70g=P-8E;14b@-19^tW6`2OOn9JJ&^(GBzBi33l}#l4pqRjL;Ja!I|Ex#_O@ zH%Mk3He~>J^NWJ(Z|>i3$-i~})m0h>vq@i<2Zk2!2`9Id#jT2b3XfT*r`NJ+$p~V+ z5%nu%8LWBLYwA{VbHQyNu|xH$!xVe_y@r{;zbc;2;PCO8$m;Zg|EZIfRZOTzo-1y? zBm#DbkksEFBc1OOTct>_*CbqYla>{J!ymmK<86-%>16D;ZnQ=fcye=O)ehL6`{$kN z*x>L8eUZL?*hSU3)j&IYUorkh!_+>LeMgQSg<#m=)s-!U7rUjI>5@)*uBenQRJwYi z27TUXG<^>UFuy4tk(!#-oPJ3*G1cnzN_VX<94>3VD-O^SW$}@>sRj#2pcu!17sAEr z6=x^X(SOpVq~>`nM+7B7-=l#uJM8V(Ef$S)dp8`uYpS+t9EHnd^TS7tm5THH*1p-X zxGgN-{fKU%9UU<YpYQ+Iw|<rX?N5lDcFleBKex;!iW3Auyb7l4&X8!5wfl+AODd%& zv4@G*R`b`piM{Zcf_`&?PfKU^*rxJNyEPOjQy>s=eP+jYdPUG0{h1VIQK7hFv|&5o ziK0m%q}BebtP!i#yzBXlRz>tOS!SKg07j!fI{sB|X{`WT0jOTOKCE@c3MP$F^R5%` z{QZPIY@gtZojwl!jDg|O{!6byLf#y9!`p9I?ha5lbV&1GEjG~D9*_SiHiY)fcSBGA z@09odJ3;=dz;D~eAA>G-GH*?k3&ZP|IA?Y=2C>PtlrHwf7ZhAxG^mdd<e5Fjo2a0H z5q4Y?+0s2T%zwN!X6F^^T&wo<XM>d~uY+wRTG`5YW)bt?j>c=o*+nQy2De^O0rLr7 z<L8i2OqpE@VwF>lm+&)p*cTu=^Yj&uzDIN8mJKs>?+<9Acq36hBJuh2eYCj8@%D@m z7WCBmsyXm!fN`fiT@Op3l*9uQ3@ur6Y;26&!Cf-1PD|mrcI{eV!t(6!SP;L(Ty;3V z`NUdqN!3ZTYBVqaxz3Y9%!@5LGH6ZBv7Xefj}p<Lq-nny&nT9k?9T594-iwob?a%L z$2eEIPO&=PZ9!}Q$t#+)dmSx0NbFcO6t_+yaDQNJqD9Hy*f4B<62{|_jXpP@R5h7s z^m^gyML1#N%VD1tHF*47g7$hfQm&`V5FK@@;^3Zx2SZtCL5J+@>{+7o!CCfphWXv| z0Ui1<->M+Ru}&GMpJN*f2MrwD>GuSCVno~)Oea2P(l}m#Hz-~x+l2GV72PKXnIYsT zT@}G90h!f{y`FgOT=O@y2*hG1N_%^{4!`k)rf0M?ZJKT4mioE1SLUWF!o@txAheV0 zQD=G{87_EiAJ|5e@7#%vi-+ib$hN+7=Z<JV?w9GRknr%-RZ6h}q>;UX;9Uq24-O4w z%kI=AEuR91xtts!Q7&Sx(<FK<1QM_P7z9+u)zjxzPS~6i7S=8-EbJ;q;o5QfJW?EQ zJHfm^D*Cu$;6-_%)?b?q3qIOU`8PJy_6_agRs8JC%-p&grP}aPA@eGX*|!u_sTLRl zesmXKu0^+cAVmDJfr&<h+NJ_2IqHyx3bO9dAne?^bH&mPax24uCF}0pyTMT}WAXTv z)R~!?Bgc*<18dM2hJYoMx}j)e{NTX@*P#%N9vuH=!QCf6<MjofpGfLJqSf;2FyoZg z%_uRzolPvFeFGGEXmX6*|28}n^b0#pBx4Y$6$ofkw6fC9Z!e>+_KH<Ocpo>nyh~xB zw6whXV8Larhh8C(k!d+Oe7KIGuU~I*tRF#0fkLYUOmq-VnQ`OE0d_7fIlsX#4#He= zxdwNGp?tIBzR=2h_k7ZIG~5;@lprS@I(CHN?>NYtL`6e1Ysl-@$&rza1pjBvW+Rz; zXd6cQBv>c7Oq!52vbT0YXxaVHL#@^tGyb?<F`f7EA-LO<y=x)=#}1af{j6Xb1k<}% z1#(*4&~Z7@dqtnpbu;v9Puhr#vR&4yOWBIzj7dl4mDT=b*UeGvuOIy}ikqKovlaRY z6l`5|>FvxjHit|6YDDxR2BOc0Ddekx>>L~<rSCiOTXD7_lLTjxquu`?;~&ohNdYy% zqR5HxK`JQ6W!8BA@hh4Yj}H*wUOwZxV~&$uYQ-o@drpc9A;(OG>9XzB{2n{sI156{ z%SXR+6%HPdY8h)y$~CP18^%R`A?`GnZh<13e54{wmSG672T`X;4OWIj_9HEnQywF1 z*438MRbUph^8jPAh2--l+A<=oj1x*F57Jl&g4h()Ymai}cy4&~y0^;tr0D5L`ZG39 z=J!Iyp@g;|wp_z8<sm~8PJGN&-=kd05c+fd`gJ~=zAH>Zb~j;dv_Tknu0;oTt_=~{ znxxPHONTGU(^C)C>$oyq#q8Mo=_RSRI3EH*Q-C%sRc^e!E8ix1xGpOFbCILt($pO; zWX`SOn17hWJalVcaj8I7yq&#$uJiO=j3`<ga&>1%8a0&f#*x~wNkaC+rj1b|u*dt+ z2)vj*mad^!=9*tO$LAW=9;KzgQCH_%7nl%ych;PtQSxq!WC8@m6aJst&I78cwA=em zQD>}U0R$;CN)Zrj1O)=vC;{oct4Iw+2oO4!u>k=MMWqCl5_&|Wg{A^QP(f;F0i{DI z1_+@D+<kD`d*8dh^?vKF%bIcNAvxtaPub7jzy06O&-@^O_EInE_0Kx{t+OgXYRcl` zB1{p@u8>8N@6d4Q*I!R><vy$nVrt{98OiZ(R1D-=z)nO8H9*^6;LS8<k2akfa4SBe z{PoLCApX<N03lAE?DnqOelp#lHli!vAriSQ=+;Y%pUy}<QnrC9N8`eU))#i~V4g^y z3*W{FUY-P#_&z9C<rMX1+SW#h!<=%mFEBq?>FQ}nx^IEoEpY9Y^=7tf?Gd|hD1!Xk zIT^3Fzql@sk^6nen^RAb(zI~3Ej=YTE-u~-5Kll<CiGc!Gloa40Juz|8E!`+$kBUM z&Z~~cTDXZvkVUm*u#mIUS7BvE^=g82yqBQRg{ZC_yuFj&4js?A^^o^;uT`nfWHbD> z^_d@TQu*p><fbk^OAZ?to9_-A5Jwql#va!5F^+|VB?Z#ibLUV%SO_QuniBX>p0x&d zb_mG0cD?NP<vV(sPT<cFDspS{rdyG%%l(}o@dn9TGB0vY4O-@48xjzvSt^2D6UMc7 zUwZT&v6qkzGc-Ib0om&UI*=>^88QZ!&)yiPQ>G)xg|1zWOQ70T=9j+&wW*pKe5pRw zKOq7akYfDt_n-Ilu#o3#quAKMO*Fr;a5s8h^DMbG!m0Cxoi)o#R7&gmnKQ`Z0FXNu zlUFCl+=&*>i*!zab&oJUg_A#5-FAYkm9C1QQb@5TN5CaKXxmWEt?HY13bx+ZxV4An zHS)sl1sAsj2xt}c1($-133&MnF24Sr;wyjk(=}w8+wTrum_k<rjvE8%f3B;aH*Xh^ zH@vxdXFD?L^K5D9VJApwI`L^>sx2*!B%$1=ELG$OoW_VEFBJIY1Lj>ad^Io_JwwB2 zw~`@l0kp3!ODoPX%>k`N%GQdPb^7w@HJ_}@BbY4GnvzvBEQ;KaB(OB?#7z4Saa=Zg z+$+qG<{6mpwmZt_J>Dvg^bIpX7L;Jba8OMrNIp|NW`SA>vRa@l(faDUAG{{tKIj?` zC6g2ja3k8Fs)CWSC}>_?S@v#8kjpe6N9+(%%I@YqVto4I6YWz2;$mWIFlfwQIzE7z zCH2#%i(pmh{4B_N8NhKXaHng-1fVRWldS6WE>hWfuz;SalcWSSjP8hPKYAkT+Kr@_ z)UXUGq#XkCDJole>Rs|iADtk<I)<pKb-R^nK~?)Lo-_k}ed0Kc=G>rl(rLQ4+?hcw zKn9kSMd9AsmX5roOUPhf*PDT>3CKG(_Lj%_4G^3=o<H3oh)%cQIjpPhm=0M2UL%Qk zphrGMkRh`PA{kDvZ)}wJpG$|e2J}WwVj*?Nx#`(0H!rI_rFeQVYk+-IlC){NL<H20 zgqV=SWN*G2VlqN5P}qP|FIq+Q{Gs2D>Aj1U2F<hw3Z&!5j|*dvSw%lW2w&R*Dhk;! z|2Yr8f4nqCPHHW{njmc&FY7KHA!b4lP&Buql&Hc4FC9VFXzj?xjToA$5?m*;^QL@f z^lT}WtN!eXrgIAKGV+QTKJnjQ5QV~yFAULs?Hw@CQH~#9IS?lMDl2pG?HypXWJWp= zTw7FOmO^rIU=wL2ARlN7vowem&70Y_ps_B{jxgb8(%e92zdV35pP6@a)AnXgUkHUY zP@5HGhLRPowzAziGwa=8WZOtGx^{wu#!f&7XoERxmSy;YCO<HC8yW-f`dL&vug>hq z2hhh@Smd)XOqrXT(?`uOum&=XvWz_lD~k>&94)GprkyZK%J*wCr6+vIr}e_}<=i%t znKvaD??6!WIJ@ifXKD?~0oUFEOh7uwZjN9lUR|%iP7K!dqGUyB0S&{Md7YissCI0_ zu$e6wvoiDq*H;@Tau$@{@<w{c@nIJ*j$xp9&`lfV;!A0wqM5<GxWbB{C0}|+@QMb# z<M9cj$}=}-QH9}h-H%T=?A`avlf{Z*7ZR$_K?hG@C*%`KKX01m+s|WS33VS_Dx9+^ za@~;d16KbD#;9$BEX=su1&^l~5)x%y<Kk$w%+tK6d6=3ju-Ui<9~g(tI9Yh1GU`<@ zhsv6uOPnX7#hu&B{4)3gmM4qeU6GM!QzK|8`sqKtbg2UCQX4VFXW`s1oJ?zYd_pbH zuC)U)5N2_O2IMO&JzLI1Z%*M*Yez)`pTea#KO)9pfMj~!B7AHxMHq^D#D<cIC?8Od z<<o`!GMJr*EL5hB>AS5^?e+>nuzjl^EfW<~@Oke*U=(_1!FFXz(P1__kAy1})oP%d zI-p~+^B(i^dKNopk0eZvBymlbiMk<6La7%kH!oMNd$eiX=L4#1C=>aIRFQ9E=eFCk zC|OC(Te9&`(m5qc5H<hhb5&?q*zEe}UtOopcVWY@6W(+`dPl5OV`HZ?z5S92Vf#;C z%xrZM<%g_nnRNPu9PVXzGR>{G%xq<8zKu<{38|nhJ<9(;LTR!sS@0-Rau%@UTcTv8 zwCv$^=F`9=HgQD{yOam8n;+%bHm(UU!^x}xS_T-pBUqPv$SddGJ8Eg4<~DoGA<L?C zevywU=fH%;nMRPT5Zxg#Ze^>0m(I--#1+C0N*sOQSut`=zqSsLex0ywFmCgHPy%U= z=51y?tn556lAJd(4;V=IQ}1TcjPX|0mu0cma3tu+Q||{JF{V5vxX$BTt8cs?Jca6X z>PB=G{vD}{>3MC|JRa>GTdC4O@5!ISPKe}5>%X8Gds+#XW_#}vLe29~!lJYDMA}s@ zTjB~~Q1uwuX5~xw>)Ae(Hak$tm@1I&f8OoQJOZ}?X*=0r3Axo&b<1ScIPYEUDrcoX zQr}K&X;<-lkzer0`$3k2)!^G*s6)v#<CoGzFu1{<@`nrP*=ChW_h%w^1AXa87xitP zZ6>_Op`5VjGLCLLRo$>Prc%1!%vREr=P?Kub-i>-UR_zraPO-Kjf|wnN?Ej)ozt-+ zq5CWD?7O(b_`&zyOC6U&`ufZI*BO^j$NRBASYH_Mk@vZJ2Xbv8b<fZ-e@y-C4N$i7 z^u&Sje;7m~-@m_r7;&#(zm~@hhijA28DOs`UeGcE;b5>AyuWrFOLe$X?2fi~Z~&*Y zItGIQO(di^*5%93LMMFW_#<Xrxw*&RJ~#*xG5T)SB$&ak6q-hRPbEZ@bfE)`#dJu9 zSJm(88yI+lmTbRlq!7Jx&Wj^-FIP4yDhjl3#iHsAd+hZd2#f#r+Zom5CWie*-TO1> z?)UZ0uob<MXX+)ZXoZ-|a28}Q3i5+oMURQkV0ECvhw5SC^eN)~<(E%w_Ha+aAOMnH z3_jT*p1p^T9n<5^H#6((MAi?`L~2fSz3uywclYjRV8D3IPnd!B-Z&(ZBPLkQWj)wc zfEmkx=ivq|BjnpVU=PY**h6$;cfzzQY>i4kgulN4lE#OGPnnWintMXNB%bm(>(G#( z2O~QI26M%S6k)_HI(qaYvs_F4LUh&Vt3|vQk7vBH#}z$}k4hdKykhp=-j1X&5<!-U zl(k|FI-f|s;R{kR_p1()!c}cOwh77U_oU61OLY#LnQYs<S(4o<jz`19dtofsSKi;y z%*<>`c6N659f4eRXXiWqy(wj1zxMkcj}Nn5=s319pxU5L)*wQN!>a>tYh*xN90Re( zDcS9tZknLE21g{}x$MJKI?c@F$6Z>ubdYx+G;ZjzO<`aRX3H(!y}u~nrxKvKh>6p# zb?bMA?iUA3d*kAwhWdrWTskl*AvO=ZkY?>9<IH?56ZEayx5gYjUmQ<hfv!z9YyvlK z+9Uy2l8yfml=CH&d~HK#!ZH56dsFyL&~n{q5>cOD$DyHkK%6~T*UvOCeH0OMSIi_H zbMIa~r&y^|U<ahFBfAyRD2!|*)4<v-mzdy6f~BhFGK(sj1|7Af0o$K9P|I)?)Y3MN zRofOoi((wSy?s;FBKBFQWl!1(QbS2DJe`IzbVB$pm?(E=<3>Y2gJjq^nBr5uo&}Gi zAElp-+&3Ri{?%cdn0#ON;YL}-{;_E0(q6vIJ>uf>10F#$&`4F#k}v$Kqq080n!fSJ zAB!pXV3#A;;0vUNF;$Xu<7T7Ho^$6KYYo7JNpy`3Cxcv0r%R#!v4s2ge>FILjgDAy zmh|%`<(gVrQW2L-&@sh30&1S;YvIu`>G)h<SZuj9hn%x#%h`Tf?;9WHoky2k?l2(~ zm>!<;-BM^8Nbk7+i+~PBE<`Kag@D>;IJ!$`(a%rA%lc0Ki+osN^BoxM1}>dkSw+gd zDPIXQ+pSwg9LgmrG`?`vN!ZLSlxyjjgwDzb%1ccK60|TLwNWMnEe-u#wfKtuF=YI1 z`{_$2UaqrKLz+T^aWQyrj|Q%-W4Eh6?YT)g?$i}dpgXL)u*RPtH8*?B@U)r+n4#Kn zu=L|$F@_bY;~1>>Mpzf!I=T2rzWw~W^)06@QH9xZ7WX)X+1Se&d`#PhVYilK8g;~_ zuC9KrSSdyhRy=%ztYmhc(y$AxyU0id3$3i{Fs}}rRr2;t4a+@>19e$6YOc;uTStm8 zg^zi)-IN}Hg)a)y#lT?E?~fbh)v-nuCdkE`5ZDX*UrjXGuV2jg1&um<FV)#a4p;c( z)#)UZY%wVGB=?qJvn5FhuEuFJYQK2LWtN$(6}w>s-Bg?KAxO)sCMsVGPRqY{Fc%Ly z8(u-zv={^1pc(_1UtC~y-py{XvekU)*T7XJGVCIz*o8LMCa}45U=#kJ?jWgW_Pj$m ztm6)fBVfHi1H~p}<3v_Beeu>h43C?cCo*!cVc&dqo;V37+lVZKniuBc@-wPYO<+Ay zMK^5@pm*$^t(Jk`vG8gUwd^`*+_w+Fd=Wym8%_71+829cv-9dOn0h!%uAIf$8_Vw3 zByz$Q(({bWdBi2;L$u1?z#5cAmA;&3Im0}V%eSoAu5v^A6;)l^r||nDZ>Z|3{?r?= zw&d|})p@|eH8VSNCG(<{@S&r+i-M>^D)YcFtYX`Up%SJ%KhJ05?Q+6SQL12h+Lu5l zzi3x^56iGPtZD&P)qYypj#k1eyUls(mQ$Grl$>1%+3?|e4_m3~j-#pN()tZ(mcBKQ z9Ly^GJJbldVZQAh&N*SemV3;2O18DDSh90>GY{C(!XGf)Okm+b{0_=%i;YB}NtKTS zr;1-F-2={>^aRpD2Z<9-S#(>E#M|TV@HR7eIvkfSh7?6-*s=b1hda2MiZx=mLJp=e zat8%$N<#{NSCh1P-Br3M8G>I7{db;%%XW4o_0GTf!p~j%(_?-utExlq2g6by-_#_V zBDZWRo-q3-#~Qrr=Iay_8yn`d+lKVt{`7RdQpt0KT8gd$18{i#$I>u>Lxx4V_y+4g z0aO0=OMm;i?)E=V{q5iXEqrlJADq<i-*P2@6xNkTBwl0zv|3ueAh&VjEm*q`a~_du zzXaxturvw{xEty1DFd~Qt-kvm8m@>Rp*(3FfH++jfUS#*x7to+hSVY%)Rt2Jh>u*; z4_@vO^Z$~E7sez7QdMTTE3<7F%R7S>DTptlEof(X&ZT6*mQtawCdxt=n%o8bEI5h_ zu}W*6@r?s^_QRQWWRa;4Hnw6G>`y>$)mc$8)8FRuSX)ziZ$5mtG@%wV-ghFzH2I*K zcKd?g0syY4UK-iPrS1An@l?UacSU0ad_~*6Jq}ox3w>*NN}-FQ;eai2pSgyA(?syk z;Kzyqk>fdSYsLU}PMOPtOFcMeYK47j<>kuVh7^Y^y_@?0N(*@W;kr51HyR?LbA#^6 zhQlS6D!*^W0-dQTFsuFs1L;s4v1YBLW}Tpbf+j|#pVh(J-pxO7E=03CccN@Hlp*+- zeG=Br!w3OGbvsYjuZ7TLfOpILGfTsLr6}CehMM+!tx=JTbaKdAp3js<D<w9(X+H61 z|1TAoDf-v(-jLDxTl5T-S$`v?&7x6F*l_&eGV2gOwx*rK$XMF`&0{UV=Js752o2q0 zbjQadPN~Eu!#4N}OVzb6CY{${nOR-umGiuU3=x0P2xe+<P}k@{L41L&$+K~KR_ey0 zZS<`n=9JVhwXw*M)e8f)bFD2QrU&m-{RZKEK{F+zUAtae*Y+*7Tq<9g!fU9bQyT>0 zqxsGa6n8my3Ae9&&3DLW_b1VzE9KT~Rn4?!q;Kh~9kE$59OLaA?<42j-aa;pO8Y^X zJo*8@n)Bqz>C}W%S$WCSWrb*nBVT*BBkAt|+ttSb{|YtS7dfSifFQNZVBI@~9{#Mx zqztn_D{xCQZT9>83stH+?t3RP!4Lx6t*HikT>BpXiZNg54Vn8mkcIL)n{<4cHBz|- zp2~frvv>p((c~sHL!e(0qoEk{6oHYNY#o4EOK7Cejd$t;3Y-~E9C<RhPkH65+R#Y% z-oE09)z#sX8tU>n8Gx@~$-a|aQ4_O|qG%jrH#e3^)i8X><>zLI+WU``uc;F&7RJT4 z3$&g&`GNm1M&4^7WqA!ZyX9Yrit`x*mGi@!6lbelyvO)$hWDX^7TG?8eO+cPqU@Gh zrmV?=QrExmujew36*!yO4AAC24zkKS1CijQ;hukK!*~D0Nn8G3q(cnCnp%wS>9nj^ z<VXuBd7cGSwE2W*>kGdit;AN7WL0Yedm$tgU*OhxT9I0GUpSRKGU{8;3!7SX07rtm z9z5Y$eQCXUN7`sli6zpPLpPJ_9A%>Y-pfkuKO|gjnS;~y3`hDxTX||%p;P*?;nRwo z8UI_qKjPx&7rw)=&X5JIX;3G9(YZwg1E`dRO&~kUt#p=x#CjP?+`iJ1CPZjieXpFO zX7A6`d${?}0@r*9NQ>vcXg;?6=_i?tSDn_wCH%K;|0pig3Vs-k$h;H;paH@K+K|cI zu23*B-}DFUP{%?-yoU%ne}{UD-xKyT&h13cN5}>isVPzmbo0}^*_B$$sP~H*4kySv zTeI8)b3)1r&S2`u66jw1T4xpyDUsZ#928Z!>SanSldXs8Yy2J{3V`J!k@^B0p13+k zUu%i%-ob1PS%#@#SW1~W))yj->3YGwj}RSdLXR?4W^)nVL@c@KllS{RCC)vcX~j&g zc1}+u!*5#IYxK*{NkKCEQu>tE?jfjzP2i$I22QuRgIUVV+ODw9R4DJ~n2eXLey;Hb zCL2>3;*mHr<FYihTuxp4T!eb!4xj=ctr^L+&8_K|!i6*bN2IkqXf?T!qetBIH;7<% z@U~ZbU*Cf2k+L%D<aeFh#)v>fn^-SHXtOiZq{ukq*w8R{y6rN}oIQnK@|_&c{GA_~ zc7xcts0H6Ul?urCt{;>0OgkP`=@cS^4a<cNgeA!+2v*`(m&v#u7k3y8deWu8mn zfsLEu>c0l*J+Oj)bvX7_SaTAR)G*mi8(YGbS|1-dO@!16$(0O$((Wj2rw?Rh$Im@j zJ6WEPx@gAKp;hOuPrq_zXJ)rDDk<T_MvCJ$z>z^@N7P_Q$)U<#lE|1!*H40o_N@YZ zNSvxpU`HS06_;D}%kG%60W7C6_KV|?q-ns(kfG^ZE7l{Yzc>KP?<Bf>?T_<HmOC-e znx4Y{e)gQy!&bTbhB+Vb#J|vkD<}B2TLaT&<d<x*j@<U^Y?n!YA%R0;avKbV{sFvR zeGN$Ua_LqcL(@kplU=eikTnB8mY1b_m2rP^56BUS({K43r~GzgL*{kLla1?tf2DHS zbM?=pmE3KAuKll6JQ{zX7>_MNK(rlve}B`md3oM3asDrw8<oA~Tl%av>E8Tv@xB&z zxv}@0k$;8wuPODEb-rgqx)ZsjK^%o@gWQ^{_l_=={?#Ji?!+?U&u{;6XB++}G~yo- z{cj)pmn53?Lz&nA&8+&5_~1Vu7<$vDm*B33fQ9%h2NWCUm;68zoXQ~u?B(GZ3C{ML z9kvs+rOk~YKJdyr-(sdlguk!adJUxF%q0Z_E(isGxgK{CYdp?LRwK+T$-Q+k=1ei# zQZ;!vwqS-f{mvQ)5)5fh!8o_3>k%S8H>n9W%?!OevQ)C(I-fjW|AoJ9aDLnB)DjJ) zp+NuJk<nE^Oxf8RVgtI!F;$;GQVXyJONscs;Bf$VtGJ>fW2NgB#E^DX-9fx5M46CY zbkGZXf|6OjDj_k6$mswnIe-TYDc0rsu6T$nBDabl2c7v2%tWIsF9rznf=|tSmQ}mu z=bxLp-OE!EH~`<Ml!erfg6|?|fudc(c!S-$RtPVH_E|0C8y@@VpN(;!0~Lw%3Y^FC z8<p|O_DA<!kpX3^7KitUa|bT3Q9gf!QuYjq*MS-qF$MaVq=<-0JDH>peh}aSR#{6- z2sS^mZ%8m3XNPf1Lllb+flk!a?fowu8U+ag3dV>w8A&lf#$n#&)}1>{@I^YeWyUzy zR=))uOklW703Dd?0Y!KyY0^dY&Z312FsBXv2zUPjC~v)gM=;nFqKb4-<7Pzi5^6MO zK|cUIArglV8+v)Y1bnXuguC94<Qbz^ixFqjS`a4#0&*awC+|6U7s3@+WaBjzm4$`R zgQzrk)1s7?Cr*^l&?__bs%|?oGGnZvPLzt8nk1;;AR$N)vl78<l#LJFvXxPL6`0pk zC%3K-+iT6=e`S0dJkYUo!I+=&Uc*~klX^p@6%kv}7I|kt0m!;^{EF!+4=6&yM?S9I z8bo>Tabb`vASd~2G&MCL3`UdV+)`%OE7+R4QlL7GLD~g9kcnwNaeR(rVq*j+{r-m^ zAWExLp6_3P@GS6-C66A}rIgKtE*ESX5q<r`GKYEFV_>c;i!vTtf?ElaU%$2D!F_Sn zwF+MuNLw0eH$FHK^Y~>OGp|_t9DAtr$YLoLj`LX7MhGB5B!uA4%vlffhEy((fS628 zO^x`GlO~wDI%j?!G0m&bAr1#+eTLaoaP44fk}iv3K+mtfp-vCte%_-We}hPUhKD6+ z1*T^BTnGo8q%7id^C@ZVJa48mgntpT03Ph@xwFyH2@_KWpzXAK&z_j5sN}9=$K)r` zg;~>p8o)T|M<MwNpPae>M);3k?wZu-Wfd$tX!^dK;mR(LuY`SHu5aMqawn)KgSQJ1 zmO;zY&ec)UJvn}aX%#<8Oo(R(Vl=dUlp9TiG*&0%V;zLhHs2=GGTxQ-w`ge!%K3ay zR!cYo*qpdimu@WMNo#*(Ji@JPSg^YQpNL%gV+(p)N?u&~U=1_xEmf;cSoQ*fSOjqx zWDEq#@f7Q&{<T#dknMt*;{lWbNR!R6kW>&;L;RNzeL{lN&z>E?=tCIa4n)n5KL$aM z<gZ@?H*VaB1eF0)K|D$T79qhkD0ZcC{`?^b;5~To0F=CqAkGfsM+E$~@D)U{331A8 z+!&f;pmuy8SWD?ZSb%CjxXvK<qXu5T80Ql(C>Zuo)xjhlTp6H}8G7%Y-o=YgAaTKn ztS!J>@6_TblL?~Gur<_$;|Qt(;C|+Zw{PF-yQ-?FlyrwjM9e$Gr??~KWQ}31^(ifX zBP+!n28<5!0zZD#RY5+sZR=KC5idW#W#$JY!s(o!&5`}}*C%getE#HFpqf-qkEM#L zs)Vp`HN#$4_kO7s_<b{E-}$?rJA1Z1f_(p%q2Zwz0iC=&;vl=%7<F55Ama++)XVyi zS#99ws=9RdQloDuYnKja11_MuCtsKxxUJaN{TwbI%cY}qx%ipy@!|&Dnd{$6?5ZNM z_Clon(~JHL;<1Uv-Z-lfIWe{0o<8km?G?;T*nMn*R|lAuD-x2VOq|x70eZ1a)SqT> z5BtmkZ8RS@%B3Tcdym8#oQ*TpL-TGkqKf+0{PVZ=`Jh9=8f5<QNusnfA?FYYDuC?= zPY?*tgSuq#bCfLF@{(Om%f{Tif@ja7t*i+-Mw(~rY7D%cUHn*vdITx=2IE9N3v2Yo z9}iWA(yKiOGWbxja@|Mb^B1Y2*5bIryP^Gcji|yma@}_Nwvq|?R@HpiWAQO2ZG2c6 zi8P<d@wSec{<@3zb291Y!&C~MC1+V8ALHV#|1`p9;f7uz@&!B?amfzTwav(jf$xv< zS)5}YXv@qqVN%sm&WD)?9=0bCydTV9T^t=pxlC*!su3Y3$DbK=FFWkVjhiIoMOFQV zT1_#|y-&%<bp$>7&TTuoIZOSze9*-6N_P)y*20g7D&f1gCHZ1pEzgQBo6i|{SDZYQ zrs8gwLT0AP;SgQW^x%~xM5P}(m|Gc371Mlo*TL3G8)XClfU;n%PtM$gv3~#*|J)eV z4EX<rc@DBtm>0T$Kzt^!YZ=`r`djA$2^rz@NHnxwjC5a^z^iD^VFW-rERFXB6uG#J zK}do&h^vD1G1TyYswPJ;{u6n%GG3#)ph0hz12{;p6$IHIv^g7ro?KhDlK~t=xpe3P zniC5LVW4c9n?3@f^cX(i2xCEij+o-qlIBz=fLA9DH^!6Whu=RCURg4!^bC2^cW|e2 zHliU7Q!=O!La^2tCOME)>?*>Np#~Y88z#~WAV%PMLc_xi`;>w}GSu$)V;Rpub;X5O zKM+&Iqr|WPJrGm;a3juBJtf2xsM6q6KUhah*(~IH`k-1wblnvq+!{!}gSa2k9N_Je z0GJD|2>N@@eYuHnMW8;~O7ZS+MR2@3Ls26CK`2qd6=MFG63mvwG;5t?AY>wj7~A7< z2jbnL82^ilo&-UZ1|njL0{RE08ff552<{>=c{pVp$~6-L(eL0OkOSjQ$#>u&gavMI z7s#vyD~c!+{MDC%<1mORV4Yw;=M+I5Ba1TA6ZY@#3p4Q3<$NdnUkW=7?a^`k_~Z=C zUolYs00pAt@H&y&8}OXSJBE`&ygLhCIvkXMxC-)q_e3g7WB3&8!>7te1ToF;_q%)5 zwmiGF6&28)-S0~s5d@7?ZQ{#*<lVmg1rq0wy9_9Dvt}U>Xuq%X$I}4LAg>u9t4%xh z{mP8e;jV2NZCWCzp&1^_lf;ybvm@Au6St?A*c8-jUL6DoRoy0(3wd8iKN)Y+EJ$Rv z7P?xXylGc~87=Ea3L;GTQm3fQIS9F@X+M5ur}+?0TINR`inRcu#jjZy(|m5HQaYAW z-Y!W3vCke>E66t@UCgQZyg*mcL%1QY9P{yk@Xyz-Z9w3soyv3fg`JwK?=7_@;-USZ z-oXbPt)&@CWV(*G_WSyO`i?+d^#{ZdxvOb<qd*m~umJA>GYiP$emt5z(P;o(0pbx= zceVp%1ayrT#|mFEFxI|tE07MLfop#uNg6|4t5}xl;?>c~wahqkbCdXcE*-1VOc<ER zSOcI!;Wp@pGgy21`LhvAlEoz{j5!%DkQI;stj_QSJQ{(%^6eYoMQn$HD;WR4nk|6B zbqMG%sNM#ka;HEtmvNVd{<(?G%!0KP&WottKDqt_d$2wRT5fH1Sp<XdW(cW<p?bgm zo`YiLmQH!rw%A50f!OD5kfKFiB#_OS2Bkh8=mMvK2r^(>VA5+(`HuHdlAyPMX_X7q z1s<&xFK?vz@UWba&dI*R7%Iejk#ar6xi9B-I>89o^3zXOYYkv6MO1p9p4*JP186Ad zImWd+1mK{Nq(r@d4n&yf5&NDZy2?c46*9)kM0-7FKTP?W7kXu+`B%5F=~l3FKLk$} z9JK6jwP(LywE;jwQ0T&_)W?+#fhAbakiG+`Z>xX~er1VHOaVR?`}*r*4a;kJGH$9& zbai-jnZddeG=tgBe@gfBrAyE}<6Ws?d@_!|!kM8)O#lEb0o5({e>?Z`4Q~}dYo7zr zAZV!)#?4jR(q9udmYv7x#YNI01eg)z*Ecu$)j$NtwdpK86PwxAg39IF&u5-V>jhDG zsIGLveiXt5^HZhM?LS8HDZJ08&5wSr5G{0KbV-ur6$a|^X?)u@0SKnC^RUenFdsk? z5>r6Q*kO#18A|Rg=MoUGvILZaV`iIt;9z;b6R<&4?8Fr~87J04rZJzU{kT7Z%tSl8 z^zCNtrKjt8plfQg60>Nu>U6M#tWoo@ZvvL>-X1pAgphbbZ8nkRbw`b0wHn_C(8qT_ zK&eEeyGR4#VRmAgue-cdfppuyy~AUm%y|L^JA>tw>_8AWp-P;q9*BGx_ZOcczaCft z!ldcVt&tHIz{Ob&e9NYF$SE#E)Fqd%`}tGqsSy|0xj>!HSBnTLVU5rqiGY+rXeWyX zZ~Rw!LXOE1P6Cuh^s#I2s34(y2Guzz4=9_`yB?T{%U4`@q8e*p%Rq>X)?Opq<m9$m zIR{*uDSRuOuN06@%6iBtAs+%n<p`|e^VJsuR49j8JzEobEJVcsr-5jf2zKJhnJGS? z-%OKmg*9Q^PO<PSGg}k%{G;2x)dodG<nCNy)=I<`K7W1``pCz1sHP>Y1UmsVTVO+{ zV8EQ-c1}V*dm^JNmydbO0Sogq2f2WMLuZ;c8~B}efNQ$%?y_bLnjtq$BecCXLSPxu zsEpQx4<-bd6EoHyAHE^)GZ#uOZ1ByrDlJ@p91G8e;Vha`iD&Aj?fmISO$d`+Z4Lw} zIfwnnp;iN}_mi2eLqqH3^@tUOx9mQ2niuGAH6i5K*wCS^;g*09YU>zl@s3}ofTpSM zN|9Rwq$yt3dE7$_f?PmFF)5r(U|eJ=d=?FVv<`HD!Gy^!EVLkm7jX^7@Fw3H*~ZHn zDU2jYK{<=^1eENdLvI07dh{tb59oA{#?GnY6`yG&dba=Q>Cf=SQ#Bu>3QM8C9Ip=2 z;)jYh3MBi+I3QY}Lx2SXk7%cv#60ku2wkN<J#VWbc7lP2K-+jW5{}YKepwbS7Z3N; zOI0t`gm~7{_t|0LnSgc}gdm?Vjg+&vYDZV$mXg3(T~P--gfH6i&j^?rK?-YC?I>g2 z;k^r*2Z)la8{Q8TtdL%0aoK8cX=@$=ki0YJd2HQFy{kqj-^V;~QxZN`IY?FKg%GLt zgHp*7>E<+ugFy~kkN1Okh}{AGq1dkS3?gtIR(ssVDKujTtLl8(4xwB%h};1LqeNFh zJ5K<K@)+tELr<uszJ-M|_)NRXRMthSl)>^l8kDewVvcST^{p1f?ta_^n&fLMK)75G zcehFj=j$%Ig4}w_c>){dQ0mmcpM+{3q2A4>89M_|BaXMaatV+cc(bJZ7{F5MydMNu z;R=ZyL5UJ+eKOoN@>f$Hv!fvu!_h_3{n>eKRy-bwIvCHrS4yW3Qdb{(h#IB){UguC z=#P9B1HfM!WL>)q%l+B<Mc7=ut5=`f%dK5|1RJmjVPSP50&rEqqKv1*hE}2m_eZ|N z)r`AP7tvW_fBaRaOHv;~{@9Cu^@K!>u0q#%;4FvP#n@S^y4t_?=unZIf88^edr?Gr zGJ^283c`k~pZ9&+1|mDXKYpau{`NV2JM^FB2mL2bu-AVh{0rweyINwB;&X6g8LLzE zMq+3QV};7~=;4NIyXEJF-u0yOpNaiNpkszmS-So(uS5v!TaxGQi<~E#ZWX`2kV}$W z>Am<ZIQi+wVo9gT-1%vJ?!KoFD@)<d15Z69W&Umz|CK?|G_GB>U15B4DM~xB1pLK^ zzDOr31y}c3z25jSsM;$8|Cx9;(8MNd>fBexExww+le3UE_;lkUZg=jL>XU(&{uJB! z)-)S7{9m~GzMcDj)$G@HhtuMc4uD4oF)dNO+JIaJDfJ==7ksC_yx@m`a`7BUw)1Yg z&F3x#0@&PPHGNgz8pz1&*i^Z?e!Q%!a~a{qRJn|M`vowr3}B07cT)80@#>T7PEp-A z;C?e2aDD06bQYOeSw2WD@uWyKsFn`W^(gtYTA>h2a2}wPKsn-52pGm6n^QHhWr>LW zB`Qk$>w0sg4oODzTr2q1v1B#6?|wT*z|T8=ZVKl;fq>|I`&**xqJV8q-|8~~s5+SL zGjVcyCcFCge+ziNN_AWPx;WmJPxgT#RU=7IEnbz-42->9p6T3_@>)jtoEIYM4=Fm4 zIi^qh)~4`a9YHejQ{&3z+={O=nv{V8=QfR#A08(I(P~bVv0d^)%v1Qn5hxd^p{*Uu zt`mc7OQ=(az~*3sYKV(zJ1#uG1Ze!n=bx*L0G6MaaFHsV)us$=-n0p7*^=~4O&@^{ zOXIP?l@BK&amXjNb^!{E`W7@%+-;EiQH{a?`YM4+Lpbco?t+$Ns9~W)ryTKyY@Amy zIZ*o!F<T+?hTVf}92>d0ncX9_`UD_mV64U)Y*sW7`x!D9$?laa#*jrb)Zi}c^#0K? zzEc;kt^41Wn35EzKaYGB>^1N1{u(5YOFL01hfC6Uv@S-n;Oq6xFCimj?qk(XCIt#O zO!0qn{#c@a*tG2<5K)lKn>zGvU5{Nd$@eT=rK`gB4pgem37D#|0Iy0&2-^r@hQXME zJlcq0C0|{bWv4X-aCJn8bf1y3c=_?%PDNpmUI(b$P$+or0hqCG-n>De{&IG^g*A4w zJH<RTV5&q-_2wDy+nBGu`avGt+jQ1LDT}m*MEMNx2`SY+hnx-I&7QqK#=UoMw7C!q zHiTo|A&y{-THB5@vL1rXxQUCK3-QFQetlT!Tdo8m@|8iuyu1X}Ab_X4sIKu~5h_uR zAuKkMhXF|OdQCV|z?2?jD-|Fu@#^NzC56Me`&J{Srz_X2fzWK3ZB(X+ndG+a2V7l( zTiPekX6)O>-*X>9bvysj(_7ujjS@jF$I%f1wGr=C3FN`8txm7KyxMd?K+)e2HYhD* ztterj3){d!1Y7?~{aQ3|_^WJ6NJ(XG0c<k6@^EBp|3y25GzH345A5pIg<55JWv+;% zdd{dLG){)~$`az^S6Uq01FkM`xo-T?cP%~?Jk(6s`}_Cb6T2ewI56UArtM)Ts3#yF z{IyunZ*W(VEu^N!KymcB>iU?To=qD*NgxGRR+u(x&ExpKwrsO}VT=ciE~qgGH9^<R zA>+*u=75*rf7K$POWrIJgdy6ZP1Z>=c2vJB3?o=|cDT_bFiI3j{Q~HnJz3N@4moHs z!tiu`D{Hxw@5J3BzKN1ZlfZM(gm?;Hf{z?3a)V3=OitL<8yo#U-{O%8Xg`b~bKqhx zk~Vz;uEX&bHnRW<s~5O5y%{-X6Ub5lS09E5nLJPqQ6}W|_sA9)dY@F>N%|e3;B-iF zupn}}&LAKnzuW=vGi$}4%)*hit!n|o8*eVjA8v>j1ArB`jf<c+V=W|}F}U)SXp1Bo zRjhC-*)=0c54!@zFpnQU_GeBO6<|4Th!6j%2+d22p3A2kTsA-5M*-&p;-vAPDjA7> z^yuwy>DKpsECC2`z^)!c96#x(E5ZGBSD%UeI=2#i5L_cF4fpI}syUl*G7vx6D}@0C z34qN$!Zelp(Apm(6u9sd;L+%$B+APZ4&bJjY|{ox2`I3=yZJJ=_XTI+*A{gc&~!*f z3Z$~UKXb;~X2gGK&Izeom!7T;Q#aET3LPN+=;0C^5fs|?T{&v#A1<PZR89$8c)q&O zA2#)KASQSJD9ps;dv*!t;>^ro>bmN_+K9$$iy0UUT|I?3V+U#@nOT$yPxsLy?!g0^ zaNhvaY;loA;upvusZu4()k{*;i2*HE_i;+biE@yp3qR?+Ffr7B_+Vu0Q+VLuK@kj+ zS=l`a&kBy8R`8>+o79BHGRR4>AM6c`jbni{wY%Eem#z*4GT;iZsf8HDTt_GultwEi zc?H*7))n0RT80J+0ukm1G|syAh3R3W42fZxs9yU%*jqE=Qvz3daX~35M9!VSyza^4 zu^!WQ9nUYtDY?eUy7r7JsgZ0$!$b7}U`2{MA_Y_H>gpt3bTdZ2<B6yoC<RjE%=POC zy8C2Sh`OXuLGcRQ2zlhEfBx>f@0Mnh)(&HqYOxgYp#_hXv7v{EzZc<emFsN#i`^LV zNG%VDz_ddDGyTkR-=|;<zAhv1@<9Yc7z0J<bRm*7*SkE8g@uC8dxZ@IfQF*C#_~@7 zk26q12bLEIF>nd4F)5Yp)j#h+)<KAy=|Y<{9{c*zHGXw&=G{^iuF>cejmRx!o>Htz zh>nlX>gnmxUmwk~Ze1yeFG>hXy<||H!}4vi@6I{MD3e^>(qTZJd%ao6v9mc9sUcCz zq&)OrdT0}zv7Z*v*5fyeq=B;8Ty|#EEB7GzE)B_LaW7j;yK&>jT)oXIxNi=Kh>DIE zHKGBOc{-QxAc6tVw<*aw*zB_i_ug+7S<T4RQ*&7g(}vn^xw5O%Axle43LDB}9D3{0 zo`~<wfV~_=OJO?OI!EE5ltHa_qSxrhry2#U_boaQ`!e^3LR51sH6g?!v-B=$EgSZt zNFV_5+Q17&a_uli77E~u*R{7#vtE2>1OA!Am{i&)f0!0P$BaU1?0ZOFAIRpgb3<+c zSv*2R!&~2lEJe|o09kWEO^_1Y$WqUS7#L$nIv1qWYytD497_2@`4%Ktprg!=o+@2i z4HMdDa#vHTVkcz#KnRSv2z8S}epU06R)r}aQNE&7xZZ*8P6PurE3uD~(~5&o0CZi5 z>ce{nxE#vTWcEa+YQ`QqCXRt=>sBcNidxz^IFzo%VAR#`LdTa}Iik94(@g-bphFpq zt&0aBt43_B@eoTxKk$yVMn^%0IR#!PYUFIYBRF58>R|aa9>&4Yih2ClEGL9(xeH4f zgVH`AVpLdK4zUuuQ)}063Iozj4GH<p&~A0T;_$1sbP4R%n35yAxVS*?Yfgfb3{xTu zjyPkb#gqWoSC{j^Jn+lmGW4E&GB|r=uKXd4rA(xvty|H<Qo%iZd=jv3L!a0ZNe468 zb<xwiV98U2n$WKR(HC$YL2^}$lA9I{50<mn#djx-1errO*0GcH-$O+sAzIO+Y+pY+ zJzZe{uh3*a>12e6pKD6iHV~2=M{yCJN`!3C$ebUBocyca&mpd%P&r(2SY!lk#DW>a zPwJ<x$$9<S();T=TnO1<^muu9TW5kWMlDjH#UUwVszCNrR(WQwKy={htqRVJX1j*4 zk#jy5Q-tRZ4DsjBpV#k~!^&4suB`8CzT_tbFM&)Myu{*(K&Yj=I`s`lC_WECys^^h zidp>0YkX${ZT!Rk(&j>DIOONy!T(Pjas6BW=g7ddEaPD7*vitYZCfHk*?1m^NbH2I z6SAkV-?3x;0NhA%3fG{0)|uHIz=`S}e9@31QE~1FC{et)QuzB~=~h(zKQ?EY@HY4A zW#xjtXq#NH@52b8t|0{AT;G{V-XqxCb<PYqhv3&|foq!9@NqaxUd7do7o}2U`b+(D y=K^m2`#y4Ei}`ws{PoBG9*g*Ps{d)P^i_Eg8(@;LyU7Rn3`Rx!eD2wcH~tGdGdC6h diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 015ce128bd..0000000000 --- a/docs/index.html +++ /dev/null @@ -1,165 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.--><head> - <meta charset="UTF-8" /> - <title> - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, - gantt charts and git graphs. - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..282f12f871 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,135 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. + +--- + +layout: home + +title: Mermaid +titleTemplate: Diagramming and charting tool + +hero: +name: Mermaid +text: Diagramming and charting tool +tagline: JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. +image: +src: /header.png +alt: Mermaid +actions: +\- theme: brand +text: Get Started +link: /intro/ +\- theme: alt +text: View on GitHub +link: https://github.com/mermaid-js/mermaid + +features: + +- title: ➕ Easy to use! + details: Mermaid allows even non-programmers to easily create detailed and diagrams through the Mermaid Live Editor. +- title: 🎥 Video Tutorials! + details: Has video tutorials for beginners and advanced users. +- title: 🏆 Award winner! + details: Mermaid was nominated and won the JS Open Source Awards (2019) in the category "The most exciting use of technology"!!! +- title: 🧩 Integrations available! + details: Use Mermaid with your favorite applications, check out the list of Integrations and Usages of Mermaid. + +--- + + + +
    +

    Meet The Team

    + +
    + + diff --git a/docs/img/Code-Preview-Config.png b/docs/intro/img/Code-Preview-Config.png similarity index 100% rename from docs/img/Code-Preview-Config.png rename to docs/intro/img/Code-Preview-Config.png diff --git a/docs/img/Live-Editor-Choices.png b/docs/intro/img/Live-Editor-Choices.png similarity index 100% rename from docs/img/Live-Editor-Choices.png rename to docs/intro/img/Live-Editor-Choices.png diff --git a/docs/img/book-banner-post-release.jpg b/docs/intro/img/book-banner-post-release.jpg similarity index 100% rename from docs/img/book-banner-post-release.jpg rename to docs/intro/img/book-banner-post-release.jpg diff --git a/docs/README.md b/docs/intro/index.md similarity index 92% rename from docs/README.md rename to docs/intro/index.md index 69acccb499..f38d1ab757 100644 --- a/docs/README.md +++ b/docs/intro/index.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # About Mermaid @@ -6,9 +6,9 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. -> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](./n00b-syntaxReference.md). +> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](n00b-syntaxReference). - + [![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) @@ -26,12 +26,12 @@ Diagramming and documentation costs precious developer time and gets outdated qu But not having diagrams or docs ruins productivity and hurts organizational learning.
    Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).

    Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    -[Tutorials](./Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./integrations.md). +[Tutorials](../config/Tutorials.md) has video tutorials. +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./n00b-overview.md) and [Usage](./usage.md). +For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/docs/development.md) | 📜 [Version Log](./CHANGELOG.md) | 🔌 [Plug-Ins](./integrations.md) +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/docs/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -47,7 +47,7 @@ In our release process we rely heavily on visual regression tests using [applito ## Diagram Types -### [Flowchart](./flowchart.md?id=flowcharts-basic-syntax) +### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) ```mermaid-example graph TD; @@ -65,9 +65,7 @@ graph TD; C-->D; ``` -![Flowchart](img/flow.png) - -### [Sequence diagram](./sequenceDiagram.md) +### [Sequence diagram](../syntax/sequenceDiagram.md) ```mermaid-example sequenceDiagram @@ -97,9 +95,7 @@ sequenceDiagram Bob-->>John: Jolly good! ``` -![Sequence diagram](img/sequence.png) - -### [Gantt diagram](./gantt.md) +### [Gantt diagram](../syntax/gantt.md) ```mermaid-example gantt @@ -127,9 +123,7 @@ Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d ``` -![Gantt diagram](img/gantt.png) - -### [Class diagram](./classDiagram.md) +### [Class diagram](../syntax/classDiagram.md) ```mermaid-example classDiagram @@ -165,8 +159,6 @@ Class01 : int gorilla Class08 <--> C2: Cool label ``` -![Class diagram](img/class.png) - ### Git graph ```mermaid-example @@ -195,7 +187,7 @@ Class08 <--> C2: Cool label commit ``` -### [Entity Relationship Diagram - :exclamation: experimental](./entityRelationshipDiagram.md) +### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) ```mermaid-example erDiagram @@ -213,9 +205,7 @@ erDiagram ``` -![ER diagram](img/simple-er.png) - -### [User Journey Diagram](./user-journey.md) +### [User Journey Diagram](../syntax/user-journey.md) ```mermaid-example journey @@ -241,13 +231,11 @@ journey Sit down: 5: Me ``` -![Journey diagram](img/user-journey.png) - ## Installation -**In depth guides and examples can be found at [Getting Started](/n00b-gettingStarted) and [Usage](/usage).** +**In depth guides and examples can be found at [Getting Started](n00b-gettingStarted) and [Usage](../config/usage).** -**It would also be helpful to learn more about mermaid's [Syntax](/n00b-syntaxReference).** +**It would also be helpful to learn more about mermaid's [Syntax](n00b-syntaxReference).** ### CDN @@ -269,7 +257,7 @@ To Deploy Mermaid: 4. You can then add mermaid as a dev dependency using this command: `yarn add --dev mermaid` -### [Mermaid API](./Setup.md): +### [Mermaid API](../config/setup/README): **To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** @@ -282,7 +270,7 @@ To Deploy Mermaid: **Doing so will command the mermaid parser to look for the `
    ` or `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
     
    -**Examples can be found at** [Other examples](/examples)
    +**Examples can be found at** [Other examples](../syntax/examples)
     
     ## Sibling projects
     
    @@ -359,7 +347,7 @@ The above command generates files into the `dist` folder and publishes them to \
     
     Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.
     
    -Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md)
    +Detailed information about how to contribute can be found in the [contribution guide](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md)
     
     ## Security and safe diagrams
     
    @@ -384,3 +372,22 @@ A quick note from Knut Sveidqvist:
     ---
     
     _Mermaid was created by Knut Sveidqvist for easier documentation._
    +
    +
    diff --git a/docs/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md
    similarity index 85%
    rename from docs/n00b-gettingStarted.md
    rename to docs/intro/n00b-gettingStarted.md
    index 15ef23faf1..0b85ff1627 100644
    --- a/docs/n00b-gettingStarted.md
    +++ b/docs/intro/n00b-gettingStarted.md
    @@ -1,35 +1,55 @@
    -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
    +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs.
     
     # A Mermaid User-Guide for Beginners
     
     Mermaid is composed of three parts: Deployment, Syntax and Configuration.
     
    -This section talks about the different ways to deploy Mermaid. Learning the [Syntax](./n00b-syntaxReference.md) would be of great help to the beginner.
    +This section talks about the different ways to deploy Mermaid. Learning the [Syntax](n00b-syntaxReference.md) would be of great help to the beginner.
     
     > Generally the live editor is enough for most general uses of mermaid, and is a good place to start learning.
     
    -**Absolute beginners are advised to view the Video [Tutorials](./Tutorials.md) on the Live Editor, to gain a better understanding of mermaid.**
    +**Absolute beginners are advised to view the Video [Tutorials](../config/Tutorials.md) on the Live Editor, to gain a better understanding of mermaid.**
     
     ## Four ways of using mermaid:
     
     1.  Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live).
    -2.  Using [mermaid plugins](./integrations.md) with programs you are familiar with.
    +2.  Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with.
     3.  Calling the Mermaid JavaScript API.
     4.  Deploying Mermaid as a dependency.
     
     **Note: It is our recommendation that you review all approaches, and choose the one that is best for your project.**
     
    -> More in depth information can be found at [Usage](./usage.md).
    +> More in depth information can be found at [Usage](../config/usage.md).
     
     ## 1. Using the Live Editor
     
     Available at [mermaid.live](https://mermaid.live)
     
    -![EditingProcess](./img/Editing-process.png)
    +```mermaid-example
    +graph TD
    +    A[Enter Chart Definition] --> B(Preview)
    +    B --> C{decide}
    +    C --> D[Keep]
    +    C --> E[Edit Definition]
    +    E --> B
    +    D --> F[Save Image and Code]
    +    F --> B
    +```
    +
    +```mermaid
    +graph TD
    +    A[Enter Chart Definition] --> B(Preview)
    +    B --> C{decide}
    +    C --> D[Keep]
    +    C --> E[Edit Definition]
    +    E --> B
    +    D --> F[Save Image and Code]
    +    F --> B
    +```
     
     In the `Code` section one can write or edit raw mermaid code, and instantly `Preview` the rendered result on the panel beside it.
     
    -The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](./n00b-advanced.md) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](Setup.md) page.
    +The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](../config/n00b-advanced.md) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](../config/setup/README) page.
     
     ![Code,Config and Preview](./img/Code-Preview-Config.png)
     
    @@ -61,9 +81,9 @@ and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/
     
     ## 2. Using Mermaid Plugins:
     
    -You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](./integrations.md).
    +You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations.md).
     
    -**This is covered in greater detail in the [Usage section](usage.md)**
    +**This is covered in greater detail in the [Usage section](../config/usage.md)**
     
     ## 3. Calling the JavaScript API
     
    diff --git a/docs/n00b-syntaxReference.md b/docs/intro/n00b-syntaxReference.md
    similarity index 76%
    rename from docs/n00b-syntaxReference.md
    rename to docs/intro/n00b-syntaxReference.md
    index 2c9ef72074..1169454e2b 100644
    --- a/docs/n00b-syntaxReference.md
    +++ b/docs/intro/n00b-syntaxReference.md
    @@ -1,4 +1,4 @@
    -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
    +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs.
     
     # Diagram Syntax
     
    @@ -38,19 +38,19 @@ erDiagram
               PRODUCT ||--o{ ORDER-ITEM : "ordered in"
     ```
     
    -The [Getting Started](./n00b-gettingStarted.md) section can also provide some practical examples of mermaid syntax.
    +The [Getting Started](n00b-gettingStarted) section can also provide some practical examples of mermaid syntax.
     
     ## Diagram Breaking
     
     One should **beware the use of some words or symbols** that can break diagrams. These words or symbols are few and often only affect specific types of diagrams. The table below will continuously be updated.
     
    -| Diagram Breakers                                                                                               | Reason                                                             | Solution                                          |
    -| -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------- |
    -| **Comments**                                                                                                   |                                                                    |                                                   |
    -| [` %%{``}%% `](https://github.com/mermaid-js/mermaid/issues/1968)                                              | Similar to [Directives](./directives.md) confuses the renderer.    | In comments using `%%`, avoid using "{}".         |
    -| **Flow-Charts**                                                                                                |                                                                    |                                                   |
    -| 'end'                                                                                                          | The word "End" can cause Flowcharts and Sequence diagrams to break | Wrap them in quotation marks to prevent breakage. |
    -| [Nodes inside Nodes](https://mermaid-js.github.io/mermaid/#/flowchart?id=special-characters-that-break-syntax) | Mermaid gets confused with nested shapes                           | wrap them in quotation marks to prevent breaking  |
    +| Diagram Breakers                                                                                               | Reason                                                                  | Solution                                          |
    +| -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------- |
    +| **Comments**                                                                                                   |                                                                         |                                                   |
    +| [` %%{``}%% `](https://github.com/mermaid-js/mermaid/issues/1968)                                              | Similar to [Directives](../config/directives.md) confuses the renderer. | In comments using `%%`, avoid using "{}".         |
    +| **Flow-Charts**                                                                                                |                                                                         |                                                   |
    +| 'end'                                                                                                          | The word "End" can cause Flowcharts and Sequence diagrams to break      | Wrap them in quotation marks to prevent breakage. |
    +| [Nodes inside Nodes](https://mermaid-js.github.io/mermaid/#/flowchart?id=special-characters-that-break-syntax) | Mermaid gets confused with nested shapes                                | wrap them in quotation marks to prevent breaking  |
     
     ### Mermaid Live Editor
     
    @@ -60,9 +60,9 @@ Now, that you've seen what you should not add to your diagrams, you can play aro
     
     Configuration is the third part of Mermaid, after deployment and syntax. It deals with the different ways that Mermaid can be customized across different deployments.
     
    -If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](./Setup.md) here. It includes themes.
    +If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](../config/setup/README) here. It includes themes.
     This section will introduce the different methods of configuring the behaviors and appearances of Mermaid Diagrams.
    -The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](./n00b-gettingStarted.md) methods.
    +The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](n00b-gettingStarted) methods.
     
     ### Configuration Section in the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor).
     
    @@ -72,10 +72,10 @@ Here you can edit certain values to change the behavior and appearance of the di
     
     Used when Mermaid is called via an API, or through a `
    -    
    -  
    -  
    -    
    -
    -    
    -    
    -
    - -
    -
    -
    -

    MermaidPress

    -

    - The Official Guide to Mermaid.js -

    -

    - Learn to create complex diagrams and beautiful flowcharts easily using text and code - using Mermaid.js. -

    - - - -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - - - - - - - - - -
    -
    -
    -

    - Get up to speed with using Mermaid diagrams along with real-world examples and expert tips - from the authors to facilitate a seamless development workflow -

    -
    -
    -
    -
    -
    -

    - Flowcharts is a diagram type that visualizes a process or an algorithm by showing the - steps in order, as well as the different paths the execution can take. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - Sequence diagrams lets you model and visualize interactions between different actors - or objects in a system, as well as the order of those interactions -

    -
    -
    -
    -
    -
    -

    - A class diagram is a graphical representation that is used to visualize and describe - an object-oriented system. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - An entity-relationship diagram is a graphical representation that is used to - visualize the different types of entities that exist within a system. -

    -
    -
    -
    -
    -
    -

    - Use State diagrams to model and document state machines, an abstract way of - representing a system or an algorithm. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - A Gantt chart is a graphical representation that is used to visualize and describe - tasks (events or activities) over time. -

    -
    -
    -
    -
    -

    - These were a few of the diagrams supported by Mermaid. -

    -
    - -
    -
    -

    - Book description -

    -
    -

    - Mermaid lets you represent diagrams using text and code which simplifies the maintenance - of complex diagrams. This is a great option for developers as they’re more familiar with - code, rather than special tools for generating diagrams. Besides, diagrams in code - simplify maintenance and ensure that the code is supported by version control systems. - In some cases, Mermaid makes refactoring support for name changes possible while also - enabling team collaboration for review distribution and updates. -

    -

    - Developers working with any system will be able to put their knowledge to work with this - practical guide to using Mermaid for documentation. The book is also a great reference - for looking up the syntax for specific diagrams when authoring diagrams. -

    -

    - You’ll start by getting up to speed with the importance of accurate and visual - documentation. Next, the book introduces Mermaid and establishes how to use it to create - effective documentation. By using different tools, editors, or a custom documentation - platform, you’ll also learn how to use Mermaid syntax for various diagrams. Later - chapters cover advanced configuration settings and theme options to manipulate your - diagram as per your needs. -

    -

    - By the end of this Mermaid book, you’ll have become well-versed with the different types - of Mermaid diagrams and how they can be used in your workflows. -

    -
    -
    -
    -
    -
    -

    - What you will learn -

    -
    -
    -
    -
    -
    -
    -
      -
    • - Understand good and bad documentation, and the art of effective documentation -
    • -
    • - Become well-versed with maintaining complex diagrams with ease -
    • -
    • - Learn how to set up a custom documentation system -
    • -
    • - Learn how to implement Mermaid diagrams in your workflows -
    • -
    • - Understand how to set up themes for a Mermaid diagram for an entire site -
    • -
    • - Discover how to draw different types of diagrams such as flowcharts, class - diagrams, Gantt charts, and more -
    • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - -
    -

    - Purchase The Official Guide to Mermaid.js -

    -
    -
    -
    -

    -

    Written by Knut Sveidqvist and Ashish Jain.

    -

    - Knut is the creator of Mermaid and both authors are active core team members of the - Mermaid open-source project. -

    -

    - - - -
    - - - diff --git a/docs/landing/sequence-diagram.png b/docs/landing/sequence-diagram.png deleted file mode 100644 index 8c51ac1c5d6601960112784757061943d9d6dc8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19823 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%0D)Muw-s z5EDEtWMbxW-`nUTWi8<{vX8rjuh+Y>r+@Ahi{mO@d4uzA9+Z0dEC|v1AOnDJ&(#ZMTH5=Lpaqy{a5Q;sZYBmj)F-pnjPoT!rAMgE>wnuuF;(Pe=m*nfS^$AAC4+fYBt_CsfNf2>D zf(Avi61!`#CI~Vt|A^>Jpa|bnmdJfCA>EQMZ6FA*VxsPn&dH=+RHlj(bfV=84O<=t zjNS`I3p_wA_XF5n+5i4hyjI?MWUbqG34^j$If{}Al+O~9zO6Rz>Ccj}n|tV!2CYdD zBy7EYvl2sg9CH&&QY6_Xtm0*#dG0J)N5WE5e^I`Q6$-rs@KLJ*{-xeTN-+V*E71J% zn0_y5Y$TxZ;qL84Pj059?|u?1wK%|XGf$7NO5q)fD{ut*r3?HTK72fqK9s{lWFoz= zMlZ!k1*g2dXAOkM>7~LfWBfL2?PlXhNDhm;5^%N~ntLN&tQ=&vnFpo&9&B~cJ47`) zB(YS>%k%lg;-~@yS1_Nw=<$kZ7tK-~e{^zI%f@NIeZx#`NMRP_x-Wrag7r;1Y3$a&rCmJu|HUuBN3%A}{~r54u8WA(9aA#PzU zf#rMVZC}p?xp8y9RSyKKkbj9S<^1oN#?>~x=1LMGzWBQ9w12sz_}&G%Lm5}d4GnU3 zHyXb^{_>?OtRwBs-#||3^#n@2$iAAb&I14HNa^y9i^Azu!>$0$i@_dP`=Tc1)7CSOkm?x@}4HH|4{f#Xj z*Jec>ma@b)WYc4FV?C}6u@qU~+eK;zzx<=LIrY&4AcK?VYFz50By}kVTwYM%PI>35 zuQwDJuaVUu{nt>kUpmgI&>n2$%OG_iAVBG2$VKk-qwIo)QpsZ%sp}W{r9{db#MAPs zOD#hVO1;Fs${s5I6`TCWb}-sTVMDf_`xwPetr%pyoQ9f`)^7d(x@v##%nup0!rFXJ zIz)ZuGPJ0uG2#rOjlS*su-};1ac)TCA2&8 zvM`+FR*J7U{aE^jH+LUG92T%zHBOB7XMMC-Dc)*v5MOYb_@Jdi_5=vq17j zv{`8~AsD1$u4D}z{|>+qJAj$bUhlC6CAN#gum9e>B%M9E{^#iamw&UTph@xnAwmP2 z@BQaIY2Ys&W3us(EZF!g9{JVW!WHDJgP$wBYMjmLlnQ->RMTTnb)fESNH5y>6S(=xM(`y z{xH_ z=qm<7MgS=M#*HC-1<~G%TnviuPwGi#A;pO6zn`~v%C^#Ti0piNJ_Bk{jp_NKc+81V zsJV1BYC2YkO2fWfO zPq=NOSnl%rHQjY3X@N5>4-c)iJUef;AkesoZ$P3pCQmMh^#R0~=0-X?ze|IaPMC?L zmmQ^Dfytr(JUYSBbM9~~bUG}s&D8QcHyL8_e58&s$Yjej>5fb@>nVK8)QGIW&&2|| zmsqGqUlaTh4e*qyu73DBU3vhZc~w!s>bpOQ(Vso92hm;@spKK$sO13qM7eIqku>;z zl{7HiYe#cZ(Yv@5s)Gj&NdrWA+|enuCqk11MFJ&$Je1{GuR?0;`CVyF?pk3Vgd zEn9+Z5cp;Xa}7@0#M+obx+j4jbv!(_FEkFnVxKQi+8!FJV{9f#YUxMG_*zWen-KAo z{a^r(hlYPG*v5DqjNMLX*bI5>(2A_Wb{>bnSS!GzQ$~BF^ zlPz;>0+27$K93J@>RfjQO)rsY*;upapYgtO8osma!Y@&G6CHhX8e9sZ<^98e^Qvvv z*Zin9s-vek8GYzk*~*tI8!9`1j{Pu4wD zJLB6Wf1CRPycS(dJ5ibL{@zfMsL+=_o$>D~$;H|v=m;Xsorr9F%!EEHG9mqnC_;fa z7wXJ{MAZU>O={rxg)9p;1OTn$vm9o}oAFM$?0`;&yI~siCPib6wGZ2$+jPvg%{#xg z8cBy>CMoXHw9Zd-uV|Q`**5W!7vj7(AWR0~{78Du=J%%69FR_hxUyi+$yd9v)GfVx zL6a~~L3hm`S`c_Q*G&3^qLp5a`ExRz2R>3k0|1Q^e&~nDJ$UsP5VsMu2IB))PlWjrxJBSz3zoak`l*Jon88>v$KjR#v1GRSg|?jfhdnL+sMCf&R@6YXh=+}K~)khs~C^i?nEc^^)J5hKFyg1iib7;U$?&w1i7%HT~(%a z?QLYfkw*(mepOstoLgcEt<^f#U^V~&p+@XX7X2K&PeCN9Q^d_)(t@te7|Pk?Zitv& zIN3KsgOy7vus>E-OdXd7Su-}{eWVMbP%Ysn6&_SvT7=8q@#j=vhTemtOhhmH;FRC_@s=+^v~*Mv*oP(L6n;jn9E_U@ z*<9f8f4&9+OlCpf_q6fNlm zxl?%LyMlk)TmCaIcBlTd;q#r>dHL5<@q?AV_D^T-T>9tXBtg||xixt;&!g^qbP!|7 z-ad_K`gxX1>vlKa-fyE?d%9LtB!=g)+q#=|XV=`xotyk%ZpOpA>bvJ`X`CpXz9v^D z?RVa;r6s@p8F%FV5tP4^d@k7Lr^ zu54c9-7R0IYBS8Rdan8GEVIPdV*7&M`qM(~IeQ`<)qkAY%`)38QOPGOW{a)Vrr+)6 z?Djt*8T@t@8_7gndz<-({X=7;_Tl^YC;UG>zh`;M>xG9uWNFUKmfBrrl)}&ap^07X zzmB-V@7>>HxZXFe-#Fd&?5=1(m)^jsW)+{d`nLe52-n7cW%ii;`7>}vcYb|&R^F`{ z+3zg2SXea9l-QHKd0U}sZOl#E+kfx+|7vN@Dt~|WmGt?ocdaD_kEg$nPmi`^Hu_fc$9$&xFIzO&19PyKh*JHRASaYwzxZ4q#+(j)!q{6+4}2afGG)s6N@ znVSx5A9v0|qG`NCViz@aZsp62|vSLV;AAK3E#`0i;Epy@cFBR3cS z58knPTlK#!eg^NtD!M%$o%k07>Y&nDSHM}GL3S#@f{2#w(-Zd0e%Yn45B-!X z;Q3X-nH>i=tF$ou!y@-Lq^pH;N!JfGC}UAV^Es5F*{(L!;6lAPq`)*9;9yn_69;gM*si-AWDj_-vIzPJ^%nv01smT zeAwSQ1pp+nm0rKn_E|Vs_70$!Ugy?_=Gv}ArFN4}y zUes%iI0>v~Wr@18vyrfdllqmRkFfAqU;94k;tnSjOGZ=5;$%Kpf z_g1>MCRh*eRPK30#xk+1k6-90<>?*4+V4z=AN13HYJXZeeG{s8m1b8kyY80JMx|B! z_B2(P9NFDTgrCfDgCM#W^5i=CUk;W01o1irIR0{7whpZiJiF%&8%vq;iI6T;Nd0o; z1s*>5G%=@9r5LMsrG>SD44joMLvF-ihAj5+yGGyv^S$}B;c2h76*0qUVZB?U+(^JQ zKGESqQYAmXLEy>0`QN|$iI4nzqB~C64T4m*g`G(GxP*eX#r ziTHWo{xwL9Q5hQtA4c}`mv_oSRr0w%wQtn9cq$&j#1zYaOGQ_WM|D&E?u8g!td2Lq z3vH&h>=jE;?I#rWHdRNf{! zTl-0hrW_~d43!5Y+iomX%Ka98Z9Ez)c?{UuD%B+!vD9_IF7_%AvdvFfa}jbmCDpds zKN{7*#=|@n57Vl8vY_Er;bl}YGoo#O@(wVSORncKeN;qxQ!jL_AuuXUMC&d+jFs2V zJq&~y0RwKJHEpyg(_}9YzsIRyM7;l6HXi^FakM%M@O3Y?0=`yj#W5Q-sbM7uj_*WW zF@HU${iLVx6twh#7zF+R6rv;po@)-7sKsRbar*OV zvSI0iTxT{hEXNg*is1Qp(>SKA6xg`*bWi$yu=^j=nTsz{eIC8@rin%uC!zjP+O`QwmZr1Jc zGsu3EqZ0K@wdBVvd+8|-D^n1scF!R{r<{^@pH1IwvC8M`foE6-)#~+&yq8bWpZd9E z57lj#&G$&g&XP0u-PVIvnBNTztci`3fqHPeC7wuRym-WPj2;o!bW+p`!=vj7(E$+V zzvn>D`$9tq;+w+moSG_Yw$JfcRJvZhscWwLm^Ds=M=L}?wK3QJx5tV`xazTnIVucg zgnAqpHH*DfEw#uA=r$~-`oF}jF-_-=nlULUV7=HzQ2XI9KL^-PH zSbLY_xIo4dwDYua6hV$S5_F}iDtx4PdatC7s9-&6BGpI1a%Jd>rsgs#y3;lv#t-z?{~5H3Iz#Uj8eZOQRw zaj1zZa$lB@5paL|0^VV9zrJBTBQ@?j))`L zz%m~@rTNK9Fn&l|t?4*~9D~L8fGT3ZKX0OBCqEqu{i1=WbXHtjH7U+1I3{;xtqNl_pq!(0(*8x(puKsfDzv?i}a7qGYI^3=O58 z+7F+>y&-d=`;NnldTvv!y5Xnsmw{x4Y$Fo0_1G_aNOnB-i44<16LDY=pa4*It!Abr z!<#I4m9@#{&BBX?w0|f84qOL_bk1n5BY@2=nOgUidr2hpGhZ9m_3Hio_G^|zG-X$T zJ$*1)lW%2JtC4*`AviUzBR1Fsz#|SsiQ1=}xe?fS|AT=R8?(cgz~xXmaf*&ptKh%t z&`AT00lYI_z;Phe-x=a_TtHNZr|#}&^P1UJ=4?DR%sxtBT(tkN6L3RH>ctJH433bA zyOy>|>)Hk89=%3LT>LZmnSK-AWMDKTLIRhrp}jB=UhTwEjH2#AmpZ$JO!ED0H_ij} z7@=a)MnGGuJ3bWbvNPL6W`$VL!|*Z1D;wz=^OCb>S7<;ER_nV1O1jn-cC2~CkzujZ zR}xg-Y#ogWWiXX0@!3dSOZ_f>unvjLANHtu$*U$3+X-t3{lANny8G}Cdn+hufA8hA z1RS;_JHo%d%zc4c);*sXr}xrxSof|;#AfC?Asx?-jX%G2CW>fvNAwjq1<&(MY#v59 zv~X6fG!3K9C_`$i6IVLb*VXhSxxr4MQq7y}P1jVc379A^kl(`-IFL8^((LlrHOG~; zxCXIoZ<l()ltez<7_-V!AhafVxY!%BJnpdw0)0qob&ws*()T4P}4cTkRLa?gpFY_tzWd z{&{)7S!a;+Q+4p1?Uiay^Ybhh3-nz!lMAp7ns{8JcuXM8rFNXEN{-x!ekq9ef1U(c zdejB44?KZjCEhYocRwOW0y)J+lAC2I;b}4-^H_8!{!h}V|2ykiYNbjb-Y;;2@BJz( z8A&buh22tB8+P98xclhOkpQ*&?*mLOMfxup4N*`Qg@YrRng&R;+-&6ncCPmW6 zxa8$`5+1}EXsXDkvHwHp%WkWO3bUL8f_ybHVM?cmLJRBh!Q)-K(m;DAfJnXBV*foa z@&y-xd{XnQC7ha@pH1!D8$UdU%?C8mxR!oviNDfY^Nw(3zjv&&C~W$s9bXvqEAXq@ zJugCwowCrTu(`Q2`f2$6`fo#-G7kxXl!RQ z0_K*i57hwbPF($4QWppDC4A%S!)z14Yxoi~Ivq#mit}m{-^|n>JsCx?4|Sf2P6ue_ z5@G#x7@hMjMiP)pT~ZB+5k6$&qrNXB|9S2|} z_A0H3VANZ^c2#H#2K6>T%$@kziyO3QTB3EAJMI`U{*;1xm^6o}4w+#niI<1?qhfJ-DbWt!BnSu2 zFdGJ>=ho^g>HUiXVb0FIdh_YV+Eo;*uN~+37c;XlVe3&lUXe9$GoJ010%gQ5R>_B~ zUwr^Z`jWY<$C-p5#j<<{9uFw~WD>^>+9R^R>FIF}mz!CC=#C+~rtdr<;9&sZ!h)m+ zyZl<4E27fa^}?5WIr{uge+de9KB=>K7u%lt@1~xZXb(*P`_2TM&s=%}E)zF9`5^Rx zJm^n*%@x<)xFMa{;I4fLfx2htGSmJJ4tftS?}Q^kRL)4molV1*+y$@h0TL*Uhugh! zgiUxLR0U|j%78O&*tA#A_MDCCVRJ1B&V0Wt^mGIiw7>dd>gEd7SpLVuw%ouFsm%mP z@9eF_@&l$i8(s{EftqSo@8YT|B3v7R+vB!`nT>@|fDL8N0GUVv5ubf$7`NobGo$?` zCtL~Pp$VmL+kV_E0a-mgWg~-+tZUi}u5RRrpOq~)bgf2^6)J}cYcx8w#_I?}!^JSA*e{`qEU zXIL*qONp3NRhL1CcK8!8!dB--eHzC9gBH1*j^}`hk@je#{TsZ)O5!^fPp&cQ;O}=@ zth+Otdb$oLmeK|?kRcCMbinIG9b&-vb$#Q3bEi%A)jCPS#g$Qf@fjhhlYgOw{@zP8 z81%zNnd{eifs9ve&gw49XPB{;l8n5(PM4WXn^YPrW~6d^A9holW|i<|;rLdwj{q|d zF66N#%}f6u$#=#e{eLTNDjH zoOYMS!N|v>RH#!gtc$JDRFBBU)?PtJhqBi!VIRtkiIcj$=Jluv3I9=vU~#})dG{or z*fLM?aVQP?^&7{3{KRkg5L6;FKgFye#*4%jV#S?-sma1bhR07D>@1tjW4E=5{Vtn+ zm3h8RTsn`ze`FV0R#x^+vAx+L0Sz$*Sp&VpK}!rdpS-ki9Kd~|tGln)aAJc^8&pU6 zB4&u2Y#}_pMDH{XKxtoT?5CT~Wafl^w!u0sN_hf$#}!jXzETc_cUc~f_S0n%fgf2> z;0&w?yb2X|xdT-+F4@Uh$t_wnr8W2uHElJs>c5sTG|VS^#6@zIIBHq}E|p0I&Rth~f4k98M5jcQzYO9=qu1 zjuI93zsPh&Ex!5qiFVvQaQ7n_SWYEoV;U*d?0~%qiY*m-wB1Z>c2oHtpwJxA+@A{? zX*a%1SZprfTF~nivkE(o8~9R8vmUgE=4d9uE#PhioV}Uw{?x>R2}_+Y64b`Xz*xR% z-=KEz<$dfjw8y}4GEc7fz$kUqp}Be7odxOq_h>If{*LuKu%eahoksCN@f(I3FUhg| zyOd6^SF*wgM`4=$55=p=A(fTr@oIv~<}SRk`riCT{zFFZW+Hn=y3=xm+fYr4a5GV+ zri@+tE7c4-EPd0KApwJ(5cO|7Pgb?>mhcvvK~I_-)&?>UqGU*JEK4pHm~PP7ut2Kx zg+P?4A?`crs-glwT3#w^R#Zf2`e!Lx?INiJ%`>i!8$+nOLr)NS)J zlJ$uqx7i zyG56(J26A7ojyVl8@B9S_rU{?bH<7A`ST_#s1q;21jFWv|U?yqJP+ zy>IWvh8h{gqBePs;soe!)iab zTMDF8%BQfOnXz>lT^Kk=A6su@Nzv`O%+A1K&p8hpMz=+a_4iCZR@;?e)6VvIX9HLM zWo6#$5y-#HFDcXZ3roOurcJXTTz+Q<8=GgATWj{a=Z&C$KYKDZ)W)F1)&A;jXfuy; zZ3Ewz#4#L4i;d(Bo*~t zd%vBde4Afxh2Wr_x0Bhd^hNqFfgriDL^L#+XLe%nozCpHz3u{|-L#d%(GS-ae9U|# zd*!pZSYI_LbeK|Twb^`znC$DF=F4^sO}w)gb>7imU3cWsUGDlzXk}?a5;r5w9(Nh_ z&1HDLzcoqvEt>i2=}-^pMIDs8~(^Ti;(atn_ryLEm27K`b&2j`&-X0?^v$x{hV`FZ$y_QTDRu zZ8Mee&XSWz&)11=uqEG@_2v%sp+jn~URRd)1FBqwbc?=2lz$~~3`4r)F>^M)+xBX? z;%1q`0zSje{C4v?Y7L!f51TUu)tk5D1vlDQRm!4IIX8zqb51w;3Sk?8L zc1o+4da`r;ktg^e)8%)oCqTGelNpVE;346ryHJ6m(K2H>*RHeT3#Y214B)RX+r}6J zP200^Nd0HOr#KF|_4W2dH8bv#n02h4+_*R7^L@3;`%l@`Rm7eyE{?~{ zJ~wD1oYaRS!J%5KdvW+$gOAUx(Cks)TBH;!r2Q4<#T{x)RHIM4l>!`t#HNl+?I-<+ zT<$jR2AcG!NQG(!;!=)xeu~vN5*!~DMOgzLRYMz+9mAKq)OTutVk-fMnLHELs=zeBsTI=G!!DTz&32_{K>rGMDQ zlWEf;Yc6uk&(mYTHk1N7s_l5OyYCnUiq0K`@8nkNhF@(FZ zok%D0ubUpPlI&kJke7*Ypl^$gzk5g|nX|)Dtr~;(7!fD+_H=l&K4)8!*Z$sE28W z1#j0L{fFi3I#v;lT}8Y>>z{qYjlUD4*naK-gwOMJ;Jw7Pld?AQI3@d-wNcXAJsjD= zhFJ!=zCRGBvgbcaEIy8M*Tdg8Mf{CtT$v=L$I_^!W{CJ6d=Va3C1aSc^SuYaH5*j~ zXsEB!qDAlT9Lki1$xY2BHQ=%>Qs;~E*P|v=`0m6RrM&&Q-Nzw;Lj`$1S=zf~LWRGU z_6g*)VZb&2hqoS50k({aljJYy$8wyHtX_M4^!f#8^3O@hXkr635#G{aZDQ%b0IQ1 zl$`)x(#Kgt&ndWQ*WifYJ5yQV(F-Ex^!mK5?SUR7k5;UKI`G$RztBw~6L!uYNZ`liDITAW#;7+LxaRfZl(60T$r`&@qh-n(BIo<5o*uDo!maj|nwLM6Pr(xS zD=b3x&cf8FEClwch7n4zvl5^meV$H-tYl)?{c^(;if$dun z%3_&+H#oX@z!9LvD|-drHuIg2!X>PBoQI}gzG6G`YYu<7_cMHAMhzI^nJrVpa$$5L zf9}1X*+46_HXKooq)R;E0`yNpwboF;OQY;|B8_s$Eks5z@8J7!XXS-`1aPQ!-)oEY z4Si~o4@jZ$B?-%0#ZY0N5{2*YQn?YqGou&h^$9O7@g2Kr>2oECMWe_3JVhH_DBq{4 z?&^83@*yOd29O}04#2G^uFII;mHJ4}huK*0(Grq}+Up36$V~2^j@qg}m?<-6?oj^; z+yyZ+c{iDJCagnT+_nsB_{;5RJEVt;lyU_fwimw-`q{5m6!PegwXRefkj{@!M;4p) z5jhH6Y-CD^>px6ep7X!F36u=}XQ^7^wfDAZ`8GazuU~S_0uk+=e*E_G`yv2g1eY`Q z4_~flt~EMhCN$GtZ{sp1xjhcM4(g{*jr6Iv;F;{q56hbJ2@AC&(wwS;%}-1GKj2nn zao1b)Xo>;q4R3$SPNHLU!H~4E`ntZzEffi1(v{GA@mI5 zfQsHZOgL^1`jrA)uqE@0CU|m0hzG(hzl#K_gbL&7^OmH9P2prz?t(N-uj{0=!)!6< zw#D&-aIl?WSlI!$c9=%qP)wD1!?v)MKF@L79TSurFkMNn11gjG$q^3>hrmQ#A7_DW zuA+6TM;cbExKcBtp?*OwAV6YuJGDjUN;Jv?@#l3_ja2GcI;ZMqC;c`yUy#8^>p<)9 z)e?MyydSi;CJFC+-TPq5(Y)>dfmseg=R(2?xl9g-@8wFVEG{x-9IExyedjvG^GV(lHYXW*piW%FSZ8BBhOuw(t zily^y%qRJp;I$(2R233ZVchuqi^d_%9}-ajhqa8JbKf)%qM(u0Oet2_B_%nCNJ_w2 z^3m$fIG6t=fmuSQ@*|dl5qb=`4bpCPc>nB^X~?7KhMg#;zuvZ35lT9QPn|zTHNTF2 zhw%+mTA)E*?4$|n7cHp3$5$ip86u7fG+seha>DsA?g2`U%_4s1V(w_vn*F!T2JZ75 z!!EX!k_^aoJ${1OGfX!UrDH!?=!|Zp1=FvJP>K2)8oSw!{B?0o_usK)wKD30Izdgh z>Y=lY(^+X6OODYe>#yn`rEV zg<@ALmnEUrVZBVFmb=>Z^Jfa6PbQjTDrHb#9T~wZgp918V2h>7cB7@+Nq=HSfK^?8 zJkysrqHhf}zcmknh@zK0*aH+oXDJ^gr=>bvbqpkHYLm=p#VVwno{|dY3(Fw`ab(WD zUBj`fxi|H`8czhOIaJ;7hB3e%*y z9N7V{cb-3cW~Iy>wtLi#q2s83sa(7|uES2NL~fGGXL!k%zTmvBgkbpBCu}~R=-W-7 z>1Vavf6d=Hq|vYMW~?fC3v5kUT&zM1nkRGJccj@pEM=eDX}KL?nqp@~r{9pU?QdME zi(^{;et5_8s4R?HC*J!>fQ%h7=y9V-KCWOFd8u7UVPyASI_0XgpP~py*B&)FLYCQT zx_+9%QU+I2Nh^$5zwO}dldxx=;3#E6Q%`>Gzp{e=5H%Ygv8xX&yp^vI4BsU9H+s1v zA1hCX)>}mkD5oi&?kc7gMH<69m02```b(^I7HGobFn_6=vd!vcIGeu+k~t>*2h3I* zg|PcLk0h66WpmNPGkXUu?}k@#WGwWqqVTo4_8U9fiZ*zqR98?U8|`{Z)zPpJO$ZN1 zgMV0|t=?70fa`a;phH<_TgS0j>}sd=6|*%{uvS3MH^AI-Z%!^E2`QF@o{n0g=fMgc zupEZP1|GgW-No?IB=~O087|P;mQjWCoPjTC){^>NODXHq7%xl|pG^9R*#05#Hj)cp zykGmz9F1Mg%jT8+@qKn@G%3vtS@FZG=*=p&YBe^W^E}0UF|yxBSl9%NnRE^e8yK^c z1i=a$JWXKkI$z)sn~KW0HyKu_v=mN%EBAmAIn$d$#C^BYWMiP`(FiuYlT-78<~MoK zzu(W9yPV2!)i=+cTet2ligON<9DNgD8{Ozwxm$K}3UK`{yy)CqYk6ec$=hJRrKa<& zFWa6qi?f04PJNr{@F2)Z{YxsiSo?``z>9rX{!FoHA>Ari))sG#6aQ2CrxWmEq#WW= zlwR|&rQ`iUe4k0Ry|qz7>fgl`;%tP1R;c)F(Zj#u<*b_$4_agop-xscyv)CrV59k{ zJMn%1;BnIthd>L`eU35Idg=3sIefzr35~$)d0tRnfWEL`A~NZykK0M=B8lDE49D5c zcwt;|PvzEeVRrn;Q1;>=t+6^+63y!~EJC|bW(J|$mYP*fG;TOy7vx(qJGnXDxxboo z82J^jRDPZuYj{|9QUr3+)zQJ=%3e|3mnsBWL*C*?Q(d22{T|GZ4rfjB8qWOu2gMtn z@Iv969Lk3RdpTzSq|<;2Q{eP)kan+-+FK9IkPgqxDo>mafNOI8jJX;3d`P?iA>g;D#)m(0W)b76v3gzO!phNuw>DFo zTWt;Q^h8^_~u?=@($_i98nQv|1a_cUwyT3U|Nf{$F@SQJ-RId%Q-Bl4@{ z`<`jvDWul7_47&2Bbk2%z6s38_#hm6r|>_^lPr>7_JvAcKj>0V0mrP!#e;IVlDX`~6&UbnTjSZU|G{1xhdw>H9uE+cH?E;*x6L%c`=y7NWIt;J7yJUnrB4;n2%y< zqZ8$vf@}?%!gU=d*(v^Cc>i?Ug}xcp39wnRhS)D<&x0NJNpVPmX58Z5am1ASdu!W{ zKYp;|q$WP>oNLpG{T(E=ks*;FC!7Nt*>AV3d1D<$SfzFyoa^2%rc6e*hKR@}?F1M1fL+0n3Cpnw0c;wsCD19|73D2!IC@j*ejEO~R{jd~V+`WrAh={Pky3eqF=_dJmQZ*4&+e z9lls|vrJciS>uUYh--|Qx0@n|oo0n?O*jbyO4PDC({WXqJ4i?`PNXZCe+}ILwLjg`lS?!*pfli^y-cRL5Lj;B3IPoU4 zy#osFHlihcpNI4Q66W_8gvavZKdbq7&4WlM(DZuo1|?>Ms~GQPqfbuec92 z?{o;W6^;OmLP7tUM(^z*?a`MUA*6+)2&c)XrDv%NobV0jo7SIic?E)xK@h@yIJ3U^ z-@%R9(2XaozO5(k@rKneateK_%4G%*%exz=?Pzccx(;V_2R9l_S)EA`2rhm zi=Zz1-}|{y)&s}u_LS&*e*xdMH`bYf0^~Wg;!#i|G52LpXUBp`?g+hWRL7Y~%iW@S z$U^Es8R{v?XWMJ>?)r;J&dcuiqr8?|BNxYe0w3=ha9mE|Pb}A2$?}lxCWTi6Mt;S& zk@pww@CMIBpa#G9i(q@6$!XT)_cE2YIMfn8@7WiZmkHRDf)8gdOfp{{kY`5IcxI7x zFi~y|`rySo6OOsOeQAjVFBfS8oHB@ZtJQ=uMafHE;)`g^zHsut@^y*HQm$_tR9_wcUycFx*`yLX1n?GiOiw zIDvBOVt+*$%)LTVz177D2Upnbu-n)M_0@HAvRsQK z_{ke30Mm5TvBtygvbBp$L6V=@FL1U`LdpY0q~iAWthFBc#M^fPX;xc&bKrgP3e{Pu zo-&EJZeGU-9?Zgs9hSQA0&?N5VE?7_ zyY>ZNcr}Hye$0Ol2y_QezU@>_ze5RqyKb7eqQ^(>$rj}>x33yY0*4k31x&`C|}7797f5?YW=$^-bh zF<{qT`LUXP^+6=p^Bm?zKQJYt^r?^i(@Z>1m z;#*(|!*^&2QDdO%ptviRjWGx^QYyoX$<5n7(8W+Fok=fyeN-FUY`3!UB^{4 zW^(dtJM9~KS=t{Rk^b;&5JtQLQ6y8x7nb63xD~z#!*l3WTCv!0D$O~yK2Z1NZ5a&i zE>kEpZ?z2z)5ujo@j`tb`g%GIb$W$t`E{6y>DwOdwp4ccCQudk?FBm5384nS*Js1Q zDnlG!h@gO@a`dx>X zQ=YSezm$%>ylba@)Cu%72+cy4y`G~MLI4hmVOFFBZyINfz0yTAEe8TGMU9#XkL@{v zyK%xv@wY#D5-`leLsV zKa<%8<6jfuxo&;LOt2(IUZg*m z`p3~(oYmv~$4jfFYm2Qa%;%X%|9;;zVb_6=Y$f~jaGB^?E9#oW%uJF7fF!B8@u%78 zVyb{s(*JHGvBF|gjcPOZ+Iv0iDY=WK7S?1Gcox+`^7kJOdX_#ng08wd!@7?3 z@>-t1h_WI0rMr-&%2oAb`~OWqF)=o5YADjXC%IP-hmz?mJDc%bee(O>hP9NAm+;c( z^Cfcvsn`j-Z*(q#DeH7N*jj+aKlO~v1u3zyjCf9<+nL^bg4>LN@kr4d8=}68xF5PT zF2!p$osf-gGmKX(_!g(mI&o$8v`Mq_+G6za!nQ5-(9b7CpZ6WW)nJS2@>_oa1_xA% z+5joNp20G1!Bp5UFWa%YH=7wM!JZ}qHhBYz=f)`B?_uK;apOeor-{>Uw zM~p(3&e31CayCdkwWhMX7acCnpIn3TN9l1$Gl@KIS_SyMgh*jfh|jKPGYNu6 z%&wWL7B^Unx(?9&t-FT4U>4t6?>9o+KIhry_sC8LM(-( zz`;o|XM8v6rQA~${HTVbts*zAFZF>w{(}hb)h)n)%zoA&fLRJ`Sp)=8TxQZYl8oKI zPak7EXhnIxU+DeuqahkUjLo}s@76r+QJa_n40&l}-*=hH7`Jc*7_*sHh62C!vDw~1 zBJD0cy>CuL^SHG8E{xH1d9gxLHl-Jgr+>k5YD#k70AL5NhntBCbVo{l#)jz!o@PI} zlESZR&cAj`ptMZ^iYHP}SUuJZPE+~4mvc`m?-}q&?^aH2N;WgKR`Pe}&L6jozH9XR zD_kj{Yr7Cr1<-Wnae<$OlYQ15+4PEJI}k;gr*5ee;Z}Lmri|parvANDVO*Q?~Nha(JQQgqUyvp)^wf8G~)#Vp=w2gMp0?eak)skCd`-r%hpOtK?ehMMH@El0xY+PMGljeF z#zy| zv;QW-RBMy^xz6S`7aS0MNMe=h8n6~H^{;ZdSAFF4eL^Rede8l{AP$q+ehTX9e5*=N zj_lnZ$`5HnV$Pr3|7VcBX>?YgcHGgL5Z5v`pUSKS5^-Z9N=>sG0lk3WWTt&C{2j~_deg?{QSClESW5<-a~L*>2OzR z0n=Ef>~~`!-8e2~IjxxgMkrmg0OPc`WRP?$MAi;DLaX?<*J*~#dOr8v)zf4pyLMT= zBn0qv=xnRV>Ptbkg~&gGw5RmGmC-7`1fQ2i*xzOwq^$f2k;|Yn=4Wg12RGr)Kt|vW zNIRZWBHuB;G)_0&j}w-<3Ffj`QP|alWr<16rz<%&vmfns8KiAh#V$TiJZ+`dFDUK8 z3G1FpY7$aWjj12fO71#&KU?6P{!AwV*M>BRT@aQQ!}Zk85d%onn#s!vinXIyO&DI= zx_W%CIp)BJ&Hf@#De{>|@Vc5jc8%boE9<%j8~%O!zWVt2z;f`DuDwVD&hgEad!#bP zBs#E+!kAJs5~Lfx>JdeX5W$?Ej&lbnyI~N`V=$AgE2$J)EB!|dM4Fh9$1)9DBgD*s z5~fbe7D|i}OQgwR3-5H&f5o(?(&7+-ODjMAeo^*6T@sWU^}dALr7l4`uy)ZO7c6jp?wv=mJO*HB8(`@L!I6@8qzro(JwtGT=jPF_=bBzN!#waUrZ4s4pkV#uY}(K$Z0Gd6^XJLn)l+5O zG8}6Bl{#5f4V`B{7{;cN?&O((hRO(*PekzGVK{Zo)X&cI<=1bI7ZT?nx|kkm zjlYeW#KaYk7Zmrwd>HSlsx?yqL%(o@@nNxcx*uxd&`-OJh`-iq2M)<1!m#=D-|P7a zU_u=0bDAm08nz-k|%Z!Gt~VI$nJdR9aWLg`*h?U7t@t6AF5m%p75rEahIl4NRn0z}F8g%M zIMsq4Pd$fd@L}fP+0D{AX|M#~ffPuPHim!+oRFx&arVm8{su26+y!jc6A?E=g`9DB zebHM>QIf)2sq@{+2Vm;pHM#I{PN_k_FQ|Kh73MxmtR}R{b8K=1ASM@w!|vqP|Mfu$ z{<_D?n_17N1h5qB>38Guc5RpfwQ84d8u#QZWDfW%ll~XFJ7aBSo;w2vH}p-mx=NX% z0M8!aPYIl1);(-hZda$hk$;Yc+E^k%=2Hp^D%f;-C;K(&p3q0BXhvj4>LOsyEWG!w z&f*2_4KLsbiOsP`!RK@KM31ZOgW*#+wG1{FXyKTc3qS9h;eCAvw(Avln7cF_Rvxr+ zXJHiV8P5(f%h1Qqll+Bv6fAhzC9m%ht@l?%nYQp(f<>J(q4k@&opxwT`VX6ifTjlZs-p`)zm#A6<5uyL*0E~G7sVkt z3zjz8bhx5mk4dT@fT-%r{mPOAvj^9=>#3Lu_8;58?{A5+iby5|3>P1K_^OmI$;O zk66Q{TNq`+t+*TfHYuXYrJ90Dvy|H zxZgtX1c_5RJ@8;%{Xu+6xPJV)5=q4#XMj5OY|nO}?6?K{w2ktv1U6!Mue2(CKyk;- zEZ!aJ$xJ=iVD5|`;41HK|2=7!p{+#q& z<7LDdi2b26G;=PHwF+G!?!OwIvldToG7Os5kQ)lC1I@O#DpZMqB85;9oC1^*3mXm#-BmlI3;swE zg_Of?IX+7DiC;K_w|>Q>jD>3O0V;AK0gEB@ef>jd^yemB;^Uj@;?9rI2(|!S_ERA1$>kSqnONu7yunaz!pFN zJt0FBV?C#(DVFhK{YZ|a+R897ORX3xNT#w9Ivo6&Gwm#sdKdUSHuHVu5dGhWIr%({ zh^_4f#no>cmzRQYf&4LLNsd?LUvICYsag62av|ZpfT`)!TgVR?_OXUg&)Bx-GJ++P zS~jy;IK)EEjB$@Rf?MRtAGpBtJ9{S)Sx36=!&Q^j~=k)F`T1T#yAL~&sm)8Yo+09W_(?>=@%4R@SO z2d1U+GT!JD_VTp#v2 zJ1{H!aO#g2AM64R4T-MuTEAkCN&xPqUWUdhn^1jw%c1W_8LTtb1Y!*KIcR*!FPm{3 z{=aUg2`+YP*dY{k;dU@3L0wF{;Eqv|H>Rz6wWTc_7uU}^-Cu7>9lm`I@L@K)yyPc; z+}3saI@nojO$rWIe2h{${>(CIOXRQ*2mHJiuwspg3-xaXA;4ICz)JHI3p6UvMD22d z*b9n1!O*c_KfhpPoMwS{e0rLNJO~poe|F4rJZ5Taa!T58uzy6Nge^i#^$t6YyOp+5 zAcUB4#7X7*!6s>kAI0{f)k8dLvKk2gi{;m-VgfH zB|bLyqli^C0{F*O7rT9$Z)d#-+azB{7qbIXn*913Tm*Bp_Y~A-GZi zUHH`#{&DQF4@3zf{(@^yvJThVPEZ-XrTg4goKgWqKUF~BX8;}ePDG*OyaZ~MIT6nT zGx6IE`Y#Hf0yO!aHUkwn&hc@#n{F{k1@h8B1huRb)<{NK23)`sq6AbnAJ98vk>+gn zhLk6-p0!Uj(3$|ht?1`5HjJDW8)A7}9n!+#GLO+19uto@l|#dL&b`UJhpws6H;Pz6 zxOwkwg0}^HL$}f7XlLRu1`O%p3>iW^IGMq2V6&^j8?Z_PniD`EGx;Yy{?iq3;n+U DRc_Wx diff --git a/docs/faq.md b/docs/misc/faq.md similarity index 95% rename from docs/faq.md rename to docs/misc/faq.md index a24b436b6a..3d3bcb7c3b 100644 --- a/docs/faq.md +++ b/docs/misc/faq.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Frequently Asked Questions diff --git a/docs/integrations.md b/docs/misc/integrations.md similarity index 99% rename from docs/integrations.md rename to docs/misc/integrations.md index 09df7cf9fe..d0b3c5bb19 100644 --- a/docs/integrations.md +++ b/docs/misc/integrations.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Integrations diff --git a/docs/.nojekyll b/docs/public/.nojekyll similarity index 100% rename from docs/.nojekyll rename to docs/public/.nojekyll diff --git a/docs/img/header.png b/docs/public/header.png similarity index 100% rename from docs/img/header.png rename to docs/public/header.png diff --git a/docs/c4c.md b/docs/syntax/c4c.md similarity index 99% rename from docs/c4c.md rename to docs/syntax/c4c.md index 4f9e09ab5e..ebc735f3e0 100644 --- a/docs/c4c.md +++ b/docs/syntax/c4c.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # C4 Diagrams diff --git a/docs/classDiagram.md b/docs/syntax/classDiagram.md similarity index 99% rename from docs/classDiagram.md rename to docs/syntax/classDiagram.md index 60dc6c3906..02119be7ec 100644 --- a/docs/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Class diagrams diff --git a/docs/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md similarity index 99% rename from docs/entityRelationshipDiagram.md rename to docs/syntax/entityRelationshipDiagram.md index 78d058e786..8ee1956e64 100644 --- a/docs/entityRelationshipDiagram.md +++ b/docs/syntax/entityRelationshipDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Entity Relationship Diagrams diff --git a/docs/examples.md b/docs/syntax/examples.md similarity index 97% rename from docs/examples.md rename to docs/syntax/examples.md index b3175edac6..e0638c117a 100644 --- a/docs/examples.md +++ b/docs/syntax/examples.md @@ -1,12 +1,12 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Examples This page contains a collection of examples of diagrams and charts that can be created through mermaid and its myriad applications. -**If you wish to learn how to support mermaid on your webpage, read the [Beginner's Guide](/usage?id=usage).** +**If you wish to learn how to support mermaid on your webpage, read the [Beginner's Guide](../config/usage?id=usage).** -**If you wish to learn about mermaid's syntax, Read the [Diagram Syntax](/flowchart?id=flowcharts-basic-syntax) section.** +**If you wish to learn about mermaid's syntax, Read the [Diagram Syntax](../syntax/flowchart?id=flowcharts-basic-syntax) section.** ## Basic Pie Chart diff --git a/docs/flowchart.md b/docs/syntax/flowchart.md similarity index 96% rename from docs/flowchart.md rename to docs/syntax/flowchart.md index 9e85a18e59..857791a625 100644 --- a/docs/flowchart.md +++ b/docs/syntax/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. # Flowcharts - Basic Syntax @@ -166,6 +166,20 @@ flowchart LR ### A hexagon node +Code: + +```mermaid-example +flowchart LR + id1{{This is the text in the box}} +``` + +```mermaid +flowchart LR + id1{{This is the text in the box}} +``` + +Render: + ```mermaid-example flowchart LR id1{{This is the text in the box}} @@ -315,13 +329,13 @@ flowchart LR ### Dotted link ```mermaid-example -flowchart LR - A-.->B +flowchart LR; + A-.->B; ``` ```mermaid -flowchart LR - A-.->B +flowchart LR; + A-.->B; ``` ### Dotted link with text @@ -679,8 +693,6 @@ flowchart LR B1 --> B2 ``` -**A clarification is in order here.** The direction statement affects the layout of a subgraph but only as long as it does not have any links leading in or out of it. The reason for this is that if you have links in or out then the graph of nodes is not longer the set of nodes in the subgraph but actually the set of nodes of the parent including the ones in the subgraph. One can see it as that the direction of the container gets injected in the subgraph with a link. - ## Interaction It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. @@ -695,7 +707,7 @@ Examples of tooltip usage below: ```html @@ -771,10 +783,10 @@ Beginner's tip—a full example using interactive links in a html context:
    ``` -```tip +::: tip This is the preferred way of configuring mermaid. -``` +::: ### The following methods are deprecated and are kept only for backwards compatibility. @@ -357,9 +357,9 @@ approach are: mermaid.startOnLoad = true; ``` -```warning +::: warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +::: ## Using the mermaid_config @@ -373,9 +373,9 @@ approach are: mermaid_config.startOnLoad = true; ``` -```warning +::: warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +::: ## Using the mermaid.init call @@ -388,6 +388,6 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -```warning +::: warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +::: diff --git a/vdocs/edit.md b/packages/mermaid/docs/edit.md similarity index 100% rename from vdocs/edit.md rename to packages/mermaid/docs/edit.md diff --git a/vdocs/index.md b/packages/mermaid/docs/index.md similarity index 98% rename from vdocs/index.md rename to packages/mermaid/docs/index.md index cc3cd9498d..bc3d4b741c 100644 --- a/vdocs/index.md +++ b/packages/mermaid/docs/index.md @@ -17,7 +17,7 @@ hero: link: /intro/ - theme: alt text: View on GitHub - link: https://mermaid-js.github.io/mermaid/#/ + link: https://github.com/mermaid-js/mermaid features: - title: ➕ Easy to use! diff --git a/packages/mermaid/src/docs/img/Code-Preview-Config.png b/packages/mermaid/docs/intro/img/Code-Preview-Config.png similarity index 100% rename from packages/mermaid/src/docs/img/Code-Preview-Config.png rename to packages/mermaid/docs/intro/img/Code-Preview-Config.png diff --git a/packages/mermaid/src/docs/img/Live-Editor-Choices.png b/packages/mermaid/docs/intro/img/Live-Editor-Choices.png similarity index 100% rename from packages/mermaid/src/docs/img/Live-Editor-Choices.png rename to packages/mermaid/docs/intro/img/Live-Editor-Choices.png diff --git a/packages/mermaid/src/docs/img/book-banner-post-release.jpg b/packages/mermaid/docs/intro/img/book-banner-post-release.jpg similarity index 100% rename from packages/mermaid/src/docs/img/book-banner-post-release.jpg rename to packages/mermaid/docs/intro/img/book-banner-post-release.jpg diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/docs/intro/index.md similarity index 90% rename from packages/mermaid/src/docs/README.md rename to packages/mermaid/docs/intro/index.md index 880e40b43d..063ee9ef9a 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/docs/intro/index.md @@ -4,9 +4,9 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. -> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](./n00b-syntaxReference.md). +> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](n00b-syntaxReference). - + [![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) @@ -25,12 +25,12 @@ But not having diagrams or docs ruins productivity and hurts organizational lear Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).

    Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    -[Tutorials](./Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./integrations.md). +[Tutorials](../config/Tutorials.md) has video tutorials. +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./n00b-overview.md) and [Usage](./usage.md). +For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/docs/development.md) | 📜 [Version Log](./CHANGELOG.md) | 🔌 [Plug-Ins](./integrations.md) +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/docs/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -46,9 +46,9 @@ In our release process we rely heavily on visual regression tests using [applito ## Diagram Types -### [Flowchart](./flowchart.md?id=flowcharts-basic-syntax) +### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) -```mmd +```mermaid-example graph TD; A-->B; A-->C; @@ -56,11 +56,9 @@ graph TD; C-->D; ``` -![Flowchart](img/flow.png) - -### [Sequence diagram](./sequenceDiagram.md) +### [Sequence diagram](../syntax/sequenceDiagram.md) -```mmd +```mermaid-example sequenceDiagram participant Alice participant Bob @@ -74,11 +72,9 @@ sequenceDiagram Bob-->>John: Jolly good! ``` -![Sequence diagram](img/sequence.png) - -### [Gantt diagram](./gantt.md) +### [Gantt diagram](../syntax/gantt.md) -```mmd +```mermaid-example gantt dateFormat YYYY-MM-DD title Adding GANTT diagram to mermaid @@ -91,11 +87,9 @@ Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d ``` -![Gantt diagram](img/gantt.png) - -### [Class diagram](./classDiagram.md) +### [Class diagram](../syntax/classDiagram.md) -```mmd +```mermaid-example classDiagram Class01 <|-- AveryLongClass : Cool Class03 *-- Class04 @@ -112,8 +106,6 @@ Class01 : int gorilla Class08 <--> C2: Cool label ``` -![Class diagram](img/class.png) - ### Git graph ```mermaid-example @@ -129,9 +121,9 @@ Class08 <--> C2: Cool label commit ``` -### [Entity Relationship Diagram - :exclamation: experimental](./entityRelationshipDiagram.md) +### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) -```mmd +```mermaid-example erDiagram CUSTOMER ||--o{ ORDER : places ORDER ||--|{ LINE-ITEM : contains @@ -139,11 +131,9 @@ erDiagram ``` -![ER diagram](img/simple-er.png) - -### [User Journey Diagram](./user-journey.md) +### [User Journey Diagram](../syntax/user-journey.md) -```mmd +```mermaid-example journey title My working day section Go to work @@ -155,13 +145,11 @@ journey Sit down: 5: Me ``` -![Journey diagram](img/user-journey.png) - ## Installation -**In depth guides and examples can be found at [Getting Started](/n00b-gettingStarted) and [Usage](/usage).** +**In depth guides and examples can be found at [Getting Started](n00b-gettingStarted) and [Usage](../config/usage).** -**It would also be helpful to learn more about mermaid's [Syntax](/n00b-syntaxReference).** +**It would also be helpful to learn more about mermaid's [Syntax](n00b-syntaxReference).** ### CDN @@ -185,7 +173,7 @@ To Deploy Mermaid: 4. You can then add mermaid as a dev dependency using this command: `yarn add --dev mermaid` -### [Mermaid API](./Setup.md): +### [Mermaid API](../config/setup/README): **To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** @@ -198,7 +186,7 @@ To Deploy Mermaid: **Doing so will command the mermaid parser to look for the `
    ` or `
    ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
     
    -**Examples can be found at** [Other examples](/examples)
    +**Examples can be found at** [Other examples](../syntax/examples)
     
     ## Sibling projects
     
    @@ -275,7 +263,7 @@ The above command generates files into the `dist` folder and publishes them to <
     
     Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.
     
    -Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md)
    +Detailed information about how to contribute can be found in the [contribution guide](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md)
     
     ## Security and safe diagrams
     
    @@ -300,3 +288,22 @@ A quick note from Knut Sveidqvist:
     ---
     
     _Mermaid was created by Knut Sveidqvist for easier documentation._
    +
    +
    diff --git a/vdocs/intro/n00b-gettingStarted.md b/packages/mermaid/docs/intro/n00b-gettingStarted.md
    similarity index 95%
    rename from vdocs/intro/n00b-gettingStarted.md
    rename to packages/mermaid/docs/intro/n00b-gettingStarted.md
    index b5abe96d67..8c49d399ff 100644
    --- a/vdocs/intro/n00b-gettingStarted.md
    +++ b/packages/mermaid/docs/intro/n00b-gettingStarted.md
    @@ -2,7 +2,7 @@
     
     Mermaid is composed of three parts: Deployment, Syntax and Configuration.
     
    -This section talks about the different ways to deploy Mermaid. Learning the [Syntax](./n00b-syntaxReference.md) would be of great help to the beginner.
    +This section talks about the different ways to deploy Mermaid. Learning the [Syntax](n00b-syntaxReference.md) would be of great help to the beginner.
     
     > Generally the live editor is enough for most general uses of mermaid, and is a good place to start learning.
     
    @@ -17,7 +17,7 @@ This section talks about the different ways to deploy Mermaid. Learning the [Syn
     
     **Note: It is our recommendation that you review all approaches, and choose the one that is best for your project.**
     
    -> More in depth information can be found at [Usage](../config/usage).
    +> More in depth information can be found at [Usage](../config/usage.md).
     
     ## 1. Using the Live Editor
     
    @@ -36,7 +36,7 @@ graph TD
     
     In the `Code` section one can write or edit raw mermaid code, and instantly `Preview` the rendered result on the panel beside it.
     
    -The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](../config/n00b-advanced) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](../config/Setup) page.
    +The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](../config/n00b-advanced.md) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](../config/setup/README) page.
     
     ![Code,Config and Preview](./img/Code-Preview-Config.png)
     
    @@ -68,9 +68,9 @@ and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/
     
     ## 2. Using Mermaid Plugins:
     
    -You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations).
    +You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations.md).
     
    -**This is covered in greater detail in the [Usage section](../config/usage)**
    +**This is covered in greater detail in the [Usage section](../config/usage.md)**
     
     ## 3. Calling the JavaScript API
     
    @@ -180,7 +180,7 @@ In this example mermaid.js is referenced in `src` as a separate JavaScript file,
                 B --> D[Server2]
         
    diff --git a/vdocs/intro/n00b-syntaxReference.md b/packages/mermaid/docs/intro/n00b-syntaxReference.md similarity index 91% rename from vdocs/intro/n00b-syntaxReference.md rename to packages/mermaid/docs/intro/n00b-syntaxReference.md index 8434ec6c1e..f88075ce44 100644 --- a/vdocs/intro/n00b-syntaxReference.md +++ b/packages/mermaid/docs/intro/n00b-syntaxReference.md @@ -24,7 +24,7 @@ erDiagram PRODUCT ||--o{ ORDER-ITEM : "ordered in" ``` -The [Getting Started](./n00b-gettingStarted.md) section can also provide some practical examples of mermaid syntax. +The [Getting Started](n00b-gettingStarted) section can also provide some practical examples of mermaid syntax. ## Diagram Breaking @@ -46,9 +46,9 @@ Now, that you've seen what you should not add to your diagrams, you can play aro Configuration is the third part of Mermaid, after deployment and syntax. It deals with the different ways that Mermaid can be customized across different deployments. -If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](../config/Setup) here. It includes themes. +If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](../config/setup/README) here. It includes themes. This section will introduce the different methods of configuring the behaviors and appearances of Mermaid Diagrams. -The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](./n00b-gettingStarted.md) methods. +The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](n00b-gettingStarted) methods. ### Configuration Section in the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor). @@ -58,10 +58,10 @@ Here you can edit certain values to change the behavior and appearance of the di Used when Mermaid is called via an API, or through a ` @@ -495,10 +502,10 @@ Beginner's tip—a full example using interactive links in a html context:
    + * }; mermaid.initialize(config); + * ``` * * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). * A description of each option follows below. diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index d7d5f23cd6..088a50bf94 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -42,13 +42,13 @@ import { remark } from 'remark'; import flatmap from 'unist-util-flatmap'; const MERMAID_MAJOR_VERSION = ( - JSON.parse(readFileSync('packages/mermaid/package.json', 'utf8')).version as string + JSON.parse(readFileSync('../mermaid/package.json', 'utf8')).version as string ).split('.')[0]; // These paths are from the root of the mono-repo, not from the // mermaid sub-directory -const SOURCE_DOCS_DIR = 'packages/mermaid/src/docs'; -const FINAL_DOCS_DIR = 'docs'; +const SOURCE_DOCS_DIR = 'docs'; +const FINAL_DOCS_DIR = '../../docs'; const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; @@ -219,6 +219,7 @@ const getFilesFromGlobs = async (globs: string[]): Promise => { if (verifyOnly) { console.log('Verifying that all files are in sync with the source files'); } + const sourceDirGlob = posix.join('.', SOURCE_DOCS_DIR, '**'); const action = verifyOnly ? 'Verifying' : 'Transforming'; diff --git a/packages/mermaid/src/docs/8.6.0_docs.md b/packages/mermaid/src/docs/8.6.0_docs.md deleted file mode 100644 index 6ba835c2ed..0000000000 --- a/packages/mermaid/src/docs/8.6.0_docs.md +++ /dev/null @@ -1,213 +0,0 @@ -# Version 8.6.0 Changes - -## [New Mermaid Live-Editor Beta](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) - -## [CDN](https://unpkg.com/mermaid/) - -With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. - -`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](./Setup.md). -This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams. - -**A likely application for this is in the creation of diagrams/charts inside company/organizational webpages, that rely on mermaid for diagram and chart rendering.** - -the `init` directive is the main method of configuration for Site and Current Levels. - -The three levels of are Configuration, Global, Site and Current. - -| Level of Configuration | Description | -| ---------------------- | ----------------------------------- | -| Global Configuration | Default Mermaid Configurations | -| Site Configuration | Configurations made by site owner | -| Current Configuration | Configurations made by Implementors | - -# Limits to Modifying Configurations - -**secure Array** - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------------------------------ | ----- | -------- | -------------- | -| secure | Array of parameters excluded from init directive | Array | Required | Any parameters | - -The modifiable parts of the Configuration are limited by the secure array, which is an array of immutable parameters, this array can be expanded by site owners. - -**Notes**: secure arrays work like nesting dolls, with the Global Configurations’ secure array holding the default and immutable list of immutable parameters, or the smallest doll, to which site owners may add to, but implementors may not modify it. - -# Secure Arrays - -Site owners can add to the **secure** array using this command: -mermaidAPI.initialize( { startOnLoad: true, secure: ['parameter1', 'parameter2'] } ); - -Default values for the `secure array` consists of: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']. These default values are immutable. - -Implementors can only modify configurations using directives, and cannot change the `secure` array. - -# Modifying Configurations and directives: - -The Two types of directives: are `init` (or `initialize`) and `wrap`. - -```note -All directives are enclosed in `%%{ }%%` -``` - -Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. - -# Init - -`init`, or `initialize`: this directive gives the user the ability to overwrite and change the values for any configuration parameters not set in the secure array. - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | -| init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | - -```note -init would be an argument-directive: `%%{init: { **insert argument here**}}%%` - -The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. - **for example**: - -`%%{init: {"theme": "default", "logLevel": 1 }}%%` - -Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. - -When deployed within code, init is called before the graph/diagram description. -``` - -**for example**: - -```mmd -%%{init: {"theme": "default", "logLevel": 1 }}%% - graph LR - a-->b - b-->c - c-->d - d-->e - e-->f - f-->g - g--> -``` - -# Wrap - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------- | --------- | -------- | ---------- | -| wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | - -```note -Wrap is a function that is currently only deployable for sequence diagrams. - -Wrap respects a manually added , so if the user wants to break up their text, they have full control over line breaks by adding tags. - -It is a non-argument directive and can be executed thusly: - -`%%{wrap}%%` . -``` - -**An example of text wrapping in a sequence diagram**: - -![Image showing wrapped text](img/wrapped%20text.png) - -# Resetting Configurations: - -There are two more functions in the mermaidAPI that can be called by site owners: **reset** and **globalReset**. - -**reset**: resets the configuration to whatever the last configuration was. This can be done to undo more recent changes set from the last mermaidAPI.initialize({...}) configuration. - -**globalReset** will reset both the current configuration AND the site configuration back to the global defaults. - -**Notes**: Both `reset` and `globalReset` are only available to site owners, and as such implementors have to edit their configs using `init`. - -# Additional Utils to mermaid - -• **memoize**: simple caching for computationally expensive functions, reducing rendering time by about 90%. - -• **assignWithDepth** - an improvement on previous functions with config.js and `Object.assign`. The purpose of this function is to provide a sane mechanism for merging objects, similar to `object.assign`, but with depth. - -Example of **assignWithDepth**: - -![Image showing assignWithDepth](img/assignWithDepth.png) - -Example of **object.Assign**: - -![Image showing object.assign without depth](img/object.assign%20without%20depth.png) - -• **calculateTextDimensions**, **calculateTextWidth**, and **calculateTextHeight** - for measuring text dimensions, width and height. - -**Notes**: For more information on usage, parameters, and return info for these new functions take a look at the jsdocs for them in the utils package. - -# New API Requests Introduced in Version 8.6.0 - -## setSiteConfig - -| Function | Description | Type | Values | Parameters | Returns | -| --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | -| `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | - -```note -Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset -the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig -to the defaultConfig -Note: currentConfig is set in this function。 -Default value: will mirror Global Config -``` - -## getSiteConfig - -| Function | Description | Type | Values | -| --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | -| `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | - -```note -Returns any values in siteConfig. -``` - -## setConfig - -| Function | Description | Type | Values | Parameters | Returns | -| ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | -| `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | - -```note -Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any -values found in conf with key found in siteConfig.secure will be replaced with the corresponding -siteConfig value. -``` - -## getConfig - -| Function | Description | Type | Return Values | -| ----------- | --------------------------- | ----------- | ------------------------------- | -| `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | - -```note -Returns any values in currentConfig. -``` - -## sanitize - -| Function | Description | Type | Values | -| ---------- | ---------------------------------------- | -------------- | ------ | -| `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | - -```note -modifies options in-place -Ensures options parameter does not attempt to override siteConfig secure keys. -``` - -## reset - -| Function | Description | Type | Required | Values | Parameter | -| -------- | ------------------------------ | ----------- | -------- | ------ | --------- | -| `reset` | Resets `currentConfig` to conf | Put Request | Required | None | conf | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | -| `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | - -```note -default: current siteConfig (optional, default `getSiteConfig()`) -``` - -## For more information, read [Setup](Setup.md). diff --git a/packages/mermaid/src/docs/CHANGELOG.md b/packages/mermaid/src/docs/CHANGELOG.md index b80e52b30c..7a75ad4e28 100644 --- a/packages/mermaid/src/docs/CHANGELOG.md +++ b/packages/mermaid/src/docs/CHANGELOG.md @@ -11,7 +11,7 @@ All changes are in descending order, beginning with the newest (latest) version. 🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | 📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) -This version brings with it a system for [dynamic and integrated configuration of the diagram themes](./theming.md). +This version brings with it a system for [dynamic and integrated configuration of the diagram themes](../config/theming.md). The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md). diff --git a/packages/mermaid/src/docs/Configuration.md b/packages/mermaid/src/docs/Configuration.md deleted file mode 100644 index 6eaab8e47c..0000000000 --- a/packages/mermaid/src/docs/Configuration.md +++ /dev/null @@ -1,20 +0,0 @@ -# Configuration - -Configuration is the second half of Mermaid, after deployment. Together Deployment and Configuration constitute the whole of Mermaid. - -This section will introduce the different methods of configuring of the behaviors and appearances of Mermaid Diagrams. -The Following are the most commonly used methods, and are all tied to Mermaid [Deployment](./n00b-gettingStarted.md) methods. - -## Configuration Section in the [Live Editor](https://mermaid.live/). - -## The `initialize()` call, for when Mermaid is called via an API, or through a
    - -A summary of all options and their defaults is found [here][3]. -A description of each option follows below. - -## theme - -Theme , the CSS style sheet - -| Parameter | Description | Type | Required | Values | -| --------- | --------------- | ------ | -------- | ---------------------------------------------- | -| theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | - -**Notes:** To disable any pre-defined mermaid theme, use "null".
     "theme": "forest",
    -"themeCSS": ".node rect { fill: red; }" 
    - -## fontFamily - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | -| fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. - -## logLevel - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- | -| logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' | - -**Notes:** - -- Trace: 0 -- Debug: 1 -- Info: 2 -- Warn: 3 -- Error: 4 -- Fatal: 5 (default) - -## securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | string | Required | `sandbox`, `strict`, `loose`, `antiscript` | - -**Notes**: - -- **`strict`**: (**default**) tags in text are encoded, click functionality is disabled -- **`loose`**: tags in text are allowed, click functionality is enabled -- **`antiscript`**: html tags in text are allowed, (only script element is removed), click - functionality is enabled -- **`sandbox`**: With this security level all rendering takes place in a sandboxed iframe. This - prevent any JavaScript from running in the context. This may hinder interactive functionality - of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. - -## startOnLoad - -| Parameter | Description | Type | Required | Values | -| ----------- | -------------------------------------------- | ------- | -------- | ----------- | -| startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | - -**Notes:** Default value: true - -## arrowMarkerAbsolute - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | -| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | - -**Notes**: - -This matters if you are using base tag settings. - -Default value: false - -## secure - -This option controls which currentConfig keys are considered _secure_ and can only be changed -via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the -`secure` keys in the current currentConfig. This prevents malicious graph directives from -overriding a site's default security. - -**Notes**: - -Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] - -## deterministicIds - -This option controls if the generated ids of nodes in the SVG are generated randomly or based -on a seed. If set to false, the IDs are generated based on the current date and thus are not -deterministic. This is the default behavior. - -**Notes**: - -This matters if your files are checked into source control e.g. git and should not change unless -content is changed. - -Default value: false - -## deterministicIDSeed - -This option is the optional seed for deterministic ids. if set to undefined but -deterministicIds is true, a simple number iterator is used. You can set this attribute to base -the seed on a static string. - -## flowchart - -The object containing configurations specific for flowcharts - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 8 - -### htmlLabels - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | -| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | - -**Notes:** Default value: true. - -### nodeSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | -| nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | - -**Notes:** - -Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the -vertical spacing for LR as well as RL graphs.\*\* - -Default value: 50 - -### rankSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | -| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | - -**Notes**: - -Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal -spacing for LR as well as RL graphs. - -Default value 50 - -### curve - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | -| curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | - -**Notes:** - -Default Value: 'basis' - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid - -Default value: `dagre-wrapper` - -## sequence - -The object containing configurations specific for sequence diagrams - -### activationWidth - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------- | ------- | -------- | ------------------ | -| activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | - -**Notes:** Default value :10 - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### actorMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ---------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------ | -------- | ------------------------- | -| messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### mirrorActors - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------- | -------- | ----------- | -| mirrorActors | Mirror actors under diagram | boolean | Required | true, false | - -**Notes:** Default value: true - -### forceMenus - -| Parameter | Description | Type | Required | Values | -| ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | -| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | - -**Notes:** - -Default value: false. - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | ------------------------------------ | ------- | -------- | ----------- | -| rightAngles | display curve arrows as right angles | boolean | Required | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curve - -Default value: false - -### showSequenceNumbers - -| Parameter | Description | Type | Required | Values | -| ------------------- | ------------------------------- | ------- | -------- | ----------- | -| showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | - -**Notes:** Default value: false - -### actorFontSize - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | - -**Notes:** **Default value 14**.. - -### actorFontFamily - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | -| actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: "'Open Sans", sans-serif' - -### actorFontWeight - -This sets the font weight of the actor's description - -**Notes:** Default value: 400. - -### noteFontSize - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | -| noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 14 - -### noteFontFamily - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | -| noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' - -### noteFontWeight - -This sets the font weight of the note's description - -**Notes:** Default value: 400 - -### noteAlign - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | -| noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### messageFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------------- | ------- | -------- | ------------------- | -| messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | - -**Notes:** Default value: 16 - -### messageFontFamily - -| Parameter | Description | Type | Required | Values | -| ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | -| messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' - -### messageFontWeight - -This sets the font weight of the message's description - -**Notes:** Default value: 400. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: false. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -### labelBoxWidth - -This sets the width of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 50. - -### labelBoxHeight - -This sets the height of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 20. - -## gantt - -The object containing configurations specific for gantt diagrams - -### titleTopMargin - -### titleTopMargin - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 25 - -### barHeight - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------- | -------- | ------------------ | -| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### barGap - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | -| barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | - -**Notes:** Default value: 4 - -### topPadding - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | -| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### rightPadding - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | -| rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### leftPadding - -| Parameter | Description | Type | Required | Values | -| ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | -| leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### gridLineStartPadding - -| Parameter | Description | Type | Required | Values | -| -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ------------------ | -| fontSize | Font size | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### sectionFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------- | ------- | -------- | ------------------ | -| sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### numberSectionStyles - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | -| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | - -**Notes:** Default value: 4 - -### axisFormat - -| Parameter | Description | Type | Required | Values | -| ---------- | --------------------------- | ---- | -------- | ---------------- | -| axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | - -**Notes:** - -This might need adjustment to match your locale and preferences - -Default value: '%Y-%m-%d'. - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### topAxis - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ----------- | -| topAxis | See notes | Boolean | 4 | True, False | - -**Notes:** when this flag is set date labels will be added to the top of the chart - -**Default value false**. - -## journey - -The object containing configurations specific for journey diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### leftMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | Margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ----------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages. | Integer | Required | Any Positive Value | - -**Notes:** - -Space between messages. - -Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ---- | -------- | ------------------------- | -| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------- | ---- | -------- | ----------- | -| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curves - -Default value: false - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | - -**Notes**: - -Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid - -Default value: `dagre-d3` - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | --------------------------- | -| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid - -Default value: `dagre-d3` - -## er - -The object containing configurations specific for entity relationship diagrams - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 20 - -### layoutDirection - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | -| layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | - -**Notes:** - -'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. - -T = top, B = bottom, L = left, and R = right. - -Default value: 'TB' - -### minEntityWidth - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------- | ------- | -------- | ------------------ | -| minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | - -**Notes:** Expressed in pixels. Default value: 100 - -### minEntityHeight - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------- | ------- | -------- | ------------------ | -| minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | - -**Notes:** Expressed in pixels Default value: 75 - -### entityPadding - -| Parameter | Description | Type | Required | Values | -| ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ | -| entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value | - -**Notes:** - -The minimum internal padding between text in an entity box and the enclosing box borders, -expressed in pixels. - -Default value: 15 - -### stroke - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------ | -------- | -------------------- | -| stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | - -**Notes:** Default value: 'gray' - -### fill - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------- | ------ | -------- | -------------------- | -| fill | Fill color of entity boxes | string | 4 | Any recognized color | - -**Notes:** Default value: 'honeydew' - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| fontSize | Font Size in pixels | Integer | | Any Positive Value | - -**Notes:** - -Font size (expressed as an integer representing a number of pixels) Default value: 12 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## pie - -The object containing configurations specific for pie diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## requirement - -The object containing configurations specific for req diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## c4 - -The object containing configurations specific for c4 diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### c4ShapeMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------- | ------- | -------- | ------------------ | -| c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### c4ShapePadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------- | ------- | -------- | ------------------ | -| c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| width | Width of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 216 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------- | ------- | -------- | ------------------ | -| height | Height of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 60 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| boxMargin | Margin around boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### c4ShapeInRow - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------- | ------- | -------- | ------------------ | -| c4ShapeInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many shapes to place in each row. - -Default value: 4 - -### c4BoundaryInRow - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ------------------ | -| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many boundaries to place in each row. - -Default value: 2 - -### personFontSize - -This sets the font size of Person shape for the diagram - -**Notes:** Default value: 14. - -### personFontFamily - -This sets the font family of Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### personFontWeight - -This sets the font weight of Person shape for the diagram - -**Notes:** Default value: normal. - -### external_personFontSize - -This sets the font size of External Person shape for the diagram - -**Notes:** Default value: 14. - -### external_personFontFamily - -This sets the font family of External Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_personFontWeight - -This sets the font weight of External Person shape for the diagram - -**Notes:** Default value: normal. - -### systemFontSize - -This sets the font size of System shape for the diagram - -**Notes:** Default value: 14. - -### systemFontFamily - -This sets the font family of System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### systemFontWeight - -This sets the font weight of System shape for the diagram - -**Notes:** Default value: normal. - -### external_systemFontSize - -This sets the font size of External System shape for the diagram - -**Notes:** Default value: 14. - -### external_systemFontFamily - -This sets the font family of External System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_systemFontWeight - -This sets the font weight of External System shape for the diagram - -**Notes:** Default value: normal. - -### system_dbFontSize - -This sets the font size of System DB shape for the diagram - -**Notes:** Default value: 14. - -### system_dbFontFamily - -This sets the font family of System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_dbFontWeight - -This sets the font weight of System DB shape for the diagram - -**Notes:** Default value: normal. - -### external_system_dbFontSize - -This sets the font size of External System DB shape for the diagram - -**Notes:** Default value: 14. - -### external_system_dbFontFamily - -This sets the font family of External System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_dbFontWeight - -This sets the font weight of External System DB shape for the diagram - -**Notes:** Default value: normal. - -### system_queueFontSize - -This sets the font size of System Queue shape for the diagram - -**Notes:** Default value: 14. - -### system_queueFontFamily - -This sets the font family of System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_queueFontWeight - -This sets the font weight of System Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_system_queueFontSize - -This sets the font size of External System Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_system_queueFontFamily - -This sets the font family of External System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_queueFontWeight - -This sets the font weight of External System Queue shape for the diagram - -**Notes:** Default value: normal. - -### boundaryFontSize - -This sets the font size of Boundary shape for the diagram - -**Notes:** Default value: 14. - -### boundaryFontFamily - -This sets the font family of Boundary shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### boundaryFontWeight - -This sets the font weight of Boundary shape for the diagram - -**Notes:** Default value: normal. - -### messageFontSize - -This sets the font size of Message shape for the diagram - -**Notes:** Default value: 12. - -### messageFontFamily - -This sets the font family of Message shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### messageFontWeight - -This sets the font weight of Message shape for the diagram - -**Notes:** Default value: normal. - -### containerFontSize - -This sets the font size of Container shape for the diagram - -**Notes:** Default value: 14. - -### containerFontFamily - -This sets the font family of Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### containerFontWeight - -This sets the font weight of Container shape for the diagram - -**Notes:** Default value: normal. - -### external_containerFontSize - -This sets the font size of External Container shape for the diagram - -**Notes:** Default value: 14. - -### external_containerFontFamily - -This sets the font family of External Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_containerFontWeight - -This sets the font weight of External Container shape for the diagram - -**Notes:** Default value: normal. - -### container_dbFontSize - -This sets the font size of Container DB shape for the diagram - -**Notes:** Default value: 14. - -### container_dbFontFamily - -This sets the font family of Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_dbFontWeight - -This sets the font weight of Container DB shape for the diagram - -**Notes:** Default value: normal. - -### external_container_dbFontSize - -This sets the font size of External Container DB shape for the diagram - -**Notes:** Default value: 14. - -### external_container_dbFontFamily - -This sets the font family of External Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_dbFontWeight - -This sets the font weight of External Container DB shape for the diagram - -**Notes:** Default value: normal. - -### container_queueFontSize - -This sets the font size of Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### container_queueFontFamily - -This sets the font family of Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_queueFontWeight - -This sets the font weight of Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_container_queueFontSize - -This sets the font size of External Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_container_queueFontFamily - -This sets the font family of External Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_queueFontWeight - -This sets the font weight of External Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### componentFontSize - -This sets the font size of Component shape for the diagram - -**Notes:** Default value: 14. - -### componentFontFamily - -This sets the font family of Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### componentFontWeight - -This sets the font weight of Component shape for the diagram - -**Notes:** Default value: normal. - -### external_componentFontSize - -This sets the font size of External Component shape for the diagram - -**Notes:** Default value: 14. - -### external_componentFontFamily - -This sets the font family of External Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_componentFontWeight - -This sets the font weight of External Component shape for the diagram - -**Notes:** Default value: normal. - -### component_dbFontSize - -This sets the font size of Component DB shape for the diagram - -**Notes:** Default value: 14. - -### component_dbFontFamily - -This sets the font family of Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_dbFontWeight - -This sets the font weight of Component DB shape for the diagram - -**Notes:** Default value: normal. - -### external_component_dbFontSize - -This sets the font size of External Component DB shape for the diagram - -**Notes:** Default value: 14. - -### external_component_dbFontFamily - -This sets the font family of External Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_dbFontWeight - -This sets the font weight of External Component DB shape for the diagram - -**Notes:** Default value: normal. - -### component_queueFontSize - -This sets the font size of Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### component_queueFontFamily - -This sets the font family of Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_queueFontWeight - -This sets the font weight of Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_component_queueFontSize - -This sets the font size of External Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_component_queueFontFamily - -This sets the font family of External Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_queueFontWeight - -This sets the font weight of External Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: true. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -## parse - -### Parameters - -- `text` **[string][4]** -- `parseError` **[Function][5]?** - -Returns **[boolean][6]** - -## setSiteConfig - -## setSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls -to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) -will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this -function _Default value: At default, will mirror Global Config_ - -### Parameters - -- `conf` **MermaidConfig** The base currentConfig to use as siteConfig - -Returns **[object][7]** The siteConfig - -## getSiteConfig - -## getSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | -| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | - -**Notes**: Returns **any** values in siteConfig. - -Returns **[object][7]** The siteConfig - -## setConfig - -## setConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure -keys. Any values found in conf with key found in siteConfig.secure will be replaced with the -corresponding siteConfig value. - -### Parameters - -- `conf` **any** The potential currentConfig - -Returns **any** The currentConfig merged with the sanitized conf - -## render - -Function that renders an svg with a graph from a chart definition. Usage example below. - -```javascript -mermaidAPI.initialize({ - startOnLoad: true, -}); -$(function () { - const graphDefinition = 'graph TB\na-->b'; - const cb = function (svgGraph) { - console.log(svgGraph); - }; - mermaidAPI.render('id1', graphDefinition, cb); -}); -``` - -### Parameters - -- `id` **[string][4]** The id of the element to be rendered -- `text` **[string][4]** The graph definition -- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void** -- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be - inserted. If one is provided a hidden div will be inserted in the body of the page instead. The - element will be removed when rendering is completed. - -Returns **void** - -## getConfig - -## getConfig - -| Function | Description | Type | Return Values | -| --------- | ------------------------- | ----------- | ------------------------------ | -| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | - -**Notes**: Returns **any** the currentConfig - -Returns **any** The currentConfig - -## sanitize - -## sanitize - -| Function | Description | Type | Values | -| -------- | -------------------------------------- | ----------- | ------ | -| sanitize | Sets the siteConfig to desired values. | Put Request | None | - -Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies -options in-place - -### Parameters - -- `options` **any** The potential setConfig parameter - -## addDirective - -Pushes in a directive to the configuration - -### Parameters - -- `directive` **[object][7]** The directive to push in - -## reset - -## reset - -| Function | Description | Type | Required | Values | -| -------- | ---------------------------- | ----------- | -------- | ------ | -| reset | Resets currentConfig to conf | Put Request | Required | None | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | -| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | - -**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) - -### Parameters - -- `config` (optional, default `siteConfig`) - -Returns **void** - -## initialize - -### Parameters - -- `options` **MermaidConfig** - -## - -## mermaidAPI configuration defaults - -```html - -``` - -[1]: Setup.md?id=render -[2]: 8.6.0_docs.md -[3]: #mermaidapi-configuration-defaults -[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean -[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[8]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/packages/mermaid/src/docs/Tutorials.md b/packages/mermaid/src/docs/Tutorials.md deleted file mode 100644 index f4570d8b5a..0000000000 --- a/packages/mermaid/src/docs/Tutorials.md +++ /dev/null @@ -1,72 +0,0 @@ -# Tutorials - -This is list of publicly available Tutorials for using Mermaid.JS . This is intended as a basic introduction for the use of the Live Editor for generating diagrams, and deploying Mermaid.JS through HTML. - -**Note that these tutorials might display an older interface, but the usage of the live-editor will largely be the same.** - -For most purposes, you can use the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor), to quickly and easily render a diagram. - -## Live-Editor Tutorials - -The definitions that can be generated the Live-Editor are also backwards-compatible as of version 8.7.0. - -[Chris Chinchilla: Hands on - Text-based diagrams with Mermaid](https://www.youtube.com/watch?v=4_LdV1cs2sA) - -[GitLab Unfiltered: How to Create Mermaid Diagrams](https://www.youtube.com/watch?v=SQ9QmuTHuSI&t=438s) - -[GitLab Unfiltered: Emilie adds a mermaid diagram to the handbook](https://www.youtube.com/watch?v=5RQqht3NNSE) - -[World of Zero: I Learn How To Build Flowcharts and Signal Diagram's in Mermaid.JS](https://www.youtube.com/watch?v=7_2IroEs6Is&t=207s) - -[Eddie Jaoude: Can you code your diagrams?](https://www.youtube.com/watch?v=9HZzKkAqrX8) - -## Mermaid with HTML - -Examples are provided in [Getting Started](n00b-gettingStarted.md) - -**CodePen Examples:** - -https://codepen.io/CarlBoneri/pen/BQwZzq - -https://codepen.io/tdkn/pen/vZxQzd - -https://codepen.io/janzeteachesit/pen/OWWZKN - -## Mermaid with Text Area - -https://codepen.io/Ryuno-Ki/pen/LNxwgR - -## Mermaid in open source docs - -[K8s.io Diagram Guide](https://kubernetes.io/docs/contribute/style/diagram-guide/) - -[K8s.dev blog: Improve your documentation with Mermaid.js diagrams](https://www.kubernetes.dev/blog/2021/12/01/improve-your-documentation-with-mermaid.js-diagrams/) - -## Jupyter Integration with mermaid-js - -Here's an example of Python integration with mermaid-js which uses the mermaid.ink service, that displays the graph in a Jupyter notebook. - -```python -import base64 -from IPython.display import Image, display -import matplotlib.pyplot as plt - -def mm(graph): - graphbytes = graph.encode("ascii") - base64_bytes = base64.b64encode(graphbytes) - base64_string = base64_bytes.decode("ascii") - display(Image(url="https://mermaid.ink/img/" + base64_string)) - -mm(""" -graph LR; - A--> B & C & D; - B--> A & E; - C--> A & E; - D--> A & E; - E--> B & C & D; -""") -``` - -**Output** - -![Example graph of the Python integration](img/python-mermaid-integration.png) diff --git a/packages/mermaid/src/docs/_navbar.md b/packages/mermaid/src/docs/_navbar.md deleted file mode 100644 index c77bde3bdc..0000000000 --- a/packages/mermaid/src/docs/_navbar.md +++ /dev/null @@ -1,13 +0,0 @@ -- Getting started - - - [Quick start](quickstart.md) - - [Writing more pages](more-pages.md) - - [Custom navbar](custom-navbar.md) - - [Cover page](cover.md) - -- Configuration - - [Configuration](configuration.md) - - [Themes](themes.md) - - [Using plugins](plugins.md) - - [Markdown configuration](markdown.md) - - [Language highlight](language-highlight.md) diff --git a/packages/mermaid/src/docs/_sidebar.md b/packages/mermaid/src/docs/_sidebar.md deleted file mode 100644 index f89f30318b..0000000000 --- a/packages/mermaid/src/docs/_sidebar.md +++ /dev/null @@ -1,44 +0,0 @@ -- 📔 Introduction - - - [About Mermaid](README.md) - - [Deployment](n00b-gettingStarted.md) - - [Syntax and Configuration](n00b-syntaxReference.md) - -- 📊 Diagram Syntax - - - [Flowchart](flowchart.md) - - [Sequence Diagram](sequenceDiagram.md) - - [Class Diagram](classDiagram.md) - - [State Diagram](stateDiagram.md) - - [Entity Relationship Diagram](entityRelationshipDiagram.md) - - [User Journey](user-journey.md) - - [Gantt](gantt.md) - - [Pie Chart](pie.md) - - [Requirement Diagram](requirementDiagram.md) - - [Gitgraph (Git) Diagram 🔥](gitgraph.md) - - [C4C Diagram (Context) Diagram 🦺⚠️](c4c.md) - - [Mindmaps 🦺⚠️](mindmap.md) - - [Other Examples](examples.md) - -- ⚙️ Deployment and Configuration - - - [Tutorials](Tutorials.md) - - [API-Usage](usage.md) - - [Mermaid API Configuration](Setup.md) - - [Directives](directives.md) - - [Theming](theming.md) - - [Accessibility](accessibility.md) - - [Mermaid CLI](mermaidCLI.md) - - [Advanced usage](n00b-advanced.md) - -- 📚 Misc - - - [Use-Cases and Integrations](integrations.md) - - [FAQ](faq.md) - -- 🙌 Contributions and Community - - [Overview for Beginners](n00b-overview.md) - - [Development and Contribution ](development.md) - - [Changelog](CHANGELOG.md) - - [Adding Diagrams ](newDiagram.md) - - [Security ](security.md) diff --git a/packages/mermaid/src/docs/breakingChanges.md b/packages/mermaid/src/docs/breakingChanges.md deleted file mode 100644 index 41b411df6e..0000000000 --- a/packages/mermaid/src/docs/breakingChanges.md +++ /dev/null @@ -1,49 +0,0 @@ -# Breaking changes - -### Breaking changes from history version to latest version: - -## #1 - -```javascript -mermaid.initialize({ - sequenceDiagram:{ - ... - } -}) -``` - -has been changed to - -```javascript -mermaid.initialize({ - sequence:{ - ... - } -}) -``` - -## #2 - -In old versions you needed to reference a CSS file in your HTML: - -```html - -``` - -or - -```html - -``` - -Now it is not needed, and there are no more CSS files in the distribution files. - -You just: - -```javascript -mermaid.initialize({ - theme: 'forest', -}); -``` - -and it works like a charm because now the CSS is inline with the SVG to allow simpler portability. diff --git a/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md b/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md deleted file mode 100644 index cd6ab221bd..0000000000 --- a/packages/mermaid/src/docs/diagrams-and-syntax-and-examples/flowchart.md +++ /dev/null @@ -1,645 +0,0 @@ ---- -sort: 3 -title: Flowchart ---- - -# Flowcharts - Basic Syntax - -## Graph - -This statement declares the direction of the flowchart, either from top to bottom (`TD` or `TB`): - -```mermaid-example -graph TD - Start --> Stop -``` - -or left to right (`LR`): - -```mermaid-example -graph LR - Start --> Stop -``` - -## Flowchart Orientation - -Possible FlowChart orientations are: - -- TB - top to bottom -- TD - top-down (same as top to bottom) -- BT - bottom to top -- RL - right to left -- LR - left to right - -## Flowcharts - -This renders a flowchart that allows for features such as: more arrow types, multi directional arrows, and linking to and from subgraphs. - -Apart from the graph type, the syntax is the same. This is currently experimental. When the beta period is over, both the graph and flowchart keywords will render in this new way. At this point it is OK to start beta testing flowcharts. - -> **Important note** Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897).\*\* - -## Nodes and shapes - -### A node (default) - -```mermaid-example -graph LR - id -``` - -> **Note** The id is what is displayed in the box. - -### A node with text - -It is also possible to set text in the box that differs from the id. If this is done several times, only the last text -found for the node will be rendered. Also if you define edges for the node later on, you can omit text definitions. The -text previously defined will be used when rendering the box. - -```mermaid-example -graph LR - id1[This is the text in the box] -``` - -## Node Shapes - -### A node with round edges - -```mermaid-example -graph LR - id1(This is the text in the box) -``` - -### A stadium-shaped node - -```mermaid-example -graph LR - id1([This is the text in the box]) -``` - -### A node in a subroutine shape - -```mermaid-example -graph LR - id1[[This is the text in the box]] -``` - -### A node in a cylindrical shape - -```mermaid-example -graph LR - id1[(Database)] -``` - -### A node in the form of a circle - -```mermaid-example -graph LR - id1((This is the text in the circle)) -``` - -### A node in an asymmetric shape - -```mermaid-example -graph LR - id1>This is the text in the box] -``` - -Currently it is only possible to render the shape above, and not its mirror. _This might change with future releases._ - -### A node (rhombus) - -```mermaid-example -graph LR - id1{This is the text in the box} -``` - -### A hexagonal node - -```mermaid-example -graph LR - id1{{This is the text in the box}} -``` - -### Parallelogram - -```mermaid-example -graph TD - id1[/This is the text in the box/] -``` - -### Parallelogram alt - -```mermaid-example -graph TD - id1[\This is the text in the box\] -``` - -### Trapezoid - -```mermaid-example -graph TD - A[/Christmas\] -``` - -### Trapezoid alt - -```mermaid-example -graph TD - B[\Go shopping/] -``` - -## Links between nodes - -Nodes can be connected with links/edges. It is possible to have different types of links, or attach a text string on a link. - -### Link with arrow head - -```mermaid-example -graph LR - A-->B -``` - -### Open link - -```mermaid-example -graph LR - A --- B -``` - -### Text on links - -```mermaid-example -graph LR - A-- This is the text! ---B -``` - -or - -```mermaid-example -graph LR - A---|This is the text|B -``` - -### Link with arrow head and text - -```mermaid-example -graph LR - A-->|text|B -``` - -or - -```mermaid-example -graph LR - A-- text -->B -``` - -### Dotted link - -```mermaid-example -graph LR; - A-.->B; -``` - -### Dotted link with text - -```mermaid-example -graph LR - A-. text .-> B -``` - -### Thick link - -```mermaid-example -graph LR - A ==> B -``` - -### Thick link with text - -```mermaid-example -graph LR - A == text ==> B -``` - -### Chaining of links - -It is possible to declare many links on the same line as per below: - -```mermaid-example -graph LR - A -- text --> B -- text2 --> C -``` - -It is also possible to declare multiple nodes links in the same line as per below: - -```mermaid-example -graph LR - a --> b & c--> d -``` - -You can then describe dependencies in a very expressive way. Like the one-liner below: - -```mermaid-example -graph TB - A & B--> C & D -``` - -If you describe the same diagram using the the basic syntax, it will take four lines: - -```mmd -graph TB - A --> C - A --> D - B --> C - B --> D -``` - -A word of warning, one could go overboard with this, making the graph harder to read in -markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little. -This goes for expressive syntaxes as well. - -### New arrow types - -When using flowchart instead of graph there are new types of arrows supported as per below: - -```mermaid-example -flowchart LR - A --o B - B --x C -``` - -### Multi directional arrows - -When using flowchart instead of graph there is the possibility to use multidirectional arrows. - -```mermaid-example -flowchart LR - A o--o B - B <--> C - C x--x D -``` - -### Minimum length of a link - -Each node in the flowchart is ultimately assigned to a rank in the rendered -graph, i.e. to a vertical or horizontal level (depending on the flowchart -orientation), based on the nodes to which it is linked. By default, links -can span any number of ranks, but you can ask for any link to be longer -than the others by adding extra dashes in the link definition. - -In the following example, two extra dashes are added in the link from node _B_ -to node _E_, so that it spans two more ranks than regular links: - -```mermaid-example -graph TD - A[Start] --> B{Is it?}; - B -->|Yes| C[OK]; - C --> D[Rethink]; - D --> B; - B ---->|No| E[End]; -``` - -> **Note** The rendering engine may cause some links to be longer than -> the number of ranks requested in order to accommodate the overall topology. - -When the link label is written in the middle of the link, the extra dashes must -be added on the right side of the link. The following example is equivalent to -the previous one: - -```mermaid-example -graph TD - A[Start] --> B{Is it?}; - B -- Yes --> C[OK]; - C --> D[Rethink]; - D --> B; - B -- No ----> E[End]; -``` - -For dotted or thick links, the characters to add are equals signs or dots, -as summed up in the following table: - -| Length | 1 | 2 | 3 | -| ----------------- | :----: | :-----: | :------: | -| Normal | `---` | `----` | `-----` | -| Normal with arrow | `-->` | `--->` | `---->` | -| Thick | `===` | `====` | `=====` | -| Thick with arrow | `==>` | `===>` | `====>` | -| Dotted | `-.-` | `-..-` | `-...-` | -| Dotted with arrow | `-.->` | `-..->` | `-...->` | - -## Special characters that break syntax - -Use quotes around text in order to render more troublesome characters, as in the example below: - -```mermaid-example -graph LR - id1["This is the (text) in the box"] -``` - -### Entity codes to escape characters - -Special characters (including Unicode) can be included by using HTML escaping syntax: - -```mermaid-example - graph LR - A["A double quote:#quot;"] -->B["A dec char:#9829;"] -``` - -## Subgraphs - -``` -subgraph title - graph definition -end -``` - -An example: - -```mermaid-example -graph TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end -``` - -You can also set an explicit id for the subgraph: - -```mermaid-example -graph TB - c1-->a2 - subgraph ide1 [one] - a1-->a2 - end -``` - -## Flowcharts - -With the graphtype `flowchart` it is also possible to set edges to and from subgraphs: - -```mermaid-example -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end - one --> two - three --> two - two --> c2 -``` - -## Interaction - -A node can have click events bound that lead to either a JavaScript callback or to open a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - -``` -click nodeId callback -click nodeId call callback() -``` - -- nodeId is the id of the node -- `callback` is the name of a JavaScript function defined on the page displaying the graph. The function will be called with the nodeId as an incoming parameter. - -```html - -``` - -Examples of tooltip usage: - -The tooltip text is surrounded in double quotes. The styles of the tooltip are set by the class .mermaidTooltip. - -```mermaid-example -graph LR; - A-->B; - B-->C; - C-->D; - click A callback "Tooltip for a callback" - click B "https://www.github.com" "This is a tooltip for a link" - click A call callback() "Tooltip for a callback" - click B href "https://www.github.com" "This is a tooltip for a link" -``` - -> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. - -?> Due to limitations with how Docsify handles JavaScript callback functions, an alternate working demo for the above code can be viewed at [this jsfiddle](https://jsfiddle.net/s37cjoau/3/). - -Links are opened in the same browser tab/window by default. It is possible to change this by adding a link target to the click definition (`_self`, `_blank`, `_parent` and `_top` are supported): - -```mermaid-example -graph LR; - A-->B; - B-->C; - C-->D; - D-->E; - click A "https://www.github.com" _blank - click B "https://www.github.com" "Open this in a new tab" _blank - click C href "https://www.github.com" _blank - click D href "https://www.github.com" "Open this in a new tab" _blank -``` - -Beginner's tip—here's a full example of using interactive links in HTML: - -```html - -
    -    graph LR;
    -        A-->B;
    -        B-->C;
    -        C-->D;
    -        click A callback "Tooltip"
    -        click B "https://www.github.com" "This is a link"
    -        click C call callback() "Tooltip"
    -        click D href "https://www.github.com" "This is a link"
    -  
    - - - -``` - -### Comments - -Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text until the next newline will be treated as a comment, including all punctuation and any flow syntax. - -```mmd -graph LR -%% this is a comment A -- text --> B{node} - A -- text --> B -- text2 --> C -``` - -## Styling and classes - -### Styling links - -It is possible to style links. For instance, you might want to style a link that is going backwards in the flow. As links -have no ids in the same way as nodes, some other way of attaching style is required. -So instead of ids, the order number of when the link was defined in the graph is used, starting with zero. Here's a linkStyle statement that would apply style to the fourth link in the graph: - -``` -linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; -``` - -You can specify a `default` to apply to all links, or you can give a comma-separated list of link order numbers. - -Instead of giving a styles option, you can also use custom d3 curve types with the following syntax: - -``` -linkStyle default|numList|num interpolate curveType -``` - -If you want to add both D3 and style options, instead of writing: - -``` -linkStyle default interpolate cardinal -linkStyle default stroke:#ff3,stroke-width:4px,color:red; -``` - -You can combine them: - -``` -linkStyle default interpolate cardinal stroke:#ff3,stroke-width:4px,color:red; -``` - -### Styling a node - -It is possible to apply specific styles such as a thicker border or a different background color to a node. - -```mermaid-example -graph LR - id1(Start)-->id2(Stop) - style id1 fill:#f9f,stroke:#333,stroke-width:4px - style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 -``` - -#### Classes - -More convenient than defining the style every time is to define a class of styles and attach this class reference to multiple nodes. - -here's a class definition: - -``` - classDef className fill:#f9f,stroke:#333,stroke-width:4px; -``` - -and then attaching this class to a node is simply: - -``` - class nodeId1 className; -``` - -It is also possible to attach a class to multiple nodes in one statement: - -``` - class nodeId1,nodeId2 className; -``` - -An even shorter form of adding a class is to attach the classname to the node using the `:::`operator: - -```mermaid-example -graph LR - A:::someclass --> B - classDef someclass fill:#f96; -``` - -### Css classes - -It is also possible to predefine classes in css styles that can be applied from the graph definition: - -**Example style** - -```css -.cssClass > rect { - fill: #ff0000; - stroke: #ffff00; - stroke-width: 4px; -} -``` - -**Example definition** - -```mermaid-example -graph LR; - A-->B[AAABBB]; - B-->D; - class A cssClass; -``` - -### Default class - -If a class is named `default` it will be assigned to all nodes that do not have a specific class definition. - -``` - classDef default fill:#f9f,stroke:#333,stroke-width:4px; -``` - -## Basic support for fontawesome - -It is possible to add icons from fontawesome. These are accessed via the syntax fa:#icon-class-name#. - -```mermaid-example -graph TD - B["fa:fa-twitter for peace"] - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); - B-->E(A fa:fa-camera-retro perhaps?); -``` - -## Graph declarations with spaces between vertices and link and without semicolon - -- After release 0.2.16, graph declaration statements do not need to end with a semicolon. (And they can continue to have the ending semicolon—it has now just become optional.) So the below graph declaration is valid along with the old declarations. - -- A single space is allowed between vertices and the link, however there should not be any space between a vertex and its text, or a link and its text. The old syntax of graph declarations will also work, so this new feature is optional and is introduced to improve readability. - -Below is an example of the new way to declare graph edges. This is valid alongside any old-style declarations of graph edges. - -```mermaid-example -graph LR - A[Hard edge] -->|Link text| B(Round edge) - B --> C{Decision} - C -->|One| D[Result one] - C -->|Two| E[Result two] -``` - -## Configuration... - -Is it possible to adjust the width of the rendered flowchart. - -This is done by defining **mermaid.flowchartConfig**, or by the CLI to use a json file with the configuration (which is described in the mermaidCLI page). -In Javascript config parameters can be set by using `mermaid.flowchartConfig`: - -```javascript -mermaid.flowchartConfig = { - width: '100%', -}; -``` diff --git a/packages/mermaid/src/docs/directives.md b/packages/mermaid/src/docs/directives.md deleted file mode 100644 index 47af50c310..0000000000 --- a/packages/mermaid/src/docs/directives.md +++ /dev/null @@ -1,255 +0,0 @@ -# Directives - -## Directives - -Directives gives a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration. - -The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram specific configurations. So, directives are applied on top of the default configurations. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level. - -While directives allow you to change most of the default configuration settings, there are some that are not available, that too for security reasons. Also, you do have the _option to define the set of configurations_ that you would allow to be available to the diagram author for overriding with help of directives. - -## Types of Directives options - -Mermaid basically supports two types of configuration options to be overridden by directives. - -1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are: - -- theme -- fontFamily -- logLevel -- securityLevel -- startOnLoad -- secure - -2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves. - For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type. - -**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code. - -``` -Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs -``` - -## Declaring directives - -Now that we have defined the types of configurations that are available, we can learn how to declare directives. -A directive always starts and end `%%` sign with directive text in between, like `%% {directive_text} %%`. - -Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section. - -Following code snippet shows the structure of a directive: - -``` -%%{ - init: { - "theme": "dark", - "fontFamily": "monospace", - "logLevel": "info", - "flowchart": { - "htmlLabels": true, - "curve": "linear" - }, - "sequence": { - "mirrorActors": true - } - } -}%% -``` - -You can also define the directives in a single line, like this: - -``` -%%{init: { **insert argument here**}}%% -``` - -For example, the following code snippet: - -``` -%%{init: { "sequence": { "mirrorActors":false }}}%% -``` - -**Notes:** -The json object that is passed as {**argument** } must be valid key value pairs and encased in quotation marks or it will be ignored. -Valid Key Value pairs can be found in config. - -Example with a simple graph: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% -graph LR -A-->B -``` - -Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself. - -Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means: - -```mmd2 -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% -%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% -... -``` - -parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: - -```json5 -{ - logLevel: 'fatal', - theme: 'dark', - startOnLoad: true, -} -``` - -This will then be sent to `mermaid.initialize(...)` for rendering. - -## Directive Examples - -More directive examples for diagram specific configuration overrides -Now that the concept of directives has been explained, Let us see some more examples for directives usage: - -### Changing Theme via directive - -The following code snippet changes theme to forest: - -`%%{init: { "theme": "forest" } }%%` - -Possible themes value are: `default`,`base`, `dark`, `forest` and `neutral`. -Default Value is `default`. - -Example: - -```mermaid-example -%%{init: { "theme": "forest" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -### Changing fontFamily via directive - -The following code snippet changes fontFamily to rebuchet MS, Verdana, Arial, Sans-Serif: - -`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%` - -Example: - -```mermaid-example -%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -### Changing logLevel via directive - -The following code snippet changes logLevel to 2: - -`%%{init: { "logLevel": 2 } }%%` - -Possible logLevel values are: - -- `1` for _debug_, -- `2` for _info_ -- `3` for _warn_ -- `4` for _error_ -- `5` for _only fatal errors_ - -Default Value is `5`. - -Example: - -```mermaid-example -%%{init: { "logLevel": 2 } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing flowchart config via directive - -Some common flowchart configurations are: - -- _htmlLabels_: true/false -- _curve_: linear/curve -- _diagramPadding_: number -- _useMaxWidth_: number - -For complete list of flowchart configurations, see [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code. -_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ - -The following code snippet changes flowchart config: - -`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%` - -Here were are overriding only the flowchart config, and not the general config, where HtmlLabels is set to true and curve is set to linear. - -```mermaid-example -%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing Sequence diagram config via directive - -Some common sequence configurations are: - -- _width_: number -- _height_: number -- _messageAlign_: left, center, right -- _mirrorActors_: boolean -- _useMaxWidth_: boolean -- _rightAngles_: boolean -- _showSequenceNumbers_: boolean -- _wrap_: boolean - -For complete list of sequence diagram configurations, see _defaultConfig.js_ in the source code. -_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ - -So, `wrap` by default has a value of `false` for sequence diagrams. - -Let us see an example: - -```mermaid-example -sequenceDiagram - -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` - -Now let us enable wrap for sequence diagrams. - -The following code snippet changes sequence diagram config for `wrap` to `true`: - -`%%{init: { "sequence": { "wrap": true} } }%%` - -Using in the diagram above, the wrap will be enabled. - -```mermaid-example -%%{init: { "sequence": { "wrap": true, "width":300 } } }%% -sequenceDiagram -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` diff --git a/packages/mermaid/src/docs/examples.md b/packages/mermaid/src/docs/examples.md deleted file mode 100644 index d22efc4076..0000000000 --- a/packages/mermaid/src/docs/examples.md +++ /dev/null @@ -1,158 +0,0 @@ -# Examples - -This page contains a collection of examples of diagrams and charts that can be created through mermaid and its myriad applications. - -**If you wish to learn how to support mermaid on your webpage, read the [Beginner's Guide](/usage?id=usage).** - -**If you wish to learn about mermaid's syntax, Read the [Diagram Syntax](/flowchart?id=flowcharts-basic-syntax) section.** - -## Basic Pie Chart - -```mermaid-example -pie title NETFLIX - "Time spent looking for movie" : 90 - "Time spent watching it" : 10 -``` - -```mermaid-example -pie title What Voldemort doesn't have? - "FRIENDS" : 2 - "FAMILY" : 3 - "NOSE" : 45 -``` - -## Basic sequence diagram - -```mermaid-example -sequenceDiagram - Alice ->> Bob: Hello Bob, how are you? - Bob-->>John: How about you John? - Bob--x Alice: I am good thanks! - Bob-x John: I am good thanks! - Note right of John: Bob thinks a long
    long time, so long
    that the text does
    not fit on a row. - - Bob-->Alice: Checking with John... - Alice->John: Yes... John, how are you? -``` - -## Basic flowchart - -```mermaid-example -graph LR - A[Square Rect] -- Link text --> B((Circle)) - A --> C(Round Rect) - B --> D{Rhombus} - C --> D -``` - -## Larger flowchart with some styling - -```mermaid-example -graph TB - sq[Square shape] --> ci((Circle shape)) - - subgraph A - od>Odd shape]-- Two line
    edge comment --> ro - di{Diamond with
    line break} -.-> ro(Rounded
    square
    shape) - di==>ro2(Rounded square shape) - end - - %% Notice that no text in shape are added here instead that is appended further down - e --> od3>Really long text with linebreak
    in an Odd shape] - - %% Comments after double percent signs - e((Inner / circle
    and some odd
    special characters)) --> f(,.?!+-*ز) - - cyr[Cyrillic]-->cyr2((Circle shape Начало)); - - classDef green fill:#9f6,stroke:#333,stroke-width:2px; - classDef orange fill:#f96,stroke:#333,stroke-width:4px; - class sq,e green - class di orange -``` - -## SequenceDiagram: Loops, alt and opt - -```mermaid-example -sequenceDiagram - loop Daily query - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - - opt Extra response - Bob->>Alice: Thanks for asking - end - end -``` - -## SequenceDiagram: Message to self in loop - -```mermaid-example -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
    prevail... - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -## Sequence Diagram: Blogging app service communication - -```mermaid-example -sequenceDiagram - participant web as Web Browser - participant blog as Blog Service - participant account as Account Service - participant mail as Mail Service - participant db as Storage - - Note over web,db: The user must be logged in to submit blog posts - web->>+account: Logs in using credentials - account->>db: Query stored accounts - db->>account: Respond with query result - - alt Credentials not found - account->>web: Invalid credentials - else Credentials found - account->>-web: Successfully logged in - - Note over web,db: When the user is authenticated, they can now submit new posts - web->>+blog: Submit new post - blog->>db: Store post data - - par Notifications - blog--)mail: Send mail to blog subscribers - blog--)db: Store in-site notifications - and Response - blog-->>-web: Successfully posted - end - end - -``` - -## A commit flow diagram. - -```mermaid -gitGraph: - commit "Ashish" - branch newbranch - checkout newbranch - commit id:"1111" - commit tag:"test" - checkout main - commit type: HIGHLIGHT - commit - merge newbranch - commit - branch b2 - commit -``` diff --git a/packages/mermaid/src/docs/gantt.md b/packages/mermaid/src/docs/gantt.md deleted file mode 100644 index ad6573db66..0000000000 --- a/packages/mermaid/src/docs/gantt.md +++ /dev/null @@ -1,343 +0,0 @@ -# Gantt diagrams - -> A Gantt chart is a type of bar chart, first developed by Karol Adamiecki in 1896, and independently by Henry Gantt in the 1910s, that illustrates a project schedule and the amount of time it would take for any one project to finish. Gantt charts illustrate number of days between the start and finish dates of the terminal elements and summary elements of a project. - -## A note to users - -Gantt Charts will record each scheduled task as one continuous bar that extends from the left to the right. The x axis represents time and the y records the different tasks and the order in which they are to be completed. - -It is important to remember that when a date, day, or collection of dates specific to a task are "excluded", the Gantt Chart will accommodate those changes by extending an equal number of days, towards the right, not by creating a gap inside the task. -As shown here ![](./img/Gantt-excluded-days-within.png) - -However, if the excluded dates are between two tasks that are set to start consecutively, the excluded dates will be skipped graphically and left blank, and the following task will begin after the end of the excluded dates. -As shown here ![](./img/Gantt-long-weekend-look.png) - -A Gantt chart is useful for tracking the amount of time it would take before a project is finished, but it can also be used to graphically represent "non-working days", with a few tweaks. - -Mermaid can render Gantt diagrams as SVG, PNG or a MarkDown link that can be pasted into docs. - -```mermaid-example -gantt - title A Gantt Diagram - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d -``` - -## Syntax - -```mermaid-example -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram functionality to mermaid - excludes weekends - %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) - - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d - - section Critical tasks - Completed task in the critical line :crit, done, 2014-01-06,24h - Implement parser and jison :crit, done, after des1, 2d - Create tests for parser :crit, active, 3d - Future task in critical line :crit, 5d - Create tests for renderer :2d - Add to mermaid :1d - Functionality added :milestone, 2014-01-25, 0d - - section Documentation - Describe gantt syntax :active, a1, after des1, 3d - Add gantt diagram to demo page :after a1 , 20h - Add another diagram to demo page :doc1, after a1 , 48h - - section Last section - Describe gantt syntax :after doc1, 3d - Add gantt diagram to demo page :20h - Add another diagram to demo page :48h -``` - -It is possible to set multiple dependencies separated by space: - -```mermaid-example - gantt - apple :a, 2017-07-20, 1w - banana :crit, b, 2017-07-23, 1d - cherry :active, c, after b a, 1d -``` - -### Title - -The `title` is an _optional_ string to be displayed at the top of the Gantt chart to describe the chart as a whole. - -### Section statements - -You can divide the chart into various sections, for example to separate different parts of a project like development and documentation. - -To do so, start a line with the `section` keyword and give it a name. (Note that unlike with the [title for the entire chart](#title), this name is _required_. - -### Milestones - -You can add milestones to the diagrams. Milestones differ from tasks as they represent a single instant in time and are identified by the keyword `milestone`. Below is an example on how to use milestones. As you may notice, the exact location of the milestone is determined by the initial date for the milestone and the "duration" of the task this way: _initial date_+_duration_/2. - -```mermaid-example -gantt -dateFormat HH:mm -axisFormat %H:%M -Initial milestone : milestone, m1, 17:49,2min -taska2 : 10min -taska3 : 5min -Final milestone : milestone, m2, 18:14, 2min -``` - -## Setting dates - -`dateFormat` defines the format of the date **input** of your gantt elements. How these dates are represented in the rendered chart **output** are defined by `axisFormat`. - -### Input date format - -The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`. - -``` -dateFormat YYYY-MM-DD -``` - -The following formatting options are supported: - -``` -Input Example Description: -YYYY 2014 4 digit year -YY 14 2 digit year -Q 1..4 Quarter of year. Sets month to first month in quarter. -M MM 1..12 Month number -MMM MMMM January..Dec Month name in locale set by moment.locale() -D DD 1..31 Day of month -Do 1st..31st Day of month with ordinal -DDD DDDD 1..365 Day of year -X 1410715640.579 Unix timestamp -x 1410715640579 Unix ms timestamp -H HH 0..23 24 hour time -h hh 1..12 12 hour time used with a A. -a A am pm Post or ante meridiem -m mm 0..59 Minutes -s ss 0..59 Seconds -S 0..9 Tenths of a second -SS 0..99 Hundreds of a second -SSS 0..999 Thousandths of a second -Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z -``` - -More info in: https://momentjs.com/docs/#/parsing/string-format/ - -### Output date format on the axis - -The default output date format is YYYY-MM-DD. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020. - -``` -axisFormat %Y-%m-%d -``` - -The following formatting strings are supported: - -``` -%a - abbreviated weekday name. -%A - full weekday name. -%b - abbreviated month name. -%B - full month name. -%c - date and time, as "%a %b %e %H:%M:%S %Y". -%d - zero-padded day of the month as a decimal number [01,31]. -%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %_d. -%H - hour (24-hour clock) as a decimal number [00,23]. -%I - hour (12-hour clock) as a decimal number [01,12]. -%j - day of the year as a decimal number [001,366]. -%m - month as a decimal number [01,12]. -%M - minute as a decimal number [00,59]. -%L - milliseconds as a decimal number [000, 999]. -%p - either AM or PM. -%S - second as a decimal number [00,61]. -%U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. -%w - weekday as a decimal number [0(Sunday),6]. -%W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. -%x - date, as "%m/%d/%Y". -%X - time, as "%H:%M:%S". -%y - year without century as a decimal number [00,99]. -%Y - year with century as a decimal number. -%Z - time zone offset, such as "-0700". -%% - a literal "%" character. -``` - -More info in: https://github.com/mbostock/d3/wiki/Time-Formatting - -## Comments - -Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax - -```mmd -gantt - title A Gantt Diagram - %% this is a comment - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d - -``` - -## Styling - -Styling of the a gantt diagram is done by defining a number of css classes. During rendering, these classes are extracted from the file located at src/themes/gantt.scss - -### Classes used - -| Class | Description | -| --------------------- | ---------------------------------------------------------------------- | -| grid.tick | Styling for the Grid Lines | -| grid.path | Styling for the Grid's borders | -| .taskText | Task Text Styling | -| .taskTextOutsideRight | Styling for Task Text that exceeds the activity bar towards the right. | -| .taskTextOutsideLeft | Styling for Task Text that exceeds the activity bar, towards the left. | -| todayMarker | Toggle and Styling for the "Today Marker" | - -### Sample stylesheet - -```css -.grid .tick { - stroke: lightgrey; - opacity: 0.3; - shape-rendering: crispEdges; -} -.grid path { - stroke-width: 0; -} - -#tag { - color: white; - background: #fa283d; - width: 150px; - position: absolute; - display: none; - padding: 3px 6px; - margin-left: -80px; - font-size: 11px; -} - -#tag:before { - border: solid transparent; - content: ' '; - height: 0; - left: 50%; - margin-left: -5px; - position: absolute; - width: 0; - border-width: 10px; - border-bottom-color: #fa283d; - top: -20px; -} -.taskText { - fill: white; - text-anchor: middle; -} -.taskTextOutsideRight { - fill: black; - text-anchor: start; -} -.taskTextOutsideLeft { - fill: black; - text-anchor: end; -} -``` - -## Today marker - -You can style or hide the marker for the current date. To style it, add a value for the `todayMarker` key. - -``` -todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5 -``` - -To hide the marker, set `todayMarker` to `off`. - -``` -todayMarker off -``` - -## Configuration - -It is possible to adjust the margins for rendering the gantt diagram. - -This is done by defining the `ganttConfig` part of the configuration object. -How to use the CLI is described in the [mermaidCLI](mermaidCLI.html) page. - -mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.ganttConfig = { - titleTopMargin: 25, - barHeight: 20, - barGap: 4, - topPadding: 75, - sidePadding: 75, -}; -``` - -### Possible configuration params: - -| Param | Description | Default value | -| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------- | -| mirrorActor | Turns on/off the rendering of actors below the diagram as well as above it | false | -| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | - -## Interaction - -It is possible to bind a click event to a task. The click can lead to either a javascript callback or to a link which will be opened in the current browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - -``` -click taskId call callback(arguments) -click taskId href URL -``` - -- taskId is the id of the task -- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the taskId as the parameter if no other arguments are specified. - -Beginner's tip—a full example using interactive links in an html context: - -```html - -
    -    gantt
    -      dateFormat  YYYY-MM-DD
    -
    -      section Clickable
    -      Visit mermaidjs           :active, cl1, 2014-01-07, 3d
    -      Print arguments         :cl2, after cl1, 3d
    -      Print task              :cl3, after cl2, 3d
    -
    -      click cl1 href "https://mermaidjs.github.io/"
    -      click cl2 call printArguments("test1", "test2", test3)
    -      click cl3 call printTask()
    -  
    - - - -``` diff --git a/packages/mermaid/src/docs/gitgraph.md b/packages/mermaid/src/docs/gitgraph.md deleted file mode 100644 index f82b88ca1c..0000000000 --- a/packages/mermaid/src/docs/gitgraph.md +++ /dev/null @@ -1,1016 +0,0 @@ -# Gitgraph Diagrams - -> A Git Graph is a pictorial representation of git commits and git actions(commands) on various branches. - -These kind of diagram are particularly helpful to developers and devops teams to share their Git branching strategies. For example, it makes it easier to visualize how git flow works. - -Mermaid can render Git diagrams - -```mermaid-example - gitGraph - commit - commit - branch develop - checkout develop - commit - commit - checkout main - merge develop - commit - commit -``` - -In Mermaid, we support the basic git operations like: - -- _commit_ : Representing a new commit on the current branch. -- _branch_ : To create & switch to a new branch, setting it as the current branch. -- _checkout_ : To checking out an existing branch and setting it as the current branch. -- _merge_ : To merge an existing branch onto the current branch. - -With the help of these key git commands, you will be able to draw a gitgraph in Mermaid very easily and quickly. -Entity names are often capitalized, although there is no accepted standard on this, and it is not required in Mermaid. - -## Syntax - -Mermaid syntax for a gitgraph is very straight-forward and simple. It follows a declarative-approach, where each commit is drawn on the timeline in the diagram, in order of its occurrences/presence in code. Basically, it follows the insertion order for each command. - -First thing you do is to declare your diagram type using the **gitgraph** keyword. This `gitgraph` keyword, tells Mermaid that you wish to draw a gitgraph, and parse the diagram code accordingly. - -Each gitgraph, is initialized with **_main_** branch. So unless you create a different branch, by-default the commits will go to the main branch. This is driven with how git works, where in the beginning you always start with the main branch (formerly called as **_master_** branch). And by-default, `main` branch is set as your **_current branch_**. - -You make use of **_commit_** keyword to register a commit on the current branch. Let see how this works: - -A simple gitgraph showing three commits on the default (**_main_**) branch: - -```mermaid-example - gitGraph - commit - commit - commit -``` - -If you look closely at the previous example, you can see the default branch `main` along with three commits. Also, notice that by default each commit has been given a unique & random ID. What if you wanted to give your own custom ID to a commit? Yes, it is possible to do that with Mermaid. - -### Adding custom commit id - -For a given commit you may specify a custom ID at the time of declaring it using the `id` attribute, followed by `:` and your custom value within a `""` quote. For example: `commit id: "your_custom_id"` - -Let us see how this works with the help of the following diagram: - -```mermaid-example - gitGraph - commit id: "Alpha" - commit id: "Beta" - commit id: "Gamma" -``` - -In this example, we have given our custom IDs to the commits. - -### Modifying commit type - -In Mermaid, a commit can be of three type, which render a bit different in the diagram. These types are: - -- `NORMAL` : Default commit type. Represented by a solid circle in the diagram -- `REVERSE` : To emphasize a commit as a reverse commit. Represented by a crossed solid circle in the diagram. -- `HIGHLIGHT` : To highlight a particular commit in the diagram. Represented by a filled rectangle in the diagram. - -For a given commit you may specify its type at the time of declaring it using the `type` attribute, followed by `:` and the required type option discussed above. For example: `commit type: HIGHLIGHT` - -NOTE: If no commit type is specified, `NORMAL` is picked as default. - -Let us see how these different commit type look with the help of the following diagram: - -```mermaid-example - gitGraph - commit id: "Normal" - commit - commit id: "Reverse" type: REVERSE - commit - commit id: "Highlight" type: HIGHLIGHT - commit -``` - -In this example, we have specified different types to each commit. Also, see how we have included both `id` and `type` together at the time of declaring our commits. - -### Adding Tags - -For a given commit you may decorate it as a **tag**, similar to the concept of tags or release version in git world. -You can attach a custom tag at the time of declaring a commit using the `tag` attribute, followed by `:` and your custom value within `""` quote. For example: `commit tag: "your_custom_tag"` - -Let us see how this works with the help of the following diagram: - -```mermaid-example - gitGraph - commit - commit id: "Normal" tag: "v1.0.0" - commit - commit id: "Reverse" type: REVERSE tag: "RC_1" - commit - commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4" - commit -``` - -In this example, we have given custom tags to the commits. Also, see how we have combined all these attributes in a single commit declaration. You can mix-match these attributes as you like. - -### Create a new branch - -In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. Usage example: `branch develop` - -When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. - -Let see this in an example: - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit -``` - -In this example, see how we started with default `main` branch, and pushed two commits on that. -Then we created the `develop` branch, and all commits afterwards are put on the `develop` branch as it became the current branch. - -### Checking out an existing branch - -In Mermaid, in order to switch to an existing branch, you make use of the `checkout` keyword. You also need to provide a name of an existing branch. If no branch is found with the given name, it will result in console error. Usage example: `checkout develop` - -When Mermaid, reads the `checkout` keyword, it finds the given branch and sets it as the current branch. Equivalent to checking out a branch in the Git world. - -Let see modify our previous example: - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -In this example, see how we started with default `main` branch, and pushed two commits on that. -Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. -After this we made use of the `checkout` keyword to set the current branch as `main`, and all commit that follow are registered against the current branch, i.e. `main`. - -### Merging two branches - -In Mermaid, in order to merge or join to an existing branch, you make use of the `merge` keyword. You also need to provide the name of an existing branch to merge from. If no branch is found with the given name, it will result in console error. Also, you can only merge two separate branches, and cannot merge a branch with itself. In such case an error is throw. - -Usage example: `merge develop` - -When Mermaid, reads the `merge` keyword, it finds the given branch and its head commit (the last commit on that branch), and joins it with the head commit on the **current branch**. Each merge results in a **_merge commit_**, represented in the diagram with **filled double circle**. - -Let us modify our previous example to merge our two branches: - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit - merge develop - commit - commit -``` - -In this example, see how we started with default `main` branch, and pushed two commits on that. -Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. -After this we made use of the `checkout` keyword to set the current branch as `main`, and all commits that follow are registered against the current branch, i.e. `main`. -After this we merge the `develop` branch onto the current branch `main`, resulting in a merge commit. -Since the current branch at this point is still `main`, the last two commits are registered against that. - -You can also decorate your merge with similar attributes as you did for the commit using: - -- `id`--> To override the default ID with custom ID -- `tag`--> To add a custom tag to your merge commit -- `type`--> To override the default shape of merge commit. Here you can use other commit type mentioned earlier. - -And you can choose to use none, some or all of these attributes together. -For example: `merge develop id: "my_custom_id" tag: "my_custom_tag" type: REVERSE` - -Let us see how this works with the help of the following diagram: - -```mermaid-example - gitGraph - commit id: "1" - commit id: "2" - branch nice_feature - checkout nice_feature - commit id: "3" - checkout main - commit id: "4" - checkout nice_feature - branch very_nice_feature - checkout very_nice_feature - commit id: "5" - checkout main - commit id: "6" - checkout nice_feature - commit id: "7" - checkout main - merge nice_feature id: "customID" tag: "customTag" type: REVERSE - checkout very_nice_feature - commit id: "8" - checkout main - commit id: "9" -``` - -### Cherry Pick commit from another branch - -Similar to how 'git' allows you to cherry-pick a commit from **another branch** onto the **current** branch, Mermaid also supports this functionality. You can also cherry-pick a commit from another branch using the `cherry-pick` keyword. - -To use the `cherry-pick` keyword, you must specify the id using the `id` attribute, followed by `:` and your desired commit id within a `""` quote. For example: - -`cherry-pick id: "your_custom_id"` - -Here, a new commit representing the cherry-pick is created on the current branch, and is visually highlighted in the diagram with a **cherry** and a tag depicting the commit id from which it is cherry-picked from. - -A few important rules to note here are: - -1. You need to provide the `id` for an existing commit to be cherry-picked. If given commit id does not exist it will result in an error. For this, make use of the `commit id:$value` format of declaring commits. See the examples from above. -2. The given commit must not exist on the current branch. The cherry-picked commit must always be a different branch than the current branch. -3. Current branch must have at least one commit, before you can cherry-pick, otherwise it will cause an error is throw. - -Let see an example: - -```mermaid-example - gitGraph - commit id: "ZERO" - branch develop - commit id:"A" - checkout main - commit id:"ONE" - checkout develop - commit id:"B" - checkout main - commit id:"TWO" - cherry-pick id:"A" - commit id:"THREE" - checkout develop - commit id:"C" -``` - -## Gitgraph specific configuration options - -In Mermaid, you have the option to configure the gitgraph diagram. You can configure the following options: - -- `showBranches` : Boolean, default is `true`. If set to `false`, the branches are not shown in the diagram. -- `showCommitLabel` : Boolean, default is `true`. If set to `false`, the commit labels are not shown in the diagram. -- `mainBranchName` : String, default is `main`. The name of the default/root branch. -- `mainBranchOrder` : Position of the main branch in the list of branches. default is `0`, meaning, by default `main` branch is the first in the order. - -Let's look at them one by one. - -## Hiding Branch names and lines - -Sometimes you may want to hide the branch names and lines from the diagram. You can do this by using the `showBranches` keyword. By default its value is `true`. You can set it to `false` using directives. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false}} }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -## Commit labels Layout: Rotated or Horizontal - -Mermaid supports two types of commit labels layout. The default layout is **rotated**, which means the labels are placed below the commit circle, rotated at 45 degrees for better readability. This is particularly useful for commits with long labels. - -The other option is **horizontal**, which means the labels are placed below the commit circle centred horizontally, and are not rotated. This is particularly useful for commits with short labels. - -You can change the layout of the commit labels by using the `rotateCommitLabel` keyword in the directive. It defaults to `true`, which means the commit labels are rotated. - -Usage example: Rotated commit labels - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': true}} }%% -gitGraph - commit id: "feat(api): ..." - commit id: "a" - commit id: "b" - commit id: "fix(client): .extra long label.." - branch c2 - commit id: "feat(modules): ..." - commit id: "test(client): ..." - checkout main - commit id: "fix(api): ..." - commit id: "ci: ..." - branch b1 - commit - branch b2 - commit -``` - -Usage example: Horizontal commit labels - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': false}} }%% -gitGraph - commit id: "feat(api): ..." - commit id: "a" - commit id: "b" - commit id: "fix(client): .extra long label.." - branch c2 - commit id: "feat(modules): ..." - commit id: "test(client): ..." - checkout main - commit id: "fix(api): ..." - commit id: "ci: ..." - branch b1 - commit - branch b2 - commit -``` - -## Hiding commit labels - -Sometimes you may want to hide the commit labels from the diagram. You can do this by using the `showCommitLabel` keyword. By default its value is `true`. You can set it to `false` using directives. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false,'showCommitLabel': false}} }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -## Customizing main branch name - -Sometimes you may want to customize the name of the main/default branch. You can do this by using the `mainBranchName` keyword. By default its value is `main`. You can set it to any string using directives. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'MetroLine1'}} }%% - gitGraph - commit id:"NewYork" - commit id:"Dallas" - branch MetroLine2 - commit id:"LosAngeles" - commit id:"Chicago" - commit id:"Houston" - branch MetroLine3 - commit id:"Phoenix" - commit type: HIGHLIGHT id:"Denver" - commit id:"Boston" - checkout MetroLine1 - commit id:"Atlanta" - merge MetroLine3 - commit id:"Miami" - commit id:"Washington" - merge MetroLine2 tag:"MY JUNCTION" - commit id:"Boston" - commit id:"Detroit" - commit type:REVERSE id:"SanFrancisco" -``` - -Look at the imaginary railroad map created using Mermaid. Here, we have changed the default main branch name to `MetroLine1`. - -## Customizing branch ordering - -In Mermaid, by default the branches are shown in the order of their definition or appearance in the diagram code. - -Sometimes you may want to customize the order of the branches. You can do this by using the `order` keyword next the branch definition. You can set it to a positive number. - -Mermaid follows the given precedence order of the `order` keyword. - -- Main branch is always shown first as it has default order value of `0`. (unless its order is modified and changed from `0` using the `mainBranchOrder` keyword in the config) -- Next, All branches without an `order` are shown in the order of their appearance in the diagram code. -- Next, All branches with an `order` are shown in the order of their `order` value. - -To fully control the order of all the branches, you must define `order` for all the branches. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true}} }%% - gitGraph - commit - branch test1 order: 3 - branch test2 order: 2 - branch test3 order: 1 - -``` - -Look at the diagram, all the branches are following the order defined. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%% - gitGraph - commit - branch test1 order: 3 - branch test2 - branch test3 - branch test4 order: 1 - -``` - -Look at the diagram, here, all the branches without a specified order are drawn in their order of definition. -Then, `test4` branch is drawn because the order of `1`. -Then, `main` branch is drawn because the order of `2`. -And, lastly `test1`is drawn because the order of `3`. - -NOTE: Because we have overridden the `mainBranchOrder` to `2`, the `main` branch is not drawn in the beginning, instead follows the ordering. - -Here, we have changed the default main branch name to `MetroLine1`. - -## Themes - -Mermaid supports a bunch of pre-defined themes which you can use to find the right one for you. PS: you can actually override an existing theme's variable to get your own custom theme going. Learn more about theming your diagram [here](./theming.md). - -The following are the different pre-defined theme options: - -- `base` -- `forest` -- `dark` -- `default` -- `neutral` - -**NOTE**: To change theme you can either use the `initialize` call or _directives_. Learn more about [directives](./directives.md) -Let's put them to use, and see how our sample diagram looks in different themes: - -### Base Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Forest Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Default Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% - gitGraph - commit type:HIGHLIGHT - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Dark Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Neutral Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -## Customize using Theme Variables - -Mermaid allows you to customize your diagram using theme variables which govern the look and feel of various elements of the diagram. - -For understanding let us take a sample diagram with theme `default`, the default values of the theme variables is picked automatically from the theme. Later on we will see how to override the default values of the theme variables. - -See how the default theme is used to set the colors for the branches: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit -``` - -> #### IMPORTANT: -> -> Mermaid supports the theme variables to override the default values for **up to 8 branches**, i.e., you can set the color/styling of up to 8 branches using theme variables. After this threshold of 8 branches, the theme variables are reused in the cyclic manner, i.e. the 9th branch will use the color/styling of the 1st branch, or the branch at index position '8' will use the color/styling of the branch at index position '0'. -> _More on this in the next section. See examples on **Customizing branch label colors** below_ - -### Customizing branch colors - -You can customize the branch colors using the `git0` to `git7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `git0` variable will drive the value of the first branch, `git1` will drive the value of the second branch and so on. - -NOTE: Default values for these theme variables are picked from the selected theme. If you want to override the default values, you can use the `initialize` call to add your custom theme variable values. - -Example: - -Now let's override the default values for the `git0` to `git3` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'git0': '#ff0000', - 'git1': '#00ff00', - 'git2': '#0000ff', - 'git3': '#ff00ff', - 'git4': '#00ffff', - 'git5': '#ffff00', - 'git6': '#ff00ff', - 'git7': '#00ffff' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the branch colors are changed to the values specified in the theme variables. - -### Customizing branch label colors - -You can customize the branch label colors using the `gitBranchLabel0` to `gitBranchLabel7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `gitBranchLabel0` variable will drive the value of the first branch label, `gitBranchLabel1` will drive the value of the second branch label and so on. - -Lets see how the default theme is used to set the colors for the branch labels: - -Now let's override the default values for the `gitBranchLabel0` to `gitBranchLabel2` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'gitBranchLabel0': '#ffffff', - 'gitBranchLabel1': '#ffffff', - 'gitBranchLabel2': '#ffffff', - 'gitBranchLabel3': '#ffffff', - 'gitBranchLabel4': '#ffffff', - 'gitBranchLabel5': '#ffffff', - 'gitBranchLabel6': '#ffffff', - 'gitBranchLabel7': '#ffffff', - 'gitBranchLabel8': '#ffffff', - 'gitBranchLabel9': '#ffffff' - } } }%% - gitGraph - checkout main - branch branch1 - branch branch2 - branch branch3 - branch branch4 - branch branch5 - branch branch6 - branch branch7 - branch branch8 - branch branch9 - checkout branch1 - commit -``` - -Here, you can see that `branch8` and `branch9` colors and the styles are being picked from branch at index position `0` (`main`) and `1`(`branch1`) respectively, i.e., **branch themeVariables are repeated cyclically**. - -### Customizing Commit colors - -You can customize commit using the `commitLabelColor` and `commitLabelBackground` theme variables for changes in the commit label color and background color respectively. - -Example: -Now let's override the default values for the `commitLabelColor` to `commitLabelBackground` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the commit label color and background color are changed to the values specified in the theme variables. - -### Customizing Commit Label Font Size - -You can customize commit using the `commitLabelFontSize` theme variables for changing in the font soze of the commit label . - -Example: -Now let's override the default values for the `commitLabelFontSize` variable: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00', - 'commitLabelFontSize': '16px' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the commit label font size changed. - -### Customizing Tag Label Font Size - -You can customize commit using the `tagLabelFontSize` theme variables for changing in the font soze of the tag label . - -Example: -Now let's override the default values for the `tagLabelFontSize` variable: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00', - 'tagLabelFontSize': '16px' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the tag label font size changed. - -### Customizing Tag colors - -You can customize tag using the `tagLabelColor`,`tagLabelBackground` and `tagLabelBorder` theme variables for changes in the tag label color,tag label background color and tag label border respectively. -Example: -Now let's override the default values for the `tagLabelColor`, `tagLabelBackground` and to `tagLabelBorder` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'tagLabelColor': '#ff0000', - 'tagLabelBackground': '#00ff00', - 'tagLabelBorder': '#0000ff' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the tag colors are changed to the values specified in the theme variables. - -### Customizing Highlight commit colors - -You can customize the highlight commit colors in relation to the branch it is on using the `gitInv0` to `gitInv7` theme variables. Mermaid allows you to set the colors for up-to 8 branches specific highlight commit, where `gitInv0` variable will drive the value of the first branch's highlight commits, `gitInv1` will drive the value of the second branch's highlight commit label and so on. - -Example: - -Now let's override the default values for the `git0` to `git3` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'gitInv0': '#ff0000' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the highlighted commit color on the first branch is changed to the value specified in the theme variable `gitInv0`. diff --git a/packages/mermaid/src/docs/img/Configuration.png b/packages/mermaid/src/docs/img/Configuration.png deleted file mode 100644 index 60a808f2c3c5ea8929929910b8dea4b08d583804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26097 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 diff --git a/packages/mermaid/src/docs/img/Editing-process.png b/packages/mermaid/src/docs/img/Editing-process.png deleted file mode 100644 index a49b352248d92605386e0666905a7eee0daf0d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18851 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 diff --git a/packages/mermaid/src/docs/img/EditingHistory+Links.png b/packages/mermaid/src/docs/img/EditingHistory+Links.png deleted file mode 100644 index 3891f39c16c4555b4016b633d3627a47c994b593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33416 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�|Mqpf*yX171J-JJRN_7s^hxOjhN{T)vG*l+p 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ྰ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 G_CEkVmUYPh diff --git a/packages/mermaid/src/docs/img/book-banner-pre-release.jpg b/packages/mermaid/src/docs/img/book-banner-pre-release.jpg deleted file mode 100644 index 6dc996fd91ad72f34839ae6afc87461d51eec2d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39321 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 L>;G>Hd?x=tSa@KS diff --git a/packages/mermaid/src/docs/img/book-banner-pre-release.png b/packages/mermaid/src/docs/img/book-banner-pre-release.png deleted file mode 100644 index b85b165db0579c289f902b21aef58e6f7f2a49a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828688 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�D 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%0D9<95@@twU+ZiYk;4-&IEwHz; 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≫>|VDJ>=leZGO^Zt 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�|Mqpf*yX171J-JJRN_7s^hxOjhN{T)vG*l+p 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

    tdkM01Fr8>r$?jF@F+ecF(U%YPP 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[jh*oOL;hkpEfl)Mvo;Vl3 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 diff --git a/packages/mermaid/src/docs/img/gantt.png b/packages/mermaid/src/docs/img/gantt.png deleted file mode 100644 index 304b598b8ccacea12d413b06c5f11c24c0c7d009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12818 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 diff --git a/packages/mermaid/src/docs/img/n00b-firstFlow.png b/packages/mermaid/src/docs/img/n00b-firstFlow.png deleted file mode 100644 index 5d3c7738d5ea77c61ff53ff0cac968cbda8e3fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12700 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 diff --git a/packages/mermaid/src/docs/img/new-diagrams.png b/packages/mermaid/src/docs/img/new-diagrams.png deleted file mode 100644 index bd9c8c97ab584193045046212f1913a74fab3b86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32225 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 XM6#F}ySh1WXilJ}tPQSJdKvK_0+hlH diff --git a/packages/mermaid/src/docs/img/user-journey.png b/packages/mermaid/src/docs/img/user-journey.png deleted file mode 100644 index 825d467d8564bf6140ce2274bc2aea62bc77d4bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36968 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�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 - - - - - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, - gantt charts and git graphs. - - - - - - - - - - - - - - - - - - - -

      - - - - - - - - - diff --git a/packages/mermaid/src/docs/introduction.md b/packages/mermaid/src/docs/introduction.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/mermaid/src/docs/landing/class.png b/packages/mermaid/src/docs/landing/class.png deleted file mode 100644 index 5b2f663d86f967ca5d96c5fffca73b6e8efb3ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34954 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

      y{(-`u^dIjWHRrLfhUK$DDj6 zAJZ;K3mKaPEk0j~wW~8}E9FG(;;Tw9#r*+vY)AgRg8gsuiRNcmHjMAH?C&^9I71TF z-v^s9p8s6C3j_cV0Q&z)x!$j}&etf4Jy?d__G8Y}xizNDG;ip^i%~$K8 zbK9qpe)8<+;=o?Z^3GgH1C{e zq>Zpj9r?`69=R*xnNW7wJ!H0rGhQV+X_)$Fy?|KvS);Ll#; zD7H39tmsy3QP~zZ1ta`pPC>cjqjBOY+f9NvvgRXTLnHm?Y{L0I31{|B$34B{g!>1NtU-p+uP-~e196Sb`@^7l&I z-!izuiw^_KE|SfWkcvw%V5NrmFsSE@edMF6qSRDRKnUYiOY~e{#`BhsPz9&{G3;;p zQMK<2_RHZ3xPWhJwKw0{{u!$$tJ9jTIJ3oQA=*-XTFttL?<#qGsOM5KOgT!$5UXvU zfMKjNS>5_^;`0Po=(~s-9=;brH?l|WIo~P?_uNVT08+{Wo{R3EMm4a|e8B$DYK!nxt3=L3^sjkHMfV_mhkTxJ4&5E_NVj_sD4ll$RNdu! zEsvxB;S;^|{7D*petLAQa{78N0k*mb!!MVt#oX&=jSXQ{3h{qDo0yEaeL0o_nL59r zVm}hdgYM=q!TF{%@Yy)e+Q=Gj8?T7beMsA?vTH8)dKq6=oy%A8M`*suVA^t%P(;h_ zq#Xwso&DU($cSNQyty`lrK&9-$0?z%#9HqT#mVyM`o@OW!ryVex;lcTi!UZpn`GTv zczw)aQhEt3mAHZ7K*U)zIgH@6qneiFGL9hMxQ(>!giY7-7cZ%-$DU(G)79xFEvVt7 zG4-k&D!o?{%k-lz;*)RT73Y%AE%1ZMuy@>Bk-IuF2Y$yh&sATMFyilyd!3ly8sCyc zQ|?hENr2d77~7|uD10C9U7@G2%MF6QZ&Z`bEcB?zeqR|(+1g)jbQLXol9@s5SkrB} zy*%LU{?=}B+E*;SPItE4p?zhR`RSu&COHI z>_=z(1BE1>1BDFlhgUc|IeC+9g>ZF|_{*X#Xix@XKPJucui+MmAegLkT@M;Q6xUL@ zY}ZmH=He%50s4N!R7R=wR7Ue0?oN#o<-fn^cBUz*^&DXc%dAYp=cDq^_#3yjNS~Uo)3^j^0>L%71a~I{32woqg9HgQ&>^@J+$BKc zK>~rs-KTTsy;*O5%vy8rn;-MS^(4_*X;m6;H8o*M9X__chSd`V&fKk;Kh_c_7MMLm|;3`$Wyu`vbbRglNN=n zMmq}wbo|Yfc3Z`1t^Rmm#nszyx2Lc-6;yU|6nrpjjE%nP1gTDDp{EIcA|H^dm<@qJ zPqR>eRtPM-@{k$lJB(h|5r_Q8G)qIMA<4CIe3tyd9p)y0<&7jR4mklIC{i&J0+E#_ zB4l~^4oa3t7WyIbBQ=HW)1NRV7Uus=h|d6baHB&Q3X{&N6ot8^d>Dy#;w}4I?av^0 zJF{e(5nv?3pz&XH{(pwz|4m;0h0AcL=Ds~-u1|x1-sA3XUBOFBDh1_k*jQ@Mz4+3} zyOTEgy34JH+yn49is)j7OxM7UHQ*ULfHz<{Bfa-gfg%&(@W>ymyce<^WTlpD^q}Dp zZdj^C(8u2=#~}2$`!!;`o69ON4A^pVuxg9HNXd_jn{@I_S)%-)xu#zbEwC`H4_YIpDMcOHA+7q3Kk0y zlv-r3PhNJnBZ~(KJf#3(05#b`T3kWIfGHwl=i=Kp48R&=CH~3r?`uaMpzG1g<$Jc5 zL-nd>b_v+x`C|#Z0*s=~+ReCt^O5U!%K zCl}ZFXGBCuOn{@UgB4s{Cj_hrU3#;ggBeF^GJ0QVVLcg{H#Fwz-a)6*3|agO}}RKg{kNHgB9|yC#%FdnUm(TRntNN zy#UZGjR9cc0>N+&rknZOe$wB5EvRiJ5?maQ;qm*zjWuQ`q-6pf5#e@bOkGF>W110; zQYQ=sKfFdx6$&He61e`Ue2y)2q#hm~f&NdG+5c4yBdmF)#ghPDM_G+ffsOEiC_oGm zoE9@Hc9fS(hY0(BqLkHLMtx)7-j#@N#&KC!7#d3zPD`mqBtJS}(8!yK=4l}gVMEp? zrkOI4n3QR+o(X>>PND>EnDo}Q&U$V0A?dgNmTk6%qVi1M`&6L@L75Z80~S9b!Xm|x z>QmL`-6t>lzKg+tHaL_PH|)(%-+4MGg?R=O0I;iV<7krZ^>Oq2ar<#0>h3C4=(1?3 z8o^okikc$IOv-U5i((xasNH(^`E!H?)s}FCc55Si$n(P@hTLN!#Dl_GG>kmDIVx3X zeCe|2g;QMM)xZp!M6x9s+b^N=#^iQgaq#-ae}5}gh%&!vj*TKZLmg{&<%cs|qjG1hw90a8n)7xr9qa){&nahrix8THa` z?VHLkL*G5U-s?)|r=iNSZThmGe1ECFcYMy(+H+NL^(E?Vd{O_I2u`T9(&}W4YLLo^ z^}hJV8e^5Pyr?!C?*OgpVTQdXT%1 z@@6|g!II*!W3K5KR?%fMQaO>DLV1<`^LbZxKvRsAvw!|FsloRX1gC3A1$Exb$#jhx z%fXLIe0q_Gdv`4TztNMHl$7RmgU|ci>|yXlMFi)KrOvwhzl1!k3%20Gg|gj*+dcPYsZ zzCor5ID8`PrvjNA`N`yDe-3S&Zce|?qy{&OsXVndg@U>n))-7bGH*(osX#9xDA&tw z6&DN1YaQy>MS4W4a_y`B2Pu$Mqp`R4`-MOmQ;qQlW zU3|t+<^`)vbh=Hy-g&Z5Z9Ywhd@HKKO;nNQfpV&iiX9fB4Z3kDU^aeqUi_RsR619) zhl^jD2sh}upPpFd%bPUDNa@PF>Pg*;4SAUxLBs<#+%T?d1R{hld5)A68K_H$EE0{i zVIsVL;y7!&(B^ae@xtCRt;~ankb|2hR$+Y5G!nJd^{VR)wWfv64ws<(p%g{(GkQMS z@81=uiCQevzS$BH5)8!3KXN}z7H!Z$dg>BxMWmFT5&r#>$s4efHG-QT8Ix@$z#x%n z6*<$-t=mOS!R__ard&?8`O7i6t$uhB5S((Oi=-4&aVTv)9k#^Hrxw2s=UO}TussYX zN2pA5;f6);4$P6p@W(VQh!1zY5%{Ei7_823U}7A|L|9p>d2X@cxExqvmXFF5jDq}D z2GhhA|E6?`tiN$s($K#^mPq`TqFC#pAAPwupJv5-l5F(tF(1fqGi6+tz^EDGUzU@U zCZxFwe)41HGvtbu#j)>Yu4IlC?}2OSAR1>`$@e6Z_otU-mEnC!SJ^$Xq{UG7GJ11j zxRrU(+kf)wCtPE0559PLB&AJfcTP`1XXP`8nmg{H9>Srt76uaZtJ2fsvlxP%lWJw- z4HdfSd615X`O57tXePtcWHGaI^gRBFm-wLfiA^T68C2&U-{VO2i7I}1 zLd!Ff?=?*icr9sE57Z)O28|yLn?i+=cjZP#cXraj5VN&+sfWV6d=UE4_u7)UVVX4j zq?j(@x=0WAw`*A52A;%5srC!RF|T>ugOr~B+y`YBKj+_}@LwhNMTV7VIiQpZ4p%x< z4+$g@DjHziumbo%e|KsGNKAO%hCth0hoVgUTQRcgxm|}(z7Z%PP7I|7CiN-dN zj_Wtg_-Ci`Ys@EViun6?`6X^dgx0fZ8CayDW+^C9c={7uoM0?@)^A*S8CTAmBUS4uv%F;Z1kC z8!w1%yN2)ELv!Ls7BenC7KA{6h4pTziNAjdN>u9;YI$-{s%K?0od- zt#jJ9=N~XjhKGa+oV}mmy@R@I%2-X4n`-5Y;s(4`f&#Oj4_V196<5+I<2qnlsbw)S zET;ae)W|U5NZ${bvw4YFAD=!uqB4(bhi!$s(a>0r^D|fPut~azsUoA}6OAI)O8G#*y5%lz&oj?cGlHpHLilZyzEuzTiE^aQs8ISg)gw1?e*68U zzMt60&-E`DGz>EuPw0zznIz33QPSBmMG6!EG&Msnq^j`g-K6(h^bO=c3sB$-?_oz* z-pKDI!XUs++lu)EJG<>pDV(Gewk3KTcj8KvmHo7dg#8VAGG`M5F+-D|HEotizu^Nl zmc3KB5|L#qz2>K@Axpui^29*h2&TnYvSXVZi8O(rZP z>rbM1L5=xO0~7?`C24s})DXYG#z{!ajgU-c#~XlmTMo|H!? z(S+NWz3T)N=}}LL8`gIib0YtfT@DTAmxiKvV%F0tCeoCVtS?IeYyZu2gd|Wv^ZihkPh{!_OAF;2Pzjng_+DZO6 zbJJBV$+{XhqA1Uy`P!V`lBab6fi_+?{Gc%boAY1}%?s9q5nj+-$x`hu5j^LmwkN%- z%_~rFi@~}1SPDmg#mpBd5usRG?fVzKB^;Ubgi2iy3>5N=HT-qPgn=i0RADBpek<5g zfKKe{5pKNAF-VjL`R$Li{)4Dje#4~&8(Tu}>RB0R3u{~C1$Dw`pER~au0D)bH$5<& znpgd`B$P=zVS2xBp{VF{s4hp@vB`g7LsI*qQA2BH!hd4u9ll+Z^9)RJFDmfXAd1C@4Z*l;q@Wp~t~KyJxgO zdjK;=W?MshthyZ#k{l83+KgO@{xDk4j}tJq+x_lQ`Inql z_l^IEfUvjee8Ud69x1Eu;)3W8kIIHAnfF1ZfJct+)Qh&aV8ymA1E8;26Mex%4`@?Q zKVE)9Lw1>tBWyMMAr?23nNj$#=1ZI7mJzb$bS+}!B{fmQnHy#v^%Zf<&8`~KUT(zW z4*3^?)eCkds+zao6QaoV^|(X%@G#boIaZGI%;BxncbF=c*?*r&H;JPg3%XIkLCg#s z(!R}~OR}bC@oVWm+WeEoqsx`rOU{4^q`#}S5KtejH9WA-nP0^-4ZY1yy?+(ZT&R4O z+3==oq6nelT>5-ar}57%>}OylP5hr;Qtm6ybFba=Oo8Zbe1P)IFV;tUvUgu+(3oFA zbCg_eaZyCKp85RviK7x^njhaJ2$eK(#$?>%Y-yIO~zSEXCz^>vT zgV=UeaZv&j<{@6sn8c9wLsHl=7*I{Rdt+1R0e^Jsg304Z+ZSDvHA8yVohLq#tv}LG zr>=Yz3shq$0@DCOUf&RfrWUK8e*oFsYsM3T=YKaoVVDCzTZ0Vgkip5u9YSh3L!m;& z7HJ<962?*QS-Sj|vcO_nBwv?!aUTFATwdXk;$TuE$PBhIF1j(P|3+v|`|wbrxKH9} zsGPms1oVsNhLN1KS*_StCG1M2EoGH1Dulqvflb|v;S+#~T$umeg6T@}2YujRa&2L6 zrZw;#99uWIBg(d~ zE0@y3ti+0ToaOTS(O0Sl@H-gSE!*Q_T3yIp=YKIh|LY4F6dO5K(%f)Gt)|f>w&<(D zGGW4+pLln6T-zA|UNX@8j4odS)aqU`6qM)0~1mp^DZzC z%l-YICTtatdsBK(iTFdtk86sXUPG_@Z&#Hj#fn>#TCCQ^u^dQKz5TiA+lvjVzYR=Y z;;(Y?N~fJoD^EQ({fGfwSoEipTU=f4S^F#Sk0-ipe%*9xf{+l|^>Qr0P#Q+EKaB;t zr68z{cujRq-@FpL+5tG@28sffHvBiT(Pg;pLCjSuXHkjA*x@TYa=<@&!9sBYK!^+R zmie65*-JlFw%`(zXbe5+*(UY@04O+D&-YuU0yJDi6HV zQ$MFznLT|DuBe#jWfWdIJTg|kgJ1o$W0L+ihW8C+`q_KS-Q0Nw`CdQOJ&1-|X?s>Mmb(cP|rCcf{D!@U zzN2f0v}r^4M8EN|@^MZ^g=&JL)b1oy5n0|)K=2%YHc?bBc50NM3EdVu|L*>@(WCOP3Z185d?1kL-uTQ;B-;*mrotA0dgb%YW?pVSIDK(wVyyKk z>H$oCS!w-2V?F% zq86>MD)~wAaPIr{pex>U(x{2f=UdXhyegvBkE5s!ZJzUn*_m&7zQyZq=p;NLB~CEH zElpWgG#U?M-S~pl)CTI-bb+Qn7#wH+Xl|c;Ohl_?sHMRttaYmn(NTrg(3^hcX8k^G zKY{%t;PN%euUou_5qNtGKGizX`F3|K9@2t4Gk?U2P&Jy0jjh+C2~Xd;wF@P-f}@vG zj1zpiu#r2fhGh-$ooZ%tYO+I-iALeq<8uKNBuQzWbm272izW%KrGFwj<&EZgGF$nr z+=C#pMi2R4y%M68@4`-3HH<4{te3?^|h?+!@ zNy_l6`?~Sw`Wm)K*s_y@Wh!)#TAs4w38~tP);&a&x6e`+y6dZLZT0-D7hoef>PC=i z>otNOL8Y=$zudH6XS%2^#pt5j@6b#&3FXO`WUtKqNH#80=rX4hao9fAHfT6`{= zKij;tDu^bf9l0=ifp$mZBV@$hL=vGny!@?m%J6kIU(NLcmhEt3q29t>eGm8Axsjk> z4=I+5^)ap3``{n&Wzu5Q7Tqk)1dtxWsiGh9p9G7~N%tXpvD^mNt0{Lk5z_GBPjw$B{A?GrxKF7%Ap8c@EI% zXK3^`yx=?gAiPUsK?3x;RGvXC;USysSF1pGi(2@#${S1}(x{lq(PK241C1^_+(OBs zseClRlk3*W5YKilXYel%!TJvqXN$Ntlqg+$j??cE1I^B^Pu%rG-xKGM;T%SJdLHTx zE+1k%tV92lnc}kvkwjI_n6G9-5Z|1!hzK)A{C_+UT4ZU8a&(*5jPDe@_8Zk$esMZ5 zdC`3-c43AK^FSI-NcNR{4mY4Cc@99Vj}ssKU>b*Zz53x3v(X7 zO?G+Gvz|7^?756;yeb16X7pC>usCu^x>}=2u?RI2Dh%ZIelIpWl#FWl{iRZ?N>e*wfj9D1@p3N z_mhWGs(8yv(?)h8F_HT=BPtRLE~AO;ul!a2WVtPRTX>&~o$^*(Ol8+WER3I|$rd&0MyBDki@5xRSdDR&YZ*670e3 zLp%y3Tj0AQOr-sW+7(ahx6w4tkv{IVvWCTt@h--+*o>}2Tez%hSM{}PrZHT-!z9nv z_p;Nx9Wm3%Ly6Iz;*>b!k7st)*ElxtHO)3Tq+Qum2C=2k_UO1460R?a>k656Xg*eg&xY~E^RNK+XyaFoG2OMh zk*|8*H6P~P#{_TgAIw@a4r4OB$CkWxJC@ep9Jgu5ehg&4u{kb_>5#|? zZlGHPLweoT;H_my`m}4(%u8#&Dqfr!?u|uC9Xro9bxBEnbx%s2?v^-^cI8>nM-i89 zZJBd1KuSG(xI-oc2I(!`1M*kDQ+96xeY59VL})!V4L0d8xR&vF+2IRQ*8vmS zecY>M^_tKru6xIef^l?qf@81whJA_Gu*XhjcgLla2I)ddYOWs{6cekqZj81!cn%WE zvf+ZG^Do#GEGknCqWo+WNAiXd-|7h+DJU!lT^}*fa5WJMxqp3VHa)Wu3pK3P=20ShaqR?bA#WPkeF1!vVl1dRfif{( zLc%S5)ETBkFvFP}Ngx?;V|>?w`sHfgvK(XM57R~`T|05$j>ajz{H?Yp`Cj=~45`IW zJ*GRQotM%9z1GC1?4Bge=B(isdXf)6_V)tj0S;0 z&l$UBm;1OoD_n+NTV7pDHvi^qiiE$pDeb-NCF{**qV%<)W2i_llGWir*J^dMiCaW8 zlWREMvsEQ8nlIA7AsRlY+r19zlF?7zze53}5g5hfM8GKI~;d%DI2a z4`sPmPp^e~lFN>K2jTEEb|-vLCW$iVS-TRmpn|Nw_EPK3Tm0QyNZ2awixM2l=4`@` zwe=tCS`7TSayISIo;(mF8|xYmdT!D+JVc;lueArJvlBdj)?9WIfyE&N%I*G%MA$RA zwi-M-Q&~b+$9n4n5h#{OLv}mz zrRRU|-eoI%g17{-J-bC`p)6d$$7&7lF&Z2GFmx45^Jx&iJT1RhXMeoqj57@(QPgL= zhy~UrTo#=sR<2Ecq@cT+52V_s>AVy2FIs|aV*a%biAJ);6jT&)J1z=^|3-3}^)Kg1 zHIlWqxC51M9hCCFJ)m({O&Km4qZIihewa}3Pxkoa$39-e*mcIEz+YGJt~N$Q--D=v zzZGp=q$;%IH+I(p!3tOwP86!!^^EJv*2}_8V^{T*VW%?s(DK2M(I4a?t-NUr%Q|6) zs-u*GEymTtkh53gg>lyq_~*;JV1=w)`ih!BMZ&14?_^P@qUyoaE5(QoXsp(4RHi>E z0BL(_=nDv(M{;X@x=naQu|u-`7#Z;BH?XpCO zibxqOP;ld|8|L4=8itIFpKg4*`5^say=NA6zBb3eQ1B(-drhEoT;@{^q(=Nz&SHd5E*%q5DL<5JFp znAgm#ptu$N_%lsE!)W|m?>;n-o>lb1i~t9-G@30rMKRg<_&R?5sLaaSqU1oLE?eYh z+vK{3{|rZ%stWpLpd2nTHoEM$_#d0ZrF1NZlu;2eu#yi>3dsQ)Y-knr^%t%vRK#ka zgtF`aD=Wy~bk7Ds6Ts#~6uVu+*sP>YD0e0!4<(YeRY+FpIJ7G?1*ga*{u_D**3~PN z*AD&kM7m3Kw^tCsIr;2Au(Iz=@Y?j=&qjm(y9zG|#T>@+kCJp(nP*L2rg4Q%yOgB< z&p=Q#TD(!F@UXVVZ&vB>@l)jmlFVr(a1z`~Zz=#yH3de^$6z0b$UB+Tq2>vw=c(8( zVYKHpt4B4~D5C?w&mdrSV107)AQXorr@Ws&Xh*F z%}txo9d#30Pk)UflNAmR8Jj2Q`ySYdSnu$Nxac(WedqM!rbFfjTowFm;b{|7tfoFV zh0ic(F{j|E6CPqWLNalgs^4>E()dLsR1CxHCNdIHUq1!@lwVKFnNjM2s*VKlL$j}#>1 z7{(qwN=De*6a~ZjD z4(*jOQu^`{wnC1hf%m~jcD!ulCo5ro9QK!HHBVygq#za>WDvZ!eF-6isi$}4tL1`v zUvxky+*TSC^YV&W2xKS8rO-}>oDVLyliZFc-9Jq-!WDe5Z7Z9LR-aB4cv||Hj2a96 zK-&wJ8tE;KL2Hw4p^gtSPCo*-pk zDONl5OoreHA@TSl4ont3=wk}GQpHceh)l#*>4mhV%T&z^^2s zk3E9t1wO&vXEL>a0#6{su*iS)D@HmmEH_vXB)-3w?3B{XCQwnts5(p9Uw&&Nnh%u* zuVc$yKE7#Y1Yo#Jz?c(5s~D@7ijAHHb$uQk)YRWvGMXj+gndiapfys|oV_rO?Mzcv6`Qp8VEroeH;9u0L6F5cx(Jjz(Ji{d=3Qk& z4(y-Is4S4tTFu96qawIo-ENsnoF*)h5-&60{Z zT>oBlm1S;Xgp)?~#76EfAHf^{mf-;xY%2yhH&=4@sB5#(+k{RyV}Qd4X-BXjBSnwf zQh&w1oqjwh0p-SRFc&_?bsaeS4s21i6ER#Gu^w124x+6!LkuTKyeekc`W*BAhJC1e z?xgGSHFHP+*dZRYe%7@Cae+0?$Y#~0i95&-(d}DGg6w5%-ev{Pnt=^RTNzti`v34} z+&cR}QL=``p?}Y4<8u(NK5ADp4&+Y-){BCaA4nvL-cOAc1kdalMcqOlcb|3rf+R*K z2Id6KscWeF&S0L&=uym*>fm)_{50NMbGgu%2pZCvph>W^JZ_ElnSq#S=J~p+=edcJ9EwdWAFo_ zVgBLn$c;#*l!YOtkQfz#0M#?XiKE_mUz-GyIDsitkYt(vYU+pU-*YgKOoB}+Q;O36 zkbS9#;mek$5PwnnAC^(@r&eMAlf>>K+Ul_GwuMfF3SA!w_aeT9=GWOg=GjY!cm2Pf zOST8XOa2Zd^^wn#T533h#ku((_7HMVigdj};s|4-?J~C`YKk)+C0-viql%9$(>BTS z(3>R9(C~36*jx7h?^ewJ)gGb$+=kBo3%soVow%P58zoKo`@uRssb!kh)ASrZFkZmE zWibPh>QU##Uc1HGjw6W202zuhFxueN~KApqc-Q zW~Q=Y+UTZxUTT5DBz^xf8KsZk&NDgyhkY~jkv;rOqb~V7#I=Ai*y%Mw$0$^CF1UUa zGx*2(>TrX(g^mpG?HMa6x_gY}j0d@fbThQCcq+7boGIx2@JJGh(*M;QzEX(^EHvU? zxZ&~7zRGXixTqb!Q>=q@hE&=G96M$aP>BUhhRDzS===;J$3Afg^bxJg4<@O z04a6a=0t=am3b@yn3^3KL@1XX>-h+SDh`2`(Rx6ar9 zBubC%QJ*Hl3}y$8Q(t5)9epq=C`XB|xx>Zt)3M95tLXu<9}>7O^L0*)xT6t=eFNuK znCh=E0qvc(3(t&>u(!5-E=*OI8&FvLoy@$vz#W4(&#_4df3V5wnV0q=R8hs-@%P*XWRa3)&$+i{}Z}n&)sD>F-Gq zGw^J0<>ppYIpH<23Dm9s50hiLax>qLU27sPz&HqIZ8P>~caE}b0BdqT{X zBiD26a|K(xd_P+<_}^#Y8=ALv-cxz}nlia}!vTnZrJVV_$zyuDD-6JJfrg-sfqvef z*AfFL$CaFJYQB?LNVQkq1YMtxdo{IKe%`Qe-Q!=EQ*WfC6_Ee{NeB(L#n$nM4^Qb z`+@|x!>X~B^}t#QVo%TnK4M+;6D@J?a2cz5S#O_sfBXC37B`FZ9^)rch|u_=mE76I z+K`6gtHy&F`kVcQ7mDK;ZlKh zdm7J2_wT#>0MwJi0go(uwLk)*XkbZbZG~th9ku$)UTe}T-3hbK5e}EAcSo;6-RL8W zSXG2ps+q3knTakdA9r=<9NM66zEh^}kKNB4fdy`L&I5Q881aC{uA=1fP2COyTq>ja zaa(<_fVd(OldnW1TfJ604?k#jVU*i7+|*c=y=TRh6=(@OC~DM023OLwT9vEF8r}s| zdId?$##_a=7B3S6HuV96JLecYt-o$M&c-j6+XUKPl^=a~qIk29VO3GH|JuvFlo9>p zD>h>Q&OyGsz%4C(@OD|dpf3;};{0Nh6luR2;a z(r>Bg$Kd=U@LypH6z%F^ln|K;D*bKsSJ-D*W8T~OtwPRx_nDF-dJ1i67W!L0*c#|~1w^Rogq(9StfRAiI7sc1UsFd0q^ zxK{o(b4#3plVe~^_cwlB95eC!UG{kTX1R4*LmCqc1DwSyPzkkf*|AMaIKXWSO zzf4!0=lbs^Vvtn~-3;24FpB4+L-cPW9$Dh*f1GUj&mNEYFBAEn2D%Lrr3{Es^21sE QcZx_!PE8grZTjKA0f;sM5dZ)H diff --git a/packages/mermaid/src/docs/landing/flowchart.png b/packages/mermaid/src/docs/landing/flowchart.png deleted file mode 100644 index 714626b70e398905987bec0c460308fa7a84471f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14794 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 diff --git a/packages/mermaid/src/docs/landing/gantt.png b/packages/mermaid/src/docs/landing/gantt.png deleted file mode 100644 index 95c8d08a14bc4306426530921fd538b404dfc1da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43239 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 - - - - - - The Official Guide to Mermaid.js - - - - - - - - - - - - - - - - -

      -
      - - - - - - - - - - - - -
      -
      -
      -

      - Get up to speed with using Mermaid diagrams along with real-world examples and expert tips - from the authors to facilitate a seamless development workflow -

      -
      -
      -
      -
      -
      -

      - Flowcharts is a diagram type that visualizes a process or an algorithm by showing the - steps in order, as well as the different paths the execution can take. -

      -
      -
      - -
      -
      -
      -
      - -
      -
      -
      -

      - Sequence diagrams lets you model and visualize interactions between different actors - or objects in a system, as well as the order of those interactions -

      -
      -
      -
      -
      -
      -

      - A class diagram is a graphical representation that is used to visualize and describe - an object-oriented system. -

      -
      -
      - -
      -
      -
      -
      - -
      -
      -
      -

      - An entity-relationship diagram is a graphical representation that is used to - visualize the different types of entities that exist within a system. -

      -
      -
      -
      -
      -
      -

      - Use State diagrams to model and document state machines, an abstract way of - representing a system or an algorithm. -

      -
      -
      - -
      -
      -
      -
      - -
      -
      -
      -

      - A Gantt chart is a graphical representation that is used to visualize and describe - tasks (events or activities) over time. -

      -
      -
      -
      -
      -

      - These were a few of the diagrams supported by Mermaid. -

      -
      - -
      -
      -

      - Book description -

      -
      -

      - Mermaid lets you represent diagrams using text and code which simplifies the maintenance - of complex diagrams. This is a great option for developers as they’re more familiar with - code, rather than special tools for generating diagrams. Besides, diagrams in code - simplify maintenance and ensure that the code is supported by version control systems. - In some cases, Mermaid makes refactoring support for name changes possible while also - enabling team collaboration for review distribution and updates. -

      -

      - Developers working with any system will be able to put their knowledge to work with this - practical guide to using Mermaid for documentation. The book is also a great reference - for looking up the syntax for specific diagrams when authoring diagrams. -

      -

      - You’ll start by getting up to speed with the importance of accurate and visual - documentation. Next, the book introduces Mermaid and establishes how to use it to create - effective documentation. By using different tools, editors, or a custom documentation - platform, you’ll also learn how to use Mermaid syntax for various diagrams. Later - chapters cover advanced configuration settings and theme options to manipulate your - diagram as per your needs. -

      -

      - By the end of this Mermaid book, you’ll have become well-versed with the different types - of Mermaid diagrams and how they can be used in your workflows. -

      -
      -
      -
      -
      -
      -

      - What you will learn -

      -
      -
      -
      -
      -
      -
      -
        -
      • - Understand good and bad documentation, and the art of effective documentation -
      • -
      • - Become well-versed with maintaining complex diagrams with ease -
      • -
      • - Learn how to set up a custom documentation system -
      • -
      • - Learn how to implement Mermaid diagrams in your workflows -
      • -
      • - Understand how to set up themes for a Mermaid diagram for an entire site -
      • -
      • - Discover how to draw different types of diagrams such as flowcharts, class - diagrams, Gantt charts, and more -
      • -
      -
      -
      -
      -
      -
      - - - - - - - - - - - - - - - - - -
      -

      - Purchase The Official Guide to Mermaid.js -

      -
      -
      -
      -

      -

      Written by Knut Sveidqvist and Ashish Jain.

      -

      - Knut is the creator of Mermaid and both authors are active core team members of the - Mermaid open-source project. -

      -

      - - - -
      - - - diff --git a/packages/mermaid/src/docs/landing/sequence-diagram.png b/packages/mermaid/src/docs/landing/sequence-diagram.png deleted file mode 100644 index 8c51ac1c5d6601960112784757061943d9d6dc8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19823 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%0D)Muw-s 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 DRc_Wx diff --git a/packages/mermaid/src/docs/n00b-gettingStarted.md b/packages/mermaid/src/docs/n00b-gettingStarted.md deleted file mode 100644 index 70c5863f7a..0000000000 --- a/packages/mermaid/src/docs/n00b-gettingStarted.md +++ /dev/null @@ -1,198 +0,0 @@ -# A Mermaid User-Guide for Beginners - -Mermaid is composed of three parts: Deployment, Syntax and Configuration. - -This section talks about the different ways to deploy Mermaid. Learning the [Syntax](./n00b-syntaxReference.md) would be of great help to the beginner. - -> Generally the live editor is enough for most general uses of mermaid, and is a good place to start learning. - -**Absolute beginners are advised to view the Video [Tutorials](./Tutorials.md) on the Live Editor, to gain a better understanding of mermaid.** - -## Four ways of using mermaid: - -1. Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live). -2. Using [mermaid plugins](./integrations.md) with programs you are familiar with. -3. Calling the Mermaid JavaScript API. -4. Deploying Mermaid as a dependency. - -**Note: It is our recommendation that you review all approaches, and choose the one that is best for your project.** - -> More in depth information can be found at [Usage](./usage.md). - -## 1. Using the Live Editor - -Available at [mermaid.live](https://mermaid.live) - -![EditingProcess](./img/Editing-process.png) - -In the `Code` section one can write or edit raw mermaid code, and instantly `Preview` the rendered result on the panel beside it. - -The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](./n00b-advanced.md) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](Setup.md) page. - -![Code,Config and Preview](./img/Code-Preview-Config.png) - -### Editing History - -Your code will be autosaved every minute into the Timeline tab of History which shows the most recent 30 items. - -You can manually save code by clicking the Save icon in the History section. It can also be accessed in the Saved tab. This is stored in the browser storage only. - -### Saving a Diagram: - -You may choose any of the methods below, to save it - -**We recommend that you save your diagram code on top of any method you choose, in order to make edits and modifications further down the line.** - -![Flowchart](./img/Live-Editor-Choices.png) - -### Editing your diagrams - -Editing is as easy as pasting your **Diagram code**, into the `code` section of the `Live Editor`. - -### Loading from Gists - -The Gist you create should have a code.mmd file and optionally a config.json. [Example](https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a) - -To load a gist into the Editor, you can use https://mermaid.live/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a - -and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a - -## 2. Using Mermaid Plugins: - -You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](./integrations.md). - -**This is covered in greater detail in the [Usage section](usage.md)** - -## 3. Calling the JavaScript API - -This method can be used with any common web server like Apache, IIS, nginx, node express. - -You will also need a text editing tool like Notepad++ to generate a .html file. It is then deployed by a web browser (such as Firefox, Chrome, Safari, but not Internet Explorer). - -The API works by pulling rendering instructions from the source `mermaid.js` in order to render diagrams on the page. - -### Requirements for the Mermaid API. - -When writing the .html file, we give two instructions inside the html code to the web browser: - -a. The mermaid code for the diagram we want to create. - -b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm.min.mjs` and the `mermaid.initialize()` call, which dictates the appearance of diagrams and also starts the rendering process . - -**a. The embedded mermaid diagram definition inside a `
      `:**
      -
      -```html
      -
      -  Here is a mermaid diagram:
      -  
      -        graph TD 
      -        A[Client] --> B[Load Balancer] 
      -        B --> C[Server01] 
      -        B --> D[Server02]
      -  
      - -``` - -**Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
      ` tags.
      -
      -**b. The import of mermaid and the `mermaid.initialize()` call.**
      -
      -`mermaid.initialize()` call takes all the definitions contained in all the `
      ` tags that it finds in the html body and renders them into diagrams. Example:
      -
      -```html
      -
      -  
      -
      -```
      -
      -**Notes**:
      -Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.min.js` for brevity. However, doing the opposite lets you control when it starts looking for `
      `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
      ` tags may have loaded on the execution of `mermaid.min.js` file. - -`startOnLoad` is one of the parameters that can be defined by `mermaid.initialize()` - -| Parameter | Description | Type | Values | -| ----------- | --------------------------------- | ------- | ----------- | -| startOnLoad | Toggle for Rendering upon loading | Boolean | true, false | - -### Working Examples - -**Here is a full working example of the mermaidAPI being called through the CDN:** - -```html - - - Here is one mermaid diagram: -
      -            graph TD 
      -            A[Client] --> B[Load Balancer] 
      -            B --> C[Server1] 
      -            B --> D[Server2]
      -    
      - - And here is another: -
      -            graph TD 
      -            A[Client] -->|tcp_123| B
      -            B(Load Balancer) 
      -            B -->|tcp_456| C[Server1] 
      -            B -->|tcp_456| D[Server2]
      -    
      - - - - -``` - -**Another Option:** -In this example mermaid.js is referenced in `src` as a separate JavaScript file, in an example Path. - -```html - - - - - -
      -            graph LR 
      -            A --- B 
      -            B-->C[fa:fa-ban forbidden] 
      -            B-->D(fa:fa-spinner);
      -    
      -
      -            graph TD 
      -            A[Client] --> B[Load Balancer] 
      -            B --> C[Server1] 
      -            B --> D[Server2]
      -    
      - - - -``` - ---- - -## 4. Adding Mermaid as a dependency. - -1. install node v16, which would have npm - -2. download yarn using npm by entering the command below: - npm install -g yarn - -3. After yarn installs, enter the following command: - yarn add mermaid - -4. To add Mermaid as a Dev Dependency - yarn add --dev mermaid - -**Comments from Knut Sveidqvist, creator of mermaid:** - -- In early versions of mermaid, the ` -``` - -It can also be be turned on via the diagram code as in the diagram: - -```mermaid-example -sequenceDiagram - autonumber - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -## Actor Menus - -Actors can have popup-menus containing individualized links to external pages. For example, if an actor represented a web service, useful links might include a link to the service health dashboard, repo containing the code for the service, or a wiki page describing the service. - -This can be configured by adding one or more link lines with the format: - -``` -link : @ -``` - -```mmd -sequenceDiagram - participant Alice - participant John - link Alice: Dashboard @ https://dashboard.contoso.com/alice - link Alice: Wiki @ https://wiki.contoso.com/alice - link John: Dashboard @ https://dashboard.contoso.com/john - link John: Wiki @ https://wiki.contoso.com/john - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -#### Advanced Menu Syntax - -There is an advanced syntax that relies on JSON formatting. If you are comfortable with JSON format, then this exists as well. - -This can be configured by adding the links lines with the format: - -``` -links : -``` - -An example is below: - -```mermaid-example -sequenceDiagram - participant Alice - participant John - links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} - links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -## Styling - -Styling of a sequence diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/sequence.scss - -### Classes used - -| Class | Description | -| ------------ | ----------------------------------------------------------- | -| actor | Style for the actor box at the top of the diagram. | -| text.actor | Styles for text in the actor box at the top of the diagram. | -| actor-line | The vertical line for an actor. | -| messageLine0 | Styles for the solid message line. | -| messageLine1 | Styles for the dotted message line. | -| messageText | Defines styles for the text on the message arrows. | -| labelBox | Defines styles label to left in a loop. | -| labelText | Styles for the text in label for loops. | -| loopText | Styles for the text in the loop box. | -| loopLine | Defines styles for the lines in the loop box. | -| note | Styles for the note box. | -| noteText | Styles for the text on in the note boxes. | - -### Sample stylesheet - -```css -body { - background: white; -} - -.actor { - stroke: #ccccff; - fill: #ececff; -} -text.actor { - fill: black; - stroke: none; - font-family: Helvetica; -} - -.actor-line { - stroke: grey; -} - -.messageLine0 { - stroke-width: 1.5; - stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; - stroke: black; -} - -.messageLine1 { - stroke-width: 1.5; - stroke-dasharray: '2 2'; - stroke: black; -} - -#arrowhead { - fill: black; -} - -.messageText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-size: 14px; -} - -.labelBox { - stroke: #ccccff; - fill: #ececff; -} - -.labelText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; -} - -.loopText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; -} - -.loopLine { - stroke-width: 2; - stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; - stroke: #ccccff; -} - -.note { - stroke: #decc93; - fill: #fff5ad; -} - -.noteText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-size: 14px; -} -``` - -## Configuration - -Is it possible to adjust the margins for rendering the sequence diagram. - -This is done by defining `mermaid.sequenceConfig` or by the CLI to use a json file with the configuration. -How to use the CLI is described in the [mermaidCLI](mermaidCLI) page. -`mermaid.sequenceConfig` can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.sequenceConfig = { - diagramMarginX: 50, - diagramMarginY: 10, - boxTextMargin: 5, - noteMargin: 10, - messageMargin: 35, - mirrorActors: true, -}; -``` - -### Possible configuration parameters: - -| Parameter | Description | Default value | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ | -| mirrorActors | Turns on/off the rendering of actors below the diagram as well as above it | false | -| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | -| actorFontSize | Sets the font size for the actor's description | 14 | -| actorFontFamily | Sets the font family for the actor's description | "Open Sans", sans-serif | -| actorFontWeight | Sets the font weight for the actor's description | "Open Sans", sans-serif | -| noteFontSize | Sets the font size for actor-attached notes | 14 | -| noteFontFamily | Sets the font family for actor-attached notes | "trebuchet ms", verdana, arial | -| noteFontWeight | Sets the font weight for actor-attached notes | "trebuchet ms", verdana, arial | -| noteAlign | Sets the text alignment for text in actor-attached notes | center | -| messageFontSize | Sets the font size for actor<->actor messages | 16 | -| messageFontFamily | Sets the font family for actor<->actor messages | "trebuchet ms", verdana, arial | -| messageFontWeight | Sets the font weight for actor<->actor messages | "trebuchet ms", verdana, arial | diff --git a/packages/mermaid/src/docs/theme.css b/packages/mermaid/src/docs/theme.css deleted file mode 100644 index 28dbc0ab51..0000000000 --- a/packages/mermaid/src/docs/theme.css +++ /dev/null @@ -1,827 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600'); -* { - -webkit-font-smoothing: antialiased; - -webkit-overflow-scrolling: touch; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-text-size-adjust: none; - -webkit-touch-callout: none; - box-sizing: border-box; -} - -body:not(.ready) { - overflow: hidden; -} -body:not(.ready) .app-nav, -body:not(.ready) > nav, -body:not(.ready) [data-cloak] { - display: none; -} -div#app { - font-size: 30px; - font-weight: lighter; - margin: 40vh auto; - text-align: center; -} -div#app:empty:before { - content: 'Loading...'; -} -.emoji { - height: 1.2rem; - vertical-align: middle; -} -.progress { - background-color: var(--theme-color, #42b983); - height: 2px; - left: 0; - position: fixed; - right: 0; - top: 0; - transition: width 0.2s, opacity 0.4s; - width: 0; - z-index: 999999; -} -.search .search-keyword, -.search a:hover { - color: var(--theme-color, #42b983); -} -.search .search-keyword { - font-style: normal; - font-weight: 700; -} -body, -html { - height: 100%; -} -body { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - color: #34495e; - font-family: Source Sans Pro, Helvetica Neue, Arial, sans-serif; - font-size: 15px; - letter-spacing: 0; - margin: 0; - overflow-x: hidden; -} -img { - max-width: 100%; -} -a[disabled] { - cursor: not-allowed; - opacity: 0.6; -} -kbd { - border: 1px solid #ccc; - border-radius: 3px; - display: inline-block; - font-size: 12px !important; - line-height: 12px; - margin-bottom: 3px; - padding: 3px 5px; - vertical-align: middle; -} -li input[type='checkbox'] { - margin: 0 0.2em 0.25em 0; - vertical-align: middle; -} -.app-nav { - margin: 25px 60px 0 0; - position: absolute; - right: 0; - text-align: right; - z-index: 10; -} -.app-nav.no-badge { - margin-right: 25px; -} -.app-nav p { - margin: 0; -} -.app-nav > a { - margin: 0 1rem; - padding: 5px 0; -} -.app-nav li, -.app-nav ul { - display: inline-block; - list-style: none; - margin: 0; -} -.app-nav a { - color: inherit; - font-size: 16px; - text-decoration: none; - transition: color 0.3s; -} -.app-nav a.active, -.app-nav a:hover { - color: var(--theme-color, #42b983); -} -.app-nav a.active { - border-bottom: 2px solid var(--theme-color, #42b983); -} -.app-nav li { - display: inline-block; - margin: 0 1rem; - padding: 5px 0; - position: relative; - cursor: pointer; -} -.app-nav li ul { - background-color: #fff; - border: 1px solid; - border-color: #ddd #ddd #ccc; - border-radius: 4px; - box-sizing: border-box; - display: none; - max-height: calc(100vh - 61px); - overflow-y: auto; - padding: 10px 0; - position: absolute; - right: -15px; - text-align: left; - top: 100%; - white-space: nowrap; -} -.app-nav li ul li { - display: block; - font-size: 14px; - line-height: 1rem; - margin: 8px 14px; - white-space: nowrap; -} -.app-nav li ul a { - display: block; - font-size: inherit; - margin: 0; - padding: 0; -} -.app-nav li ul a.active { - border-bottom: 0; -} -.app-nav li:hover ul { - display: block; -} -.github-corner { - border-bottom: 0; - position: fixed; - right: 0; - text-decoration: none; - top: 0; - z-index: 1; -} -.github-corner:hover .octo-arm { - -webkit-animation: octocat-wave 0.56s ease-in-out; - animation: octocat-wave 0.56s ease-in-out; -} -.github-corner svg { - color: #fff; - fill: var(--theme-color, #42b983); - height: 80px; - width: 80px; -} -main { - display: block; - position: relative; - width: 100vw; - height: 100%; - z-index: 0; -} -main.hidden { - display: none; -} -.anchor { - display: inline-block; - text-decoration: none; - transition: all 0.3s; -} -.anchor span { - color: #34495e; -} -.anchor:hover { - text-decoration: underline; -} -.sidebar { - border-right: 1px solid rgba(0, 0, 0, 0.07); - overflow-y: auto; - padding: 40px 0 0; - position: absolute; - top: 0; - bottom: 0; - left: 0; - transition: transform 0.25s ease-out; - width: 300px; - z-index: 20; -} -.sidebar > h1 { - margin: 0 auto 1rem; - font-size: 1.5rem; - font-weight: 300; - text-align: center; -} -.sidebar > h1 a { - color: inherit; - text-decoration: none; -} -.sidebar > h1 .app-nav { - display: block; - position: static; -} -.sidebar .sidebar-nav { - line-height: 2em; - padding-bottom: 40px; -} -.sidebar li.collapse .app-sub-sidebar { - display: none; -} -.sidebar ul { - margin: 0 0 0 15px; - padding: 0; -} -.sidebar li > p { - font-weight: 700; - margin: 0; -} -.sidebar ul, -.sidebar ul li { - list-style: none; -} -.sidebar ul li a { - border-bottom: none; - display: block; -} -.sidebar ul li ul { - padding-left: 20px; -} -.sidebar::-webkit-scrollbar { - width: 4px; -} -.sidebar::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 4px; -} -.sidebar:hover::-webkit-scrollbar-thumb { - background: hsla(0, 0%, 53.3%, 0.4); -} -.sidebar:hover::-webkit-scrollbar-track { - background: hsla(0, 0%, 53.3%, 0.1); -} -.sidebar-toggle { - background-color: transparent; - background-color: hsla(0, 0%, 100%, 0.8); - border: 0; - outline: none; - padding: 10px; - position: absolute; - bottom: 0; - left: 0; - text-align: center; - transition: opacity 0.3s; - width: 284px; - z-index: 30; - cursor: pointer; -} -.sidebar-toggle:hover .sidebar-toggle-button { - opacity: 0.4; -} -.sidebar-toggle span { - background-color: var(--theme-color, #42b983); - display: block; - margin-bottom: 4px; - width: 16px; - height: 2px; -} -body.sticky .sidebar, -body.sticky .sidebar-toggle { - position: fixed; -} -.content { - padding-top: 60px; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 300px; - transition: left 0.25s ease; -} -.markdown-section { - margin: 0 auto; - max-width: 80%; - padding: 30px 15px 40px; - position: relative; -} -.markdown-section > * { - box-sizing: border-box; - font-size: inherit; -} -.markdown-section > :first-child { - margin-top: 0 !important; -} -.markdown-section hr { - border: none; - border-bottom: 1px solid #eee; - margin: 2em 0; -} -.markdown-section iframe { - border: 1px solid #eee; - width: 1px; - min-width: 100%; -} -.markdown-section table { - border-collapse: collapse; - border-spacing: 0; - display: block; - margin-bottom: 1rem; - overflow: auto; - width: 100%; -} -.markdown-section th { - font-weight: 700; -} -.markdown-section td, -.markdown-section th { - border: 1px solid #ddd; - padding: 6px 13px; -} -.markdown-section tr { - border-top: 1px solid #ccc; -} -.markdown-section p.tip, -.markdown-section tr:nth-child(2n) { - background-color: #f8f8f8; -} -.markdown-section p.tip { - border-bottom-right-radius: 2px; - border-left: 4px solid #f66; - border-top-right-radius: 2px; - margin: 2em 0; - padding: 12px 24px 12px 30px; - position: relative; -} -.markdown-section p.tip:before { - background-color: #f66; - border-radius: 100%; - color: #fff; - content: '!'; - font-family: Dosis, Source Sans Pro, Helvetica Neue, Arial, sans-serif; - font-size: 14px; - font-weight: 700; - left: -12px; - line-height: 20px; - position: absolute; - height: 20px; - width: 20px; - text-align: center; - top: 14px; -} -.markdown-section p.tip code { - background-color: #efefef; -} -.markdown-section p.tip em { - color: #34495e; -} -.markdown-section p.warn { - background: rgba(66, 185, 131, 0.1); - border-radius: 2px; - padding: 1rem; -} -.markdown-section ul.task-list > li { - list-style-type: none; -} -body.close .sidebar { - transform: translateX(-300px); -} -body.close .sidebar-toggle { - width: auto; -} -body.close .content { - left: 0; -} -@media print { - .app-nav, - .github-corner, - .sidebar, - .sidebar-toggle { - display: none; - } -} -@media screen and (max-width: 768px) { - .github-corner, - .sidebar, - .sidebar-toggle { - position: fixed; - } - .app-nav { - margin-top: 16px; - } - .app-nav li ul { - top: 30px; - } - main { - height: auto; - overflow-x: hidden; - } - .sidebar { - left: -300px; - transition: transform 0.25s ease-out; - } - .content { - left: 0; - max-width: 100vw; - position: static; - padding-top: 20px; - transition: transform 0.25s ease; - } - .app-nav, - .github-corner { - transition: transform 0.25s ease-out; - } - .sidebar-toggle { - background-color: transparent; - width: auto; - padding: 30px 30px 10px 10px; - } - body.close .sidebar { - transform: translateX(300px); - } - body.close .sidebar-toggle { - background-color: hsla(0, 0%, 100%, 0.8); - transition: background-color 1s; - width: 284px; - padding: 10px; - } - body.close .content { - transform: translateX(300px); - } - body.close .app-nav, - body.close .github-corner { - display: none; - } - .github-corner:hover .octo-arm { - -webkit-animation: none; - animation: none; - } - .github-corner .octo-arm { - -webkit-animation: octocat-wave 0.56s ease-in-out; - animation: octocat-wave 0.56s ease-in-out; - } -} -@-webkit-keyframes octocat-wave { - 0%, - to { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } -} -@keyframes octocat-wave { - 0%, - to { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } -} -section.cover { - align-items: center; - background-position: 50%; - background-repeat: no-repeat; - background-size: cover; - height: 100vh; - width: 100vw; - display: none; -} -section.cover.show { - display: flex; -} -section.cover.has-mask .mask { - background-color: #fff; - opacity: 0.8; - position: absolute; - top: 0; - height: 100%; - width: 100%; -} -section.cover .cover-main { - flex: 1; - margin: -20px 16px 0; - text-align: center; -} -section.cover a { - color: inherit; -} -section.cover a, -section.cover a:hover { - text-decoration: none; -} -section.cover p { - line-height: 1.5rem; - margin: 1em 0; -} -section.cover h1 { - color: inherit; - font-size: 2.5rem; - font-weight: 300; - margin: 0.625rem 0 2.5rem; - position: relative; - text-align: center; -} -section.cover h1 a { - display: block; -} -section.cover h1 small { - bottom: -0.4375rem; - font-size: 1rem; - position: absolute; -} -section.cover blockquote { - font-size: 1.5rem; - text-align: center; -} -section.cover ul { - line-height: 1.8; - list-style-type: none; - margin: 1em auto; - max-width: 500px; - padding: 0; -} -section.cover .cover-main > p:last-child a { - border-radius: 2rem; - border: 1px solid var(--theme-color, #42b983); - box-sizing: border-box; - color: var(--theme-color, #42b983); - display: inline-block; - font-size: 1.05rem; - letter-spacing: 0.1rem; - margin: 0.5rem 1rem; - padding: 0.75em 2rem; - text-decoration: none; - transition: all 0.15s ease; -} -section.cover .cover-main > p:last-child a:last-child { - background-color: var(--theme-color, #42b983); - color: #fff; -} -section.cover .cover-main > p:last-child a:last-child:hover { - color: inherit; - opacity: 0.8; -} -section.cover .cover-main > p:last-child a:hover { - color: inherit; -} -section.cover blockquote > p > a { - border-bottom: 2px solid var(--theme-color, #42b983); - transition: color 0.3s; -} -section.cover blockquote > p > a:hover { - color: var(--theme-color, #42b983); -} -.sidebar, -body { - background-color: #fff; -} -.sidebar { - color: #364149; -} -.sidebar li { - margin: 6px 0; -} -.sidebar ul li a { - color: #505d6b; - font-size: 14px; - font-weight: 400; - overflow: hidden; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; -} -.sidebar ul li a:hover { - text-decoration: underline; -} -.sidebar ul li ul { - padding: 0; -} -.sidebar ul li.active > a { - border-right: 2px solid; - color: var(--theme-color, #42b983); - font-weight: 600; -} -.app-sub-sidebar li:before { - content: '-'; - padding-right: 4px; - float: left; -} -.markdown-section h1, -.markdown-section h2, -.markdown-section h3, -.markdown-section h4, -.markdown-section strong { - color: #2c3e50; - font-weight: 600; -} -.markdown-section a { - color: var(--theme-color, #42b983); - font-weight: 600; -} -.markdown-section h1 { - font-size: 2rem; - margin: 0 0 1rem; -} -.markdown-section h2 { - font-size: 1.75rem; - margin: 45px 0 0.8rem; -} -.markdown-section h3 { - font-size: 1.5rem; - margin: 40px 0 0.6rem; -} -.markdown-section h4 { - font-size: 1.25rem; -} -.markdown-section h5 { - font-size: 1rem; -} -.markdown-section h6 { - color: #777; - font-size: 1rem; -} -.markdown-section figure, -.markdown-section p { - margin: 1.2em 0; -} -.markdown-section ol, -.markdown-section p, -.markdown-section ul { - line-height: 1.6rem; - word-spacing: 0.05rem; -} -.markdown-section ol, -.markdown-section ul { - padding-left: 1.5rem; -} -.markdown-section blockquote { - border-left: 4px solid var(--theme-color, #42b983); - color: #858585; - margin: 2em 0; - padding-left: 20px; -} -.markdown-section blockquote p { - font-weight: 600; - margin-left: 0; -} -.markdown-section iframe { - margin: 1em 0; -} -.markdown-section em { - color: #7f8c8d; -} -.markdown-section code { - border-radius: 2px; - color: #e96900; - font-size: 0.8rem; - margin: 0 2px; - padding: 3px 5px; - white-space: pre-wrap; -} -.markdown-section code, -.markdown-section pre { - background-color: #f8f8f8; - font-family: Roboto Mono, Monaco, courier, monospace; -} -.markdown-section pre { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - line-height: 1.5rem; - margin: 1.2em 0; - overflow: auto; - padding: 0 1.4rem; - position: relative; - word-wrap: normal; -} -.token.cdata, -.token.comment, -.token.doctype, -.token.prolog { - color: #8e908c; -} -.token.namespace { - opacity: 0.7; -} -.token.boolean, -.token.number { - color: #c76b29; -} -.token.punctuation { - color: #525252; -} -.token.property { - color: #c08b30; -} -.token.tag { - color: #2973b7; -} -.token.string { - color: var(--theme-color, #42b983); -} -.token.selector { - color: #6679cc; -} -.token.attr-name { - color: #2973b7; -} -.language-css .token.string, -.style .token.string, -.token.entity, -.token.url { - color: #22a2c9; -} -.token.attr-value, -.token.control, -.token.directive, -.token.unit { - color: var(--theme-color, #42b983); -} -.token.function, -.token.keyword { - color: #e96900; -} -.token.atrule, -.token.regex, -.token.statement { - color: #22a2c9; -} -.token.placeholder, -.token.variable { - color: #3d8fd1; -} -.token.deleted { - text-decoration: line-through; -} -.token.inserted { - border-bottom: 1px dotted #202746; - text-decoration: none; -} -.token.italic { - font-style: italic; -} -.token.bold, -.token.important { - font-weight: 700; -} -.token.important { - color: #c94922; -} -.token.entity { - cursor: help; -} -.markdown-section pre > code { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #f8f8f8; - border-radius: 2px; - color: #525252; - display: block; - font-family: Roboto Mono, Monaco, courier, monospace; - font-size: 0.8rem; - line-height: inherit; - margin: 0 2px; - max-width: inherit; - overflow: inherit; - padding: 2.2em 5px; - white-space: inherit; -} -.markdown-section code:after, -.markdown-section code:before { - letter-spacing: 0.05rem; -} -code .token { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - min-height: 1.5rem; - position: relative; - left: auto; -} -pre:after { - color: #ccc; - content: attr(data-lang); - font-size: 0.6rem; - font-weight: 600; - height: 15px; - line-height: 15px; - padding: 5px 10px 0; - position: absolute; - right: 0; - text-align: right; - top: 0; -} diff --git a/packages/mermaid/src/docs/theme_themed.css b/packages/mermaid/src/docs/theme_themed.css deleted file mode 100644 index 9cb520ed7e..0000000000 --- a/packages/mermaid/src/docs/theme_themed.css +++ /dev/null @@ -1,1653 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600'); -* { - -webkit-font-smoothing: antialiased; - -webkit-overflow-scrolling: touch; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-text-size-adjust: none; - -webkit-touch-callout: none; - box-sizing: border-box; -} - -@media (prefers-color-scheme: dark2) { - body:not(.ready) { - overflow: hidden; - } - body:not(.ready) .app-nav, - body:not(.ready) > nav, - body:not(.ready) [data-cloak] { - display: none; - } - div#app { - font-size: 30px; - font-weight: lighter; - margin: 40vh auto; - text-align: center; - } - div#app:empty:before { - content: 'Loading...'; - } - .emoji { - height: 1.2rem; - vertical-align: middle; - } - .progress { - background-color: var(--theme-color, #ea6f5a); - height: 2px; - left: 0; - position: fixed; - right: 0; - top: 0; - transition: width 0.2s, opacity 0.4s; - width: 0; - z-index: 999999; - } - .search .search-keyword, - .search a:hover { - color: var(--theme-color, #ea6f5a); - } - .search .search-keyword { - font-style: normal; - font-weight: 700; - } - body, - html { - height: 100%; - } - body { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - color: #c8c8c8; - font-family: Source Sans Pro, Helvetica Neue, Arial, sans-serif; - font-size: 15px; - letter-spacing: 0; - margin: 0; - overflow-x: hidden; - } - img { - max-width: 100%; - } - a[disabled] { - cursor: not-allowed; - opacity: 0.6; - } - kbd { - border: 1px solid #ccc; - border-radius: 3px; - display: inline-block; - font-size: 12px !important; - line-height: 12px; - margin-bottom: 3px; - padding: 3px 5px; - vertical-align: middle; - } - li input[type='checkbox'] { - margin: 0 0.2em 0.25em 0; - vertical-align: middle; - } - .app-nav { - margin: 25px 60px 0 0; - position: absolute; - right: 0; - text-align: right; - z-index: 10; - } - .app-nav.no-badge { - margin-right: 25px; - } - .app-nav p { - margin: 0; - } - .app-nav > a { - margin: 0 1rem; - padding: 5px 0; - } - .app-nav li, - .app-nav ul { - display: inline-block; - list-style: none; - margin: 0; - } - .app-nav a { - color: inherit; - font-size: 16px; - text-decoration: none; - transition: color 0.3s; - } - .app-nav a.active, - .app-nav a:hover { - color: var(--theme-color, #ea6f5a); - } - .app-nav a.active { - border-bottom: 2px solid var(--theme-color, #ea6f5a); - } - .app-nav li { - display: inline-block; - margin: 0 1rem; - padding: 5px 0; - position: relative; - cursor: pointer; - } - .app-nav li ul { - background-color: #fff; - border: 1px solid; - border-color: #ddd #ddd #ccc; - border-radius: 4px; - box-sizing: border-box; - display: none; - max-height: calc(100vh - 61px); - overflow-y: auto; - padding: 10px 0; - position: absolute; - right: -15px; - text-align: left; - top: 100%; - white-space: nowrap; - } - .app-nav li ul li { - display: block; - font-size: 14px; - line-height: 1rem; - margin: 8px 14px; - white-space: nowrap; - } - .app-nav li ul a { - display: block; - font-size: inherit; - margin: 0; - padding: 0; - } - .app-nav li ul a.active { - border-bottom: 0; - } - .app-nav li:hover ul { - display: block; - } - .github-corner { - border-bottom: 0; - position: fixed; - right: 0; - text-decoration: none; - top: 0; - z-index: 1; - } - .github-corner:hover .octo-arm { - -webkit-animation: octocat-wave 0.56s ease-in-out; - animation: octocat-wave 0.56s ease-in-out; - } - .github-corner svg { - color: #3f3f3f; - fill: var(--theme-color, #ea6f5a); - height: 80px; - width: 80px; - } - main { - display: block; - position: relative; - width: 100vw; - height: 100%; - z-index: 0; - } - main.hidden { - display: none; - } - .anchor { - display: inline-block; - text-decoration: none; - transition: all 0.3s; - } - .anchor span { - color: #c8c8c8; - } - .anchor:hover { - text-decoration: underline; - } - .sidebar { - border-right: 1px solid rgba(0, 0, 0, 0.07); - overflow-y: auto; - padding: 40px 0 0; - position: absolute; - top: 0; - bottom: 0; - left: 0; - transition: transform 0.25s ease-out; - width: 300px; - z-index: 20; - } - .sidebar > h1 { - margin: 0 auto 1rem; - font-size: 1.5rem; - font-weight: 300; - text-align: center; - } - .sidebar > h1 a { - color: inherit; - text-decoration: none; - } - .sidebar > h1 .app-nav { - display: block; - position: static; - } - .sidebar .sidebar-nav { - line-height: 2em; - padding-bottom: 40px; - } - .sidebar li.collapse .app-sub-sidebar { - display: none; - } - .sidebar ul { - margin: 0 0 0 15px; - padding: 0; - } - .sidebar li > p { - font-weight: 700; - margin: 0; - } - .sidebar ul, - .sidebar ul li { - list-style: none; - } - .sidebar ul li a { - border-bottom: none; - display: block; - } - .sidebar ul li ul { - padding-left: 20px; - } - .sidebar::-webkit-scrollbar { - width: 4px; - } - .sidebar::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 4px; - } - .sidebar:hover::-webkit-scrollbar-thumb { - background: hsla(0, 0%, 53.3%, 0.4); - } - .sidebar:hover::-webkit-scrollbar-track { - background: hsla(0, 0%, 53.3%, 0.1); - } - .sidebar-toggle { - background-color: transparent; - background-color: rgba(63, 63, 63, 0.8); - border: 0; - outline: none; - padding: 10px; - position: absolute; - bottom: 0; - left: 0; - text-align: center; - transition: opacity 0.3s; - width: 284px; - z-index: 30; - cursor: pointer; - } - .sidebar-toggle:hover .sidebar-toggle-button { - opacity: 0.4; - } - .sidebar-toggle span { - background-color: var(--theme-color, #ea6f5a); - display: block; - margin-bottom: 4px; - width: 16px; - height: 2px; - } - body.sticky .sidebar, - body.sticky .sidebar-toggle { - position: fixed; - } - .content { - padding-top: 60px; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 300px; - transition: left 0.25s ease; - } - .markdown-section { - margin: 0 auto; - max-width: 80%; - padding: 30px 15px 40px; - position: relative; - } - .markdown-section > * { - box-sizing: border-box; - font-size: inherit; - } - .markdown-section > :first-child { - margin-top: 0 !important; - } - .markdown-section hr { - border: none; - border-bottom: 1px solid #eee; - margin: 2em 0; - } - .markdown-section iframe { - border: 1px solid #eee; - width: 1px; - min-width: 100%; - } - .markdown-section table { - border-collapse: collapse; - border-spacing: 0; - display: block; - margin-bottom: 1rem; - overflow: auto; - width: 100%; - } - .markdown-section th { - font-weight: 700; - } - .markdown-section td, - .markdown-section th { - border: 1px solid #ddd; - padding: 6px 13px; - } - .markdown-section tr { - border-top: 1px solid #ccc; - } - .markdown-section p.tip, - .markdown-section tr:nth-child(2n) { - background-color: #f8f8f8; - } - .markdown-section p.tip { - border-bottom-right-radius: 2px; - border-left: 4px solid #f66; - border-top-right-radius: 2px; - margin: 2em 0; - padding: 12px 24px 12px 30px; - position: relative; - } - .markdown-section p.tip:before { - background-color: #f66; - border-radius: 100%; - color: #3f3f3f; - content: '!'; - font-family: Dosis, Source Sans Pro, Helvetica Neue, Arial, sans-serif; - font-size: 14px; - font-weight: 700; - left: -12px; - line-height: 20px; - position: absolute; - height: 20px; - width: 20px; - text-align: center; - top: 14px; - } - .markdown-section p.tip code { - background-color: #efefef; - } - .markdown-section p.tip em { - color: #c8c8c8; - } - .markdown-section p.warn { - background: rgba(234, 111, 90, 0.1); - border-radius: 2px; - padding: 1rem; - } - .markdown-section ul.task-list > li { - list-style-type: none; - } - body.close .sidebar { - transform: translateX(-300px); - } - body.close .sidebar-toggle { - width: auto; - } - body.close .content { - left: 0; - } - @media print { - .app-nav, - .github-corner, - .sidebar, - .sidebar-toggle { - display: none; - } - } - @media screen and (max-width: 768px) { - .github-corner, - .sidebar, - .sidebar-toggle { - position: fixed; - } - .app-nav { - margin-top: 16px; - } - .app-nav li ul { - top: 30px; - } - main { - height: auto; - overflow-x: hidden; - } - .sidebar { - left: -300px; - transition: transform 0.25s ease-out; - } - .content { - left: 0; - max-width: 100vw; - position: static; - padding-top: 20px; - transition: transform 0.25s ease; - } - .app-nav, - .github-corner { - transition: transform 0.25s ease-out; - } - .sidebar-toggle { - background-color: transparent; - width: auto; - padding: 30px 30px 10px 10px; - } - body.close .sidebar { - transform: translateX(300px); - } - body.close .sidebar-toggle { - background-color: rgba(63, 63, 63, 0.8); - transition: background-color 1s; - width: 284px; - padding: 10px; - } - body.close .content { - transform: translateX(300px); - } - body.close .app-nav, - body.close .github-corner { - display: none; - } - .github-corner:hover .octo-arm { - -webkit-animation: none; - animation: none; - } - .github-corner .octo-arm { - -webkit-animation: octocat-wave 0.56s ease-in-out; - animation: octocat-wave 0.56s ease-in-out; - } - } - @-webkit-keyframes octocat-wave { - 0%, - to { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } - } - @keyframes octocat-wave { - 0%, - to { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } - } - section.cover { - align-items: center; - background-position: 50%; - background-repeat: no-repeat; - background-size: cover; - height: 100vh; - width: 100vw; - display: none; - } - section.cover.show { - display: flex; - } - section.cover.has-mask .mask { - background-color: #3f3f3f; - opacity: 0.8; - position: absolute; - top: 0; - height: 100%; - width: 100%; - } - section.cover .cover-main { - flex: 1; - margin: -20px 16px 0; - text-align: center; - } - section.cover a { - color: inherit; - } - section.cover a, - section.cover a:hover { - text-decoration: none; - } - section.cover p { - line-height: 1.5rem; - margin: 1em 0; - } - section.cover h1 { - color: inherit; - font-size: 2.5rem; - font-weight: 300; - margin: 0.625rem 0 2.5rem; - position: relative; - text-align: center; - } - section.cover h1 a { - display: block; - } - section.cover h1 small { - bottom: -0.4375rem; - font-size: 1rem; - position: absolute; - } - section.cover blockquote { - font-size: 1.5rem; - text-align: center; - } - section.cover ul { - line-height: 1.8; - list-style-type: none; - margin: 1em auto; - max-width: 500px; - padding: 0; - } - section.cover .cover-main > p:last-child a { - border-radius: 2rem; - border: 1px solid var(--theme-color, #ea6f5a); - box-sizing: border-box; - color: var(--theme-color, #ea6f5a); - display: inline-block; - font-size: 1.05rem; - letter-spacing: 0.1rem; - margin: 0.5rem 1rem; - padding: 0.75em 2rem; - text-decoration: none; - transition: all 0.15s ease; - } - section.cover .cover-main > p:last-child a:last-child { - background-color: var(--theme-color, #ea6f5a); - color: #fff; - } - section.cover .cover-main > p:last-child a:last-child:hover { - color: inherit; - opacity: 0.8; - } - section.cover .cover-main > p:last-child a:hover { - color: inherit; - } - section.cover blockquote > p > a { - border-bottom: 2px solid var(--theme-color, #ea6f5a); - transition: color 0.3s; - } - section.cover blockquote > p > a:hover { - color: var(--theme-color, #ea6f5a); - } - .sidebar, - body { - background-color: #3f3f3f; - } - .sidebar { - color: #c8c8c8; - } - .sidebar li { - margin: 6px 15px 6px 0; - } - .sidebar ul li a { - color: #c8c8c8; - font-size: 14px; - overflow: hidden; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; - } - .sidebar ul li a:hover { - text-decoration: underline; - } - .sidebar ul li ul { - padding: 0; - } - .sidebar ul li.active > a { - color: var(--theme-color, #ea6f5a); - font-weight: 600; - } - .markdown-section h1, - .markdown-section h2, - .markdown-section h3, - .markdown-section h4, - .markdown-section strong { - color: #657b83; - font-weight: 600; - } - .markdown-section a { - color: var(--theme-color, #ea6f5a); - font-weight: 600; - } - .markdown-section h1 { - font-size: 2rem; - margin: 0 0 1rem; - } - .markdown-section h2 { - font-size: 1.75rem; - margin: 45px 0 0.8rem; - } - .markdown-section h3 { - font-size: 1.5rem; - margin: 40px 0 0.6rem; - } - .markdown-section h4 { - font-size: 1.25rem; - } - .markdown-section h5 { - font-size: 1rem; - } - .markdown-section h6 { - color: #777; - font-size: 1rem; - } - .markdown-section figure, - .markdown-section ol, - .markdown-section p, - .markdown-section ul { - margin: 1.2em 0; - } - .markdown-section ol, - .markdown-section p, - .markdown-section ul { - line-height: 1.6rem; - word-spacing: 0.05rem; - } - .markdown-section ol, - .markdown-section ul { - padding-left: 1.5rem; - } - .markdown-section blockquote { - border-left: 4px solid var(--theme-color, #ea6f5a); - color: #858585; - margin: 2em 0; - padding-left: 20px; - } - .markdown-section blockquote p { - font-weight: 600; - margin-left: 0; - } - .markdown-section iframe { - margin: 1em 0; - } - .markdown-section em { - color: #7f8c8d; - } - .markdown-section code { - border-radius: 2px; - color: #657b83; - font-size: 0.8rem; - margin: 0 2px; - padding: 3px 5px; - white-space: pre-wrap; - } - .markdown-section code, - .markdown-section pre { - background-color: #282828; - font-family: Roboto Mono, Monaco, courier, monospace; - } - .markdown-section pre { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - line-height: 1.5rem; - margin: 1.2em 0; - overflow: auto; - padding: 0 1.4rem; - position: relative; - word-wrap: normal; - } - .token.cdata, - .token.comment, - .token.doctype, - .token.prolog { - color: #8e908c; - } - .token.namespace { - opacity: 0.7; - } - .token.boolean, - .token.number { - color: #c76b29; - } - .token.punctuation { - color: #525252; - } - .token.property { - color: #c08b30; - } - .token.tag { - color: #2973b7; - } - .token.string { - color: var(--theme-color, #ea6f5a); - } - .token.selector { - color: #6679cc; - } - .token.attr-name { - color: #2973b7; - } - .language-css .token.string, - .style .token.string, - .token.entity, - .token.url { - color: #22a2c9; - } - .token.attr-value, - .token.control, - .token.directive, - .token.unit { - color: var(--theme-color, #ea6f5a); - } - .token.keyword { - color: #e96900; - } - .token.atrule, - .token.regex, - .token.statement { - color: #22a2c9; - } - .token.placeholder, - .token.variable { - color: #3d8fd1; - } - .token.deleted { - text-decoration: line-through; - } - .token.inserted { - border-bottom: 1px dotted #202746; - text-decoration: none; - } - .token.italic { - font-style: italic; - } - .token.bold, - .token.important { - font-weight: 700; - } - .token.important { - color: #c94922; - } - .token.entity { - cursor: help; - } - .markdown-section pre > code { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #282828; - border-radius: 2px; - color: #657b83; - display: block; - font-family: Roboto Mono, Monaco, courier, monospace; - font-size: 0.8rem; - line-height: inherit; - margin: 0 2px; - max-width: inherit; - overflow: inherit; - padding: 2.2em 5px; - white-space: inherit; - } - .markdown-section code:after, - .markdown-section code:before { - letter-spacing: 0.05rem; - } - code .token { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - min-height: 1.5rem; - position: relative; - left: auto; - } - pre:after { - color: #ccc; - content: attr(data-lang); - font-size: 0.6rem; - font-weight: 600; - height: 15px; - line-height: 15px; - padding: 5px 10px 0; - position: absolute; - right: 0; - text-align: right; - top: 0; - } - .markdown-section p.tip { - background-color: #282828; - color: #657b83; - } - input[type='search'] { - background: #4f4f4f; - border-color: #4f4f4f; - color: #c8c8c8; - } -} - -@media (prefers-color-scheme: light or prefers-color-scheme: dark) { - /* @media (screen) { */ - body:not(.ready) { - overflow: hidden; - } - body:not(.ready) .app-nav, - body:not(.ready) > nav, - body:not(.ready) [data-cloak] { - display: none; - } - div#app { - font-size: 30px; - font-weight: lighter; - margin: 40vh auto; - text-align: center; - } - div#app:empty:before { - content: 'Loading...'; - } - .emoji { - height: 1.2rem; - vertical-align: middle; - } - .progress { - background-color: var(--theme-color, #42b983); - height: 2px; - left: 0; - position: fixed; - right: 0; - top: 0; - transition: width 0.2s, opacity 0.4s; - width: 0; - z-index: 999999; - } - .search .search-keyword, - .search a:hover { - color: var(--theme-color, #42b983); - } - .search .search-keyword { - font-style: normal; - font-weight: 700; - } - body, - html { - height: 100%; - } - body { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - color: #34495e; - font-family: Source Sans Pro, Helvetica Neue, Arial, sans-serif; - font-size: 15px; - letter-spacing: 0; - margin: 0; - overflow-x: hidden; - } - img { - max-width: 100%; - } - a[disabled] { - cursor: not-allowed; - opacity: 0.6; - } - kbd { - border: 1px solid #ccc; - border-radius: 3px; - display: inline-block; - font-size: 12px !important; - line-height: 12px; - margin-bottom: 3px; - padding: 3px 5px; - vertical-align: middle; - } - li input[type='checkbox'] { - margin: 0 0.2em 0.25em 0; - vertical-align: middle; - } - .app-nav { - margin: 25px 60px 0 0; - position: absolute; - right: 0; - text-align: right; - z-index: 10; - } - .app-nav.no-badge { - margin-right: 25px; - } - .app-nav p { - margin: 0; - } - .app-nav > a { - margin: 0 1rem; - padding: 5px 0; - } - .app-nav li, - .app-nav ul { - display: inline-block; - list-style: none; - margin: 0; - } - .app-nav a { - color: inherit; - font-size: 16px; - text-decoration: none; - transition: color 0.3s; - } - .app-nav a.active, - .app-nav a:hover { - color: var(--theme-color, #42b983); - } - .app-nav a.active { - border-bottom: 2px solid var(--theme-color, #42b983); - } - .app-nav li { - display: inline-block; - margin: 0 1rem; - padding: 5px 0; - position: relative; - cursor: pointer; - } - .app-nav li ul { - background-color: #fff; - border: 1px solid; - border-color: #ddd #ddd #ccc; - border-radius: 4px; - box-sizing: border-box; - display: none; - max-height: calc(100vh - 61px); - overflow-y: auto; - padding: 10px 0; - position: absolute; - right: -15px; - text-align: left; - top: 100%; - white-space: nowrap; - } - .app-nav li ul li { - display: block; - font-size: 14px; - line-height: 1rem; - margin: 8px 14px; - white-space: nowrap; - } - .app-nav li ul a { - display: block; - font-size: inherit; - margin: 0; - padding: 0; - } - .app-nav li ul a.active { - border-bottom: 0; - } - .app-nav li:hover ul { - display: block; - } - .github-corner { - border-bottom: 0; - position: fixed; - right: 0; - text-decoration: none; - top: 0; - z-index: 1; - } - .github-corner:hover .octo-arm { - -webkit-animation: octocat-wave 0.56s ease-in-out; - animation: octocat-wave 0.56s ease-in-out; - } - .github-corner svg { - color: #fff; - fill: var(--theme-color, #42b983); - height: 80px; - width: 80px; - } - main { - display: block; - position: relative; - width: 100vw; - height: 100%; - z-index: 0; - } - main.hidden { - display: none; - } - .anchor { - display: inline-block; - text-decoration: none; - transition: all 0.3s; - } - .anchor span { - color: #34495e; - } - .anchor:hover { - text-decoration: underline; - } - .sidebar { - border-right: 1px solid rgba(0, 0, 0, 0.07); - overflow-y: auto; - padding: 40px 0 0; - position: absolute; - top: 0; - bottom: 0; - left: 0; - transition: transform 0.25s ease-out; - width: 300px; - z-index: 20; - } - .sidebar > h1 { - margin: 0 auto 1rem; - font-size: 1.5rem; - font-weight: 300; - text-align: center; - } - .sidebar > h1 a { - color: inherit; - text-decoration: none; - } - .sidebar > h1 .app-nav { - display: block; - position: static; - } - .sidebar .sidebar-nav { - line-height: 2em; - padding-bottom: 40px; - } - .sidebar li.collapse .app-sub-sidebar { - display: none; - } - .sidebar ul { - margin: 0 0 0 15px; - padding: 0; - } - .sidebar li > p { - font-weight: 700; - margin: 0; - } - .sidebar ul, - .sidebar ul li { - list-style: none; - } - .sidebar ul li a { - border-bottom: none; - display: block; - } - .sidebar ul li ul { - padding-left: 20px; - } - .sidebar::-webkit-scrollbar { - width: 4px; - } - .sidebar::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 4px; - } - .sidebar:hover::-webkit-scrollbar-thumb { - background: hsla(0, 0%, 53.3%, 0.4); - } - .sidebar:hover::-webkit-scrollbar-track { - background: hsla(0, 0%, 53.3%, 0.1); - } - .sidebar-toggle { - background-color: transparent; - background-color: hsla(0, 0%, 100%, 0.8); - border: 0; - outline: none; - padding: 10px; - position: absolute; - bottom: 0; - left: 0; - text-align: center; - transition: opacity 0.3s; - width: 284px; - z-index: 30; - cursor: pointer; - } - .sidebar-toggle:hover .sidebar-toggle-button { - opacity: 0.4; - } - .sidebar-toggle span { - background-color: var(--theme-color, #42b983); - display: block; - margin-bottom: 4px; - width: 16px; - height: 2px; - } - body.sticky .sidebar, - body.sticky .sidebar-toggle { - position: fixed; - } - .content { - padding-top: 60px; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 300px; - transition: left 0.25s ease; - } - .markdown-section { - margin: 0 auto; - max-width: 80%; - padding: 30px 15px 40px; - position: relative; - } - .markdown-section > * { - box-sizing: border-box; - font-size: inherit; - } - .markdown-section > :first-child { - margin-top: 0 !important; - } - .markdown-section hr { - border: none; - border-bottom: 1px solid #eee; - margin: 2em 0; - } - .markdown-section iframe { - border: 1px solid #eee; - width: 1px; - min-width: 100%; - } - .markdown-section table { - border-collapse: collapse; - border-spacing: 0; - display: block; - margin-bottom: 1rem; - overflow: auto; - width: 100%; - } - .markdown-section th { - font-weight: 700; - } - .markdown-section td, - .markdown-section th { - border: 1px solid #ddd; - padding: 6px 13px; - } - .markdown-section tr { - border-top: 1px solid #ccc; - } - .markdown-section p.tip, - .markdown-section tr:nth-child(2n) { - background-color: #f8f8f8; - } - .markdown-section p.tip { - border-bottom-right-radius: 2px; - border-left: 4px solid #f66; - border-top-right-radius: 2px; - margin: 2em 0; - padding: 12px 24px 12px 30px; - position: relative; - } - .markdown-section p.tip:before { - background-color: #f66; - border-radius: 100%; - color: #fff; - content: '!'; - font-family: Dosis, Source Sans Pro, Helvetica Neue, Arial, sans-serif; - font-size: 14px; - font-weight: 700; - left: -12px; - line-height: 20px; - position: absolute; - height: 20px; - width: 20px; - text-align: center; - top: 14px; - } - .markdown-section p.tip code { - background-color: #efefef; - } - .markdown-section p.tip em { - color: #34495e; - } - .markdown-section p.warn { - background: rgba(66, 185, 131, 0.1); - border-radius: 2px; - padding: 1rem; - } - .markdown-section ul.task-list > li { - list-style-type: none; - } - body.close .sidebar { - transform: translateX(-300px); - } - body.close .sidebar-toggle { - width: auto; - } - body.close .content { - left: 0; - } - @media print { - .app-nav, - .github-corner, - .sidebar, - .sidebar-toggle { - display: none; - } - } - @media screen and (max-width: 768px) { - .github-corner, - .sidebar, - .sidebar-toggle { - position: fixed; - } - .app-nav { - margin-top: 16px; - } - .app-nav li ul { - top: 30px; - } - main { - height: auto; - overflow-x: hidden; - } - .sidebar { - left: -300px; - transition: transform 0.25s ease-out; - } - .content { - left: 0; - max-width: 100vw; - position: static; - padding-top: 20px; - transition: transform 0.25s ease; - } - .app-nav, - .github-corner { - transition: transform 0.25s ease-out; - } - .sidebar-toggle { - background-color: transparent; - width: auto; - padding: 30px 30px 10px 10px; - } - body.close .sidebar { - transform: translateX(300px); - } - body.close .sidebar-toggle { - background-color: hsla(0, 0%, 100%, 0.8); - transition: background-color 1s; - width: 284px; - padding: 10px; - } - body.close .content { - transform: translateX(300px); - } - body.close .app-nav, - body.close .github-corner { - display: none; - } - .github-corner:hover .octo-arm { - -webkit-animation: none; - animation: none; - } - .github-corner .octo-arm { - -webkit-animation: octocat-wave 0.56s ease-in-out; - animation: octocat-wave 0.56s ease-in-out; - } - } - @-webkit-keyframes octocat-wave { - 0%, - to { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } - } - @keyframes octocat-wave { - 0%, - to { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } - } - section.cover { - align-items: center; - background-position: 50%; - background-repeat: no-repeat; - background-size: cover; - height: 100vh; - width: 100vw; - display: none; - } - section.cover.show { - display: flex; - } - section.cover.has-mask .mask { - background-color: #fff; - opacity: 0.8; - position: absolute; - top: 0; - height: 100%; - width: 100%; - } - section.cover .cover-main { - flex: 1; - margin: -20px 16px 0; - text-align: center; - } - section.cover a { - color: inherit; - } - section.cover a, - section.cover a:hover { - text-decoration: none; - } - section.cover p { - line-height: 1.5rem; - margin: 1em 0; - } - section.cover h1 { - color: inherit; - font-size: 2.5rem; - font-weight: 300; - margin: 0.625rem 0 2.5rem; - position: relative; - text-align: center; - } - section.cover h1 a { - display: block; - } - section.cover h1 small { - bottom: -0.4375rem; - font-size: 1rem; - position: absolute; - } - section.cover blockquote { - font-size: 1.5rem; - text-align: center; - } - section.cover ul { - line-height: 1.8; - list-style-type: none; - margin: 1em auto; - max-width: 500px; - padding: 0; - } - section.cover .cover-main > p:last-child a { - border-radius: 2rem; - border: 1px solid var(--theme-color, #42b983); - box-sizing: border-box; - color: var(--theme-color, #42b983); - display: inline-block; - font-size: 1.05rem; - letter-spacing: 0.1rem; - margin: 0.5rem 1rem; - padding: 0.75em 2rem; - text-decoration: none; - transition: all 0.15s ease; - } - section.cover .cover-main > p:last-child a:last-child { - background-color: var(--theme-color, #42b983); - color: #fff; - } - section.cover .cover-main > p:last-child a:last-child:hover { - color: inherit; - opacity: 0.8; - } - section.cover .cover-main > p:last-child a:hover { - color: inherit; - } - section.cover blockquote > p > a { - border-bottom: 2px solid var(--theme-color, #42b983); - transition: color 0.3s; - } - section.cover blockquote > p > a:hover { - color: var(--theme-color, #42b983); - } - .sidebar, - body { - background-color: #fff; - } - .sidebar { - color: #364149; - } - .sidebar li { - margin: 6px 0; - } - .sidebar ul li a { - color: #505d6b; - font-size: 14px; - font-weight: 400; - overflow: hidden; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; - } - .sidebar ul li a:hover { - text-decoration: underline; - } - .sidebar ul li ul { - padding: 0; - } - .sidebar ul li.active > a { - border-right: 2px solid; - color: var(--theme-color, #42b983); - font-weight: 600; - } - .app-sub-sidebar li:before { - content: '-'; - padding-right: 4px; - float: left; - } - .markdown-section h1, - .markdown-section h2, - .markdown-section h3, - .markdown-section h4, - .markdown-section strong { - color: #2c3e50; - font-weight: 600; - } - .markdown-section a { - color: var(--theme-color, #42b983); - font-weight: 600; - } - .markdown-section h1 { - font-size: 2rem; - margin: 0 0 1rem; - } - .markdown-section h2 { - font-size: 1.75rem; - margin: 45px 0 0.8rem; - } - .markdown-section h3 { - font-size: 1.5rem; - margin: 40px 0 0.6rem; - } - .markdown-section h4 { - font-size: 1.25rem; - } - .markdown-section h5 { - font-size: 1rem; - } - .markdown-section h6 { - color: #777; - font-size: 1rem; - } - .markdown-section figure, - .markdown-section p { - margin: 1.2em 0; - } - .markdown-section ol, - .markdown-section p, - .markdown-section ul { - line-height: 1.6rem; - word-spacing: 0.05rem; - } - .markdown-section ol, - .markdown-section ul { - padding-left: 1.5rem; - } - .markdown-section blockquote { - border-left: 4px solid var(--theme-color, #42b983); - color: #858585; - margin: 2em 0; - padding-left: 20px; - } - .markdown-section blockquote p { - font-weight: 600; - margin-left: 0; - } - .markdown-section iframe { - margin: 1em 0; - } - .markdown-section em { - color: #7f8c8d; - } - .markdown-section code { - border-radius: 2px; - color: #e96900; - font-size: 0.8rem; - margin: 0 2px; - padding: 3px 5px; - white-space: pre-wrap; - } - .markdown-section code, - .markdown-section pre { - background-color: #f8f8f8; - font-family: Roboto Mono, Monaco, courier, monospace; - } - .markdown-section pre { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - line-height: 1.5rem; - margin: 1.2em 0; - overflow: auto; - padding: 0 1.4rem; - position: relative; - word-wrap: normal; - } - .token.cdata, - .token.comment, - .token.doctype, - .token.prolog { - color: #8e908c; - } - .token.namespace { - opacity: 0.7; - } - .token.boolean, - .token.number { - color: #c76b29; - } - .token.punctuation { - color: #525252; - } - .token.property { - color: #c08b30; - } - .token.tag { - color: #2973b7; - } - .token.string { - color: var(--theme-color, #42b983); - } - .token.selector { - color: #6679cc; - } - .token.attr-name { - color: #2973b7; - } - .language-css .token.string, - .style .token.string, - .token.entity, - .token.url { - color: #22a2c9; - } - .token.attr-value, - .token.control, - .token.directive, - .token.unit { - color: var(--theme-color, #42b983); - } - .token.function, - .token.keyword { - color: #e96900; - } - .token.atrule, - .token.regex, - .token.statement { - color: #22a2c9; - } - .token.placeholder, - .token.variable { - color: #3d8fd1; - } - .token.deleted { - text-decoration: line-through; - } - .token.inserted { - border-bottom: 1px dotted #202746; - text-decoration: none; - } - .token.italic { - font-style: italic; - } - .token.bold, - .token.important { - font-weight: 700; - } - .token.important { - color: #c94922; - } - .token.entity { - cursor: help; - } - .markdown-section pre > code { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - background-color: #f8f8f8; - border-radius: 2px; - color: #525252; - display: block; - font-family: Roboto Mono, Monaco, courier, monospace; - font-size: 0.8rem; - line-height: inherit; - margin: 0 2px; - max-width: inherit; - overflow: inherit; - padding: 2.2em 5px; - white-space: inherit; - } - .markdown-section code:after, - .markdown-section code:before { - letter-spacing: 0.05rem; - } - code .token { - -moz-osx-font-smoothing: initial; - -webkit-font-smoothing: initial; - min-height: 1.5rem; - position: relative; - left: auto; - } - pre:after { - color: #ccc; - content: attr(data-lang); - font-size: 0.6rem; - font-weight: 600; - height: 15px; - line-height: 15px; - padding: 5px 10px 0; - position: absolute; - right: 0; - text-align: right; - top: 0; - } -} diff --git a/packages/mermaid/src/docs/upgrading.md b/packages/mermaid/src/docs/upgrading.md deleted file mode 100644 index 16dea1cbae..0000000000 --- a/packages/mermaid/src/docs/upgrading.md +++ /dev/null @@ -1,25 +0,0 @@ -# Upgrading - -Some of the interfaces has been upgraded. - -## From version 0.4.0 to 0.5.0 - -### Initialization - -`mermaid_config` is no longer used. Instead a call to mermaid initialize is done as in the example below: - -#### version 0.4.0 - -```javascript -mermaid_config = { - startOnLoad: true, -}; -``` - -#### version 0.5.0 - -```javascript -mermaid.initialize({ - startOnLoad: true, -}); -``` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2f88060c6..a7f5103b7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,7 +33,6 @@ importers: d3: ^7.0.0 dagre: ^0.8.5 dagre-d3: ^0.6.4 - documentation: 13.2.0 dompurify: 2.4.0 esbuild: ^0.15.10 eslint: ^8.24.0 @@ -73,9 +72,6 @@ importers: unist-util-flatmap: ^1.0.0 uuid: ^9.0.0 vite: ^3.1.4 - vitepress: ^1.0.0-alpha.19 - vitepress-plugin-mermaid: ^2.0.8 - vitepress-plugin-search: ^1.0.4-alpha.11 vitest: ^0.23.4 dependencies: '@braintree/sanitize-url': 6.0.0 @@ -115,7 +111,6 @@ importers: coveralls: 3.1.1 cypress: 10.8.0 cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1 - documentation: 13.2.0 esbuild: 0.15.10 eslint: 8.24.0 eslint-config-prettier: 8.5.0_eslint@8.24.0 @@ -145,9 +140,6 @@ importers: typescript: 4.8.4 unist-util-flatmap: 1.0.0 vite: 3.1.4 - vitepress: 1.0.0-alpha.19 - vitepress-plugin-mermaid: 2.0.8_vitepress@1.0.0-alpha.19 - vitepress-plugin-search: 1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4 vitest: 0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna packages/mermaid: @@ -173,7 +165,6 @@ importers: d3: ^7.0.0 dagre: ^0.8.5 dagre-d3: ^0.6.4 - documentation: 13.2.0 dompurify: 2.4.0 esbuild: ^0.15.8 eslint: ^8.23.1 @@ -204,11 +195,17 @@ importers: prettier-plugin-jsdoc: ^0.4.2 remark: ^14.0.2 rimraf: ^3.0.2 + shiki: ^0.11.1 start-server-and-test: ^1.12.6 stylis: ^4.1.2 ts-node: ^10.9.1 + typedoc: ^0.23.16 + typedoc-plugin-markdown: ^3.13.6 typescript: ^4.8.3 unist-util-flatmap: ^1.0.0 + vitepress: ^1.0.0-alpha.19 + vitepress-plugin-mermaid: ^2.0.8 + vitepress-plugin-search: ^1.0.4-alpha.11 dependencies: '@braintree/sanitize-url': 6.0.0 d3: 7.6.1 @@ -221,7 +218,10 @@ importers: lodash: 4.17.21 moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 + shiki: 0.11.1 stylis: 4.1.2 + typedoc: 0.23.16_typescript@4.8.3 + typedoc-plugin-markdown: 3.13.6_typedoc@0.23.16 devDependencies: '@applitools/eyes-cypress': 3.27.1 '@commitlint/cli': 17.1.2 @@ -239,14 +239,13 @@ importers: concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0 - documentation: 13.2.0 + cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 esbuild: 0.15.8 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -265,9 +264,12 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_typescript@4.8.3 + ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a typescript: 4.8.3 unist-util-flatmap: 1.0.0 + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-mermaid: 2.0.8_ml5vzxpqibyfsid5kdls3ch6aa + vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y packages/mermaid-example-diagram: specifiers: @@ -306,13 +308,14 @@ packages: '@algolia/autocomplete-shared': 1.7.1 dev: true - /@algolia/autocomplete-preset-algolia/1.7.1_algoliasearch@4.14.2: + /@algolia/autocomplete-preset-algolia/1.7.1_qs6lk5nhygj2o3hj4sf6xnr724: resolution: {integrity: sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==} peerDependencies: '@algolia/client-search': ^4.9.1 algoliasearch: ^4.9.1 dependencies: '@algolia/autocomplete-shared': 1.7.1 + '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true @@ -679,20 +682,15 @@ packages: '@babel/highlight': 7.18.6 dev: true - /@babel/compat-data/7.19.1: - resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/core/7.12.3: resolution: {integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.12.1 + '@babel/generator': 7.19.0 '@babel/helper-module-transforms': 7.19.0 '@babel/helpers': 7.19.0 - '@babel/parser': 7.12.3 + '@babel/parser': 7.19.1 '@babel/template': 7.18.10 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 @@ -708,14 +706,6 @@ packages: - supports-color dev: true - /@babel/generator/7.12.1: - resolution: {integrity: sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==} - dependencies: - '@babel/types': 7.19.0 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - /@babel/generator/7.19.0: resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} engines: {node: '>=6.9.0'} @@ -725,91 +715,11 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure/7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: - resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-compilation-targets/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 - semver: 6.3.0 - dev: true - - /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.2.1 - dev: true - - /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.12.3: - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-explode-assignable-expression/7.18.6: - resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} @@ -825,13 +735,6 @@ packages: '@babel/types': 7.19.0 dev: true - /@babel/helper-member-expression-to-functions/7.18.9: - resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} @@ -855,46 +758,11 @@ packages: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/helper-plugin-utils/7.19.0: resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-wrap-function': 7.19.0 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-replace-supers/7.19.1: - resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-simple-access/7.18.6: resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} engines: {node: '>=6.9.0'} @@ -902,13 +770,6 @@ packages: '@babel/types': 7.19.0 dev: true - /@babel/helper-skip-transparent-expression-wrappers/7.18.9: - resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} @@ -926,23 +787,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-wrap-function/7.19.0: - resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.19.0 - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helpers/7.19.0: resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} engines: {node: '>=6.9.0'} @@ -963,14 +807,6 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.12.3: - resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/parser/7.19.1: resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} engines: {node: '>=6.0.0'} @@ -979,1160 +815,193 @@ packages: '@babel/types': 7.19.0 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: - '@babel/core': ^7.13.0 + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-async-generator-functions/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: - '@babel/core': ^7.12.0 + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-proposal-decorators/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-LfIKNBBY7Q1OX5C4xAgRQffOg2OnhAo9fnbcOHgOC9Yytm2Sw+4XqHufRYU86tHomzepxtvuVaNO+3EVKR4ivw==} + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-proposal-do-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ddToGCONJhCuL+l4FhtGnKl5ZYCj9fDVFiqiCdQDpeIbVn/NvMeSib+7T1/rk08jRafae4qNiP8OnJyuqlsuYA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-do-expressions': 7.18.6_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-export-default-from/7.18.10_@babel+core@7.12.3: - resolution: {integrity: sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-export-default-from': 7.18.6_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-function-bind/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-9RfxqKkRBCCT0xoBl9AqieCMscJmSAL9HYixGMWH549jUpT9csWWK/HEYZEx9t9iW/PRSXgX95x9bDlgtAJGFA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-function-bind': 7.18.6_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-function-sent/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-UdaOKPOLPt0O+Xu26tnw6oAZMLXhk+yMrXOzn6kAzTHBnWHJsoN1hlrgxFAQ+FRLS0ql1oYIQ2phvoFzmN3GMw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-wrap-function': 7.19.0 - '@babel/plugin-syntax-function-sent': 7.18.6_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.3: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + /@babel/template/7.18.10: + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 dev: true - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + /@babel/traverse/7.19.1: + resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.19.0 + '@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.19.1 + '@babel/types': 7.19.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: true - /@babel/plugin-proposal-object-rest-spread/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==} + /@babel/types/7.19.0: + resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 + '@babel/helper-string-parser': 7.18.10 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 dev: true - /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@braintree/sanitize-url/6.0.0: + resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} + + /@cnakazawa/watch/1.0.4: + resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} + engines: {node: '>=0.1.95'} + hasBin: true dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 + exec-sh: 0.3.6 + minimist: 1.2.6 dev: true - /@babel/plugin-proposal-pipeline-operator/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-Pc33e6m8f4MJhRXVCUwiKZNtEm+W2CUPHIL0lyJNtkp+w6d75CLw3gsBKQ81VAMUgT9jVPIEU8gwJ5nJgmJ1Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-pipeline-operator': 7.18.6_@babel+core@7.12.3 + /@colors/colors/1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true dev: true - - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-throw-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-WHOrJyhGoGrdtW480L79cF7Iq/gZDZ/z6OqK7mVyFR5I37dTpog/wNgb6hmaM3HYZtULEJl++7VaMWkNZsOcHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-throw-expressions': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.12.3: - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-do-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-kTogvOsjBTVOSZtkkziiXB5hwGXqwhq2gBXDaiWVruRLDT7C2GqfbsMnicHJ7ePq2GE8UJeWS34YbNP6yDhwUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-function-bind/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-wZN0Aq/AScknI9mKGcR3TpHdASMufFGaeJgc1rhPmLtZ/PniwjePSh8cfh8tXMB3U4kh/3cRKrLjDtedejg8jQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-function-sent/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-f3OJHIlFIkg+cP1Hfo2SInLhsg0pz2Ikmgo7jMdIIKC+3jVXQlHB0bgSapOWxeWI0SU28qIWmfn5ZKu1yPJHkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-import-assertions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-pipeline-operator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-pFtIdQomJtkTHWcNsGXhjJ5YUkL+AxJnP4G+Ol85UO6uT2fpHTPYLLE5bBeRA9cxf25qa/VKsJ3Fi67Gyqe3rA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.12.3: - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-throw-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-rp1CqEZXGv1z1YZ3qYffBH3rhnOxrTwQG8fh2yqulTurwv9zu3Gthfd+niZBLSOi1rY6146TgF+JmVeDXaX4TQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.3: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-block-scoping/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-classes/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-destructuring/7.18.13_@babel+core@7.12.3: - resolution: {integrity: sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.12.3: - resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-literals/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-modules-amd/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-modules-commonjs/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-simple-access': 7.18.6 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-modules-systemjs/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-identifier': 7.19.1 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-parameters/7.18.8_@babel+core@7.12.3: - resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 - dev: true - - /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.12.3 - '@babel/types': 7.19.0 - dev: true - - /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - regenerator-transform: 0.15.0 - dev: true - - /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-spread/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 - dev: true - - /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.12.3: - resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/preset-env/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-async-generator-functions': 7.19.1_@babel+core@7.12.3 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-object-rest-spread': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-import-assertions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 - '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoping': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-classes': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-destructuring': 7.18.13_@babel+core@7.12.3 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.12.3 - '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-amd': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-commonjs': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-systemjs': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-named-capturing-groups-regex': 7.19.1_@babel+core@7.12.3 - '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 - '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.12.3 - '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.12.3 - '@babel/preset-modules': 0.1.5_@babel+core@7.12.3 - '@babel/types': 7.19.0 - babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.12.3 - babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.12.3 - babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.12.3 - core-js-compat: 3.25.2 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/preset-flow/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.12.3 - dev: true - - /@babel/preset-modules/0.1.5_@babel+core@7.12.3: - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 - '@babel/types': 7.19.0 - esutils: 2.0.3 - dev: true - - /@babel/preset-react/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/preset-stage-0/7.8.3: - resolution: {integrity: sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ==} - dev: true - - /@babel/runtime/7.19.0: - resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.9 - dev: true - - /@babel/template/7.18.10: - resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 - dev: true - - /@babel/traverse/7.19.1: - resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 - '@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.19.1 - '@babel/types': 7.19.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.19.0: - resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.18.10 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@braintree/sanitize-url/6.0.0: - resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} - dev: false - - /@colors/colors/1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true + optional: true /@commitlint/cli/17.1.2: resolution: {integrity: sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw==} @@ -2340,10 +1209,10 @@ packages: resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} dev: true - /@docsearch/js/3.2.1: + /@docsearch/js/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} dependencies: - '@docsearch/react': 3.2.1 + '@docsearch/react': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y preact: 10.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -2352,7 +1221,7 @@ packages: - react-dom dev: true - /@docsearch/react/3.2.1: + /@docsearch/react/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -2367,7 +1236,7 @@ packages: optional: true dependencies: '@algolia/autocomplete-core': 1.7.1 - '@algolia/autocomplete-preset-algolia': 1.7.1_algoliasearch@4.14.2 + '@algolia/autocomplete-preset-algolia': 1.7.1_qs6lk5nhygj2o3hj4sf6xnr724 '@docsearch/css': 3.2.1 algoliasearch: 4.14.2 transitivePeerDependencies: @@ -2472,11 +1341,6 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@hutson/parse-repository-url/3.0.2: - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} - dev: true - /@istanbuljs/load-nyc-config/1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -2493,6 +1357,18 @@ packages: engines: {node: '>=8'} dev: true + /@jest/console/26.6.2: + resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + jest-message-util: 26.6.2 + jest-util: 26.6.2 + slash: 3.0.0 + dev: true + /@jest/console/29.1.0: resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2505,6 +1381,46 @@ packages: slash: 3.0.0 dev: true + /@jest/core/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/reporters': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-changed-files: 26.6.2 + jest-config: 26.6.3_ts-node@10.9.1 + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-resolve-dependencies: 26.6.3 + jest-runner: 26.6.3_ts-node@10.9.1 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + jest-watcher: 26.6.2 + micromatch: 4.0.5 + p-each-series: 2.2.0 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /@jest/core/29.1.1_ts-node@10.9.1: resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2547,6 +1463,16 @@ packages: - ts-node dev: true + /@jest/environment/26.6.2: + resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + dev: true + /@jest/environment/29.1.1: resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2574,6 +1500,18 @@ packages: - supports-color dev: true + /@jest/fake-timers/26.6.2: + resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@sinonjs/fake-timers': 6.0.1 + '@types/node': 18.8.1 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-util: 26.6.2 + dev: true + /@jest/fake-timers/29.1.1: resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2586,6 +1524,15 @@ packages: jest-util: 29.1.0 dev: true + /@jest/globals/26.6.2: + resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/types': 26.6.2 + expect: 26.6.2 + dev: true + /@jest/globals/29.1.1: resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2598,6 +1545,40 @@ packages: - supports-color dev: true + /@jest/reporters/26.6.2: + resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-haste-map: 26.6.2 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 7.1.2 + optionalDependencies: + node-notifier: 8.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/reporters/29.1.0: resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2643,6 +1624,15 @@ packages: '@sinclair/typebox': 0.24.43 dev: true + /@jest/source-map/26.6.2: + resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} + engines: {node: '>= 10.14.2'} + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.10 + source-map: 0.6.1 + dev: true + /@jest/source-map/29.0.0: resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2652,6 +1642,16 @@ packages: graceful-fs: 4.2.10 dev: true + /@jest/test-result/26.6.2: + resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/types': 26.6.2 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + /@jest/test-result/29.1.0: resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2662,6 +1662,23 @@ packages: collect-v8-coverage: 1.0.1 dev: true + /@jest/test-sequencer/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/test-result': 26.6.2 + graceful-fs: 4.2.10 + jest-haste-map: 26.6.2 + jest-runner: 26.6.3_ts-node@10.9.1 + jest-runtime: 26.6.3_ts-node@10.9.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /@jest/test-sequencer/29.1.0: resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2672,6 +1689,29 @@ packages: slash: 3.0.0 dev: true + /@jest/transform/26.6.2: + resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/core': 7.12.3 + '@jest/types': 26.6.2 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.8.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 26.6.2 + jest-regex-util: 26.0.0 + jest-util: 26.6.2 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/transform/29.1.0: resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2695,6 +1735,17 @@ packages: - supports-color dev: true + /@jest/types/26.6.2: + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.8.1 + '@types/yargs': 15.0.14 + chalk: 4.1.2 + dev: true + /@jest/types/29.1.0: resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2769,6 +1820,14 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -2798,6 +1857,12 @@ packages: type-detect: 4.0.8 dev: true + /@sinonjs/fake-timers/6.0.1: + resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} + dependencies: + '@sinonjs/commons': 1.8.3 + dev: true + /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: @@ -2892,6 +1957,12 @@ packages: resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true + /@types/concat-stream/1.6.1: + resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -3117,6 +2188,12 @@ packages: '@types/serve-static': 1.15.0 dev: true + /@types/form-data/0.0.33: + resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/geojson/7946.0.10: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true @@ -3191,6 +2268,10 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true + /@types/node/10.17.60: + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + dev: true + /@types/node/14.18.29: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true @@ -3206,6 +2287,10 @@ packages: /@types/node/18.8.1: resolution: {integrity: sha512-vuYaNuEIbOYLTLUAJh50ezEbvxrD43iby+lpUA2aa148Nh5kX/AVO/9m1Ahmbux2iU5uxJTNF9g2Y+31uml7RQ==} + /@types/node/8.10.66: + resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} + dev: true + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -3283,6 +2368,12 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true + /@types/yargs/15.0.14: + resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + /@types/yargs/17.0.13: resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} dependencies: @@ -3738,6 +2829,53 @@ packages: p-iteration: 1.1.8 dev: true + /@yankeeinlondon/builder-api/0.4.1_66sppty6vuastmeigevztjtyii: + resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} + peerDependencies: + fp-ts: ^2.12.1 + inferred-types: ^0.22.0 + markdown-it: ^13.0.1 + vite-plugin-md: '*' + dependencies: + '@yankeeinlondon/happy-wrapper': 2.6.0_e3y3tk5wocdgktiwrgnxpnd3nq + fp-ts: 2.12.3 + inferred-types: 0.22.0 + markdown-it: 13.0.1 + vite-plugin-md: 0.20.4_una3iegy3mpnzqsvaavhifvkiy + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /@yankeeinlondon/happy-wrapper/2.6.0_e3y3tk5wocdgktiwrgnxpnd3nq: + resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} + peerDependencies: + happy-dom: ^6.0.4 + dependencies: + happy-dom: 6.0.4 + native-dash: 1.23.2_e3y3tk5wocdgktiwrgnxpnd3nq + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /JSONSelect/0.4.0: resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} engines: {node: '>=0.4.7'} @@ -3796,14 +2934,6 @@ packages: acorn: 8.8.0 dev: true - /acorn-node/1.8.2: - resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - /acorn-walk/7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} @@ -3826,10 +2956,6 @@ packages: hasBin: true dev: true - /add-stream/1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - dev: true - /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3913,12 +3039,6 @@ packages: type-fest: 0.21.3 dev: true - /ansi-html/0.0.7: - resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: true - /ansi-regex/2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} @@ -3963,6 +3083,15 @@ packages: engines: {node: '>=12'} dev: true + /anymatch/2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -3978,13 +3107,6 @@ packages: execa: 1.0.0 dev: true - /append-buffer/1.0.2: - resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} - engines: {node: '>=0.10.0'} - dependencies: - buffer-equal: 1.0.0 - dev: true - /arch/2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true @@ -4041,6 +3163,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -4116,6 +3242,25 @@ packages: - debug dev: true + /babel-jest/26.6.3_@babel+core@7.12.3: + resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/babel__core': 7.1.19 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 26.6.2_@babel+core@7.12.3 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-jest/29.1.0_@babel+core@7.12.3: resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4134,12 +3279,6 @@ packages: - supports-color dev: true - /babel-plugin-dynamic-import-node/2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - dependencies: - object.assign: 4.1.4 - dev: true - /babel-plugin-istanbul/6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -4153,50 +3292,24 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/29.0.2: - resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /babel-plugin-jest-hoist/26.6.2: + resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} + engines: {node: '>= 10.14.2'} dependencies: '@babel/template': 7.18.10 '@babel/types': 7.19.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.18.2 - dev: true - - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.12.3: - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.12.3: - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - core-js-compat: 3.25.2 - transitivePeerDependencies: - - supports-color + '@types/babel__core': 7.1.19 + '@types/babel__traverse': 7.18.2 dev: true - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.12.3: - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + /babel-plugin-jest-hoist/29.0.2: + resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.12.3 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.18.10 + '@babel/types': 7.19.0 + '@types/babel__core': 7.1.19 + '@types/babel__traverse': 7.18.2 dev: true /babel-preset-current-node-syntax/1.0.1_@babel+core@7.12.3: @@ -4219,28 +3332,26 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 dev: true - /babel-preset-jest/29.0.2_@babel+core@7.12.3: - resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /babel-preset-jest/26.6.2_@babel+core@7.12.3: + resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} + engines: {node: '>= 10.14.2'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 29.0.2 + babel-plugin-jest-hoist: 26.6.2 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 dev: true - /babelify/10.0.0_@babel+core@7.12.3: - resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==} - engines: {node: '>=6.9.0'} + /babel-preset-jest/29.0.2_@babel+core@7.12.3: + resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.3 - dev: true - - /bail/1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + babel-plugin-jest-hoist: 29.0.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 dev: true /bail/2.0.2: @@ -4249,7 +3360,6 @@ packages: /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base/0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} @@ -4274,11 +3384,6 @@ packages: tweetnacl: 0.14.5 dev: true - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - /binary-searching/2.0.5: resolution: {integrity: sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA==} dev: true @@ -4315,15 +3420,6 @@ packages: resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} dev: true - /body/5.1.0: - resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==} - dependencies: - continuable-cache: 0.3.1 - error: 7.2.1 - raw-body: 1.1.7 - safe-json-parse: 1.0.1 - dev: true - /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -4331,6 +3427,12 @@ packages: concat-map: 0.0.1 dev: true + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: false + /braces/2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} @@ -4356,25 +3458,30 @@ packages: fill-range: 7.0.1 dev: true - /browser-process-hrtime/1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - dev: true - - /browser-resolve/1.11.3: - resolution: {integrity: sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==} + /brilliant-errors/0.6.0_e3y3tk5wocdgktiwrgnxpnd3nq: + resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} + engines: {node: '>=12.0.0'} dependencies: - resolve: 1.1.7 + callsites: 3.1.0 + common-types: 1.31.1 + inferred-types: 0.22.0 + vitest: 0.19.1_e3y3tk5wocdgktiwrgnxpnd3nq + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser dev: true - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001409 - electron-to-chromium: 1.4.257 - node-releases: 2.0.6 - update-browserslist-db: 1.0.9_browserslist@4.21.4 + /browser-process-hrtime/1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true /bser/2.1.1: @@ -4387,19 +3494,10 @@ packages: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-equal/1.0.0: - resolution: {integrity: sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==} - engines: {node: '>=0.4.0'} - dev: true - /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer-shims/1.0.0: - resolution: {integrity: sha512-Zy8ZXMyxIT6RMTeY7OP/bDndfj6bwCan7SS98CEndS6deHwWPpseeHlwarNcBim+etXnF9HBc1non5JgDaJU1g==} - dev: true - /buffer/5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -4407,10 +3505,6 @@ packages: ieee754: 1.2.1 dev: true - /bytes/1.0.0: - resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} - dev: true - /bytes/3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -4468,10 +3562,6 @@ packages: responselike: 2.0.1 dev: true - /cached-path-relative/1.1.0: - resolution: {integrity: sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==} - dev: true - /cachedir/2.3.0: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} @@ -4508,18 +3598,17 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001409: - resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} + /capture-exit/2.0.0: + resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} + engines: {node: 6.* || 8.* || >= 10.*} + dependencies: + rsvp: 4.8.5 dev: true /caseless/0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /ccount/1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - dev: true - /chai/4.3.6: resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} engines: {node: '>=4'} @@ -4574,10 +3663,6 @@ packages: engines: {node: '>=10'} dev: true - /character-entities-html4/1.1.4: - resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} - dev: true - /character-entities-legacy/1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} dev: true @@ -4603,25 +3688,18 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.2 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true + /cjs-module-lexer/0.6.0: + resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} + dev: true + /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -4696,43 +3774,17 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone-buffer/1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} - dev: true - /clone-response/1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 dev: true - /clone-stats/1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - dev: true - - /clone/2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - dev: true - - /cloneable-readable/1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - dependencies: - inherits: 2.0.4 - process-nextick-args: 2.0.1 - readable-stream: 2.3.7 - dev: true - /co/4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true - /collapse-white-space/1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} - dev: true - /collect-v8-coverage/1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} dev: true @@ -4782,10 +3834,6 @@ packages: delayed-stream: 1.0.0 dev: true - /comma-separated-tokens/1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: true - /commander/5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -4794,7 +3842,6 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -4811,6 +3858,10 @@ packages: engines: {node: '>=4.0.0'} dev: true + /common-types/1.31.1: + resolution: {integrity: sha512-eixAd22Gmek1dgsPgyqCSjzMAlp8rpSLkb44iEMfOzR9fwGFYEkH+AWOHmwSFxWmO8MvMND/m1jpZX0Wk4+yJA==} + dev: true + /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -4826,15 +3877,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concat-stream/1.5.2: - resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==} - engines: {'0': node >= 0.8} - dependencies: - inherits: 2.0.4 - readable-stream: 2.0.6 - typedarray: 0.0.6 - dev: true - /concat-stream/1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} @@ -4845,16 +3887,6 @@ packages: typedarray: 0.0.6 dev: true - /concat-stream/2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.0 - typedarray: 0.0.6 - dev: true - /concurrently/7.4.0: resolution: {integrity: sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==} engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} @@ -4883,10 +3915,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /continuable-cache/0.3.1: - resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==} - dev: true - /conventional-changelog-angular/5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -4895,33 +3923,6 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-atom/2.0.8: - resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-codemirror/2.0.8: - resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-config-spec/2.1.0: - resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==} - dev: true - - /conventional-changelog-conventionalcommits/4.6.3: - resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: true - /conventional-changelog-conventionalcommits/5.0.0: resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} engines: {node: '>=10'} @@ -4931,136 +3932,19 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-core/4.2.4: - resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} - engines: {node: '>=10'} - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 5.0.1 - conventional-commits-parser: 3.2.4 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.11 - git-remote-origin-url: 2.0.0 - git-semver-tags: 4.1.1 - lodash: 4.17.21 - normalize-package-data: 3.0.3 - q: 1.5.1 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - through2: 4.0.2 - dev: true - - /conventional-changelog-ember/2.0.9: - resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-eslint/3.0.9: - resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-express/2.0.6: - resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-jquery/3.0.11: - resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-jshint/2.0.9: - resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - - /conventional-changelog-preset-loader/2.3.4: - resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} - engines: {node: '>=10'} - dev: true - - /conventional-changelog-writer/5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - conventional-commits-filter: 2.0.7 - dateformat: 3.0.3 - handlebars: 4.7.7 - json-stringify-safe: 5.0.1 - lodash: 4.17.21 - meow: 8.1.2 - semver: 6.3.0 - split: 1.0.1 - through2: 4.0.2 - dev: true - - /conventional-changelog/3.1.25: - resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} - engines: {node: '>=10'} - dependencies: - conventional-changelog-angular: 5.0.13 - conventional-changelog-atom: 2.0.8 - conventional-changelog-codemirror: 2.0.8 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-changelog-core: 4.2.4 - conventional-changelog-ember: 2.0.9 - conventional-changelog-eslint: 3.0.9 - conventional-changelog-express: 2.0.6 - conventional-changelog-jquery: 3.0.11 - conventional-changelog-jshint: 2.0.9 - conventional-changelog-preset-loader: 2.3.4 - dev: true - - /conventional-commits-filter/2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - dev: true - /conventional-commits-parser/3.2.4: resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} engines: {node: '>=10'} hasBin: true dependencies: - JSONStream: 1.3.5 is-text-path: 1.0.1 + JSONStream: 1.3.5 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 through2: 4.0.2 dev: true - /conventional-recommended-bump/6.1.0: - resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 2.3.4 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - git-raw-commits: 2.0.11 - git-semver-tags: 4.1.1 - meow: 8.1.2 - q: 1.5.1 - dev: true - /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: @@ -5081,12 +3965,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat/3.25.2: - resolution: {integrity: sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==} - dependencies: - browserslist: 4.21.4 - dev: true - /core-util-is/1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true @@ -5177,10 +4055,18 @@ packages: source-map: 0.6.1 dev: true + /css.escape/1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true + /cssom/0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + dev: true + /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -5196,7 +4082,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0: + /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -5206,7 +4092,7 @@ packages: cypress: 10.8.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0 + jest-image-snapshot: 4.2.0_jest@26.6.3 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5311,12 +4197,10 @@ packages: engines: {node: '>=12'} dependencies: internmap: 2.0.3 - dev: false /d3-axis/3.0.0: resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} engines: {node: '>=12'} - dev: false /d3-brush/3.0.0: resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} @@ -5327,38 +4211,32 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 - dev: false /d3-chord/3.0.1: resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 - dev: false /d3-color/3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} - dev: false /d3-contour/4.0.0: resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-delaunay/6.0.2: resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} engines: {node: '>=12'} dependencies: delaunator: 5.0.0 - dev: false /d3-dispatch/3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} - dev: false /d3-drag/3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} @@ -5366,7 +4244,6 @@ packages: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 - dev: false /d3-dsv/3.0.1: resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} @@ -5376,19 +4253,16 @@ packages: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 - dev: false /d3-ease/3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} - dev: false /d3-fetch/3.0.1: resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} engines: {node: '>=12'} dependencies: d3-dsv: 3.0.1 - dev: false /d3-force/3.0.0: resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} @@ -5397,51 +4271,42 @@ packages: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 - dev: false /d3-format/3.1.0: resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} engines: {node: '>=12'} - dev: false /d3-geo/3.0.1: resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-hierarchy/3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} engines: {node: '>=12'} - dev: false /d3-interpolate/3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 - dev: false /d3-path/3.0.1: resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} engines: {node: '>=12'} - dev: false /d3-polygon/3.0.1: resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} engines: {node: '>=12'} - dev: false /d3-quadtree/3.0.1: resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} engines: {node: '>=12'} - dev: false /d3-random/3.0.1: resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} engines: {node: '>=12'} - dev: false /d3-scale-chromatic/3.0.0: resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} @@ -5449,7 +4314,6 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 - dev: false /d3-scale/4.0.2: resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} @@ -5460,38 +4324,32 @@ packages: d3-interpolate: 3.0.1 d3-time: 3.0.0 d3-time-format: 4.1.0 - dev: false /d3-selection/3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} - dev: false /d3-shape/3.1.0: resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 - dev: false /d3-time-format/4.1.0: resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} engines: {node: '>=12'} dependencies: d3-time: 3.0.0 - dev: false /d3-time/3.0.0: resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-timer/3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} - dev: false /d3-transition/3.0.1_d3-selection@3.0.0: resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} @@ -5505,7 +4363,6 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 - dev: false /d3-zoom/3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} @@ -5516,7 +4373,6 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 - dev: false /d3/7.6.1: resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} @@ -5552,7 +4408,6 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1_d3-selection@3.0.0 d3-zoom: 3.0.0 - dev: false /dagre-d3/0.6.4: resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} @@ -5561,14 +4416,12 @@ packages: dagre: 0.8.5 graphlib: 2.1.8 lodash: 4.17.21 - dev: false /dagre/0.8.5: resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} dependencies: graphlib: 2.1.8 lodash: 4.17.21 - dev: false /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} @@ -5587,6 +4440,15 @@ packages: engines: {node: '>= 6'} dev: true + /data-urls/2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + dev: true + /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -5601,18 +4463,10 @@ packages: engines: {node: '>=0.11'} dev: true - /dateformat/3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dev: true - /dayjs/1.11.5: resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==} dev: true - /de-indent/1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - dev: true - /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -5624,17 +4478,6 @@ packages: ms: 2.0.0 dev: true - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - /debug/3.2.7_supports-color@8.1.1: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -5744,14 +4587,6 @@ packages: engines: {node: '>=10'} dev: true - /define-properties/1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - /define-property/0.2.5: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} @@ -5774,10 +4609,6 @@ packages: isobject: 3.0.1 dev: true - /defined/1.0.0: - resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==} - dev: true - /degenerator/3.0.2: resolution: {integrity: sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==} engines: {node: '>= 6'} @@ -5792,7 +4623,6 @@ packages: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: robust-predicates: 3.0.1 - dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -5819,30 +4649,14 @@ packages: engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true - /detab/2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - dependencies: - repeat-string: 1.6.1 - dev: true - - /detect-indent/6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - /detect-newline/3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} dev: true - /detective/5.2.1: - resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.0 - minimist: 1.2.6 + /diff-sequences/26.6.2: + resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} + engines: {node: '>= 10.14.2'} dev: true /diff-sequences/29.0.0: @@ -5867,13 +4681,6 @@ packages: path-type: 4.0.0 dev: true - /doctrine-temporary-fork/2.1.0: - resolution: {integrity: sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -5881,81 +4688,6 @@ packages: esutils: 2.0.3 dev: true - /documentation/13.2.0: - resolution: {integrity: sha512-c7lIXNZ9t3481c+OGpj4lWPhtdmQilg4E04wc6TXH1gYg2wWu+/f3c60Otg2HDRVnCQoXrozSWuUYNl7y7FJxw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@babel/core': 7.12.3 - '@babel/generator': 7.12.1 - '@babel/parser': 7.12.3 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-decorators': 7.19.1_@babel+core@7.12.3 - '@babel/plugin-proposal-do-expressions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.12.3 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-function-bind': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-function-sent': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-pipeline-operator': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-throw-expressions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 - '@babel/preset-env': 7.19.1_@babel+core@7.12.3 - '@babel/preset-flow': 7.18.6_@babel+core@7.12.3 - '@babel/preset-react': 7.18.6_@babel+core@7.12.3 - '@babel/preset-stage-0': 7.8.3 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - ansi-html: 0.0.7 - babelify: 10.0.0_@babel+core@7.12.3 - chalk: 2.4.2 - chokidar: 3.5.3 - concat-stream: 1.6.2 - diff: 4.0.2 - doctrine-temporary-fork: 2.1.0 - get-port: 5.1.1 - git-url-parse: 11.6.0 - github-slugger: 1.2.0 - glob: 7.2.3 - globals-docs: 2.4.1 - highlight.js: 10.7.3 - ini: 1.3.8 - js-yaml: 3.14.1 - lodash: 4.17.21 - mdast-util-inject: 1.1.0 - micromatch: 3.1.10 - mime: 2.6.0 - module-deps-sortable: 5.0.3 - parse-filepath: 1.0.2 - pify: 5.0.0 - read-pkg-up: 4.0.0 - remark: 9.0.0 - remark-html: 8.0.0 - remark-reference-links: 4.0.4 - remark-toc: 5.1.1 - resolve: 1.22.1 - stream-array: 1.1.2 - strip-json-comments: 2.0.1 - tiny-lr: 1.1.1 - unist-builder: 1.0.4 - unist-util-visit: 1.4.1 - vfile: 4.2.1 - vfile-reporter: 6.0.2 - vfile-sort: 2.2.2 - vinyl: 2.2.1 - vinyl-fs: 3.0.3 - vue-template-compiler: 2.7.10 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - dev: true - /dom-serializer/2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: @@ -5968,6 +4700,13 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true + /domexception/2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + dependencies: + webidl-conversions: 5.0.0 + dev: true + /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -5984,7 +4723,6 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} - dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -6001,33 +4739,10 @@ packages: is-obj: 2.0.0 dev: true - /dotgitignore/2.1.0: - resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} - engines: {node: '>=6'} - dependencies: - find-up: 3.0.0 - minimatch: 3.1.2 - dev: true - /duplexer/0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true - /duplexer2/0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - dependencies: - readable-stream: 2.3.7 - dev: true - - /duplexify/3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.7 - stream-shift: 1.0.1 - dev: true - /eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -6047,17 +4762,14 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /electron-to-chromium/1.4.257: - resolution: {integrity: sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A==} - dev: true - /emittery/0.10.2: resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} engines: {node: '>=12'} dev: true - /emoji-regex/6.1.1: - resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} + /emittery/0.7.2: + resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} + engines: {node: '>=10'} dev: true /emoji-regex/8.0.0: @@ -6102,12 +4814,6 @@ packages: is-arrayish: 0.2.1 dev: true - /error/7.2.1: - resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==} - dependencies: - string-template: 0.2.1 - dev: true - /esbuild-android-64/0.15.10: resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} engines: {node: '>=12'} @@ -6642,7 +5348,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: + /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6658,6 +5364,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha eslint: 8.23.1 + jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -6985,6 +5692,10 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true + /exec-sh/0.3.6: + resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} + dev: true + /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -7070,6 +5781,18 @@ packages: - supports-color dev: true + /expect/26.6.2: + resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + ansi-styles: 4.3.0 + jest-get-type: 26.3.0 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + dev: true + /expect/29.1.0: resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7207,13 +5930,6 @@ packages: reusify: 1.0.4 dev: true - /faye-websocket/0.10.0: - resolution: {integrity: sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==} - engines: {node: '>=0.4.0'} - dependencies: - websocket-driver: 0.7.4 - dev: true - /fb-watchman/2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -7262,11 +5978,6 @@ packages: to-regex-range: 5.0.1 dev: true - /filter-obj/1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: true - /finalhandler/1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -7282,13 +5993,6 @@ packages: - supports-color dev: true - /find-up/2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up/3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -7324,13 +6028,6 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /flush-write-stream/1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.7 - dev: true - /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -7369,6 +6066,15 @@ packages: mime-types: 2.1.35 dev: true + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7383,6 +6089,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /fp-ts/2.12.3: + resolution: {integrity: sha512-8m0XvW8kZbfnJOA4NvSVXu95mLbPf4LQGwQyqVukIYS4KzSNJiyKSmuZUmbVHteUi6MGkAJGPb0goPZqI+Tsqg==} + dev: true + /fragment-cache/0.2.1: resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} @@ -7436,14 +6146,6 @@ packages: universalify: 2.0.0 dev: true - /fs-mkdirp-stream/1.0.0: - resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} - engines: {node: '>= 0.10'} - dependencies: - graceful-fs: 4.2.10 - through2: 2.0.5 - dev: true - /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -7494,20 +6196,9 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-pkg-repo/4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.1.0 - through2: 2.0.5 - yargs: 16.2.0 - dev: true - - /get-port/5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} + /get-port/3.2.0: + resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} + engines: {node: '>=4'} dev: true /get-stdin/5.0.1: @@ -7577,59 +6268,6 @@ packages: through2: 4.0.2 dev: true - /git-remote-origin-url/2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} - dependencies: - gitconfiglocal: 1.0.0 - pify: 2.3.0 - dev: true - - /git-semver-tags/4.1.1: - resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - meow: 8.1.2 - semver: 6.3.0 - dev: true - - /git-up/4.0.5: - resolution: {integrity: sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==} - dependencies: - is-ssh: 1.4.0 - parse-url: 6.0.5 - dev: true - - /git-url-parse/11.6.0: - resolution: {integrity: sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==} - dependencies: - git-up: 4.0.5 - dev: true - - /gitconfiglocal/1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - dependencies: - ini: 1.3.8 - dev: true - - /github-slugger/1.2.0: - resolution: {integrity: sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q==} - dependencies: - emoji-regex: 6.1.1 - dev: true - - /github-slugger/1.4.0: - resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} - dev: true - - /glob-parent/3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - dev: true - /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -7644,22 +6282,6 @@ packages: is-glob: 4.0.3 dev: true - /glob-stream/6.1.0: - resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} - engines: {node: '>= 0.10'} - dependencies: - extend: 3.0.2 - glob: 7.2.3 - glob-parent: 3.1.0 - is-negated-glob: 1.0.0 - ordered-read-streams: 1.0.1 - pumpify: 1.5.1 - readable-stream: 2.3.7 - remove-trailing-separator: 1.1.0 - to-absolute-glob: 2.0.2 - unique-stream: 2.3.1 - dev: true - /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -7685,10 +6307,6 @@ packages: ini: 2.0.0 dev: true - /globals-docs/2.4.1: - resolution: {integrity: sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==} - dev: true - /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -7757,7 +6375,21 @@ packages: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 - dev: false + + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + + /growly/1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + dev: true + optional: true /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} @@ -7769,7 +6401,21 @@ packages: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.1 + uglify-js: 3.17.3 + dev: false + + /happy-dom/6.0.4: + resolution: {integrity: sha512-b+ID23Ms0BY08UNLymsOMG7EI2jSlwEt4cbJs938GZfeNAg+fqgkSO3TokQMgSOFoHznpjWmpVjBUL5boJ9PWw==} + dependencies: + css.escape: 1.5.1 + he: 1.2.0 + node-fetch: 2.6.7 + sync-request: 6.1.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + transitivePeerDependencies: + - encoding dev: true /har-schema/2.0.0: @@ -7812,12 +6458,6 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors/1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.1.3 - dev: true - /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -7861,35 +6501,6 @@ packages: function-bind: 1.1.1 dev: true - /hast-util-is-element/1.1.0: - resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} - dev: true - - /hast-util-sanitize/1.3.1: - resolution: {integrity: sha512-AIeKHuHx0Wk45nSkGVa2/ujQYTksnDl8gmmKo/mwQi7ag7IBZ8cM3nJ2G86SajbjGP/HRpud6kMkPtcM2i0Tlw==} - dependencies: - xtend: 4.0.2 - dev: true - - /hast-util-to-html/4.0.1: - resolution: {integrity: sha512-2emzwyf0xEsc4TBIPmDJmBttIw8R4SXAJiJZoiRR/s47ODYWgOqNoDbf2SJAbMbfNdFWMiCSOrI3OVnX6Qq2Mg==} - dependencies: - ccount: 1.1.0 - comma-separated-tokens: 1.0.8 - hast-util-is-element: 1.1.0 - hast-util-whitespace: 1.0.4 - html-void-elements: 1.0.5 - property-information: 4.2.0 - space-separated-tokens: 1.1.5 - stringify-entities: 1.3.2 - unist-util-is: 2.1.3 - xtend: 4.0.2 - dev: true - - /hast-util-whitespace/1.0.4: - resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} - dev: true - /he/1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -7899,10 +6510,6 @@ packages: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false - /highlight.js/10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true - /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -7914,6 +6521,13 @@ packages: lru-cache: 6.0.0 dev: true + /html-encoding-sniffer/2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + dependencies: + whatwg-encoding: 1.0.5 + dev: true + /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -7925,10 +6539,6 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /html-void-elements/1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - dev: true - /htmlparser2/8.0.1: resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} dependencies: @@ -7938,6 +6548,16 @@ packages: entities: 4.4.0 dev: true + /http-basic/8.1.3: + resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} + engines: {node: '>=6.0.0'} + dependencies: + caseless: 0.12.0 + concat-stream: 1.6.2 + http-response-object: 3.0.2 + parse-cache-control: 1.0.1 + dev: true + /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -7953,10 +6573,6 @@ packages: toidentifier: 1.0.1 dev: true - /http-parser-js/0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: true - /http-proxy-agent/4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} @@ -7979,6 +6595,12 @@ packages: - supports-color dev: true + /http-response-object/3.0.2: + resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} + dependencies: + '@types/node': 10.17.60 + dev: true + /http-signature/1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -8098,6 +6720,12 @@ packages: engines: {node: '>=8'} dev: true + /inferred-types/0.22.0: + resolution: {integrity: sha512-7JF/huiuS1ANuQisfRigytz4IdYbmQVXOW+Jt6IL4k3TQxsCxAz72rWccBKTomnmGzBRcd3ki8gyrESYY/2bYw==} + dependencies: + common-types: 1.31.1 + dev: true + /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -8121,7 +6749,6 @@ packages: /internmap/2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - dev: false /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} @@ -8136,14 +6763,6 @@ packages: engines: {node: '>= 0.10'} dev: true - /is-absolute/1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - dependencies: - is-relative: 1.0.0 - is-windows: 1.0.2 - dev: true - /is-accessor-descriptor/0.1.6: resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} engines: {node: '>=0.10.0'} @@ -8162,11 +6781,6 @@ packages: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} dev: true - /is-alphanumeric/1.0.0: - resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==} - engines: {node: '>=0.10.0'} - dev: true - /is-alphanumerical/1.0.4: resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} dependencies: @@ -8178,13 +6792,6 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - /is-buffer/1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: true @@ -8194,6 +6801,13 @@ packages: engines: {node: '>=4'} dev: true + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -8243,6 +6857,13 @@ packages: kind-of: 6.0.3 dev: true + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + optional: true + /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -8275,13 +6896,6 @@ packages: engines: {node: '>=6'} dev: true - /is-glob/3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -8297,13 +6911,8 @@ packages: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} dependencies: - global-dirs: 3.0.0 - is-path-inside: 3.0.3 - dev: true - - /is-negated-glob/1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} - engines: {node: '>=0.10.0'} + global-dirs: 3.0.0 + is-path-inside: 3.0.3 dev: true /is-number/3.0.0: @@ -8349,19 +6958,6 @@ packages: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-relative/1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - dependencies: - is-unc-path: 1.0.0 - dev: true - - /is-ssh/1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} - dependencies: - protocols: 2.0.1 - dev: true - /is-stream/1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -8388,39 +6984,23 @@ packages: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true - /is-unc-path/1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - dependencies: - unc-path-regex: 0.1.2 - dev: true - /is-unicode-supported/0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-utf8/0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: true - - /is-valid-glob/1.0.0: - resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} - engines: {node: '>=0.10.0'} - dev: true - - /is-whitespace-character/1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - dev: true - /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} dev: true - /is-word-character/1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 dev: true + optional: true /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -8455,6 +7035,18 @@ packages: engines: {node: '>=8'} dev: true + /istanbul-lib-instrument/4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.12.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-instrument/5.2.0: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} @@ -8504,6 +7096,15 @@ packages: plist: 3.0.6 dev: true + /jest-changed-files/26.6.2: + resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + execa: 4.1.0 + throat: 5.0.0 + dev: true + /jest-changed-files/29.0.0: resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8539,6 +7140,32 @@ packages: - supports-color dev: true + /jest-cli/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/core': 26.6.3_ts-node@10.9.1 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + is-ci: 2.0.0 + jest-config: 26.6.3_ts-node@10.9.1 + jest-util: 26.6.2 + jest-validate: 26.6.2 + prompts: 2.4.2 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-cli/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8567,6 +7194,41 @@ packages: - ts-node dev: true + /jest-config/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} + engines: {node: '>= 10.14.2'} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + '@babel/core': 7.12.3 + '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 + '@jest/types': 26.6.2 + babel-jest: 26.6.3_@babel+core@7.12.3 + chalk: 4.1.2 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-environment-jsdom: 26.6.2 + jest-environment-node: 26.6.2 + jest-get-type: 26.3.0 + jest-jasmine2: 26.6.3_ts-node@10.9.1 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + micromatch: 4.0.5 + pretty-format: 26.6.2 + ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + /jest-config/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8607,6 +7269,16 @@ packages: - supports-color dev: true + /jest-diff/26.6.2: + resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.2 + diff-sequences: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-diff/29.1.0: resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8617,6 +7289,13 @@ packages: pretty-format: 29.1.0 dev: true + /jest-docblock/26.0.0: + resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} + engines: {node: '>= 10.14.2'} + dependencies: + detect-newline: 3.1.0 + dev: true + /jest-docblock/29.0.0: resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8624,6 +7303,17 @@ packages: detect-newline: 3.1.0 dev: true + /jest-each/26.6.2: + resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + jest-get-type: 26.3.0 + jest-util: 26.6.2 + pretty-format: 26.6.2 + dev: true + /jest-each/29.1.0: resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8635,6 +7325,36 @@ packages: pretty-format: 29.1.0 dev: true + /jest-environment-jsdom/26.6.2: + resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node/26.6.2: + resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + dev: true + /jest-environment-node/29.1.1: resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8647,11 +7367,39 @@ packages: jest-util: 29.1.0 dev: true + /jest-get-type/26.3.0: + resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} + engines: {node: '>= 10.14.2'} + dev: true + /jest-get-type/29.0.0: resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-haste-map/26.6.2: + resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.8.1 + anymatch: 3.1.2 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 26.0.0 + jest-serializer: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + micromatch: 4.0.5 + sane: 4.1.0 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + transitivePeerDependencies: + - supports-color + dev: true + /jest-haste-map/29.1.0: resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8671,7 +7419,7 @@ packages: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0: + /jest-image-snapshot/4.2.0_jest@26.6.3: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8680,6 +7428,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 + jest: 26.6.3_ts-node@10.9.1 lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8706,6 +7455,44 @@ packages: ssim.js: 3.5.0 dev: true + /jest-jasmine2/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/traverse': 7.19.1 + '@jest/environment': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + co: 4.6.0 + expect: 26.6.2 + is-generator-fn: 2.1.0 + jest-each: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + pretty-format: 26.6.2 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + + /jest-leak-detector/26.6.2: + resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} + engines: {node: '>= 10.14.2'} + dependencies: + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-leak-detector/29.1.0: resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8714,6 +7501,16 @@ packages: pretty-format: 29.1.0 dev: true + /jest-matcher-utils/26.6.2: + resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.2 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-matcher-utils/29.1.0: resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8724,6 +7521,21 @@ packages: pretty-format: 29.1.0 dev: true + /jest-message-util/26.6.2: + resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 26.6.2 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 26.6.2 + slash: 3.0.0 + stack-utils: 2.0.5 + dev: true + /jest-message-util/29.1.0: resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8739,6 +7551,14 @@ packages: stack-utils: 2.0.5 dev: true + /jest-mock/26.6.2: + resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + dev: true + /jest-mock/29.1.1: resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8748,6 +7568,18 @@ packages: jest-util: 29.1.0 dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 26.6.2 + dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} @@ -8760,11 +7592,27 @@ packages: jest-resolve: 29.1.0 dev: true + /jest-regex-util/26.0.0: + resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} + engines: {node: '>= 10.14.2'} + dev: true + /jest-regex-util/29.0.0: resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-resolve-dependencies/26.6.3: + resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + jest-regex-util: 26.0.0 + jest-snapshot: 26.6.2 + transitivePeerDependencies: + - supports-color + dev: true + /jest-resolve-dependencies/29.1.1: resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8775,6 +7623,20 @@ packages: - supports-color dev: true + /jest-resolve/26.6.2: + resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 + jest-util: 26.6.2 + read-pkg-up: 7.0.1 + resolve: 1.22.1 + slash: 3.0.0 + dev: true + /jest-resolve/29.1.0: resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8790,6 +7652,38 @@ packages: slash: 3.0.0 dev: true + /jest-runner/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + emittery: 0.7.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-config: 26.6.3_ts-node@10.9.1 + jest-docblock: 26.0.0 + jest-haste-map: 26.6.2 + jest-leak-detector: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-util: 26.6.2 + jest-worker: 26.6.2 + source-map-support: 0.5.13 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-runner/29.1.1: resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8819,6 +7713,46 @@ packages: - supports-color dev: true + /jest-runtime/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/globals': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/yargs': 15.0.14 + chalk: 4.1.2 + cjs-module-lexer: 0.6.0 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-config: 26.6.3_ts-node@10.9.1 + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + slash: 3.0.0 + strip-bom: 4.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-runtime/29.1.1: resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8849,6 +7783,38 @@ packages: - supports-color dev: true + /jest-serializer/26.6.2: + resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/node': 18.8.1 + graceful-fs: 4.2.10 + dev: true + + /jest-snapshot/26.6.2: + resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/types': 7.19.0 + '@jest/types': 26.6.2 + '@types/babel__traverse': 7.18.2 + '@types/prettier': 2.7.1 + chalk: 4.1.2 + expect: 26.6.2 + graceful-fs: 4.2.10 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + jest-haste-map: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + natural-compare: 1.4.0 + pretty-format: 26.6.2 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color + dev: true + /jest-snapshot/29.1.0: resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8881,6 +7847,18 @@ packages: - supports-color dev: true + /jest-util/26.6.2: + resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + is-ci: 2.0.0 + micromatch: 4.0.5 + dev: true + /jest-util/29.1.0: resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8893,6 +7871,18 @@ packages: picomatch: 2.3.1 dev: true + /jest-validate/26.6.2: + resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 26.3.0 + leven: 3.1.0 + pretty-format: 26.6.2 + dev: true + /jest-validate/29.1.0: resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8905,6 +7895,19 @@ packages: pretty-format: 29.1.0 dev: true + /jest-watcher/26.6.2: + resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest-util: 26.6.2 + string-length: 4.0.2 + dev: true + /jest-watcher/29.1.0: resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8919,6 +7922,15 @@ packages: string-length: 4.0.2 dev: true + /jest-worker/26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.8.1 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + /jest-worker/29.1.0: resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8928,6 +7940,22 @@ packages: supports-color: 8.1.1 dev: true + /jest/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/core': 26.6.3_ts-node@10.9.1 + import-local: 3.1.0 + jest-cli: 26.6.3_ts-node@10.9.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8962,12 +7990,12 @@ packages: engines: {node: '>=0.4'} hasBin: true dependencies: - JSONSelect: 0.4.0 cjson: 0.3.0 ebnf-parser: 0.1.10 escodegen: 1.3.3 esprima: 1.1.1 jison-lex: 0.3.4 + JSONSelect: 0.4.0 lex-parser: 0.1.4 nomnom: 1.5.2 dev: true @@ -9022,6 +8050,48 @@ packages: engines: {node: '>=12.0.0'} dev: true + /jsdom/16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.4.1 + domexception: 2.0.1 + escodegen: 2.0.0 + form-data: 3.0.1 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.4.6 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsdom/20.0.0: resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} engines: {node: '>=14'} @@ -9105,11 +8175,6 @@ packages: - utf-8-validate dev: true - /jsesc/0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -9120,10 +8185,6 @@ packages: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true - /json-parse-better-errors/1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true @@ -9156,7 +8217,6 @@ packages: /jsonc-parser/3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true /jsonfile/4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -9214,7 +8274,6 @@ packages: /khroma/2.0.0: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} - dev: false /kind-of/3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -9250,15 +8309,6 @@ packages: engines: {node: '>=6'} dev: true - /konan/2.1.1: - resolution: {integrity: sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==} - dependencies: - '@babel/parser': 7.19.1 - '@babel/traverse': 7.19.1 - transitivePeerDependencies: - - supports-color - dev: true - /ky/0.28.7: resolution: {integrity: sha512-a23i6qSr/ep15vdtw/zyEQIDLoUaKDg9Jf04CYl/0ns/wXNYna26zJpI+MeIFaPeDvkrjLPrKtKOiiI3IE53RQ==} engines: {node: '>=12'} @@ -9277,25 +8327,11 @@ packages: engines: {node: '> 0.8'} dev: true - /lazystream/1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - dependencies: - readable-stream: 2.3.7 - dev: true - /lcov-parse/1.0.0: resolution: {integrity: sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==} hasBin: true dev: true - /lead/1.0.0: - resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} - engines: {node: '>= 0.10'} - dependencies: - flush-write-stream: 1.1.1 - dev: true - /leven/3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -9398,33 +8434,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /livereload-js/2.4.0: - resolution: {integrity: sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==} - dev: true - - /load-json-file/4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.10 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} dev: true - /locate-path/2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path/3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -9447,14 +8461,6 @@ packages: p-locate: 5.0.0 dev: true - /lodash.debounce/4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true - - /lodash.ismatch/4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - dev: true - /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -9498,10 +8504,6 @@ packages: engines: {node: '>= 0.6.0'} dev: true - /longest-streak/2.0.4: - resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} - dev: true - /longest-streak/3.0.1: resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} dev: true @@ -9530,6 +8532,10 @@ packages: yallist: 4.0.0 dev: true + /lunr/2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + dev: false + /magic-string/0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -9579,10 +8585,6 @@ packages: object-visit: 1.0.1 dev: true - /markdown-escapes/1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - dev: true - /markdown-it/13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} hasBin: true @@ -9594,21 +8596,11 @@ packages: uc.micro: 1.0.6 dev: true - /markdown-table/1.1.3: - resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} - dev: true - - /mdast-util-compact/1.0.4: - resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==} - dependencies: - unist-util-visit: 1.4.1 - dev: true - - /mdast-util-definitions/1.2.5: - resolution: {integrity: sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==} - dependencies: - unist-util-visit: 1.4.1 - dev: true + /marked/4.1.1: + resolution: {integrity: sha512-0cNMnTcUJPxbA6uWmCmjWz4NJRe/0Xfk2NhXCUHjew9qJzFN20krFnsUe7QynwqOwa5m1fZ4UDg0ycKFVC0ccw==} + engines: {node: '>= 12'} + hasBin: true + dev: false /mdast-util-from-markdown/0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} @@ -9641,28 +8633,6 @@ packages: - supports-color dev: true - /mdast-util-inject/1.1.0: - resolution: {integrity: sha512-CcJ0mHa36QYumDKiZ2OIR+ClhfOM7zIzN+Wfy8tRZ1hpH9DKLCS+Mh4DyK5bCxzE9uxMWcbIpeNFWsg1zrj/2g==} - dependencies: - mdast-util-to-string: 1.1.0 - dev: true - - /mdast-util-to-hast/3.0.4: - resolution: {integrity: sha512-/eIbly2YmyVgpJNo+bFLLMCI1XgolO/Ffowhf+pHDq3X4/V6FntC9sGQCDLM147eTS+uSXv5dRzJyFn+o0tazA==} - dependencies: - collapse-white-space: 1.0.6 - detab: 2.0.4 - mdast-util-definitions: 1.2.5 - mdurl: 1.0.1 - trim: 0.0.1 - trim-lines: 1.1.3 - unist-builder: 1.0.4 - unist-util-generated: 1.1.6 - unist-util-position: 3.1.0 - unist-util-visit: 1.4.1 - xtend: 4.0.2 - dev: true - /mdast-util-to-markdown/1.3.0: resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} dependencies: @@ -9675,10 +8645,6 @@ packages: zwitch: 2.0.2 dev: true - /mdast-util-to-string/1.1.0: - resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} - dev: true - /mdast-util-to-string/2.0.0: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} dev: true @@ -9687,15 +8653,6 @@ packages: resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} dev: true - /mdast-util-toc/3.1.0: - resolution: {integrity: sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==} - dependencies: - github-slugger: 1.4.0 - mdast-util-to-string: 1.1.0 - unist-util-is: 2.1.3 - unist-util-visit: 1.4.1 - dev: true - /mdn-data/2.0.6: resolution: {integrity: sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==} dev: true @@ -9739,6 +8696,20 @@ packages: engines: {node: '>= 8'} dev: true + /mermaid/9.1.7: + resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + dagre: 0.8.5 + dagre-d3: 0.6.4 + dompurify: 2.4.0 + graphlib: 2.1.8 + khroma: 2.0.0 + moment-mini: 2.24.0 + stylis: 4.1.2 + dev: true + /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -9976,12 +8947,6 @@ packages: hasBin: true dev: true - /mime/2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - dev: true - /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -10013,6 +8978,13 @@ packages: brace-expansion: 1.1.11 dev: true + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: false + /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -10024,7 +8996,6 @@ packages: /minimist/1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - dev: true /mixin-deep/1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} @@ -10041,34 +9012,8 @@ packages: minimist: 1.2.6 dev: true - /modify-values/1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} - dev: true - - /module-deps-sortable/5.0.3: - resolution: {integrity: sha512-eiyIZj/A0dj1o4ywXWqicazUL3l0HP3TydUR6xF0X3xh3LGBMLqW8a9aFe6MuNH4mxNMk53QKBHM6LOPR8kSgw==} - engines: {node: '>= 0.6'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - browser-resolve: 1.11.3 - cached-path-relative: 1.1.0 - concat-stream: 1.5.2 - defined: 1.0.0 - detective: 5.2.1 - duplexer2: 0.1.4 - inherits: 2.0.4 - konan: 2.1.1 - readable-stream: 2.3.7 - resolve: 1.22.1 - standard-version: 9.5.0 - stream-combiner2: 1.1.1 - subarg: 1.0.0 - through2: 2.0.5 - xtend: 4.0.2 - transitivePeerDependencies: - - supports-color + /moment-mini/2.24.0: + resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==} dev: true /moment-mini/2.29.4: @@ -10126,6 +9071,25 @@ packages: - supports-color dev: true + /native-dash/1.23.2_e3y3tk5wocdgktiwrgnxpnd3nq: + resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} + dependencies: + brilliant-errors: 0.6.0_e3y3tk5wocdgktiwrgnxpnd3nq + inferred-types: 0.22.0 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10137,7 +9101,7 @@ packages: /neo-async/2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true + dev: false /netmask/2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} @@ -10164,9 +9128,18 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-releases/2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + /node-notifier/8.0.2: + resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} + requiresBuild: true + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.3.7 + shellwords: 0.1.1 + uuid: 8.3.2 + which: 2.0.2 dev: true + optional: true /nomnom/1.5.2: resolution: {integrity: sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==} @@ -10216,13 +9189,6 @@ packages: engines: {node: '>=10'} dev: true - /now-and-later/2.0.1: - resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} - engines: {node: '>= 0.10'} - dependencies: - once: 1.4.0 - dev: true - /npm-run-path/2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -10252,11 +9218,6 @@ packages: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true - /object-copy/0.1.0: resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} engines: {node: '>=0.10.0'} @@ -10270,11 +9231,6 @@ packages: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - /object-visit/1.0.1: resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} engines: {node: '>=0.10.0'} @@ -10282,16 +9238,6 @@ packages: isobject: 3.0.1 dev: true - /object.assign/4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.pick/1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} @@ -10350,12 +9296,6 @@ packages: word-wrap: 1.2.3 dev: true - /ordered-read-streams/1.0.1: - resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} - dependencies: - readable-stream: 2.3.7 - dev: true - /ospath/1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} dev: true @@ -10365,6 +9305,11 @@ packages: engines: {node: '>=8'} dev: true + /p-each-series/2.2.0: + resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} + engines: {node: '>=8'} + dev: true + /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -10375,13 +9320,6 @@ packages: engines: {node: '>=8.0.0'} dev: true - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - /p-limit/2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -10396,13 +9334,6 @@ packages: yocto-queue: 0.1.0 dev: true - /p-locate/2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate/3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} @@ -10431,11 +9362,6 @@ packages: aggregate-error: 3.1.0 dev: true - /p-try/1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true - /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -10478,15 +9404,8 @@ packages: callsites: 3.1.0 dev: true - /parse-entities/1.2.2: - resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 + /parse-cache-control/1.0.1: + resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} dev: true /parse-entities/2.0.0: @@ -10500,23 +9419,6 @@ packages: is-hexadecimal: 1.0.4 dev: true - /parse-filepath/1.0.2: - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} - engines: {node: '>=0.8'} - dependencies: - is-absolute: 1.0.0 - map-cache: 0.2.2 - path-root: 0.1.1 - dev: true - - /parse-json/4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - /parse-json/5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -10527,24 +9429,6 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse-path/4.0.4: - resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==} - dependencies: - is-ssh: 1.4.0 - protocols: 1.4.8 - qs: 6.11.0 - query-string: 6.14.1 - dev: true - - /parse-url/6.0.5: - resolution: {integrity: sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==} - dependencies: - is-ssh: 1.4.0 - normalize-url: 6.1.0 - parse-path: 4.0.4 - protocols: 1.4.8 - dev: true - /parse5/6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true @@ -10569,10 +9453,6 @@ packages: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true - /path-dirname/1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - dev: true - /path-exists/3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -10607,29 +9487,10 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-root-regex/0.1.2: - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} - engines: {node: '>=0.10.0'} - dev: true - - /path-root/0.1.1: - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} - engines: {node: '>=0.10.0'} - dependencies: - path-root-regex: 0.1.2 - dev: true - /path-to-regexp/0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true - /path-type/3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -10673,16 +9534,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /pify/3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /pify/5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - dev: true - /pirates/4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -10794,6 +9645,16 @@ packages: engines: {node: '>=6'} dev: true + /pretty-format/26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 17.0.2 + dev: true + /pretty-format/29.1.0: resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10803,14 +9664,16 @@ packages: react-is: 18.2.0 dev: true - /process-nextick-args/1.0.7: - resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} - dev: true - /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true + /promise/8.2.0: + resolution: {integrity: sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==} + dependencies: + asap: 2.0.6 + dev: true + /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -10819,20 +9682,6 @@ packages: sisteransi: 1.0.5 dev: true - /property-information/4.2.0: - resolution: {integrity: sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==} - dependencies: - xtend: 4.0.2 - dev: true - - /protocols/1.4.8: - resolution: {integrity: sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==} - dev: true - - /protocols/2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - dev: true - /proxy-addr/2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -10877,13 +9726,6 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /pump/2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true - /pump/3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -10891,14 +9733,6 @@ packages: once: 1.4.0 dev: true - /pumpify/1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - dev: true - /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -10928,16 +9762,6 @@ packages: engines: {node: '>=0.6'} dev: true - /query-string/6.14.1: - resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} - engines: {node: '>=6'} - dependencies: - decode-uri-component: 0.2.0 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - /querystringify/2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true @@ -10961,14 +9785,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /raw-body/1.1.7: - resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==} - engines: {node: '>= 0.8.0'} - dependencies: - bytes: 1.0.0 - string_decoder: 0.10.31 - dev: true - /raw-body/2.5.1: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} engines: {node: '>= 0.8'} @@ -10979,24 +9795,12 @@ packages: unpipe: 1.0.0 dev: true - /react-is/18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true - - /read-pkg-up/3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - read-pkg: 3.0.0 + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true - /read-pkg-up/4.0.0: - resolution: {integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==} - engines: {node: '>=6'} - dependencies: - find-up: 3.0.0 - read-pkg: 3.0.0 + /react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true /read-pkg-up/7.0.1: @@ -11008,15 +9812,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg/3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - /read-pkg/5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} @@ -11036,29 +9831,6 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream/2.0.6: - resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - string_decoder: 0.10.31 - util-deprecate: 1.0.2 - dev: true - - /readable-stream/2.1.5: - resolution: {integrity: sha512-NkXT2AER7VKXeXtJNSaWLpWIhmtSE3K2PguaLEeWr4JILghcIKqoLt1A3wHrnpDC5+ekf8gfk1GKWkFXe4odMw==} - dependencies: - buffer-shims: 1.0.0 - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - string_decoder: 0.10.31 - util-deprecate: 1.0.2 - dev: true - /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: @@ -11080,13 +9852,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -11095,27 +9860,6 @@ packages: strip-indent: 3.0.0 dev: true - /regenerate-unicode-properties/10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: true - - /regenerate/1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: true - - /regenerator-runtime/0.13.9: - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - dev: true - - /regenerator-transform/0.15.0: - resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} - dependencies: - '@babel/runtime': 7.19.0 - dev: true - /regex-not/1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} @@ -11129,38 +9873,6 @@ packages: engines: {node: '>=8'} dev: true - /regexpu-core/5.2.1: - resolution: {integrity: sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.0 - regjsgen: 0.7.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.0.0 - dev: true - - /regjsgen/0.7.1: - resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} - dev: true - - /regjsparser/0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: true - - /remark-html/8.0.0: - resolution: {integrity: sha512-3V2391GL3hxKhrkzYOyfPpxJ6taIKLCfuLVqumeWQOk3H9nTtSQ8St8kMYkBVIEAquXN1chT83qJ/2lAW+dpEg==} - dependencies: - hast-util-sanitize: 1.3.1 - hast-util-to-html: 4.0.1 - mdast-util-to-hast: 3.0.4 - xtend: 4.0.2 - dev: true - /remark-parse/10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: @@ -11171,40 +9883,6 @@ packages: - supports-color dev: true - /remark-parse/5.0.0: - resolution: {integrity: sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==} - dependencies: - collapse-white-space: 1.0.6 - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - is-word-character: 1.0.4 - markdown-escapes: 1.0.4 - parse-entities: 1.2.2 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - trim: 0.0.1 - trim-trailing-lines: 1.1.4 - unherit: 1.1.3 - unist-util-remove-position: 1.1.4 - vfile-location: 2.0.6 - xtend: 4.0.2 - dev: true - - /remark-reference-links/4.0.4: - resolution: {integrity: sha512-+2X8hwSQqxG4tvjYZNrTcEC+bXp8shQvwRGG6J/rnFTvBoU4G0BBviZoqKGZizLh/DG+0gSYhiDDWCqyxXW1iQ==} - dependencies: - unist-util-visit: 1.4.1 - dev: true - - /remark-slug/5.1.2: - resolution: {integrity: sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A==} - dependencies: - github-slugger: 1.2.0 - mdast-util-to-string: 1.1.0 - unist-util-visit: 1.4.1 - dev: true - /remark-stringify/10.0.2: resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==} dependencies: @@ -11213,32 +9891,6 @@ packages: unified: 10.1.2 dev: true - /remark-stringify/5.0.0: - resolution: {integrity: sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==} - dependencies: - ccount: 1.1.0 - is-alphanumeric: 1.0.0 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - longest-streak: 2.0.4 - markdown-escapes: 1.0.4 - markdown-table: 1.1.3 - mdast-util-compact: 1.0.4 - parse-entities: 1.2.2 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - stringify-entities: 1.3.2 - unherit: 1.1.3 - xtend: 4.0.2 - dev: true - - /remark-toc/5.1.1: - resolution: {integrity: sha512-vCPW4YOsm2CfyuScdktM9KDnJXVHJsd/ZeRtst+dnBU3B3KKvt8bc+bs5syJjyptAHfqo7H+5Uhz+2blWBfwow==} - dependencies: - mdast-util-toc: 3.1.0 - remark-slug: 5.1.2 - dev: true - /remark/14.0.2: resolution: {integrity: sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==} dependencies: @@ -11250,31 +9902,6 @@ packages: - supports-color dev: true - /remark/9.0.0: - resolution: {integrity: sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==} - dependencies: - remark-parse: 5.0.0 - remark-stringify: 5.0.0 - unified: 6.2.0 - dev: true - - /remove-bom-buffer/3.0.0: - resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - is-utf8: 0.2.1 - dev: true - - /remove-bom-stream/1.2.0: - resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} - engines: {node: '>= 0.10'} - dependencies: - remove-bom-buffer: 3.0.0 - safe-buffer: 5.2.1 - through2: 2.0.5 - dev: true - /remove-trailing-separator/1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} dev: true @@ -11289,16 +9916,6 @@ packages: engines: {node: '>=0.10'} dev: true - /replace-ext/1.0.0: - resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} - engines: {node: '>= 0.10'} - dev: true - - /replace-ext/1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - dev: true - /request-progress/3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} dependencies: @@ -11378,13 +9995,6 @@ packages: global-dirs: 0.1.1 dev: true - /resolve-options/1.1.0: - resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} - engines: {node: '>= 0.10'} - dependencies: - value-or-function: 3.0.0 - dev: true - /resolve-url/0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -11395,10 +10005,6 @@ packages: engines: {node: '>=10'} dev: true - /resolve/1.1.7: - resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} - dev: true - /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -11452,7 +10058,6 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} - dev: false /rollup/2.78.1: resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} @@ -11468,7 +10073,11 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: false + + /rsvp/4.8.5: + resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} + engines: {node: 6.* || >= 7.*} + dev: true /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -11478,7 +10087,6 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - dev: false /rxjs/7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} @@ -11501,10 +10109,6 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-json-parse/1.0.1: - resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==} - dev: true - /safe-regex/1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: @@ -11514,6 +10118,25 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + /sane/4.1.0: + resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} + engines: {node: 6.* || 8.* || >= 10.*} + deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added + hasBin: true + dependencies: + '@cnakazawa/watch': 1.0.4 + anymatch: 2.0.0 + capture-exit: 2.0.0 + exec-sh: 0.3.6 + execa: 1.0.0 + fb-watchman: 2.0.2 + micromatch: 3.1.10 + minimist: 1.2.6 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + dev: true + /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -11528,6 +10151,14 @@ packages: xmlchars: 2.2.0 dev: true + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -11625,13 +10256,17 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true + /shellwords/0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true + optional: true + /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: jsonc-parser: 3.2.0 vscode-oniguruma: 1.6.2 vscode-textmate: 6.0.0 - dev: true /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -11795,16 +10430,16 @@ packages: /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} dev: true /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true - /space-separated-tokens/1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: true - /spawn-command/0.0.2-1: resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} dev: true @@ -11831,11 +10466,6 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true - /split-on-first/1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - dev: true - /split-string/3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -11849,12 +10479,6 @@ packages: through: 2.3.8 dev: true - /split/1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - dependencies: - through: 2.3.8 - dev: true - /split2/3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -11892,27 +10516,6 @@ packages: escape-string-regexp: 2.0.0 dev: true - /standard-version/9.5.0: - resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} - engines: {node: '>=10'} - hasBin: true - dependencies: - chalk: 2.4.2 - conventional-changelog: 3.1.25 - conventional-changelog-config-spec: 2.1.0 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-recommended-bump: 6.1.0 - detect-indent: 6.1.0 - detect-newline: 3.1.0 - dotgitignore: 2.1.0 - figures: 3.2.0 - find-up: 5.0.0 - git-semver-tags: 4.1.1 - semver: 7.3.7 - stringify-package: 1.0.1 - yargs: 16.2.0 - dev: true - /start-server-and-test/1.14.0: resolution: {integrity: sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==} engines: {node: '>=6'} @@ -11929,10 +10532,6 @@ packages: - supports-color dev: true - /state-toggle/1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - dev: true - /static-extend/0.1.2: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} @@ -11946,35 +10545,12 @@ packages: engines: {node: '>= 0.8'} dev: true - /stream-array/1.1.2: - resolution: {integrity: sha512-1yWdVsMEm/btiMa2YyHiC3mDrtAqlmNNaDRylx2F7KHhm3C4tA6kSR2V9mpeMthv+ujvbl8Kamyh5xaHHdFvyQ==} - engines: {node: '>= 0.8'} - dependencies: - readable-stream: 2.1.5 - dev: true - /stream-combiner/0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} dependencies: duplexer: 0.1.2 dev: true - /stream-combiner2/1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} - dependencies: - duplexer2: 0.1.4 - readable-stream: 2.3.7 - dev: true - - /stream-shift/1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: true - - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: true - /string-argv/0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} @@ -11988,10 +10564,6 @@ packages: strip-ansi: 6.0.1 dev: true - /string-template/0.2.1: - resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} - dev: true - /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -12026,19 +10598,6 @@ packages: safe-buffer: 5.2.1 dev: true - /stringify-entities/1.3.2: - resolution: {integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==} - dependencies: - character-entities-html4: 1.1.4 - character-entities-legacy: 1.1.4 - is-alphanumerical: 1.0.4 - is-hexadecimal: 1.0.4 - dev: true - - /stringify-package/1.0.1: - resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==} - dev: true - /strip-ansi/3.0.1: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} @@ -12060,9 +10619,9 @@ packages: ansi-regex: 6.0.1 dev: true - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} dev: true /strip-bom/4.0.0: @@ -12092,11 +10651,6 @@ packages: min-indent: 1.0.1 dev: true - /strip-json-comments/2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true - /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -12110,13 +10664,6 @@ packages: /stylis/4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} - dev: false - - /subarg/1.0.0: - resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} - dependencies: - minimist: 1.2.6 - dev: true /supports-color/2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} @@ -12130,13 +10677,6 @@ packages: has-flag: 3.0.0 dev: true - /supports-color/6.1.0: - resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} - engines: {node: '>=6'} - dependencies: - has-flag: 3.0.0 - dev: true - /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -12168,6 +10708,21 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /sync-request/6.1.0: + resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} + engines: {node: '>=8.0.0'} + dependencies: + http-response-object: 3.0.2 + sync-rpc: 1.3.6 + then-request: 6.0.2 + dev: true + + /sync-rpc/1.3.6: + resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} + dependencies: + get-port: 3.2.0 + dev: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -12202,6 +10757,23 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /then-request/6.0.2: + resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} + engines: {node: '>=6.0.0'} + dependencies: + '@types/concat-stream': 1.6.1 + '@types/form-data': 0.0.33 + '@types/node': 8.10.66 + '@types/qs': 6.9.7 + caseless: 0.12.0 + concat-stream: 1.6.2 + form-data: 2.3.3 + http-basic: 8.1.3 + http-response-object: 3.0.2 + promise: 8.2.0 + qs: 6.11.0 + dev: true + /throat/5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true @@ -12210,22 +10782,8 @@ packages: resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} dev: true - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /through2-filter/3.0.0: - resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} - dependencies: - through2: 2.0.5 - xtend: 4.0.2 - dev: true - - /through2/2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - dependencies: - readable-stream: 2.3.7 - xtend: 4.0.2 + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true /through2/4.0.2: @@ -12234,23 +10792,15 @@ packages: readable-stream: 3.6.0 dev: true - /tiny-lr/1.1.1: - resolution: {integrity: sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==} - dependencies: - body: 5.1.0 - debug: 3.2.7 - faye-websocket: 0.10.0 - livereload-js: 2.4.0 - object-assign: 4.1.1 - qs: 6.11.0 - transitivePeerDependencies: - - supports-color - dev: true - /tinybench/2.1.5: resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} dev: true + /tinypool/0.2.4: + resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} + engines: {node: '>=14.0.0'} + dev: true + /tinypool/0.3.0: resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} @@ -12272,14 +10822,6 @@ packages: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true - /to-absolute-glob/2.0.2: - resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} - engines: {node: '>=0.10.0'} - dependencies: - is-absolute: 1.0.0 - is-negated-glob: 1.0.0 - dev: true - /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -12317,13 +10859,6 @@ packages: safe-regex: 1.1.0 dev: true - /to-through/2.0.0: - resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} - engines: {node: '>= 0.10'} - dependencies: - through2: 2.0.5 - dev: true - /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -12356,6 +10891,13 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true + /tr46/2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + dependencies: + punycode: 2.1.1 + dev: true + /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -12368,27 +10910,11 @@ packages: hasBin: true dev: true - /trim-lines/1.1.3: - resolution: {integrity: sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==} - dev: true - /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true - /trim-trailing-lines/1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} - dev: true - - /trim/0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - dev: true - - /trough/1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: true - /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true @@ -12455,7 +10981,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_typescript@4.8.3: + /ts-node/10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12474,6 +11000,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 + '@types/node': 18.8.1 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -12580,15 +11107,43 @@ packages: mime-types: 2.1.35 dev: true + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + /typedarray/0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true + /typedoc-plugin-markdown/3.13.6_typedoc@0.23.16: + resolution: {integrity: sha512-ISSc9v3BK7HkokxSBuJPttXox4tJ6hP0N9wfSIk0fmLN67+eqtAxbk97gs2nDiuha+RTO5eW9gdeAb+RPP0mgg==} + peerDependencies: + typedoc: '>=0.23.0' + dependencies: + handlebars: 4.7.7 + typedoc: 0.23.16_typescript@4.8.3 + dev: false + + /typedoc/0.23.16_typescript@4.8.3: + resolution: {integrity: sha512-rumYsCeNRXlyuZVzefD7050n7ptL2uudsCJg50dY0v/stKniqIlRpvx/F/6expC0/Q6Dbab+g/JpZuB7Sw90FA==} + engines: {node: '>= 14.14'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x + dependencies: + lunr: 2.3.9 + marked: 4.1.1 + minimatch: 5.1.0 + shiki: 0.11.1 + typescript: 4.8.3 + dev: false + /typescript/4.8.3: resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typescript/4.8.4: resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} @@ -12600,53 +11155,18 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true - /uglify-js/3.17.1: - resolution: {integrity: sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q==} + /uglify-js/3.17.3: + resolution: {integrity: sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true - dev: true + dev: false optional: true - /unc-path-regex/0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - dev: true - /underscore/1.1.7: resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==} dev: true - /unherit/1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} - dependencies: - inherits: 2.0.4 - xtend: 4.0.2 - dev: true - - /unicode-canonical-property-names-ecmascript/2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true - - /unicode-match-property-ecmascript/2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: true - - /unicode-match-property-value-ecmascript/2.0.0: - resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} - engines: {node: '>=4'} - dev: true - - /unicode-property-aliases-ecmascript/2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: true - /unified/10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: @@ -12659,18 +11179,6 @@ packages: vfile: 5.3.5 dev: true - /unified/6.2.0: - resolution: {integrity: sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==} - dependencies: - '@types/unist': 2.0.6 - bail: 1.0.5 - extend: 3.0.2 - is-plain-obj: 1.1.0 - trough: 1.0.5 - vfile: 2.3.0 - x-is-string: 0.1.0 - dev: true - /union-value/1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -12681,53 +11189,14 @@ packages: set-value: 2.0.1 dev: true - /unique-stream/2.3.1: - resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} - dependencies: - json-stable-stringify-without-jsonify: 1.0.1 - through2-filter: 3.0.0 - dev: true - - /unist-builder/1.0.4: - resolution: {integrity: sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==} - dependencies: - object-assign: 4.1.1 - dev: true - /unist-util-flatmap/1.0.0: resolution: {integrity: sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ==} dev: true - /unist-util-generated/1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - dev: true - - /unist-util-is/2.1.3: - resolution: {integrity: sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==} - dev: true - - /unist-util-is/3.0.0: - resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} - dev: true - /unist-util-is/5.1.1: resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} dev: true - /unist-util-position/3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} - dev: true - - /unist-util-remove-position/1.1.4: - resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} - dependencies: - unist-util-visit: 1.4.1 - dev: true - - /unist-util-stringify-position/1.1.2: - resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} - dev: true - /unist-util-stringify-position/2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: @@ -12740,12 +11209,6 @@ packages: '@types/unist': 2.0.6 dev: true - /unist-util-visit-parents/2.1.2: - resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} - dependencies: - unist-util-is: 3.0.0 - dev: true - /unist-util-visit-parents/5.1.1: resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} dependencies: @@ -12753,12 +11216,6 @@ packages: unist-util-is: 5.1.1 dev: true - /unist-util-visit/1.4.1: - resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} - dependencies: - unist-util-visit-parents: 2.1.2 - dev: true - /unist-util-visit/4.1.1: resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==} dependencies: @@ -12800,17 +11257,6 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db/1.0.9_browserslist@4.21.4: - resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -12874,6 +11320,15 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /v8-to-istanbul/7.1.2: + resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} + engines: {node: '>=10.10.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + source-map: 0.7.4 + dev: true + /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -12890,11 +11345,6 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /value-or-function/3.0.0: - resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} - engines: {node: '>= 0.10'} - dev: true - /vary/1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -12909,23 +11359,6 @@ packages: extsprintf: 1.3.0 dev: true - /vfile-location/2.0.6: - resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==} - dev: true - - /vfile-message/1.1.1: - resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} - dependencies: - unist-util-stringify-position: 1.1.2 - dev: true - - /vfile-message/2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 2.0.3 - dev: true - /vfile-message/3.1.2: resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} dependencies: @@ -12933,43 +11366,6 @@ packages: unist-util-stringify-position: 3.0.2 dev: true - /vfile-reporter/6.0.2: - resolution: {integrity: sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==} - dependencies: - repeat-string: 1.6.1 - string-width: 4.2.3 - supports-color: 6.1.0 - unist-util-stringify-position: 2.0.3 - vfile-sort: 2.2.2 - vfile-statistics: 1.1.4 - dev: true - - /vfile-sort/2.2.2: - resolution: {integrity: sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==} - dev: true - - /vfile-statistics/1.1.4: - resolution: {integrity: sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==} - dev: true - - /vfile/2.3.0: - resolution: {integrity: sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==} - dependencies: - is-buffer: 1.1.6 - replace-ext: 1.0.0 - unist-util-stringify-position: 1.1.2 - vfile-message: 1.1.1 - dev: true - - /vfile/4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - dev: true - /vfile/5.3.5: resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} dependencies: @@ -12979,52 +11375,33 @@ packages: vfile-message: 3.1.2 dev: true - /vinyl-fs/3.0.3: - resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} - engines: {node: '>= 0.10'} - dependencies: - fs-mkdirp-stream: 1.0.0 - glob-stream: 6.1.0 - graceful-fs: 4.2.10 - is-valid-glob: 1.0.0 - lazystream: 1.0.1 - lead: 1.0.0 - object.assign: 4.1.4 - pumpify: 1.5.1 - readable-stream: 2.3.7 - remove-bom-buffer: 3.0.0 - remove-bom-stream: 1.2.0 - resolve-options: 1.1.0 - through2: 2.0.5 - to-through: 2.0.0 - value-or-function: 3.0.0 - vinyl: 2.2.1 - vinyl-sourcemap: 1.1.0 - dev: true - - /vinyl-sourcemap/1.1.0: - resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} - engines: {node: '>= 0.10'} - dependencies: - append-buffer: 1.0.2 - convert-source-map: 1.8.0 - graceful-fs: 4.2.10 - normalize-path: 2.1.1 - now-and-later: 2.0.1 - remove-bom-buffer: 3.0.0 - vinyl: 2.2.1 - dev: true - - /vinyl/2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} + /vite-plugin-md/0.20.4_una3iegy3mpnzqsvaavhifvkiy: + resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} + peerDependencies: + '@rollup/pluginutils': ^4.2.1 + rollup: ^2.77.0 dependencies: - clone: 2.1.2 - clone-buffer: 1.0.0 - clone-stats: 1.0.0 - cloneable-readable: 1.1.3 - remove-trailing-separator: 1.1.0 - replace-ext: 1.0.1 + '@rollup/pluginutils': 4.2.1 + '@yankeeinlondon/builder-api': 0.4.1_66sppty6vuastmeigevztjtyii + '@yankeeinlondon/happy-wrapper': 2.6.0_e3y3tk5wocdgktiwrgnxpnd3nq + gray-matter: 4.0.3 + markdown-it: 13.0.1 + rollup: 2.79.1 + source-map-js: 1.0.2 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - fp-ts + - happy-dom + - inferred-types + - jsdom + - less + - sass + - stylus + - supports-color + - terser dev: true /vite/3.1.3: @@ -13081,17 +11458,19 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_vitepress@1.0.0-alpha.19: + /vitepress-plugin-mermaid/2.0.8_ml5vzxpqibyfsid5kdls3ch6aa: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 vite-plugin-md: ^0.20.4 vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: - vitepress: 1.0.0-alpha.19 + mermaid: 9.1.7 + vite-plugin-md: 0.20.4_una3iegy3mpnzqsvaavhifvkiy + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4: + /vitepress-plugin-search/1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y: resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -13100,15 +11479,16 @@ packages: vue: '3' dependencies: vite: 3.1.4 - vitepress: 1.0.0-alpha.19 + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vue: 3.2.40 dev: true - /vitepress/1.0.0-alpha.19: + /vitepress/1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-0FIUZB6JGXio7SELDDUkyQoMjmO/UAXqDXmznzOsBKsdZ3EHlyb6NaP/V/BMfN5S8+GV88ScbIL0jd/pDzkLBg==} hasBin: true dependencies: '@docsearch/css': 3.2.1 - '@docsearch/js': 3.2.1 + '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y '@vitejs/plugin-vue': 3.1.2_vite@3.1.4+vue@3.2.40 '@vue/devtools-api': 6.4.3 '@vueuse/core': 9.3.0_vue@3.2.40 @@ -13128,6 +11508,50 @@ packages: - terser dev: true + /vitest/0.19.1_e3y3tk5wocdgktiwrgnxpnd3nq: + resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.3 + '@types/chai-subset': 1.3.3 + '@types/node': 18.8.1 + chai: 4.3.6 + debug: 4.3.4 + happy-dom: 6.0.4 + jsdom: 20.0.0 + local-pkg: 0.4.2 + tinypool: 0.2.4 + tinyspy: 1.0.2 + vite: 3.1.4 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + - terser + dev: true + /vitest/0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna: resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} engines: {node: '>=v14.16.0'} @@ -13204,11 +11628,9 @@ packages: /vscode-oniguruma/1.6.2: resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} - dev: true /vscode-textmate/6.0.0: resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} - dev: true /vscode-uri/3.0.6: resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} @@ -13229,13 +11651,6 @@ packages: vue: 3.2.40 dev: true - /vue-template-compiler/2.7.10: - resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==} - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - dev: true - /vue/3.2.40: resolution: {integrity: sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==} dependencies: @@ -13252,6 +11667,13 @@ packages: browser-process-hrtime: 1.0.0 dev: true + /w3c-xmlserializer/2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + dependencies: + xml-name-validator: 3.0.0 + dev: true + /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -13298,23 +11720,25 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true + /webidl-conversions/5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + dev: true + + /webidl-conversions/6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + dev: true + /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} dev: true - /websocket-driver/0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + /whatwg-encoding/1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - dev: true - - /websocket-extensions/0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + iconv-lite: 0.4.24 dev: true /whatwg-encoding/2.0.0: @@ -13328,6 +11752,10 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true + /whatwg-mimetype/2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + dev: true + /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -13356,6 +11784,15 @@ packages: webidl-conversions: 3.0.1 dev: true + /whatwg-url/8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: true + /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true @@ -13382,7 +11819,7 @@ packages: /wordwrap/1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + dev: false /wrap-ansi/6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -13406,6 +11843,15 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + /write-file-atomic/4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -13466,8 +11912,8 @@ packages: optional: true dev: true - /x-is-string/0.1.0: - resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} + /xml-name-validator/3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} dev: true /xml-name-validator/4.0.0: @@ -13488,11 +11934,6 @@ packages: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: true - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true diff --git a/vdocs/.vitepress/theme/custom.css b/vdocs/.vitepress/theme/custom.css deleted file mode 100644 index a158d7e6d3..0000000000 --- a/vdocs/.vitepress/theme/custom.css +++ /dev/null @@ -1,6 +0,0 @@ -/* Use this file to add custom css */ - -/* TODO: Remove after vitepress-plugin-search next release */ -.search-item-icon { - font-family: none; -} diff --git a/vdocs/community/CHANGELOG.md b/vdocs/community/CHANGELOG.md deleted file mode 100644 index 7a75ad4e28..0000000000 --- a/vdocs/community/CHANGELOG.md +++ /dev/null @@ -1,1024 +0,0 @@ -# Change Log - -All changes are in descending order, beginning with the newest (latest) version. - -## Unreleased - -[Full Changelog](https://github.com/knsv/mermaid/compare/8.7.0...HEAD) - -## 8.7.0 (2020-08-09) - -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | -📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) - -This version brings with it a system for [dynamic and integrated configuration of the diagram themes](../config/theming.md). -The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. - -Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md). - -**These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.** - -### Site-wide Themes - -Site-wide themes are still declared via `initialize` by site owners. - -Example of `Initalize` call setting `theme` to `base`: - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', - theme: 'base', -}); -``` - -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. - -### Themes at the Local or Current Level - -When Generating a diagram using on a webpage that supports mermaid. -It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. - -**Following is an example:** - -```mmd -%%{init: {'theme':'base'}}%% - graph TD - a --> b -``` - -### Making a Custom Theme with `themeVariables` - -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. - -| Parameter | Description | Type | Required | Objects contained | -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | - -Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. - -```mmd -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -**Notes:** -Leaving it empty will set all variable values to default. - -## 8.6.0 (2020-07-13) - -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.6.0) - -[Version 8.6.0](../getting-started/8.6.0_docs.md) introduces New Configuration Protocols and Directives and a Beta for the [New Mermaid Live-Editor](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) - -**With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation.** - -Directives allow for a diagram specific overriding of config, as it has been discussed in Configurations. -This allows site users to input modifications to config alongside diagram definitions, when creating diagrams on a private webpage that supports Mermaid. - -## 8.5.0 (2020-04-11) - -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/untagged-31c93788afe260d914bb) - -This version introduces New diagrams! - -**New diagrams in 8.5** - -With version 8.5 there are some bug fixes and enhancements, plus a new diagram type, entity relationship diagrams. - -![Image showing the new ER diagram type](./img/er.png) - -## 8.2.0 (2019-07-17) - -🏷️ [Tag](https://github.com/mermaid-js/mermaid/tree/8.2.0) - -Version 8.2.0, introduces a security improvement. - -A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. -This was introduced in version 8.2 as a security improvement, aimed at preventing malicious use. - -### securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------- | -| securitylevel | Level of trust for parsed diagram | String | Required | Strict, Loose, antiscript | - -**Notes:** - -- **strict**: (**default**) tags in text are encoded, click functionality is disabled -- **loose**: tags in text are allowed, click functionality is enabled -- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - -⚠️ **Note**: This changes the default behaviour of mermaid so that after upgrade to 8.2, if the `securityLevel` is not configured, tags in flowcharts are encoded as tags and clicking is prohibited. - -If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing. -By doing this clicks and tags are again allowed. - -### To change `securityLevel` with `mermaidAPI.initialize`: - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', -}); -``` - -**Closed issues:** - -- please add tag for 8.0.0 release [\#863](https://github.com/knsv/mermaid/issues/863) -- classDiagram breaks on any edit [\#858](https://github.com/knsv/mermaid/issues/858) - -## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0) - -**Implemented enhancements:** - -- Theme for dark background [\#301](https://github.com/knsv/mermaid/issues/301) -- \[Feature request\] gantt diagram axis format [\#269](https://github.com/knsv/mermaid/issues/269) -- Implement render function for server side rendering using phantomjs [\#169](https://github.com/knsv/mermaid/issues/169) - -**Fixed bugs:** - -- mermaid -v filename.mmd gives You must specify at least one source file. [\#328](https://github.com/knsv/mermaid/issues/328) -- Not Able to See Labels even htmlLabels:false added [\#268](https://github.com/knsv/mermaid/issues/268) - -**Closed issues:** - -- Gantt and sequence diagram do not render [\#853](https://github.com/knsv/mermaid/issues/853) -- margins around flowchart are not balanced [\#852](https://github.com/knsv/mermaid/issues/852) -- Smaller bundles [\#843](https://github.com/knsv/mermaid/issues/843) -- unicode in labels [\#776](https://github.com/knsv/mermaid/issues/776) -- Hard-changing drawing of arrows per edge type [\#775](https://github.com/knsv/mermaid/issues/775) -- SequenceDiagram wrong [\#773](https://github.com/knsv/mermaid/issues/773) -- Render mermaid on github pages with simple code [\#772](https://github.com/knsv/mermaid/issues/772) -- FlowChart - large space between text and the image [\#754](https://github.com/knsv/mermaid/issues/754) -- Class Diagram Issues when using Mermaid in Stackedit [\#748](https://github.com/knsv/mermaid/issues/748) -- Multi-platform CI [\#744](https://github.com/knsv/mermaid/issues/744) -- gantt: sections can't have a colon [\#742](https://github.com/knsv/mermaid/issues/742) -- Yarn build does not add mermaid.min.css to dist [\#732](https://github.com/knsv/mermaid/issues/732) -- Is there a grammar / keyword / more than just the basic examples? [\#718](https://github.com/knsv/mermaid/issues/718) -- Click event and react component [\#717](https://github.com/knsv/mermaid/issues/717) -- Long text going outside the box [\#706](https://github.com/knsv/mermaid/issues/706) -- How to migrate from yUML to mermaid? [\#704](https://github.com/knsv/mermaid/issues/704) -- Issue on Dynamic Creation in PHP [\#690](https://github.com/knsv/mermaid/issues/690) -- `click "\#target"` and `click "http://url"` should create regular links [\#689](https://github.com/knsv/mermaid/issues/689) -- Support Chinese punctuation [\#687](https://github.com/knsv/mermaid/issues/687) -- \[Question\] Proper way to install on Mac? [\#681](https://github.com/knsv/mermaid/issues/681) -- Has Mermaid a graphical interface to make diagrams? [\#668](https://github.com/knsv/mermaid/issues/668) -- mermaid installation on debian [\#649](https://github.com/knsv/mermaid/issues/649) -- "Cannot activate" in sequenceDiagram [\#647](https://github.com/knsv/mermaid/issues/647) -- Link \("click" statement\) in flowchart does not work in exported SVG [\#646](https://github.com/knsv/mermaid/issues/646) -- How to pass styling [\#639](https://github.com/knsv/mermaid/issues/639) -- The live editor cant show seq diagram with notes for 8.0.0-alpha.3 [\#638](https://github.com/knsv/mermaid/issues/638) -- import mermaid.css with ES6 + NPM [\#634](https://github.com/knsv/mermaid/issues/634) -- Actor line cuts through other elements [\#633](https://github.com/knsv/mermaid/issues/633) -- Graph TD line out of the picture \(left side\) [\#630](https://github.com/knsv/mermaid/issues/630) -- Flowchart labels appear "cutoff" [\#628](https://github.com/knsv/mermaid/issues/628) -- Uncaught TypeError: \_.constant is not a function \(mermaid.js\) [\#626](https://github.com/knsv/mermaid/issues/626) -- Missing tags and releases for newer versions [\#623](https://github.com/knsv/mermaid/issues/623) -- Mermaid and Leo / Leo Vue [\#622](https://github.com/knsv/mermaid/issues/622) -- mermaidAPI gantt Vue.js [\#621](https://github.com/knsv/mermaid/issues/621) -- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [\#620](https://github.com/knsv/mermaid/issues/620) -- how to get mermaidAPI? [\#617](https://github.com/knsv/mermaid/issues/617) -- Error in startOnLoad documentation? [\#616](https://github.com/knsv/mermaid/issues/616) -- Example export to SVG generates error [\#614](https://github.com/knsv/mermaid/issues/614) -- The new online editor does not support previously generated links [\#613](https://github.com/knsv/mermaid/issues/613) -- Grammar / Syntax documentation for flowcharts [\#607](https://github.com/knsv/mermaid/issues/607) -- Mermaid does not work with d3.js [\#606](https://github.com/knsv/mermaid/issues/606) -- Why does this code's flowchart lines get cut-off on screen? [\#604](https://github.com/knsv/mermaid/issues/604) -- click keyword does not fire my callback \(on the demo Website too\) [\#603](https://github.com/knsv/mermaid/issues/603) -- Online Editor fails to show exported SVG [\#601](https://github.com/knsv/mermaid/issues/601) -- Just saying thanks! [\#597](https://github.com/knsv/mermaid/issues/597) -- stylesheet crashed with other library like abcjs [\#596](https://github.com/knsv/mermaid/issues/596) -- Missing connection [\#594](https://github.com/knsv/mermaid/issues/594) -- How to use mermaid on node.js restful api? [\#593](https://github.com/knsv/mermaid/issues/593) -- Remove status code [\#589](https://github.com/knsv/mermaid/issues/589) -- Golang based editor [\#588](https://github.com/knsv/mermaid/issues/588) -- sequenceDiagram -\> notetext css font is hardcoded [\#587](https://github.com/knsv/mermaid/issues/587) -- Multiple graph in the live editor [\#586](https://github.com/knsv/mermaid/issues/586) -- All \ elements in page are colored black [\#584](https://github.com/knsv/mermaid/issues/584) -- Styling: classes aren't applied to elements. [\#582](https://github.com/knsv/mermaid/issues/582) -- Rounded connections [\#580](https://github.com/knsv/mermaid/issues/580) -- Arrows are not being shown correctly in the dark theme [\#578](https://github.com/knsv/mermaid/issues/578) -- The documentation for CLI seems outdated. [\#572](https://github.com/knsv/mermaid/issues/572) -- No effect of click event:can not open link [\#571](https://github.com/knsv/mermaid/issues/571) -- Text colors are not correct in VSCODE [\#570](https://github.com/knsv/mermaid/issues/570) -- Nodes aren't aligned properly \(just need an explanation\) [\#568](https://github.com/knsv/mermaid/issues/568) -- setting margin around figure in R [\#567](https://github.com/knsv/mermaid/issues/567) -- Arrows should Come out in upward and Downward direction from decision Node [\#566](https://github.com/knsv/mermaid/issues/566) -- TypeError: Cannot read property 'select' of undefined [\#563](https://github.com/knsv/mermaid/issues/563) -- A little bug [\#557](https://github.com/knsv/mermaid/issues/557) -- Japanese text appears garbled [\#554](https://github.com/knsv/mermaid/issues/554) -- classdiagram not works in mermaid live_editor [\#553](https://github.com/knsv/mermaid/issues/553) -- font awesome in link text? [\#546](https://github.com/knsv/mermaid/issues/546) -- q: heard of the cosmogol standard? [\#545](https://github.com/knsv/mermaid/issues/545) -- Arrow heads missing \(cli, 7.0.3\) [\#544](https://github.com/knsv/mermaid/issues/544) -- No Edge Boxes if useHtmlLabels=false [\#541](https://github.com/knsv/mermaid/issues/541) -- how to change mermaid text color or line text block color? [\#534](https://github.com/knsv/mermaid/issues/534) -- FlowChart visualization broken when downloading from live editor [\#533](https://github.com/knsv/mermaid/issues/533) -- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [\#532](https://github.com/knsv/mermaid/issues/532) -- live editor make browser\(safari on macOS&iOS\) not longer respond [\#531](https://github.com/knsv/mermaid/issues/531) -- css classes need a prefix/namespace [\#527](https://github.com/knsv/mermaid/issues/527) -- input activate/deactivate cause safari unresponding [\#521](https://github.com/knsv/mermaid/issues/521) -- Cannot Render the Mermaid Graph to PDF ? [\#520](https://github.com/knsv/mermaid/issues/520) -- clicking links works from inset in subgraph but not from nodes [\#516](https://github.com/knsv/mermaid/issues/516) -- Strange syntax error - when importing mermaid.js [\#515](https://github.com/knsv/mermaid/issues/515) -- gantt x-axis display [\#510](https://github.com/knsv/mermaid/issues/510) -- phantomjs renamed to phantomjs-prebuilt [\#508](https://github.com/knsv/mermaid/issues/508) -- issue when using sphinxcontrib-mermaid extension for sphinx [\#507](https://github.com/knsv/mermaid/issues/507) -- layout of docs page looks broken [\#504](https://github.com/knsv/mermaid/issues/504) -- Problem showing graph with php on localhost [\#502](https://github.com/knsv/mermaid/issues/502) -- logLevel's option doesn't work at 7.0.0 [\#501](https://github.com/knsv/mermaid/issues/501) -- How do I get the log for a render or parse attempt? [\#500](https://github.com/knsv/mermaid/issues/500) -- Mermaid neutral style style to built in latest release [\#499](https://github.com/knsv/mermaid/issues/499) -- Any plans for adding a typescript definition file? [\#495](https://github.com/knsv/mermaid/issues/495) -- Gantt diagrams too narrow [\#493](https://github.com/knsv/mermaid/issues/493) -- Flowchart edge labels placement [\#490](https://github.com/knsv/mermaid/issues/490) -- Very different styles when rendering as png vs. svg [\#489](https://github.com/knsv/mermaid/issues/489) -- New editor that supports mermaid: Caret [\#488](https://github.com/knsv/mermaid/issues/488) -- Gant PNG margin [\#486](https://github.com/knsv/mermaid/issues/486) -- ReferenceError: window is not defined [\#485](https://github.com/knsv/mermaid/issues/485) -- Menu and layout bugs in docs [\#484](https://github.com/knsv/mermaid/issues/484) -- Mermaid resets some of the page CSS styles [\#482](https://github.com/knsv/mermaid/issues/482) -- Arrows rendering incorrectly in online editor [\#480](https://github.com/knsv/mermaid/issues/480) -- CSS stroke-dasharray ignored by browsers but not other viewers [\#474](https://github.com/knsv/mermaid/issues/474) -- mermaid - Browser Support issue [\#472](https://github.com/knsv/mermaid/issues/472) -- Totally love mermaid I might pop! [\#471](https://github.com/knsv/mermaid/issues/471) -- Sequence Diagram: Missing x on async arrows \(png\) [\#469](https://github.com/knsv/mermaid/issues/469) -- live editor: the svg file rendered from graph is not supported by browsers [\#468](https://github.com/knsv/mermaid/issues/468) -- Not found css [\#462](https://github.com/knsv/mermaid/issues/462) -- Phantomjs Dependency [\#461](https://github.com/knsv/mermaid/issues/461) -- Mermaid cli not working for subgraphs [\#459](https://github.com/knsv/mermaid/issues/459) -- Support for notes across multiple participants? [\#458](https://github.com/knsv/mermaid/issues/458) -- Related to Issue \#329: Phantomjs issues. [\#455](https://github.com/knsv/mermaid/issues/455) -- Add a click style [\#426](https://github.com/knsv/mermaid/issues/426) -- Add Parallel block \(par\) to sequence diagrams [\#425](https://github.com/knsv/mermaid/issues/425) -- updating shapes after the flow chart rendering complete [\#424](https://github.com/knsv/mermaid/issues/424) -- can't catch parse error Maximum call stack size exceeded on safari [\#421](https://github.com/knsv/mermaid/issues/421) -- Arrows endings are missing [\#419](https://github.com/knsv/mermaid/issues/419) -- shouldn't mermaid become more like Markdown ? [\#417](https://github.com/knsv/mermaid/issues/417) -- Live editor show rendered diagram if syntax invalid [\#415](https://github.com/knsv/mermaid/issues/415) -- Linkstyle stroke does not work [\#410](https://github.com/knsv/mermaid/issues/410) -- flowchart id's with dots in them .. break links [\#408](https://github.com/knsv/mermaid/issues/408) -- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [\#407](https://github.com/knsv/mermaid/issues/407) -- Some Chinese character will case Safari no responding. [\#405](https://github.com/knsv/mermaid/issues/405) -- Cannot center-justify text in nodes? [\#397](https://github.com/knsv/mermaid/issues/397) -- Edge labels should have white background in live editor [\#396](https://github.com/knsv/mermaid/issues/396) -- Live editor does not support activate/deactivate [\#394](https://github.com/knsv/mermaid/issues/394) -- Styling subgraph? [\#391](https://github.com/knsv/mermaid/issues/391) -- Update live editor to version 6.0.0 [\#387](https://github.com/knsv/mermaid/issues/387) -- sequence diagram config issue [\#385](https://github.com/knsv/mermaid/issues/385) -- How to add newline in the text [\#384](https://github.com/knsv/mermaid/issues/384) -- PhantomJS crashes on a large graph [\#380](https://github.com/knsv/mermaid/issues/380) -- Finnish support for class diagrams using plantuml syntax [\#377](https://github.com/knsv/mermaid/issues/377) -- mermaidAPI.render generated different svg code from mermaid.int\(\) [\#374](https://github.com/knsv/mermaid/issues/374) -- Put your own action on the chart [\#372](https://github.com/knsv/mermaid/issues/372) -- when declaring participants the elements are generated twice [\#370](https://github.com/knsv/mermaid/issues/370) -- Example Flowchart is cut in display \(Chrome\). [\#368](https://github.com/knsv/mermaid/issues/368) -- Add shebang support to diagrams [\#365](https://github.com/knsv/mermaid/issues/365) -- Silencing CLI output [\#352](https://github.com/knsv/mermaid/issues/352) -- SequenceDiagram: 3+ Alternative Paths [\#348](https://github.com/knsv/mermaid/issues/348) -- Smaller height of actor boxes [\#342](https://github.com/knsv/mermaid/issues/342) -- Question: lib/phantomscript.js - foreignObjects in SVG - related to \#58 [\#340](https://github.com/knsv/mermaid/issues/340) -- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [\#337](https://github.com/knsv/mermaid/issues/337) -- Tabs & subgraphs cause rendering error [\#336](https://github.com/knsv/mermaid/issues/336) -- Display question: right angles [\#335](https://github.com/knsv/mermaid/issues/335) -- No Arrows rendered v0.5.8 [\#330](https://github.com/knsv/mermaid/issues/330) -- You had errors in your syntax. Use --help for further information. [\#327](https://github.com/knsv/mermaid/issues/327) -- Allow alternate arrow syntax that doesn't close html comments [\#322](https://github.com/knsv/mermaid/issues/322) -- Comment in subgraph [\#319](https://github.com/knsv/mermaid/issues/319) -- Update graph [\#311](https://github.com/knsv/mermaid/issues/311) -- css conflicts with boostrap's css [\#308](https://github.com/knsv/mermaid/issues/308) -- Can not get click event to fire. [\#306](https://github.com/knsv/mermaid/issues/306) -- Fix phantomjs2 compatibility [\#304](https://github.com/knsv/mermaid/issues/304) -- Flowcharts do not work in native IE11 [\#303](https://github.com/knsv/mermaid/issues/303) -- Integration with remark.js - tutorial added [\#302](https://github.com/knsv/mermaid/issues/302) -- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [\#299](https://github.com/knsv/mermaid/issues/299) -- src/mermaid.js generates bad code [\#297](https://github.com/knsv/mermaid/issues/297) -- Fresh fork: jasmine tests fail [\#294](https://github.com/knsv/mermaid/issues/294) -- CSS clash [\#292](https://github.com/knsv/mermaid/issues/292) -- Mermaid does not work in Chrome 48 [\#281](https://github.com/knsv/mermaid/issues/281) -- circle and ellipse cannot change color by classDef [\#271](https://github.com/knsv/mermaid/issues/271) -- npm run watch doesn't work due missing dependencies [\#266](https://github.com/knsv/mermaid/issues/266) -- label out of node [\#262](https://github.com/knsv/mermaid/issues/262) -- IE11 Support issue [\#261](https://github.com/knsv/mermaid/issues/261) -- mermaid without browser [\#260](https://github.com/knsv/mermaid/issues/260) -- Insufficient capacity of gantt diagrams [\#226](https://github.com/knsv/mermaid/issues/226) -- some WARN about installation [\#222](https://github.com/knsv/mermaid/issues/222) -- Live editor offline access [\#217](https://github.com/knsv/mermaid/issues/217) -- suggest: code highlight mode config for editors [\#212](https://github.com/knsv/mermaid/issues/212) -- Uncaught RangeError: Maximum call stack size exceeded [\#189](https://github.com/knsv/mermaid/issues/189) -- Styling label texts [\#50](https://github.com/knsv/mermaid/issues/50) - -**Merged pull requests:** - -- Remove console.log in classDB. [\#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey)) -- Bump sshpk from 1.13.1 to 1.16.1 [\#851](https://github.com/knsv/mermaid/pull/851) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Significantly smaller bundles [\#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato)) -- Support styling of subgraphs [\#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-)) -- fix dark theme loop labels not visible [\#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn)) -- fix draw function can only call once [\#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship)) -- Fix dotted lines not appearing in flowcharts when HTML labels disabled [\#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu)) -- Fix issue with XML line breaks inside vertex labels [\#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang)) -- fixed diagrams [\#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus)) -- Clickable gantt tasks [\#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht)) -- linkStyle now supports list of indexes with a few tests [\#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov)) -- fix class diagram mermaid [\#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai)) -- Added exclude weekdays to definition [\#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo)) -- SVG link rendering [\#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep)) -- Gantt milestones [\#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs)) -- Remove duplicate code [\#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030)) -- Render nodes as real links [\#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep)) -- Fix issue with marker-end. [\#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen)) -- Make Class Diagrams usable in Stackedit and Live Editor [\#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe)) -- Adding trapezoid and inverse trapezoid vertex options. [\#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf)) -- Add option for right angles [\#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland)) -- Add nested activation classes [\#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland)) -- wip: class diagram cardinality display [\#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz)) -- add comments about CSS in config [\#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90)) -- SequenceDiagram: Add support for multiple alt else statements [\#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel)) -- fix \#426 - add class .clickable on nodes with click function or link [\#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil)) -- Spec fix 1 [\#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt)) - -## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5) - -**Closed issues:** - -- live editor latin error after update [\#560](https://github.com/knsv/mermaid/issues/560) -- Simple full example in online documentation is broken [\#558](https://github.com/knsv/mermaid/issues/558) -- Graph No Arrow Head v7.0.3 [\#543](https://github.com/knsv/mermaid/issues/543) -- Conflict while using mermaid along with core-js [\#512](https://github.com/knsv/mermaid/issues/512) -- Export to pdf on website [\#496](https://github.com/knsv/mermaid/issues/496) -- New downstream project: Mermaid Preview for VSCode [\#442](https://github.com/knsv/mermaid/issues/442) -- Can't Zoom the flowchart ? [\#399](https://github.com/knsv/mermaid/issues/399) -- line labels are not rendered correctly in live editor [\#366](https://github.com/knsv/mermaid/issues/366) -- mermaid-loader [\#361](https://github.com/knsv/mermaid/issues/361) -- Are there any documentation or examples for classDiagram and gitGraph? [\#359](https://github.com/knsv/mermaid/issues/359) -- \# character broken in 0.5.8 [\#347](https://github.com/knsv/mermaid/issues/347) -- Documentation issue: CSS example is not visible [\#345](https://github.com/knsv/mermaid/issues/345) -- Include documentation for command line usage [\#326](https://github.com/knsv/mermaid/issues/326) -- Fresh fork: can't build dist [\#296](https://github.com/knsv/mermaid/issues/296) -- Invalid value for \ attribute viewBox="0 0 -Infinity -Infinity" [\#291](https://github.com/knsv/mermaid/issues/291) -- Webpack require fails [\#277](https://github.com/knsv/mermaid/issues/277) -- New documentation - need improved logo [\#216](https://github.com/knsv/mermaid/issues/216) - -## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3) - -**Closed issues:** - -- the documentation website is down [\#539](https://github.com/knsv/mermaid/issues/539) -- Good example of interactivity with mermaidAPI [\#514](https://github.com/knsv/mermaid/issues/514) - -## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2) - -**Closed issues:** - -- CDN is not working [\#511](https://github.com/knsv/mermaid/issues/511) -- A sampe sequenceDiagram crashes mermaid-cli [\#492](https://github.com/knsv/mermaid/issues/492) -- Mermaid doesn't delete nodes when called multiple times [\#491](https://github.com/knsv/mermaid/issues/491) -- API crashes on 2nd render\(\) call [\#478](https://github.com/knsv/mermaid/issues/478) -- sequenceDiagram: dotted line for alt and empty bracket should be hidden [\#456](https://github.com/knsv/mermaid/issues/456) -- SVG output \(almost\) not correct [\#434](https://github.com/knsv/mermaid/issues/434) -- How to set axisFormatter of gantt in mermaid CLI? [\#428](https://github.com/knsv/mermaid/issues/428) -- customizing link style with any color sets `fill` property to `black` instead of `none` [\#416](https://github.com/knsv/mermaid/issues/416) -- New line at the end of SVG file [\#400](https://github.com/knsv/mermaid/issues/400) -- CLI doesn't work [\#389](https://github.com/knsv/mermaid/issues/389) -- Can't render subgraphs with htmlLabels: false [\#367](https://github.com/knsv/mermaid/issues/367) -- Color arrowhead [\#362](https://github.com/knsv/mermaid/issues/362) -- CLI: Invisible text, lines in SVG output [\#341](https://github.com/knsv/mermaid/issues/341) - -**Merged pull requests:** - -- Support Multi-line Actor Descriptions [\#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj)) -- Update Travis config [\#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong)) -- Fix spelling of 'you' in sequenceDiagram docs [\#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson)) -- Improve CLI output [\#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042)) -- Modernize mermaid [\#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong)) -- Modernize mermaid [\#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong)) -- Update CLI instructions [\#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps)) -- Add style for classDiagram to dark/default theme [\#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel)) -- Fix documentation for git graph. [\#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs)) -- Fix links in documentations [\#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71)) -- Update README.md with git graph sample [\#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur)) -- Fix misspelling of “another” [\#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert)) -- Fixed \#456 sequenceDiagram: dotted line for alt and empty bracket sho… [\#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong)) -- Add viewbox attr to class diagram [\#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm)) -- add par statement to sequenceDiagram [\#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor)) - -## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29) - -[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0) - -**Implemented enhancements:** - -- npm install -g mermaid does not install phantomjs [\#329](https://github.com/knsv/mermaid/issues/329) -- activation boxes [\#313](https://github.com/knsv/mermaid/issues/313) - -**Closed issues:** - -- demos on io site not working [\#466](https://github.com/knsv/mermaid/issues/466) -- Can not be generated PNG pictures through CLI with Chinese [\#451](https://github.com/knsv/mermaid/issues/451) -- Round nodes cannot be styled with CSS classes [\#443](https://github.com/knsv/mermaid/issues/443) -- webpack gulp UglifyJsPlugin error. [\#440](https://github.com/knsv/mermaid/issues/440) -- String concatenation isn't working [\#432](https://github.com/knsv/mermaid/issues/432) -- text flow/wrap in actor box of sequence diagram [\#422](https://github.com/knsv/mermaid/issues/422) -- Online live editor still use old version [\#402](https://github.com/knsv/mermaid/issues/402) -- uncaught TypeError: t.getTransformToElement is not a function [\#401](https://github.com/knsv/mermaid/issues/401) -- Only works when using browserify'd code [\#373](https://github.com/knsv/mermaid/issues/373) -- document the use of shebang line in mmd files [\#364](https://github.com/knsv/mermaid/issues/364) -- Diagrams are small and unreadable in IE 11 - since 0.5.1 [\#356](https://github.com/knsv/mermaid/issues/356) -- \[Feature Request\] ER-Diagram Support [\#354](https://github.com/knsv/mermaid/issues/354) -- The need for mermaid.css should be mentioned explicitly in the intro docs... [\#273](https://github.com/knsv/mermaid/issues/273) - -**Merged pull requests:** - -- Update index.html [\#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight)) -- Fix for \#416, customizing link style with any color sets `fill` property to `black` instead of `none` [\#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin)) -- Allow .node\>circle to receive css styles [\#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz)) -- Fix spelling [\#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn)) -- added tests and fix cli css style selector lowercase problem [\#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev)) -- Update d3.js [\#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz)) -- added tests to reproduce \#434 in flowchart [\#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev)) -- Code Climate config [\#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott)) -- fix gantt and sequence digram cli cfg [\#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev)) -- fix gantt chart cli configuration broken [\#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev)) -- fix gantt chart cli configuration parsing including functions [\#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev)) -- Uses an empty text node instead of a string for svg group labels [\#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick)) -- use tspan via d3.textwrap to place actor text in sequence diagram [\#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev)) -- \#422 use foreignObject/div to place actor label in sequence diagram [\#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev)) -- Clarify the need for a CSS stylesheet [\#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb)) -- Added hads downstream project [\#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied)) -- update usage and fix \#273 [\#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance)) -- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [\#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur)) -- New neutral theme [\#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied)) -- fix cli issues [\#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page)) -- Add missing space for 'Labels out of bounds' section [\#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist)) -- Fix typo: `pats` -\> `paths` [\#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon)) -- Added class diagram example to README.md [\#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion)) -- override normal flowchart arrowhead to allow css styling [\#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue)) -- added sphinx extension [\#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan)) -- Fix typo in the sequence diagram documentation [\#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino)) - -## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0) - -**Closed issues:** - -- Docs css: code hard to read [\#324](https://github.com/knsv/mermaid/issues/324) -- About Markpad integration [\#323](https://github.com/knsv/mermaid/issues/323) -- How to link backwards in flowchart? [\#321](https://github.com/knsv/mermaid/issues/321) -- Help with editor [\#310](https://github.com/knsv/mermaid/issues/310) -- +1 [\#293](https://github.com/knsv/mermaid/issues/293) -- Basic chart does not render on Chome, but does in Firefox [\#290](https://github.com/knsv/mermaid/issues/290) -- Live editor is broken [\#285](https://github.com/knsv/mermaid/issues/285) -- "No such file or directory" trying to run mermaid 0.5.7 on OS X [\#284](https://github.com/knsv/mermaid/issues/284) -- participant name as "Long Long Name" [\#283](https://github.com/knsv/mermaid/issues/283) -- Windows - cli - could not find phantomjs at the specified path [\#236](https://github.com/knsv/mermaid/issues/236) - -**Merged pull requests:** - -- The option of gantt for the spaces for the section names. [\#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi)) -- Gitgraph: Make reset work with parent ref carets [\#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur)) -- Remove the text-shadows that make the text look blurry [\#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers)) -- add line interpolation to linkStyle in flowchart [\#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn)) -- Support git graph diagrams in mermaid [\#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur)) -- Build and test execution changes [\#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea)) -- Reformatting of css files [\#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr)) -- \(WIP\) Sequence Diagram Title Support [\#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja)) -- activations doc + few fixes [\#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy)) -- Dark theme for better contrast on darker backgrounds [\#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a)) -- Activations [\#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy)) -- Support leading comments for sequenceDiagrams [\#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle)) -- Show a little lenience for white-space around names [\#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle)) -- Update list of downstream projects [\#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo)) -- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [\#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) -- Issue 297 - src/mermaid.js generates bad code [\#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) -- Updated instructions for running tests [\#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) -- Add Markdown Plus to Downstream projects [\#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong)) -- Quote phantomPath so that it doesn't fail on window [\#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur)) - -## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8) - -## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7) - -**Closed issues:** - -- Mermaid + LightPaper = ❤️ [\#280](https://github.com/knsv/mermaid/issues/280) -- Bower Integration [\#278](https://github.com/knsv/mermaid/issues/278) -- Mermaid breaks when variables end in 'v' [\#276](https://github.com/knsv/mermaid/issues/276) -- sequence diagrams don't support participant aliasing [\#263](https://github.com/knsv/mermaid/issues/263) -- One diagram that fails to render stops further execution on the page [\#259](https://github.com/knsv/mermaid/issues/259) -- Where to find line layout algorithm? [\#258](https://github.com/knsv/mermaid/issues/258) -- Compatibility with node.js [\#257](https://github.com/knsv/mermaid/issues/257) -- Label resizing with dynamically loaded fonts [\#255](https://github.com/knsv/mermaid/issues/255) -- SVG arrowheads are broken in the CLI [\#249](https://github.com/knsv/mermaid/issues/249) -- Cannot read property 'replace' of undefined [\#239](https://github.com/knsv/mermaid/issues/239) - -**Merged pull requests:** - -- gh-50 Allow styling of edge labels in css [\#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia)) -- Allow sequenceDiagram participant aliasing [\#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042)) - -## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6) - -**Implemented enhancements:** - -- Add download SVG link to the live editor [\#144](https://github.com/knsv/mermaid/issues/144) - -**Fixed bugs:** - -- Live Editor: Permalink address not being parsed [\#202](https://github.com/knsv/mermaid/issues/202) - -**Closed issues:** - -- title doesn't work in sequenceDiagram [\#248](https://github.com/knsv/mermaid/issues/248) -- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [\#247](https://github.com/knsv/mermaid/issues/247) -- Broken in firefox? [\#245](https://github.com/knsv/mermaid/issues/245) -- When there is a Chinese symbol in the flowchart, it will crash。 [\#238](https://github.com/knsv/mermaid/issues/238) -- Non-alpha characters included in ALPHA token \(flow graph jison\) [\#232](https://github.com/knsv/mermaid/issues/232) -- subgraph not rendering with change to sample [\#231](https://github.com/knsv/mermaid/issues/231) -- sequence diagram requires a new line at the end? [\#229](https://github.com/knsv/mermaid/issues/229) - -**Merged pull requests:** - -- Make sequenceDiagram terminal newline optional [\#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042)) -- Support sequenceDiagram "over" notes [\#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042)) -- Properly handle "rest of line" statements [\#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042)) -- CLI: Propagate exit code from lib \(i.e., phantomjs\) [\#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042)) -- flowRender.js - Fix FontAwesome icon insert [\#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal)) -- updated sequence diagram link in live editor [\#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) -- updated links in README.md [\#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) -- Ellipse syntax [\#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88)) -- Allow keywords as suffixes of node ids [\#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88)) -- Highlighted the editor in the nav [\#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv)) -- Live editor tweaks [\#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88)) -- Add a Gitter chat badge to README.md [\#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger)) - -## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5) - -**Closed issues:** - -- sequence diagram, arrowhead instead of crosshead [\#227](https://github.com/knsv/mermaid/issues/227) - -**Merged pull requests:** - -- Fix a typo: crosshead --\> arrowhead [\#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong)) - -## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4) - -**Implemented enhancements:** - -- Set log level from mermaid configuration [\#220](https://github.com/knsv/mermaid/issues/220) -- Links in sequence diagrams [\#159](https://github.com/knsv/mermaid/issues/159) -- Add syntax for double headed arrows [\#123](https://github.com/knsv/mermaid/issues/123) - -**Fixed bugs:** - -- comment characters `%%` cause parse error [\#141](https://github.com/knsv/mermaid/issues/141) - -**Closed issues:** - -- Marker-end arrow cannot be shown for URL with query parameter [\#225](https://github.com/knsv/mermaid/issues/225) -- Please update bower's D3 version [\#221](https://github.com/knsv/mermaid/issues/221) -- Width fixed to 400px [\#204](https://github.com/knsv/mermaid/issues/204) -- render to png from the cli does not display the marker-end arrow heads [\#181](https://github.com/knsv/mermaid/issues/181) - -**Merged pull requests:** - -- Allow `end` as a substring of vertex id [\#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88)) -- Remove duplicate npm dependencies: d3 and he [\#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88)) - -## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3) - -## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2) - -**Implemented enhancements:** - -- Support for hyperlink and tooltip [\#34](https://github.com/knsv/mermaid/issues/34) - -**Closed issues:** - -- Installing “atom-mermaid@0.1.3” failed [\#218](https://github.com/knsv/mermaid/issues/218) -- node feature request [\#211](https://github.com/knsv/mermaid/issues/211) -- Please add prefix for styles [\#208](https://github.com/knsv/mermaid/issues/208) -- Bad handling of block arguments [\#207](https://github.com/knsv/mermaid/issues/207) -- please consider port to mac osx [\#203](https://github.com/knsv/mermaid/issues/203) -- allow phantomjs \>=1.9.x [\#201](https://github.com/knsv/mermaid/issues/201) -- syntax for venn diagrams? [\#200](https://github.com/knsv/mermaid/issues/200) -- Broken CLI Graphs? \(v0.5.1\) [\#196](https://github.com/knsv/mermaid/issues/196) -- Static site does not render under HTTPS [\#194](https://github.com/knsv/mermaid/issues/194) -- Error on simple graph [\#192](https://github.com/knsv/mermaid/issues/192) -- Escape "~" [\#191](https://github.com/knsv/mermaid/issues/191) -- Trying to add link using 'click' to flowchart [\#188](https://github.com/knsv/mermaid/issues/188) -- cli: no lines and arrowheads rendered / only dotted lines [\#187](https://github.com/knsv/mermaid/issues/187) -- text of mermaid div displayed on page [\#186](https://github.com/knsv/mermaid/issues/186) -- using mermaid with laravel [\#185](https://github.com/knsv/mermaid/issues/185) -- Atom editor package [\#183](https://github.com/knsv/mermaid/issues/183) -- Auto linewrap for notes in sequence diagrams [\#178](https://github.com/knsv/mermaid/issues/178) -- Execute code after initialize [\#176](https://github.com/knsv/mermaid/issues/176) -- Autoscaling for all diagram types [\#175](https://github.com/knsv/mermaid/issues/175) -- Problem wit click event callback [\#174](https://github.com/knsv/mermaid/issues/174) -- How to escape characters? [\#170](https://github.com/knsv/mermaid/issues/170) -- it can not work [\#167](https://github.com/knsv/mermaid/issues/167) -- Broken subgraph using the CLI [\#153](https://github.com/knsv/mermaid/issues/153) -- IE Support issue [\#142](https://github.com/knsv/mermaid/issues/142) -- Flowchart truncated [\#140](https://github.com/knsv/mermaid/issues/140) -- Double Quote as text is not working [\#219](https://github.com/knsv/mermaid/issues/219) -- classDef / class not working with htmlLabels? [\#210](https://github.com/knsv/mermaid/issues/210) -- Links in graph missing [\#209](https://github.com/knsv/mermaid/issues/209) -- Last word in comment boxes getting cut off by word wrap library : \( [\#195](https://github.com/knsv/mermaid/issues/195) -- Escaping characters in sequence diagram [\#193](https://github.com/knsv/mermaid/issues/193) -- SVG foreignObject rendering [\#180](https://github.com/knsv/mermaid/issues/180) -- IE9 issue [\#179](https://github.com/knsv/mermaid/issues/179) -- inoperable in an AMD/requirejs environment: IPython Notebook [\#127](https://github.com/knsv/mermaid/issues/127) -- \[Parser\] Hyphen in participant name bring TypeError [\#74](https://github.com/knsv/mermaid/issues/74) - -**Merged pull requests:** - -- Update flowchart.md [\#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro)) -- Default style when using the CLI [\#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey)) -- Gantt chart - add minutes and seconds durations [\#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans)) -- Using QUnit for AMD testing [\#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl)) -- Update phantomscript.js [\#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow)) - -## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1) - -**Implemented enhancements:** - -- To SVG Export [\#146](https://github.com/knsv/mermaid/issues/146) -- Possibility to set the width of the generated flowchart [\#129](https://github.com/knsv/mermaid/issues/129) -- Special characters break parsing [\#54](https://github.com/knsv/mermaid/issues/54) -- Responsive graph layout for mobile viewers [\#51](https://github.com/knsv/mermaid/issues/51) -- Styling connector lines [\#31](https://github.com/knsv/mermaid/issues/31) - -**Fixed bugs:** - -- flowchart - styling of edges via css overrides specific styles set in the graph definition [\#128](https://github.com/knsv/mermaid/issues/128) - -**Closed issues:** - -- Live editor is broken [\#173](https://github.com/knsv/mermaid/issues/173) -- 0.5.0 no longer respects custom date definitions in Gantt diagrams [\#171](https://github.com/knsv/mermaid/issues/171) -- Drop label character restrictions [\#162](https://github.com/knsv/mermaid/issues/162) -- can't nest subgraphs in flowchart [\#161](https://github.com/knsv/mermaid/issues/161) -- Unable to generate gantt diagram with mermaid CLI [\#158](https://github.com/knsv/mermaid/issues/158) -- Inline css by "mermaid" [\#157](https://github.com/knsv/mermaid/issues/157) -- Finite State Machine Diagram [\#152](https://github.com/knsv/mermaid/issues/152) -- How to center align gantt diagram [\#150](https://github.com/knsv/mermaid/issues/150) -- Security concern regarding class definition [\#148](https://github.com/knsv/mermaid/issues/148) -- File Extension [\#147](https://github.com/knsv/mermaid/issues/147) -- `setTimeout` with clusters problematic with programmatic edits and no callback [\#133](https://github.com/knsv/mermaid/issues/133) -- module.exports.cloneCssStyles\(\) in combination with Angularjs breaks display in Chrome and IE [\#126](https://github.com/knsv/mermaid/issues/126) -- Gantt - suitable xAxis for longer project [\#125](https://github.com/knsv/mermaid/issues/125) -- How to get started with this project ? [\#64](https://github.com/knsv/mermaid/issues/64) - -**Merged pull requests:** - -- Remove moot `version` property from bower.json [\#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche)) - -## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0) - -**Implemented enhancements:** - -- Add a css file, mermaid.css, with default styling [\#122](https://github.com/knsv/mermaid/issues/122) -- software architecture diagram [\#36](https://github.com/knsv/mermaid/issues/36) -- Support for bar charts and pie diagrams [\#22](https://github.com/knsv/mermaid/issues/22) - -**Closed issues:** - -- uglifyjs wanrings which means we can improve the code [\#156](https://github.com/knsv/mermaid/issues/156) -- New\(er\) features unavailable in downloadable js files? [\#151](https://github.com/knsv/mermaid/issues/151) -- Add gh-gapes link to description [\#143](https://github.com/knsv/mermaid/issues/143) -- Some examples not displayed on Firefox 36.0.1 [\#138](https://github.com/knsv/mermaid/issues/138) -- tags ending in a "v" don't render [\#132](https://github.com/knsv/mermaid/issues/132) -- Links in flowchart [\#131](https://github.com/knsv/mermaid/issues/131) -- Using the library for iOS development [\#130](https://github.com/knsv/mermaid/issues/130) -- Add capability for gantt diagrams [\#118](https://github.com/knsv/mermaid/issues/118) -- lower case v causes error in the parser [\#108](https://github.com/knsv/mermaid/issues/108) -- Label's css conflict with boostrap's .label [\#67](https://github.com/knsv/mermaid/issues/67) -- TypeError: Cannot read property 'layout' of undefined [\#37](https://github.com/knsv/mermaid/issues/37) - -**Merged pull requests:** - -- Dev 0.5.0 [\#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv)) -- Fix spacing [\#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho)) -- Fixing typo: "Think" -\> "Thick" [\#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a)) -- IE, local html, cssRules access is denied [\#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong)) -- Add automatically generated change log file. [\#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder)) -- Adding init argument to the global API [\#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl)) -- Add description of manual calling of init [\#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl)) -- Allow other forms of node selection for init\(\) [\#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl)) -- Use a library-level variable for assigning ids [\#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl)) - -## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0) - -**Implemented enhancements:** - -- Assymetric shapes not documented [\#82](https://github.com/knsv/mermaid/issues/82) -- Improve arrows [\#3](https://github.com/knsv/mermaid/issues/3) - -**Fixed bugs:** - -- NoModificationAllowedError [\#23](https://github.com/knsv/mermaid/issues/23) - -**Closed issues:** - -- subgraph background is black in rendered flowchart PNG via CLI [\#121](https://github.com/knsv/mermaid/issues/121) -- Integrate editor at https://github.com/naseer/mermaid-webapp [\#110](https://github.com/knsv/mermaid/issues/110) -- Internet Explorer Support [\#99](https://github.com/knsv/mermaid/issues/99) - -## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5) - -## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4) - -**Implemented enhancements:** - -- Apply styling from css when using the CLI utility [\#85](https://github.com/knsv/mermaid/issues/85) -- Generated SVG works poorly outside web browsers [\#58](https://github.com/knsv/mermaid/issues/58) -- Generating SVG text blob for use in Node [\#2](https://github.com/knsv/mermaid/issues/2) - -**Closed issues:** - -- Subgraph syntax bug? [\#120](https://github.com/knsv/mermaid/issues/120) -- Live editor [\#115](https://github.com/knsv/mermaid/issues/115) -- Error in "Basic Syntax" wiki page [\#113](https://github.com/knsv/mermaid/issues/113) -- semicolons, anyone? [\#111](https://github.com/knsv/mermaid/issues/111) -- undefined `sequenceConfig` fails [\#109](https://github.com/knsv/mermaid/issues/109) -- Sequence Diagrams: Show Actors below as well [\#106](https://github.com/knsv/mermaid/issues/106) -- Allow overriding sequence diagram configuration \(SVG properties\) [\#103](https://github.com/knsv/mermaid/issues/103) -- Error when rendering A-- This is the text -- B [\#102](https://github.com/knsv/mermaid/issues/102) -- Clipping in documentation [\#97](https://github.com/knsv/mermaid/issues/97) -- isolate class styling to the svg container [\#92](https://github.com/knsv/mermaid/issues/92) -- Make the new graph declaration more visual [\#40](https://github.com/knsv/mermaid/issues/40) - -**Merged pull requests:** - -- Add live editor [\#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer)) -- Adds CSS option to the CLI [\#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog)) -- Update flowchart.md in response Issue \#113 [\#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40)) -- Ignore all files except the license and dist/ folder when installing with Bower. [\#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy)) - -## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3) - -**Implemented enhancements:** - -- Support for dotted links [\#26](https://github.com/knsv/mermaid/issues/26) - -**Closed issues:** - -- Missing arrows in sequence diagram [\#98](https://github.com/knsv/mermaid/issues/98) -- Error with \>9 linkStyles [\#95](https://github.com/knsv/mermaid/issues/95) - -**Merged pull requests:** - -- Require d3 directly to better support Node usage [\#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish)) -- update doc with -c option [\#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr)) -- Add new parameter to the console client to override the svg configuration in sequence diagrams [\#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr)) -- Text based labels, new shape [\#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes)) -- fix html tags in example usage [\#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin)) - -## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2) - -**Implemented enhancements:** - -- Make link text look like it is on the line [\#53](https://github.com/knsv/mermaid/issues/53) - -**Closed issues:** - -- disable auto render [\#91](https://github.com/knsv/mermaid/issues/91) -- Tidy breaks mermaid \(linebreaks in \\) [\#87](https://github.com/knsv/mermaid/issues/87) -- Bug: \ being rendered as text in node [\#73](https://github.com/knsv/mermaid/issues/73) -- Graph edges appear to render outside of the canvas [\#70](https://github.com/knsv/mermaid/issues/70) - -**Merged pull requests:** - -- Merge pull request \#1 from knsv/master [\#96](https://github.com/knsv/mermaid/pull/96) ([gkchic](https://github.com/gkchic)) -- Removed duplicated section in flowchart docs [\#94](https://github.com/knsv/mermaid/pull/94) ([kaime](https://github.com/kaime)) -- Grammar changes to sequence page [\#93](https://github.com/knsv/mermaid/pull/93) ([gkchic](https://github.com/gkchic)) -- Github buttons [\#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic)) -- Template change [\#88](https://github.com/knsv/mermaid/pull/88) ([gkchic](https://github.com/gkchic)) - -## [0.3.1](https://github.com/knsv/mermaid/tree/0.3.1) (2015-01-05) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1) - -**Implemented enhancements:** - -- Support for sequence diagrams [\#16](https://github.com/knsv/mermaid/issues/16) -- Client utility for mermaid [\#6](https://github.com/knsv/mermaid/issues/6) - -**Closed issues:** - -- Non ASCII chars in labels [\#84](https://github.com/knsv/mermaid/issues/84) -- 'undefined' titles of Quicklinks on the usage page [\#80](https://github.com/knsv/mermaid/issues/80) -- \[cli\] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [\#71](https://github.com/knsv/mermaid/issues/71) - -**Merged pull requests:** - -- Flowchart doc: Text in the circle now in a circle [\#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack)) -- Fix for issue \#73 [\#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a)) -- Ink template [\#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic)) -- Show help and version even if phantom isn't present. Fixes \#71 [\#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog)) -- Add apostrophe & 'and' [\#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki)) - -## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0) - -**Implemented enhancements:** - -- How do I do comments? [\#47](https://github.com/knsv/mermaid/issues/47) -- Improve readability with new line as terminator and whitespace [\#38](https://github.com/knsv/mermaid/issues/38) - -**Fixed bugs:** - -- This characters failed the lexical parsing [\#46](https://github.com/knsv/mermaid/issues/46) - -**Closed issues:** - -- Trailing whitespace at the end of lines is not ignored [\#55](https://github.com/knsv/mermaid/issues/55) -- Use classes instead of inline style for easy styling [\#24](https://github.com/knsv/mermaid/issues/24) - -**Merged pull requests:** - -- Adds Command Line Interface for generating PNGs from mermaid description files [\#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog)) -- Allow special symbols for direction along with acronyms [\#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40)) - -## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16) - -**Fixed bugs:** - -- Lines routed outside visible area [\#19](https://github.com/knsv/mermaid/issues/19) - -**Closed issues:** - -- Mermaid not rendering properly on Wordpress pages [\#59](https://github.com/knsv/mermaid/issues/59) -- Improve example page with live demo [\#52](https://github.com/knsv/mermaid/issues/52) -- Does not render upon AngularJS Updates [\#45](https://github.com/knsv/mermaid/issues/45) -- Download link in README.MD doesn't work. [\#42](https://github.com/knsv/mermaid/issues/42) -- linkStyle usage is not obvious [\#41](https://github.com/knsv/mermaid/issues/41) -- Move \*.spec.js in src/ to test/ [\#35](https://github.com/knsv/mermaid/issues/35) - -**Merged pull requests:** - -- New grammar will allow statements ending without semicolon as disccused in Issue \#38 [\#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40)) -- Class based styling [\#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes)) -- Fix typos [\#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino)) -- Included .DS_Store in gitignore [\#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq)) -- Improves readability discussed in issue \#38 [\#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40)) -- Added a linting task for gulp [\#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv)) - -## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15) - -**Fixed bugs:** - -- Error with some characters [\#25](https://github.com/knsv/mermaid/issues/25) -- Cap-cased words break parser [\#8](https://github.com/knsv/mermaid/issues/8) - -**Closed issues:** - -- Question marks don't render properly with /dist/mermaid.full.min.js [\#30](https://github.com/knsv/mermaid/issues/30) -- Provide parse function in browser widthout `require`? [\#21](https://github.com/knsv/mermaid/issues/21) -- Better label text support [\#18](https://github.com/knsv/mermaid/issues/18) - -**Merged pull requests:** - -- Include bower_components/ to .gitignore [\#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv)) -- Fixed reference to Git repo. [\#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis)) - -## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14) - -## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13) - -**Implemented enhancements:** - -- Publish to NPM [\#7](https://github.com/knsv/mermaid/issues/7) - -**Closed issues:** - -- modified init to be applied more than once [\#29](https://github.com/knsv/mermaid/issues/29) -- Wanted to know build process for the project. [\#28](https://github.com/knsv/mermaid/issues/28) -- can not support Chinese description [\#20](https://github.com/knsv/mermaid/issues/20) -- Support unicode chars in labels [\#9](https://github.com/knsv/mermaid/issues/9) - -## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10) - -## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9) - -**Closed issues:** - -- Add link to jsbin playground to README [\#11](https://github.com/knsv/mermaid/issues/11) -- What are the requirements ? [\#10](https://github.com/knsv/mermaid/issues/10) - -**Merged pull requests:** - -- Allow unicode chars in labels [\#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige)) - -## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8) - -## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7) - -**Closed issues:** - -- Provide parser as separate module [\#4](https://github.com/knsv/mermaid/issues/4) - -## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6) - -## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5) - -**Merged pull requests:** - -- Added new shapes! [\#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes)) - -## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4) - -## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3) - -## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2) - -## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1) - -## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0) - -## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1) - -## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16) diff --git a/vdocs/community/development.md b/vdocs/community/development.md deleted file mode 100644 index 95e5fe4174..0000000000 --- a/vdocs/community/development.md +++ /dev/null @@ -1,136 +0,0 @@ -# Development and Contribution 🙌 - -So you want to help? That's great! - -![Image of happy people jumping with excitement](https://media.giphy.com/media/BlVnrxJgTGsUw/giphy.gif) - -Here are a few things to get you started on the right path. - -**The Docs Structure is dictated by [sidebar.md](https://github.com/mermaid-js/mermaid/edit/develop/src/docs/_sidebar.md)** - -**Note: Commits and Pull Requests should be directed to the develop branch.** - -## Branching - -Mermaid uses a [Git Flow](https://guides.github.com/introduction/flow/)–inspired approach to branching. So development is done in the `develop` branch. - -Once development is done we branch a `release` branch from `develop` for testing. - -Once the release happens we merge the `release` branch with `master` and kill the `release` branch. - -This means that **you should branch off your pull request from develop** and direct all Pull Requests to it. - -## Contributing Code - -We make all changes via Pull Requests. As we have many Pull Requests from developers new to mermaid, we have put in place a process, wherein _knsv, Knut Sveidqvist_ is the primary reviewer of changes and merging pull requests. The process is as follows: - -- Large changes reviewed by knsv or other developer asked to review by knsv -- Smaller, low-risk changes like dependencies, documentation, etc. can be merged by active collaborators -- Documentation (we encourage updates to the `src/docs` folder; you can submit them via direct commits) - -When you commit code, create a branch with the following naming convention: - -Start with the type, such as **feature** or **bug**, followed by the issue number for reference, and a text that describes the issue. - -**One example:** - -`feature/945_state_diagrams` - -**Another example:** - -`bug/123_nasty_bug_branch` - -## Contributing to Documentation - -If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature? - -The docs are located in the `src/docs` folder and are written in Markdown. Just pick the right section and start typing. If you want to propose changes to the structure of the documentation, such as adding a new section or a new file you do that via the **[sidebar](https://github.com/mermaid-js/mermaid/edit/develop/src/docs/_sidebar.md)**. - -> **All the documents displayed in the GitHub.io page are listed in [sidebar.md](https://github.com/mermaid-js/mermaid/edit/develop/src/docs/_sidebar.md)**. - -The contents of [https://mermaid-js.github.io/mermaid/](https://mermaid-js.github.io/mermaid/) are based on the docs from the `master` branch. Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid-js.github.io/mermaid/) once released. - -## How to Contribute to Documentation - -We are a little less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator. - -The documentation is located in the `src/docs` directory and organized according to relevant subfolder. - -The `docs` folder will be automatically generated when committing to `src/docs` and should not be edited manually. - -We encourage contributions to the documentation at [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/src/docs). We publish documentation using GitHub Pages with [Docsify](https://www.youtube.com/watch?v=TV88lp7egMw&t=3s) - -### Add Unit Tests for Parsing - -This is important so that, if someone that does not know about this great feature suggests a change to the grammar, they get notified early on when that change breaks the parser. Another important aspect is that, without proper parsing, tests refactoring is pretty much impossible. - -### Add E2E Tests - -This tests the rendering and visual appearance of the diagrams. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks! - -To start working with the e2e tests: - -1. Run `yarn dev` to start the dev server -2. Start **Cypress** by running `cypress open` in the **mermaid** folder. - (Make sure you have path to Cypress in order, the binary is located in `node_modules/.bin`). - -The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. - -When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs. - -This is what a rendering test looks like: - -```js -it('should render forks and joins', () => { - imgSnapshotTest( - ` - stateDiagram - state fork_state <<fork>> - [*] --> fork_state - fork_state --> State2 - fork_state --> State3 - - state join_state <<join>> - State2 --> join_state - State3 --> join_state - join_state --> State4 - State4 --> [*] - `, - { logLevel: 0 } - ); - cy.get('svg'); -}); -``` - -### Any Questions or Suggestions? - -After logging in at [GitHub.com](https://www.github.com), open or append to an issue [using the GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Documentation%22). - -### How to Contribute a Suggestion - -Markdown is used to format the text, for more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). - -To edit Docs on your computer: - -1. Find the Markdown file (.md) to edit in the [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/src/docs) directory in the `develop` branch. -2. Create a fork of the develop branch. -3. Make changes or add new documentation. -4. Commit changes to your fork and push it to GitHub. -5. Create a Pull Request of your fork. - -To edit Docs on GitHub: - -1. Login to [GitHub.com](https://www.github.com). -2. Navigate to [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/src/docs). -3. To edit a file, click the pencil icon at the top-right of the file contents panel. -4. Describe what you changed in the **Propose file change** section, located at the bottom of the page. -5. Submit your changes by clicking the button **Propose file change** at the bottom (by automatic creation of a fork and a new branch). -6. Create a Pull Request of your newly forked branch by clicking the green **Create Pull Request** button. - -## Last Words - -Don't get daunted if it is hard in the beginning. We have a great community with only encouraging words. So, if you get stuck, ask for help and hints in the Slack forum. If you want to show off something good, show it off there. - -[Join our Slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) - -![Image of superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif) diff --git a/vdocs/community/img/er.png b/vdocs/community/img/er.png deleted file mode 100644 index 21c44c257a3e0ee3e782dd5b6696602f6d9f5172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56576 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 These are the Mermaid diagram definitions inside `
      ` tags, with the `class=mermaid`. - -```html -
      -    graph TD
      -    A[Client] --> B[Load Balancer]
      -    B --> C[Server01]
      -    B --> D[Server02]
      -
      -``` - -**render** - -> This is the core function of the Mermaid API. It reads all the `Mermaid Definitions` inside `div` tags and returns an SVG file, based on the definition. - -**Nodes** - -> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](../config/n00b-syntaxReference) - -## Advantages of using Mermaid - -- Ease to generate, modify and render diagrams when you make them. -- The number of integrations and plugins it has. -- You can add it to your or companies website. -- Diagrams can be created through comments like this in a script: - -## The catch-22 of Diagrams and Charts: - -**Diagramming and charting is a large waste of developer's time, but not having diagrams ruins productivity.** - -Mermaid solves this by reducing the time and effort required to create diagrams and charts. - -Because, the text base for the diagrams allows it to be updated easily. Also, it can be made part of production scripts (and other pieces of code). So less time is spent on documenting, as a separate task. - -## Catching up with Development - -Being based on markdown, Mermaid can be used, not only by accomplished front-end developers, but by most computer savvy people to render diagrams, at much faster speeds. -In fact one can pick up the syntax for it quite easily from the examples given and there are many tutorials available in the internet. - -## Mermaid is for everyone. - -Video [Tutorials](../config/Tutorials) are also available for the mermaid [live editor](https://mermaid.live/). - -Alternatively you can use Mermaid [Plug-Ins](../misc/integrations), with tools you already use, like Google Docs. diff --git a/vdocs/community/security.md b/vdocs/community/security.md deleted file mode 100644 index 7e61a60cf3..0000000000 --- a/vdocs/community/security.md +++ /dev/null @@ -1,23 +0,0 @@ -# Security - -The Mermaid team takes the security of Mermaid and the applications that use Mermaid seriously. This page describes how to report any vulnerabilities you may find, and lists best practices to minimize the risk of introducing a vulnerability. - -## Reporting vulnerabilities - -To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. - -We aim to reply within three working days, probably much sooner. - -You should expect a close collaboration as we work to resolve the issue you have reported. Please reach out to security@mermaid.live again if you do not receive prompt attention and regular updates. - -You may also reach out to the team via our public Slack chat channels; however, please make sure to e-mail security@mernaid.live when reporting an issue, and avoid revealing information about vulnerabilities in public as that could that could put users at risk. - -## Best practices - -Keep current with the latest Mermaid releases. We regularly update Mermaid, and these updates may fix security defects discovered in previous versions. Check the Mermaid release notes for security-related updates. - -Keep your application’s dependencies up to date. Make sure you upgrade your package dependencies to keep the dependencies up to date. Avoid pinning to specific versions for your dependencies and, if you do, make sure you check periodically to see if your dependencies have had security updates, and update the pin accordingly. - -## Configuring DomPurify - -By default Mermaid uses a baseline [DOMPurify](https://github.com/cure53/DOMPurify) config. It is possible to override the options passed to DOMPurify by adding a `dompurifyConfig` key to the Mermaid options. This could potentially break the output of Mermaid so use this with caution. diff --git a/vdocs/config/Setup.md b/vdocs/config/Setup.md deleted file mode 100644 index fb58b78ea0..0000000000 --- a/vdocs/config/Setup.md +++ /dev/null @@ -1,1628 +0,0 @@ -## mermaidAPI - -This is the API to be used when optionally handling the integration with the web page, instead of -using the default integration provided by mermaid.js. - -The core of this api is the [**render**][1] function which, given a graph -definition as text, renders the graph/diagram and returns an svg element for the graph. - -It is then up to the user of the API to make use of the svg, either insert it somewhere in the -page or do something completely different. - -In addition to the render function, a number of behavioral configuration options are available. - -## Configuration - -**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more [click -here][2].** - -## **What follows are config instructions for older versions** - -These are the default options which can be overridden with the initialization call like so: - -**Example 1:** - -```js -mermaid.initialize({ flowchart: { htmlLabels: false } }); -``` - -**Example 2:** - -```js -const config = { - startOnLoad: true, - flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, - - securityLevel: 'loose', -}; -mermaid.initialize(config); -``` - -A summary of all options and their defaults is found [here][3]. -A description of each option follows below. - -## theme - -Theme , the CSS style sheet - -| Parameter | Description | Type | Required | Values | -| --------- | --------------- | ------ | -------- | ---------------------------------------------- | -| theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | - -**Notes:** To disable any pre-defined mermaid theme, use "null".
       "theme": "forest",
      -"themeCSS": ".node rect { fill: red; }" 
      - -## fontFamily - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | -| fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. - -## logLevel - -| Parameter | Description | Type | Required | Values | | -| --------- | ----------------------------------------------------- | ------ | -------- | -------- | --------------------------------------------- | -| logLevel | This option decides the amount of logging to be used. | string | number | Required | 'trace','debug','info','warn','error','fatal' | - -**Notes:** - -- Trace: 0 -- Debug: 1 -- Info: 2 -- Warn: 3 -- Error: 4 -- Fatal: 5 (default) - -## securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' | - -**Notes**: - -- **strict**: (**default**) tags in text are encoded, click functionality is disabled -- **loose**: tags in text are allowed, click functionality is enabled -- **antiscript**: html tags in text are allowed, (only script element is removed), click - functionality is enabled -- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This - prevent any JavaScript from running in the context. This may hinder interactive functionality - of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. - -## startOnLoad - -| Parameter | Description | Type | Required | Values | -| ----------- | -------------------------------------------- | ------- | -------- | ----------- | -| startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | - -**Notes:** Default value: true - -## arrowMarkerAbsolute - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | -| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | - -**Notes**: - -This matters if you are using base tag settings. - -Default value: false - -## secure - -This option controls which currentConfig keys are considered _secure_ and can only be changed -via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the -`secure` keys in the current currentConfig. This prevents malicious graph directives from -overriding a site's default security. - -**Notes**: - -Default value: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] - -## deterministicIds - -This option controls if the generated ids of nodes in the SVG are generated randomly or based -on a seed. If set to false, the IDs are generated based on the current date and thus are not -deterministic. This is the default behaviour. - -**Notes**: - -This matters if your files are checked into sourcecontrol e.g. git and should not change unless -content is changed. - -Default value: false - -## deterministicIDSeed - -This option is the optional seed for deterministic ids. if set to undefined but -deterministicIds is true, a simple number iterator is used. You can set this attribute to base -the seed on a static string. - -## flowchart - -The object containing configurations specific for flowcharts - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 8 - -### htmlLabels - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | -| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | - -**Notes:** Default value: true. - -### nodeSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | -| nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | - -**Notes:** - -Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the -vertical spacing for LR as well as RL graphs.\*\* - -Default value: 50 - -### rankSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | -| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | - -**Notes**: - -Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal -spacing for LR as well as RL graphs. - -Default value 50 - -### curve - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | -| curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | - -**Notes:** - -Default Value: 'basis' - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ----------------------- | -| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - -Default value: 'dagre-wrapper' - -## sequence - -The object containing configurations specific for sequence diagrams - -### activationWidth - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------- | ------- | -------- | ------------------ | -| activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | - -**Notes:** Default value :10 - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### actorMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ---------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------ | -------- | ------------------------- | -| messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### mirrorActors - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------- | -------- | ----------- | -| mirrorActors | Mirror actors under diagram | boolean | Required | true, false | - -**Notes:** Default value: true - -### forceMenus - -| Parameter | Description | Type | Required | Values | -| ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | -| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | - -**Notes:** - -Default value: false. - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | ------------------------------------ | ------- | -------- | ----------- | -| rightAngles | display curve arrows as right angles | boolean | Required | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curve - -Default value: false - -### showSequenceNumbers - -| Parameter | Description | Type | Required | Values | -| ------------------- | ------------------------------- | ------- | -------- | ----------- | -| showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | - -**Notes:** Default value: false - -### actorFontSize - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | - -**Notes:** **Default value 14**.. - -### actorFontFamily - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | -| actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: "'Open Sans", sans-serif' - -### actorFontWeight - -This sets the font weight of the actor's description - -**Notes:** Default value: 400. - -### noteFontSize - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | -| noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 14 - -### noteFontFamily - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | -| noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' - -### noteFontWeight - -This sets the font weight of the note's description - -**Notes:** Default value: 400 - -### noteAlign - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | -| noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### messageFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------------- | ------- | -------- | ------------------- | -| messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | - -**Notes:** Default value: 16 - -### messageFontFamily - -| Parameter | Description | Type | Required | Values | -| ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | -| messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' - -### messageFontWeight - -This sets the font weight of the message's description - -**Notes:** Default value: 400. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: false. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -### labelBoxWidth - -This sets the width of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 50. - -### labelBoxHeight - -This sets the height of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 20. - -## gantt - -The object containing configurations specific for gantt diagrams - -### titleTopMargin - -### titleTopMargin - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 25 - -### barHeight - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------- | -------- | ------------------ | -| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### barGap - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | -| barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | - -**Notes:** Default value: 4 - -### topPadding - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | -| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### rightPadding - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | -| rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### leftPadding - -| Parameter | Description | Type | Required | Values | -| ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | -| leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### gridLineStartPadding - -| Parameter | Description | Type | Required | Values | -| -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ------------------ | -| fontSize | Font size | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### sectionFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------- | ------- | -------- | ------------------ | -| sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### numberSectionStyles - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | -| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | - -**Notes:** Default value: 4 - -### axisFormat - -| Parameter | Description | Type | Required | Values | -| ---------- | --------------------------- | ---- | -------- | ---------------- | -| axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | - -**Notes:** - -This might need adjustment to match your locale and preferences - -Default value: '%Y-%m-%d'. - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### topAxis - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ----------- | -| topAxis | See notes | Boolean | 4 | True, False | - -**Notes:** when this flag is set date labels will be added to the top of the chart - -**Default value false**. - -## journey - -The object containing configurations specific for journey diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### leftMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | Margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ----------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages. | Integer | Required | Any Positive Value | - -**Notes:** - -Space between messages. - -Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ---- | -------- | ------------------------- | -| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------- | ---- | -------- | ----------- | -| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curves - -Default value: false - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ----------------------- | -| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - -**Notes**: - -Decides which rendering engine that is to be used for the rendering. Legal values are: -dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - -Default value: 'dagre-d3' - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ----------------------- | -| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - -Default value: 'dagre-d3' - -## er - -The object containing configurations specific for entity relationship diagrams - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 20 - -### layoutDirection - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | -| layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | - -**Notes:** - -'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. - -T = top, B = bottom, L = left, and R = right. - -Default value: 'TB' - -### minEntityWidth - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------- | ------- | -------- | ------------------ | -| minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | - -**Notes:** Expressed in pixels. Default value: 100 - -### minEntityHeight - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------- | ------- | -------- | ------------------ | -| minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | - -**Notes:** Expressed in pixels Default value: 75 - -### entityPadding - -| Parameter | Description | Type | Required | Values | -| ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ | -| entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value | - -**Notes:** - -The minimum internal padding between text in an entity box and the enclosing box borders, -expressed in pixels. - -Default value: 15 - -### stroke - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------ | -------- | -------------------- | -| stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | - -**Notes:** Default value: 'gray' - -### fill - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------- | ------ | -------- | -------------------- | -| fill | Fill color of entity boxes | string | 4 | Any recognized color | - -**Notes:** Default value: 'honeydew' - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| fontSize | Font Size in pixels | Integer | | Any Positive Value | - -**Notes:** - -Font size (expressed as an integer representing a number of pixels) Default value: 12 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## pie - -The object containing configurations specific for pie diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## requirement - -The object containing configurations specific for req diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## c4 - -The object containing configurations specific for c4 diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### c4ShapeMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------- | ------- | -------- | ------------------ | -| c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### c4ShapePadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------- | ------- | -------- | ------------------ | -| c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| width | Width of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 216 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------- | ------- | -------- | ------------------ | -| height | Height of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 60 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| boxMargin | Margin around boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### c4ShapeInRow - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------- | ------- | -------- | ------------------ | -| c4ShapeInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many shapes to place in each row. - -Default value: 4 - -### c4BoundaryInRow - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ------------------ | -| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many boundarys to place in each row. - -Default value: 2 - -### personFontSize - -This sets the font size of Person shape for the diagram - -**Notes:** Default value: 14. - -### personFontFamily - -This sets the font family of Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### personFontWeight - -This sets the font weight of Person shape for the diagram - -**Notes:** Default value: normal. - -### external_personFontSize - -This sets the font size of External Person shape for the diagram - -**Notes:** Default value: 14. - -### external_personFontFamily - -This sets the font family of External Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_personFontWeight - -This sets the font weight of External Person shape for the diagram - -**Notes:** Default value: normal. - -### systemFontSize - -This sets the font size of System shape for the diagram - -**Notes:** Default value: 14. - -### systemFontFamily - -This sets the font family of System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### systemFontWeight - -This sets the font weight of System shape for the diagram - -**Notes:** Default value: normal. - -### external_systemFontSize - -This sets the font size of External System shape for the diagram - -**Notes:** Default value: 14. - -### external_systemFontFamily - -This sets the font family of External System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_systemFontWeight - -This sets the font weight of External System shape for the diagram - -**Notes:** Default value: normal. - -### system_dbFontSize - -This sets the font size of System DB shape for the diagram - -**Notes:** Default value: 14. - -### system_dbFontFamily - -This sets the font family of System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_dbFontWeight - -This sets the font weight of System DB shape for the diagram - -**Notes:** Default value: normal. - -### external_system_dbFontSize - -This sets the font size of External System DB shape for the diagram - -**Notes:** Default value: 14. - -### external_system_dbFontFamily - -This sets the font family of External System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_dbFontWeight - -This sets the font weight of External System DB shape for the diagram - -**Notes:** Default value: normal. - -### system_queueFontSize - -This sets the font size of System Queue shape for the diagram - -**Notes:** Default value: 14. - -### system_queueFontFamily - -This sets the font family of System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_queueFontWeight - -This sets the font weight of System Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_system_queueFontSize - -This sets the font size of External System Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_system_queueFontFamily - -This sets the font family of External System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_queueFontWeight - -This sets the font weight of External System Queue shape for the diagram - -**Notes:** Default value: normal. - -### boundaryFontSize - -This sets the font size of Boundary shape for the diagram - -**Notes:** Default value: 14. - -### boundaryFontFamily - -This sets the font family of Boundary shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### boundaryFontWeight - -This sets the font weight of Boundary shape for the diagram - -**Notes:** Default value: normal. - -### messageFontSize - -This sets the font size of Message shape for the diagram - -**Notes:** Default value: 12. - -### messageFontFamily - -This sets the font family of Message shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### messageFontWeight - -This sets the font weight of Message shape for the diagram - -**Notes:** Default value: normal. - -### containerFontSize - -This sets the font size of Container shape for the diagram - -**Notes:** Default value: 14. - -### containerFontFamily - -This sets the font family of Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### containerFontWeight - -This sets the font weight of Container shape for the diagram - -**Notes:** Default value: normal. - -### external_containerFontSize - -This sets the font size of External Container shape for the diagram - -**Notes:** Default value: 14. - -### external_containerFontFamily - -This sets the font family of External Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_containerFontWeight - -This sets the font weight of External Container shape for the diagram - -**Notes:** Default value: normal. - -### container_dbFontSize - -This sets the font size of Container DB shape for the diagram - -**Notes:** Default value: 14. - -### container_dbFontFamily - -This sets the font family of Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_dbFontWeight - -This sets the font weight of Container DB shape for the diagram - -**Notes:** Default value: normal. - -### external_container_dbFontSize - -This sets the font size of External Container DB shape for the diagram - -**Notes:** Default value: 14. - -### external_container_dbFontFamily - -This sets the font family of External Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_dbFontWeight - -This sets the font weight of External Container DB shape for the diagram - -**Notes:** Default value: normal. - -### container_queueFontSize - -This sets the font size of Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### container_queueFontFamily - -This sets the font family of Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_queueFontWeight - -This sets the font weight of Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_container_queueFontSize - -This sets the font size of External Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_container_queueFontFamily - -This sets the font family of External Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_queueFontWeight - -This sets the font weight of External Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### componentFontSize - -This sets the font size of Component shape for the diagram - -**Notes:** Default value: 14. - -### componentFontFamily - -This sets the font family of Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### componentFontWeight - -This sets the font weight of Component shape for the diagram - -**Notes:** Default value: normal. - -### external_componentFontSize - -This sets the font size of External Component shape for the diagram - -**Notes:** Default value: 14. - -### external_componentFontFamily - -This sets the font family of External Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_componentFontWeight - -This sets the font weight of External Component shape for the diagram - -**Notes:** Default value: normal. - -### component_dbFontSize - -This sets the font size of Component DB shape for the diagram - -**Notes:** Default value: 14. - -### component_dbFontFamily - -This sets the font family of Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_dbFontWeight - -This sets the font weight of Component DB shape for the diagram - -**Notes:** Default value: normal. - -### external_component_dbFontSize - -This sets the font size of External Component DB shape for the diagram - -**Notes:** Default value: 14. - -### external_component_dbFontFamily - -This sets the font family of External Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_dbFontWeight - -This sets the font weight of External Component DB shape for the diagram - -**Notes:** Default value: normal. - -### component_queueFontSize - -This sets the font size of Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### component_queueFontFamily - -This sets the font family of Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_queueFontWeight - -This sets the font weight of Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_component_queueFontSize - -This sets the font size of External Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_component_queueFontFamily - -This sets the font family of External Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_queueFontWeight - -This sets the font weight of External Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: true. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -## parse - -### Parameters - -- `text` **[string][4]** -- `parseError` **[Function][5]?** - -Returns **[boolean][6]** - -## setSiteConfig - -## setSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls -to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) -will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this -function _Default value: At default, will mirror Global Config_ - -### Parameters - -- `conf` **MermaidConfig** The base currentConfig to use as siteConfig - -Returns **[object][7]** The siteConfig - -## getSiteConfig - -## getSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | -| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | - -**Notes**: Returns **any** values in siteConfig. - -Returns **[object][7]** The siteConfig - -## setConfig - -## setConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure -keys. Any values found in conf with key found in siteConfig.secure will be replaced with the -corresponding siteConfig value. - -### Parameters - -- `conf` **any** The potential currentConfig - -Returns **any** The currentConfig merged with the sanitized conf - -## render - -Function that renders an svg with a graph from a chart definition. Usage example below. - -```javascript -mermaidAPI.initialize({ - startOnLoad: true, -}); -$(function () { - const graphDefinition = 'graph TB\na-->b'; - const cb = function (svgGraph) { - console.log(svgGraph); - }; - mermaidAPI.render('id1', graphDefinition, cb); -}); -``` - -### Parameters - -- `id` **[string][4]** The id of the element to be rendered -- `text` **[string][4]** The graph definition -- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void** -- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be - inserted. If one is provided a hidden div will be inserted in the body of the page instead. The - element will be removed when rendering is completed. - -Returns **void** - -## getConfig - -| Function | Description | Type | Return Values | -| --------- | ------------------------- | ----------- | ------------------------------ | -| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | - -**Notes**: Returns **any** the currentConfig - -Returns **any** The currentConfig - -## sanitize - -| Function | Description | Type | Values | -| -------- | -------------------------------------- | ----------- | ------ | -| sanitize | Sets the siteConfig to desired values. | Put Request | None | - -Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies -options in-place - -### Parameters - -- `options` **any** The potential setConfig parameter - -## addDirective - -Pushes in a directive to the configuration - -### Parameters - -- `directive` **[object][7]** The directive to push in - -## reset - -| Function | Description | Type | Required | Values | -| -------- | ---------------------------- | ----------- | -------- | ------ | -| reset | Resets currentConfig to conf | Put Request | Required | None | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | -| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | - -**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) - -### Parameters - -- `config` (optional, default `siteConfig`) - -Returns **void** - -## initialize - -### Parameters - -- `options` **MermaidConfig** - -## - -## mermaidAPI configuration defaults - -```html - -``` - -[1]: Setup.md?id=render -[2]: 8.6.0_docs.md -[3]: #mermaidapi-configuration-defaults -[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean -[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[8]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/vdocs/config/accessibility.md b/vdocs/config/accessibility.md deleted file mode 100644 index 387871de42..0000000000 --- a/vdocs/config/accessibility.md +++ /dev/null @@ -1,208 +0,0 @@ -# Accessibility Options - -## Accessibility - -Now with Mermaid library in much wider use, we have started to work towards more accessible features, based on the feedback from the community. - -To begin with, we have added a new feature to Mermaid library, which is to support accessibility options, **Accessibility Title** and **Accessibility Description**. - -This support for accessibility options is available for all the diagrams/chart types. Also, we have tired to keep the same format for the accessibility options, so that it is easy to understand and maintain. - -## Defining Accessibility Options - -### Single line accessibility values - -The diagram authors can now add the accessibility options in the diagram definition, using the `accTitle` and `accDescr` keywords, where each keyword is followed by `:` and the string value for title and description like: - -- `accTitle: "Your Accessibility Title"` or -- `accDescr: "Your Accessibility Description"` - -**When these two options are defined, they will add a coressponding `` and `<desc>` tag in the SVG.** - -Let us take a look at the following example with a flowchart diagram: - -```mermaid-example - graph LR - accTitle: Big decisions - accDescr: Flow chart of the decision making process - A[Hard] -->|Text| B(Round) - B --> C{Decision} - C -->|One| D[Result 1] - -``` - -See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code: - -![Accessibility options rendered inside SVG](img/accessibility-div-example.png) - -### Multi-line Accessibility title/description - -You can also define the accessibility options in a multi-line format, where the keyword is followed by opening curly bracket `{` and then multiple lines, followed by a closing `}`. - -`accTitle: My single line title value` (**_single line format_**) - -vs - -`accDescr: { My multi-line description of the diagram }` (**_multi-line format_**) - -Let us look at it in the following example, with same flowchart: - -```mermaid-example - graph LR - accTitle: Big decisions - - accDescr { - My multi-line description - of the diagram - } - - A[Hard] -->|Text| B(Round) - B --> C{Decision} - C -->|One| D[Result 1] - -``` - -See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code: - -![Accessibility options rendered inside SVG](img/accessibility-div-example-2.png) - -### Sample Code Snippet for other diagram types - -#### Sequence Diagram - -```mermaid-example - sequenceDiagram - accTitle: My Sequence Diagram - accDescr: My Sequence Diagram Description - - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -#### Class Diagram - -```mermaid-example - classDiagram - accTitle: My Class Diagram - accDescr: My Class Diagram Description - - Vehicle <|-- Car -``` - -#### State Diagram - -```mermaid-example - stateDiagram - accTitle: My State Diagram - accDescr: My State Diagram Description - - s1 --> s2 - -``` - -#### Entity Relationship Diagram - -```mermaid-example - erDiagram - accTitle: My Entity Relationship Diagram - accDescr: My Entity Relationship Diagram Description - - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -#### User Journey Diagram - -```mermaid-example - journey - accTitle: My User Journey Diagram - accDescr: My User Journey Diagram Description - - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me - -``` - -#### Gantt Chart - -```mermaid-example - gantt - accTitle: My Gantt Chart Accessibility Title - accDescr: My Gantt Chart Accessibility Description - - title A Gantt Diagram - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d - -``` - -#### Pie Chart - -```mermaid-example - pie - accTitle: My Pie Chart Accessibility Title - accDescr: My Pie Chart Accessibility Description - - title Key elements in Product X - "Calcium" : 42.96 - "Potassium" : 50.05 - "Magnesium" : 10.01 - "Iron" : 5 - -``` - -#### Requirement Diagram - -```mermaid-example - requirementDiagram - accTitle: My Requirement Diagram - accDescr: My Requirement Diagram Description - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - element test_entity { - type: simulation - } - - test_entity - satisfies -> test_req - -``` - -#### Gitgraph - -```mermaid-example - gitGraph - accTitle: My Gitgraph Accessibility Title - accDescr: My Gitgraph Accessibility Description - - commit - commit - branch develop - checkout develop - commit - commit - checkout main - merge develop - commit - commit - -``` diff --git a/vdocs/config/img/accessibility-div-example-2.png b/vdocs/config/img/accessibility-div-example-2.png deleted file mode 100644 index b257edbd03f5270e5ccd3bf52878b9e7030913ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122847 zcma&N1y~$i(l!hUBxnd8oZwD?-~$AAcMmeS1Pcy<Ai+bh;KAK}umooY7~CzmyUzgM zWOv`)=h^?i-tX(Hd%F5)pL43~RNYk*p{62>jX{cmgoK1GFDIpeg!BxAgoG@C_6(6y ziH+@wgoFXHm6TMImz1Pdb9J_|bpRqE$wee3Ki5joC+c6h_TQzeA1w%3j#oiq&UyZI zS(=_MC<M;}gXN<X`LCKEG*7^vVk4OZgr0B{^#q5CzpKf8%FR@~{{B}OIN&Fq`}M)m zobQP6vFDNJivRWUM&|kRPZHMXq59P{NOMmjm{>-`lfQnK>J~#r8+}Ib9+h0*q2?<t zE-r>z`f_KJXA|<<nw9#jfy?8S$1-NOW^+CyHEwVTIhQcmCXxGPZ72;ok{s$DzYz_t z%A39CEHw4+5}lPl+!5d?f7l}k%!-bPI73DH{85^^PA}ITX<)uMJGom$_WbMi4+qxO z6I3SE$^F5t8UZFM@i`V@-!YUG={c+z;wSD{#bcVCgQ*Y34_f*GM6AYrn*Pe9zv4KF ztZI_)v-56Ok~8TuJGxPfEwh-IFqXJ>;73**81XgKylj4Hw;6*s@>}ws&5KgmuawiQ zUO+gdKJu}$xu;FsAS>xpqVrg#wU|Hd*b=cvep^anI0Gv2D86;8dds7;we6Bx3vX%r zeq%fGyFXO9PJl<qlA%v`i&#F-^3n}8NR;RL*?<p}C~$%^n^~CkcQ4AIkM-~*l<<v} zYb3s9gG+P30}oeCtyfNu?8lThtP(`fVT{DvUcs^2I=l<0pc|hAUpJP{hn}~eQQkBD z=15W^IBJz^R_amRmbbyW@NltJLSE>Lv~sq0#`)P}n0a@*BBjzHE?42-$0%;SbxM54 zAY|<)zw<WshxZhPm7f(UQt=V$kHKJe!p%>+F36uy>3$$-ePS3z4f~0u_tbY4YcYub z<oPdZ@}5sp)kxLIIF?Uw^`7W_YWRUf5LEG=k?CpDdny5x*x>aaxEas3e*r&GxCc|7 zAYBBBpO8m?@_dgKObw6<D*nol|C~fJ`KyRjIN)_46G3D!UJd~h1>QRi8`Sz2EWwdE z+{GBBK><N3;@df8YQ*k1d*NX@Goy^Jf(ENG%AcnHtTPiD`Xssf%1bok1!tJsZ$B>{ zBMjYc+0|z^06&VOAlT~m3Dc98f>PLHvgNo!Yf&Mz@^Yj!5<0I#<<K=^CSMQBk-6gU zN}5npaS31%N_Oj6EOLo|*TW*KdsT-~hprhW7-IX=sAsX~!b0YaX$?U+-!$HS7|<NQ zdUuw7_K5@f719;m6<*_W;V=H--M=S46bcX<z2v}62{Mdb2wC`C*59xS`tY<_9Y9$X z(bVI++I`B_hGP0@B}Ob*Ed00+XHD$o2AU6wuLRQT2x{sLTm`gnbZhjbkfIQ-T$-`( zJ2F^|u3sQu48Oo4hI`0*#MfTQM_4MHQTKl3ma~^H$QK%?*WlcZ$;ikE$|y6+CpUG9 zF)CT)YGHM~ccmHxTVmF73Z}BrJ2OzxHGMsfUr}Qsz>nmokD$qMD4bN|P@_~A9njo# z+(<nmznwbUJi|U)I^!h#g3*V86^e?{f<ceLNZ`cOrbfq-#&pM0OQ6e~%$lXqmM2gu zrCqCup$pcT&v)0`Egk>LZ89e{XPTOqQPrk;8+?XDm_w@JU*fPQv=^{PzxM+}rB^Go z<XetLzN=P&Bv49Qe@dNK#iPWoWshV^lviq4DyAg4pi%m;dET)>6;TVzqw-GXQs~m@ z@|v{nZ5wYhX(;I>sR(KITidjUwA8ePw`9Cjc4qZ#^)wC1HiuK7{7ds>Fx$2MfqrOR zEEH6QZEt8JYs)#aT(ndvQkqwWUrakWSK%hU9a@=I+2j;<^kS(F)a|1sqAJp{{G#2> z2WnIL_8EJWjzX&(+1Si9&Unh6?yl!f9Laam9?}hxNix7&I+Ahh2`tZ7jij-!c1ebL z4a~Ic-B-TbDDiKR9CJJI1UQ@9;W^j-${({F(CSXKO|v(!pSPFcI_EZY&~f|-A-7iH zhrV60Shhtr6wp6m1G78nbtR7^`$0sKjdk=`by<V78>T4iYk9kc`a#p66`5g%Nd{=) z*w&^)-kf}0)38(e{nYdzALL`_;ZtE?>-$zft5xgF715Og%oS$%f*>3zeCmbriz;$< zik4Vkien-5%q=0u4|X1RYX@s=u9a?-AGuuRT}nQ*Nb2Uuj`ELHHJcmz8|k)YeZ1e< zI$&@SKDugZZSXCGnO)}y7P>XNT|r4s-kiMm*7Cma9tUUw0?!W4$FI%3wS7gd_%61* zs7?aFZ>%lf#J(}Po4xzur*hYJ?Qw3ryRa61gL+4J=W)Xd>%U966~lOgCWlju{R-V3 z!-#SgF9aI{eV)iYyrkQb$NoF*FOFZVpE<+6O6E#}B`CuULLw#7x4YavZ#!i#kXey4 zpxI+R|2=ea_#1~-iIzwfP81Op{e>;g4-ZJ(KvT+|M%w=7?!!gvtL*RWTsY>#<^?qs zE*LI@F1#+s>-TF>>o7bk#&V_Rtm32rRR@JG#$I{~InvB+G3V{JUzSB1!5a(b%G;co zfgVBA!R4sdL@aEU?11=S<p@>5jI&h2ky5LeLT*h~4cXa_1LK2ja_5m3BX4Ft8xHxW zZN=+k@FgC_cZm3Z-|l7o-M$JtgWObc2XnLVEL(?JQx1_sBcY{G2FoJLY&<4RZd798 zT@C|Kv7!w#+siBVkA`h-r(c+)+}~kEY)7Tju@p1erKHKvD8k$TZeTZ2wg^L4^OA9m zU*lImA_yOcZyMQG*tzSF>($vb;T`LA<&No~o_+&{K@zCcqv7`+eCo6PlNoXYMT7K~ zt82hQ+ge-G{@M)h_WnlIAeA0fb4TO5j(1ugtUtrTz*KL<P6BskcdA{k`>H}Sy6mMJ zrRk-!`D^%%VPi-A<5d0pMUF?aYi+<|okg8r(+dl2jT9_8EF<icv!b59-7n^2yC|GJ zITpPedTR1riEUHdbxmz;Y$u%ZmJB@uIo6Xd6Jd!nx;DBF<zAiPbw$2a*UKP<OmHq( zRqQknWJsttrRJz%T#M7hX}ywg?*dy0D10<>d$<2?EQs?t>T}o&X$p|ux`w8k9_%F9 zpjpR2*pKd3Zd<)GPuXMIL;KS1Qo8>q*KUn<XFl8&<~49Sjemjf(MkGf;PTC<wi?+^ zZ~D#nfc=5J0zw)Q`js}!wcl<y^L0`HDgr_9=)F{SYkBK)Xlyn_gnypK!P`aj9{z5> zYx+4c9>*f+m3Pg$#y|mU%2N(g8;knP)-{*S3+<+|qRO!<UK7ub<<X<bfHTjc71fUd zo^KaFw2V#e&d)9K7VSGU>0aNa2k>*Qm@k8t@uw#|gs-laga<wEj$9GK2Lig@3mCbt zd2a7h(;kXLNR<p2574>~zookLAMv-oyT4nYk`)Vh^OMr+q38w*{d}v+q^gj$CsILD zOC=;i{$}ykVY%+tcGtEAC&q)uUD;Z}9K`hT>Y>%2&dl;8X=mzYU)lNX3c26@O{2$K z^NX?815b-%Ofj1Pfs6QunnO)^QIUnB=(<=+0N3L<oOi?i*z4-1`76D-vH~)S@dpD^ zq$-?T0|8tlJ4U2@Z%qTA@gL0hV)CnEr-{p1Z>^C^)eZ?&pHN$hAOY`@zE9_PlOcV1 z*ZVP=^%DiT<$gAUid%IySX#z|@@nknhD_^xt?B6raR25;@ABp*#owl;9jP9z@GU%K zF4tR=GLOXq^zGO|VI^>4z4PdOZtx&!$HF7B5GLMet3Zo2Lc5Iw>d9LvD<iQWXfz}g zWKtwl1ci*aM3Kq<P0JuNAwB&^`V%Cia9bplf0a=|-2WV35!atO|GYo_7KZd3@q~xC zyna0SpVH4jKc4;%jVyu4LlW1Nl$S@`H7#6$KqogFXLqiz2Q-KT^bd0SZb(Q(^nWg7 zc@4S~MEf(gT6*q!%1S~O&W;>rmd@rt4ll<Kf7(F;cnKj$N1(eIwU?uVlbev22+coA z2qEY{$(%IQ|0v>aFG8cItVS*A><Xmj<9NgIhDH>FnwlEmYH1~;Atm##>WC*18XI@_ z4?>)ro}Qi@o;)1RuGXAff`WpaZ@4+Rx!DmV*xkIH+|9h$o!n^u*~tI2BL#G`aJBv5 zZtLts{ij_sb7v2C5gM959sT?G=X(OZZ2!}fliR<Bg%}{`pBzpujyIhDZW~b*@F!JB z&DIO(pf6?Xh?p}(AEG?m+<<?S|NrFtr^mn4)ca3OF8;q){Y%z=SJid{x=K1bBKmX} z{m**+tKYw7{;MK@^Uu)#G8O-v=YOOkCR!8&!1?b*6UEr;q^v@$Be|`Vsutpo;Ie-l zIf!2-#P#Q%gM|FDbe}547zybelDw3-mKX9tCaNESELorF;u1x$;RjFF(6xehHERT% z1@B5U@6@|799@`>j*dv#e&Ne~`XL@nCx^Dke{5u(+PX;ZnSz;rf+bd4w+>sGYiaeq z%6yH#7#Q}mI~+&3<$NRIai+rX(O~}2W8;hZwtdN)WL=GR8TLVo^*-gA+=6s|=Udgq z?9PWQriHl%!?>BQ!>wV%!fUd(-yS6;By!8^{KHi(VTG#MBtQdCy4gnmaEFCY$WNEl zGZw%fwnY6WOJgkgtd9UqQ&gI$*swjaIh`YXWMpJ6?U>!W%l%qP%A(`Nmh}%JHI7C# zPF@a&Rnvz(E$1lazAJ7Ikw(z55;t8z4l2<DLf~uXeLa%R(8uTa&D;;ILdpGnfX5`L zt#ww>>`yO`@Xf;bi_f-Z_kuM!f;LalJ|X?({Mm`Jb`rn(fR92c;v<zsuK;O$xZL)# zo2?d)Zh{Sr<z0-)I$DY#KLl`@m^xJbkQttL-&CMhPP-wVs(M@|b3RIDH!P8bn$$cz zz(ri}?jK+_rJ6;2%IQM4F>ZBE@4{m<ZH|}yFAn)lHB&e;%kx%J-K>u^%ciLkQf6>T zxy%I`oM-rSc<!1VeTBSEUSi+*QC}V|2=~qVtoLD;8Wn)p9>2_pD<JAhdh|BB^ybLW zjv0z0`9m8PZW?2gD#yMowHT2+8dE?l$RZxW+x0xqiF7MC^{VLo;c2*oOzUB`+K55R zihF{Z*k1;Ym;}Vwsoez^2t(MsJdOz!5?OG8Cqr~@D<>cov$!nvI~o!ul|=z};0zGt z&+=uQNI_MwbmK>&pr-!hTIcDLf{}!<aUypIJS|{s<*3K?k@4A;p!_y8yGUToG)Drp z#Hgh<kxidlI~1_o=A8h4`XvAHV9xDgLY1~4aJg-cXcutirM5L>^^6EtCF6wG#dobY zO0_^Csea>rt@$0N#wnYSJb^uaG!Elcnl+58t_|S$8*9dect~v>f^#q>#)ej*3YX z{dJlGc|-}r6{hOtJ8|pQL02x!WIaNzRd1sX&K5JxSN?4;<aQTLFgaeNs)~w9_~RSB z0-DSz%|?{cj?c*|a;B)8%+_EkEh7+`#V!$G{X`F6%<~A4DdeB#wA{>Gw}n5WQT-12 z>|_8xhpD5=^LQ!YH>*y0et}|2LQxSTHpN}2^gN<Xjq!YWwk{(<@3V~vhinfMRp=Vu zTtw3qGhDh^Nz}YYF8-Rl!T!1?^iu|Pz?0i(y_8+Bx7w&9=;L9U^t9#RHx1-p&}2-k zHiaPFr_Ajy70)&yvK<{A8y*`>OE?{>p_s(E1`T%eZ5)O`X`-z?|8d4qQM=pMnE-E% zM$Q2EjTXqAnMHG+4ZKha+k~XJ?@clb9q-Eq1qJooPfXN(HzsNXe_@M;v0xf9oW?Cx zo0&qkOAKc?w8}mzzxc-C+jwx+qP4xZGsIJTb}}|KsO}lZ3b-N{^3&t1a7g7&d}Aij zo{9_akIVkSsG6<zTOyQ6Iqfa?gU6LFW!a54z-@~SIGn6~ML}7m66NwnB|{+BnV_iI zWnIRmi4_^3;^hk)*k;xPD57F)5NC@N(D)@U;akiIa)s5fYS+@y%j3C3o9A46-?)L( z=rK1(G7Sqi#YSS2O35FTmfC=rBEDDAds7vXEv}on6vCeIadB~Moi2GeY+2qfaL};} z;O2hsMZ;fE5J3|;H;2<xz{$+Y`gK;k^On$crImGV4r37AF}@hB?L=Xce^|DsVYcek zp1bZ1Vy<@QFZUCfEf`#eDdUNJVONf4tsjEEMI8&n1@p;y{7%;jgpy=ASb^X~A~U}; zhCVP_%m?aEFsf_R4%sHB<y-=04Ye({)DrVh4BWdG78SiWWAS<YJAIdAxvHUGWwQWl zZj79S%o=oE?VHeC;WZfD^-Q;ki97Quo_3{CJUE$Mk+HYA!}pp}A&G^M*Wsk&fVT97 zNA%&kSkuH@4L}PJ-rwV?PRWxc7N~OD!=oqR=L|_?&I37Mym(Pqx8^JJtw)~5Z-p1{ zejgnZ6aRX>7*M9x;TPijbA|o}CV0KOZ3f-k)|)ET{?f^_H!=ma?Fh@u6*FqvQEdty z^8eCLa)bjHS;(?*LN<?<OAv~IXPw=g;-5-H6H|z}1Zxy1No$vCaf@yn`)6q_!C^sS zJc;Ya_a&N!56c=ZvE<o{-bxSY92#REduf$BfInq~xF22u*;A541s9iS4k0Hg1kJEo zEQpTaa}f+bIo+PyJbN5w#a*_<b~_b?M4=k#EKN6mCg;!aL^|Uh=&Ps@0c7Nth#l|W z=a+9tA(c$HsrY~w7zLW=D&rCIvOAT>#&&NSxRMU6vIa6u%<)if7jw^^vW`dC_J`~c zTB+Mb6;u?jhKI&fPaP&t?A|gm>kcn!)moFVjMl&GRmEHR(zG2BJK8JJz5V%_EK^!< zO6NnyyWU7b-ZiU{3~900n?Zr5ZIXv>&&e8#=e}bvLa78ke4TIHr|xakWK`AL_&o^y zRsaT9Q!F&;DbcyE;&jW7mg^_4rL+79eC&98Qir@Z=_o79h^jwJdUH!Wt}p;PQx!XW z&912Ta+E@qt$J!=(sttV{ce>>J82Bby)OzTuCD}fRNA4i`?ob^N-i_rz-0%nUrB-z zEwRr|EJO9yBAbm2V^KqLB%db)C_C8p9Y%pGjO!H8K1t^)5CH+IdVG#oW+Cp3u~hL1 zPSd#FfHTAAa{$j2`t|x<o}Iu)*j#R`goNH~bwG^tcOeq72USwxBOK<o0>ZWKMelR% zM8H}8^o6ZvE&&%C_nd&srDzFy{jbl@#|o7VH!Rys;GdB1cj}PuFR6E}k%1>)b6mM6 zg=(##M`v?#U#WvU5;eC0@_N;yWn9B1R{JhpN!Dtd3v+|&Ni$397^bp8!CTgLyW`UF zk+DK$n~>yJ_|;WqooD&CjF}+3&i6U3oE<kAGBKpIpW9T)8<+t*yA-E&Kc@nJT5DX? ztB8F(u(6x2kH8&D7{6S$r|t(3{R|{M&BN`_qE}2A`}*1x{3f%8)uMnj>ZSlc>y35) zgVk`_Xqz|YhT!AvMnddG_w@?tHa00=vW4FaN2cxX++G=zq}Aij$NXo<GrC25aj{n- zM~r#>(FM$!h0;v@%iEeEAx<y8zqQ3c7*EGNm(V+FnfwCQDBS(}$o8z%{;Bx}`(5$z zM^HZ)4I3d9LKpd{n&RG2mX*7058;_h0zFvb+I_DJu*vxKLrN0BNi1VGrxxrTzO#xe z?S{Hh$DFslQE$kms~TR~nxEfPRi?&`L~pVkUG9vrcD?G`grD~7*^M{j`tI)3SWMOe z?RT$50>fxv856piqZ4Ot1OB&hVhjVW<&P)VJzK-+B)=;CRQ3<wVvGYU`lInIG&R{b zl05e&ZQq`4n{M*V<@xfTid-b<#y{RodhPC==Od&s%FSJ3x)2a=ijWgcU|oq*S>yXz zRzQZ{2Zir6ud#guhMaKWh9_}Kd6w{Sh@ocCRw&!JXbUW)ui#NROdFQNaCmE0B<%-2 zU@o~VygKWZBjgg=gr0d?)Ldn0<=QiY)kRYLY&Ck<(VkEv{pDO0Kt?l;uU?~ir~A?9 z+uBrWXc3!6qrpP*S-|@&CS8dX1+~qEy~MYY+(IJ#>6MuFoF9#2uYM@4If{O4?OYIt z$s8mHJamhdD_k;3W@Rd>-{oGdB)V(wq={H__&?r%(5F(3ohj2zx#>S!>s1_p9tUTr zEwosaoiZ>PS{*DknHF~X?Q*l@?apG8nA=8l0|_~Gl=@ok`n7Wuvr$&*$>;1|msH2L zc>SgsHmz1O*usLj7MBgzrbFZ9#RJko`sc}gQuwM5me6?P4zu=v`)B%moY{Sl;@wzj zj;x>WuYWzqF7dl{C16UH-$1wi=y2MHKL)C!cV7Y#O0{Xl%|^)?#0{qlr*m6YuT))} z9o%ZKtQX9ZqL)2sTvf;r;L0Q*3Rd{^dvo85M0nF{Eqdj_y2%qNIv=?D$#1_|ne1FD zF8XDlf&b*VIi7N;u<yox7XJ#{Gt?DKzImYPj(H^;T6MaJZ)HaQn*3-aA?qvcI(jTs zn%3^qjj>AOt?h@4l8Ji%eibuql7`WOJu8*DT3{Y3CNT-V-E@KhO9hXt?r}oeJ57(8 zPY~zief%R~Pp3R1LAO%63j`Ox{yv?&hOD~biHCnJ*i-i_S=hXaGj(LT&WvF7M>u<0 zp-QHco_j?5jAbU^YBxC#;8d+$=2{8(%)&{PnMyu&-rLhWUTG|QJ5=+g>q&%2e?mP% zrAQgu9?7Bs3c`f$SfeC1S+%}B!M+a95&=P6{Ni6a-qgtpdZHN@_3+FzM|eN^ZhB$^ zJMB*dc)QMb__z8IwN%d4S!p!bX=^u(=Sr|Im2nae>AdjRPeskI3d1fqGMCU5)a_HC zZ#;pZ4fmpO2U@ZIic0YXvgT`-4F@-i?pB0wXnS@B_%mfz*BW$~C!OBbSzRhb5$kIi zc(~^uyUeTlUg8E{S*2EZl*Q$5zKtT%?CIfaO3E&fj@oJ+K2vGntfe(XZgiT^VQ5+P z9Fb6~8JVf@Rh@5i6t4L+U*yS2n`X+SmfVid0H^OhL^rN-D}PJ6lP`<zlM#bz@DO{Y z<hQbZ?BSs8xIcf>vby~l^_xT&OBnm*toavH&~IM|C&Xc{?bm7<rZM2?{F>BcJe4BK zkk@|l4N6rKYce{7L6wAfp+9hLAn;K@D7kLaI<<D|7z=*?MQj3(QC`V@x|}CVoVOC- zf0u|s%w>oveHjdmCV3qFlKmjd_I9s~8DX$|>Y;3}O=<|$_5{8*sC{2}biDmkjF$3w zqT8mMPf<0^;bK8LJV2w&3foLSO;fKj3_tvwr^l)5#^tQ_N2x4D(rB**NnGe+;0=r| zaOC_LJs|AH=LTeiP#}!Qa6uBzVRB~sH$Aij2UO*eiDe(^R~C8&nywBgIus*ycQNww zj;!z0GQ3>azU@d5%YG12J=NHNY;*1mP=zyTp#kCPRgc4*OyU~nm?CavBR_unZ*7O4 z=by?+7Wky(nRnH)>2Gb2qdfnMv_VLoRVHLEW*lqjcWhi{LMQts6WMe91H)mmk=Wt4 zj~RA6N}_ct-?K#gtl}-wwxwv7ru=oIo2y6POhk_-02fOeA<-YM09bz1``>p?!{c?Q z)q$Yh4F_jUJ-P4FKB?QkB{h!#w;O?{lKc{F6-Z`57AywkAw%bos?OA&Z(K6mT)Xcz z$i@Qihnr-Yk4}YLdx|x2JW~Q6AD-6wIpsC9B9sR8rk9Rvxvd}fU$6Hp<P!b%qhY{T zG9RaxXcm4#P!&VQKgX`3^z7B)GQy^o24x4{PJO}0r;{OHVf1jm72Q=)VteIcE>A52 zuJ=ACqK&2P*+_IzCF6Cn19@`J(zKT`O1$KbkXON{s#yA7vmVX&MIL+K#`^)pPul5s z8#%^sB&#lXBs*k^Mx##ep$I?QWVQ4^=C`qI0-W|Wx?sC)kMNI&hKHwX`Q8eCD015p zEm1y7U6`x0j<I^<%)6y`uH_%PUXeZ4tC&nWV^3jCaFiRKjq0@hjXrt3+9ab4`oknl z?*Y>M%xtPeR(dZk!Uee4d|J!?^chxk{So4w2i*O{4qLwORdvzKtQN$bE{3z{l-l*6 z@0<84yD?>mU5C(zvQ-WDA1cA;idw}@vEp4C>}GgQ&kKajc<I))vNxf`0ZuJq9=qei zbW++PE#$PB6s#?551pRJqWZ}`Dm^G5bv~G2OjT7jZsGi|-)oyVv>8>Zm$$`7owWXO z3kCBw_o)n0Vzf?|d%QAaCgI^#nhlC*c^}I*U{!r|r>-$e?vY%9TQZyGKIPG+0fwiG zo`g6~*$wMlBh#KwI*J-a882ZYD^rR4Q)O}G;V@=lkxZ`^=`i%DkEvD<aMZJm$KrsB zEP7fAujPxIs;1EU*x1d^dp-pdM$-x2(|bihGkxo5!C}LCtzR;;!Kj!qZw#|U{b3N- zTi;Kvu&d(~Gru_RgZhu=x4?;53SstO<J*i5pUcu-uUz8dK6T%0V$DJ&-uZ!b=0M^J zia6r60y+`7yG-vaEvwh=WFB1jr)w#ZwcZ2}j5IjE@tcYpo0{I^N_A$Lw8j^UHX!eV zuwg%zuYoWZgNKSOk@aSbMgh@|^I0ZXTy$r8NHwtMxoNX?4@LHwUE3Cl5r30-QdNMb ztKri|qqi;#zuzID{PoOb_~|SE6a5LCc5Tf^Y@&7xGlq%=F8R5)Ql#56?dW!?0V0oX zd~WxE|2pP+XkEseGs{rr%V5u16K0eJnV7MC{<_a?|HxLrzH*bw;#;uaPVnd@RIF|T zM?C9i4ZX%tnn?c_ewJ}SjrNWPK09FSMktduA-KEaPKJ9kLdL#7Va1L{A)A1}d7tbz zfCP9r8B*9lU4m(x!ePqC5bn(#41?@{0JP**Ml8ICv~Wk5m66MKFEivsF^-mJ8)pG5 zx8l)(v9;q9f^ON9C<e!(_ZKwzou-daOIVLaj10LdUs*t|YCtK9xhahWw}D=K>H8+~ zsr*1oi4+94FTayzl)VHTAQ(MV+GT4vINr7EtgA;NPSpFZ_kG<!9z%t;!TnD3=%!Mj zc0!?K_=}0Mgn%jHThd%scXWHgyyFOwa+*o{D{rnfZyFs>HcOAaMeV-x5Z<_7iwqA+ zQ>Hqj=d<SvWUNzeIen@}kL1&hj?eR$dKC_yT85NBQ9FvJV__hc8H2Wo38C?8(DjX0 za&N+MqY+fq7ve?4Z_>2x+ch)jpGdL7`C#%>De?V?5h128r^Scm??fPS#HYhvDbN9h z!%rJ9qJX-Q)dP7cO%8Lev?~6O8fKu`lDjm#20bRLKReF)+QTJc$6*x@*noEG5u43} zJkrOGLqfktQ}OylW8p)xNOwc&YYwX5{wjh~#QIWNu`ryK1qNk9y|((oHAjlf`;12I zFiHltDj-?2e`5xR`>tbCk`9jMdOHv2@l6K6)|^ZEex_Hi{UBVID(xz65&!pQZ-FxL zcR$?>-cT{@nS_N)DoRha2NershzX_f&OB_r5)D{!Sg(;>^TR|c=NrCT%OZnQI$rCf zvwFv~09^bRe`D8oKSdEr>0@n++g4+5TqJLH`5WV9%GFUrcZD51MLZemiWJzY!iIA} z9qQ~ZDx)&|soecfvtNpWx*?U$9k(MlIl~F&(~nbe?hmI9kSDJjF^u>59o|+(G0u5? zi()jKq>D1&I?6+ED0qIWDBEO7xSis1+1IquSQ*JBL(fSrY!078Ci*5j`uIlPx}6C# zii4M{>zez`NvX7uXT}K%P3P_XW_6YF;){+Km)ZLpkANJ9zp^c4I(<T6wVr=&gNbq9 zePof5H>fa*p%gG>sxPH})EARp8}~u%_eaAxX}`+5_*q&tpc`ZiHwQ9ht>*kAFCou| z@~Xe5xohp~n)mq@yM6&4ofmgTwspIcy&@9H?J<>g2#57u8EKsZdb;m*do4|5<!FP| zu)*ihih!bP5yNQ^{4B_>%p9B@bCpqNQNW_P#2A1c+<hT$dfAd|cv<>!0grjEOFjv5 zKc3~5e_Zm`D2qKn!RR;i^UUGwleC4)rR#3s6sUM`I`UxlN!CR5yO*h&*8+uXe|VAB z-a^Y|<?$rXWhE6oP^UP6P~U{e*L!hGwEuect}fFwO+y9U*ba#7zo=<DX^oC4d|(c{ zshY2dz2lv`a~j&cfff4nIq2ipysTVHdN;hz7G5Ke2Udf|;eEReDDk_)RP<97@H^Wm z;jW?$%(&0c0oFFqb$;zy<4wuA`}~kDUN9A>u(M|G+E?<B8|OW;5y!?}Rh$!`sm$@_ zm%G;ivgSaHY&<aHW&aZbOe3R_oG}<}PZ^T&j=3V6eSfl%(X*;8+$3N3`*;V|CjEvL zACIra;CFz(VY6-a2x#`+x8FlNGElADra{WUs~xS*EEG7Um^kXO0qxe|Vz{+XxPRC3 zk@{@&B5OI2C8hg2Z8E2pH$rBdlKtL$?xrPsc~uvHi;#(HK(on(iaU?f5OPDSp2XDx z2DpQA7>g52O#2`jQAG3bN&u`KY_1VZXZT{)6`xTh*}K_ciTRhL_0NESr`an%KBlZU zttLqanGma570Z*pm`Q<-@5c_xW3^Lm2BwE_80sLg32-}SefRi>I)MJRCR;6pp_pFC z0~2Q-7<Lh0dDzrw6s;DNfE<fvTq*k5N0S_({7<lUlJYEyR5HB|VLa;Xh$hNLWmL`j z2Kml>)tJnodFUpy<67TYi<(`!kX-%qQ1f(*5X1n#O;Jx~nOKe&6LV-GWYr}BR!>!m zY=iYm=5yJ4X3t`~-IKwkO2l+i_dtk)Juv}+WxcL)tzpsc^Wr;7!-Uc+X^;8`zgq3= z*6ze9th)C_4D&4&aKV9CcE#Jp<f#~?ljH1vioHud!ToLGfJv{S6;2|B!-zV#c~DmJ z{dD#roI*;F-klkf&LmQ0Q{8sbUrmv#|LWAV!H|N21mbZzGR@N$+_Y9IC2k_55qkRF z7k-1jo{@U)sk<*a>^LsXOLRoxF%qES*24C!%v!ubd&%^EQHN~Oe_M1X+HI>foM+S3 z0KqXqwvSL>B^(af_WTBuID^d3fe9l1Ct7i}C;Jk*U$4su1+{YB6jjJNk4-whz=iKV zD_$4Sr*-s*gm6gX$^HjBLx5=2%19C^Ycv7QC`T<0=87Ej+^6w@lLxOry_WmWqrjyh z907`>^QYYSrEO%gG#%Q*5Rx;)z%pSr{&AAa7YlZvZI~U2ur3?O3!Uo04D9>0d2Km= zv_KUN1qEf+LG&2=V!x^r!ryR7wQA?uYgK52BE!o(AYInv<n20@yiT9gTmkA$sr@vT zQaXOF^8I~Qv37ztiwZGl)<;IHiTAeTOwiY|FY>r6G-?B-1#eu>UCZSqh@6%TzbnXs zS2hcrI>^8q)Tc<IFKj50($v&6raCFgF@0;kXQT|5X>`x|v(sA1GRR(DfT=XsBh!9b zMNx5bo(C|nRiB@O@n`IuDJbh`+_=U}FAIhy>8h8X`9Bc=Nz5SNw@uzw7Oe9Qqf#6$ z;jFJZ5Uf2%tIj_dk{EW*zG)OtHnehg!rFje(%`h%)jNXIm!q_!NOfBF3O>s!R@i;H z`AJfe3bILgE6O9>5zygj=PkJ`%+6iJaP5d*g?L5R^7=~1oLfNS4G=A0+5?k(>(_6P zCXozzzXY}6=Y39$5@I77d{AOB7#ixTaH6)-`!A6d8@+kg5zDrrFKkRV&E7HTDMcCh z2;X;}Q=MuaTFH@#BVp~n;gR>;^VU(6*>kyq|KTY?huZ;<)7hWCBWG>}8BVrkT^D(v zW43ak^$hQ<4Ca)H+8cMvuGa}pB)y$=UYF4b+|}VIqI~9;;zC(lYsXThtTckXQYu#b ztcg4EKuT+#MGd}JJE;y6@cBBn0DRYbKWrmW^1lhJPoMmsyaYK^d%GS-?CzL`D{Dr< zfv1udGP{Eejq~ID#9IdnJM*FfYjhaSZ^}bB{7a&Rt)0_vo+lV!NEYbp1;*~eU2Cl1 zbth=-Zqhqz5tt9Z_737yw7r!ujeTwv1k^oXcXxx0Zm^1LWp&#N+Rjk$%;2tfmqK>= z*o1U{6$7enxt?v)D-)m4g`Y$;jTtPGrWjusSp;$V=UnYfUtNZQ6!I_)?U=d!cWF#w z2Pjk;^i7@Algf^v$T^DY5%5>|UE&+OLPYyRmI-zEHt;K<YnKP-s%(L2g>6mdc$(S> zAKh&6cHTR(hekHb%X*Nhi0Kif?&LQ|07opvb+{!Ie-3ave66ZnTMAsc;M;vb7%**q z#MjTW$QwT1oz)|RmtM1)KQsx7y48Jq>n0t+uvnxgRr7JrM2JVHw6TT7eXdq(JmtjV zbyt?=VNCfkGla`zd4jN?Q_`sQ<M7QfSmaB&$y8jTO*dq}RJ5$?JC`A)^wu&_j$)_G zgUN@J)z{q;);~W5`P371e~%HdcO|M4FzLLWCNf4y-5P&*(<d4ga)fxQSx!zOJcblx zIR;QBX|AIOF4uk?Sg)y-*xqEHQowSUD-ouDSMzeK*zL;Az?5$+IcdI2Ix5D#_F-hi zQ9~l-l6yhDVJ7vMvXqT7@adB$(T{D5=J_gUifxQ%Ada%=72sae45+e9DX5h*-9caf zwh~~SKNHwLSE@)1;wTrSdL1!yBU#HvRGGLgRCNHdT;nUgDy9v0Nq3AeXAz728$yWm zqzdibj!$n_VO$EC(TcxE2o)8Z40BNkhlxqoT|b&LWqCk#F_oI3*otL{3we~WZ@{cA z=okSh)O)*2?`R~5z%9}l(=t39xC#P_&%Y@heFVvwi=Y=g{`e@hv(~r^Sr<s_Pqo*; ze+j>;5a~}g7#d2R{rCX){#^7hEzo&bCQ$dYNH~C1Px+_5s?DB63b<SBYKp8IfV>k6 zD`aSOU~lii=P5nBLctp8x6PfWl{S`ikFy*9vLEdr&!-*d1Iy+Q4Wv*JNtq_{@mY#2 zbDGLoyRGo+;5#Bd`lFp$GmbWAmQu;mmp7lMHM7ZvaQtDkio3H<jpd0K^&qjrKEfrI zAXr-MqK0`ho}-s)@qm%irEZq{c7Vga;Of1dK<uNe?vD9Bt9J6`hKuFQu!{oQ2K<ki zn5<z3sGo|{&fu{quuCsPI2N?06GrUTzC(04#b-e}vUke}$Xp>{G0+INWHQTQPsrcT z&w;mh^UWpAms(MC2zx_D7KVk4x*)IUZuaoiS<i)@ZIy{`_taVDbT&ygHaXpKMFlkV z9)|M@s_Y)h;ncKdzu)3=2_hfd9=LHfj?J@Z!3%<2J`RD<CKg-Hu>;y9f?W5!)z+(O z7uSyMO925odQ20Ud)q@?3hLV{(Fh5)zcP3W>uk{6bb*!kldJ5Pj&2T}=g;Q{u54fJ z=(r)&7TV5HFNbm5b!q8K;g~?Eerq6DIlgm_@6y<rg7CKyF^DgK)Fnc`;raP^;nw}r z7Nkou4d<s#hqfmPXq&Wuw@%+tyCOsv&9+6)*@J$65hZVpHu2*tvrgB$xWw-D7p3o8 z4t~_mA|Qe!&HY|ZTfj<>GyL={G*-ZPXKi!c>&eP;pf=_4=iKFwTj=cj%7eH4*9bq0 z638PS43WKOH!=~8TUb@;r-@F3-<jRSg)wzYgm!GiHrVviAaTNSRY9kgSq2ZisS!xl zm9oS&UgHzV6YOIb{LbFD#6Xw6nLd1G@TtE>!aF!axoE_%wJ7r*9s55BvJ1S$Z95tO zkS8%NN;cd;r)_s^^*rX<`^`6x*h}7Y+s;;*`noSzv3Ax;q!`%6F-m&7_D`e4R`?iU zM=}5YIdxU+_s2N+y}2_UYV_PNrntkwQM_viheF7~{Ina_MWbOZK93eZ6QQt8UzSBE z1Xz{#v+vjM0T2wyVM-;N^tH^e<>dZ7Yt=vakqDp_cyrjK?h4or_;HON8&^5nJHzL` z^G2WeT)?GkVa@e+`Fx}9a`{7BPodpP@t8$4KuFA9d?KkvW9oP5Xz#7{&`rOM>8EN} zwQNSaT>;v0@VeZ}`k5A)w?-Cwy?g(C#`Q0Avz}y4d{`-#C#G>}VCk85pgL3}{QN!+ z%xr}ab6g@iGE+K+r*QwsW5&RT{aAL>NeJh(&hPd9N83e1fAZCist#dpF$8{m=SH#6 z7nqrHCd{48iSSpg_OA!K4yj%;+OrDX!_ezCkJS%u^tJuJ_cPlUVP3H*iTYd&$aSr6 z<@PG(H(Q}##MNa_Eb3~J>3!8&scG>$ddd<TM{ad!L<mA`v|5=6j8lumuPxvvEkc_4 z!LjH#YRDzU6Xg{r!!y(7e(`uA1OuJr^G<gPx<jfl?fqk1n^ja=Yi0~4usOF)<=$ch zKmRYglpvhsWrik-6Gf}|DPDikg*5ko--M!4E_Jq{42eDjSkPme@b$4Uikr<WGGy}H z$W$SVHx$rWdyZEyh!6#qs<s<0J+uLn->f6XW9bScpI>YCMQ>e20PT0y8xLdr2w8Q0 zye-kxT%9UI1P|DfEF*lLqzK=q4C&HD(+Uz^g13y?1N@fBr0r(1Raez+u{j?1s8m+z z-PjtvBJc_k!k~V-*8624gTq(|&zE}O#L<vHAzYR+FY*~SS;F_Bcv}H~M398-Oyv?C zgO6oe4MMQgSt-X{9Gxv9LPS`!E3F9n50w#Kj|S(JWKpuw6|~1QNR^zD(16=k5|6bC zUP4*l<*eNbIH}BLb=!0R;CD!`nEZoPxAN=DCQH3^zKY%Lcrg->YT3453L-vN-^>t^ zJ47yP*!p)5u;1Jca4L&DkE)(pz+~XhcX@E1%RP;g_V;*QM4N*N;XP8t(S{&*+$3g- znz+aa^-|+)5%Yk9?}oADg87eCV*Q4Th9o;1R2-ca{Ub7!FUN421FO$3F7iXr@#F$C znq6#8b5X~u9&wXD(lIndQ*ULzmVBnbG2dc2C_%fZ9XIRzMJ5*BI}mU=&-+<=jvE;L zp<~-LP(&#!3SABlGOXSmhW&+P*9jJzIoV+EIrkXnMKPI|yXm<l+F*Cj<?T(8gG(Ex z3H#{CzDJ1v@vZlnmfdn23BqaIip$8*SL}P8)pKaw?_cyT2u>IBOvw8z@zif;Jw@r& zuvkp`+XRcH<IZ~pcEiSM!!%at4-Yd5zrw8SE56_s&Kfe2J^oVlJP>ZBueqzyt>5T- zyaaHq&=G7CoJ8LNm5%fQzj4a;pz_JQzf5=T%=11s5lH~>od{$Jx>>E0oQk?6Y81L3 zooj4E0%}t5d7Z`=nG*U#59aE|4i}nshf?cmRgU5onjDk$dqX&RoloP*Wf74M%>6Mp zr|V?BXXk8J58t+hJsk>+T3qE3x;KzA4$ggClNZj6@CVhKtuyQ`wN~}kt+Xie<H0sZ zhe#%ht%gat+waH|8P{-3HTNb<<diZX)K-JpnW@}BEqNMpibG!n2ugb@@o5O^Ul?NT z5{b{xaSMC?YW;B~Q2EC*?BzJMez10#?dnf)nVUUrNbk0v%Q^r=`I_bHOQ0oJ600`e zy=~(~REnG2fhyyDW0wCz1`$oBx=3JF4J4K4IdJGCa_;frI`35x#;e^~{0WN!Y2b@2 zl;<l&<3RA><YEdYF^AOa*RN#)SJB$5&TbKbCM8xCpo65?PO39c(j)tW$#VhA0piL1 zi7f7D7{m1#a{?n?An~eov0o^d`>-T|(K4+>vuJD}JFox|H6Sh-j+JbN(Bx8LCLaX2 zlcQ2TZg@Vwr1&BR#YcE`)}-0;@+%Da)R)^R`viT#$z?Wv%b9|QlJei^UZ3VZN6#@T zT!%6r)lI9keV38YO8({N3{GTLK3(snb<R$xZG%1!kh#CR<f?5s6Re0EgqOQzuX25> ziib{JyFNyB5HPBc=W$#W!%W(Jc+)PSSW(RbDt|<sApHJwm1;|gCWHDC$YZi(qQ6?! z%-uU(Y|~k1V4$`6HvrW9`w5|=VMf|e-Q$ut(9882Jx1{{T_~yFh}SJaZ|w7vYoqw> zITov;SXe9Gebk8arXX0m|MN`~&3_ph@7|)nJBSiR299|ku$Bpg%O<+%@djIDd3!%= zWobv3M&Tts5s|azp0kbttheX0bS9jkxR#+-1>(z7?U5+buVXY(1g-aKO@Vyp^^I+3 zQwcq{I@_zzoZ>TCi>*kR6zrrZYc&nLU-B~4DfmsxN!AM+k!sXRFo|V-IPd6i6~k<h zBAkIZtMA9I1W%>JYB+B2`&~8#AQ0Z|CW9%%pDZ|3-n3qZGxZ+(e1l&W%nxrI7Z9OG zBv=&{x8)PE9wW(tKIyYi#bc?4qR%WT*KBJ|4;59==`#VAxIEc_x;c>J)yQGe;IvJf zQCfg$3znzA(vu#ORso|GM(K82sAKKNQh?R2)Ao+PMl!2J{+CgdORGEL&*4&E)&qth z1p01U``b;kEpa<KpK&ohync7+SnDu%#^fdp!<uLLnxdi!(I|mYOw}rI@m4ZLJ>43H z{9q~Sdu9R}nlE`Mn0GqfiG2XCC%%lvio!pda0ms%x{H10*1#08Vv=(T;z?yxb9dpe z0$1>OM9bW~bId|MTiDIOOwJ#$&xa^P?RC^_vrB?Q-orr|j2;C|JEmr6&i(Y(;hqFc z1enfFmyuzOL%3P$stN0yHuG*=V9))zdYt_2s?=1V*E35{{yJT()OOe9<>kKiMxb#? zAF2n%RczxG%bF0v-=a11dndl4Z_XSt?NQypea&hZ%O2?tQ5}J9o0ypNd7_=J1;=Z% zUqV*IW=}l@M!K)x2?i7jMziyJ`~j%jD-Jv@*|v`d>_~JnMdC0U?<i8r#?P}V!MhOp zv+<>?#h|Cp9Yw>9s8)EE5Z}RYauE25PABC9VEb5}MX5^mcFKQ7j7-Z&OI9|UQ9HJy zpR;KYS5YZxCO)sDpBqNu0+J@?bg9z0TwVDL5A2nVQif8tY@ZLsUr}TK&1Ob`eDB8y zm2<w<u|`$O)TODP#?mug=rEzemI}1I$JHVotXMhtwbqkqZrD8nV7I@!WzU9B9p-8k z?3tPfC}SjgqzH}MePV)xog(;6&%uq-+8JJY@(1FyXNwG6L5jN*MMdTMbpuWDd0-f5 ztv5e*)gR%6)anXmZuP1Y)ePZ(U$M|N)9XCPgA?G(r(2oP70i+4QOobj!N9ah1|Ldi zpZdnA`XDnOq_Fbhi8&R8nLer9=~^E?5g;|6Fz%9U&3R41;+$syU__$3j3R5jZwcv; ziohFm@Vz>quZb>Os32<ju;r<(_ZBnWB-RYx@+(>E$i2#<T#Lxqfqgbt+Re71FZ+0| zZu=`VLAXkmQ;`juNo*!7T&xJ|%#ELw{$|EbN3{rEn(6n@nJuHX(CDZ|5X<%MU7HPU z`LCzF*RieRdmNg5N{RG}TXLPUC)OZ6jkw^?p9?&44REQSrCAe@81@I|1*!PVvP7_> zq|zHs)_4Gwgf7X$I?)i5Q~Sj?qqkzJW|QbTF9aQ50kS`k<<g`>u83i{<RqAx75ELX zw_PwzW?B)6tAFkuRcS(er@7Z=E63(77x!6WlZ84$gE5v(c<rz5E(Dz`k0hb{7TNWq zeGUX$Iv4F<NSxO`di9Q_;sDjv6hGZnZvK3O-T1|>=8DgYN~0fmUlT_+6-c-;!$T7g z+XuwXOAu@<+%y<*{=JfT^D`n~_fr`PrHS{uz)fyW-+8Bg#zajvv7IjnOF-}&j_rTF z!J;Gr?jsYB*l~R-MS%PdANa`#?n}tIJZ4#;GAYF0p{pxv;_i~nW-Wj4TWGug<FcR{ zAID86wfioNd~Ti*(g%Ev_DBC*W<##=^|+b%Fc)?sZ*n;NN;{9*U0NFL^lxVR%Q^&N z-4etZ!omMe3iqE`$K*kXK#A8iII+X~53V~e_vY$ahXqjZ?ukPx{b5%V(~b)p-x5D} zzOtO~!MVo!M`zCvw%Br5>lgcf$NeFQ8&3RBqnlx^+q_5Ap^IoaT@{fUTii#+v@6)d zlK<+A`Xwv6QHNjZ)v?&S?GYGQr0^S~qRj2tW&tU0X_UViMh}>;KUrq@`za3U(u-Ui zQ5(75D8eZAVF}?sQ@5H)cLG0kn-}&=X}eO8EK^&nmtU5D(QNZK5Y<Z)G0Jx4vtr`E zYv%uDQU3Fh+5k~l8k36q&)WUp&Nk*h11IpF#Qb}_!e4`>{!PDRM-<Kt#Yq+a|Lyqi ziOU2CZ<cc;U=Q^#!IXcU-M`Xbh!BOxy26M4wz&W9`0s>sBqAb{Uz+kV`2RLK#PFq} z5QS}iOIrPHLjT(Lf9N27X(Wl6becGy|Ca&gO0QPnf^;fP6o=E^MiOCJKKp+d=*{s< zFZ+;6l_ekaoc*U?jJam7w;BhfRjHP9K&G5O7PZp^j3<T)ZJF6FklU~CHNct`Efcqw zSg?S3Wk&0)ui{H8mxVX-Yl@G-LUp^p3Sfy9t}pBWj6NPamn{=w`P;Z@!kaYM@Jc3Z zN)xtuX+*rl&cK84hUd|1V;n!FK~1_JfZK1HNd_d$+G!!U;6Q{%G|VEV9hS1In+5jQ zQNQD?JkMjl=a&ndK&8@1KAWT2xUYJ)DCnOq;RMLFOij=XGbed0O9}e;zq6Mfu2)$I zhliu-3re|A3?j860Z_!x`mn(r=~>Ov^C<vWw>4&>pcL-WssGN~zR^{vGb;!+l@|X6 z<OiojM=r`Bp4?-8+dA{C*mqYgi2R|a=X6~U>EkDraGSw$#Yt-$v%5QDs7-_YTpQ#q z{2bq%amO~q^;^*w)$abJ!noFrnlG5`Boga&(aC1o9VIGLvXkE)craDRO5;-G16wH& z|4vA2DR}IBV1(NW+-KU8hdv9{Xg|d+E`NEw`d>orzaE!gJaH}<?QMECZG3e61LBiZ z(C_K2G0a)08GCk_S&0yUB&ouol~pi`ywt$E!C?DosM2jzey(Q!=iQ$p)awsJCYmvO zd|<nbPJ4-zxN5lJ43LmsDgNu7F_jd0f^5Aj&+5;o|Lga7l1+0mjbZFZJX;!t%Bkns z8!L*Q1M#C;WOk3Ca7kP1iIB{`0L$8rx8r@NL<!N5j%%ouh<n0pb9@^n!|0U~!ZCq~ zk8m7{8{BG>nIx13=ytCn;ry@S;%8v?PeXS1l7)4r{Ypkp$^?YLuT^jCqK|s)O|apg zu*Mjxs?TawL}oI>{Nb38yZx>Dw5vX|Z&C&Uzqrv9d6dO$-kbOb(%uL%Sq{Q$ZaDoC zz~?i^G1}MN+QeanmVK|6y)^?eP%5z^vhb?0Lrw9XOKYaIpjsWUICE`5HNu>%BV+W8 z+V`?mSC|L%GP{7?iOlW>At!G@K9;OY0u8c8x&W|AAqViZTxCK`?sbZ2G`k{k)@6%o zhczX*z2X~PjH-7ib&rmEL_*I5Xa7mI*!?FJ%1%{XxFnNgVUJd`7YmE_Yl_||YY(?* za=MDLSPBqh3K5$o7e!K4T2RM<Kizl%rfFory4&0DBbh$$*z`8f<Yef<g#{A58n*PZ zhxg^@W(M%M7OGoOxZ1%IaJheoFlT?#hzh(wEk-Y&Lbn%bDv4ndd(uT}3O1hkj8`P@ z&?K|6X>B_f9tDJd`tb`9bE*+l4=)cB@sZh$viu5NO)^f|<Vk8&^8u^VKQ9=v&AxTa zHoVY_MzuXFNZOTf4h3%~Uq4;<yG<v^w@m$}KiSXtE8u!(IwIX2=Kj@2l^eW~Du2XG zEW0nOdMuIyS$N9iocF}lC_)YG$$xS7e?8I#c}nc8vBp$-5J%}CK=p*{i}jv_hc>MF zAK~3}J(y+CiEo9N%=&$nTGc>Yp{u48EZxAf$@3puQDV7LCA2C7ref|fR@xa130JLG zg2PO_`bYHnXJ<8AoE|0PqbxEnF^$?%@Q$T{hiOBOW@sO#T`DtFE6LO^A{^o>i*TGK z_MrP}Cz}&QQ=28r!Ik7jRIDMD3r$($DebZ2VT8Ku^8<`*&nlL6Q!vnR6<fBUrsD%< zqHhuZ?IyG&*MCJO*7~FXYUAx}il#_2!gG4<CS!1w$d;1KZK<MUIBnF_BC9(Z!`Sm= zYDAfz{p?i!_;skwj%qJ+5XIP}P<MF*v5nqw9{0^b`&J@L%-kA;Fvs2<oE=I{Ak#bV zs}WIIz$ANVr17e@lBW=QoYgKV`k3*<0>9nT*C*ppayNtt2pwkQ33Z}u72gyslk@18 zF>-SAiI69tLn-^$zXdE)ee~Ir8*_uHh^9YdJ+6hF@2rJkp56M9Tm^p&Z0i1^ne`gl zk>iCv3>}TKrWtNp*j+t_Y1g}46lbT9LY-9PdtY_MR=Fv}cWwx17J3S@ESLNr_TDnA zt#Dfxt<e@}OA7@G6ev*KT?567yAvqx9vngiibHXCx8N26w79!VQe1*taBjNR-TUsn z_Bp+K|2sd<&&($?&&)TzF}`=a;~is~=1yC^e)LywhM7Eq6J^OQYFU&uX}|vT4?QG7 z8?K%=S_~;kfDYUmPq6haQV6o2-2Vl#Jh@M#pJ^p}>1ak0*TJ_fMwmd<!1}{uOfaY7 z$iwG~Jx$N;JHxYLd5u<H)<!ou`MKejF{qs}kKC+iK)-TZZ1Co?t|7Ey2&Sc$qOeOp z?ClvYki9aCn!e{nbgNI`WIkx>879BE><imFCr#MGf=x%Mn)gc+*0WZ<Y(b-6h32Wz z@hc@#YvZ$G{v!DdXO7(=*7~t8hA5dk!Yo6Tueq4HhM0sG!aYjlWp*T43$&4j%9CG_ zTV0dg91!0~m^utZ?BysDcDDaC`oVZrT5X|fc$gGCqxC2YQzRp9BV2DSGh~u;#OzKv znWKxzCypRq*9K>Td#u`GxzL5nxS~F)z<DriOxETX$d3w`krl9oG!zOy9{J%|9P6G| zb8GyoOs@4oER_<66+RDgADd(GvqQ+p$SZR>F{&KW$f`{S<@eOPLW@5?cHV5GwQT*z z+f>#naSp|DcNb<BR-SUzr)p0|>#IX=3l|oOIZYAj8w)5|%=`I?71r|c{Eb)<QB-=Y zmk>VbZd&rJp8%~e0d4I)pPDCmJ?Udl#{sslxLb#8i6#U;-OKAs(~XP=Pa3LA#5t76 zF_w(Gz_y?jXU5Z#6H!GV0<;AgvKXs_OxT(8ET4$D+Zwq6gGLvoekrx^Fjd9ZYfEf& zx>lG}ve^XeymnrBMM_+2h-G_yT|d95gB67HkbF$UtUx;m&R@Kis|x5>MQifIZtb}q zll=`~c}Qb^*sO9|@ifeko4@YW)AmROI(L2irKwNd6qj#IDyy8YniTH%M|u!|QPyy{ z(sy1RsyN=qBbV2DwFP$$=Az0uK+ACh>lf#uoF{ut-g^>X$C6<PXFd}<r^Fjwur~ii zfo`!m8HLsn;K6MK%W`9?Vf4T+potrK^05RlPOPx+(z}&tWjfT=T%>HrP+>~hcSN0G z;V09hD&@LtLu&DR;{hyY^s67ML+Y3n71nDV-xn=%<pgHrkBX#5A2KOce#~o9D1oT7 zh|$wKh#uqqaCZ>NStiozdq34SF;zQVWU>O_u>X}$tiA$p$@s)xCb1s(`iL%705zy| zm!dpZxEvW}u{m9?G{>}$+E*H#Ay<+ssVal-t0_`A)7Lwi-}8m9RR{q#5j~WOd83iE zkr-+>94TfaysdGW@Nd{#qbwH=q^&Xq{`XAnF4WI+DAlW^iTX4cBlWJ{vOeDg9Q#*f z*VNQ7jOD-abYqcewBBG(=hP#tIcVm8UD0VMRGvPj+owqk+}v&`57ig@F<#lgQ$Ht9 z|7jNKj#d_(3}h~a<;SvJl=zN8u(BBS*4{?<=9S&nWWwJn%9i=xOVJ9$>su7`OQ1n# zqv<@r1B%1b$`vztesYm<3xeb;roa-X9yM*xUZ*b)m;U7_`A;8zlTsfHJq1QE0naz* zs06s@^;iJs2ixK~auwVJN(|mXfRJTs4pwn<39LvKP%UCM*m<JIOrqNI%ze+PV{P)S zP9Vec66=miX|#+ZIrlQMmTCDEkAT=bmPb#+RfJlCvywGo?<>q<^dvgQRC(CNm)=fP z?v=C>GDL(S%Vysn4Dy;p#J-bp-i8SzE_bkp`sz=|eM4Hd^D3CuLPt8|1%^ApauE#^ zjjBXq{#09bdGtS=lU`?*N;2wM@!PI_Wt?a#n`PKHRpyjUpoo$j6QJgKwSPLfG!8pK zc2sfL@7L)~6z?f+)f42A0eloO)R+^Tyh!B5ItB>bqn_QlI_qq|V;TezqWKE^{tB@= z-;<N06Q=|%<HGca8>I|bCaT{){wnfNHMj&dormVCwP{^0QWJh3BYx8+ygUJ#)mg8! z&14sGu~wsGFlEyxYnzwb#M(9&#yCOxOm{_0#SOM_<WRMZ6+IobBFU++5o~x--sn{) zBt?m}Px(47ApO}jDiRl}&1c`Vf(MW_KtP8|OlL+m5K=EEL0QP^`ET?xUi~+%CvEZE zdLIXh9ZRw&Y*pj{vX^nS2>_J{)Q<7!qI3{=N`Iyb@<W?LgK(Bo{qw!Q1_3!t7@k-{ zPCq`xzCKlPm{)JULPMRt@)^0FmP9RA3R-g6zgZ-l)5m;crBf_&_z<5d5;}rE>n}t* zRo3odC9W5NA~8lS9Zfk0bLv^4tBJCkx_27lSVFMis)RCW^6RS6?Boq4F-s|v;}$LG zh*=cfccr~Y0P10R^Ck5ENGRK;y>^ZV6L{O<pUErC!>INSPi{77Ew^WmJG@;75!&Je zm75v&i0RH|m(d*^_T1shwmGtTTQk3!2)sdyurq&I3q$5{XJL4E|6FBe7v#zU!}5Ga zb!zk|74;Z7fBUXX*F#eGyWN4;aD`%Z5=HVC3SKdZRw3$yGZ@laE8cwgL0?p{qC7x~ z#H%z)X4W|vRbY%QYoo$jT%}oOAZtOGLE|l_U3@LOS$qk6Ud#i_$BLJ(RU*hZY2^5! zx?Z7Ase%c#9h{Wk`9+wN66+4DJSi%(K(%PE$D%&;E5Co}iWi>|)i_`9b+blW@wD*e zLw=m5$7&>UHsd`<6#pVP{g;GY>VZS;$XXD70$45XU8fQ3iAwNZUNG&h+Bz3DmzVBh zIX19e9)VPmTqQ-%iumU&fU(v_#AAWW4I?zbC9l;*3{e^oLWNuJsHtVmtk`pD;diZo z8f40@*AJjy%mumXXyl+==B&c1sf4=Nbem$p)-MgiKCKOtVoqCo|1sKWZoT$q`mE4S zYJ#L0(xy3o4vWw^j?I3!wAEP$wtAB&L2?rumJkOv^1JnlmjZ8zHws0Me+e~z<r1b1 zc8t~jKH}xT6jyE&>RV&fsezq^97&&_fI&@An)PIAX2mP@4<p7;4qJ{Uyvo_*y3)D> z6UaY0B_>=vJHv^WY?9ktZbK)*Q6aUc+yOJny(qJNfv-1vqqz_8OhJKwv|yB5^+xQ- zDLmtO_zgl`7oOqZ6F+)%67vv9Z_~NMAWIfEqG4r;Uwjd|MrP;LmVgGN<(Sf&qHZ@r zdp=&3t&1KJ4W6q4Y02)<ur5-rG0{y9<-etR2NAD4Yyw!M%NkCuZdUj31gd|(Crxuq zjCIB8-YD9jh&N%B!AQpclP+)S<RVnE82wfrOgNu*6I{4v^~ZnArxg}jzh_5MlN4<x zFLmSKn<d>$;D=s%4x{_--TQoNWs}L<U;v^@!Pu^)_jI|R4Xs;d2QdbqJ5iFRhIG*R z|0-PGEj#C#@QQE7cKpKoango^`)hqELVZGg#wD`5@-?P<gHN}*Z$RI{S7*5aozopE z8<riP9FFLId_7BdctfESDCKQA4@DA)O=FgOPgGnJB)PRBp2P|oPS{nmXk*&G6}HpC zx1MQJO{`Sh-{xm!-K33QI!<y*WwFCy3o&Bs;kfBji;4_Yiw3EL21!W`;<3b6!YaBF z(0;^#npRb@-CCWkjjgE&v)1YOgB2@fr0JyN-cEqaJu~<;B2LjR<Jvuykey6M?tJq~ zp@&E6v8(VH)z_JPe@L=OD78#$X|YA^L5e~0W`c)EUj>diPh5Yd?t91I{_|~DptM9E zuC^I<*`3JvawpN0{$c@TuIRrpYd`&xf9lbK_-#7Pj`xy+Af!*<?{9VY>dCJoA^wTB zsMpzAJnX?_v=C1O6>yW-!vP(mO&WJn=Q0XPU*6vicgQ5PsFc=1o2j$5rKaKVK@wsr zU6cT$`=<>0+B&&N_UFZZdY41%3DAyWD1lHTxkR;Ia+x#eAL&W>+B6f#3}0|W-b+G4 zH2(02WN{0vo5;0xwPU@b!@It+=;JfIH2Up?9m)&<Tb5ICS&T^*Be+Ng^{og5HCdrz z8Fl>c5?%=1{T8p(N=pCsaTl4lKYIF(FAS>yNP!1|YX$acDmo<5hg28&osXe1lCHKB ziPnk~HiT4G9a)k)lS{nIM`S7kNks^uD;C)j397MWsxK%@Y$nI~kvJ`mN>km-ik8ZS zQE3TOtAOJpu=3|+TK3Qa235iW-Li|sBOZp#Y}-G+<m6~pe5wZs<+@DwxN&$EQsG}j zf$mLUsoM@2DDuk2?L6UV%Xm7fBy>z`k(P;#ybhxyfXbaQQFUicc#gkWI{2%Znm+z6 z!-eWsE{AOAi#!K2pf34o&e~P344uf}76m1!0*)pY5I683t42U&O&G^lF(*1Qwt&gG zawbpEf(g23_$)v8qN{(0Io?MCLyurIG{gz*TM5$x`<pYcJCy~G!=mxNrr3AAj3v3_ zCA4GkLtirzv|nyy;B{yUMKsi0jH&KH$s*p@rsS)_T|u)V{={6visK2=EQ*d4DO!d( ziVCQ{Be!(>cL`ML=-#K++_BlIm-{!9HjWgRXZ5%oeOEmIYvm!^G_z(x?caII#Xl^{ z<O{HYZ+~6|I_acctry%W&@qqm9ZBzEc3A~RGD<E!kzm>5Q_XiJrk*Ht+`G%`yw#D^ zCCrm3Vh#YtnRkZ7y?*1NkzR)uLhLOxij(l#$8VsAW8_*-7LOtDXjRUS9Y-yeRT08< zsQl%;I~E8kM$-WLyWQKvRb)0rbzL^EI5*AEF6W`hK6M=n5?mKaAw_~&Dzpt<js8N| z5&b1uxqHpgbEn1U5a?f(`U*Pb4rG>esgp-;kB2UIj5AbO<7EgpfHLwu6>DC8(fMtH zWR84%L2v)Hfyeoum4W|+CI7=21_wNF2p@6XgRxd}Yso{=MAVwI9gK-ssS3x7PhJzf zEJDBF_FA;<mnK()DO)3(4>=a^RW5u|H44uXL^l@<)wiT1vJnz+(^nVd67=i7V%;cM z2(@6{ybh^;-GJnn%&>&B%62xcyonpZ_u3#Hv@?O@6#c$RD_kcWH>;%()v}a9MZYGv z{E&{;u?o(u$rF_j7-Sicr|frYwR)&JP$+laOmplzS@PYmoK0EJG0?^_WoQzRpiyAl zpcO&2_0%v^M`dyB`y$WsO2ZamnHA~us4cfNs}C301+m~tS*m73H_kL60{J*=^IU$L z5|uI2!{C5QgSIi7MULuo6J`)|ns?HrJKKH}7g$l!dR92W$x5GQe}&uPNRs%%!b&!d zCM#^E3R=HFdjq^8%wz@AS+9-)devw$Jye1iy}WE%t6+@G@dc*HvH`PdUD{wrIJ!-C z&hO`d*LaufDiSGubLmGj?uwiXXu0)zvv%0yu!?=)XI5+aNY~RtiH+Q73ADq?YPB{g z9;CB{l~jgEU-XkT8M|h1;YuIZ-`h2d1GE+4Liw`y8c;<GpRqWe?;mp)Y(LWpYz8!- zx5J5Vdmm2eNA6p#?l$6G_(hXyPd{zxg!5FNg8MK$i(c|Jx<594OV5BQO_#E-`GHyc z;lIe0{=<$y?-V%upG|Qpu&;-vAEB_pjH6IM)6A9_VMg`S_-Zc}ua}M)_8E<XqUskV z*2d0Fbtg!_RD5)oXuzL5cci@p$Bg}t#7VtTO|56}CDe5}zviA%Wm&gp^=Yg@LiO!) z1XtFT))2`onL+Ej8_bxz?2aOiH%qRqNzz1Ev2hzsU1zy2$b1>U=m{cvo$t1w;k)<E zK8JnQNChk)(;HW7XkcAwBg=duwYMsI5*;_-g|8^wz<urLd%xRMwk$UX@pJ*U@)jpe zzAFCM*jgyXs&|(U&YUYM6HyS$iDoFSzLQL}EZGy~AEgR_Gwk(!ZF8#$pavmp_eHF# zwDu64!5)$2UnSK>s|#3rHY_V@&Xy1Grc;!=nAQOm4KE;!3>$sUL0(B<#$gqR09lm- zaw+P<L~K*_wE1=RQXccIabw5Mcgfjb2-J84g<dY-1g+z{PB}}0_Znn+(r7W62RI$K zKtT*WhNExwnh7N|onX6*y&g8w8BlaqnUO#~K)JoVrlhl~>ivL0PJv(-LfRnP*m?We zX{FsOH0jruzf^HP|EW0HsyK1TV*-UdfzsLmrS>-PC$jizD+P0^n_~%*YEHJ)XG&-p zKUXmTs!m2Q=OI&@<42|`+Qsg&#nj<Vb6Dj(>Uuo4PEpqt(#K8K99|V)Xr)LKn|l-U zc(m8dPusNQ_Tu#%%EHg<)miMeZ&Q$vbxlo>Um7hF-C)|XlE`y@iU8(jd$<j9qqR?Y z-PW8!rqfQ(J?*jEAx8%dzP%lOe%nRQgNcGNl-|Usi?S$I3yD<d9cE^WAwhmQ_-vy3 zWxZY9%(2aC0-WH2?^UR?g6>8pg$My}X`cYsoXJxY0t}rrZPqMHd{U|cQUSN@X79l% z^AujYcOoJp+v8eHICT1vWQ&$F3F2vWn^n`w@Zs(Kg_T^4DQ`UDmwKZ7%dsOG?zX-H zt@_&Hd!CaB&!k^CTD4hR#=Y`-_A)sa&ihR8`B2oka|gPi>_duI8K*yUTp&j6S7t0V zGzT?brj*zD>aUf>-}vbIT)B3`&UgUi*4R_5j;GO=Bj{t0@K&gKu19co9g|a@Gb9jo zgxPo&gqtrfLGO~A`+h41sv0|gT#@NIzh9_Lz($rwIAs8H(6R;9LqxI|?`OrnGt%!{ zi%K2K<z&UQEGe^n-bJ7T8z#`RLL<!7<?cwIa%uv|gKM!(QO7s<4C%5gMwTVEdPc=| zu+?|i4oslVV3>ejCk)SsHlHl#IbiBzXf=5HiAvk**?!Io2~1$PId{%7soYCF`N#jR zZlFKOwLd+E`{@s3SKet?$@i{S`A2AHHrBqPd-k_QfImR*#RW&avH%v|*TIzN*pm8= zjeg$)>kKE~y4^-~a^IRSbzFDTnU4zh@0H08tbhCx3A%E9pEBg$7t5DV{TR+Z;}N*q z;^Rwe|K#6B56F_m+WOxebbqeDbHn{po4$I0uJpfDdGr)^AN`x~dmwepzZH(`-`_)j zpKU+25nWC6RLfQmE<DnjTu??o#r>Baq>s=^N$w943iSpJl|Fr%eq<r8>)#O6y{8RP z_t2&HHVKvgPT{sZ5?za(?k48`o6G-OH2A;2{2y2T|E$%xOe^d?Il^du=4bCz=Cs_E z*KmlZ>%a8qZ|?KY&73WVR;Yk5rK0XcfBIg|uizwYA3rfv&5jM;S)bvt<V;IPikn@= z7cd|+>r+^Gq<4rA2}7mnmZKf-i#S!g^LUxs;Ab(N&o@S!kKO5AW=sE&Ql5=jyyBLM zaYSQ=d&jcs`AUuTq~GQt<=~`2(8@O6rHz4Pu_kZK_?l*4Qv}OZ;K)}6?!qqbr10wo zrN>wve{-|nB7Y<`&k%LLu~C+)x0qG&!`}i`vnPUgry5$2)<@}1sSGb5^0nX+3tpgY z#DUJ)lQcaMAkU%9fr8iN0ZVhJ*mUeyzcC=9DYnemZQCQWWc85kfZ`_3rSwGWpQTqS z9z>t^B+syX$)@6nT5@wf@uXes<W^nLwab)djsQ8VFY;=YOV;%N6Ds^yp}`kzv~&Ue zoG&c=A<ZIt*~k4u(H0xg>U-58><d+ithWPm^feaxtWSYx1;^s-9PfexF9eVk<rkli zHOavTB=ct}h@$wHDTV*$ivQe**R)Ts3j!c68@^i!h(Q95p)vcZ)rZzoxlz@#sfzpP zK621frO-ov7Hv>xJPVpYu3NyYdHA<2u^{(bgc-yh5?3-Ea)(UK#sx+pd(*mCTem3j z?X(uM;RU~xwzlDnpyTuBXh}K7T4_8wMF_>)8Vi6$j*tJQC0KKW{}~MEf7n~LVod)b zDt={bRgQ!r{h_@Fu%JSEn66fuST;_uc90A5=y95ey!*A{Nb~2I*CI|FvMD8Wp6U)1 zH)nn5hR<c{7Z00xMsG@5PFCRxvQhlJdBb|q9QZ{aF=OUiBMvMgx0WG!Adv%@HqGG+ zYK635)eR;IenzfLiQe%U`{Z5;trvEg^Mny9J-Z)dW0`78Bad@?V&~n+XvNcjxcm7P znoy5h3bX#Cum`LGV@tm7g^q{nCk8R4AmpXm9BiHV5AHkdsPe@K$*q}9zSk-Zy6o^3 zaKF5t*Z(6Z#3MhyDsEg&X!MC);}7Yj)m_(w<*sn?KY74`BVL-2SLE5=)97Bgcm+8P zq-i!E<yE5^&L%`#fX(4oEXWaMcSPu_QI;0mr=_4IEd9-@JD((0KtarUf+Mh0uYCXF zH~}P~ABkv`1|35;TZ?deZ0IyOxXlKlC6ug}M3!754O-ZA{MQ&`qgC@2KfTJ&@DFT# zU*7D#+0fHJt<fUu#h@e195+y<%i{ZHF%SEO*C2BOttFiMx^-f`^yI(p*Z*+EL;TV0 zu^6F?NeN5cp7X>Fr(JfAOgJb%fd*^AHwjiiUhro^8@jWAYjcT>>b7o}S@-&vkC(@3 z)~hZucwlhCds7RWNC<WK`gnjVn8V<vvR-<69Za&hnGyJB?AnA|H!VY>(=+eaQaNh3 zOv8Fic9Iw(Otu}3+nCKR;dNn_=<yEZLCO+;^7UDN-`K1VvrnDg{w^GGH9d<2fzBLL z%-(;DP9?sDMQ{+75L4XN?Z47J)p?G_i(F!FpMZ2dX}`{#UdudX-qTGL`wE#EQ1d&- z>I3El5As<&NW+Jk->yj;q5uS0A@QWn<LFv*-pBT+UbT(_=5C}K1lAi~V>E0qR*p!| z4Q|cgY>O>0zZu{HyJ5&?urI?MyKxrta2V|4WFif1#7<@Hc(zq8S}!|eE?+RqFY4{( zxb{PeKdsE5foHPNCCq7vazS$+MGyALiokR?y(6_&HA{KruuCLTKv`>>(J!E#ZV_Hh zC+1=54FWuUkz>z{8gJRHXF77-iHn>Htve<&M0X5o*6S%2Y-Gd^f9g#)EBr7n_F6>7 zC-l<s!Qa5eyMxQ8FnqBDPPsP%HiP(HoDx`i-Lzy`pYA@b46PPMf1BIir5tV-YqJ!a z8f}Ya2>ZiHnmtj^Y`|O|4VH=bw8aE6B`+Q~Gxi_iU%4y_yQJ)30<};WW2xwp=v>Q} zhxC$ea{cN5uZpMloK>tf`;pA9UQ3UJ%C(V-rDBOK`mGX;C0u!70SqJ6(x}btC}z+! zB8B+cp{ypoN+UK$Y<fs#ar3$>DOT8zp2AWiD^}-dZ2XD)<_@&zWVK}$T6ijALFan* zm0*%-%Rp5(ky<`J<Vf8{aqB2PyW727<@b_8m0bo?lT5Ih&fW&-)6u6R9S*7Zm?mq^ zKK)#dfIvW&p2dqGACjUWtz$aFT^<hM)k~^59?NRUw5YV$9fM@&$swwk0S1vc2sRQb zbShLhxc)-Q6R#=>2|2X^7W3tXsGz4$)NVxwLY@d`E$Z3#c@Wh9DI#L$Klxa>-lRgk zrAEO<KV91?JXg`iB<8y?`At^iqqHb*`be(IMo?K@A7)8Dev^$HHf>xWx`NVa1@oW8 z$2JKFpq^QrANJ>a{Soj4KU)+*So;!s`E<!<H~Ir~$6=3<$$rxMN9Rk}6nQaiSz$xO zE{Xli{qjz;DXT<DEYMP0TWEWIY2%QL<yf2SM6Rpi*7RN2#bHei$4Z40m12Kkk3S0} zu-|MN%}({DGt!qCf(OOUs|cW}%}W0^G|lyZoB$?wN=J1z$tbxMs(Z#w^-AdP*pXf8 zciBs5Vg!|OLJnnu3{!%eRf>qGlAx4DLMr?3<6O61`@ACUK-}0Ob#tog9{={5yt~Jq zaHO$cqwTv4e>hg&RyrO%7oB?7EH2cvqty@1I4Qt6Bj)j;GsQdm`YXAU+JA&!wyj5A zZn|@(_b<v0^KgN(D(zbeOw0QGvsV^=0?kLPNwtTYcCob*3Zcf=bwhZ|(X@GkCXN0% zva9GwvFJ@pt<Wy_LRUAlGV@HyrP@Qe)YGtdYy(GwYf-3HOV`EeLk^-|xlXk<obT)a zH&mZYFOA;9>*8xZEI~Ql3w*+_v3=1L65ZX6vJW!5Tvo*$C2;#E<1sMJ`Y`)^{FAlG ztVs4pb532foA8y*=>>|3x6%7yRa^4AnR{9<(&I2EzWVSDN|v8*=RDSd5ogNpT?fye zI(3t6tqpQHyrwGFv}_JrIZ0J=M{kOy(E6!ZIs9TSTMAdeLFMbBSjp+1`ype$mpVU| zyZ@7*ciu)EzGO~w2?nR>#|xbFForgI@yB}TNEwKY&T*GP6+&$Ai_LzBrMkkvkh7U8 zT2Pt*nf!hnPiV9nfmXg0`Pz?JPyQ}Ng|jyg61l0GUr66X`cKm6x&EQlzn%lDEOZ!V zve~FV5&)uRN9*2^{!M`fLq38NXN5YLs>{8Rsx@88v5DNAuyyz&JL<&s$4Dl4KdeaI zn<EMiNuV?E7v|K`*1^ECDZvE>{Nx%`{j_X`jq+(#TMtIJ2L{lEMwhNtjnM`+p+_4H z$22Kf>R%#OFS_*vl+lE&RBB0j(J5XqAiC`jy;p>$_flE9(8ZOiuUgMbWq6hLvfi#C z3cgcK6UlfESK#{&7%PoC2?kJWb5jka2bP<8wVNI#%hq2d_qpDV8mJNt5qN=ZNDXmg z_Jf<7$0^G`N-$)V#J#NP!ZZp^!*$o(E22WRsV?K{0sqt>^S2gkS?zRP!-?zrL}Lgw z;*BoJ&2~HG-W}n7hoTek;TC3DaWGT9wBC8#2sc<0!+Mszenx30E{Na_Tz2o_*%hk5 zvb3V@@^Tt?!r~)E=yjc<xdQA%yBB#}Kf~pMwKZe#t9<PlJgC%-V@TIC5e1zpTI%xt zaHi7fvrs^{?i8G&-#Ku^jH^!qwEN**TJnl`xBqFrGgHv9hf21MRiAbnQ*tri+rO)1 z(dZ7%uD=NfRQA8JVX3`)kq`s<AiywL!h~<7hK~K<T5{ZOou<PiDVY-Hx@=<`hDG4q zwi5RCV3g?IOQ?MYR<>0qZQqgbDbnI8qb+6^fe{R3jIha2TR3+*HRs#)^Fav=TG`cw zRGJO0ef)w}6j0PZ?Damhgt{y}3Rr;J?lg630-2P}nDoCSE6q5l?3NM`ZEdwTy=FBs zX1EsR?NeC?^l9f(QY$76QKo^bP7BZ|Z>W=_Cudzcw#nF}PZh>MJsc~ibT)T`7D!NI z-SKACl(wR&dS}m{;nHxbVGgU@Q#?J<I7ni|6j`B7)ORHh&kr_)Z(dR+u&%CQxTo8H zdR2xEocDznh;^#zbRcPEH&v%pZMQUdHi(l}p+&Vq5qB3%H%D<e&(HIpJ|{iw>)Y>L zA*=!IQ6J5D2cof}>cOG~$4yS)5;~PJ3FTM~4i`b!vmOeNW>Z(QL@|p-B8O9Ki<l<M z#1f{4HX<`(5ZlMARO#)XnQu9|yvRkE`C)&Lul8suDJHNko(&|iYMc%oiR+?z9{19l z<xk&~>Us_9J=jxk(N^k98F)lIqpsSmc|3XmHoV@_t5=2tPAW!7$kp8O9_y%4lG_g= z9@kRJ&~Kn@!2_Hl`+)ygBYQ3f9%D3m(cX^<AyStn7<Ge7%0|)Gk9YDjfYN}x;ck(; zL|HxtZa*Yh+_r>dmHX+tna1>IT7I}iY+DBzGeo0sOGa)so_c#Z39(u=fVHWxnq4%g z6Qm8mm1701YG)j$Ol^kK!MIQ;4%5f>?%3E#P3DI5Yu`>`Blu}vP@aF$a^CnzK6;wf zO^Jc(&?C9G*2XN6tDxV@PYA3uJl}fUiek$~jomtX%Wft&RxwOEBrELQ*W^H2FW<EL zkb~*^)9B6~k+9FCc;J+m`yIv_fi1|#0=eCLnmbK@w)*jr?~~`J;`UE8p0cC8+VgZ5 zWI1fNeXDbySQu^T^{T2ao%f+(^jXN+Zx$f%h0akDSYFrN+3Y3sz4P_I3>*GWDc+Yi z)PF1^Z?m>tyL?w-wwJA2rTl7r?QV#PPe!^kUC-TjzxY$1+VHm!Kh<cgr?2|G_DSKq z$OMmd>H}f@sSvE78&8mXJ5u0A4P5-pIbp=rW8gj-ig23IMSp>&?I}=9laKn_nwXNN zHAB_bt8`9j8dh-xynkq(lu#bmr8_aS-ReZV-VPc$T?M}!v`>;GNI=7;;yDMQykW!d z%hVs=x1T9)N*8F|*r{zUKUz`}-#SU|eeGdNwa8c5|FVk@(!OjH%e7n5Ji#X~5EIO@ zrz>{bl%Se9P2+X@UZPWZ(Sbl2o?N!-xjFdqPY=W^!nguUZ>2tiPFoB@4PE5<U9~&D zqvmVBYuZKn#YNJw#YGAVQmm)h??NcEV^tYcAE2)+x~`JCI)X@_KapPWYdKDBp7p(g z&({<7Ac%w)_7sQRQ3}^%FLIE~S7&2Vu9gLuA_iSvi-7(x7Nsy6TB+$WLUp!DtjI8k zZYOWlaMsl$sriw^0L<Hl<&N+!^xK2_?W{G;1Y1!PEwoZvNL|53a!5pT)%Xu5FDXLr z#aJ5Ib51CnLuw^%H(~2Nr#seh0OjXj8oAO=3?nTssfXevBuYxeK2T)7RDMeL==B4v z`vIT-*B>SBJ-AB<WBL7F{tfs>gS;<^s>yxiX2pBse8S{W%xCA%<dEyIt+?;(T*5&| z_mz?p*Lb~t-+eBQESC%rVWzPtz%CgY&GtI>(Dz`6k{SBSuZ%}7xw;9Ara^X|WrhQ$ zaBD`Oz@0oB#Gd%Ucpz8vm-a`WPJhW^>Z-yYXBFWC+=R9(wxg_^5VdMn8=EYTcFWxQ zA7Xm0RY3i?p<q*N(Usz@*W~=YTV&4|TTlJQ;fEQ=HMl@2)i370X-B=UC@37ZwtqdZ zadO0i5XI-Ci?^K4RKvKN-jOsLWULnM-i9u+K!%xKBexMdsTc{tFcx*S#-ERm0Ea&w zKkHWlv`%sAC?t<cN^<2O&%)m^#F|q(;N=q-Ijg*IDYzU@NPBTuh;&F9e-e=qlPcMS z>e#$YzPL>8^#M;>B}aTRP<er~|3qysx8FnE!xDsXxtKHVq7*%xOSNEHWXb4q%A{Us zqtd6Ea&Z*8w9~J&s;2e7GsS;0)Kig1w+=)=Hlv`s=i8H*c)F})uy=@nf-Q80+0ghw zMd#?6zHsHx{@RJ%#5B#~Ss4>|wQ6;3nFIkCh?e$W$U7x2V6#dQGNkJ{J;q?Oi{|*& z7jrjv4Ekmj5qDRF8+Tb(3c0Bek}uEj|C#~Fe(fo%`pv1S8G`jJw-zz6yrw&N$b0(D z)o0XlPGpO52rb}Sr$1&UuolLdGpJ6=U`u4JY1_ml)t_M(0X*eXunN`8n`@sAwXC0R z#=9Krr8a47EmyS3IE1m1w`7hVD>X9H(wfs{L`AP(Do0fLI3$ds-#YY-%WsbQD-MKt zU|4ga(7r+PJ6r;7hvivXb)F4fcrjZmox5lviG;p35iq7ZHIKaIV2Rkg+krcC#z~Aw zL2mt#^6=D^=eUs>NHhkQIF9lsEm`9H#T-GVe^RP%Zm`dG@&B&}{8{!_-+taP=P*+K z{z}w_C*O|T>}VIb6C|8YEeLR3KcY#2*vjZ21-N=3yDehXeTvgi-1IOA-ng%&LLk2G zV#AhO3oZ2!F*twBe@k=%m^quUus`{PT;dlMCko~NNt4YY{4AEi&y&pJ`gjNKn!HE} zh#b<-qK~_<ecP#+DweR@_r<klPwxq5m41dyY>69fI@$F#d)Za~i$#IjKoJrmAQ}MX ze)hGYb7&`f&8kz__%l%J#!~c32qqs@_pQ)!e!uoinf5ZZ+(=0_zPXU#?sCl~d7c6L zOJ%&!wDiOQs##apbaBQE1QfVK3(DNtVtylRehy#IY3?Y~;3O(k7wG2}*Q%)%h4i|% z2U|)__Y*qMsqJ*a2G0Ohqmd@qPEv2>F>l%1623p@%Q~ek4TCh*8!CT^jX<;)+&GW@ ze1+k$IKp6~?8b<3E;yj}J#Lix`rOQ<^-v5LqMT2xL*z1bm@@J>$Nq1@=-)ly-PlXz zFcuQ!CnA{nXiyOwez7C=IRm1TS1@{dGkxv?t=dZZuKF6{)Jb)FVPXpUV&rD-Mpt=v z7Ci3{&7zK$INDV!^k(lHXUNdU7ag~ikA9`AzinK!74t2vcEhpJ=xuNwKyC~u66ndF zh%X;YLD>AlOED6XwwA2P?Ps8{B~rXq)yUjFHxj`7g618EWcaJl4LiU-N2hFJSPFLP zu@lXZshHS~L@&M3oGl2o@GAZLwZm6KJ}Xd~g{!@pD^-VFdU}E<Xjcf(>=Mx3Df=T< zm$jkz;!@0X<l8(~by2$?(HNdtk3xAmApgVN3hdb}SBlqHTnk6GzM7to4VC?yV$-+R zosr<}jW_Lqy(TJOjAiJsR+>NeuKDd@?%%{p<`ufdD1U!PNtHYrz;o#?B415o(7~ML zK+X6*XIvP^v-QAde+WC>+!S<bM)REY9I$S6?qWF%0OJ@M_Nwu>P)LL&YR5XSEA)(i z_jUOSCSUL0&svJ-5!V-JxMBhL9wm1#DWU!Dpclj3`ML(PMqo1he|?7hyV?GE;J^eQ zz0P4wt-t{j%iAP<kK51Y)D6dc!~PcBL@=2#ywc)v!rdwVQcVsa{0V!PWN-HUr_Lyi zq7E&uR`EhpotS{t`VP?<-ea76?$_T*&MS_RM515Z0fIQ|R*N%l)XjeDhh$LZye(@A zoc;CC?|J5Nin+}Ilc{CX=J)(X49;&PkGYKos$Fz-&UY9Vyxui?lFE0lKg+|Z#?S7; zdttNXK160322lc;Nl?Dgz`wka>~(ofsB(?PTr+u7JWh&u2=x%^2uk@O>&p}GtZsvh zB_Mjmndnz^e_&XBx`p3zq#VOD2LGru$Hjtdd@6>UkF$GY#J5<(2M^ygthDw?$u_js z0%_N!E|AS$Ct(abA1yS`shP0&MAnzcogTEVr9w_-@6R=zM??<gnwKjf1m+Pj_Nz`p zi}=4`fvc788oR?i&t!6j$9}g6Pq=(wA!g$eiS#}@;r2yby%{vQZCD*C1=3hA@^ely zHU~(P%y;vRiYSSm-C!tGI*DXtMIq8A@V^a19K7DH`KCA5z11jAl1+e+{kL52_l@KS zc4*th;;-`YW=?nd7vp_cN}OMp78LX*MfJ9qCadKc8EL3xQ^ZZwXNw24gPiEefFeqf z4*JH#c2;zlHO0aQI}QxzTjE}zl?UTfP`Oc)?yU174x~I0amue_y)L14zH~&ZB)RhI zbwMUl)+g(8S7c;>r}=Ul8Dk|{4)i)9+Oag^Z$rp#7E`9atxw_KS-hq)f8F<stAesh z=@%<vY<4`dA*o}>6IZpyGQBkib<<pO%lKEA^N%h1<&NP&$mpq|@3Hm5{~i(j%WkH7 z1b0F2XC%PyOYznJ;I7+}r*u-&ey4*aPXCQZ`!{^%G5kt741&7GDBk-Y+;v_~nfV5I zH_2PxRrcRH@BZ;WegmY@mWCe_7DCJa2Y0oGd^QH%Xdz(4_5ZDK@Xw`3y}jSL={0Pa zx!v+Vxa<EK>^~aj{}6+5KZ3Ws$p2CA;F=^7L>!)7amVmqeCG9oJA+4J@RqFla>Ffw zbJ1A3*VMYtfD2bApEi7s?t<E{PKMMC@0$PkNGocwFkR=vCuERPk6*WOpGFgB+^ubC z0Pd@Vwc9ndlXGY*<O`ijjw<Z+7QIoj?Q3o+Cg9xFfuq%m<lKnw^L^_@o#*rlMWAc& zbmlI|>kJc&ShK~cD+)3eNbSZk96fAD^`chAWm70v@Nenp^W^d7xg4}95iQTNLM<{z zqHeyN9CecP8S=5O(I+MvcW~_|q}9FHZ<ZDvMl>)bQ%n2Erm;k*UG9>IqVsG3R>MhH zx{#OT7H4<f!Ue9%uVtCkBg*BW!FK}Qmz7q;lsS@DpJg>a?r|*6KWdFZGlrE<Kx;>w z23+Ft9_lp`s%?{R_TXUAo_%_W(4k9h;hIPa3W@uK8DqgzsI9rUjgxn5iO~fil1bHF zInI-+swbOMi1FJr_brVBy<2+`hLnLK#^Lmq^_BbI-R&_(pOE|fWM|bEqF*8<`nJd} zdFG9K^8$PkKlIk`BgL}`b*q(z8-VB4Zr1bP^?u!?(4D(5WwO?3rr8y>Em`{WdfLlZ z>C;yzgQNY2uI7VrXkBd3UY%FdF;<JX2oGWNQ!jC+73qSVM!dv2yeaok&o)$txPa5i z{l$jMRMp%F1&omQ=B*dG`ER_ANhAV?(>w<d;Z_?ut7z1s3b_sj^?HNnWM~Vn4jL2- zg!3#bN#)Z#<1EH<`f)B6BKU7xU#`~<ilWbtk>}htYmr4qpLL)O?uVIhwe##-aYJ%l z0m096s2*A0mi`sjwHq|oJR8HRnz4U8qV?_A3uwUN_-Ptwt!>YE<=d5wSC8zMxeM`b zI))>sDg19nJzKkdT0*<mr{rzzSb^;P)bh59j#W(=RS#q9ZITOGf`#9peBgTk2|yQe z&}Mk+D*}%!oEr-n_;zQfU?&0%l&Bs%i`<2yM8Ak~<($8U*HQvP)hglC=Qo|)8&+!N zuGcNMu&&r*k7PD?KSXZ%W=HmDY@MY>F~G++5qX^dHAsM@wVz#w=&nuIW%G9SgRBl0 zH@EhPKcS}^l75f@5RM?c%6^Z3QJOek{NOrc?52tJVm9kT<@+7$^u-}qU@~lRKdF8X zSUSlbtjqp{6yTTvG4zybyyY+VnoGzjojeXs1C(x(K=?RQ&pbbN&nDqs*`=z<Rvdrg zaRakG7ToV0f)SD-(ku7x>MZ`G(0d5s6|S;;wYM9=?z7#%*3(Q*M%qp2OF<Q9>!$O3 z7M4;R?759BbcRtlQD8!6m}6j6He}~1xDnIS_6yjpRCXS7b`6ig%^i|uwn(3>dc32j zfNU*MLLc-wFG_^QBWu1!f$(%JAX?>c)$eaY&kO4^AY0M5FJ;=n`ziPB@}x!;eBOEw zO*_l*s-jQ3TaCN=Cl&UefY2&GX0!6Cc!sl-Tg6{99Hq~JGaS=q<W(AW3VG1*Y;8;t zP|^k>-q9_XmD#T9hkHrq_o>(-T>>!9`t)dU;Dv8%!b2iF)?&5kdPtK@nawUJWS{pv z`6)Unq=(x-;%Q7v*`cVR4SbfgGTO$BPY3L3aIV?Cx~A70X%=MFk0%$Zd+B;B)D(Za zddRp9H_lLNmH6IQt2WLW6C%LQKrjrGZx-f%SCwSo;LpVyj-tUGC>x$9U47(P?VNVC zn)!w52$`tdzX8lr5`kO9FVZXStq_vpj9ptLq#nI{Fpyk19;!CWKrcVO*7KYZqIUJT z$x|H-5H}ZAx|}(HEeEl(W-e^zu9$a1H9Lt(;M-=l&Jfbe<~dR|(`H)s7cWQGm0BfM zzydkGfz3oqb%@BJ4y`5xSx{SybfCSm<a~p<`2Y*7AUm(k;kM1l>uAP>%Szoc1)E31 z@rrpSNed3c%nD~LAJ_iADAVO5MmLbySc1}6LUoB4dDa)UY7C~$2}UDty)41o-0u<y z%r<y~+M4Ida|8TR?$Uo4G=qtgTVT)ZYwuCQmk>Bd8>|^%@zE85#9+MYYbl&-a%FU8 zR&+XarhDt|>Vmj?w0qf1C>c)nZ98n?4aMTjwVE8%Z;Pw^YP7cc<ZRHUPq&fU1T+}& z;|x}G;_Imd58DE+<J%~q%ALpDsjxj3<It;{Dapw)ZgJx>THk&w824m6OE0up{@}BR zz!@o|4Q}UND3fPrTIbftfR}XWw%$zb^1$+dP&ogXw2R-v*2sF6B4(Towy4Cf@rk`{ zC|UFUB17BUD*dyIGB($pq;QMsY7|=uxy0-ox!u@QQB+K*3UVmPRi~4;EcANg*Ce=a zC{fuAz53Oa5)y9{$y)P>J4;vq6>sB6RHG0XNq!-kHTrG)dUjX-V_H2u`|U>-!{@_W z6ICK~W-V3fegkI}>T9mE=qM2AD(~He%J(Mpp>t^7i_J5h8D^LIM6+@J?ZGgHYBH`> z(QZqG(8b|oH<$3u8?d39BL>5<ucrz7?X#=_k?&Vy$<)&|C!xd1$~$~n8yHcaEa25m z2t2#FMlVhpmAk@U1y&O{1syqVY4uq`aTZ^L&3~mFWA@F@wuiV84npNK>bXUz%4dK{ zA#pDNIWwM0mfh&U5bvNAwu=A*de^I)Z4E+W-s9Kmytx$g)VdL_G<|zfme!Yo<K-A? zAoL<P=o4trE-fy70V+Wa4a<Encqz5%xSOg(iT%X=p)~oK!ui)_aALgfFwRJo!CY+^ z&kOrDW^)kyKsEHPenDa?30v$QkqQ4Bpq|o1X6gm*t=>Dw?e0X1f~2o)RMxjLQV+^F zvLC#DE#>1LJx<g;?DUjW#}2!Vgu0q<)3*gh0)1Vq7RFK%RP1vn`>0~;3{mOtJhlC? zbM85~z&Dl%NN adpJ7N%SY@hCdQ~^InFNFjETeMGG%Y^bQB~%&t{DoY8*e&F2pW zIike*X2(C=?4g}2Eu<=+g^>xI1N+z=dGV9(mZv=SX<wAw-aQaOXTfrc4gj4r!}htv znR8<ynV3#c@e6r~fC4G8!$*G}`7AC*PvO`vJbF6~Dpo{P&$1kzzN=$JXark%`df4L zcF=gX4`Ek`RIW(mT#yXnSW`yEA-5&9isY)Bg%~fR>XnW2txlsgnPJ8Fytq%??OGIC zliz-pxNixe_+*q?3oQ-GPq#Z8$EDGTJpAOO^n>m3?yOge&x^(Bqn(p7866h^xs~8& zpWv}Wb(&O#Nw2UgE#n6p<6HN~;-b}(Pn;6JFJSAoUMGL|WR&8%40shOQ6ZS$<E6B@ z@xIHa?U$MlZ}vXq4bZK%nS*~S`mT}otq827CQJrqHu#(@kmt(<I>T*n%isK#hCH?? z-+ChTHXz@hy}<-Do1|4&)+&SW1<R9sv&2Eb@TC%XTSY~Cq)2`i+s4J}haOCwzPo+C zjCyYqH*@hk+g|kjXY-HwwnP4>xNFg)_qx<$#7*ti*LZdp3<ax#r%uX$g}N<XcPZi< z#LXUvn?PaSjm99)fVry}&y&ak{-r9<EBT2$_riA}ldn9CL82)_cIts_BbV)ybRy#m zApDN&PyZGMrfM9#$?~@RQa2V$l>yXd{b@gJ)J-4+M(f2@>Uj~j6+63N*@?B?$)V(_ z+6#lWR67C)hR}54CmS5iysz>r4}T58+e^Vu!Pg@jiSedgn^n~rRh%>+$|`sa&+n%# z7v*eF%5B@Xno`r*Ll{XvdS%d5!zcgL*<CggmNY-H#O^u=$5f>?r4js`{vnu!dn+xf zd%HP}J!=o~{bKCELGi%+Q|JBTd8pZR&CPLDT3nB%O#A#XCPRI7pk$+n)cM#*IqA(q zHS!11y{a9?nlH#k^EG%ad(T1yY$)B}cypDU`?D8kBU4weS?u*bc+;Nbbr88oC%#Jt z3Zcb|@=aZCe)~kgqw_!hiTk9{q075-lY=tb51jD^$Xv|7Su7GpZ;D*VC2vI1jyyvq z%(ij%v>ig^{PRB#owDOGNPYhNa7ZKnOOlA{FN_B*U<+~Kt(n28J2OVj#zGCryH?5y zPfO&F;J6(B0n1cXUI`jzvMN^z!SwGZ{oaTShjxd<q#s!)5AXI{m%j2qP8T(84$BQ& zrj|PuN|FV|R7bCWjLlB_vpvR$G=G%!gJtmS;N13*Fz^w;orShfubFJtJ#sp*Ze8(o zI)uF%J>jH71+43%ZGS{<ID}k)T|)D$6VJ3h_HWONzY&*C$S7hB^g(PSPPI;kLN><; z2OB!Zi}B%^p=fqKY^8tbi8#wSU`pfWT*dL@E^bQA?PANJe!|}Nmn6)IzET}$jfCg> z-;$Ei8il2qFCWSVP|cA7dHt^tXF_eqA*jy|J#XGTr0&>I{?wDgyJHgbfXzY6FJWqG zab8rl7^&xO5>krthvO?YMWaYfZhg;_UVgbB<IlbeTXZOQ83$0j(Q-T>0XCz1b4Dw! z^1ELFlhXnj6Vk0u<A$4gOxw!AbDSpMn@Y!qU~RdGTIiL#$Xm+opS*hvGrslQp?0fw zM(`$r19>e#i-Jk&BH|rY%dy+{ljG6ar9C5);o7-W(rYg5egTSOJ~EM#9WLfQAY2~+ zQ_*9j${|NS;a=XgBb#I3NIstFx;jc1da-)<Uc6lC>=-epbQ75p@zmz|8Tt8e?uNo~ z(8nE&AH%l0xSsH}$sri;Ww#oI{N=cnuf<qAF-sy&xM-=7CVH0ck!D7_x58Ccxyioy zTQ!dzKnIj=%G-yrn#K@BZ0)gAuqq1-$MmE`0(x(Pd#(z2Gc1w6BfjX><|_^h7Ii+c zZOZKoTr)?JH=oZ{!Q3w@)Q`&<NT%4Ccho<dI6GdVUU5KVX8ktyouq<WYc9!wp1IBQ zz;E?7hs)oso?5x!p9L<LenF6fr_F!;!@n%1S_=3CP1>|8d5jjqk|5k)IE{h_N<4j# zbAq)VPE_lRB^!9L)zyK|VOL__N{Q3qT#r&UMz#3S2O*sU`Y1i#?e*0_8HxWsDVFiE zXCM3Brdg76lB%iWu_%lUejd5aG;OrugB!)yfIL6!G~q{&F)WxiJ4Q6db}K;$#0l>l zJcCL(30+FE2MuT1Z&JjMi|0KJX~X$RvKECJt{~rKB)D_Apz^bRSyBC3ko+}9U`iX- zAd%N}rh%Qca=D_Ve}cOxDm~`zduVKdhOn<pezUV#w;9y?k_FIsn`lfECW$#l^P7fX zxgg4C_&SEwUnZG`^+&WZZFpIEAfVazCLXc}DvZx(icX%)n^tc0J)r?2{KCKPJ#oUj zcQAOev##a^MiF(&#eBxibt&^)nn<L0P~2IsBsh?fcUMT``?7PE=>wXd26gYhtPUp) z7)vP3E4e@RsZjjIVRW8}n^AR-iXy7~Yx>yWis07X1=Z`5O%~t8+Lw9s>QT!DJ%ww& zFCCLF_8K~_t@EfX4I8nC_kcOx8@_Z>ut%{BhWxn1Ky&MHbgq}{X-7KN0eL^W2jr8j zSKQ5!o*rheJ(!3UvS615X2S4<4=~PF*UijX*l6;YRVRx=e+`o#J5f^TL{RE?F3`tx zJ{2SevRypjq<<Pi7(Z5%YEbO}@rqJNE)wD&G<Hv|dVaq1bnyK60dGm&mF=c`mHDB@ z_QFI~*&{m!{=p*L&{tw@*vYa+8f$Ur5gwN`yuLRsn-0K_8XG3yE}pkV=9TVCDR%eA zgOKe5ITQ_?S`_sHo&!3NyoW_0G49051KLBaHvFv(fm}~=1v2>`7CozWjJ+@@QFG?J zALBJRK0bUC>1}t5nXG4fxIW3cFffpyerC%sx|m3L47i_j$vmcpogep-)}9MjbsNG3 z9bkLywATWN>h=iOYDG`@aFKEQ=phyjV7gxyXY>_!PGNF8FaN_jPS%G$e3+~jG0<%z zPE=k%Sat%Zkdd<!Q}A|VFZptwUoIcJ`QmwBw2a`;1lKA4@8{-w;BR8YXKMNQf<LUf zbustFa<FaYPIKlr**Py>QCoAh38X<kdH$&yLHgM+DdjQYhk_raH?9Z9ZJs&#;8D6n z4|vv|65DKlyJr|eK*f_sZ!GK})a)Jifc5Q$4c!^B`7gcT-i<H3o9n%cpp6Bi%g;A* z={axo0!u1<Kf`I0b@VisVZKUXe3J5?K3}DN3(kAa=-`OCK|J7NcJfBW62OVVx(lN2 z1NYqQ5M4Q@UC4LTd#BydWC(k9PLJ&j3}g7{w~^<*eMcREun$XA`J`Ru^KY{NT-U!y zkR`Gn@o&zgteJuV16&!B23lI@@K1psAdSz;<lOJ$MhBiPtmz0dB<LeqYi!U=^AvtS z29@PG6q}71qxC(TioSm>5GK!Yc{$#$n2){Y)Z!~Q2R%9_55SxW{=ucgl;(+>BSlz& z7`}EB4dqd*J6ErDV@O!%Ri-`SG!H6FZ~kUFmss1ww&0ISrdg*4VVZw83+_KyP?{yG zO5=XsLV8@FJ;Yto90jU{qCOWnB(4X{>KJ9u%IEYidX%9<<xzT<=>|Yl?T#o#E_0DE zfQWIXb%o_3-AiINu}k>OvkO5n<##?LL8reguBPU6;DAcLX!uO7f2|pI-=(YF4}9#j zBI#a)e)|L$bUPd_>pq+8w0mHV<>e8WwjZJvk2ScUi~6avf0p#{wZ~|nF|DF#Z*_HT zz9oJEXV%ZQz1j1rEdZ$9;)$RZB4^^FUoE*UZi`4yFr(U~;n0@Z2BbqeKKTvV==tfy zWh2r4<oZ^jPdoqqS}EKBl(zITZ4AF00+?^E%+aVezQxxa90~(GSzSjA&gD%Ps;vNE z*y!h4I2~SuZ4{?A-K3Xr>@Dwx$xQJHx;3Y-lN?|jvktxi>bf`+Q=-wzBPsZfQ9vCL z6Vcmd11$?oNn|P^Z#E7cE*UZ=&0#onZ@Zeqg~$E+#Yh?FRgz3|zYw!k{8!ruI(Zom zWEp=C#<vXN)hjJgy>GL7dIfH3Kflxp=@ko^(U}xM-wWoq3lm@2@&80bJCU;%w0fRK zL&*Ohs^0o5>Nei~R_X3;kQNxaK^g%;l<w}31}W(-sTsPF?(VLkrMtVkzn}Y@=lt;e z1+!+&ns@Ej-q(V-U$WxQ5^44=`fQBJj%A7qeyK4My}MNl4!>acn+f<|?kA+VPOCZh zjGULR`GdOM&TMR{tWdRlJa#{!;5RY3G!cTOH}wL^108J!WF(If_IA%x24SNUT7}er zNmTikJ|%<AlLy$H)-HhboRE%FLO*x#x;dw7_I=>;2A6^I+0@cmPc@Dwoec|b#7HBo zkC%Sum#9EX*~XNVjeGx;&{vs#9M$UFx${3ea`_1m9<d`dFY4+|8(mAB$=Q6qy{|An z2pfg?YRT(!r1<D2yhPGb<tmoOPHXidAr#*(6RQ4x%Kc($(r!EY;rY+mnn%coc^y*s zJ=!&dE??$P>_bmh#+uhC=EaekTUXu$UQ=77n{JO-p3(9%L@#i}Rftb+tNFZ<iV^4D z6cj$_*3&E~GuA25fI?Wiubjs9t4=b4H*04d8UU34)DRbnKq+me^OE~`TA2^@bFAHO zO@lP$=lMj5lOB=pjlV~-(lF7D0}`l&kNG$x4=nTYG6#DF%Ufk2=Xc@kb;vHj{RG<= zN)hlVLY|fAe)EhsT6WI6!sjdz5pS<$XC*;Y61eC<fMVA~!TkN;Y<NiX;U&>F*-|l| z=(&CGhK)hbYM_fM5R0n;V_xCO*8zki+2x!+t(>;)aB$2a%CykIrAnwL_0hxI`<LMF z-CD=%y4~@Tp~!c%JkwR!AM=%xRwwJKwx>6p&z7-t)95Jx`Tf{n43p&hd5ui7qdUX& z5yo)OaS+XM=5l5<+jAmkQ;LGf@RrUCmZC=&ri7kbWI2h*lEq9iI&|3gfncW;tGR0+ z*kBJ_?rgX9sj%RiTbW@AqvF)J8aD8<`kfo-^YCrP=cXg)$wcid7c^J!VlP3on$z>c z`!C5|5eNXZvf#r*NbW!1SIc8Ds6J3PyTNApPd}S(yB3zsu9u4RH4i?9bx__&>>bVL z+d`N1@9ChYLu}h1gj^J|(F_A5dN854Zy;~g5DH&i>CYq`#<yRuHm0p0Dx`Qnjn-|q zY}NhU0^?laWiIJ>9-@N=2nGL6Ak26%9Pjy8ScOqCBgHd>yPJ!YNta-jzp5I-h@N9J z9JEP;QJ%!pEnZ57hR%kO<?X^A&;6d@CP2L<*^Q|}S0A7E@-T7^nrp>Yjw~0mso@D? z_cT21YczD?wsX4x8q?<QQ?xirA)c$#M{9+E^oNKg0^-~UC%gL9B-5jE#1OOR&obs{ zSTU>>Qlbxj;k6IZg(xj&?iLpfY=S~&ZcOy(VHbZ23)P(1`15JRx2raD<?rc1YPd9Z z;>G;Vc=^yDi{R~>nuaqZ1jsNP=~c=yA>kBo&EBIkl6wAM34KBW#Y=nmRaR0&=YmWL ztS)YTOMt$3l(^bm^A)WAhjVR*qYb<k*;m7Q#bIzur${WJSntf%fQ7lNvPUze;Rn@8 zx~ea#iAdE+ydoJrAGS33g-Z6*pYC~+UdE~B>(KmrT)Mbz7h<3LVuFRgBi6UyfMq77 znd>?=7QlNlm)i0r*5wm|7z^^D*WZIb?S`!UC*fkjD1{$8Kk7+n6I$aD+I4$=O=aKs zfOh|{N}YFc0t3+h4H=Ti+jOVZSR1>atN2$T<D-vhe1`c{%$^vS1sB39#gK5b3Kp3n zQH{=$+oZ`IOHtF~ibD1U4<&F6h|Q3V@2nz1kuJIL6YJMHlERth58?_zLPrl7WPyoT zIM@D|=U*SC5JJ{xhJ_Qqz6A1=wd$rGIqoP)YDcGXeqF`OWp>>(akkw1ZVPSv@`sUv zo48{wY!KnYx}ur?(Q-ee`Pm&Lh!d``nh_-d$Ur9@u8vmpVuz*2%iu_qyj=tH8RTOq zlRsZ-&lz}z{cAC{Dz2L+8pe-4|69WWndJTdh@aD4;mP2OL%R-hsP*2$FgWl`6!Tj{ zCORG}M|ok#D3jP%aOyktuHlE?G4gux43}rp`L{x^>xYIWU2c2+)fLZb&a<F_2J`$Y zU}VLd)|%2WA{^<Y@Cs`G!63)A_c9l?wPdNPA7VhbFLAZB=UQC&xrPnGR*a=phfwG% z13&{a84g=xGIKY^+Lkx!sxA*ZAydLWxvgj-@wweQt4slV=TM4+L1<Tjt-qhT^*pg0 zq#=@37t~Cd_S16idz1qkM-wp)IPj>WOv&#xyOvFvPA1A#<@QPxBDx8t9zHl6eUQYh z4~Mzb&W{RjcDT{KA}G`xcEB`&s+6;L)#eLQ=t7ve@=>&Rhol}B%2xMnk5lD}`cPUq zK?T-P6v@CgB&|mNm&bzLlxgW3P|t2|p|rg37W?K_Vtx`Qk;Zs}vH;RM2dQN!vRrg8 zDbGh2ga0H7x^Mf#S5#^3hNDns3;M2$L7i?o==>iqwBx*Fz2SP~t}t@tqk}89r(z*$ zFrxieRO0aI1cyC~Z)e}GmiwJAo~O@(iX>ueHskcEBvni9>2yiSBll3^{-?D21*bBD zbqriJkyfpo45!ihXRDAxnk3vO;R)r-+}to@YVGIk7GI+RI=?k)E6XW=#B1|-2(}|@ z7o&f@%{D91`ko|^9Y`K0>ag4U@5G3$jNG9n`-xaU-~wb?oC49Zv7yO1Sl{=q&9B&c zm)YinKCB|lydvxp68-8SJA$JIFmKqd&76tWk~8i4c{8K-gh3v^0`k%r6Epd}KMkdc z4sZMm7d?0%?=11I3T4XSlu$PoctxivU;)8jg|(kBd?>HtWx<G+(99?&5Vvd5-s-Bk z#Rk=tkv{}g-ZLSqMd9d^Z@h>~^-=|KE((;t>tjG(ulL&zScKMCqaLFPpFZz!d}daA z7++TqT{49>ALe(wpR&_phg;7D3qq_u!wT0I$0*Nw&kLeE)&lM81h4ZphhOL>*XOU_ zrwVu6ZC|+fEc9~CGF?2;Y++2+t*A>nG|Xv)87bc&p`)^v3dlqp^5f^LX+r{b!-+f= zSoCeO0*r5+f^9N8UvYyR9;EK$u_Am9-O_Mc6qn1#b4|lQnCl=-q8GlfOSOt>`$&gK zv8mdx(t0ZM+pL;Y{79l$))*jt<UX=?+|pTlC_PX6z9^z`EP1D2v*d%xzx^%Lf+^U3 zf!>-@RZd$?qSGFQJR~EW3@WS-NWU=K0fI=Df^#>EnHtPML9VXZ{LM_Qx%g@Q)bn3f zsj<(Zdo6J?heM)zuf(PgT724b^)wZ^>Fxjwl6bfhNZJr%l|-6=P%Re!wO~NmU!_uz zIuy{dGWxGs*Wwcc@`UgoR#zJ6_u|hkw3)$HwDgi5BZCP?4ledVlX!Yp;k=Qo*K>#V z-#}<T5fQ2!@r;pAR~=LTcoD`s639xPh>pn3CupGot;SzAmdZ&;E`tew?Nb2XdpeWU za!m#w|9!<#o3~$_CnQxN1HKQ(B;n)(apqQjVa|KKw!>P2B;2|$RX_Lzv8pp!Fnhlf zlzwL4{Ai%1O@B{C|DRZC)N!CS1MIIk@}6W`ofsAOlZh|rEWb+M90yg3GhE-n#o7IO z`KUw8uD`XaQvAfg&m5Df#!D5$+%>!R!6uytMGfPRjM<xH$QwEEaH=0R0uScLDpz9+ z|GF1rX}-`WL*fhs&r$*meK7X{ZgRcCFQ!X~#D34x-AB&m%3ae@qD;VL@waX=gA6z8 z!nA(ZUlXPPEf95G5KEl#T#U;yf#R(o3k@we@e?DjPaehGUnv;R@wwTLm;{^@k!@f$ zX;}4Mi;VpZ3@!zZ0Zpirhn9SxC=HDhkvA50fOWFYPA|J#B&#N3p<Ru$O8AER<{(T8 z?~Fc>)Ux001-B{qVU}QHI?wj5RKONb)@9ZzL9Ijr)GP`6s9SD@yx95(KUXZ_6@d=1 zxc;|E9dSym8Oh3J<+3{MGI371%Sf|<yU^_<YHBe%m7C7}74)N+)AkD{fe>7YXH3Xl z0Hpt#=`|HcoX>yXAaT;v1?XTk|I@+zCutY`clmddXd{uLJrLi|B3J5#QF4}<T4O+K zfgG*6X!EDj<PZN|<ei2**wIa#8wNam?)anRPx%BBNxEUh5Cq18tH0@!xZWy`jIA4@ z`7?ez^mF+GTf{NFaN~P*gLIKELL&1(e2b}h@A9x`Dqfb6@OLzS)lh63IvkePi7c%W zLDasy8KyI_R8ytUshDv@GyJWZb^5p2tAZQrWU))%J~mNlB+|*}ESxU4nU5l_pyMgf z2^Ut5RE$*L;@coa=Bj(nB$Z@yi*?sn5TiuCg3w6h=8wkDl?qFry*mntMyHvh|BBN- z1|d^`XRL!5P1F>7n^Ny2$+u=!e8$0ZV>OBFNI8F7;gML_o(sx3Y>n=bUSH?@|CQOJ zC$CgGieM3X)P&$UQ9lQYWdUI%BnmXtu}@try<>MLBBN%-XotnQIT#ytB0z`SE3R;S z9-+TGI13))3lO4N!l54nhfF8fWiFJkPk*(vF2#mS26@1y@ZYnDJHbEAAIb3iC~wv+ zLN%5Sd$(crwi3<1F}Bc?X15zXxzpi|W&2nJXC5pTOSY(JuZJ+b)5gp<ih7fD#2Mx| zbNVp_F}Xw)9s~SjKBr`!A{#XCk;9c5Uo#OQb4Lhcjy&)#-SYL0NUoQwLJ~8Q;3BQW z)x3R9w8ap9`mfV5oOO&wMNKvAksN0#NQ*^~e%<SL6BmGm=-?<ptFmO0j6WQe`vao5 z&MFi7>V&k^%jF%+d+|u5+OPV%6klQ0BU$63&))k7b)s2QiEpBM{9RB9ITIGj)OjR1 zd6{-Fv+lTjFDgo{7w8@TG#M6@dvBlBQ!GQeHYnf}Ci1xj(TR*J0aMFusQZp9h8*6h zjPc$p!5e-!l68CF0oj~QUpiB(?wlzH@oIzBEM2a?;DYn&3tz?q9jxwqHP$Swn3vV% zj^~F3_?_FQx$JAm=B64!Z(4L4{@AZ9v4n~wf9>dVe)r7jURF5n4SeutZ4@&oD6nHd ze|@W)|J|M(mQjDCxGwnJ4~-9;7m9+AAX?ao++Kd`&dTRzs}c3D2fdvE`sGA#Y4%i< z+)mwadi{90DF3ZoWToX4rJ$Blj;1Vb7mo;0vbQ6K2UdYxZe*5n|8(RZt2}TFQrX|e zcrGzwcIV%z5o$r?&?hJ=D;?e_hY<vDf-u-bvXC^%P*g*5bzN@!#CUiXWRZQa6<o}D zOiuVkSS_Ny4su0jtawNVHREOz;~ar*Ol9uSqgIqspZM~EdjckDKjyMOxM{p-&`-YO zKE!Jqxe87N-g;7_bzkXhj%28x<<5;r=i2lB6VJ8_)**TE_)S?w)eUrDcDw~N*j<&S zKHh_y5lZadD!TY+OqH&$FePqsQ5w$^%2$P|%dI&R`y8X=)LoUu>?TCXn>ZeopP^Ps zNutCUxCHfMg)9=<7hGMTI6GO$ZMZ46doft}B(k-l?H+OXuFkC^{w$A^GU>r#$F<cn z-vxwuRj@VWK~3ydI4LF$B;5D%6w(ZWC4x5LL-@OT20jQW7^i@fndF`xtJiP&OY%kG z|Hp8C0XGI%!eA}|LO!N~F1vDREzM;pOow|?1!&-d<->N7(a0q08JsfdOQ2>SY?wIG zGzUyysXtbH_;-@}ENK-3k(owk7JPdu-Qyw_2ZQr##V(7K!FIGy-zaTDC%|72qBGQ% zzx>kYa}P0rl1r-uh1aP{6I>1Sk_}Tl4dCJ}iVN4wCe-BpI<ZtZyA;;smqoUTQg>U+ zV6Sk`5P22y9w7`uoG89B`L2*q^Q*3VAGyM#Pg^>9fe`8w5X<oa3q#WXVVV?yqUlq6 zTao<8&%Fi5)`hmhwXA!d(P1M+NPTH-(Z3eW*U(TLaY_S3?(|KNJmsRt%OA*~@%QLU zs_%IlOq@ePU)*~bZvh*?LrQcHCbTN_XE2$T8$0J0#FL~o<8GF0N!2(6b!LPwrPEGY zX4^-?`h}3%Qqai<!=wdhDMM|aVRX?W2D*ReU)Y{|a(TOv8SjjkE9Ex+C?LK$Dw#-^ zAcJSO;A_xBwb=>B<orS3mkb%h9GO5CYrFHakA_BV+Z8rewimPED#b?oVhE`I^$Nzw zbhDJ#RbJ|*tdUf+i+(gH6NUN^oLs4vjPjhfjL>J@)UzFgUN(fie75#+W395-?{0nj z-G+6a<wE!cKybch-vg;5Nrt)pw!0jsnn)+h4yfWcYWg;&Om``aF>^K>gu6bcVMA+E zjpK!H3pu$i1!c77)_4dqlXcRl<0td2?=ul<JjOp!Y?_qu*4R@E-Tf$kTxVTf;{J+{ z`QRx<Wac>6HNj)uv(zS|Pj?*9({2;4f$6gH0uSH|L{C<x3a+d1(EUG<)%!9rO5`<Z z2|Ci?GktXbu;@C+s|(@;e<X*0j~1MB=m7@Hk%^|YYY{r=cWOks{f<}<pE#St-JT)H zb<Zih2vkvhx)GqRnD~T9$Y1;G5Q)$4!jkVw^Uwl_FTGUT)8#dpc=qn@|06h94!?(r zCZBM|IdU46l&l}vM7mf@Z{emPrdBz74>aHS8M6xX!U{xlbfLp;HT@d{Z;K#PsjJgH z$MH_wk$)W%)??khZQo63PIKMli6;nC1B;gzUvZs560d64IGML>(-PUk)@;@Ldx?9& znv?~AcpZ(>*rnrf=87PM9F?W7Hb%dCYUrmN9Vq`$Df+<0?51hZ`z~<nfn?;zBI+2d zzOkOte~6Pguoq;kaTH7jm7y?L=kF?NX}9<sbrEi&_lFS$d^S_b@|{6o%Z<!Gvebp^ z*}GuzHT%=jh)=(UxR@>|O#n7mvV#Yw;AYP8AQTRCeSq0l+aN0CaQ`hvYKF{%#VN>u z(DhkTM~}|yTM80YC?#jJ6`F1jv~+g;ONG8rE*#mV<5i?V8n>Ao3U#R4djazw{k?JH zLiF=ZrWAr5l!Oqg9HDaHyEytRYj=0aFaG_>UQ=q$*u3TW+uGJogn7T{vT2ko7ezsJ z!Z26TX`<C&$ZBcO)eF%@#@6sui|O1Ggj6`^l(vvoyQ8rd#1Z(ML45@66C8YvB=$;? zep&z449bnLF)-T#&ZDE6j=gS?VGylxLTjuJ1PSY{Dyx)lObW-`OdW}ZMB`Xl*5cm= z8Max+!^+1#``?C#AAxWJjS16P>{=~a$)3B&t1XH!T)HDe?Uij2*nJPSqr&VGu6PDN zD6U$Cvx|1Ba6|<3AB9f_y)sBA6WI5~BS|RHp=9d#iWi!Z?=33FR0z*%1@Ef7y23F! zjRMGKK~1>mvt`s54u71lOflt(eNX!s2wGCXsSw&iM^SCs4ps@gV1AXvxSh?EtJ=yj zos6f55Pj>{rVsTxIZdi&m-nX%D4(#V;c);0UH#fxDCE%59n@?<;U-OkaFKWDhQi?V zK$pX4C-;5|KbFUm|Ed(<-gV2869XxEr)~H$CyJij$frp>j4-ryt0gn(##z?Qj}oCf z4IuII$jq6%)%^7kgmVuik}mrWH}Le^8?(`?Ai#;Hd({T9#ut@jkQ&$G6)$mLNJj|U ziTF#)fcJ3b(x=wlZ6y>15axo(hZKfL_iMZ<>R8r}(PvMw!?T`asYZTO$Ub11RQ*MG zE{p5p8AZ-aY-(?j`K>Q)ehQmT8IAEb?GlrtlQ{?rCTD)QO?97FTIkVbf-${6c?rEq z7PnXMBio8{Sa^a$F{BY@t3*61A%QB`Sou8;+-p=fHsuStzy9PO3J#ViLTKR^OnODc zGWJ{uwYu%lpEEPmMu3HC%#((ZMjRRBYBFfXfOR&Y^H(NT>kS!D#nk<5^P8)Ko&}dQ z*pb!&M7oii_hP=F<7)iS%6xq=@Z@{|GUW78{IYvTn;;v7YQrY+mC1HX%fqn^C@JSS z^dD^{12`t7dLg=H0Jham4;1qn2am^F=<r|%r+TkZjpJ&srs03*Kck>Y)4i2p1mkB{ zgA~*h9ZEW%QK;L7cCS4W_EYtW9cP-*3;aeZCU#k(ResJt=-E6>|Mgn+Z2=t-oY~we zO5MuhDUUU8>!#W@>%ej4*@m_9mMF$A)iN)G%ijGzqw0jClx(Np!Ko-;#y@Uazt&Ef zQk0T@3@XAYJt8BN7`4Ebw(z8Cn_e_;EpviGuSy8Atvg20D+48ou(6-B7LoiXgWOoT z{stj+y+ZG{_MiwK5uuu!th+NUMmdAF9X@2@P4S<0rj|NJ??Y2+M;YjyGJoM+2`EJQ z@xwX=P?AEha<gBagJ;aS4af+)2t~FCw`7t&QH&8Pg0z?N-CX^p(fsd6n=X$+gfa+q zCz@>lb7!@{7pY-{p>s3mu3BPP3CZ8yzF;$PKAibjY}!dq3M^6UODR^#K+iyzkYXzY zQyGQ%*G0%3R4Y(TFDi$GUs>h&$plF?0jc68LGvkN^SIQK1~QafC82o5f5YV|I!Vh6 z-+$Y>;EA|P@6+-0V(lc&eOS}Ie`yA+Q8XE4kwasi*sx9x@Ucrt-0J16Rt51oNsxWa zf}tNEtT{zEo+YKZ^~Fg?-AiGgy@_s_!8rQtF_XV(Y#e8BKM(`QqOCLbXQPa-WTv`0 z;Q1i$Z~`SY?*8%)i{1Zu`c&ICg<mFD7gCWN?|hdr*3Tg^%J2<&+G6@pV3!V<!0r1# zx<Qe1QN$bf)HCBFn%b0fKXKEJrS#g8+hdo3f}nuL^Z)A*Nb$Qb!P~j3Fi!F3ek_Fg zXd|{efyx$CU<ic3yV_CY!WDyge8B?2dN0Np`FnLjmF3y3;5FJ34$Ws8&nf@!&#N;O z%>Q+Xz2dgP$PkLo{7j$TR2z|#1RPEoGv^(%6m3xY-q*_ReMj}R$)=wDiCRA$9GT-p zhj{|x%+ulUT82sE{lG=ZR$BO&!Q;*593{AB7e@kf6TfU)|16XgO%3c5YWt@hKXeLx z8-@5{0Yc<H$b<(Kofj*@#0jMe#-o9|Mq2C<{!3Uo13$rf@^o(-*&;(AO(6AeoU1TZ zp$=Wv(*P)0Zpq_%eq_~Q<#q29HG7#O2U^Fa!n9Iglqk;*arn3Ioy4^MHpD;7u%%}q z^4Aj3<nl3i>deMrVqK1}@_7-Df$Qy|Zf<zH4ME>>*(;#?0xk`HOTq~{vrM@t*Ix?U z3>iDsn=eQKyGT-2#Iiy;SXZsK$)qeLZz2AB_Nf%3TSO}^uc=T>K&)*j{(*8D2fMFM z(fqFB{VYexy8@)_VWQ-R*+Y*Swz)^~c2(Qt$s$d92K5@De+FU<0SCR#6k5}UaN}!7 zx5<jCW2~G}<)=-=W)!+Pn~C1clK?f~jDq}erC|0;Cxo|85Zx5}=Zlo<bV=c8tBpK9 zHiOxFRGL6!Xu|hsD_d@960nRa!kGEk?>lxgO`;5$>mj!jl|}w$l(_=zc2U^ek;cZ) zWXmCBR*Ij<dyX(sxr7jJwAH8Ba};I85S>C>|M<QRN{UJPP264_M+j&)IKB=x68zDc zaQr|cBO7RYTQr8$(ZPWfI;nsyP6u5$Q16uLA00oO5B;>P;}^~OLqhaUwA|L&6i2q& zQbN$Si3!FGHEjmvhqBpsGDl5NX`r_zn4kF79E*S9q^)(bq1bY#UOc|H<E=G|jF4`O z?aNI{A@5LrOv=!|&<?Z3ABY)HQt=bQF?uog8_~Bw%iHv=DgW5sfF@!Pyd)+p7O6$& zJPt~ps`OktncM!u^qlkFt-PJM-NN!ay*j)O>D9<D*XlYnTmKF9;jf`3>Go%0l+%wa zb&%BeJ)Rmh9pN%`Q5NH=C3w>6?xW0Vgu3OAr>85(IfBE)-c;!Vx4!`*YOv(R+ZD-b znJJ)zZg9;0n+hF{$Y?EtWP51)BfAr>pwG!*>X*2}kETTv{!_T0#=jmT4}Dhmj-BID zie&vqRXadw$cSFR0aH2_8ddNoKgXLnlGR~doT$bd7BPSimbzB+r|RC1cp2$+imv@` zQsff@Sc?RMuh>)W20Zx@^|6IWWo)mVubsXV{zS<{61Paa+6-w}0T=$D?S}4uRfRR@ z{x*wv4?0-6GH>o$^m%@*rysm1HtzgkQV8Rr?l^&;N@;_p_z1z~6x@zO=NG;E*hi5i zFS6->Qkx1IOL|Imqsm9vQVs(Jvv$&W7aY+?Mf&r2<m{V!KIKd=k9zjkUzFWgv}LY4 zAp?(MgcMt1m-V;yo7?{n)0A;iYFPoPG~D1Sx!3CpuMC-KL%98GKq$d6v)?d`oI8^G zl7K~GKkza6?m7cDw*+Il`Z?TEdw8Su%$O;2scS;mE1%V^n6(gL)q99N&il9=z-@nK zxUcyeI72Mi($<7R>e1~>=<loFcav6})7sY0wz@kf<H$tqDbVl$g;G5CGyYiY5oQVj zz+?iycljK0uKd^=>nTtaBVVco&w@-l%#Q<F%$bd`J?Girce0UZzB~G+VU8{CsQ)Nr zWJSpW*IDj)Q6D<gg(QwY4SF8`5|)b-_~##fJg~dIBfwhMeB4f7dtkXLkuivj*%=(x zd9}1VIjybU__@}Cgo{29zT+eZx9LVf6fy}nnqsmL5pI-J4s`r^jGlx;w9GQ7r0zR7 zQSZT{5GjNzb^Iq!4byHfQ|^Q}N2V*MwK2vPJop#}*b?jk$UzIhI`1Exyi;_NB(81l z^zvt%3+_0>Ti||wpT;ft%|pXEw!5dqr#8!*oSf#9m~fLfWVhZ?W3`La+Dut|f_&ux zq25s>uDRR3Y~3J)=aF)~){I+@0e;Z-%t-vn9DLp`D4h&(L90^BXViflMmnd(E3+vq zR_yEg@ltWx_IW^|Mu_92NWPV#U0z}9VW;%XG@Q*@u#~B=lH`cZ8_TA2I_`UBn4^XT z$lgjKIo8RUlUL^GRC0|xe*Bv1yR~q+D2qB-RhnqPf62fR$@ByBjjO@lVCKBXcl7W{ z+T07aCSFcMi=d&PQy|*mevGN}Sgyz9tN%5UaP%qQ_0YPwzy@B4?n=OdGYDyhW+4~c z_GWV81a5tQ9<Hfhnf8-M9ZAvrs$QR0>QWO?Y;hMOXaRVb5`=t_58Yc+@!9N>xWGz# zYH4V^(sK_iPL@ZNJgvXxHG+^!6}CC1e`0%Msk4hUUry30kc2&-mYaf2<jLtaKFEY= z2iMJhJV94@N%Gp|udVFeL{QcKyF7e?T#!%#6B>&f2hlR><|!76@HquEY?l5GY_Eu} zhGb2RH*Xl^`+<%y!T`<o!SH||cK~_rNUaJPW^6>8(NidXwx-jKrbHZ#y$<4sZ4pbV z58f6~K=rEx9?exi9PYj1KN?o<Bi@ZvY&nT=tiFvA<m99Tg3apV*yLipLShiQTCrR_ znvu2J2n%iehkx)hA9UjjUUoZ}#=QQj^HFy}%n5ElVLa?H(rx&MZ<hkk6WBE&-bt5( zYiwlno)??Hl%v^QYKr3Fo$2oRk6}4OBAmmp!Mni6HeuPthuaKxIzxcF<BuZ<S*b%P z-bYW`mvM)CXgHJ;q-ov7V}JW>L`tG!A5h|kg7nRzjuKon8Q}&`-JLADALg5b;p!Uz zY-u?ZW(C>XURWL&PUP0`|91bxISOhFP_BSW)MV^_=qlpeU6Ow$4U|e*P+gS?l}I=@ zM2hdt{M1wiA>v}T-=Rc`@8sLoM5+$VPJA{Tr6JU<&P3WMblktEhT2Q1tp-x2jVNS` zc}GtsRP8zIb}st=ZX)Pf(K=U6mf$iE7ad2~8%EO-K#`s|bQaU58xI+AZ@XvdT2lkK z)d$W;w_P8a#eM~PpYQg`GB|_4JelLm;nSM!`|4~{8zPv3t^^!&9$C(40yF8FD9#>N zXIjmVlfn8}Y)|x{T_BKRYu!$Cr?|Dny~TPFV2bY>f}5jK+)o#AEX!}n#rI1{ucY3^ zYdd0gsM~{n)@A-V!n-phi*LF6c&lXgeZ<YK&EQpJ1t&C1b3UG39&7#1=p*OciwJzz zzJKQMqjCLF@K1-O4~x%N0|L?n3V*&9VQD9i&jhq^QVqKckVLc(?I}00WNYq*0~dV- z$MnWGUsHf3zw0*cFz=n4sR1Z*P{&HKlbM|sx#XM&$uMUoE2Br95ysO0I-xsC3R*=n z37I*TdWQGBA4(a9hp&)f^~F3vD8O|@C#J<iX^bH54s=wXr_FBn;hP<TRuW=&c<gbZ z?shzp?n%;0KKLR&^rO5wb7XmEgvj!D?AoO5->+fqRC>o}G^vxcoE|zi;|w~iT+PT0 zk7`%6z$egQ1To4sO8QyjGIv3Z;u*|$yr?h3fj*l|w)posW0AF4tP1iV!;d(E56Fp| z=_5P!Q8wfIMVw#D+>uJux+ST=dA_`|!yUPfksII$cJehTOuO$Bx0BXTH?Eq}O~%1U z)*A0T@LeSSUqI0pU(woUp~_}Sqv_>GYp>lcpF5+9lL0mBr0d5Hd;&IZBBr<O#vNw$ z>C41yrm_qLd}Is%4*~no)_CXby8v8w)^CzHVATf^M%e|D?Yw;lGFSOJ$%kOe7#$tY z4A%9x;hK-BqBix9#>3rdLnJ-aW;y2{I8`-D-H?ho3Ix)1y@Hc?bS2Mw{yo`=rWf@F z<lZ?TR2p=<7#E;K85)-HJ3Fid{WNwKtA^pxs5(coW#X$0ObDN}YpP<~T$nb~<6Cl} zt)n}Ps~Cr|pD5i$=M*PX6V5XgmUDVjA9BRq3KRrqz1u*E#$~>JN@Z^$g$gJ|meV-- z6!c7Y?0t1vxDGGTi{Ox!iOdo8r1$FbijABG+fnQ3P{5{T_d(5C=7kLW{Ngt)*tbGI zJ^%7rWN&ua4`v;kk$?uW7j^$UL+Z>C*`U-D>cKw&><e7<Rhe~0yVMZZC}t#B<*{K^ zOc+T$55HJi8Dai9f}In+pdw<!%`Od$=RZKD3gi4q2@&u$hC{<J)^i)LKHyj1jap80 zORP8EVzJWnMo>Ckrbj>{*PT#R(-lgSGtxn<nM>LdX>%s}Bs7Rnxz%v!B&yS$h7lg{ zjuC;Xi+U<YIzqhUR&7?{b<iW~ZZm7PO5K&1qdb-!A{sIPralx7LyvG66cLt8xv<(> z>Ip8@ebI$AFP>NMph>j1SsMoa6#or$n_1S$lRJki^@ctX>sNz#FmGGLf_xd}(DwNk zG~x?9v!7XhA*0tVsQ)D#D25k;-Y1PN2e<7<#JSULI@}~p!fmc|)yH&ZH=Eo|CUhvX zoqEFV#*L!qJ8CyJIL7LH@CENhgHEmv6|8N_s*tDmY+rbPoNpx;SoRO9^i6+zy`A0F zG1laip6k?;v0Oac8v^cCBK1EJ#eXLu6B-pw_f6W=p@?b%qYG$Av+NxHBnxg6h*Rm0 z#8aJ<vM@$sVb}GKKv33`<@LYtzBZsFFu`i)pBS6HX=r5RS2{`rf{_CCU;YD}xKG%P z8+y+cXT&C>rRSao_Z_*<hTM?~s5W1<zNc7m%Q4eyx8K!fR_nwiuz#{9CM-5Ug<xsq z(=D%tb8D}9BK|PACqG|`519BHSU{y<+F*p5IhGlMOgHSY<5}~Pkj8r2W2{iV8gJl? z6!m?QuDqJAV3GiCO26H`hx<$51Y+fabLnG;To2YuEjBFY5YrDtE#mkR0gHEDEY{CW ziDn8{8p0$kMqn00eDigf#YQzxK|15TQc!co$}hPV1i>+y{!6oQ53N03yj$)OYg)xu zG+nRR-Yv~hz;mVdB+R@eMh?tyPX2$V8`bd&>U1nUA{>p%YXIHObi1TPxRmcKm3?vB z#r@yE&3}I$hPnUqacUrB=#F}tdC*YX4g4M3Zm=V+XqHTlOK7vQ_W#XI>M1^msuqVS z#NG@Aqqk<IiUL!MlgL=_-4j?l>m{LFgPU%UJadjIRbgh)yx6fKAYi$+Sm}eXlItkd z_cD-s)(KBdn8ZHOhh5WOuhM{<N?bX2V0-5HwT(XAEX4x&S*7o27(UKvdiMU3)6QdB z5o(H8yDb_#vgv<z^6NLJ*Wk}2JgV~#0E!~?qwOfy?Uv6zh>CTQz@^#P8ELVQA)w?N zDQJ2^pg#c>ox>D{LHzSP#jLo&R}_UGjZtxy>2WT*;+cj>xpG}-jkG2BgeKB+vpC!g z<|1u>B8YO2sGQ_u1&bv1F_O}<K(RFT;-k*>m`T71h#2%q^yXQB;H)C?zc2k4;fcHC zeXT(5&yK16>hM*;LHhrTx9YjtkeHL|uWW9QDH>H2mNxi2nEiP`JRy_4Z7M;r5JH?V z-RF(ygy>^Cho?1bgC%U7qFtT_`9Gf@k+%2gUE$8BH_cta9MDp)+FMQi-)Q}D){Ff7 zulScwuU%`(xB+O7L;SDnsLki+leEP6@qFkXTznT~e^?K={XB%E&+0(+N($F4IeiU} zycRiX@hS?gf|FVE2cu3peF+gwLAr>$+QHvl7{6vS)w(_J!Dbqz26OF6X^plhT>Rk& z8~I!A$mJfv8f%;wM=}R0B`pKS*!Z}gk4J}<ROeVJCave9zMTwdZ(mqXlTluw>zOFM z?Vs>cloS1~wgI7DT-SdH2At(hfdTqbg<tnSV7zlh(!$>yW+=@df)7hgGOv+Dl+iaB zz1BMF+h0P6@sjSp`SZ3Jjrp;=AK0Kod12MR=N@NbJc`EM9?{T3?{C1f*wE?U_pQ#J zQgUFv;4;0zU83hqUIz{ugqz)qj<lIWMTh{t%Ns}Gt&J<p8`F)P{l=HdE5Tn@?8)dI zQ9D6sZkWc=96zx8rJ&%oV@=m?#ylNBV$mcrPAknfP>9bYQFp$7_SXl2kvUK{*y(_i zf2pqhX0O}X0j1^M5{x0S&p%3AWNMt}wH=m(dE>idFVCFsK#M<5QSTn!cf7HCauHUj zfnbms>^^11^@A{tap@+YyKR-v@KP_Ei|t)@{x~}7B>Hh|)fKUq%L1)rD;>^%<g46t zUce^~*9utIL)y{=!^fmc>FodLoWeRUz3C^5+Y_<AnuV}uP`+Sk&7699AcaZP1b|f% zPkE|IX_ic#!#u_kiFCyNaR^cl^;#g>=?J_fpg4db1rvUoeE}14Pbpub1N^*L*7;K- zz)cvtUWC!fcPEYVK#Hm>2ac6ZH%_j+to){%=dH4_?HlDGmZT@JZ{I_izWu8UtksyC zNK&TJPQrD|p9~TLIWUO#mtLelGEa3s9a^p8oG1{vMZ@2?rU6$fnmD_gLrc-1UzH7l zPMdLRw4o{d3ma>yl`RF?B8aoNUpvCpg^i4qt){snO3aq~Q%{6}1B-2!FSf3?Z-2Gf z6Qgm)IpKd(pbw{+8M!HEyV;ZDMaw`2hxcxyPVO=ujxITY4~cj)KhqVQp;WgPD+Sh_ zD_C6IU)Z;%UF8o})d{?kx$#2l&%GNlfj2{oA8CGTaJkI?s}ZeUPFO1z$-@aAe5KZ8 zwfQrN{6iME25`8ooOuYIg^6qe+Sg`7$g@W7t!}Brmw0}{cbGPeiKA5OCtpIl4j*7o zz;NoG8eIn1yAeCp)fC@rUIEb2@nv&$rIr3t@>&(l%Wd4ed?zXv0Y2yShb-7ZG_%=L zTK6mIr3s+##w-&da~gMZqY2Gf0Sh!KeC-xoCz;oHzQ@gBnrN7?Bym)z>e)qb1&F1R z5V#Fj*vLPw&`kWxVMCWUE9aL%e2&wbAYc=Pba@g)v!e-y%sPxf%pdq+>CDWzTrI>? z+7Oz)y4?Zl58#{nSt&u1ILgjL+7a_-kD=UJ3skxcRBVNoipOeXPKTzbX-(_reb5>U zQ<6hq{c_xbsN?&{(nQgMVHmS8n`dH8b5^e4Huy1F#PZUKbIF4kGU?=r$38EwXEhl5 zY?O_bWhm3T6ntXca#;NQ(*wIQj%Mc|8zD*f+=zuV)h_h^@$w~=X_yxNEmxR$$->-~ zXWp)O#t{#m!dUbb(nbQ}8iqz9<zFK#Z<CeutXv*hh00d+SBTaV-ZIW~SzeYMMRgxn zez?`v0`tMaRQKi2ozCX}jDY8F=4wilrx2_9e5*Mh?U3XJft++ppMs0LnS&O)6if1& z!J7c$3rD9VlfAhb60=~TCMPL^fxJN%DP9cQ(dmWFf(QZ(>yEOKY4%m#3V)C5rctNb z#+JR9@Y3huG^b#NBBGGO)F}I{*j*u8$2vkP=<3hG{FRZq=1AkV+5@A(IHZtIFQV){ zGIJRA6y&1F=wGC+9()V%a+rN~?_pSM&+3<&xdbs3Qp8HmYR6%8@zPUIH!RVH?I!y| z?s{&~c<V%Lv|M!6UwWR{B$#&e$EW4Z^>G~c)M8mzQbTy{SA+jCw?XED1V%s5{Ic@y z68xE{lpySJ?IT-%AK^i?-e+?f{xN2*P)X0y7LDxZvaydkQ9mkw*^JX&JxpfSUd4Yd zM4p$oEp-tg(MOg`kflh>`!n&#o2S*swG;+Ya^vdD3`tMdiu<H<9~m#VDN{VxcH!%n zD_4ZtI|qw#-Q*h*oYt4y?aO=JP=4dR0&T}Xt`vG#$kVPHwll07F9N%#D|R{_x+DSP z*`LeS8V$|VYilii)28!-c6k4mgbKftxrln3xC664q>JkFSL$i!et1y=-|p3~y=NI8 zF^^HWBBVLf7s*e=vcA0>A0e)RhyY3bD0;Jv86yy-PcOP9Z<9ADj(<j;fS^ZBE&D1~ zWAA#B-V`m7JFT*Cz;wH@wsd{5SI2kp)P07SEpy~8gt6;wY=HXl#Ph{=p2*m7kXM-W zW=p%po09>yLsR(;Fhi$ZE`@1`u>GD3TVp(YZI9XV>|dszRq0)8e1zKGcnk3Da+Z>q zz3)(+yrX$KJ*d`cx>k{YD(X1mR(#&AB=|`HTRv!y3I-tY=W)oH@4zc=vl=y<@h_s1 zuvl}qD{|sA(G~rpr|l~9o_`2#PmIb{^GisrJf)3vf6~egHK)HV%x6ll`(j#P*sFWS z9I0nmdJ<M81E-aGefackj}K?<KZ#Q{0~dUT!E8eP+o!@|YvzErP$JT^#zA7-VhwpU ziWG2g=j5NPIx=t1-s~;@3g#cs-Jd&&Rl}cuA?ZF9{dM7D>~VIfxMCP6oe|8LLD~z! z-;*^fl2E)n)ca@b>MAL9$NFetz1Z}%#>Hh#*jG}1=~i9_@QJby;k`pi^K*+lWs*5M z)fYmnZgn+!X?5#=6j7avjR@hEFSlC5=0rH8PHyvH`}8DizbkB9SQd%Y!Own1xaV+8 zE15DcLAZoD4%8p&3V^4^h!AFZ{C#sZQ^MPv0~k9dAI<aNByS({jx=C}e(wgXO#nql zaE8?<Q?|p^z2?WGOQ!9j{SxD(c;GzBxJ^nwm)m;Zme$Ms2uV+?lB3muVnhIYP4f8V z!{$)gNI||ge)Q%EjD%PS4pF9PBN=t2?tIbj(A_!yvg&h31?^}T?Y9%MwA*x^g1N5j zquQ)BKQ(jS|Ct@@|C=56Q|Bsb9XPJeo6Y=?#=hO3nsF;t$OA@873PpL8T1N0p=l8B zEaPPv(YJ_X0&~Gy!&_Ua|I`qaClaU(8SyE;vR#G3=WnUGpV`>q&8Pwj$5VGJXh$E8 zsAHU<9*-~Bx4E0gUCRm<rrW7%+-~QW9T;vR149pycSdDIw^0xLE8w-$8orJXG81d9 zNXcv>ljptUOR7L3q55EJz&!~<MM&vceF|rSPn4+2(R;9JYR5dL<6d9}`#ICT>R`h1 zmd9(~&7S2$6fg7Arx~z{L4hCR?d;D^OjG=s^pUIAI9F#xur}iOnJ@-Kd6TUy`rO3X zkcJH(MnUhs!|e0dNwOGqrBn|UN<syVEHGC@`Pdv=fVg5s2I+_XB+_0Z)<@jyL9usT zu&kTkDo9~-j{t5@9OSX(JJHiZWnjP_=2W&^Tv2S*H_=Y`mNOP4?w=_-IrS40)0RC9 zi-nxmeD*m%-w+GS@Tnrb)*bV0RW&wjXV06gR}RDmj$smE2aL=dz3zi`({u8B67&M3 z&Qj@@1wI>4dDr6E#P<%5F<9+X4faBFeP@ea%pdhHcf1rDIf}lsyev$s6B{D~6E7b) zGU_c(36_+yxo&<0DFmw77`l5ijNoBr_eDP5zSWTDcNR7Nmrs?HOoUIt=AXvQ#6*PB z1h-Ns(Zo#v%dW&MYa8(;HN*7;V!>jLW^!E+@>*~r$RUA(EuftQCRCiJLzKw>OdMSy zl{L@w=0r=o9Py9Z0PgJF$Gg#C;dW~;?ahvP1GL9YFh0FKHZTqDBM|<+SG%AHG^;s# z?*L?D*kkMj1gu$j4>T|=>bBh%<Fom)F&Mk)bv<FvdoMgt+M}$shW4n!ww&Q_VRg_K zU=_aDoeL&8;9XHI)?AVF`jJceZb=iZ34tF!3>YKaKzZ2P2OBpl(YjC|-$DW=`n$e9 zJO*+r=^bs07>?o|t!9Wm1%gJc_!o9w{Lvq39T_mha}p_0Qtv+zlTlNsNO_b_Ys@LL zEwYp6WUh7K`S+Y=69q`c$+m<C_%}qBPl^U3hyBi``Or=y_P4vi#KajGDLu$v9*(va z8_d&urB+sTb|g?AsTM!<eDT_vmvKi1j)RoF5in-C$l4OUzfi@s3W0FpdSKj;1VX60 zT7Tlbjz+S!T#@fuUx-jju3L@9-f_C#{@^Is#AID`8QA}`r)NLMbxpKJxY(6;${Of$ zW>~5nX*+8oj3ZR~#Ax4dawm)=P0&w?1MTX>dotZRLvjixygK*G?oDK|wzs$dd+NY> z_(uMEMH9nJZ!>g;(-SBvGv@ojk@>MX`}1cLAoEN7!)@7Y9|=WiT2!*vEtWlsxiP2# zvoZ-Ohjq3EP{(bb@?q?8B$X9Qxg5o#V8ZguLAAX;-$W4Bbv|yIihUNm%1D375b^@b zUc!~D!sYVswMq??izQr7?b5>j^^=F*Q*yOqm-DBL$0z<W5_eH?MBJ-7FSEL<jN>s+ ztq|&aGoO~_XI|J}39T_nM9B9i?I_X&`+626Z(Zw?WABdL+TEtqwTP#BQYUY&Pr1u{ zYNMK<gdc7zW-dQB>cJw;i18_2uK<+g0fz)UDvelAj~5F<!Arr6o8yB!e^?Be|7#Wk z$8^Xe*TK;6gXHiSpl1AzbhXGedhG|B5^wog!qim(3$o#A^0?BHjN9a}aMMZYZ$F>m zNWpdcQVNe%Da>wna7?Ex_O;A4oD)6a)c|^6hW-ht`PL2tPe6xV6qjPcbNlLxJ7;t7 zwG(1Oz-*ugZ%&eB8bNP6hPW1Ahz8mv(IlQOvWxd`QJ&gSl{iF6%KI-MIGc+?8>l(K z2QSa4mkGmeO3T~4gx1f<zlOX-@9i7^-sCJjWF+vFG!5at-4Ixajq+=)eqT$-zZ6xU z%GgP5p@+OIPW?dg{v4Vr#L64RuohByApWn#SV8?#`-;HM<Nu5)LWkv*bB7If&G>iM zx2AT7m^_}@tjyxCbZv}EZKux{3vECb@CFtzi9q+E=^w4QL=5{~w!a*wGn4lekCIn6 z4(@yCero+Idgq(;Vtzujma53|ls=IB=#08!{Q6lEvjC;9W&zJ?YP2AI3Q9&jUbM4i zIZhG%3l#kkas`N6@0U;6rVM$M)%Fsfl5(X5i_dpdOt#*?$^p@1T_-d>L!f_ubNj-X z|InNa^Yp89K-KKV5Tm;7(U!KY3#80SKLIZs6`&`-q8_-V0nV<0BkWhyKwlUzXIfi9 zT6}Xw0~*F-cSu2`0~j_C*`dJZ0@74Kzv%vL%_bm*X+bl;<<<np7$l#-tNHiPb@v#( zW%hM1!$P%F<=>x^M1@h<$8;~r<KH<uE_;Q0O2G?CsDeseiNiIZKD9>4?^<o+bxIAt zBb16vX1`?y7ftnNOMWq$n2}d<xksuA%6R0oyw)UMo(oBx1*P~NuDnvRn3zRjo@Y#% zhRcj+w(pwJNVQ3~Tv3y&mlz`-dHz|db@T;5{$ge4+@;d<poTLe+l+y+h7kX5`1Yk> zjm;>`kOMXTOx`u}VIpt4A(yZxo|Wo}P^9eW{gW|fHQ-HFE8Xq}q9ixwRCy`ghlr1K z>mO?J5v6^_U3~&T@`%%{)a$(Hg1`tbOrU)I(7F82S61YNzuG?Vfwt5<jC0$_`kPR* zlUe4je6@4T8iRenxQ?r}>6#qy=oUH)+3s({-AdV|Ge);`R;^Yq8mJ2;`iZN-?NYAf zl?`=LdatEx1nPet<T8N-rC27EuKISwY8ta%TDjzS2!-OXmka#Qny%0hAYhr-E%Ip) zIdbC*2oGLA7$91<N3|{{X;Z1isY(;8jAdx=PsKZ*k*-Lq55%8efn4N!hNoJ6MPk10 zDj9Jf>5p4<zr4{`_UL}i9an6cXc0WLB6UOAhY|G|pIn!-`|;{8tPHH&j-A^c5+FEi zQ-2ncJp^9gQAEOc1}H3ukN&GY$w&lV)abk#dL53fn2`AbWC4aWuO$dhJJitW=Dn_< zTiY73M&qy%Czk#3_aVeP^kgY5KpA-P3YJC{Dynk=9Ds6Z|E_q;@qRiPyRG6BC@-sw z#;>cF0eId+Tl!0aj&HJ=XOpEa*4<q=he}z-s(zqs4aXf##X?HG^_8s=EUey4E80$x z7k3CFHM!wE&TLyqwty`QIe!yj-RUt1E=b65MahGcuI20tm=)K!`<22|<o;Q*bGdq? z0zY4tELF4vNC2#px7qDbJ*H1S>we`yR_e*@(tiYA{)v9MTfM4dG@hMUs~Y_H{1|Fp zbH_MEePlJ@O!erxUh#gLbIoCQ&)TA2$mS(NT*>a<DgJTr$LmN30}zSbxYISZaDUp= zQ`>58X{#%(4f2hlJndO>rdrf_JdkNcn^c6lhduD)?ajF1MZOk6AK4A{z7(%f3o8N6 zzJ-Oep_e_&`q%%<0ysBYmEgA@2;?|Q)~Bbd^wS0oz<nvvzw5BB8ZYklP98pf^3*U4 zCw%Ez<+TmwtF?b3JNd*97@CSFDV<p=|EC@7|1b&Uv@Vz^XJ4r;SYO=i%l-VzYwLqw z5?libq8Z&)E4MCUyrZCWNIl;5dXlt!zz8bV_iaY8#K-aVnC=~Ta!^c`F9vJ+<_q=} z@>DnQRSvnPHYUi$k35o_S}>vZ=Tz_=T8Mnw9~DxgPB|!AWpQ4dOq*i~jC?=aN2c=; zt=x$Y?J0r9ZA4yBIkgF`770ZNl6}<tpYEjiTT=rMs;^whVehS+%8oxs{bMUv8>gr4 zX#Cav{^58+I&-<XSEpe6-z@4qN6#Jn93yojr*5cFC$jU{o?k<)Q*vAq<Kd=ye*t)s zFX&d6;OHC&@74V`>qv|HyF1u+=tc+Ld-K=UAZ$Pcx8J|d{wzYzVpuLGm!vc{eFA2c zB%+g*@h=E-(yP}&+V3p)OluG4e^^Z?z+DAop=;9G_{b*Tu2tK<(_t^6jhjO2tF~IJ z4b?J%NUYb^Uuc8*Weu`{9*g)h^;<~@X-7ZXB{~K0goBO832BEBYHiFJVkFp``6S;? zMJqDej6{->CYtcZQagJgI6w0BOO$Ve`E}7ZPf8lN=nfF0JZ28udF7HsgGQb)SeFa` zGr|2nN%nv^L-prn^b-q!5Pob<Us+QG^(>CHWH-&#C0M>v{aej1dZ;)C1KdhF*ndsv z(@qx|=W{5$|5<{QXo1AyMfQ4<2YdazzAzGn;ie;3)99lPEahGmGE2Z^;Kc!meIw{} zsfr@~bVtuxM0BPyd%UBw8GUHa_SsQ3P(uq5>19r1A>HNnSbh_m3Kp*%8$UDsDVg*T zcFz7c(npOBV3QdjKmZ+ULC>etEW$Z3Djpr^$l~*|k7pLY_xVgqeb3VqlRcVukKw_} zc2Gz%F2Ktjt^@MFY2jh%Yj7YxJQTdB{{im~^uN3)gCRP9?O(6uxvr0Jh_@7L{g?@r zdin{nm*KF7Cbyl=MP?o?;#tRz#ct#LUmJ?r;#rK`MynljjORr78Kj}#sDGzj93RN2 zuvc(P&q+%2-N#{J3I+Wy7Jslu09k)H((l{fiiYT_!BBg>orYMF&}0pt$>9F(D18;( z$t~r_31w(d@1pGTw>EKR$sp?_`qLfPq=VHieE-dQfjvGtl={-0v!Jq_ezIVOxgSO* z|I{D4Uww6weOieL*9N3lCE0LNjGMjh-QV!VpQHs6#Y!WO_UnEvSIB6ru^_^o&jpPZ zlESn5yA_Vt9C^7dJfM+_dS!}O*JYaQHdr8#oKS5cE0;-Ui&Idua8zg%j@v_yYBLPI z$CoPU6ZZu;oWF7&%mc<IBoUVJ(zGlxyVx>|CyFB368o=mAnAzhKtc0S^kt-aOX+yo zc|Y?%M`=xTutt;&Q)Y(y8)$vxdKadz{MwG9|BtY@4r@DF)`eT3K%q!+hqe@VCs^^~ zP$*WMqABiP97=&=#oZkWL4v!x1g8`U5FmJPZo2nA=j?sHd!O&GJV|~}vev9wYi8bg zXO?-t?e7Kfdl;O_eD9{e0Mm~IgFvsuR6X0A&*DIsVmzhSj=YXc@(%rTK$wWYS{^5W zW}4ge7$-0XaqDP&M5#3TC^Xx3&4WuKq*Y;pR=tZZQDw5LZQ*rH$#XWb$&P<Do;-&0 zTZ$V$M$+WN#b1gqtyRP2-$L>S6F&q|Z<CBTR|~inHMv#J?Jzx<1`XY1Ba&t`?o4nr zw@&XXUdhEs)rl~U092OiCWuHGPzQ=i6)dEBo_v~D6>;5xb5^*q9>Qbn2N$eAglnE_ z7#xoK*zF(uS&u9km?Q4yGBKlDSX3Ljpup?r)k!L3aT`S>{%J`bNncIpmP<kBW>0fU zg?|#ero$OQ_C=G(Tkm)Hw*UZwXO1-mE`+$=>fv)g7-?wBvpwck<EdDpC|?<V5jP5+ zw)$2cjMke4E)*cVlstxj9vu0ReIfExi1;3kT$5z~1mk~K{+J^=M+y1};Tg|6etgkw zTMU|Twed8e_*8$Nj0?WNJJFS%Au3gV+w#yI^8S?W8%B$jc~M;Fd^;|Y=L4ApJjl~9 z@p<A^Rr)ZbrxnLXeQ%;a(vpeIoFK_Sq9N&8|2on>dnx~=a-8LW)sGV13Y`toVM8%O zXmWw~81;9Kf5s6jwEv1D^4Rh1yM%rsYOYpQjC8;8e0H+r@$nIVK0-rs`vVCJ<#qID z%~j3`tw-Ot2yKY6V<7W$N3D#Flv9ZCq5w5y1Dy&W1G3mx%i&ymd{9zqRpS$rTObx# zlm};I7(Rw<bUen`R`t3E^|B+HQ78o2EA}Na7sPM4NXzp3+ri#9NDfML2i;YdRL!*b z#BLw$WE&mR6a5Sm%UsW8SwS-MVM&B9ve}Zr3tK7Vy#+J2{jK^<7w^1#Li%FI$Q4gL ze>_LoGNFI1*17hPXqT3S{sp?WVVF<+cQ4RQFHVZ#zz%Nl8(s|94xm8#m|E%{nep4$ zVpUEYnA^XW;V^%Ov4uzz7#=nm`%3$n+_*wkFC}MvgIwY+whi_qwrn>qc})^|^G{(E zT?E~GQhZ6tXT(GzB_%l#)Y#fGXv9ySp(VbiYg2-^HL6Q7K9#}?xrdHEAS^B|JnC8& z4N+FE+dmg4pRJ{P!Lyn@>Up{n^50Y(9T)>-H&*4U-4Je%3UT$EO(waJl;m3<vFd2S z=$z@|e%d*-!nsbIb0!r=Hvxn=$i_E##5aV4-^NgV1pT^I{cPEy>t~VHr7Fb5;?-uC z0kUywE5yj|k2yx_0HvXJbF2J@;d3adadcaipntlv3`e+e*5kpth$W4hf5zMA!qLdC zN=Jr^n$+#Ro6A<CHJB9Kp0QB|n{|P6C1<RKl`NwU^sLjt0|)u|hBWUKW2WdT#t%eP zNY#wgTUtJ-@1W>0DdkptBXZ_ESKTM0a>C^&H`GbcWHFqJ@Cl#ZAdZ`LmZ1cfC*0ya z6f}_UpQhZ^Hkp#TgV`3Dl-darxx=A`X}L$SO85IX9C9`(nb9lx5w&-&@>5th`TcJv zRLDBRua6G7wQ?NgSaj*l2j%dKk07hdX1l{lLTz6QbXsPD_l|=ql|?mXBUx<+`uW?W zi8=4}eic2p<OOpm@5bG7S|7&GDyCo_9EVFcIB18%f~6<(RgH3$usRN!r!_XrQkfE# zu4%rIy6mt}i}`8*!B2QsJiJb=FaiFJf84MxL6{%?a<g>ez3pOYn`Lg31m57D_2cTg zgnM&w2|FF|P>c9RCN7fPzaZA`?ppE6Y#|NS2#AMG!WNAR4SnCgG}4(((|!kccWs<{ zGh|naRdYrZPSFFpb)z;dHZ7rg53;_f_1*r$XE7M36U%BRw;pk$e!)EHeR2|t$83F0 zq=R7I8Css($mcghc-<=}m8V4WSYkaaC9c$}?6*Q;SKZg*+raFgI8FmN&4zb2))s(! zkMDPE+U!xOnd|A5#l1mbr&+EVSIrLKShZC7weyc12YbcsBWL2*dXa*u(9=a^>*S`S zSuY-29QG1OnwHJ<Ge4q9s!jwqL=0@se33~d2_hc)s1axQ$6f;MHJ*Wbx(SDk-N~25 z;C$gPc`1n=x<=)a{lqM33IVjmn17&7bZ1$@4USimOtSJ!(XaUhx7a?0=8&gmtn`(< zag`fd{!pk;9+AI4zY@=OQ^Ik)*waGnMV!l~LtH?$!1sFq2Mrs4N>K@C$wcpz<jm$h zRE?^DH{6{i)sDh$jv43=l3a)t@Ux}wR1O@Jo1k8=-b!jA?($%?7~S*Fk83%~snk@g z(@8~M@lsg!Vc#`!<k^6Pu}VVJ!q!ujzOCKku>h_=LGx_g{hKCwpE`B9X-&n$Ua-eb zSFmWaC^<K~#cvim?j_(GayY(!f+;jRARfUt6KFzd;QTel+w!B%uyGGUVXQ*_F6b*A z9VRBqKVHxX0~M-Q<p&x$bZC*cx%R*#f#+y-cBM-A_-JTPB|9U(X6|C~bIc^oFSrbQ zqZus6$nFiqfuvTq*fk~iaM_|>J<<|a1l`Roma@<9-#$z1_;cSl>S;muuRjsQLm6mf z&sSK@B%w~b$dr<`1vPmAIK|pFFfpgxdN?Id_d8E62CRL{xwS6(T1wxy<t1`^FaX*_ zzU{OLr{}rLYD6-;ExjL&87iNdrj&g5&vCuOZ>q!>s`Y!8`9a{+V}e{^Ad#HD2_61D zXBto3>(d5ZF!A5v(>2rK+vi28fXwccJoq72y9}gk@h%cE4xdzKyqOOhcP2DmT4=wR zSIK+Ru+N+Cbc9u(mrKpA`d@#7Ns3aF_B0`!5mAv}nSf!#d$p8tXB-|MO=8eg^TRzp z>?^*ZLJ#~WD^4Cz7i7E=!x{^Klppq9y2=l271A6w)DbZMm!vUK8re{IZ|b$6Pm~+` zbsB7}${yz(v~@-QC8-Trx)mA7wvtnbORHm|6O(deIBDB42t5z@0dcz`fSGGH;;=JG zEj!$zlKlR^<UmJ+nWEoULTjbhK;5d3EC+l=G^UW*$b};1y4p=D_#?Nk^eh^eEh499 z<PG!AZ@q6~9-+UIhb5bjhNX#@)@7OPkWA0%u*8>trS&h_(lKLx$>vs0Wi?RTtJ^N> zo}+kq&=^Jd&nKFkFz=QENHc}JBlX3!Ls&j0N5=^sDSA2xb6oOJ>vBiqmY=aZ(Lm;+ zp!Iv}28HDsp(GQfb)SO*I1&&v3T6M)yw1az&h0uzo4y|&^?Iu-7C`k{AKFtGRn0QB z1bKica`b)Xuf+drK>xkw|4_;Q%e%mI%%`uw$c27u_>X1(zdZ8av-|JwBIMsiRC%)X zGXBp3{rkrF*Z%nT7e~TZbTSYX*V=;e|DPxSdwXG`oFMg_I5za^f8_h$Blv$z$Nn{1 z$SydN<EQJ#|I)+%$CLl_n{+ft0sN_bKi>|7RLxunK{$$(lY%}Jt8P#*=Td&_ya3j2 zHTfg&ie~;$Sd_T0mhnF)z`xJ%-^Trq8KRLQe>Nz}YS0$ww=SyRcAltoZ@A8+L>r*f z_jdf#?|ebQ$zBbNlC$!{-Dm{-{O4SCJ?~Vl)+?w4cr=JzrSu?kk$|0++lO<^+a?X! zNB%P<i*8HJCFg_VD?4hC!fp2YHA|s#CeIW&UNekaEvYc&jgJ9Xt89aC_INdp!%0wy z?gz~EV&9D=%{_zWPj}^5iE?O#;D}?-(!{1b$5fRaccOryVws*`qne#Dm`on{Qy3c9 z0)*zhAlJOsI&vR&-MHgl`t`tfxI!V#7-N`6#QZ@$jv%#UNldu(^CDX#ArZ~M{^1&` zKkI{t<SoLGZfit`3pI%?A#|T_FnzcGTYem=&FZi<!1ov>soE3cV>2U$#ZX$mxx^3r z_o*qoIyReW)=TZzFNj&ns_e!xz}ZHW&I!9X7=nulDzocjj|ID#8j0{Dl=EZbL)Q)t zDiO6euop8A6k<n(`_;4W1@1G~;WkT%bx)S{Jk~j{!jAR(w2O^5^#OaI%O>~VmM#0` ztZ$E@glmuG?X{(Ameud=HSdv*7UbLpJ7wY?h^S35R_}UMI7d_MLwp1sw$8Rnt(0y# z^2T}ucekJot;(gmLV^$9ZG?ixk0kQfACGCsu#z*5+TJ0r9St0+`~a<g9(R5;0xXr< z7O_4!@b<?8w%*X}uh~4CD@llA;I!HGxL&S&caQ|Dx7#Fl7NSb*P?w7Z+H>u+E#rJ5 zul^5BdUuSEpU3K{8&+Q=z6!DFVy9Sa0(=|KZjm!I=9H!lFrI_D`-rxD>&K1CNnYcS zhX;IIggQrBd>3~MJsK8Muu5;NeV$b9DsLuh4GlTut6g0O7>DaomwIl-FX5d6S0{k= z9nd6kMKU*+=cmw1zl^^p_d|B{N@@LZl}2e;ENdPxF{Wkl;hA&hF}DF*Tf%NyM=3MX z{SZ2_`SZ&ID!h+)uvAQ7czb_t#m+mFZ|vtW6Gi>A6wfga(Ow}VtMvIYMX;G(^l^bF z4RC~ybXk9dsevbo?eE2{@h<!=*e%B6(*&pkQl_n%nzQh-(NjZ|ZxI>AONGT=6&oj3 zN|RO++AW7pXRdHl-rnl<L)R$d=d$h>wElR3CT`I7drwxs+o_*u3g(t``QFiIZzJSo z=qz?7gcPaMITh87C)8M{VSX(15eSlv=NJwa@zP7x78oC9tC(1H%kjlPcX~)(v^4j* zW*i*UaWrtT*N%5bdKYH<1!-Cef?10+Q~TAXP{qP;S6@Uh<7-)@yBFO!-2bd;O}i>? zol^&DLSQGns~SxP-J*}N!cArrW4kkoKs}F4w?6ZB6MFh>K;R(t)wX*OSN7@}_F=2N zJ?6k!z2}jWKF_0&q*I&w{mS{fnY$IS*bW!)L=L}1)%2c2CS1jaM|cRHt%RF1bE~Sk z0hTS<%p0c}VSM{)3z0>eiM{1F9J}w(Qn4v_R1C?|FYORMKHR9jg&{D#^UqkyblFA5 z^p_Xb|1_%jfAJ?55e@R+ZHZRRY^oTz2QRTLo+Y%bnEgofny?G~cZ>RuL+UCJX@&j2 zCK>#?^tQo?zVoVHmw|X>f0>g?xXg^2Ir~PB{gW_nL@d5e+*au}S(zYjL@f_HEo#yv zMC6Y(oW|hO!37MLC2?3GW87dSh2`Uf{YYGE5Z&4S&-5x0ez)sjtxD~284=90LjEYV z8451=MY(eI`8nIDO8u`-e5jjgtZLqcfr;T*Bt!2RV~mPY6JB5JJb7_DRP}ZjW}Fb) zpwz_q%sj;X5V7WGQ9RRb2*tcIP4>w(OSN9Be*?h1maG|HU(o_;yc)IdBwgMcSyNRp zu=f9`k;cgT5LrKbUsocDQrY)zn9bNTXi2>0ogns~%DtXvNtbKn`h3uom@{beaTsbW zYxBd}m!RH4iMAp>FoSyY&cugkEAdOp`Q8YQ@J+z|(x5_C{m~=scFV|Ff8ds?tL%Ze zJlyS*JhqiE+=h_NK}JU?t60s)zM#t(&ebB5X~d>*kG_6LV1>8xK96-4k>yvh)-C1g zB|Y%SSD})PSX16U8s0f8VyYv41y<%;xed^uG_DDJmd>ieD3cr+cJ=H(%x*j((y+fR zF5fUWMtKYNtyqJ9k#cPgSB~Jwd&dX1$H*&(Vgs#bt9?MnwDey&?Wa?M&rb<Q+~yCb z?3g}X*0&S2RGxO$Z&uk^UEm%jGH=@X8n*1@R2}}Dt{4jEr%8`#oc}y-_iX$T19rF; z9HzM$j-?J8h_a4W?8it8e;*9Hv$d%t9<b?bb#7PC$Dgm#<fh=tD^dlJx+GEPWU6qr z&DY32r4R;jkRsdn=5X;f=S)3|#|{yQ5S-t+L%^l|Z2;aqUHjHN7b{<6bUv82W=3!b z6r+z)@QtYTDOwbnN*vAOd%p&EpNQJ&Qmc%?Q}aQE5?4h$g(~Us?|i%Nj+(qKKsK6c zkZU;t!>pSvpsyJstNMa28{hCDhxn!yDW4dpi|)t$v5&gImJS_B8(;XezTw}GGq?WJ z3uxm0>siRH<j)FYi_E6JcAT?qmN2&3{*&OUlIir1(9>w?-izk}-*5rsf9YB=!gNM5 zn8QzP@cNOqb5UT>xXeHs{6=2i4R_c^zj>>G#Cy%pLABAcy!EA_lM}9fVLw_lCFTyi zY=5@?IRqo%{DIx|XxHBYg`1kVY>lbwhdF2e<W#gOuWs{*cJX)N)0yVYTW0Tdl41QE zA!JCb6bFNTIO6fp+(W0{y^EBt_jw=#d+&)RdFP02vurQA7O2T2$4}E32pcZ9a;g`K z_w^a&^}u#!rYe<~HOGUrDlVlH+e)Bkvm6-!<(G;;ww+yZLjm)upu}QVHx}K>K)^cN zp3HkX$dEmlD<Jp9jX^2SzR_?3r`VibiVik>G%C<VHb()a@nh!GV+}m07Y%++YSrh( ziuvXzT*bdkKPIY%kr!S@lh{65p_Xf;o}NI1wnsD9`h5TFmFT*SciJc>izm$&ER~>n zvL<ItBdk9bMt<0AH`r%;Jz>>DE$$hIE0@s-{+O?NBs0PBi-&chwkNqnKbIL`J9~Z$ z;+j$RfDW9^<or=)*Ydr{Je|FbQUp+DwH>C9Gr4G&63$`uxaqZ>({H5GD@v9o&PktB zTZMSJz_ewU&HhjXvMFW)o+UN&Qf`l@uYG#CRQE<M8?IIJz6cGn1e8o78%$BR8oNF7 zY{TVh?n4Z&yCm5Ny3wNdm=>QcZ5PjaX;?7}T!PyXWo31xToc~T^0<cd*7lz#QdP4# zolm;?yH`52O{2XCCNSMg({ZiVE42}O0Jn)^mE>=>CD&wDm%m3}7<?LC)Pp<Pf>O4X z1LzPm!<$*n#S2>O$3YGA=O0g8N)>`CC02$h5M2@2TIIc3<zBq(KX_8!(76WRUci^m zC-cW$sB`xg3T~+GsTO8jEd?Ka`!<HRg;XjI*L|`aNi4=!kis4sb#=HG<*<s~7_AwD z<+&+=_O~@Av_*%8$Ie<&QAoB`pl}cl|CAf|4O!+&bJ+CfL78V|q9*SAffC5TL$)fj zd=q<pMhjUlNCz<EHH>i@pD<u@IqJ4GWFL}j?D!jlzOhwlC-Y0h(kfF6J+hZ^5%*&Y z+>>%SbT4^kG9PZ|>gVC{5aOH^Avl)7jU=-ByO_I2S0Vk;y~(siqPBo?eIToP=}qj1 zn=j46KJosj&8i6lGzF!bcp8l!tkz>&dxUTHnj4hdBt%~tZg^%bd^yrlq-@Ba{uY`p zyvOBcQx~#!bH%ZL5(q^kIuaV@wj<7eqh65?-Vy~6{$8~Tn^taj)*JJv#42&)#~#b} z51B7VkovOL+Z*>D-e3?A!4;MpGv1C$ZXb;*&cVkl+T@!l(bt%3aPx7jWwS;7Q-87x zNs2UNecVt6`?aE)tm=30eB-fD$XBr)Pji;(pyd0wlQP5f+O=p&*ZJL8CTM@hSt;a? zAr@siZu!OWU30lND(c$mQAPafq3$GvP@Yp`D=>;<bv#AbE$CwUZ7`M$O;gVL*>RSh zQDr4Re4-M1sh+~IQtGH*C;F{sd^3|-?cs%%Vdfhf!OgMtPit!l@3@TB7l<@=ny^`M zfHTxfa4N#Jw=7HvC;Y_Yy2d8mi=@h<V9{$+!(6xU*Rzs(C_^dC{I&BQT#;3NyogEa zzB<jAUy+{#j%U>(N&hWG{To7&Awv_gNUpm-J+%*+ychOD9>{i2sBQA3P+@e<p8~E* zEV=2(voDiIzd}VVwdc%TPAB~q3JipaWb5Rm4xbZ=|5Ao*_K56N#u^;{GB-FH-wiUk z8-r?3HA!5;SQywmI|+`Topw1~_UJrrfX=LKtNQ^ys}Ky$(C{n|X24-)5mB>cjCjh! zkOV>_?7++BFgtrHZG*OHOZo{)V}3dbtJIK9zPLr%?D_5w99Q|c)90tJyGiq~-R|dC zu1~zzfx*^`okuqYoORt8x8HN)FKBu5>jPkkUG<+k%b)*w83%gD?Cl$JTj#z)a*R(t z=*AOSC7BN|%;Kz2HMvAvqMkf85!?zlJl}x9gm+IGs{zKPQPWI;%dJQC1dbDzDanLs zAZ8h9#`z7pu`K75ESokN;Ca2ZPQ-&c)F}1nLGHSqZk5pHxW{U_#5j9QJFc>LiK)BW z<HJdvhrpEDeFMzp?T)>*6f?naZzXuqJWJ^_0Xpz!W}dcNh9wPNulRmmXphA;WHxbA z$l>h8X$s_*?HH9}39(As9JzJ%rE|c9OB*%CWAWI~wYg%<2s)ssw;xYxw~M9Dl@|%f zAe!R7-foP*i$KMtXFW=MPd`t@`aGHzl5daWJXm7*-CW9*t<%%Coofq6edRq%gP^D5 zWdR$%|17I>Qifba|2m(@#yC$i3n&`(J;2*q+x+F5m2@vkD1KXuj1ub|fxP3YmmsUo zLH*e(bB#=z_vGTS&xpT>pVTm9{<dP<2=5X8vi`8M%2&uKbfDh5ZH~uLKThv7PxBZ6 zU6g101-pt<(gNiqv}V<)SGs&V_$88p`>@l)uAkEK*~*1g_y>>@Gti8G7ujC+=9=%q zjxqIm<$F{jiwYpN@HJ#S*QPCP-<200k_^w)Y?%imSx<7wo8DCHcRRvM{5~N{siR)s z)WfK}_O@c?IILW$HPa;-I@~*yj64EcJ<6cR;cvC$6<p``F5j>pJ;o=YtEIh2-HXfC z_B4PP@-Px$_Pd>i?qUs`@tr2O&BFTlKUa0#DPP`Hyl$Is36kgQR&fozSvwP&lp#Rz z%4YfThtrUi&vwC=>dr2UtxP4wCBYD!RMd`I=A`~;uS=}LDb{WPoCDLBbjIe}YJB<_ zE;5i-rwgkt8>2K1sCg?XP|@hqFreNuJkCEi`gIJSu4DAVcCcw_HZRk~1?5z#XGt_* zoDJ`+F?e9sx!es$)0?)uj$S3)C9o}XihsL0c>je?v4ChYYS^Jja!xL)`?HJh92v!< z6e%ktkL|gGzZ;2}M{yYx!|_%sJCF^`KYKK-S^QF+oRaQ`<dWE7>**;wr@!GYQsw+P zy(4=F<AW;fJ1|95F{`N-ROSn6PTlmC3}ergD#M%;0n+;g?jMJ-|A}(`3*%TR`s*_7 zU^`%?j~VVwer@Wwd$F31=%}g)&CUYv;7vW_6{=w7_3M6B`SK6;RG(c(9@^662ePwe zBiI|C>nsv2twUQYXv}Um?uCv>6`cShzq`91X>@|v<58YdW&bWqR>mVAu~$yY<phj7 zO53j^XxdUi$wB5KFVUtIn7%6&dH0EXi+bq_0s%nGr3GPz%a~tMMI(MbET{}foL^9} z=z;<-(`9tx^vCw@PNcm(00ffuNj5hx4zqX_35`BxdnO<4P3t7rJ)R}+N?o7pxqR4@ zqu!g%!cm+#kTA4ZQeNEMi)5_GJdJ4ey(EhEt;k{M`?bZY+P7by$9Ao#J{q@L@6olM z_}YSH|J<X1BQ^jSpsy0AgsX4rkcIr9m?8MnE?b}hV*-`rTP|Mo1j}V)>fi{YDbLnp z-|X!{pS?~~G%(L5Zn`P3$9|Su8e#L;@(3}QetJ=z^*Z<Jj{SfKUHApYnT4<1q$X#Q z^OP=I>5{|4`_`{tBRLG!?@?>#3f!I+7P<xcU(YMx3TTMLhpT~O>zeKuLU)7ITYO^z zT>XLvR?0nw!CFVJz8Zp3L=Modk+`VV>rGEX+e>i&&;EiITmQq3C~<G|Hc%afREb)W z$${Qmy0fi!TYPQH3JgJ84@aAoSgaEZIW+hyveQBnO6m1YuU7N<w(gt)V}`2k2kic= zePytN>p*M>B)D_Ql9difDZs>M%F~OEMZ{>)<UB>Mtv?^52Xfc#Yqa%W6KM5qDL+V& z@2xEAiZwR)R&WtBXX&jzLhGMQ@?luU|HU`*6~N7!vAfiJ23}?|IynfM{ct(cq&rQ% zJyhqzO?a7O-A~~zT*GfO9@6ls6Sff4`S8TcH)!s(zM7#%zI7F<R+42B7U-pQfj2Cg zHk}kjj2p_8+?YCnEvw3T<JNa)#25@fZk<4U&SE}twGv^gq1MftJNlMu_3_wi=!oQ8 zG)d-}=HZ8#`c85eeZj({A&wuw+W|4@-NF4gTCEz-_qkdUs`l^VT+YqA;PsDz{&*iM zvre|e8@FL_&<LsZuC$)pWjF>~Q7f^n4;%OffoHQ?(yo7YRhye$;j3$`#u{zg6w&uM zS;)&cNI3;^-u0<B9Zd!VJPcpdqhFrbjXduqYWbxiqIuuwKO<?)>yUO8%&Q=_mEJEr zV07m%`>u>X&M?NzLu0XD%}E_1n6Jjl`XYL-n?D`dX^ye{!X-9l0K8sNt?7f`H15ND zf<tUznp8DcVvTBb+tsAnj{n!Ox}qlTcEvo<WUhn;?tf|5WaOARPl_)2Hf<KVTseqW zF*3s_vwwES#mM1n#la4T&MNxAq#P6zxTD8K>Q5(J&1Rff=JNQ&02j}xNxugm{V-%I zs!xV={#%1>ekWYwuwku_62z7>3M$GCkfWWfNlh0UjeeKX187(OKzQad3l6NS{4H9k z<|`41?1f?7Vzk++zf878UO)Pp12nTvqU<WE1k!3|<Jh7cU6I-xS#ABUqF6!+51Vui zYGC67`Cq$-)6lL_J}%F*1-i2dbdP55iFV*_bCWm#0ZR@Vz$zNf`G|%xv6VWB^VOow zV@}<IAJ={u(dHR0sR}mf8>v^Csb%QTFCKJGmWnJNK;inf8I`Kccx!LpX?3SAWi+9W z0mr9Kc14b`D{3Xmarl(O(1FU}mz&v~GRYlhYk7DilhbOXdX>L#tM||5N<To$5@F-N zts(kJQS$$RIscxQ?|j8^fcfH}aWyWxAE0PO4p)aJ3vn2OcdXTIieg|3W^r#gj=&J{ z3tuPD_-z*q*1A*2*gj=Z$blGIraVy4zS;nvxze1grFzu;nUFD_x|hA<T!+{H*@y&q zEf&7$KU0SF0dUQ=7%~k`!$lnLy)(@3qUNY21eN#5E<CvhK&;7B!v(pxZ&Y8Jav19K zmQ|}#u9kj}>2ThtNb;Bop><seb6VePVs;R4Wd@>K`d>wi^CHd|$E-;uZi2*rJLr}l z;9BetDM~ashb6hYo|&=IWPR+Bn6&8-P=z)5j)zspD`qdjyrUT<xVuh-{kCS-1@*)| zY)00<@*pf$@rGSf-|T#;_}F*)sH$u8ZROV=m5H*qjFqC6t%4F+<SXe{XIh-e+5E!O z!%<L`xL+AtDWaEOlZr+sbWe(k1CVhQO?`2M5$|Go021DD)w2Lk78*K)CN@i!i@p7# z`~&ncvl-yGRqaDqkos~$qCpFKd%4LT;~>72cfUW%$*Y9&7?F+G^-UrDIVw_g?^!g* zzB6^W;4BA46&S9M8}MBtKp{_P6CX`b0~u_oe@>jEJ@@O&BfPA58Y&Uskslh)6ZLs6 zcT^P6^vG^IR*M{dPIV^m30Ik>Wt#cpnv3NxRLJ#JToeHJjPZ2C;jZLfTioK;MDA#q zo{dW}O~dqx7fLgtDa#bqL+_A@H=3$4!0Yg4ckBZ29TdcE+`%%eQQhroIB(#A!W?`P z_;mP}&#%P*04{JE!+~BI>bq0TDP)3cI(l-qNL>{x>_F$YLi-Z@;;43EK`8mPrQZ$+ zcOK+s!}k7ZMSyPdeC+)&Fgn3UH0O++d|}nReGe{Ha5f4@d|wu=C7lqi`I+0cnBCwp zRQKgL9YAA)-R?jCHX2oTGcHErR)5Ir3ekC5s%=!U&NO1bmm^rgm$jv8C$cvK9)iJc zUIClIId`h*j)P!Qv9aO}@2m&10|UIP#ZI`Iv7Lv>csk$C*B;-1FWTk}(y3b5Sm+9+ z^h5|Fq4i=in5;{T4O#n*NnJZF*TApM>!0g-HR5L!=kM>YpU-a`sZ~$9nH+Wj%sfP^ z^A4+GIoz1)f;jYQ!t$uvUp57hj*FZ*wp5GNeMs&yh!jmBRSCbq0*0=dW*8JNeK%Kg zfBq=eEeuTq1}UKv|8|J$pR;WKoihk1r!IKbv*Cy8r^66Wh-`uU+83UR3$OGfl}TMk zKj2BI&xZ9hrtf*K4m6Dc>rCCWCI>z@U`rg4pEs`GrXMOOU=2_KV7hA#k>-w(v<5rN zac*G%f!KxJ2r=46>bQcif|~!p@H^RKpRAs~Q4T}x9l!~AFNHtcODwJ}N%3|^D1a%F z!*^wA6$zN{;Zc!TJA)NmC7G@~6G8#B{iwMf&W@ycF+yQ{BPF4__yy5ljAd>II<$IZ zCqvtLruYw6ceEkR6@U@x0a>=xiji2D{@k!R;!4Ri*RaKWWBsT(-!Q%@_Pq`?w7H-e zTZThycY(*dPAx!$(cVKRbi#>Y>e<ugRmtChcov0v7HZQQjs%7yBw(x$bgiacJ$Ts; zF3TM+I}WC3Z?Aq2WGienvmZac$7J?8=)hY#WG`2uz_wixOBlSe$X20H(<D2Ug{$CV zHd(5EtKT;>B|}rdwxXW1;L>*29H5@Hco$L|T!RI{>IS)R>wsuYN#>;^Lfz?pn4U&G zd%*X6w*Pm}vA4(Uay~Y{VL#aR#c{c32<)+Na&SqP$L&in$*?CdWb54GyM;q&0ngH{ zCpZ%MvWbx(E7CK#=?+r-KCr5Lo%QfAQwfH_TU+H~Ga=7O{5@dx-4yzC7Dk6n29T&* zoTK#)ynQaTeY#A?^}N`o2{B<~C$48r_%t_v5{pvoY5h_J?<17r+S@V;O72rJ`;q&I zDI)N(JwT({i4JSw9<hoYQ#+yMc#y{XEx*Ez7?{VHOt#nwV~!}B33qSO3Lc|XHhY%7 z3uy28_|?}L0VuDGD$WG<B&D#5SEjeN%fT-X{hi1QlD~2y;o)q?A37<U122}L>Q<3^ z!hy>JoNG#BDj$r(NPZTmulQ{EX8&=MvAMBrmBU*thNimXkmz1<H}|IFE2FHgid@a( zoS+f!c(iQ73F{9J(?g&NF5`WovCj7rE>##QE?zJ0VoV$+UYK)0Z=WMl1(V69EE+0D zzc7@1gD@oQO3|L+!eH6W+$YTq<I#)@@3zZPP0@U7Vp4G_OUMMzs9)7`2Y!}rHi;fO zAiT?c4X$t}dhl$wY!{jfJ?=(tU0f{^iE(fwXxH{X`QK?z0klDqpC&2z>P5U2hVVOX z)Z9W&4l0>s=7SyalNhhH(xDTEsXp2gGD2~wgalNDJ`~=&pjI%x8=oX;stk|EPw8bW z3(rO&$OSavEny-QGa#}Gb)?uy1BQrgxOQzxXLzvg>vB1|dJ1HtJDmT1C4)HJ-wu&- zOAa!{Op$^7dR8SvkY<I0rzZ76(-RK#K%LtSn(REv*$%lSozUZ=2Fh=cJ3*>i8WNl3 zl@^{Jl6l}txt)`uU<zrfqp@=|nTK=gUwlpB4LyAyylL3ION;H06BiEFbHv+t-c3jT zJM4k1dannCp8+85W0gNnIN0&7|FZ)IJ;NX^Ci-<+9z6Tfb<Vv$`RwhB?;4~JIj^ie zb}|OL<$3W44Lbqc13}UWOn-PL3x4~1z5yf6!6bT!9os_pkyE{uhjLC(z3HL!59dqj z2ZooF@5vbqU(ND^`swOJ&8G*6z)QFLc(|hWv*8!`OV2#*TZQM-_#p3pB#0W-JAh3L zKGn6G+$23WXzRaQV`!`rI9mFs1jEudaD>JjHqO7&q|{@icqDj3DG&p%hIOSKjGJcm z-B5nX!={)k>bZT=@g_t3w|{<cssxq4aRf(u$DJ2Cs$bTMjl)JNTHKQ{?a}C=A!H<s zeWB~+4|StRbBXBLA#hi=H$lbDC{2y=T3)4vi1__^Rn>oEkvB54Loq%mL)zg(m(`)R zaEiJkVIKuS<A`mhTqh>OzKQUV_Lq<$_s~~0AnAyFX-H?$Z08X|lc3DN9O9wPu{pvy zXyktELf)#D8(<A-mkd4Ig!m5d^3$bG_SV^nYu>sG^KVVYv~ZsQ$SSx~{X(-LeI`KH z#brsMOQ{NTSjt!oceI>tfzAhZ)h3|)pZ`hn|3$s*+5eIQ0wIK!C0F^ohfqJ#va|5d zO#I-m$3*o_G!(OQ2!|toC|H!{PHJIqoNovxWQBY4e*PyNa3nE%)jc$_syW-Ee)`ox z@RRQzUuoBB-i1r@csV~17#cL{(E_vVs2<zMEAN#sE^7L_yM?Vi*>A7eNeLsKV}%KI z(}PzI4=jJ7iFB_vBhTKWCHVcmzF)TV0wEiQ<TK!t6ICnYeM{4VW}juF@s;Z+sNL!} z&G}Z8*U#+g!d`|b9Q+<|0YKM#mS)qg5A5|RD;02KHlZnF1GScT*u6jCkO$R-BFnaw zpB){@DD9KTJ{2K0sYAh!Mu5<v^=DD1-Izh1NF9b}&20XuyF8&9mf$_8A@qB5D!PR6 z8#QyR^R-|FdTXkD|CJUtYfxis=I-E`Hss^aAMwws21kOpQ@lTuz9+{ow#K+9bzuR~ zrbQjxxEdF49*ArTuNqSw8*l}7l5LU#L91xQjiza`7Cg&*aiKUIMN0c1ei&B6quDt( z&`$#j6!skJ(GPZGII^ukP3y;u^{mf<>=3@8G`YmTFfk7oL8u`B0I?Jq(tZ<<<nfI9 zek$UZ1~Uei4Zb+HQm&z!UPwBDl++=+?1y*ivBKlN+Q)3C_i&hybQ0$*!l>kC?BaB# zC+*{8t6YYH)Cpje^25PSQZuechc4-13@n(TOmIMkbdcHo?%}h)v|~%rrAWK6P*%W6 zdyoX~<5i)@FJbPy5&FtwRa1{I@eqUXF`gAXhYqCuBp`$IWzkZGedV2}^N3kbHPKF{ zUb|Mu1IoFG3K%%v-x>AWT=n^oO$YNc)Y)HoiQ!>Pxm}N14D_4AsJV;>i%dgze;L1g z{-40g!b|+Tk(l=>-8GPLlmOqv-<vTi3H0-!j`)U0%H`KmuBOUDu^|%Lro(TVn|AL% zRZ{Qamj%i=7e95&kEkLPA&k#li{SX}{jl|F;MCY#-|B~{fv5l>0!JERqe;hw5x=k= zWaKiM=YOk`2fQr`DPp~DS38nPZZ=<X!2j~hlT;w<Vn*ZnGmeG>fT#7Nmr{;tT9s2W z@|xB+v=Myue<k^ABXeXyY%J!P3YXGgw<ibcQ^I{Iu_AozmX4R<)OYxwyYbjbMB!X| zSk7opS9RDI&4$JSsN|YvZgoG<gBA*ezDE!29gS9(>ugSxx)h)E$t1Vbi5}bsk<-_Q z0?j=ba(5zkv9{KFct;tmo$OW*si5t@g-zLxf$NxEz`$k^i61<Z_*~0@$CE@wb@MdJ zeqfit-%q->vpWvmI={S*4ZiIRvZ`aRfMvw;ztug4*^4V6m2Md~G@JjMss4|N;k5e` zBw--ZKyaeA<WXtK!5+&A65Bf%M%-~Re^GOp(uSKt)(>`n6H#?0Kk*i9nFid?eXDAx zb4!NuFQxm#OCdQfWj!&G#q1gGm<12e4CbAz#mF~cI%;!lS6hTq&QqMqx!&I$;)>}6 z`M&7op0Xg|Jlc1XcWr}=HESSa{yvIjGD-nQs_#PZyo=r<vIIrf)O3GUDwnynUQaT{ z1frllsnN~$huX`QNIb``{uc~6*A(8bahqxHsw`}OFRMVM>at-jjn^UT>_K7-G_)Pk zq2G4DX~I=sx?BQ^T+^)MKG8M5b7c4QsCwg_>@$MCB60n{NnOYjP!jP3yW{xPaLdk# zX;5r=FBRMpesWOO`wNVuNq5rz<ajRk)guK%(N&TVEk>e$Dr?msVai~km99R8j{+Gz zx>XHksEN?;O4meG>CraMbT{w8LCTZp@|~^(37UcUh6Z^46WQNg-~ArE$Xudy$Yak4 zFJ8CK8{r`1;tpD$1v@sr`8m-W)Y+dYO`a0F(a}4e`3?YIxF|^4tfCem{^s?nR=`ud ztJw^nKoS)LYQ1qCyvV;s{eAWK!PWOSKiIz<p`$P+_K9|ekndYsVVS(E$nm!>I$h~T zVZ)SO5w?bz8r)fBy|SF39ZWfJTj&v5f9`iF(-}+MKCw@EgK7870~dmN@f*)F?*JF- z>;xEBsudxT3shDdt^JMPE#D&Ie;z*<Ba+AZ!w0Wr+)D=#GJkaAa2Z@p*dKMr(1k2b z3F^#38ZX_1KqpYTtVJ||2fZbokfZT6X^@|I0InYy|7T9d=DSllA`{H+glCUOM+pT6 zpOWRIiN0PNRWMEx^n-=Zb1PzIFdAV()~5G!g?X0_+1#T*Jfx*=P@&F)P3dbl=?Y*( zbFW8Mc_!F5*t#AgBeN5`MV_XaT>$8?AgVKoA6xXkik3jac&QAJX%~BnI0pJ0#jnE4 zeZb`z&?$(@@^Cw0fG{5W@-!DW{LdOT^p<GCL%HIt1tge<y;Nc_o<I^OxRSc7_}v;S zarX}n|Is|(c@%WCH=>~zd57~D@O<t_S9+B`^uQ~gVhway5v-zQ7VT`+kG~Y}+g2m| zoqwz*wdZJ*pH?Po^(2j;j2o$r0MLEGW(NW);y-u>8u1lr7<!K}j??b`_Qb(lgoJ?P zKQd8GV#vb}hHl_N!nN6h-tzgC=nkF;CL4jvm!G|>@;@4Xv3<W}_@c%#W#O;fotSiS zvLk77P}$L?Y#vCBW-}S|O_xUjyM<1)4tp<1*0t6~G6TLn^bG0jQtEJKHui%|S3I=q z7G5>GAKPX>2;9F^`=LjCwV}W=)z?k9A~K18I(Nd`iz2ADt(=FgPgB%GPT)I{M!{rB z<NqL(Es`K)`EbpfVP*YF0*#_wXojjpWX9tXp!+FQ!Q}^^BfcWnP}rqpXAN&C>tIhy zq@H@W+ah;&YcSXo!XJ{#=DR6`dAll%zx$oiU*h0pwdud~F~t-=(KptU=XO}?(^0;N z9a~j`lV5EQPs}g>N3zxdisF{r9@;$Y5G(|S6vxa-s^)tSdDm+nxMa%M4vz+7{Zm4h zioL+QFYWOoCOQ&`RlZNe@5vLP-~;_nI~k^oos*;iPQM>oZY`!4s+#+~k{>;~_lv!> zWA1$^w$z3}+m}+;Ef?#?=ic2`pKEtW_^MNUyD2DKT(cqe^l}1JtF43jjV7<BT&-{q z>!(F+Twh7dyPsRE=S5ncp!p*`^O0iC>w5ds8!R)nlyTBL)|H6_VextW$mr<0JTKm# zB9g61%*t8+3TT8UkW-m|)s)fP+@~`rt>P*vO>)mW1UO1BeU+k>hfPnrc|4=D-2D7L z3KX+$Atj6D6g+ve<L@~gv!f!k;MzMuw8npkd%vSXeU~-h#bu<5J(nUS={k1EJrcTt zvIx4$4~^lyC5TTD)&BpSb)rblX)@zyDI$j>$H!l4ch|2go(IO}_M$Bp<<MY|q@$oa ztl|nHX(~Yy^si*BGzHgg$iCIv&G^@$Srp-a*$|x2JDIv|)K$TV+FjyDsFnNwP=%No zPFP6>2ND>jKa%e*@SVuZAN09scWjt;(WChfG;p{nVC&G8%8+6{C&BW4+|v$crb7sz z`!3{D;XXykF{Mu6i7%;~e)YJ@qfu*_x_=8s0$%c{g!;O>s9Che?w{)}NjCdG(<*N} zQn@cKQ^Q;3X~f}!8BzFn?3^<vqCtF^pMQ@6!>*j(Akt;oIwWLt=*)wDU>1>$Nv}=` zjcb`{`tH(hn!6o5(gZ|Q#dY)(s&{^;Ua~YL9NlYnL1uMR1XFW*#vM&?FjQD$22zlh zzdo$_d>JRW2(*^@bo4OFZ5j?(m#2G7nS6@7BC*0-gkA7rIGujw=+Me7X_C&gi|*#B zWX|e!6zZt7WcmgY`{MYRiYQ=wO=Z3b!=pNZ-0u-{TsYD(Lw>?Aw>g0hrefR*^!Tb& z80^)(24<g8wY2p%y$^VaXTdwORNq>>`?&W&VC_#xFNP!btaY4bZL?Mh=~L6NVws{G zMb#CXU(nVoUyFAaF~tZ%LLDX4b|x1;Gu2aX)MTCBPi%cxZIXQKc7lgGTl*f8E3Ijn z#mguwr^4{p1l37g{@f&Ka2WQAQ0#c9QGRG@SGRHXLqwk4qu=wcbJkdL#Rb(D5Ezp2 zr5g;0*|d|^G{37SWcz>#x8u704vnLpe=~0)O)Kh$(UmB8WA>1GzkPFjJK~`_lQ@X| zno6-|l16}E1nKXcXG5v(P6eq2n4MZBD5poAYO?w12S8MZ3ukauw+C}kn{lr#o&Ugx z-{Bt<2NDgw|I;1RiA>SV=FJ;?C}J+rugu`HaY9A%R|@AY2OR8jjN4aBdq&(FbIb~P zKG_s8a*RtxmygX~IQmwJ?v)-GE?Td&-cZTD@n2ISlsjzfwnp4F14CN-lm;O8vr2^} zhY7N7?E;7iMmHloKkgEMSmhs;;*cG_-E!*Lf3did3iwENt5y<RJ=gjfwA!bswU_?p zmG@Tb+?r;h-j=TaZmFzy^dt(D-OMVlNM~6-Cr1+S)yo%Q5Hp)mO^dy|$lye7d4F%; zURA|Ral*>`GhTh(J5-jr<L9<lNAEKqW93gLw^NvG&t{y5H7{uZznos(-&#r!Czj*8 zQTcS1&72EW4NR5b%I=w+Yp?=7E}bXx2Pk-d*=3+6CG|=52WBbU(vsK5J10B!VQh0| zd@JxVzWK=l@>?yl^6x0NL1btEeC0Qs6PeW{0nO$(eMUm%o8M+_CC6@5Yfr;x2z|Bz z#7YvXg2Dlsnk+ip=}KoRWfMhXFx43kWD649%&3+Er{AHMBfCh<$mz$h)}UhPY~A$z z>gg<4`X%ey`S&{u&I@m+XyT9cGM2+B!u)f7T%3OAcEqgymx(>+%CNWELM}gNway+y zU77xf9xjpOZ?+(+-obsfr-seF{ja`IUcl-Wzb$!};aE(h&SRx#xv}Q$=K4VQOCB5e z^QX7#(uVBsNym-z%bqd7tS-upf$9TQZ&!Be<h6%IQWF=2sM`=yBEvtpiJ1=xY(E7A z#`qkh{+SK9665FtOMv40V^^v-AM|Fw+Rl%uBy;p@3@LBAQSE$F8Tiza_?H&y?W$L} z>3vc8zPe3E@^)Fg=Ic*R(cJs29nQi%8F+i^d>Q<j#=@{FI_Wqdw!_@J?TqE-7J+F< z0RcIljJj%Ultyrr+uq(;yk(j=i)GI*-TVV@S!Z0AkN!l=SEuX00{ym->(?^A*F@pw z%si@@K;Ww9MPlb5S2+B(btkxEQ8K%|EpA_MNIu_czV6iLRQc-ci5sk`Te07*3p8%b z^oIFN8Q{M)3!X(%30c+X5JrJS0eahQUNJ&TE%Xx^t|>%aU-~|l#sv#h#LSzXyA4l= zJ)f_8H_X&U3u<?0cgxPF21y%9uv#C)GP{*(jCj7lC&k3wp$ZiEmW*`X(+9Njlu7h! z3YiNP2s`}q+1<bK714Gqj7w7Rmeb4uGbWI$@~)~<Pkh$DLQS{$H~7xyCz39ujG;50 zLykn!H?h`d64L_2Rc^1>Z@7)8W5|1i-$P^J#V{ubCX9Ao**$5gP1U2pTLA;XP9^Vh z<38!XHKLLCI#akNGw~;nRWUNbSI&PY$oj>5K6X#OJnXU|Z`yKLu5`wtAZU*AL$FbR z?g@sDaz44AzQ(XtX(_CNRa;avc_J%MVrgg2DR#owWdF$%d^rUfNv(&5IA@}kk+)(7 zfyJNLi-aF(PL@`Fb0feNp-620AoGLOuMc%d!_GHvkOgdUWmWOR(5kb-^SY8-@yVqk zni%?|Dy}T-T$pb|__`F>Qivp+h3-K*fUqJF0b`jnE2=_`8F(@J*eR?jVSuyT11>y& z^VO?Dy;j-vbirZ?yiuRU%N@(UxF{-#Xl`FK*3Q%MNmBbU{_?8GTG#8Rzr?2|P-={J zk-5!6Y|GwRcG(OsXY#a@XjrBdZ7!SM%;bX@wA6j?N_cba#*0ZhOw0QP(^nAXIt$!i zBNE(3xGuiq?8{giCF(duK|62k{t>uSzs6c4K3~q&qyMI6M=rB9Z(UM2pwD*EW`3!k z>cthQ?i0caucR_72s|6xiUzbq!}W^<1k;_hyZ^?QcPji)JMGw3RBih?R0Xfb=2JjB zKYBm5*HtE+t~pP~#;ACTzbIk^(ZH2|cS>u}l>N8bM-S_*ug+=t>mj!PRqMip1e35f z?T)9?DR&`o_x;$WX3F#raeq{Uf?J++*^Df?Tnu1~f3U2wQD*+&SO()1|0b>xG#y$O zqetsam-3FU_V#X7h3|O8)0A>xIpEg!W2%vVOGb>Psar=j97)tjbRD``6iMGL_Fo?2 z;F2JuRw8x=NKCH0q-2|wwQx7BP(tm(Wy1CNeA}I7J)BXD>2_s~QK*<OUYLZeoU?xY zLaK=;Iy(=;8@JdkzawX^=cdGwk@&$7N;}0NVF+*uO8New=%@8CB_961pL4xt&C!RG zM^vP$(SxuvW9;uH2o?ghU`SrWc&>ZJjKdg@ZNPH2j%L+|s-Ra4VB3y6v5&q5EpxpM zHqw0L;o^(b@2hScaC2WQW}=Arc$f6p77G)r!05qrFF1UPeez&Fvfz51ttb%>jvbb0 zauUfmMBLpnD5rh`H56|Ch4n43T@TZOEguLKr2Q9U%agNyoz`1_iU|8&Z62x@fn(as zcwZjB6lY)9g?frElU!`&@Rh(MpcHNKph3Pd_silcq2Yx1uSCldaekm?M40M#IBK#R zLgdSD`~4ZaOp>1!OON=4Iw*9;E39f&Ie(MWLH?L`8>7IJF$ezLNGn5yIt}SdjR~j@ zOxPx!0)r5aq`xVj6;bClC^DVp6O5<WBQD9<g``%#&qbG<t_r)Ja@yM8>W(>e&Z)*Y zd5Mr;$ESI$>72zfLg6X>v4D5d?dvwrzm9rORX0jBN6`c{H1VtQQu~W^0sgFm&woo- z^+xKUBlbi%E9aWhPf|KCqT7=de~y{See&<el2X8A^mD>a?5qe_x0`Rnk%G2yvd&0@ zcC00rLZ0E_qlFzHfn;5}Avez(5TW59M%P{XL}kN!rrxI*nC4MGN57k(An`g(g>1VP zzAm{~c=(*-tDC0UcaC3cej&<X=S6r`;Q=tdL8WY8<30;%jN%hc?5{7w@TYwngkrCe zqz3+xuq6qQl{ui*o@SdvCzytOm;Te3TlqY;vF5hCPm}9rheHcX9xz2Iqvc%^u2|`g zi?OZ(UCWN<zLXRivA4W~MB%^rpah46H5&YG`)R?Lju}mZT)wAa?m2oAh?w(5=Mn zQC2%e0pKA6NphJg80Fb-jm242UX0SN84jJ9x!!oo2Rt>cR(TM;G_svrbDNPD%3}1$ z)USPS7xMx5dfpJTO{7HlGAV0YbiD3pA5(iJx(N|9=izaYI0TTKfG_7QO;QU_?<1a% z+OX5IDtFv%(}O+R9$fnG&);b>PKAQsMf?W8(18=Vhc{n4U5IynPD~xYKqdz*0k<As z#LESJQr2l`+iSDJ&evs)%T(;tO2_ORTdTOHLYp2fY4d3&sv6pj@iF4j(T-yGTb{vb zFE1r`0z;HW7a<=j$cI-dL2=Kwxnl)^n(7@uWUF%m;E3{oAVl|KZJ07f2nX27`mF}l zCYh%&JQk2dj>Zt7ER?`B`?4WGkykmvpO=AV{xGoK_k7PRQA{3iq54bCLBD&aumJEy zv1f<RfumF=xe@$U<$pVte{0X~WR*{`QHC%Bqcr51c68DDvP6{j>Y&q0W_xuz%5q}L z{)XI<9QZtRgYI9%^GBQF8Mdd3l*kiRr9~=`tWZ}&&18uZkPu-xS+CZG)T3=zpU*uD z(A3n-f?n(u3b$3&^i&V&b9&!0E#?xFxbKOK0qBQnDI$B^lR?3jQ*#S2v_L|%_*~~E z;|*jnog}_{(y*vxcx^rf3S-l|BQZlR%*Vfl#oZ%H-pL(|C<|-KbQX?wl3)_1ihB3i z3pZ%|H&nDfWI6Zb-Y%=+CLPF@HMl)?1w{N^$hgXmYe`|;O^6Dz=h{nBDVf=Fu&Nk5 zDyEl_G2obgOHu~ilZ$1YJzOtC(CiS8n(GqgYJ>_CE}050ZTMl(6IDnN>5#D1$c0b; zt>wm*Gf)S*TDHAnB(mEO`;a<bge354R(R76W(u|$W&5ty5WUY%WL8v6UTc0;hD;3a zVSrv0Nhkj~Uscz^d3d+~ljnaGHFl2uEpHWECQf+3LJ4{ok6%M*s8BYlv|(hcbNJpu zoM`8X->RO7*MX$>o>OtyV$4je`n<@rr;TL1Jt>+=6-h|uYN{n1*T`>nItO!Wtq$VH z8sdQde^`6Vu(-M=Z8RYyK?4Mb;4XpS!2>i9+?|Ht4#C~s-7R>~#-(w0mk#cYyZhJA z%)B%6%FH?6b<WQXy}N7gRjaC2)qPiedTgz4=yHr@`Hu=5e3VbK<C_5E<?89Wy9u<! zreoX$GgI4t6z1qJVHy^(lh2Ug8o1%s$-y(eTMkDh{)(mc9=|*{!~K74q%CZtTyS<y zF<uk^2jg2Xe7J{0y@}<UYo+9=jO^%v_X)Lb8d#p^P&ccrA+IC}Sa5bOMq0VDjPmu? z-Rg~quq5KY;{})K5!N0RQ$Utw(s;Nqet0(THSB<2hp3k#scm1GXqf<3VXBW1`8$p6 zV1_x<b7ZD}bFy5#e@STVl#%~3`2Mv(!zeJC^l)FWh1zIfcTvOoct56*FxW?XkubQm z_TQXx$7sl_Y<J@m-tSBq5?UZz0r$9ozh}?D`!2%4c7%2KFrz;fECVI>YUld#NgUp2 zFeymq0O*^yt%m-+9w8$ttf1FEdh&jD^8PUT079e;_E0TR;KhZ-`Zm=^4GxU9@LLPi zQL%rclZ1%>SPrArth&t?*ks(_!X8rl;_pRcdS|LPl={$@-Hx-WboL*w<v(kt>!L93 z?CHkm@_+otKdjn+Cz>PvMJ0vLSEl%f800^{^q=lU*ZC_vVP2U^`#XHXfBVvZy7wE5 zlv%a@heJGOKhFH`D`)@fm2V|1&7$__S5nab`mw*GGx>$WG_n(*wEyw%@_~QP()s%< z1VR`CDiGD&?EBxT&i}>;CQbPZvntJA!1Vu~4*mb-VUSSaY(IdBotF!a|Dwu<vC{!J zDF5OGhf@3m^2^!ok2}!K<|WYA@yStBZ~P}HKQ7E?bKlYKt2Sf_i*A;;tgJ~QQ1u_+ zxBs?UYksh|2J28jDi6;@6q-{I8N9!7mE0;_TvLc#TLQoB<lP$L<lQ_#B_Nfmt?WD* z&SX1CRav2h2zEQhN<6-%+5WvUbz)t9oR+@9lvThAdXeEa=R0(Et?9@*!ByJ&Bg3=* z{G#(KVNc28rNk+3cO$1Jp;e5mgs-wrgOc=xgKEG`!zGvLVK|psIbS--XFpb07G9RP z>H9L_IK($+I9<Mv(ai7N=m4l;YS*Trc_#QE@PL}>j{NjMJl(YO)_<m23ehcB{B1ig z&)ShAyTO)#+s5em%-#|26O(r{_E)zxzFt7@M^2T5ia6jCHGuT`l1g*VAw`z<`fyqK z@Gfn^TmP7N;d+Jf2y|~xIHX$lt*gtc?{ERe`POY&Q>1rHtA#ltuc255<^t)&A*xZ} z+DvHPC6w*RVQQ`2M6qvV&^e2E=0qfoe~;Px<&fd>)_!>jmFCd4`~78JAX|}qxRczJ z0Z`|I#sk;1BN9G>HN8OVIeIU!NzCO%Dw(<Q=D5m?*Hj9GpKvwC=P<4-2R7qB{f%Aj zRkW)T%Y=>PokN}Y(ikh10WTc<ZK=+J-EKf`rqY#xUc1&M7Zn&Co@XGAHeJ;nOe>S- zkig~rdMJ~Nq@bgM^dHT(4{3}gEIrOJuakD_eAtymyD)2$GnF7Is`Bnmyi%L*XBy7j zql7bfa;$+?rv6gredSJbuY>giBK@B>)@|3y1V~G)w^csHCg%ZPa&+IsUF)RgM67mb zMdG+2RsZa;@_u4$LaCEG$iO~%U|T3*yX@+BGowJi&>yh(u6btrV4F??eO~;R&bls+ zVTIB!vuT&L<5#XjE*#f9b@UsQ;CIZXfZidKi-fD7{^)0GLQ%`;oW7%Q#mM&;!DWK6 z?qicAPxbU<5|aDeyTt7azA>#*qp9GL#>{eB`}$g);Rm)tZttTa*Ub<6_p(H---B<m zAU*l$KpnES_0ZM!svzU&dATDUCaG~R`N@-Kk3~<8(Wi%3{P*VE`%^ni?Zc}~Z=I|n z3T*|C^Qn~3v_!J7CWEGozJI3#a@%G>RrWy_iEepJiF+z?57Dv<k_Wnv;tv+GhX8I1 z+`4_FndzfY90yu`(Bj5?^^S7D#PCe*=w`xHI4O?sBJLu0;6a`-D1SsF?u3tjZQ9xF z`O<qgRu;HdoV@D5d;C-U!{Z@;8m}W9|KnE8<w&VbaM@k@9#0?&yjJf{JyB6FYS8YV z2PmJo1_QKao0LbulZNQd1lg!OBU`dflUE4bfY4%Ky~~+etvn#&xFdM-nIYES^a*+2 zQ{2of@o3tI6=(FALvW>g?1ZoQB4hq%Kt*QsY`#mN9L!ZBX`^H2$r2ZN_eU3qXSsw` z8((;}Mu`#UzGW*?Je*ZeCdOjW2;1i{Uw4}Jml8w#Cu84%DzfJN>eZ{47Y8(Ei@$Xj zJOsYiR%yU}-q&gTnHz$1+<Jp^u;M;bu2Nd>SXZaA$YWkwuLAqaNu;}t0y=ym8DYW^ zT&%aOj(w9&r#sqX@<LDc(h?=jrqr>^-7)tL=FXaPXp9hf2YN{3UbICf*H6ZU_ue)* z)HePGKWko`n5Nez&<%$YsWk4=J?l5_-r6WX4q{M=&q~#o@v!Z7h%7yL2$l`ue2Wjy zF0Gl8Su%11_J{^`c+Jpnm0uUnKY>{&xjt^L{u;S0udG-dwsfuYS-gxt)o>4|@!aP? z#kV(vo?To$cQLFYY=LaT@87>G6=e+T?{5{~`S{Rycy4bg%dl1TJL@HQ!r7B)eI*b* z;=Y&w97%uCndZ=Z2N%ziy?I4~c5J4~yWR<6X?-zbsyUTM-Wo`x({PpQcUbo!@w$6_ zCz(*!H53j7%^LDju}x$7S|Kn0+%tW(aQWG65)Ayhjw5?=E(&5EGWc_oI9+Q)B4XsL z!=lc)jPE=axQn{u<IH6^nx(+}WM#@Yru^hz#OpB&Z&bvwX?vED8}Ih;t`nR?BqukT zefGrLG5$bzzEu+>awpkR@_PV*&(>L?gy@SKxf?2eUdDk~SGVxlG=#$Syd`llhF@HE znS2lGaW=lXaai@VD_}|~K*&o6ytLR^X#aWiNLRZ*L6mu4_}pY>DgRRF%E}p3E88yk zObX}J{Od>f)bE<s_RjrmrZ%|frXBf48T^@rnf@R62BA4c*<a>sD(Q6*W|JK`R3nOL z+T?m{)4BOpc4rW_iZv<c&-X`yr=z-^H;JBCq)ysdJ=EbhHaAbn*|FsKme00g3Ddai zMUMGgW0<{P8xH*Tmb>x1hu@JU+Rmg`Z$ywxV2u3rN)Z13;jH%EsAjHqFFi^9bhT5c z58xX)DMk#!cX&#;kFQ~u9s2MBv4G^>Kb{VL#bn@-x0?pk;E`V8h89Y&1BS$+y_5u* zy?ZP{?(kAQBT+mhctrGmRZHh1aBzG%m4Cc)Ej+zNJ~K&FzE+v(ljcJ}b`ec(sr@P$ z9_JaM(H9$?_O58%D4z%aW<IN(Cij7~&&_c!Hj(+_xd*FZ+wHBZpls0%?d1XwysMiJ z!p~wsp_?=4K<E$3P$v6{dy^sRHg7b@!_ChfFw~z+q;+?}g!CNRpjy4L($<+ZdVtYC z!17?XJ=xe>bi0MQ<|z#4RHoZIEybOnXQ<&WDkk<HPx;>-+V?WhhY~ym@$k4^p=2E` zC-fRf;6*N@$LUM&Fm1U++Bp&vMDcx)rXdD3nEX=JwOi1l&{AM1uML2lh1ep`O6JA4 z%v$+G971wr5!#<oLQhsMlpFAi8q1c~G-;=b{S;Y63L^&kYa=4wo)xqd698xW2i$!_ zJh8%VPay*;ZKUUO^c7q<21luB#80~)p9tpYvswYzhGU7B6q*e2nUrneBKgDkJucdP zH2AFKa@$FjB@<X&!B81B0^o{utP2$XO*_q`bSW8TSYo~K5l&z%mDUub5=;PmYgyg> zG>7cMBTlNDWBGeBAAR-fT(8fVu2_HfwkDomb}L}!;wzS6b^W$ocbnacAxG+O-N|*^ zmKEV%J5usPRAOyJ|7dY6B<$hP`)nN1Hotk7cqT~p=F_T$O>e}*scpFMLubKct&(kl z6h52Lx9$743HDOt<8O4yIvA3|-S{JVN>b5W9+UZH>Pi@_ZQdT_E~HP|=+bngUrBK# zlxIbIx|VtK7xbo#P=S9(6W?^LU(h14ptv`mH!0*K)vc&I^#2&TOIJHtv*r3UZ)YUN zS;%kyWJsFbes5(JLuda^n-?SGN4C0v_$&b~tGdzF1((anTt>1x*6J^M6&7at+0QYD zJZ>FxI{L!oL(0R!pHx%VUnt*=B@53lxP@<gP_-nQKdpNv-{pAB?yIazeADR#T64PK zhG^$IUXyR3T4x~jq^lwR-ZAaw*qR}dHoO69g5<Qxg)9PuL+xDU<I3&LyVZZS^@#Oa z80|2}McxQ8DC}$%OTl-u!Uc%CatbEyV|PrMIZtcnh4+a<Dwvz0I`FMRQA?@vzf3<U zTd2!h$b{I{3Tc-p>THb_fzHx95{7}G;Ir6}CV8}jL4O23FlJQBz*m97Fvl_s;&TE8 z<_&eN`9Gc%!QjSuTQCk2$(i^G;<iGexq!Cbf_+V}?&eiK)g*RhuvtN^-M1u<1&FsK z5p1{%7=Swn{OXF=KAzT9s$S^@$~_ZBv{`Kl8po8&DtcBb6gKiFK+To5l*U>*UJk;Y z4xm+^dAH2~0gw?Ay0|vhSR7z}jqwOV$#p4-QZCx*eh3M3@wH1V%@eLmQ@>l38#H%l zH6fhWAx2w2xWXgzeWukn7`|6Vgmqb#sbUt8<4bW`!i2wdV^jP>XlW^xEB4ek5T|m{ zBCm$NcJQW4n5YaH2jJUv$WN1sj{p4W#zsff^ye#>ox2MHXL@o688{k_<b!f7_V^~L zTZ$In+*WfJa)x8oi0;`X{?HoI0Xc^r3OlsAV}>5;Hc8H^w{M&d^y14cX~&F%NlRwU ze8_vHb_YY@?fWUWB8WD-b;%Aha4p>^L3;bwPjt6sO@k|+!*ka|*EMH*8-vM@1EE=x z1iH_>Cl_|xZ8ileOg5wXVPee#E|?#~xt<s7(^*W6D`u&NLN=R|ZA0`=;;?oFoN8`V zi9zh3&vuCtZZ-q@nf|T)_+A3BK1~Eb+i_j;DQ*OoW3petn%37VS)hvYtXX)e69x}- zlJ#s0+_8@C(ZuM80lE{KXoao{b|fsi2oq_xYwqdueL>6GIS%ieJ{7)3_wZJ4L-7-# z?!<?@;AV#DExzu9p;QK3w<<pTe`Vo9|FUp9E%~mX-F~|c9kp94u>YT;_21Q%Z!F)> z_>AwT|9n_i4m(mwd!RcEnw_K<7i<I714|RdXrhSYW4WWBgC?uUYp#X}B)^YY=5hmY ztt4YoMOY_`2uogOIeJI2fvH<#Ahe0qMn}8`{I>)IoY@yl)F@~syc>1x>8f>i2TmeA zt($v(yW|_Dd$sP3Zj9ebqaEThQ>U~X8Uyun<z*aXv~<wIi<UYM{y1ye30j#2@RWy} z7Z4c|U^1jMeG$odMd4>`X*s}^iMl=hqwvW(6SYs?IOvFoEwk}X&5BV1TB++S8&}Iv z-7k;rW(G~en<-!G*zZ@r>-JnWY`tKyFU`C7^1j>wO>DwrUbQAQckIv6B!1KRE(lbM z7taky-f2ZJhMw~HdFYlj_irjamxL$rN7%&dBjSB0B{#Jko_6B~TpF2dL7s*s^6xJ> zt|l7|K1xUkn>an_ce+HT$~sbs9@%X)&t9!}3?PdLt$p?OW;@h;{66jg{4BOVwz2{r z3=!<Cwz-0sm+Cla2YshPa<F=I1apKXjr5L(b`Wabz|&;9_>E;-XD9dmtPct`okeAP zr_)(JEu=Zf-=EZdiXS9H(`pj1e9v9+r)ES%D(DMk*Ii%nFLpNI_xzn1>mBaY^4UMD zH1^IMqLGCXgl!ZAncq65)lt$kF`n8he$xn3Ueyxgy4<Vod>GILh`{3$D)oZr2DC^C z+XZ1W>>@~DkfZHWhLzsF9QAQ}+Ld-5HWDpA&)r{gh6iv7pC;>UF3c@8>tn*pcpWhA zkg3;Y3sGs%4hpo0>NCK;+Nwb^BLWxahMM|$r{s+4Qr2rby86RNk;Q%GvRtujYS!f* z_HrTl^R*rrA1r6RqJRFD55!=8`}5$O+rJQ*A}d($EW^fj+^1fw!I$F8j~Rf|>UbH1 zh}>ND@tUF{8{#pM$Mntkleb14DnP8b`%og!_MyZW7<O6lCdgm_mq1@3zc|`_Lm^Z4 z3`xbpZ$xbWofI^*@8Tg^i94rIizL;9^3zN{0fts<n(DS_`?DEY(hKVwkgnP4c)M=n z$2vmJ>2ld{>Df_sPU>Yl2U$uC&&#d$QGCEyOzHurTp<Dd(Dd%|mBaR`Ys(y1hjvNF z-Rl@-J}?IJ9#CN&7?~+X>WpoL>A%8I(e0UZ&DLL{PsYy8E2;Kr63y>tQ{*+zEJM%7 zu*&CI!zXr}5i&3wzU|J4H0OTMC#O4kdq?N3inL1sqdia2hU4gUzDH5K4@Xnl2KjY~ zymC60nso{3pBcC1lh9cB_)zXHaFv4|qJV^2bBsGXj)a_|z2+P)e2kRn;x|XCLq>xc zZ=b{?6vm7Ie;?xg75seHMS!)@@f;OTyAHCU)jkVcopVPpY%8D1xlU@MomqITaN~da zn2S5^woUX}u>S5_&eA2$BkePmsWE6L*yqvi4%QM!Dwo;blWS?cHxdI_TYM@Y;G28~ zbbfE+m)q1H_(=akg<owbTs(ONsBsfl3T3(~gttOUxGj6f3LOgjQq)hXi-NU(yc-QS zDs@n&C*e0<2ucY`61yPZ8ll$_wFBV78WZg0b%KAy3k_)Y5HnXCO_8_F2!KuPDFq~J zVzU%q&Sz@^mnRllQu+^TT)>y~(cb%`9u7tj%V(f@Q<%lfB*Cw`UxcQZ?tpGgm$6!P z+FC+of)6U^<eWTF7BaCUgyio^I43NzeupyA>y8NEYF^d)b4`~uISgdSeGBN`XRw;@ z)0!$g2G3XgX}!c4P*#U^1XieY`Ow1}8HuUY+Ju8YSl&MWK~!@0Ar1qOEHc~Ta!wj& z7H23v3Jr{9u)%R*EvHZ`>~$PyAY?Te4e?~)n}-~n6!U!2=x>7>ZIZ*~Ax-mPkVz$> z>~d<>Ad*jw@Vl*`^|yu-2vZL{P{~?fKvhsuE1r7YMvVin5ctlA9S!55nv^nid4ySZ z8U_G0&4@we-0)hnz6S2@2a$_E$2C)y@w{vmyl?3MBN;?8U!S4+)I+7AOli1_tg2t@ z75v{P?)8KSMK=?C79y7p{faFlBRu=#52vXX)|t(!{i6h7>_AZ+WPzT*OE@aZZ};Ot zNEG$~)+;lz<yQ0vzBvscuc;ZU+C8<8dcL405Lb!+KF!AY7AJ|UX=H{5_Hw`J+*E0b z%O$OSOgyVhGnNT~c2f$D1hvabv^=!28{OUGEZo>2av#%oWbf@4*yziOFIE%;Qg#4{ zj@ZxgyTQO@o2jO+kTSQC3e>6(bQI;^b21~amcFQ6^zxaB$Kfb@Xv0na4iA`?C3$RY z!r14bw(1Exul1T+Htm1-{ah1ZmNDru{W!Wj4;ajKY;#KzV~eYOFt4##+EHMSdi3;^ z@2n+=pP~&<5q5~B9^8`*Z^XOXAr}N<`9%wKEw2;UWqPPWOVa^EIwvi!*GEVS5gzZ@ z^Krsh%9F|h*|&ZVD3QFK-2PKcbI+!$jiuAqx4|+UpjmfnBC8H-Y77YEiD@sweD8Fc zpAv%bX|+AGAGSSU2cN!)s7O~&z_WuvzHI#`?llKft{V*MeOct(aD)m}Dep}cPV?Ch zi57E#ki6iZJY}6xtPY+IvBiCp{GXbxaj!rIAR+1LGCT-7Z<`Gvs1!26lCiZ;<NZPw zSzOh+NVf${ukie#TTkBog@DP~=I4~<SoP>{<-90O6kOR)!amt(a?MW1l>MaKFm-7c zbFvydV^C`%pomOkI|Ah*pdxi_v-QWY7*Ib}X=Jy2anAbAYcX`X5*A%w@f2+PNjp_+ zXtsvN#oN(V9uuhC(N~Y9S$lwzU6j>m2mP8%7FlV;D@VJ)m|(h>;t~jx%G=2|;?McA zi`v0v-s9oI@9_!@gY`kb@KeJV`}rO5>F|gj6O-137DojTWTxj0Kdvm@>(@Y~`ZuK( zDrSoyo@%TKujr7*?Q!-Y_Hhk2lYD0p0{~>PGWm2h$JN9D$#w}BkK;#w#j<6u9fQ?2 zy;Wov(GbH97z1W%R<9b)PPIn)a7<N^0vD6I9~w@+3gK<uWnc!3Rz!--`K7UFxam$F z=}PXfOvWOhPEvQo$I~fHWtrvrS}0Jd$!4mB-1SutWvXQw!fK$Yj4iHL<YDvkomHM{ z0c`q@6USB)94fynX2v0eCQ(Ei5}xm(4WE(iD=luZKO8T>foT@77@|5}d2fv-lK>w+ zD25L;{^Lpe8+l9=dJI5~CoQ6O9|=SLwL37SIC(Kc`r{SUg!;AB1LTKpPZEU9UD!x* zGcUZha18Pg&Sew<J0kwte1A3B%Sl$@JZVX-$@a1QdaezrQ^aaDyMwdBiT?}O7IqJ2 zK=fyreHhuaaQRw_Z<BjDkVre@K^u*!0OhHP74|6(Wjd>?pnIy`)8Q61*{7SWar7mu zuYAGs5?qLjmp8{}r7#(mu0X7@FwYI=tWIW)#9@6S?kjyLbL5uQkDF~?AbJ`@R}C`= zSVy=zAx{`vuQJiny4b%_?^*aD<c1Hi8&ks$#Ce?6J0pN1KJ-aZ=%~Z!v&R0o<c!5W z3x@#M&%=PFEXz247;m!RIJm%oHE@@_%fv3(enfc{Sr+BFrH+M7FIB-z=hlnd&VII6 z?&?$(sSsTO6Zp^yt{%OTPMOh|t}w`syS*P@SSni^=%eATsy&fV(=nI{Z@|+$`3fPW z>@uLGz#as>drNNF&o0<oHxUwnFW6p4EpnxX4oqM_45rWc{_)&UHhP3E?mC7POe@<1 zIY>U4Sbly53cVNe<f~hL-|p>5I0|0aNXI7V67WqOX<5e_ktV>IoL*RXTokd?+8sOi zb5mP7cfTE4BB;zfYZI}XTXkJ(m$LaSe@(rRgSIP5aJkBMMZ_x&Cm-ER!;!W=8N#*I zJha<A@>Kk06w!>XSO)7IOHF+DzQx?7Vv%YkC{7L|=RrI>EZAk0hPn97R9xOS0|LdJ zuQX_(mLxA0GDg-nAh!sW5fr+>T0Bh9_p5%aTq%{MGSgbAFA(FLX!-BWQUSRm5ul@A zX|xl+^H+k}NWlP&<vfGr73pD9yJ}6<&evYIEkzW#9AXYci#355CN-|9+s(4Mzsrr8 zLJm{D{t6eyDoBEb>}KEJqvp)D?R<+!yKH66=O<L7O)~%kAlDpHmG(!vmJ~cRG!aOP zl(8WuQODhJ^Q&iWs>l4Ojw?|dQdI^=idkIVSF*<BRcTYiqSmkp>zsW@^Dl9ld;9SP z_Jy05v8~^uc6nM1DCVBIqi<}MbC3_yWXYLBGmu=M{u@pOGqd}>GO0z)5T^Aakhq-& z@N-$D_veo1&lWB#P)x{=L~;9am^PEw;#mFZ9|3Eg*`a0H7~H4$@>N(oPi?SNJ@i~i ztvni({_0M9_{8x|Q`=C%r<TC6uFU2A^Roz~Z+_qV)FOYMBvZZxbe&N=tjGt`&VcI# zmRzZ298ZALlJN&Qa|iQ)74aYY)nHqt5GL}8afsGXztxMV$o0C0lq`+{&@k#j@j@ko zk#c%95lZ99{$mgp#Cg+Yo~*VZD#T*YVJn?$c`U@5owfG678yutO2+cJUgT)Ck1Ns} zv#%aK1H~MGaAvw!cwe!eBYw9z+*7`bCLYg{x=)){p8PBp!EXqkYMOrUaek@;|NdRB zg1vY^Abe+h>X%wN>u}CYFrk%}@qecA{wu-t!Uz|)dv9_k*E}~LB>d+s^Q~1=_?m%) zacMR7=xCc|`RnxK#F!f8XT!w@^$@1}D(`uPn!)MIuAKpu3ZJ>gLEQOm)lyf@nqh;O z>CQ%y&!2@b<rK-mEnL!okZC)^fh1(dIX)A@1_{9yiW8#lytiqn9vqX{T~Kyk&ru7> z0UbWH^I1A;NrgNkFz+Y%5P!XqGEGS#8HdPBHKNQQ9@Ef}dt)o}05_|+TE1GOy^Ilj zSE6LJ2YWc*5cuU^)L<vDqww*ghGRG$A6FulTR(e8$QBEg;g9rta~Y1fJDAYtH<y8% z_#e8%kgb07KS~zAxg#fp?6b>hdfq9?dVR!*>v&ElU}dx75psy-1|L-rHPNP$Q^p7Q zx0eUBVKV&O$g?PZ;yY27my>lvxJagK=xu5xPNhVkcWmAFLd=yySKsGz)SjXE&NXzP zc85Tthx5s@^YMp<y;a+Zo9@<vpW*SBg0*gT;{Mu+6a_8k)^g(Y(j>XiUGjGQ)obv8 zs6!p;Y)@4hR<&W)@7Lt7+!F-{PB8Mk%FL^&x73Kn>;$!1`z;V8SOi$dzZ(<K9eOT_ zk`2xpXgd3^8zch=Vk8Ev3pfCIZqhRiH<lC&3E$kaf~3Xb4udJdfYlW?)W%9Sxkg>G zx;qXx>qXS^z>U^YRx4dpj2vq4`PMXF%|KBiLc;azh^|7bPF!K$0H(MSLV}I>O)xAG zOFCL*yK08OOxA8PEorIo%quAKdD8Lanq%Y>=x#tHIl&E^(EmA#V3eL?QWT)j5QOdW zU{LggFg2w3p4?8rV$sJ!$&<zNgQoLgj^T}kN_bJ}ffB1s1T4HFT5QHH#d#bFt%&Te zFui-lT7{p&DmM%r?<s!6tEXE*j>Fm|Nn{E{u?A_pk538hqK+bRsZZM_;JABVd&2VV z^E=<k%hjYj*-aeDtR@3D%pQUIh0({La){}1co<T{=kN{B5?c~S{Ax;1MzV9q=&o8$ zGyS?2-q&=49*ltG@dd4)>0WUbzv{qT7};M)68A}KTM?4yDs+o$T$VB(!m@rMA<FiD z__FHMMwcKt^qdeYyoGr@qc>{LOV{sG_LU-C3pVKtHr<Y!IV*VM)H)JMk4=@Wg~fBd zYcQi-N_sk^RvdI6na<Fob|<MK-)<(A!Bd-T;gHCr^g%|eVf$)O@ZYlP|Fs=qm*4J1 zzI_Dl*~l{PD;#d_H2yIRB!>-1jG3=SeS7|rW3ewvmyZck>xy6g){R`6HD@BaI|N89 z)&v)JK^_8l^ft1Zk^o4aE-%^nv&2^MMhMdCr`Zyobs0u$R0w*Ud9GCH#CriUU6EQ} zxy~5Q<Q(WM0P^TLlAkj~Nt#Hqd`ZdG%<0N9J-1sviH?2+2x#j&`@AwTqQ@@$q~pg~ zNf%@G_54B<I%I5ZN*l%?4%;-G5C^FL;LH!CNl{8Q8m*(z?ydb3zNOa&P)f52`T6L; zU9igp+J)HaS~s%>OSBN4$5O7#J=y`mFTDqSX{kZfbZ>h$^*Q;Cx%WgEy>mo&yX2#l z93wqcZ}rBkXXIultd#M8bA$%WL8feu>8M|!UNLi$%d&Jzz!PBT?30Etu@Zf!hL3zJ z<WO8!5X2(Gdagmuj@_FPk1q>$0+4QO!@7ltr^V#F2BG&ohkt`2(CwOYhkDpb!?vKk zZ#eY|bQ2Sh6H|~!nmUsoLv@jmeRrQ*nQ=GA+v9PlKq@^zqQ(tHmcE_az~}KEU?&@; z8|{RN`VF4tt&nM4Q}2l?6>zx7=?iKTb7ZuH>0@y}d%=OLb-i+tnSarKU7^<63rw^{ z4_IDs%^&T|GOsV1dK)&1?d{}j(+N6C`YkFh)dmga1e%uGbEuSTn#o|;a*=%gSNCH= zghF&$Kn%J<t`wGnqq!Y@9RM<)_fX|>-9YLWg+R9a#mbPxrEvwq3cMv}hwpA?-xQUI zdUV-)mrav~=E-wK6tRxkzCCZg(GOc{Yofj}88Ywy{Cee>j4L)kxNiRskr4yL2Wa-* za7=%pAFps^dL*>F(WZjwDM)`ez|0MZb6|AZI7r%Vgf#<z9JX`XD#e-$k+Gcx>rVKk zdSG@gv2aK8`*e6#XlF=&Ncxc`F50XrImcdPD)lL}j9bf|Wk6glP@`O7|04gvk2cT! z5vIAptDn@QeF@!yBcomN)GbJJr681f1jz}<4Exn2N=px+G}dh8;;bhn9|FS{e(7Dz zY1>QXPkTCShV?$y+9Hb^4yEAl$dQQTkc&>%+oM&yr9QXdGL0CTwLnyGP57^B)!+8j z6h6$!Nt$5ln>jm#R^(<f*s(FcO-q=1Aed1nBteGF;EWzVz1?o9(lakm(_KO3T&6cG zD7dDi${lvKqpFuUOGz!-M-Hw^zf5ZuAVrpYD1xaR&G+;Ttoo&cR~FC*`U03EO3E}! zSH!+B4~?*~PkWfW4@<?hoNmaEE236N0N{{iiv#QwNOd)XY7O8g3s$zEaCDEc0JV?b z3Spfo&)&1S--P!a0^{=6|I}_@O|+z2m4sA$G%Bx*OZ}E#dB|(>N#_QB6FU2?KZoF> zB)XFD#ZGz_uI)>8P$TD3X}&U0hGq!k>Z!Jz<pw)hS(BGKq@rRZdeOA77oZ2o!$fc) zK(2xgj;tpijr%=%eCD1_OD4k%UcG7V36;w_y&=)u#OmSEb!mLdRd?rHzd}ZpD;1+^ z{y3BP$ahFkL5w`XdO>42vmF<XNk$jK^g_duB6$6-y<(Pi%fNz^jYE>a4lE>-8-7;8 zQRBcNAo>#0q3t!N(7^Nfb&I}&?Ofgy?H2M8_^g2NW6Nh%)ucCAK@yPsDq!SQ)c#5u zrt(&)*}!cvxzs_*N8em(;Wph$xH>`(NSycm0BU@Y`H0hBk>-WJVbDZ<0)LX_^z)iO z!PEBQS)<pAMEI_qeVhMDpQ#0znWMbpRK2^dhky}|99dUH2pf_GnvRcSP8Xl`F$pX( zE3v-`+RpG$hR7A-xT6pUUN1i|K;dTZ_FW_|07irGREdPF)=1zFpDJ*6&Pdt`I-jEI z42~kRSpAENcak3i5*=uZsJP6&JM&%r?7ltO$yIqj$`=j?jgXLWK=jtAO{&3Vd&~(i z74f`WbtOTgCWab+&|)nwlvbsS4}htfW6ciEv4wPGaFt7Vx-O|Z;?d1#$9XQgCAAqN znb39v&3KSbD|-PgGlhp$tPQi$8z4h!>U`%+&<!Hu2v<sS);wV9bbs!K4a%T&G1+GU zy|LK|nr&&)ydvBjyBgL;E|WTWt<9!XPBvGpCa8`}o3KzJ;rh>o+_g7kq@fjP@P{w0 zn#RR+8-*lUEZHPm-jeX=fj_wNIk|wQDlB)SnK0XZu47AdTqAn{(nd{n#Q5X!+W@w5 z!<XPCv}8yB721nloFnT>W+@QbjOFg{&<b(EY*FDut)ptOvGbWqiOJ+Z427&RPSNBz zZVrX$v|UZFF$^jOQyWu!a<D%6=0x)&nT{x|Bn%t2(tPe3vuDG`uZ6?cGxzqG?jukn zMXpd_1S_q$6Dv1-Kg>J*hk4=%vr16(oWpt>c9uH-fv<uLnFy)vg)QO<su8~Qa0W-7 zK3HC62BAD>3${yL#S2d~*<?B;qzxvPV4gy#1uwoKVOLYIAG<k;Z(~+gTRq&OMPqxk zYm}+4RpMK6+=Hu*<WUj8;Rp!z<q&K#HR~zvC;zD!FPt<I50-Um?mA)<g2{>pk$Xp< zX0Hq_`Wz`=<f!0iON{$OipoDV)9lehVlSq>vvn=oFa~2P4N51gyKlh`E|E_6j#upw zTGC3g?$Res&}<#OH;7x}(n~fDH7_Itz!RN5vdaLP#|B;tE6aGCh~-lr+J$n~>aA%H zQ_@<i83N$Gz{~v+yf(i#QXK(%FIu>2aZQ4YBz)Kc``Qe*_b<KS`Y=XOJ`#bB8H`p} zO><aZ7cGc>_tfeS11+RsCnAV>u&l8hLFA$uvnd8pZVC9sRh?OflY5k7dB}s<eQkIg zY`S&*C9*-E${{?(!J2+jG*Pq#p_|(ndbHlE)o6c|tJqGa<Sz+bjZJ`thJ{{z`Ed!j zBw!V5K=KegW@}t&MXc*fPTRe=9~SyEpDyd5@TM?|j%kC#@4C4wIdv`Elc3_V{9BFU z$R`sHENit7Fvy7N)D`*2;Zbkla8p?~L`L4JL@Znmlp)*I51R}_-1r6te(+&rQ`TD2 zFiD`xPP5mQXyQEjD1L3-e<43Dz(_WzdZh6(Z@)2OJKCJ(WEC`ygu~?bVVR?+cKu^v zk(g+J!AsQW?o18y#^#2tUn*(-ME+G#C3BvuO$3sOk(2dYNv+6@4z2p1prT?=uPef5 zZg(dO_Sic3t<ZmwlVSQRCj(9isyzaD%n-s?F?SC}c}MKn7o78{g#U7B-zT*KG0t%( zz^Wgx1cG-u6(tGv=Mx!pAcQA~o4>DIh}Tt<_vPeNqA)*Fsoalb_b(@NF)o16-bA9h zO^`Q*5(!P%mGp3+J&vFolY@n3biuk!26hTeO?jHgq)m2x=Q=DhCB!4*xPeX0X?F33 zeM4amQXv(vd4O};(BN=(t@>sM;kiS6QOC#IMO-dhr*XEJpn;{#`{$?tF^D`=r0fRQ zOwPf~vCj`vuP+J^{r-l%G>CLn9i`OSZ}{+fH$vMr?gc!rd@kF7DV$gFYI<RDr1l0S zFkMzCh5NgK=3$688o%&(Oazr#mw0j$0HP^&e5gkmUF8_3s4KueNi{<F;UNdfEpmEA zox1#YY^2;dQ(@BXM|%m#^h!UFJGPMcAtgzc6f@pj@q1?W!q-$2ht{)C7h)@GUc;IW z%)Z6L`}-;kwFt%8%_NSUOA3&tLj2T7%8S_jpLeFOpeXHq@lm(Vkc%QJ_I-h#6alQs z#DSl=(TcnNSnXD0`|Dlx-j2@^V`}OAZyc@_-&W~G>}oz<G<<cp6ogE{rn!i8V!;_% zo;V>~Ui8H<rxZ@SvXaRu-H}~~oUo5C&wK<Xr<zs174#V8psvqsD{pXp-2TNx$`)Xr zty#sQfcK}6m}G&uv_8)R`{+vFbR^+A&Fojq3muZ+XPxL0M}pJFCU02jX2wxGNU*<c z)Z(XU|GTUfhkjeE28IHrTx>3*ET}ZTzgF^i4zR%skKeH{i7yi&5)`W|CmyWh@8V@1 z%H&8v9T|%838Ud@eSEHogu;H-7vw1Bwq353ks36ubGQXM9*Y6CxRk!vO|v{dB_RXL zeh|+xzYl10E8B1UBK3U}RQ-K3TrpG5HadH3ZLivbRKN0AcA6dUb1P`KK6C1BoqrKl zf@3Vum-H%i0?bgc<{nhWB`M~A%Ml*QR&7rROHDYrxMkrI`D(iL_4;uDe)2{0iXc}~ zW;B?E%=h(Iub<J1x_QtjTBRIvL7H>#)j8CV&`=mqDvWeGi1lA&8uoBsOE?s)Hc7;1 ziLM~75u$i$9h=RX3~;GLXdy7w&7_=|UO3RRZcBUF1A*%>2w4W`23OARG9_ZfwYs?G zYU4)iSad?q`Kz>LMD;2sWSA=n-F6ub0=C|oFVCPMx4>X%%>}`Ff9_k{E85GTVeP34 zfkuL*zlZLgFY+V5eh=M<k4TkwSD|G!9xia8*}6n>0YNM&OG24gH{(ym42I<BEGgq^ zl)bP_%{?$jLsC?$|76g3OKmyR75qS)bhJz7dcM8?Km#`I<~1nHA7z@lCeVJs<2o>o z=%`HCP3s=08;&qM;H`p#kV~0aCP9%mg0^n>kHQYQISTisi^sKdho@MYbi6;XUWw_I z+Q0XIPW1D@+f&sQ0n6wrkwo&Ehp00p1bM^jKtBRuWn()MxtYXB=Y>3Z7SE4@P1atf zxuv`mk%N3WnhY|R;wjL)3z)KI-E^~@DWTd{9B45I+_e!Zisx}$kbNg(A?86+O5O?{ zjsbmP-Tt$zBa-jk?{R=JFSFk8W>lf6t$v&e1`NWRy~P^O?tHxD`0;!XIK2w#+Zknd zCDE6Lm3qN5cGv;Y-wBZK*48y4Kn8Lp>&@}et&oZUXG_m3tA3gJ0<paC`x;ZIp*Ejm z52@bu;*IY55dJ8S<Y!n=9m~Mx|NHLMH;9d@sr)Op-aldBJW+?qrc<*2NEY%_rDDOK zDP>#fd$ZYuO0a?h8DTh|ti}eLiDp+vodU8Kll^*WGVmO8R<!>j#Gb_D08Q6WvsZ#7 zjPK&SC*U>U%PVut1TzT-g=J_&sJBnAfb#irhd{^uqB#Am&_Vm)yaJX=*KEB7#@;9R zW<5uFv*RL3H_2F&!%ZfLjU1`XRj#RvaC*Ls1n18N<cxk2_CF*d)f=06VBY(@Zx>TR zVR+J*g>{4Z1{Z{zC`lNeIU_jEed&hhlT#02ogXOUZ?8uQTRiaNr4f(HT3jzK0tN<t z9z__A*+FX+N06wMMt<Ow4>D@RALlt&==#2}**NU+qn~W7>OuNuLkys}64N8sHr3ob z^l%ULRvTA|dWNbL*s0qW0T@QI{VqD=uSH@QoQeI9h5-K@!jXEC!a}%97BrF;+>_i@ zR{g<9UU0M<dIUW(Z-<l5HDsa|V_n($^@-HH*{Hmo3$XqyX*RztRmvfjP5{(i;pcS- z(Okt;#YQ^t?6m&9-k`^9TR3#W7tSd(ByCob;-r}De0PuVqM60sZeD(X$ht!V$IXq# zeT}dV$;z2}bRy>-jiQ51;8=g%$g3j)z_#SXyN2~G-dNo6ayhk<p==4;@PuXK&E~i< z89r*_Drc}4x<!2sM)CG`lo4>`e1QfTXId%LiwWrDQ2`+S7J4ajM{vn6PDcFfNBYB? zwHR%t8=sA*7=5yfI40|kO>hsNhu;`}I10W(O-b!-aa&++Syz4zjSLe3*%8?DXUmiZ zFj0Jp>88iGmnpf1LB<$~lmLGSFF|$z4NGPzZ{Eokhb-M)B3hGEhNe)Cf=K2#l%bjM zX2*j!n4>$lcN{8tUzpA5CPj~;&1}OShDzod(F>W%^F;rMiubIKFp(JkNXrBU@$NeA zi(mqknst4KXTKabSaf#cgh4l!FUV3>ZsMl0VSCb0>}OXIfv$@R0nS$8o0{!`fB@%{ zv*8`Cgaf+I-^svYd&Cok(V0o9imW$xftzN07ZF09Vv?hVTM0RpKOR4$3(>*F>T8iW z$RD$iXGYZsH2V=2`Q0w0x8@-p4sE|1-5c>u7J7!K%kNG3oz(!s{A2vPZworR`T9`6 zAw7;8F(Xk=!uN|x{5jubgrL6vlJ)n`6|F`koFSy(kTrZBFC?3@*<p1t>$^=-wm096 zk?A5Hu1&r=9rtd6y`{<IXW*5`$Hnqqej`e6Qomu!;)_`I&L~k%)yxfNr=mtX>hu&= zsnAHqU}b31{X~9*!z#nfLR=??%i*=&LsmedJNk${x?qk#G?d4)d|cx``%Huf%h_#J zOD-g|Z8=~en@H#C-&!70R+K0CMuvB#LqJvjcgPkqB}7BYWnI%KPb`7Exz7rM1huB! zoCh@wv%eR0YxM*rli8kMN6}qu?K~x<Gv~i^Ln91-rl2{kH)XtN!w-Jo0(F6ZV3aK# z^o-b>XYnR|1e&o>zeT_y`^ey9=5lA<((U=P&NZ&KLPz_mH}W{$^$ZH>Cli+#<qgtY zQO_88ik%lks%yC1CV4a*hy%PLh|hBnV!|h1K^X*^)x5i80_J;iE2lisRWELFDoZne zzRahwMw>G&Re5Tquyj-QwI<mky0QyTTyik*?W0n#GQ%y81`n`Pngztw`NfU&(7lC$ zx!i~zacO$m!~5rEhvgH^%o9tM-*Ve)tk0}_KB^abP&IyC4a$z@Y9GJE`;u_?dRiOz z@^GomiJPV)Y%vkuEGO2rYbU4kYqc|tc)nz$Cg}_CU%FeuzufJ~-5qIbxEFc=$~-HX z+Pt6J)hb~fno#gkf<tNbA+r0m!GfMJ1=f+KgoK<6QM8t4J^jvEmF<uk_>!aiygM_N z;tCB#btv?EggY%$ojR3llVEvSV9FbFs8ZQ;4w)o4Cj^Flbpf^H7#h*V#P_EI@$*dM zFvy$=Mm1Xy!=SD+MThmSXPk^UlNDr3D5Q5nW^P7hiqQqJ;>h52$6tN#(Pqy$x9C9h z1|Og{L-Z0NzK^!s^uX{P*K#8Ni5d%6KKo<gfw<LophxZ4l$iXwE4h!r%kG!{&NNix zeM*c^*DB{5qowdJJi+#;iFXg_Ip%Lh3918j$y1p%dCz2Q&HdS3B@;$bAqUKjdu$7j zQ6A5Iza@C2IKUoDd3Y=v0Gab|M_Zp0u(?y{>H>o`L$=tt<234}f*%vXrV)U~%S?IV zQLuRk|4=^a^~t@q@=)yEcUCs>9Lp<@0a)K!a&kh63sJ6oV`&BxfezoqEXl-x_kpu& z3$)ajq3G!o(1;EH(0k<pP8xEJdnL&CHsY}Povt(nt3<bvNOegE1zt3~SoTN^Npkeb zcp7gUctQ728Z>fORt#5z9dmYi05=cJ?@P%LD7gb(i3Yd7O|7RKfy?Sstj-dHR7L81 zt>FqqIX6D=W$!livXrzqcBO>qRq|_I(+VjZgTgA1k(4X6M?GBjKNgP=78Jo?9{{Cn zB!Z90eexyxI&%#!OWe4^GN+Ztnp#+&6Z6aIr}kXZ?`H4UPrRmF?G_Si>)VeVqM|d0 zrW$wKenl0*432<M$=Oik<DIc6f4K$ZJ4@amSwH`e<$SEwH7?D8Z$YGB6hk@*M}mfq zhIU4kTKAPU*GLV_cy_IU0Fu-<`D^kyVbzmT>0o;`O8#-RM^0p#Ycqs5^yx7Cy!CT* zNIb4yXF>qXiYoU5q0Re6AdUq-*K>_L%Yu^A^Pg%9zgS_l#fO^{mgLkUiWeZ(K))KI z`+KO;+2<@iw~*f<xO|>Z>rw-1q<cic14T_r{dV@=%07L<hSOSNDE!84?Fi}I!<>1F zsHnEzj1c^hX*dot#t?bw#Xak)>hdUw7o1LljkBFLY;(*+X#i^)xb$#n$?mXuvQwXU zuX-9!jFprTlg6fX?c0N=*ZEtB7ZtCUZt(6DF!6Rj`oe5ZQiKG)HfyZ&Ve45hmCbRD z6jt-BH*eRNfRUFGL*9LL1^IkFMQgH-X`{C52?a^rywuiqHHX^OH`(_V1;o`(r@Q_6 zH$G}!lVRFk#<B_ld>r9<U1f6{%G?5r4!9Lc9BBdx-$|^DMp9E_EecSR)ZkNJs-&Vy z6K{+pi=6)~Z6oI%XZcF9aIA}m&Y>Rtao2Zhal;uz<djr`Wjfq+bKC@y&~ZKn<UO!c zl1I`>K^Zez6r-c31dgUMfiH)fJSvTD&nSG$Kv&7Emb*qV4bz|Kg3PL2A4V5zO>U%~ zqJ5NA27dpGv+;+2!z-i&T+Y0mdOTlUAK_@9k?mm^wLospsY|SA3wI4yGV)Ryix00w zdtUkB)brW<wybTClOxOYE}K<VM>%eQ9jhhf#jk^(NmF1zvsrFx>KHcA9ma-OYd%gw zSBcsJjU?SMFys)#$C(*#9Ru8ZSggttgnRdjVw&~sWmxL>pv{g*eo@SG9~t=lQkj-+ zss4?x5^z*m0TE$%d2tmMaF(^a?n}!ip-msj^;{@>(bqv$XM>A?GZS*CUhdyyV5(i$ z#C_a45!_rfWtVAtuHpRjkf2=c*J4n$%V2CBk~)Fu>v4l}SHZf%LT-6g_Wt*DHG<c| zoVp=HKmHrg+T0!~O146vMFt%{HDJlQwZnHd`Ywn!_C0yZft1t$K5tuCX#e1mz*q2D zv9PK9eAPus-n9IC(TJfdT6=kJIVSzG=%gsRbs+hTt)o*kNSH_Qfp?kL!ps@tu3oQ# z;RDD$7s4N0;(BJ*uDJVkMu&NP23}|`u`K2N@HmfMl?vOj!AnWMwo=*Ck4RTqA?YJn zxll?ZN}7==)d}r}i8A(cu9c?9vH-Ki#A?QGIml9W40b;ZFQ&i8bu-~9tr3x-kw_D5 z?G|TH|JXtynKb?eZ3n?){u+gb=7n!kGDKgH;-eaiumaH#WGI?sj<dsOU);6Y`r%-w zQ6CaV2?zXK8g)?dq7?y1>qk(%0v8JO2lRKE6`{FBGe_r4GnAHo;g!|Qyy#!)xx(~y ztInt6_FES*mWzBl#d@If95dB#WTItXJ)-UkmMhC}&Bjb)uLyH2zvJ+>US*S|MAJ_T zd7@Ear?$4cj~1yQ_!JL@tGh1dc@pUl9H(D)3R$ByRwJ-V!BLC6m#Ostwi*-YK55eM zH#i#2?!2#{D(4^%9LSzA6U&W(qGRwn5^w~=Fb^r5)o8ejo@YX7mX9CjMX51DzkSTH zc+n%Z*Efki7LOLn`(k<sArB`BJ>==Et><Lc`b{OC3i!ccYZ>iD(Qjd<tUx@N$y13; z_;N2JS7AM^ipOvEj-oJ*vxAFSE1)$!USJ@H2PKefGexk*mq0j{y}_wmx6gL^vlJ!d zmu-A3Z*-6c#vRPAJOsc)1x-=w86l=k;rFI()X!hgI0)IXB_3~?1c>?5&DrO0Y<T@X z7Q|%<DgT&?Io9sB?z*{{s21T8or`0k>oNx90{v{~ZBdg=582_GO0if(G?gwnDEtNl z%LUm)@oxCcWH`8a<5H=l)3nH^LzJcHuq@4@c@{69L?_)%zfhEWs;&MIP<u)=4|8IS zCa`d$-w7f&<X@kRF2ZmclOltln8n57TSLtHPapjnbU0=}irEmkx>WPlu$Nv$hgGBx zhV2YlE*q}uAsbQ=1LZAqbF`WxIEf{*6RcLWK~ib?Fi;eLbUH@mJ-u$J4#oE7Ysahz zslRcI{#Lc2gxf>=D~4(3j^&p$fHxJ{NYtfVdDnjq+O5GIjvTqO&$nerQV|bOExQ34 z6VOxGC6)9(Icca)2PYz-d5zW@=#WuNGv-EGia?JTk6tgPe}i=+4S3rk=2fVnQkyXQ zo`uTP>?J>g6Alm&$eJyuXDPE~m~SWq#bj{ynwHKmhg|B7ZLCm|b}+oFnmkESRa2d7 zKQz7*fB4c0H?XAJF^wmNL}Pa(sx+#uIYmNV{H9eOgAjXM8W{?OUNaWcP~nr8`FZG& z?~8tF4rYnV`OaDRluDse_!MVx!9N}JtIBAojD`C~CAenEV||OtaiT;mE=b1Cae(gv zJtW#ad_;pC(r^*UkaD&CQ`W<Z&#AX1ERIeFUO8r!t)~yrIo8I=^*Kq}w!G}LQa%9w zj;$scA74Tx1QVE_lcb1lXV_L26Io7tmk{S6d6%zp#YY){VP3TalItWFoqw8Qzi^_P zEl-yVQ2X`5W<16ADbOm6OmJG2<?WkgH$|S82?IM~_gB6T+6tATW;63Ef(6HqCg-bc zFJ;WFI;2^iA!3@q`7joX*T%OKPvfr&*yIIm3b8#mzPyXTD>Vh}V@>jU_Etb}bM&Oc z1u&6t>to@QiG^8({t<5+(}n>{s@`Xj%=7-|Dfh7mgVavy76I$q@25XcowYkdEcR)v z`KWM!48wsG1yFUnSL*8`|7Q7SJvNW_p9MN?(lH3?VI2oPv>By!0pXBEu8{Qonp!40 z8VpkS44YM-8v`_lgPT<Ne*t&CjsEK-{W1U;)|3337Ot%ZbtokxKzR@7FGN)dR0yzy zi4PbN3=2`zM#1BwzH{aZcr^`NcMYfvz?&P$o-XTX6Fj@cbZn|9W8iJ0bEDgJfPUXe zvdW@Dn`EQ||GW7nZ+tlEnujN?NPN9>G6sJDX&pj_aUnvD$+)lBXZFGvC9Uj)<bP4U z6#T1t`C?D$PWv}1p6?4K9KgYI-KB5s&tUdqgd?hats#^D9qS}3JZxqQUq!YvD=lBj zUCKV^&wx(8)PKKm3K>peB*CPRF*TO0NX2ar1`zpYFMjF^TMWqicj~IlfBQ8U@y`gM zr@yuTX*lO+`vsidGbj~Q<059M(OKbP&3>Yparb8W_Mp1ViOvYY_XqT3uk*;_)b$=O zc6~gSLR=P$S%Uy(!GuDmj8H=d*#C2l|3#AUh4wEvlK6UZ<i9Wn|BRLR8$VG!3`SvL z6qOy4_}lXRml64&?|RIGq1+Eh0(Ci={@bJe^DFr~2IM#LA9Qfpl+{0qD-+`Xd9nVP zU-K7j^53O-RQl`pvW0c(8UAm6FNPkTax#(rHox-!QMCUiX@}rn#KmX2Eu-fD`3?Mw z6(|;lp-+na<dFWa7U2KaNArE*ghNC`{PnUQLniXha410{^AZ&19bs^<CgXEh_CLLa zk#8``jeV|k8Qt_RF_yF(-$$CTi^P+pzZ8*%eDDYZQk0ytpe^hLm#N;35_spgzjyjj zJYW>`$t9|+={%JRq~)UaP>yip;!9p<HQ{I?m-WQ@6(^mreDjP)m+M=(t)oNlh(Nn7 z9m;ZAmZ-1r{3&UE`26_`w(q-Z@%01j@FSY^9F27Hmqfi`+Y)qyOZUL~x=fd$#Qr0_ zMBW;DuI*j6ljPsJ_Xy0p7_-ZkcL`dzjgmdBo@fmZvEQYo0h1ft^7-mc{{M%mw+w5u z3%Z5tSc?~TcZxf-xVuB3xCD2nEfjZmcP$P<QrumFQ{0{4Azz*&-+QiW|Bc?WXYW}v zYpu5(oKIAS3qsc&ST$zxjO`(IOY62c1%6a&Rr#!f_Ggx=3v-g}?2eK$GS^$Yyu1vW zWqB#qnwq#Bo&H|>&31ZfU4Gux&#|XFcVaJnTm1@6AzCF-Z<Vu!Ym!qI=)ZmYb}*;M zmAXG6*gZ1BG@c<F$w4aSj4k&31?MwU(%_yF@l2KDVR6BE3H-<Dis$#9VD^joRGe9b zmKS!|eH@UT^}|J7t%wFkM0j|2{Vuc9-k6?nz_TQltEcO?X1k@NYq*a2MVv{i*Clp9 zIv>Iv@#ZCvCzI}!8@P@=ne$*WI{>wwDXN<m++F5E9f#9yKlFa-`_NBe6>rF(+ZHEh z|B@Pbp7}10h30?u$zSjX#AN^mEIG<OJcy@6`d5D`N~8!3-UBzjSP5QYG!Y%%Aq$0S zZ&hQg6Gz#3H}Y|69BBuiOCY8fC`Ue=qe(TdE-;4EWP&SJ)jKZyewsofw;O=H-b>bC z>u0SkPcnL{1mxklkjj1W>4sf_o%)e?lLutw)n`G&4V?~t>vsqp&JQJU_0Jx~uKs_T zKWZ5^U3?S9@DD<;Wb(9-h$W=Vmt|sJVP#8tsXJkuhX_B^r}3EP($`t*N>jrb3WQwt zd14v3D(eEBH&g4*|Cn_Wvt0i8zghr%FIlGpwE{#VsbZQvbGb~!B+0YE+pV2Dbd#AR zPo$jtbN@g+0UT5vRNq&M-hD74u|)(yUw*Ijzvl<E4zCsmK%Mobqke(pBc_^ozHB^I zs|Pee`(@Ch-fB|xWFzng1~UVHTD;%-m*fMg8K=#Hjreq%K-lFVRYP9BlFqVU@jt(F z-m9HqvlKs<-x^$WYV0Og&?3gH1L1&^Ke8{@F^Q#$z3ZJ%7Z3Y|U+j;PVl53zKJG}= zh)ll>Czd)LTwrOI8>XAF%qR&2oB$_rKbDP^O`HAOanona;j&UD1G_$bsJ9%iK=}5V zP6$KKW-(eE)&?fU;9)=CK9-g&!Q1Ul1)-N){b*GH1oy;%n{T<x&{sPD;UD4odPgs3 zyVwQi4J`?Ni^S=ryOQlS_}O=Z=7%}u|DRoD-@WksmtT#!wBU*|@KN@zy8OvM@W>F7 zd(mUVcv>B!2D)#E1kr8bv3Ylnqb9t~#^$-@L9AJwEEp}|Dnx<ckYhdFkA%MKl7@TW zKm0{Ea_Ap6ag}BauSuHLZyS1xX4OW;yO*uKc_ZnjHn>VA`t|lij>vLr)N|yC9TUK< zjD_A1{eXf4=1e~T`R}9qK#xZIJ3GlDZ50JWf`d(mRL4WfeLc>9EcWrrEk=p&#mH&; z->!N;->!%!F&hlnVXMr==fuJ-3Xb7*x3W0l3o4b`taX-9`G%C9!LD1y*VJFWU`7)G zMPE^ymdo5Z=-=6B9DON{61cuGrU30Mb6L#$rEy}U@jgwPAjS7Hp$#A@n}PvKPp^&< ze;2%WEVxSRe=c7?15y9mQ5r)CiT-5vt`wCd#2Gp`fh#BHmi{Y&B{Ao}TiHm1#^~*r zU(d$Q*v>sS5xPx7i9q*az5?KGgoX9&Ks?65rUakcNs{@k)_){_SKF|f9iVc%p+a~~ z<MFr0szb1%8%)fykL1lRd^$JKfSAv5T|BposG4yt7Hh_ZWp8XY@aKWNf}I7RggP!Q zE-cw1)oI+_wc2lJ<EdnuMdAOykRb>W|L2~V+jvgOb-fq(Kv=&w9PvvF4LDEk!cOp- z@A)z!U5Mh^tDiXa?{J+=A`c*KsL}S<`8&!n9^CkKtRVwI@(50H_2K1rR{mZd-AE>5 zAzq4KxsMfici3`>X){uTwd!_YK*=X*%A0^MJ*z!&n5lnPn0KvXvwriG$Tog3@0NQ$ z)(!SvUr1!pFGdj^j#Fa?&~$|Rpu<;`k-gnW+fY+}*k|)r`GvSyfa0E4gj;dYRqm{X zuYJOQN!90@&I^}8iYPeE?<GIJ2bG|`&FSoM-)k8i<@!)OqT5|3p;kz@Ty|2;Jc;$! z55Iq)uh318IjK61IJsh9qC`>7o*^1W+U7xtd%lFxSkZLtDkh~OV(N6Lh}@G4{w*QE z+<0jCajD+wUHTW-u7_U=oq-rP&cc)1t|<#Ur_TTcgW6K!fyu_K=V-0{uGRfP;A{<b zpMTz7^VR(Eo(!}gG=T?j|ETrmys{mLOJ&rT?^nE9HlO!H4J<x)*W!rnbnAubmoq@c zDI60`%`CsXFCMh_Tm5EZ=Y;}0$6?y*nSp4@)%=%8Z`VVq6u-k8e1(`;UAXZVoaozK zm+eQXW^}T_Jm=A#vX$0X1}a$mo}9?u>BC(yBKF>a?kg1H2_tGEJBcGTZpxZw*M?p7 zmk*R1I_p*0ehYePb^1mfJ`d<SLT3|De7{p38!g@V(i_jqb8mPI`Gplh*I;S3z3NOi zs#Wa!EAK-0m0}f?P96eM!pQ+#RO5wO{Cr0fv&^>^%zM(iL=RE6R?{8W3!r@c?B}7h z>3gEsh_GIz<`}~>sk}c*9&=U@(quSh30klC`oCWq$Z!0Nw^-ZH(C{WAP_?cKJS2c2 z-#!!{2Z*vSbyDE9r8#nB;7I%&YW-owE^rncDL9p8t<);W1=gW;$y4rq^M^GZr^YTS z_X`6u4zyE>6=>U`u+4Qa)AH^So%J_~09U?qo7uBbQi`O`0SvQG3cNchOpq&H&4xDn z`*fwHx6W*EI$y$<1yI1DB}+umc)3(_T1sI|`ycnlXoI#RD5x_i$C!QkZ+5%qQb(s$ zc>=9kqqSPR-2w+c|2v~~BZh(J(1$0af48SX3_4vT`ds62Q&Xy0mM^wOV4vs|Rs*MT zW;KC_hRchK??5gb+qp8fga-~v%GY;iYulGhS``F5PZp?*xMO3)J{;E}xT|aACbuVT z!d>pibOE@5@~KSY7qbC6-mpg=GLb7xsU)-c3N2l5v{-5KFFZ*_!o)IOZtjn-U%%c; zB6r<0ze}mNXqxE@&&?Hkeuk<3T_!?DN58na>0{+Jj>n2$ZPAIu8&4!njg7@vU0vOL zxaYXqpNvHvBR3q+;7Lfvvd?s-c>`H`5ak0%0}DM)_3upvs?3$}yR0y5b#!#RyhKBC zbIIiwQ@+kuBuATmgHe+E@j0ySY@?VQr#;tvX4HQNJ)WO6Km)<(S8YT@0<PX&I$tuV z_25Ml^NIg_^WH7;%GH*B)BjCHJv571hb@k9oLQ%qic0uRu|lf&@j`XuGk<#fE!83k zNX%s)A|HJ;fBEkxTIR}1o~M<5ZLkTQWxWRJ!J{u0*+k;dJCgLND*Yy=5~a*4wveOw z3Tl}c8dmiYZqL(jRO2qc@OIDhO)Q|0sA$ew?ulBpJ`XNi)%ixK9}Y;=FN`IftKkLm z!A5D#yySk!ka4ZSy0fGhMeT^%W>P>%XuCWWzutVf2f|<7O(NhDM#&)KETYzvz2aGS za3|JUvR|P!n#`H|huFW<$9?IV@zA@>JcFRlEoV+rr#46A-<CLV3*8vWZEc}KZ`K-v zr7b5)J4JB-@s;kmf)<YHPwu{*>NhR=ltqA`L_|CQ>*3|XCXf9IfUy73?>N=*CZmwG zx6ImA);ABbYjoskH!Q_ZIZ7PFF?xv8{Oetr%Hk*zzyRc`0DOK4LK?b|`!H8)jBz9E z>g?R#bPN%|cEhk<{PQ{$e`-p<)WcdSepuRvER}KlhkP>Akqw5y<Jf0=T2C6+U=?)V z0`udUp_Iv1V}VKkv&9t&vqMwU1Kb^kvOs@TA@b34e+Vna_l=s5^#;HVq{LqJz5k~m zytt%BRQa)iF%QV$9WHA}Z}va8wB?q1R0`!kB9F&1KE645ZYgz!wN&a`FV59%#@LZJ zqyi;GL8d{b&Ta><y|Vo(Xl3Z3rM%*^xds$wc&AFG_d1u03x03kIKDp`Ruva3{q`(n z#K*O1|E6Z5J$O{iXli_GKbzNGV)q+Spza5>v^0Vp7p%}O+k72C0dhb-8K1LxJ#`q3 zMrcI#;NR1@y-=vwY2oOu!@B_t&_p<<J2|7W`P@V3DK7R`B{x`e1^U2EdkL+2qZj&# z(8e2&s2^&f@glYV4vYfb6R;io!s2&Vjtjq1A}mAgM3;s~&n%#9>H9I)^g*BXA}~!F zP9?df_(iMT<(Vg^<k}tj>pYC9CG;$dr=?%Qa&(+`?ZQ%4t;|TAqN3;1V%hdHH%a)e zHj9W;?8;-w-k!K6UJlWsb{gdB_+cL6U4$Ju#GO#7Z)b9NI{AS`Z+EOtr;-=SsbEp# z#|Lt|e_TvvEV-~GOV3-h7O<dV+y^{eBt9CBqKu9wb607+?Wmkq3mew@UH`BGa$IsJ zpVEeRKZ_^sNb<WCf2MXo{aQszRQbhG=F;Kg_BeCGnNsgSYWGRM9I-4gRd@gc=Pcr= zF{W_<LT+t0MN+~=ExZD8pJ7s=A4aeTOzpmhDj0IfvEI)|$=}0DLxmZu{oGF1jv_DL z@(}YKH8U86#y6Uqss&TG!@g9s>~+EUOORalX4ajGT@cmXE=?g@fTSV%cS~Zq6?xK< z@$z2}vj8u3{b)G=Jd^^IrL)n0sTOJiSRmpVn3FDktrhKn8Qz6l0KD3%b-wsVi71EO zVF1prm7F<~rGlrc(z(7^9C5Q2RQkpmMX|U@Z*(CvF3;@LvRyPYmzNuzMKZW;s&>+G zmKwd$EGM4TRDz$w5#wFqj>~Fv>5oD_H<%~#N&hTr0qrp_Z$DhR>EK(jdM_JR85Q!X z2zf4`&@PoU=YL0KYz%-&Ki@RG+`At?IWK(lyIrEF-a)c!s8`VOhsWET7AmZjF`8lT zLaG3v0<L@E8UZYmL-b~%AUyc#WVGz;^TU<N=z_g|z2saKpdrHXqLOQCYpd0<L9241 zEYZ8eW|nT%F^h+KQk~dZ;vTYr_qBzT$`}=o<p)<3H_uLCByX1uY}RM?Q=v?3Ur{aC z^e!+OE*!5SslE~LmXPx1D~%0li`{ydbTl_z@jPMh`}onomo~}ls=nb+vTFY|)e1Ml zoJO-JZMNDKogU}y5ci0*HsJZqAs2zbk?WLjqay?_v&By9r~rBV)K~$Z+VgBx9#o^k zNGn0_vUBmRYqLg~*Yh;K3XPgdCYtCiRjzw)Zs1GIM7E$UZRI(Z8wNF3@zK}5ml#rm zWZwwE$%Ol#Z;>wNA<H!6^Aa?B#tNx<E*8=30JWCZoW8a?Gh3bxmTdZOZc6E#DD*0V zht<$<oWbqUaGV>E{V=phCmaREEtgyf0l68?2HepHn%-=NaF7G`YD6CM3K6B3wC~MR z!Fz<Ci5!<cZV|@o4;X|sEk=iW9pAgDj83|)NvnYo*x^Oz3!U_n;DA$9LAR4CVI*&= zCy9U$hepyS+XG5z(Cta#ny1hOeyq|RA(eLuxozU>Q<uM=T!k0^MYWGQQnJyZ7p@L= zgZy4gNO><m>Q`d=@gci+RmCoV11ogS%$_>IU+#os6n1}Vso8sdTI6lo?yFk=Yw_#< zfl}a%2$TtmrNZaW@pzJjkp)@(y@IY&9e*o2Lw-xjEq39^(i+jA!A;!q*+*w9L#x~K zjdNi2-l#qH94%<ebo&pYI`#BW@c0Xitqm0}zPhUIJ7a6_U$MRM*HHE-C+^}s=bQ-i z456QY?%+j*FriY_{c=RQN_|)led_Kq(`!PGB|m6DI&0@9?m@5G@Tit|#a0^Pft9}} zf=y|vOsobkVj8cmaO6gI#-Ik>_4^AuL>)x<evXb_L*=wD@~jeDQVowcAmp?NS=meu z^Cc|iW)G`b{7aCPp2Vp}{jM^$3Z*@z`2KJJR4MRHcchN{F=xi^S<PP|!X{v`DQzPI zCrVtK#3r#*t10n03He92+31(?Dnmtu?awi1m)kp#hI^x^yeUj{gyzAOq&kl~OVq5) zo3>`W;yY4p)W`)}A%40y5n*LHLGmu9zZ>J9{f#*|cd+Ow!c^P;EyVa+yo8tO3!v5) z$dCJVpbO5F2tWNH##estszkY*N3U)*=o5|iY8Q5uZOIiCMnA)V^|LX3*^`}3nN<|s zE-)UbtM=ZkBuU1(orJ%c{cGg?vR@I3zWX1wWz|Gy1SDbd&)Qd6Re<Apg5=ZAZgZ|( zh^2i511Ij`%HA6`!S`IzrG^Jn4g9mOMuSv&*GCl_qQk@_BvEbfrw70k#2;enkxcME z6AtoR%f<}#ei*+2k1W^<r{nNU^El|g#}uGK7N%;^Z)C2(G#Yf^cd_TIh-o}0S|s1? zBdu;X*&gj_PLf`++ODVX=nvn}>1)ibJZNG=5Mi@S3%2eb59e0!Xytc*O(qg3mz{~u zk~H%6FXz{bd{{Q=HIDt<Gg_DUX?AQR3bx|sP2A<&iEC;<!H01H@$+mnht=wBWYm&V z@wQZ7sv~b68<FZEQf9$UDsX$_9gz)*gMJNRWd1|GG)gEDFOqj|*a4|%-N*B{@lJ1K zm{JjhYA85n&14-fx}3)#wSUR|GRnq*bot>U;Sx{4Uck&AQZ@NgmT#GN)#CK4?DU09 z!8l96DR!uL0tMb-F!xCX{(MyUUP{d;s^PgswKfEqdcF|71QW0i7KjF3*E-b=vx6n} zNYcIi?3+F#`(wWG3AquRF)qJ7#8NpqY6J+B%Jz39f4eiD;Vxlcb`Q!pC}1Cwi;U#0 zI*fFrYVf%`8kVcL#Oa!&0?7&m@xmD~IZ7(y|M>OGKR+J7>Ea03e*7HS<T97(Fqir_ zkHWC4syle7x;sjExeds-aqx83?)b%}&uN_=N_UIkd&)*`UL{v{C>fI*uj31*3u^gF zWQM(hT2dubp2k$KG^-^6*O5&bIxzu_KYcfQq}IWqH5lJsY!OqIt*;OQAzD?s9CjOZ z8cSn5l5>8dmLw|-kPelb!!@*dgr6XhNTqh|Ya8}Byn%`Al^bqiNud%lorcG~iP;YP z_&q8ciB?V}WPLHJ18e|-$09y!$%<goL3zzDto}5yPVlh3Te|MYHxpQ*J<2Qm@>=Hd z_1nkGw!l$Y7JYWNQ_M{n{V>pG<RuQFiEk8ri`_KICqhDLnvA%o$4YjNfM<RH2SPbu z2wR6&$E~X0iMqO8A(gE+!)EBzvTH-~i{~kVj5{>z<KbraDX@gH-e+7tM{&PWo6d$9 zEB&j!4=%zBz6S+~$~}xk2T7kEBw5l1WY4mRnXdrE>L|ER3tNold<w-N*Fq)$^Z-_= zC5?%At$z$C5pABNyHao!;g&gG?@!`Lv53yN)A(Ir)h)NV%G88|e#T=;wyL)J?$cdy z{L+1Q)XQ38BHcZE%@M{>nAg=3Ck+{j?`7=*tNW)+BvOFN&{5q^<8C)&vfJ<76>Rn= zbEm0LSvzye*j$6Wn&Vf?)Tr+}4|c*e^!p&oO_kpu>4ItPw-dSGSGJL7(X1JKLD>M5 zJ}xCrdHSoYo`n9uJhMS`d9K<tJeM_}PyEVm#)KlaG_yAo-Dj@t_k(l=-{mFo*NAPh zG2;O_HiEP6PS5vpFC;Vt@jcJRfxQu*E2pxc(TyDTX&!ExZb{k(`0QERcRWmvhg_-V z^FKwAp{sD@JMHz5jbbZ#?Fn%Kj++SvT@EyckYDF|j&{JNaI0u&PM9$5_0i|2#ej21 zn-25<o#!OyJu__!+o<ZGk+&5W81Bg*3FH5#U-A$9`_&T%eXmT&D=wroFZ-9>zT$p- z+KGOaUHBf|F*doKo3bA<Oq<Yob+onby|$}&dZICj#tfs2#e|g9?J75Ybw?!E#HDaT z^i9OnNIUo}hpKeK7k<{65a51B%StHdP58)pIe)F=b0})nf!nsC;Bc_p5Ix#gI!Jb0 zT*^zimF~M0p-p%Xhs5W9sBCY#lqvq0j8DlsCg$wkP9nd4T(&QK+-8u*i3eRJh}<yn zm(jGDj!%zPI9c9NG*vs1wbQ=THFf&I+jV(~5?=XoA#1+(ko1^-i_NaWnS0lnkro%1 zboVrgkt|$cK&niRA{+HlMc;rbHl8oy<GekCs=*d~=HV>-2(-PuLBHNXQbI2c!{)qm z3_ad0<?Y^eXjO-A0w$A=%EaC-15~f9SE*FNLVSYb*C0Nz%pv60@%^zlAB^|CqesZ* zd$Jzc2V9OLUUYMXBb19g+<SlN)kLgj12cF^*j%@M1X2x`&_x|Mr?*@lf5bP6_7P3@ z{+2V)_})8Ri8+@+NzI!`gRoL0JZeg9hOyp1J9Wl!O?brkHnTlJMfX8?zEQ#(*IJSC zXGRl?Q(=G_=BYNL+mGB?@(2xqSOk-gXtQ6IYu8Y+pl~ax8UN*gDd7`Yxp9HN1TZ&v zf#p_nq-+q2=vn^|f4*CmDabx8vGvLmV;#>#d0Q1pKQneMae)1b4!y10BE)SPOdt7Z zizim(POjTdW20!4BX=D6C9nQXB0`4kpp<{cC+~3|o~IW}CDJ70!!~mrpObj>ba^!s zc(u<cqBH-~zKbq}WjC(%rq&{S>;yYD_QlVRimQ8Y+pd8v-sbhC7wkjyXEo`s7u*RJ zmcvPI5nmcK!<90d{yiviNik2ZCPruSUi&QKUmI$!ot>@udJ|DIc@atvFwPry`b3v% zRTwJC;lvLO$>zxT-`(Eg4f_mAgrZ-&#Mmz%?Gnm=FIi3U`Ls))x_A7f7+?J2U-tbh zO;YUkbY=1h(hQJ^FY+vEqf<PDr?9Rh`B{pxIRDG*7WTgnQ<E2zBCshR$`bHZW>%?^ zsfc~d&iKo_h-1U53gEJQDbxB~?LU2Pya%sH9vtgOM85y+m<qEa<V++YOE7kT`REC_ z<bnu%lRjxvuh!cqx?(Pkpa_!Lo;-xT?!k0npX>evus9rNnv8U*gctlliVPaMP*V4O zWZBh4u=>V+@ekHXTkefA#TmvNFSYqcUI~8HuCr%ima0VSk!7<Y!P?xt@N|Do+wU3f z;cn-7&FOei3CdW`v3bHE&o9wpw1LA3;H1kL7z@wO9U;%diR0t>cE_zuKF6e^XBaHm zz3uxZ6)k{I9P$C081D_zv+;455T4d8Q@Pn#6FKyJy9VxSYW6twseaLO5wX$wzJ)^V zo7}~*r5j)1&Ya^t=eXt@qkeH7#t4kvi;GtR6+9bOi69gL4j%Cq%X7a4lZseLk<H3$ zL|*dG7HMCVukJGIG>)i}9zA?75ytWN^KTlNLgBJ1n=1@Z{ts37^rhiBT-i8BH6Sta zF7B=W9gR=6Uqag7fLdDoW+8{IbGFbAr(C)xX0Xml?nP{sz~b1I7o&FU&g>kznf0KL z|4(1_xdk(?7SG}y88Z)GfXesQV<o>yPR1NkOg>2;A{Joclq6c3C`-e`DD`_ovP<n~ zh6=POROs~@+^!yo^J58H$7n7avaYpUoa*+iVoldgNlt}PoV{{xJw&i_QTe-k@hsa0 zZUJy5uRd!`khe3@s5doLd5Rij%{A|y895A(9?vu~lg3WtO|3tyqBD=e-5<6s7(MN} zEy2cmZ;B(d^;@*uqRfcO+Il;C$HVc4S5vY)QI<+02w|Og+Vo{ZhYpV4x9-TrBN=^0 zCk9oCjwjOL5x5=F3Y>-Jy9RS=^SqYgM>EWJB<#}uv`OWZEppnGZ`aw_%0KIj*_S~9 z>RVL<OBuia#xz7r#mI=cR}hu)j7?hbfa$-{yr4kCEW<NRi_Ai+K~J@eRrGmY#zw>- zM?)U<Y8sQU3|C!B`WDo4Oo7eNhR_h8U4HSoSL&<?lf{AQ{71XQ(du$25BWi5XAG8K zR-FgxCg;(yxetSQc~q`mP!cr4X!%OS_CdvmX_A>+_xWLLYGR~^T?&&*Yq3(d(8cuo zn|re^XDVKpbwjTBpfVt7oPD{<ykzbpV#M_J>D=m~-v8-So(AnyN$z5q2F@$_*IZPl zv-Vd><q^2{x9TuNqiW0M7t4d)g=%rsVqXcz!G~pJT$qL<=TQn*D(+((Lhv$$E6|D# zuH(2|IcRZ~7F@+h+=WoH9NXUB{>>ofu+p4uR-=%_;p!#qzlx93I1-6N1+b|}8|I5Q zpN{7Z>d!i^k%NZRW*}bj`y<qtZ^|$1lRuS#RNlB-e3#{^V0_k=^GWMvhX|F_7_E+^ z*n7$>Q?rUU2%Zq67AU4--C^pwj#($8lrE811{x?VsY0~nR=vRo5%iq)+!ka(zkVh8 zIU|fc=K5ZJrsz@rKJuK%$eAJ;=7r<V@rk^XDa~6oM}-`T0PQgSpuoM7IE=rDV|G#U z&y5fE)gDP8d|PE*v>I*AH{WM{_Sb=Yjj`f!;+;fl9`3uvMw^YJ@JQhA3x)6l{ni6d z5pP%QJ`ow1U(-(d6Yt(Bd{GGPf+?mp8vM@Fv*jOKe|4)yo@_pAabvM+zIgssZ7S#$ zD=vFKBYLrFqjmgO<afW`d7`{SOYw8v3ustkmUDQQ@mFXv@#KE&#pAqlxa%$pXH(2M z^aZ}~Y;6Cs0VVEa-P)5H#0Qx!uN>N!R>4PiM{{##dSBpO!oG`Qj*flgq$LI{!Nt#{ z^u{&ru=)gg=_=~i*cAV3dGRCDB+hy@+AWezG<+6YHye4e%QpON#gxCrl}!3lA<`Pb zMcRLNmmrEp!G>ida(u!m`>0qWLPpP*>*NCPg6?RQiIG5YIobSkK3WPMGo0nqv^}E0 zpXQ4fc}*i7DtZ6VMO6F+d26x!`S`$jB&Y%&NPc?1|8}zQ5;CrOd@7g&T1^Fw4&Iqq z=DPTtl^Np40JF*N976LK6gCRf@%Q=P%kZ-Nt;fi9ipupxx8dv;)0VbV(cI#N`uA+s z9Nn+ci-114WzU|0E@X9eisVn7Y#3mDS_ThU*U&g6q?OkGL)05^R63Y+`fRt)ezUWE z6LkLaSJnSnvtRb8(v-H1ZactXk$wIm%0=QpNqurgm7<OM;L3O<!#Apw=Gso*6+N4{ z_SRB<&FX~QeY(W;HADQ{hWWNI=7G&b(i;CU8jn;*56JH=va{l|Ot%)!&ueQTvO%p0 zNi-aNG%0Cv1GJf~ExsOKQRXUgads=srAk=PTYx3G0`h);BHBpVyzv}uE7s1_c~xX+ z4fCBUWOX!h9v6=l73sD?PGePq)+<dECub+hQv8ODpLCq(`=X1SrM&iblo)=hs?hHz za;XqK%?Ud4-}tWKlfzZ}%hy`ja9g~dB!q;T+VI9Y8@A1TcP3Kt&@4%2FQ*ZIfg{@S z@!0@tQRS#?I3=%E8`Em#R$;d48LW>smqtJ){BFKLB7n3~LC5Ewwg#zRq_7C_SVnjf zfY59g=#oU+b7QGH^MwB8U{of!)rdY_XO&5N`1~Im8%sNsG2*DnHBYlmQ8t^d&EJN( zHm9k;uDR{eFEC9PXD!G5<WhA?YmWWY>3y@0rvi_RB~a0ApQeVFb|I@Mn4exG{xsD) zyW{1Xz{eLFPSKERg<lr5IsJ7_GMHbM$X|mW46fy~qFTDh3IHr}hH<ai?;s9CUH4lG zYo#)=XZKszDs_mli&hX@68h_rPnkXpwNJ|cP5+DTP(jheR=y|yE1ESji19#lLSIV) zzfJ-Xuk9OJ?eCjC-pjOEtqw=aO+po#<xy>}B<G(7Skqg7gK}%oPWLTtDcwVZFcvdS z$3`E9yydQTK&s(r2h$BYQP*kc;Ac+kYW?OfQpaUgj&3Xk3A75|AL@&>{S^r<nnL;3 z{Z^PEzj<sm2dmO&vr9DbzQyT&-O_egSs2&OY)et6tN|O&UTzOI`PMF;LEOo<ZD-y6 zXD9oz8rs=}UH4dQA?2m*L#<f?t{G<wYI=Hy&#sdqkr?ZNlNG6H{Mf`Y39IeUBs6hn zy;LF3xiinq7VF}*lux8rF&<5pN_$cRt!&RXv$2#MVWx?upgVK6_G57sj(np)K>xi# zt8BZ?^U18rY6@Qs33*@#%0M)1zFGtnk#;5$-l<(sw7pI!WXYYu>%VFPii^Y4tk%|m z3_k^RsK|1jV<liLw+u3RWcf$II+Y#=c$duhAM7_OR&fO3N)|@MoafzdpM*h_xGnkq zPq(hVus#oV4ruJSJ7*0VQs)bik-vN1?A!<y!8X03W?f~@Up`}@)!zgA&>ikJ{NF9> z0Z6WUWAm3MeSiuPx#y1hU8W-@6~y!KHv`=%8mDU*Dmbh)laBPD9gX6G4v*%6DJ$Af zR^m{irp8fu=Sapgj#D{3j{==qD>p608Z@{*h@e<LxgO&#Ew$Bp3(whDHEwxBZneW( z;!eo@s4*b0shu=>)T$;NgDFv-;D_y&N3AFA4#WOS&Y^P<+}LLIsU2j|9P6F*vXM%# z<!f~|5Th2;y3><yIEiX4Hh<}vnvHf%^YzXDUKr%BQ2`jkJno-CGz;4OR?LNA*a?2> zkCNUg$6|Vs?&LM!Ch7$)pL0^z9>@Jn>3${EI{8M`;EY(^pMRnQL7|$I&aL`Uwq`s4 zR8ZJ^k^O`3ZQ8{nva97j<h<fPLGMrJ<B+0_OPrpsH=L#MlMb~f%3%R`rr4mfwYJ~R z)g;dOL>M{mHugHRn_V5wEysL|YihVSKv{yqKYG|VPI|3^VD77>N}*J>5^f5_`J;(L z6dXTB%ri?v9TzwB`yV548N^5$-<k!ko^v;iQOZfal{*j6!+NWgMGrCWi(m}oo#IF| zToFk=Z<(4e?`C>#KNA*4;ixBXuxg)z&hG!bKZ3ndS#hs?ve378JHaBvku%Nfoc655 zlRC+!JzMxoX|ZZ5^<du>*4(6XP!mAEOs(?Lcx&SD(2B|+eUQNq&cO?iB&o=9%#ZN@ z%qUK1B5&%|Sz1%)gcGn{w9fu{P^Yj$$ergpT(`l_*R_-v@~aKKebQ61nWWr(wJiX^ zXRD^%Cm=_+kO6zCk4(4~*zFjDEtg4=DLz%^cP=rKCr(*diJBORG@hhw*dU}Hl$hCP z-BD;!y+KI3Ss&0@BSq!Ej;A4X;b8~k*#y`AaS{EgNC?~U2^~Gl&C0ts6u+uPY9OZu zn+yq-&Fj}YQqbu}d(l$Y`oS`VGS_<c3yR-0PPFLcMgg*D06OWSlYYb}1|Ep)-fgJr zh~&k}A0!CqH#s1AFFKNWjJyRC@sQTZ&@AX6I;=$oS&7~U3wLdzUT~NvR9K13F{U>Z z!|X6OvXQ^uwNxz0fRi-Udb;NU6zd(Pls`%c3&I5LWQ;bo(5qk^CDUTcKY{{dmIu>2 z`aJa82iosUxdsAAMEz)zl939q#}u=^v`^7q#_yPP@yTsDExphA_pjIM6#7ljD8;`c z42&%#V|u)p2&i(7-ZwkP*IGvg;Lu0S)_D~i?U%2=WZcozj}WvYe$98sy{C&pl`q~` z=RWpJLBNRUA6tUFbamZqd5gbUxMJ&R#4oYYIsU%nBw?OoSw<hk?7=i1NdyUY@PHF+ z!S?Ho-Gu~4hftig3}^dDL~am=(C7LEuXpCS=&S2VZ$XR)1yPhPy+s6+&ZN3e#<hO% zN{k=VQU=!qAz^&e<1wgP7$dq`Dl|OJD1h!FS<ptS7n8!@`b5l^uCf&Xo??6q6~!TJ zfnw%k1P}1YrZiSFFx+nb&$)`JAB@-LmqQF<#{&)$<aS2$cYU=a$v%UZS8!eaVM{;7 zOs)CW9tXXFQo(EgOkOg;z~nwRsJDt}Kfn=cWY{DH9I6NP8=uA!U!lYy)?W$bf16(v zxAnplz}v?$(kwofIf=tvt*E#yL0eBN8q3e)AJ*VH#*>#{Et}FSR!(csRO|(8s<G%H zKDM<;_~)_r$Gfx+HTgyBJcOR;*kZfiO41DRLqazi3~|m3ZZlUFluz}6O_>A$h_Z3? z{c&->5uC)BoRE0L{xv&O6f>7^M?qQ$VT<3^%NS2MkZap^oGjC7H@CFvQDuFd(D~$o zr<6c*V16l#{Vkw$&VsA7^j?z;scdAimF;7@H($>R`8H^(Z_@`pFMF41$u4i+FabFO zIo)_Zx%u09WeV&vob8pw2;p-4fzXXM<(jx&`kDKo9s)gstXFU4{N08PKFp|ubNeuD zgH*Tt<pg~nOGIU!U?zs2i0~tXnhhK8)A)^i{-lD({MItOV=7H^2a+eZ#A1${`eAu; zd-@~(OmeFZ8O}3wZ1nwrJh=gTi&(trTJpqW@h1_Gd5miok>2RU@EPa}8)Wzd5aSZP z(_}fZl2zGCb(3`R6jzrJ75Uc~ys^*S7jV8}21!>A$Yj^G!@0^Dd$u%2AuSvoW0!g8 zFyy&+9G$Ou_^AJU;s+C8&TXlwL9@terNi<3v6Y~h5Z+DgkY||KXNrxlFhd8UC5uSv zch3~Ti$3Oe936<BDa{RV_++zMly219O3cNf(05uOHz1OH(#s>~N3&G;%+Nj7w8S*H zFunov05Ax5!kpb97RpS``{o1Q+oBV#Y&Sb2iiW``j_qjdONDLdbn6*<?D?@~15xw9 z;m&PFxmCuc$TjzTFc{nfMhr`M5#iZqx7sFNYvaYF0L5Ip)Xy^%GwUUt?IY^!2BbeT zGk{P`k3mzjhS+zCx0qTV*|uX?D?C(OGeG|x<KC7Nfune#LK<A!F<a8JjS5v9i3Pr~ z7Ym)`>CB+*dW+F&=(ul1CmalSs9P54cS!8YF%r8Kz-A)PJT^CV3-=X;aG#9U-UuuK zVg~M@J0NK{i|e-A>A~Dq_l9=Wn;XGKjIhJ?L<CzWqctZfEd^3513GMISLC@~hO`V~ zaGma5E1oSOVmX6DjkN!?r0wo^cpn>%XCECQeym3e*!f|s)Ad?8_z_zvIK0;4Wr4up zc0Vi-ymFA-F7lA8J^(ZF>{!Yf-2ShuY5ln>Vu5I~(1G<P8G<8)H{$Nsb4-8uzU!C& zKUEFIPa2h1axWjf-Z;E-Fai<Q!S-3Pu0rb{3iV=eDqe`{>~~Vaj`wQ}%-&d?Eci=e zUgN@T4g1wVYiw@A&z9>r#9Q=z!5e6?{LOo^eJX8T)2>WFcAz62bzPfzXA^l9rxwNz zLE;o`X4;f!C0;|bO1NK|HLvIQer~?}WAT69k=Z5$YtDm<r<NdoQXST4+`JlN*BBVq ze6TYXD5Rr9No+L*={P4Le30935rzda#es~>z6j5E&Tcp>dvy2RG@#LX<R70)(N~8) zOEYkqnfhuv+_))nQL8Hw`VQGdROWkDHJL`3?Q(xf`Q3^P@c72fyH&iDfp{zIj3V%+ zS@2iKU^Xmk^Q_g>o+X~}DTY%H6nhR70H<TMX(ZGTCs6bsNU`tgcl=!>0N3T1AU49) z%0c?saSA<h_GjnWw`D2B7<Sgp=xcf`=-lPdBwE8KYTjXY7o`yJMLYSv`GT@_{_*1y z@bP-uZ!i7M;(;W2QsZH@f&TjIRNp~;OS+$%cq;7YAK^K!>!sg}Tq=eL+u{Sd<3%ZY z??2WmxA#J!=<ioDv#zGITQmmY?2C|_IWj;tpQ(h~cBg&hsX)4Sr}sZ%gM5X(lr+E< zg|=QoTJhQFbXE&;Zp~egKe<Q#Xn^CO)YtmlurMDgip+bL+D_h~^{VT=pWcRBXKA5J z&P%0ycR9$CmY+7aG8C(LES7eci$?3PR1N77!P<a^<dO}TwfUSndIBK3$-K!6t^vG$ zz3^D7(jKTc88(SH!)JOa+-P@>8JUzz*85^_Xh19dx%a4mk&G!&b3lO5*wupbz?hzP zJIsI3Pfy~V7vyGt23*B)`5AO#EZpWyt^R`x*d=<P)Tv#&KABb#)*7&vfwB`>cokUl z5V-jKiOQINjn7x5FPr!b-iz4uv*-T`D7calVSW$q3JCdgE8CaQg~oy&5;}Kig*y>A z;AP(XKQSH}`RaE~=&=tddwf`Fkox7MW$F~;Z(dsrQc`J)w7!*`u`kGvzmLcYA5;|k zAmO+4SL{?`D{JFoNz8{e9m13DSSh!1dK|w|=6aesW#JfHBk-1N)^vfKUCY%V;1G#) zHMr&vCarkP@)0x^+3Zq|KE|kp%qf<9(}8v0<_r;a(gYVYsOb+o-Jas8fO=2rylOo> zLWZ?jf&OA;7QF&&iI+5&zAamPP+z_Lz|iE@(k0H%@tk&Uz3P46;yX(X3({!*OT$vA zHbC5Ji^^@7tgk|ezeDKDt?4NY57cKnVQ8T9O<hva)tEMT3hLG#c%z>q`LE^Ce%ii1 z^@$QS-S->Idy7vG>AdR=UoU%0ecjr1jnREQQzu3{_Zd4^XDQ$DmfxouT%)Nt{8<2z z@4JZw*W?NOT(HXamaV_}ErrD-TD<a*j!LcAuXT{%O%vBCTy#29oC*Cgp=*%tzU32j zEWwBMXRP-WK~oZ7bqu^G$eyBIptMBy&Lh-FaOH(1k5;6CgqnP*dHFwunNcEAd`h^S zU0eWSpMSt0D@f-7uFup{a0BUfoFO%Ug(hcz3jgPOl*(~Lrg@Z3!;UNtmZg?{se;rS zG^cxS_`=^-j?YTi%udcuuX<vLA7Gmd<n;aOuM)FKXxDjlSh<>iC`z^0&+F}aPS~y4 zkL{MZuA4nVc8aHgA%6gJJ51=eT5ddacq0CCp|!@gkE!LODz0N!qhZGi+F8YZgyMd# zb>618E}^n(?@HMlH~tQYMMU)NB%w;KcS!uIuSdQ@utWK^+xR$);uI0cV^-NtPEB;U z-6}^G*}=G=F`l;44z!b8Fnf=eCP!f65WadXi8J1)4hA3}?txWFi{)RSfUymKLV#om z^&1EFSXW?Pod0z_`tOERsPID^LhW+e%N8mX<{qc(K1@EIQXKc#zBs33&&{}X%M%($ z6KFkoDm?3Rzt80M{`t(YNp797Tp+gGQ8(N@1!i!urTx91c$8}5)Ft48wuU$gx<pR8 z3Qzwe;5DodG=k`1ndtOTrD_0ANzO}u7Y>aC4|`L)ks9*!VmI{t8ZFvhNil#HlHY}Y zsX<eE3KB*Su&E5VV8J+#KIU!cLN=jFSR}tCHj#g9r)w{cS##gK%ROl(bBJ6KPwcbL z_Wr_(v4o?4fURT4S)0{6Y*y#{)%KQPUX8^hivQy9pKMFImGb(ZD&wO6&Jsh%8}~4L zEi{&>#mjT4(nH7JYmsSUFzaAL9A9jR^Oo(|3FE$F%ra}pz$Z_9CWPUi458yH+sLYE z_uX`+(CY1XV@Rf-;qRIyuuR0ygcf=Z+@;1_!(e1O7nQb>CssFmL)V3^=I;Y)zz3kt zxn$b)=Nc4Bw_%t`O}wsCdeK&z9&{!LvmnkXhv(r>W^x8h6pJr9XQtafU->CsWIT=F zq#PKmtD52ZXj%pifX4xC!Fwp~$}TEs#MfqhYZx1gCiBDYkt)j^mhCT5@sr{Yc1e?? zY3kyLBj-|*EMp0PJkS`Rc<THaBx#+{ITYJk%h{8NEWc$r-6%!xmMs>zenc-G3ZrZ* z^<QDdla9I<pyKA9)8LDBN5pFcBF&HcQ1kXl9SHi}|LNDQdZiV`*H9!n0)2SCHo>Bj z@1q}<uxw-B1yy<prucF=10i7eD<DRVcxnWO1tKtV%$1#m=rO8KwUu3J{co4>v6wuv zJKH^k7=PuQd}GNooQ*G(sc!1S-aVSH)W+8X?o};eQ7wDP?*#;4il^!pW(nall8r(+ zj*VNLx@T`$Aigsyeec_!xMSbiC9kjg&X!L8x&7k<B?30KW^r#tRDNCy!UmahNiW9T zk+n_Gp`i6T3`C`uET39GdSlD32@WFE3bqkd3{^}E;!bJc>@Cv2>vnSPx+OhL^U(9F zm4JI}*RN24W6gI<eqoF@7fV_(0aB@3p1~_1pDpLH2|KO@&u<s4O~?%N=^S7)t2ZFE zHx+isEN$GKg-%&aXvI+3RX=$}Lw9G;e5t|D45l$y-K#GcEh?s0sN21_@UF1Ho`1D3 zk<^kyW>o(d=cRZ}8K)Q^vSTvj<-_)F;xSwLikmU6&`x;`yW@t!vN@;X`p~slrfcwO z`y_@7Sp>^Ax(cQY;C`$x*V1-Czm$18<Zs>iQ8Rj$Nh&b1+qd?ooxcIbo#ZPCfRB{( z#Zx+d$Od~~(gloNHqDFa6tA{^_Cf0&ML!gLfX@8XiEEPNt+eAb=-LQQc4UL}YZ7YY zf6e}NA-5ScYoK!2MC3O^;4WtU9W;38wZF&nd}(T)cinCRao(P>5zz@T{5|JW?k1WZ zivdzuuDl-Epf0()?Vslgbr*1bZA_!E7lZ(i59=SGW2>&RiHz-xqEp-b*DX^WM=n{S z&Jwi-C8l_|%;~S`W7qypRHwSF)d>OO#V?Z@ouL8@3g`$*?HdGIdMtRYAYvz-Zg=hG z-1~wcZO>qhJq&dN%QRfV4?~utT`29BcXXR>;1A_(HGs~@{9dN5WJ-&w0J=o>CB<w& z>!!12ZDOzHpw}}DBH^`PY_ARO>F1;Xgy5EKaPx^i*3@f}L!#>Ky2DIjfTsq$IH<VF zv8>0F$F3Z%FI}yoWR8iGxXv$j1p3<Wl`Vt`FfT4c0@?m#@VEZ?8MDX-%f83Fg#`lI zAODunkKOei(R66B^&v8kwd-rxj2eP9@q`TL>ysY3p<w*%87*(LA_Un%&uRNn<leEf z43g1M!ePrdW)af&xL7;-fhFDb4bDD9A`<<<Svgx~w*xKfELLsfthdzh$?UI?#l?E+ zXDHFp(%T#xFd1_y|1I6VYK5UCLmftYbLhXGwl8ar`{lPo$$ZtbU1NUH`a9i?U?Rc) z4LCpf$(WDE>z`}gt~LX|MWt)Wc%IKclKZnOKQz3~K=glBT6*Szri8ahg6rEm%PB00 zDDay0yt`y-9U_0bDHaS%mRLjhUbOGQx?gnD`?k`%Gf>s2%bI$Liy=9Au6f#>3J!ps zWElcL0gvOmKh!-6Y$gg5@>UC2jZ>%lQ>svCq$DZ3*RlHD>?ub*h{|FlLcVvsv8l7) zmLmDoRdVce!y0mq&>(YJUf_W@p9vf`-l@}@PaJt|xRMqb`flA#$DglV1yBm_ka3^$ zpg1FvOJmiU*SY6f5aZ}^z-&Hm3BmF9Z;}1{uGOEbT322o&6BQ^68)dM4IDdvB2ei& z{)u-DlZo^gy!M9s3o<XyJ{>k_B%&wx&-Vx@cKWzH#{ssbp3m~}Vl$My@Z8n^;^pc5 zh%rNW-LSUlW>Sg)0OIyIyOAlS2j%%axac-Ibv2C%oqz1FS_(XHdAvDP%NO@9Lkb+q z5fRcfBnN<9`dx6DwdaVoGt_>)A5clN)*987W7c7j*c(f)_DLkX9|5YK6)0lSDx`e9 z+F`tKf#Xlt01PUPPz1dm4@I>fmZ8V0Jz;D*Rk~Q^>VifR!*f8Vg|S0zaPW|qt1^@F z$Nx}vU>gp-%GOvq7s#+ve`f<fnOUdD_x#g5v^O+1IO5^gLbbu>etd6rU4mYd&!@-R z)6yl!70^<-{aBi_Dn_Au_C>X3-J6~BL<H8fAOanoq@JqKQYdw<V;%BmyKAS>lez7( zQps~SQisndu>Z^Mc2v-&hh7lE9y`nK*gs1};{C35lv@S4qrHCJUj1~iF-{!MtfMR< zttX#n%QN_tc*Cwy!d(Ms4+(q;_dBi9>wNPY4SxZ43QnR$O>!!#+{vldu4YoFQ9*|T zUi(z@edvtQF(Uj<UT`fHnLIZr_L3HEt5peVT4CODIj`2O!<Nr#D2eYB(Qfz<lgp17 zmPJ4E@rK9UVX4S1Btfd%Le2fUf4z6tY128W?QUK5mFEwtkEuJuZ<CoVQhNItIJG<x z0Zz^Lx-`}Ho-G+ac+hklGV(w=X*{AWeD^`KMjZgDHiGg+;4&6mJHy-&v(pUmvqbB8 z-~6F><DVEz)FH$ESCE;0+2oPyeNDGoa^TFnp}svqk)>*+W{0&8D(83dUj}NyF;b<< zq?a(y4PBwg(c@tvlF>1~4L>AW-b1x3(JZmRfKFrDD_yQ=axpw5BEI?&=eE0b_`kq3 z!TC!v)^p}2Tal2ze>)$IlIkC-P(&MzVaCa0`lF)COuM2<ox}T8-r4u(t1*h{oO)(7 zW}@dbf&7b?;L05lT5kZu&kdhw)KKjHNV7<gLp^%~7{UD8x*JZs!M%JKgEk`h0`AwG zNFIa;9)S2?k63KnX7?O<O`-q5l<*b|eo^FM4cZor%e277mkqHmf#j%SMjx*Xe}uo2 z{qcX+M+A-@(nlSTBo?smo{7-!bu^$M^KIaj%v$ELp|`~-50&mEYgwkDHig7Yul(^D zLM?TkNh$wIhk(S<p~<h3IkUIBXS0tz|6G&{EQ0@DQfNP>CpGD6b3Zf-_z5NRYB|V! z9z_f6Y$d?I6C!I&NB6GSlWNG-FZkLiUc#h2XaEuaQeNmuH5$o$rUzW@!ip$9ZyHSh zF%-(dIBWS829YtD|FaI-Xt-vla1W_kNJGkQ3pi!#A^@S`$bjIk5UcNUevcZThkCu` zMrJ-_6MN%<Gz}S&Muc_lR=n~)MI<?erK#6>JP>vu&~a#-!O>3sUD;t1$JS`4{)HF( zSl;Ww{tjr@7tx=YQDDn@{=U22lllVEfkW^#8(_EQ^ettsTxtIe!IKO?BkEc$xF}Z? zqYpy<j(?o;%}D!OSR;XHAC51Q_dj;3bo%wr6_&q|(I>kMdx)q^!^cXi{Hg>K%U5Xl zL?7}wCG&2QBxTb%=?HQ^tsm0-l{3aF34s}Y^1c#6lgrr)uQ>Zn&u4mhvVCuF;?E6C zRmpYjU!4$#)XEz^=!Ub@eq;^GH|7s!OINw&)eEOI{&?xRlDSHJ+Wxukp9&L&z2JV} z)VLp&Jj%vFf@6t*&)MI|>^NEjCKjzbi4A(*ytTylm&ap*KGx^W$2TxOcbm7|4(U3O zaDJhKHdf^^sVc&P+rWK~R#9>Y^z<&!%{QT018c2{?dmbHDY#J1<)t^E#ug>(n@-Nx z0mYa*`C0nr!S`G--`Xe|-w8i?we7FNE3oS=V;_J1h@cL+oAYNFX2V_H=kWHnk9wd) zo*hIwhDwsyE%UPbK$&CyYfL!E^nj?eY^|IZqV8@9{^9?^n@^Eh5$O`wX-t%vX4nc6 zmLwIvXT1qLl#1<qd3I$?5~9Ur(!>Nps;(9X!$@XYdmV}E&7JXo3ZqBmyNt})+#`Gt zrq3U`yzbU0L7vxm)i*)y7J;m41wrg{E!)%iW>#Te8^6Dh0HwX-An@IvkDDdsNunG6 zPfgG%0jBQm8=bo3i{rGqG_k;+&_Aln&&`ff3sq<579*%g|LJL*tRM%@z_(+?`er+Q z<+SOsM42?JOe3br%zV-aPrqYCuV*C!aIe1n)|xL<lR$I=lv9&G6L-NkWg2Z}iKu0s z&7tv8=_+JZAXLCim-8$gt$DyfpW@N(rsHS|>&3|5R1s8(8G2s1TT0U+m`Tg30cEPh z#UQyW6!_H$?Un{(zf?Ihrnc*Gz$WV^K6K`Exw$*<TWvXeKfh?M!)j|d1gZ1&XUK?X z^u#FeU@c!_szA!Mg;#^p^rZdV|KEUk@G1uUPP9VD6ZuOCm?V0N$8*9?vs`^?eJ3S$ z6k+kn))oNQ@Kwc=SHA9g*rQ-gS|Q&Na#wx7ON9+)-t;-^cv$ESJT!X;oZVPuE+Ltp z4mg)1_dXr=?f>;VGAjhRB{$$1A&Q=eK0<^s0-7wGqIK1(+QIy2<`e6r&yw*Axuv#K z6dAz*b3U5S_ZMQtvlvU8E?+nLqFCSqTYMVeJ3n<lnr=va+4{Sm>mQLL(k{gMG!NPM zesjQaFtdx|cikk>$4hGZ<iojb>YK#={rUNtp)Ac)Swc!zYeDCcEa{G|Emn~;OG%)j z5Vo#SgLOGfpZiVEP|!Wq^?bcE)AZjx@d(u4@Rr`VAgy>HT$crMdr21!O`{j|oOgYH zy0T3dkTEHA_)oBO_QMO<>E=MKL&Pg=c0aG97CqoeX|>B$2JQIvI(*WqrW9IO+3tJI z7QlE__)=hXja98`|9$)bfm&R`{pm?q{%c+QuO%G(j=@bN7@w!6l%_{(=%<3}8D?CA zxI>ZRIZOfqEUnqP+8kY0r<8b6)ISj4!N16A#{K`=`^u;~k}cdA0|Y{XLm(s&oB#oW zy9al-;O-nWKnM=O-QD5f?(XjH?s9N>&D=XPcg^II``+)DA7?e)D_zyQwtU;FoQSX^ zT)EAbuR)OAWvz}t%J<Zy>cSsNY6R4A)eRERap%pt<v-F;qgvgL#nW5P1hA<mp_?BD zvJYu@yXLxg&jk=Hv1a(+>W=-f7XS=5k-u{LW(a*CuYv&zNzkB(mRCPs7Ze^3M}^fQ znhz;r&!{93o8?`EX6qATy?#_}^+5Q#E>aR+A7T@e2$3l}U$3D2FHFXum7!iz9}dEC zqLm?X$N{DMRsx+Ye1CkEx29*lVK<)L`P;Zmb@Iz^)H<e3;%@Ya_C{($jvUoys(dZ4 zSL={7{O38qEcz$gi%xqaCr57xo~yWcaajjV*vTDIdY8^@BGa3Tzz*Zxu2P1w&5dac z?h57t$CH_Rh2hzr=@rT*EQ5>RBxAMF@h(K^CJdvIy<xU)cscJJqZir1J&H^ux-?T+ z+!dWtfs}DuO=*Dtn%LX+y@r70N{7Tur2{mh<qAjL*Naf7f-~o4J4*u#v5wb8vRRU8 zffR9PYKh{9bD^li=J;m<U>@*{;)ajljD$&#+0KNya+Q^YQs!!37?$1fnnXf<pPHAK zLBB`qtb<JurKu|I*x{;2=H-09J&^z7O7lv)I)(C{wl!Wv3nLi1nURvV^py#=u!CI< zmsDCH2;IOLwJ*%8|9atrMzvap21oNgu+2K&Gs)RVRm_}Kt<Yeq{_dO8tT%0Xd4Bx_ zm`E)*aJ;$(O)GAq#?;$gZ)+qA5)7m>+lTv44)tzcPqRkd9x<`n9ifOOu=xQs4I7j% zcp!D!Z7g2PeT7cq<~*eYA-19dVYpkAAMK`I-p!x!xP$)6sl(mp)Vsr0?EcNQ4NvjR z_Ep``oKzwluH5q?nds!Jk5S6wg(Z+*otZA-2n>~E)!(<sO4#VY!3J^!zh5A=BB(@O z@DO+xg!rm(B4mT^WcDm+sZ>A0XG!r;T{Ok_CBN5Ylip1LR?^%Z9{D!Tn&nz$&>un) z_^lj}5<4NEn?Lc%r^n{{c47)%Y=gzGd?NZ%XIUvE!I=D{^l8BwSf*kx?VmZhySuA5 zd-%aj)xSk16dp23#8(|l5JF>W#kG4Tet;sdkVM3hw4GGn!qNyW%rW!WcY**+)>^a= zG%UZOZ%pC4%eGk(si}poS$(D^x}?qxgeohPJ3}L$5&n_#06cw{&reXQ@Dx7s|GNMI ze*x;Tw=3b{0884L^oN4SuCtnlc3W4Oqu##h9)8jC8RUn&Yu8jXoJ+(CA=KPY@B@iq z#5V*{B3xo@y<loaoF9dgA7htWb}+jhF8SWzBp0t{{i!T~i<WR806l@E>HJ4ASqtpv z4|SlNJ`J@7)L3>b4|q(eM6D=cy%}ms!HE8AuVL@Y69T8eug5b)Q7^kfN&J{V2HTN% z5&>WCmqwDnY@va(CyE&zlSZfITf`O7=<q_Fz`Ma$4E86)bS5)yj+|HKi%n2kpA&Eh z1X1{#Jzhxvpq%F^7Bg}C3oU*IfF(f7`o%sOfj<!BpG)=6izR_?TyiXrEg1fYQU1Bm z|Ga2$<_5x-&dqT-!T)^tk2@_P97V@+dps?c2na-f1!DeV!TxsB1zHq%{ZsxvsQ+c+ zNZ$eKyCrro{_~suc?XB#UT&}%(eeK_=Fk583<K~H(s#V|f7J*+{A;^#Z#2wSlmq`` z3H}@1-{Iaf7>p0>$Mz#_=VUwIG1!m8&5W(JN@p{oJw$0QgD>zcb98x!@LmCi1#uBk zG)6R>1@o)qIm2k-A9Xc<DucgWfPslrB3%S@nbscqAXO<!>>M@R?e#K8My?x{hp$Oh zCz?%5nm_^!TBAhT&G*Mtw8+DrZXW3fQ)8f&p1;tgOE8-<b$?7NvF)oP3i`_|{wK@- zb^VPDpeUH<Hl+wgg%I-gfYb+_Qs2k>)>g~>6+-WvD|Xm%@=)RwY@J%++GS2Ryy2YG z9roabj^G9<SCUY1MadQR+Q^%n<G3-_0Blst?XO>*RT#}+r`eRACWLkl+A4dVi>{kr zw>5UZDmwda!n|+u+y*?$cM)NjeERXZ3XV%*@Ph<zz~e~j<~p3$+2M-V!6#9$xp1yW zRAN*0YswQ$zW713&)g9e=ES!V)SWnh>TTca3upGF%>>1^21BuT7jg1cf2_QscWYRx zliZx|x)IgO`Hy-ePl(PXHheHq9sVN2Ke!%vM10RaoyLHo?JR4_&avy3^`5Kp1q8<d zS%uXeiiXsGBu1~g0{v)=GWH8r@<7-ZVn)OV#jnBf9U#(d9Dd!Q@op3}Vq8i#?kY7d z$Yib(OPxnLu<cY&7-|<Yt>4?+NE1tH3%Z_M&=@S@*9!Gy2s!k<-&q2&?lt^)w3AQ; zR|&XwegQEIy-_*#PN|<GB*(oSY72zu1L@>`(;|;+&PpJ0+o}E*vkt};DYNR3WsAtN zW@;NtCOZ*_p?DT6u@1t~w@l?Pv#1QbDtz)eoF$5OKQA!mRfLzjVmQyy2ubec9X0YQ z$YOG&%_dy4e<Ls2*>kkNvV;$<m33h<kI3wXhZtb!cgFGX9WvzgOF=Y6AzhuN^%e)g z;A#vrgqZmorS<6#_FY+OYr&K1d%lK5+=%uY!8$}ntZ7)f;Kid`IG^g5M`PqGS#TPL zgP`MUQ0y7AUtoi!L7moRe5X|PJ4v0-tDo)~qaG6v<hoVm4>64vKP)|gC9r^C;*V1@ zB?*;bsBMG24q##@ZQ(gXZp=AYPtb7}CPPe>be+%E-h9x%VeTUtY>+ajO(Z&^CpDnG znYE<z|1fD9meMt`%xipQL~i}H7$?d{t1*OGm5(~%bCN)S9M^PD7ecw4%v`ST)}7&s zxuU5%h4*gh%`xr4oqq8&%hFQ*VE%3pov!_?HRA@J&Ny~nWvD~lYe6;{ScR{})qd6U zs8lLM;}G7BD9I&$l{ax@{NApm>*L1YW>Do8Gelx{_BYw-Jqe{k{SJ#9Y?<^udUEko z_pPdnmh3Mdc0Z}CS3|>dv~elScwiz5JsZq?#yH##l+r+lHB?=;x|?iw+>BaT=xXJM zwj0ER-eJAD%F!x+P7DDuz*$lqH@C(1G=PbGfQ*6C_sR`lj+8K|+lZ!YOohH*RjO&s zWamx2N_#2w@k*A=qup>;O`nf@&}qp#mNG%Lf~sz0NgLPxQd5dKtvy7gr6HJRwu@}W zjqg{Ha}W#-i4idb*_B$Y2Knbz!#+@vd}4S;lXIQCJx%VY==}mJ?lS)7>=_!JO^d6& zg_5%tMO1IrEJ_V(mF&soQ%`iLO?5nzm2A~V^nJ>$;Ki8I4P5xCY)7vJLNtM6EYWW; z{DhsiT_;&Sc)NnQyo#PO(fUFgDdppxAeDN`arLVL=fE@`I;+W};E=FrpvZ?^K35ZS z1)TOFeken7OlG~%W(gs5R|%Dt-EPLJ-Th65xkazKN*&Ty0pAqK%nJ$4oB*vOdI}Hh zus0f#EwwPhl<Zszt}48KFJC7eDS_fHeFB-N`p2uljU8pgqt(Gu)g-oLR#5)4{x3{# z(mYp9l~H)7LYr!pY!FYbM7?AZVJc@sBctgexI01_G@BanE9JUb)ZP#zeDEx(q=_`Z zdDv_QV*nc4d*wSp>HtA<b7!e1;>on=v;KL*xFnWq${S(r&<#~YM$)yit+cxeBee~S z-j`S@Ls+0(y3UyzGj3l_iAqNrJcUJB()5WRL~(6ZXyGL>*}PPU@vndAZI2l7ARtEa z!1$5^*+y^iV_i>udmpsosw8n=q%kWw1m&jOtrV-uPB(wzxysl+&-oYQPx@W-A2WQ? z4H%s_JKj|w5w!7<U6<F=aEMdRsI%OqOAo&k@U?#7YyyXf%9^%1tGl={^i(jC)MxD2 zfeD0YzR?!7-679VELBS~!CM3<YMN1;0OtDHZ+Qt|&daZugPQ$hqG(c0mZO%(kP2PV z8h0S?;t<<B^K?)F$Pp5seT#Ko9XCvA<L^>gyTgL^Nu<jd!yw=C`J!~@DLcl5ZXMU! zh*@1AR!gCkD}Z+!wkHL3v4ws}j1uj{@-PCzXZzg-(0U7O9JPTKA;WU!X7-Oxf6S(n z8}?+O>Mz61$D@LNB(G$J#29Q7Kj~j-n&0%iE3MP>c>dHt(RfZv1IXD%V|mFqu5IeK zf|9*H2k)S<`?Z(w!>(#jWUu%QXe*PUZA+sCh;6OVg%zHXPS(~~s82NJsc2Y3_0N0W zgxD}tTB4LYXong$CktXD=44i+0@do{r9XT*&FhJqf-?-sG-X*>p*_)ehBXqroC*aB z5vy8AP3$KT?JvumPpy5LOHaHvnJ8k3T!!o30`)ZJjl^J#)f$IAM^rWv#~rB#c?SW9 zeAj&DQUOk7#rX59cc)_0t1C`Y&#EkLLc`<&o_}6P3h6UOl6}}<;y=HqR;%`-WaO$E zkX*&(1r!5=Lpj@fb8WeFQ(Emj=`pf#qf-pgRp}W5@Afb$Z>Bkxg8;t)5akYq6XmTd z+URRPlMEhrANzXi$GQERjh}-k4CGvZn$7e8;rKjdidv7G@zInB2u@LWp9{rZot~*h zx7u@-0B%z7WW4z_xlrQe`>Di};jr0Ddnv?(ZLKx*LLK``#Hmq@y#AQvriOOmkZFk- zVekek|2Vpg35IV8xqIyB(R-=FTq?znt$Z87P(L7%`%<Wb2NBlxBGr$^oGxfOZsZ@U z>~BT@O>Z9b;do{>2{?P3Q$C+bC{PHz2eg+8HlIhR0m_NH07<R2bbZw|!phJaygFzb zTYbJs9m@OPp)vqlU3fSE<c?PXQv@Z(6+thn3^W-+p&(P{*p6Fth&L1~F<r@<ua{@< zvnU_1Yvzyb?PVkAKl0W^mGSWd;yp%Arch7#ZgVuPFwx!HmiT$fnC45o3`kT=d2)56 zs`UojN-fXh%zpG!^^{I&DlmYK-!2sPN(=U6KP|S_Jfl<+Mn$^MV1uZ!CfG;c8mg)0 zk}uisInWBqeH&71X{Dv4u(Hr3ffQNOqKXMApIxMymH7l)3lySO`QKE&?Y8e3)AaM@ zx_e8n-tC!Vg<S|HJ&iV}$z-m)KH}S;-lJ6Uu>W8^Py11@{0H^I)FBzeCx-wF-HK)( zb^fI8_kywy2_Q!@K1UK+kTRNFQnwNr#novu1&NJ=^G;*DTDjsF$q+?hR0}9c{)k7H z#2sc~;>eW&?Bq|{*d*WDfekhXr}m{zJXg`crOi0SV6B<<j|gHBu@EL(HnSVo@3riZ zAjprJTBagQBEwT|#qQqnVjMd_N3Gt<62w{e1|NA?JhjskeRnEyVyUUX*J?>RGDI&Z z=Q7w!W_(yHiZs0)5S;?4%Z3MgZtc_l&=;6>(m!LwmON`GL9O47o!2+~;cp2k^s!vU zZI#_X3NlxWTAUgZE|xRz)yc8d(;#2<QxXP>m9)kBS_-wHC5m*RKD{2DYX+y}S6SZB z`BO{=B+lP}Y8Zx<a^H2=%0F$b3gwnQ+z?j#g?&JRzPAs{O!8<dg{4bJ6^;b*akCa& ztR3@NZ`Y=;KL5a<#|aBmQqUtf7SJ)Z=<=1f(it|-{i*{-BTp{2@Xi|`fFsvqf?Y3* z=NZL?gq?>!SGp~itj5@>DNGn<V?q5ffU5E#pApoyG!$=nZy%*!OScbyG688^Se@iQ zWk}SZ_YTwuuBao+Ysr%oEa{a0<eTMxN98{*z!Sa7`bJi&_OyO2%usN=R~4bk%WwZf zbLXgMsbPJ_ch%#KwvT085xK>?#ibL6z4pdX=M%ajkkar=Rp?NxM&(TcENyBN*c9JY zf-|2xv6#|t)AmmN#Op=$kyjTDKU83%cT7#c=gMTuX|I5@a?w(p1Q`6(T^@8X-kHBj z90+3oyP^SGptPb6pPH&5a39pv!eCd6z_F*-x6mE&Nl#tu{$_Mz<%h<NKNpmNlBpqQ zY<o<(B1u)tl<U+dg<j6IY%j)>8oDWEP;L&YH})>N$*zQe@;-vMyV%rTfa(o5r*gaR z;FWWE*}NM^?Uvzic(Jb<a@r}#$chVP;VJaVMv|X(u_!@7MTdP86SNt3T3lR=WZ0AA z;o*4)+WNF{vtub=Z$f?wwKph5Z#eiGlRCA%h7my`8)*B{8!Ym3R3HQDTuTxUpBV?O z`o-`YK7JWRgB74Dk<(eVDzGZ~(X!LXq_*WbP%Kecbvr3#nqwH&l^0;ht7itIBYVLs z=i4oW*zIFY?3W(GTx|^^i@73aiU@|*efFi)qLnzSJ>EsNa_v)7hJyIs9q@H2=g8WD zq?WIxdfz|j^l%`(|6Pa+fCg)h+{!&&ru>=FT{&4*7vyUzqYPcKy1WQvIg{!7bN)*D z+|=A`3q_?0n{A3UT8w}|M|AO2Kgwv4ZG+ND8jTzLy%l_KUvBfTNER6j2lVoqTt<?4 zdQnKND>Saisg)=w{yAY=gqM~Gp%qWvZ@e>A?l_VfLNcBclIk2HBj;+Gt9VrIqhcDt zyH~wp-U<Xk<xc8e?!!i_2;yrfj|FCyT2ZEV=4u@>W%6p`X;i9C<g3lG>MpM}uc;h7 zz*l?i2|>U~UMG8tuWYwQ48JAt-5TuTW(!M?3tT3sI-~eb3lDNv?_)27xkt^*ZQpxV z9dh+v1n1uF!)@geoIHYz>wAx%2I3hDmXmuwqOUx#sj9oYdI9jhbd+Q@#4_)rMru|- zA0%z_J-@?`{NLVBC-amanVby)k%f=teHgn465v|-)3olG!Dv2ZZk$M*#AW|5hr%jw z0s!^NHNpWHn`STPKggO+i%Ihk%IA3E9SsCtcpUBa`q%c9tNo-55mE|#CJ6-GT;_e9 z@{f@+h?Op8DjXqbqPg&6pd%p-eQnb4QPOD|8`HVQ-0YOxNL3P=RIaur1axN+=k1+A z$<J+A^q^qMu|jy9yIt7Mwn%Wo^HL3a0bK<#o@i>pmQ1=57h2VsY3~?j0lc*pX*As> z@L`vWuk1`-dPsu!7@xM;m0+aBnXRO+6&uM+UU{y7anu!oRTP18e#pq(sP=FEcaAWF zmBF8udk5udVDEzydO5kvWC#jlhJ%&gLK$V*n8g&Jev96GCu`9ee3f_<0}`*XWXze1 zXZ%F}D(A9iSf<FNzc$~##HTnQsHWv@jFNL~2qfu8zak;g6yU6GnV?^%QYRphN$Cpt z=I~Q2f4{?=?Ke5JwlaTpL`#~zk7|gd^Ut`{f8GgZ0raoHEmGUvv%R?r*U|p|c0|;x zPFioc%62wWAG|wCpUSeBqtO((P=}U0hL4)%{+rrc%%&R|ZpF&!8&)O0sN{DW{@;6j zm`nNPU?v?N-#Ha<wId>PewK812}lZ`%3+PWT!*29S2TcCN*8G<#M>20+M0%>pd1L# zXZpvxf%EIH;fr;JN4cFa*q$?5uJYyYAw14kz416#Z`sI9_bt3_0vAVS@VpcFci5(# zfse`PMvwM;`Z==-dKUU`Ve^?OnvuNd`McH|<U4Z9Xa4hhEmTZ$AxQg1TzmOin9{OT zLk5}h`g4SZcp-)k8oUJr@%9#_c8~+@T&$A}f0{L>@);ou_7%A$v_I=6e->p4Y-qkO zrfhaF)^yZav}r2k?dgRZFI|<Ys=*9oQzP7cLNOL%N7ZoGE;4bnNNQ|6YMD@UemE4| z<(oBI<z<Uxzk#%uWhop%#yW)Fv9gBLZ!C_NBY$)K1Ut4C3krwQL)Oxv#l!}&p%hup zY`KSarrJ@As^c3x6zbC$=Jp8@499&-B{2=oVSy^C@jOagU(?eK=#~^2o>DSs%Ej=a zF68kD3)Q(6B;WR6Y{7?J=g+^p&ge@L(;h7w(F&XB#@f<=Kc9Iidc*&MGq+EUCwp_1 zZ;Q$};)H9?-d&USmeWRcaQh{;DvBEm=y~$&P{!MnBjtbx?bQO}eP9@|a=?4_lUN?> zcX3pH620KJeHU?K)Apnrw5i=8xP?Yk=6l=<TC>$4x&2)y1@+dm7Ro&~&u-3jbK6F? zoA<}G31g`4)8}nA2L8W_>IU3r3R;@Fu6Vx)dcTd+;4O_j#D88&YF8h=T=O!pf&D4^ z`wbgs!`80+aXug@C9nMp5&8Ts={`=QmmEu}_~drpbfhqp8m-gkYuAk`5GzXF?Qcuv zerJ2Dsyt!-I;%LHH+~8#2+*Yhy2mpl58ImHd%!55N@o)NAPN5+*yTds|5@Pp?~!5` z{QKZ~aE;N-rw2#>H+#EN%sqWr_5SOrKro<y@$Dun^dEE({xw4vEkshpr~k|Fu=uoq z8x}l;y6p6DAmLw1>l2`@Y7qZZf&I7ZVElW<c2s0O{J(r1N|o))huy`0J;fKepY4kF za{B)=TVkt2oWC#6&zA6WFu=0}o!xCB|88pgsp|RTrufDZ>jM$7KOY6+-?MFSgkKEd z&j$V5#1aP}Z|9y~eLr39Hg)nEMqny4b@kt!Zqxq&{Z|_9k170}R1M95TR86g6?L6b z`NsuZM2i9XA!?<GYK6;!wx{@B)^pKq4|li4b9R1n>vc>m(ojsOEfk(LJOwlBcKvq> z)GK*GFFU^m<L(TJV5@*ITBk4Zc%xB7EernqnE!t9(g$EnXkMmhP)oK@Zgq`FNSohL zS<WaW9t)SR{Oz*Mm$Oin&tX)kbMS8rN)zTC5sDQ>csIPob400Mu$z7_-On2WnYz`u zjwlQ*EX~1TNS*4k@|Q*!CN>p^1=U(1WSIXdEdh|F;f4@Ub56*o8n+V_AAjW0jzeh1 zOA1OgN9f$1dCFIl$d|vf&vO=y*jKK1U9_uj-OVX4wUyc4t@<2=i)!t6+<eh+JcjY! z${purYwDJ!+06_nC-2J*SLTrh=-isrFLYB<5z_N_!vAwY8g76b#I{qA-)haAm&%-v zGU6GYnU?m)>oD<B8|%bU<ie%w>#s7Q`zo-NIV*)*<pDF_SMxuNu11{Jf6pZ--mIyh z##S>A)n3(hqtJ)1$MSzq_8svchW);4>t;1VAtkx!s7ryWT&5rX*8+}zFR-v8pKy*_ zSDHQ&M!3s~skZKQ-X2_O=Mac?T7P8@{SG76su%_Y@jGX&8PevSVb7akhh55YZkzAM zP0_zl3ZUHwkAQ&Aqd5T$YwyG|!<x6E#;n@3t5Q_8*~H@>Y1N^;q}sS`JP#VX-}wjj zUNdqH34g0hMyjqUTvI$BQQnC{OSB1^rDx7Q$@eds?S2pJsWG@`WDB%FU^R^`Pp1r7 z%EVscsMui)M~jYuBw$reA0urW2KYQKQ}H%ldM+WEQ@C3~5LNs3uO{^Ws&QVa0qSE( z=%Y)!gN6ErUkAZ-0i240uQqR*lZ*sd7YdLJ#x9k)YS2ryj0@p%_R36XpK=Ij%VBK) z6QML#%61K6Ri6>F`>fQ{0!VxB7z;|(2b5nk1^&DHRe+&MN{_BLqgta>)(}At>E;?f zTx*SiiN*Q0`@U>p>DD*>HE#?mH?R*$bGfE|s&K+k_IMP`m&pEhrfGdyxzIhuv8<bs zdZI(6Jo73F(xmOFtQ;oM@jkWk>O7@YcLU-<a43I-w<z2%lZF6&3hzx{cms~K&2p1j z$F!?>RcLXT%nt|grBR@-YLVRu`kH9RY>UFYf|PWS%z5_v=d}>waz7GUNjPbdI(?7! zx$NZ;cD+8;o?U98@kw`ZHU0k5!qN@QxiJv}1>+Y#fdn#E(t3H3{Gc>j*_?RHUt6uu zdiMdrXuT)BL=^C=8JbsRhtX6Y@ZlYFcU=;EqCh6&3Wi{1RLhk7JE1BgWt^#P;r5H! z+kxdYBR4P^KZPdH%=o)&JeZE(VxJ?Q6MP`B`Cdl&zjDK$I?YTC(9~7=w#efv8RhX! z6xxfc^!8Yi+QRPi+@4!61eNo=Y1_8G?j}J77DCz%1ol!ijCY%o=Z<qjK5~t>)}nt* z-|2s~ooDdWkhI(@EZOg=j!47*BAx%{i!5Q#)s``~3g(YsQk@8a?n}zSCy^w+uLy6b zQ9IlQkdvyWU{uN}JW0mAh{SnXZ;u2xx5=A-@c)XYF3|U2*>yF}R!+*iw(Pn9wpv;_ z|JY@{v{cr+tS)mVpVTRbRdwINY~t#3Jd@oLEA-xvUqPXTpnC-uR5ddfw*z!Ud=4UX z-}`ENf!m`;#S5pFAMe;*4LjlctG9f6hVuvzikFWpB<1mzRG$SCh^>{4rcr)q0t#Y? zffcNx*xMZId;Y6We2jFS55VZl{0^cb&^kLK)}l@G?~+Uw_jIv*Uwwav!|2kYc5ZVR zE1vt72?}`<T>0i#FLmLM0&E)p#nyD6;~p{%;wRIDJVNT}^PKcd+6ogbD9c~7R3OYf zxPOL@OJ#(+vOs{X0K!;*+PBy?X$Y7?+M<X~7Y%Zuce)qK-s-+H{{vEEKujE1b#sOK z)zkr`;gZS)s9DKM$r++w8;HPf$iOm)GRXf8j{Nk`&!qP_DU7Vu@u4{EA2#v-Px&vj z@c%~TIk_jmrcjl=`yte*!34+VIl554T2YQAplE>1Tp4<Ai5=ezXe$!di<mTq_JbDt zZhAat0(oiJy143Dkb8&ZXus>U?{*D(zI9#oa{Nnws0z~^*8s<PYT|i>_*sKT|1D=j zOPqbxx=sBL6n&|U>yvh(<*uOa%hw&HU;d-V>L(m|ApDIhLYE@f(GA9nc0Bf$Hjf5@ zv5J2k>qWemWN$***4tCzf!Nx}Y3*>f-o0-7B)#J$Cd#D<pmUOm{d^42MWh$bK6rRf zY_qQTIu2_o$&$?q;qNw`l+oEytWeb)UwsQDaXdI4Q3UsjuGXum_!z%0+o&oB*ZKk> z)vfD|rDjAV?C;+pa7p9rj<IdOfU&RcVF^Cm+Gh^r$O&956Sev$Kula}<N3<~4wn@K z&b@r&Uf?K_F&@ym$*kGqH(Pll4os+n<WsdkVF=nwtcP5YcYJ_R)8GlUV%~w93ZSgN zz!fDLD0IZKGMc9o)eO0O_gsZTqih4H2N_XQpJ9J!dGWFDQA9hnMBgXpMU5V{4X^5z z-QSkUEM{xWo&s%WNi$NYvElG=u+4|g{!2T3G#%2!G|w|J#G`z*8YkamxM+0-mh-XU z9}BE~B4l$fAX_)rIpb4iSP8(25PdH-r$H>9M`970iL_gy3a8R#Ggs+&w<Nrvqs(f_ z(;ro9tG#lR=VR1L%2(ay?&`#_S^hdn7onNR?zvWn!mA5XdLGgFEeZc>r$u~({Dgpk z;l>J^E5f1GjsRtX99-v7LQ)giY~psi=~rsw?wk(bcVF7IvEk}GVk?Ieh248HkL0cK z#rB*;fVQU}K&QV%s;&J>SIn5cZ+iex8H-FG#Hwq6LK!Aeu2OG}&RniMa&cgms8meL zba&B_eLx-}u)ZpH8mlj^m}e;2(K-!t@{)7wQ>R3!tToUH=H@)E_RULM#z2eP&z>=` ziC`_Vf@h}e@Vm92e3F4|s>u3IHr2o#^?i$5G6BuTacHS%g813>ZI1mUYxYeFJ+^td zPQFp<c2E9N8a1xiZO5@+9`88gU2(-5dpM{qRLOiy8nS?g?83nY65!*(C_5BxA#GEb z4yT%@)a)8Se8rnwy#6oUB!<%V(pME)AL!uUdL1~}%%&4d=D%0``l&r{PTKap)oi65 zYCWhg<ypo@nx0MhA_dA%_LjN)j}2ONS<UqPnj!JS?_`Ll>)5yInTASVJD~YD*@M{P zC4qzJf%88DGt%WpfzI$MOCoGF_*r+gddqq46g0b!Uyn39g1RrNtPKjD-+`F})a#|2 zX>NoVc8`l~t`ED%uLja=5LsnkKfUG}NS?CDaEgDP$AsE&UJ1%eUxgD}0{ZtLm&R2n z4W{+jB~$pri3&JCmmG9d5rc-N!0f;G6VfU)kP{+W6yDN$Ta>U*G{SSn#+&wB(|Ic3 zrP_Sb@!-v+5swTDeL?CdK^fOLfEDB~oA9*Gdi_ana>%GE@rG7~b$i<%#9k~0fE8nX zBF92U0k3J;3%co{B{$l|D1Cw3h>O<y9R!y=ez|US(FbA1h(A-Bsk2vt`%*dw_6^09 zR3B$xkA2Bv>L);)WY~T}S*U&OU_S>GizM4F6XCWC@mntsWMjTk&zx>y9jgLk0vS6c zIZAcOj95UWz3>^)56I>1!sU%VVZf?D^t_A8$@nm}0Q>1Kf%_wsVeG^$eR$2VB>J&* zW`1tPYh0Ns;R-8TbOdm$KT^OM&vGNOh>atBwZ-Fl_9!)9Ys_O5-k_@8ASy8`w|J&+ z+&Q`=WECqLtlMt1I#>Nl<{CFtIoK+Men@CaKMYc;v6V~S7Eg<fUu4L#x^nsXZd`ZK zhpTtLjDeJ5SslJPPdyogtc@4g*r>M@)K*RGb$-treMjW~n_7G1{+p%<c}eoQkrAu$ zb|6W*-tVE_*3xXBE3fRBH5PhOg4B70?t^0QbEU(xP4s+&?gH>#rEr^Mfj&#Kodb|i zq~RbgJ7HhGZdD6V8!>MUdzZ_Qv(8{~@H#!<<=911b1eDQ>uks_RqGhMf{Tcn@qpue z)h&f&x+RRsGMQgnrHZaZvWS3{%FOW8bW-aTRZiUU>!>ckT}-j4&n6zp{QO;!C;Gzf zp+ZlW7QiaWY1A>nR?wTaP?++9y&Mo3il{Me1v96ZnFprQ<jrNA>PWlJz-~Zyqda7q z-=y(KE_~}q=t_-qEO^pNRT<MipP{ShNDwAzyDg0-aw??&&HYHu5j&4fDYKQh7*n6U zz<`MqgsGK1;}6s!EZUeZFJwm%52nV%jE*sB+o5KDD8Pp(U?jVLDDIeXDK&GNm(?Ou ze5}&WG&3DlR$XqgFm<uqA(<GOHPoIL!sa#~+F#<^oUtCuxdpHAemZQ+Qo>tn(pRQv z3yqBy-60)HeszNy9BwlRfs9xmUXx3A(5lhDu+4y<yP}qyP$)b{i8m=1Ef-N6d-WoQ ze-0T)#P1lk6Y@o<Y}nU`u#xMfeO^4cC^uW9su^(%iMQ{KmpvfgHgmy1_ocYHEi<Y3 zh5(V>$_AQ^c0^!<(Hj}`=2UMknd>Md2YM7gkO2<fi~H@PJia1C1i%)(Bf@<k(&fT) zzW{i346wDOk;)itD@6xeojDV%lW(2sjY?ZcCR0p3B{R>Bv{4LYkUFK9+i8MNNg#v^ z=N`+MBjwK(0}Lr;WT!qEv5wVjzk)*I+Bk}#gI6M|$zR{6UB(#7VUR5p0f;`>Yv*)F z*W-9WHJdi=HrpYY`D4_var=ezOu>teMWq*U&XXFW{1KCE5KE(&b9Qnoh=Q4bl0WbG z-AdbX#n%%-E0x@`P<_dUaw+{B?CGBC&GrKeF;96EGjNK3j&{QGp<wsB!wUO)X>2t= zpC9a}YA`C6W1skTJt}i|XQjRy_u~12zUJYoNw?&1zZoYfgi{%V%@pov6jB^Hk)wFA zYr-jHL*XhYXhkuV%Mfhm6{M5kYWEWq^(O@X+;tDTS98!kYxxPR?KFF}%TcJQzPA`F zUb0{&&vqWn%r9M5ZtJnuv68aNwPx)PhIvxuZEC4Ryy6<~Qm-w6YrrPRNi4R=z=&AM z8$d-w^k1MYHva;#Qf9V<r>BT33$M1ji0!k%u0yEo9xL2ByP<_Otl!P)uIwJ=JLH=U zs<+_QB3G8JepkXYMLpj4rg<dZUtWCE5``m*uK&GrSX+lg5vgRVztyxZ)=@*z`??ul zby7CDC?AD_p?de}s<(B8$ePYD-&?k#Pvy9CZt7oEA*k$sFWHQBpLi^0+*YH{ALmw) zif@IPsG)6Vw2SzR7?){*-dV~I{S<-YbcivR`oa9<K>^?%K?+m`G5Xp=;J8hBD5AzF zth{4N1W75xE8|fEv&7ek<!WuVaq2{mqfDGFBwnJJZf}pA<<9F1XVUSF16!@oW;lbC z848}pFKIH8V~aFmC2gPjiTBuLdH95Y2J{INR!FQEujf=8jjnp<1w#!qAeC6wZ-hL` z8lxV03b79dk~->)e09R;D%r~+FBh(5G{J@tK3Tig^SLB840B$Rk=|uQ$)aJJ;ba2Y zK61yUG;LpzfF4YhQ5C)@cA55hUq9tb>9NDLsDW9q8TcM8((01ZjY7=i*}OyROJsf= zvngjul&YqEx8;K)ZpDo$W-{tqY<G%srC`(tV8=_$doOzu3bJMe#GUSA!}2Pc77BVy zb2YZeF2hd?99z(oXPgJ6$<Fjz#TTQx4tC{VlMH8+Y=H=$V5}V%_E|@dqNY`cgACXq z`vTXphOuBFm?XnnLx`DmKOsu)BvM|z7Yly|uO=}7J@RhAZ%@hN5_Pj7P2&f~V{rP# z#O1b~!JI9*hsJLX<CWbhiccyN$tS99KZqKsJuaM}&XVqC(>n=w^~|Da-$oaG_hk<z zcBW9$*DhT(x5mDg!NBJrq2Q@*S$t8~pthv0s2`siogY}J#JEi($0TGXvbHElY5pxc z+<oh3g~C^00}jW3HNeBD*rPWdbRwV!o_a68P9bAT%2BBPdf&lWD=f?vVcvdz;}*R! z*RHOwJ3oKpKd7y?eGM+2V5NQJlv2i}VH1T9=4qADbE$G4VbwQy*tU2E009Hf{b+j- zUz_`4U^#S>6^Slc4hGSm@ib2~nVp-}MSETX`_+6U@yaDj7WKDM2B~Om(O-w*18Pw> z+r-+SdMAA=RdhB<0PUuD)$BV_u7yp#M&c7Mg)mjV1_HDj2pWO^!v86YKaC?P$N{VL z(s6TSUGjjU$Ek5Kxo}smJE(qYS#%fd?(1o-F&fdoG_?2#Uo7l5M|4lV&9;FbwE#S) z3wV<}^GS4AMy2f>*P&35$+WzN<|c(Hy({v$sRx2zHe=f*75iR0zpHhHf>D&q{>i+@ zJpWrRz?xH;JF!an?e&f?CDivXH1Crxx6%tLK!P{tHIdOW&kcYX3YF7wr)^0n6_cyk zA^{sS<gd>=WFb@QimaB%Cirg`8Z`>AoCykirK`y{sdk`$;x5Uw*U4V~iF@^R-|>}B zv@5Wu%To0r?cj1HG^N$7xCzHuA3{qX)wH=NtP0`khZtlT=n;-d9MnKU!(Ww?u#DV8 zy^#p|tq^2%kE7v2$LUOFyFny0q~FZL*3P<RGd%YyN!R$)?jla$`D_cvqq5d*uDAmt zEP%aUTzuQV%m&;*PQZtSJ<(KebRl_Ofhi8+xtzM6t`fKp%-+zH@fvtJG`)6Y;~mYI z0~yR692-usnx=w}fzm+#_VN$S3HxPZnpOU@-bTD+8(*#JcfvJGRWH%Ps^Eua19D;7 z(p)2wu?$Mngd>np<E>$|WVJs~TjT2g%M2H2g^=vcz2G0c_BC5n#<;9kdHwe5o60`2 zT6)dC(3B0D0(`c&i?1S;+j$7A1lZrx{maa+2ayJJ*40Z48>VpEXfK}JZMH$GiG$Sr zDIBwTz;%K<)SW%-*4A%IHYEq7mw(@x_$Gsbp8z;44TPxyA=qpf?fab2xY#Et*K$05 zTj@ZRQGCp*07RHGGd1Q{9X>d-=&qYRXt3<>4OXpTxSq{d#mesKw3)RFzq#M4(*~l9 zGd>o!$=B{rac?Iz68XtslfGTGFh)m%#Oub10YtxtOlL%J?>?L)TN6y2PS*$JeYP|7 zL!Q1HqkxX7W1r2o?9IL0!o)sz@F@cuoHh!hfOjc=>)Vk65Xio3#fu#}^Out8y@?r& zH6}RW&NHpiLoypkh##C+3GMr|*g8S=US4Lo=OxVF@1j!1zv}cU7_w~^INbJod3kYc zhW9g#61ipS8h`S~G(VQB4dm`I7{Pnl)}QBDvWdM8S#@}fam$++Z)g04Ec631$#=)I zL!7T?gC_UesQ@T|(>+^Zl<~>D^HOF6=OC;Kc{Vx!H#HbV5a~BDXGuJ<Mk}2D1_~?G z<6f^y!<ct+IG&}$?WVge`SVbl=GA@H9RA8dvcT~Ld2SW&awX`Y`T8^cYM_QV-3rmG zOj@$jG9ZzeK(HIPT!JuWxen)AAL_)h6rWnh!hCbnyqrpI4}04a2%>VuXWL2ewx*B` zmtwcv;6GSW!IFJ1BiVAdZ1HDzr8fIX3Sp12+nr;&^J0hXCO_*2*9ol?P<}C>{}75q zmibxVJMv5TBK`+*Z;IqZcYS(1PwyxdX=>6WJg7}-!63nCOA`koB?@|#z1dhxld0oa zNS(v{_&A*I)MVRP!)g4na-Ut_`t`-K9Zt2}z+xOh*Cz*Sr~uQ1sl{hs8V#}BCap;@ zNuGy7$1af}T1{fP_xl%(liYl*qASgR;*7dI;w=cl{x|}gVWg6qa%x)77QYE6(`q9i z9(#es1oAggJ1CQiuYWJco~s{Kr~@}t)RvR9R`G=2Cp2_u8g|Oa&T2rLyW(=|InjXN zo5(b`R4tjcb;jamqbvDtg5O-}l}y{`$n)y6pPyzQYWa~5y+BUa-#Vg<v!uK=rlBde z=z%A9m?+TeIag&;R?cX;4&T3=nBlZ{oUQOmn!NO`8)F?Y8UPi61qj?rMbEV(eyfom zDBZl#Ah)wH-H3k*O|Z>GW4YzuxoO|}!4rd}$(2G$$F=m(COxZXo~bT2t@-5IrvuYU zi9XC=F<0$-`CyBHK9km5#-emcu~AZ9h4_H>_FC_`f|@Z&aYmoIZWTztORf)20kOF2 zJ0#-DVW*#zmY$BxvBzDvP-U-H&-2j}n0Md)`D69l<L}_U161ZF=EzB=dT{6PTOGCh z>}yiwF{_aMx|mP)d-BGy6?1m3tuH9Eg*3X263gm_ypLQjohDP5RF8maq#YdjWgW`l z%uQdst`tgt)ZO8|QL)S_EoWl4u2^a*8_G!xgDTx-p{a5^-i@jFiP}aSTg?bM-SVAT ztGlhZEqVjV%-+3GOHjv7&gjg<E7D>jI$^BCg(o7BXVJhJgzvYEGRwwUx`7j7JYQ52 zl6TQ^s@hwP-r3h$wj;9A=mr!EtDn0@fNK<vdyCu;?{>%0RMFoMPQKb=q<NZMl+3vg zW=h;FHXWIIQSN2~8#nD(Qa7mzo}q_}i;`>f(SNB+Y%^`#C<Nt7fz?2+#LRbGe9Q$p z)#^M7D&mw=?zXl_Vsf~XL%&Ifn4)@g?XZqTrNOJwIRsBmY8m!S=tNSrF&RA7J?VsY zay(ZJLY{+~&b8Ie#c{3zdAEFFtp6$9@7H4Q8BEno<zUW>Cn7IIbO@!o>v(VXeIT2x zZy6iq`UZ8U&BiBGcG+Y{b?WnmX-C&EF}I?qcn)FZbTApOTG}qZW#16OGY@CZ)eQ;? zi~6w!9!M7RsU;@MgTk~4515R@*>`kx;$F}Z&NeB<*{C{Sdp*%9Q_wW_3zobhUcGGW z+bKMLZ7=;L0w<R^Uru3DKv!qHp|Ml&vzK6Ca+{8>2`cKd&`6B@9(7iVNw(}O0?KAr zifWdm7X{Bx6U@Q|u&HZ2tD@IccM7h2!_Y>vOzneruFQVMWxwAmp#)g%6vE21tJg=H zK+}B}_tt*m#$%_ByG}pKer0<{^y;=IlK#mcX9Ru9Le_sJo1D<M#BGC4i+LCq%5>Aw z$@Jpa@vM@y9;br}#r*>=c^6$u7b(LgV`7#gcVmwc9V<8z^PW6YF-A>g|G5mj8>oYV zshT=F+x(Prb)D32W#+)yb5?0MswE;nQ<X2-!-s;m!1XP$8|t;nD~?BxpZ)X41p%L9 z05~yAmLF$}op+RUc2#clR&exfp42#S&Qshdzv~_(Yu~HH|JvY3?Hf3hHRuxU6t!6g z<rH@z&(h@}>QBGFv{*Qk<k6$YmI6GS(mxsHF+K1dCL<fJ|CHnZp!!1PBhHBRgl~`k z<K9mszXI{yhD8eB+n<f|*S&s#GAwt`;D7qne^R2s4;T`Q_VVEoZ7DbgRxgOYJo>Lo z`}+fvd$GtIg#PpGKO4Kj^6__ye)h*tf4&}n{9m*8z>s`?Y!8nZ4|feG`_#Jahk}C0 QBjBF^uP6_g>&y551BwyAjsO4v diff --git a/vdocs/config/img/accessibility-div-example.png b/vdocs/config/img/accessibility-div-example.png deleted file mode 100644 index 2b3478f0bd4ab650690d736c4e9dbe3cddf3d7ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122202 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 Km%KIf|Nj6|=%H5t diff --git a/vdocs/config/img/assignWithDepth.png b/vdocs/config/img/assignWithDepth.png deleted file mode 100644 index d00e8eb7c9aa5cc48b0c2d1b102e57977b7b4845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6595 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 diff --git a/vdocs/config/img/object.assign without depth.png b/vdocs/config/img/object.assign without depth.png deleted file mode 100644 index c87505c1c1f990915ddba0b61d378483e3736e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6067 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 H`p16(Z19u5 diff --git a/vdocs/config/img/python-mermaid-integration.png b/vdocs/config/img/python-mermaid-integration.png deleted file mode 100644 index d54a0e97d567ce61a36127cf05f278316d0a3d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39043 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 DW0KD` diff --git a/vdocs/config/img/wrapped text.png b/vdocs/config/img/wrapped text.png deleted file mode 100644 index cf8dd12386e32d52b3f282ef45838920d37a70cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105313 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 diff --git a/vdocs/config/mermaidCLI.md b/vdocs/config/mermaidCLI.md deleted file mode 100644 index f9473f1dd3..0000000000 --- a/vdocs/config/mermaidCLI.md +++ /dev/null @@ -1,3 +0,0 @@ -# mermaid CLI - -mermaid CLI has been moved to [mermaid-cli](https://github.com/mermaid-js/mermaid-cli). Please read its documentation instead. diff --git a/vdocs/config/n00b-advanced.md b/vdocs/config/n00b-advanced.md deleted file mode 100644 index 1e6546f5cf..0000000000 --- a/vdocs/config/n00b-advanced.md +++ /dev/null @@ -1,24 +0,0 @@ -# Advanced n00b mermaid (Coming soon..) - -## splitting mermaid code from html - -A more condensed html code can be achieved by embedding the mermaid code in its own .js file, which is referenced like so: - -``` -stuff stuff - </div> - </body> -</html> -``` - -The actual mermaid file could for example look like this: - -``` -mermaid content... -``` - ---- - -## mermaid configuration options - -... diff --git a/vdocs/config/n00b-syntaxReference.md b/vdocs/config/n00b-syntaxReference.md deleted file mode 100644 index 7db4de5b7a..0000000000 --- a/vdocs/config/n00b-syntaxReference.md +++ /dev/null @@ -1,67 +0,0 @@ -# Diagram Syntax - -Mermaid's syntax is used to create diagrams. You'll find that it is not too tricky and can be learned in a day. The next sections dive deep into the syntax of each diagram type. - -Syntax, together with Deployment and Configuration constitute the whole of Mermaid. - -Diagram Examples can be found in the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor), it is also a great practice area. - -## Syntax Structure - -One would notice that all **Diagrams definitions begin** with a declaration of the **diagram type**, followed by the definitions of the diagram and its contents. This declaration notifies the parser which kind of diagram the code is supposed to generate. - -**Example** : The code below is for an Entity Relationship Diagram, specified by the `erDiagram` declaration. What follows is the definition of the different `Entities` represented in it. - -```mermaid-example -erDiagram - CUSTOMER }|..|{ DELIVERY-ADDRESS : has - CUSTOMER ||--o{ ORDER : places - CUSTOMER ||--o{ INVOICE : "liable for" - DELIVERY-ADDRESS ||--o{ ORDER : receives - INVOICE ||--|{ ORDER : covers - ORDER ||--|{ ORDER-ITEM : includes - PRODUCT-CATEGORY ||--|{ PRODUCT : contains - PRODUCT ||--o{ ORDER-ITEM : "ordered in" -``` - -The [Getting Started](../intro/n00b-gettingStarted.md) section can also provide some practical examples of mermaid syntax. - -## Diagram Breaking - -One should **beware the use of some words or symbols** that can break diagrams. These words or symbols are few and often only affect specific types of diagrams. The table below will continuously be updated. - -| Diagram Breakers | Reason | Solution | -| -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------- | -| **Comments** | | | -| [` %%{``}%% `](https://github.com/mermaid-js/mermaid/issues/1968) | Similar to [Directives](./directives.md) confuses the renderer. | In comments using `%%`, avoid using "{}". | -| **Flow-Charts** | | | -| 'end' | The word "End" can cause Flowcharts and Sequence diagrams to break | Wrap them in quotation marks to prevent breakage. | -| [Nodes inside Nodes](https://mermaid-js.github.io/mermaid/#/flowchart?id=special-characters-that-break-syntax) | Mermaid gets confused with nested shapes | wrap them in quotation marks to prevent breaking | - -### Mermaid Live Editor - -Now, that you've seen what you should not add to your diagrams, you can play around with them in the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor). - -# Configuration - -Configuration is the third part of Mermaid, after deployment and syntax. It deals with the different ways that Mermaid can be customized across different deployments. - -If you are interested in altering and customizing your Mermaid Diagrams, you will find the methods and values available for [Configuration](../config/Setup.md) here. It includes themes. -This section will introduce the different methods of configuring the behaviors and appearances of Mermaid Diagrams. -The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](../intro/n00b-gettingStarted.md) methods. - -### Configuration Section in the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor). - -Here you can edit certain values to change the behavior and appearance of the diagram. - -### [The initialize() call](../intro/n00b-gettingStarted?id=_3-calling-the-javascript-api), - -Used when Mermaid is called via an API, or through a `<script>` tag. - -### [Directives](../config/directives.md), - -Allows for the limited reconfiguration of a diagram just before it is rendered. It can alter the font style, color and other aesthetic aspects of the diagram. You can pass a directive alongside your definition inside `%%{ }%%`. It can be done either above or below your diagram definition. - -### [Theme Manipulation](../config/theming.md): - -An application of using Directives to change [Themes](../config/theming.md). `Theme` is a value within Mermaid's configuration that dictates the color scheme for diagrams. diff --git a/vdocs/config/theming.md b/vdocs/config/theming.md deleted file mode 100644 index 16bb2ef953..0000000000 --- a/vdocs/config/theming.md +++ /dev/null @@ -1,484 +0,0 @@ -# Theme Configuration - -With Version 8.7.0 Mermaid comes out with a system for dynamic and integrated configuration of themes. The intent is to increase the customizability and ease of styling for mermaid diagrams. - -The theme can be altered by changing the root level variable `theme` variable in the configuration. To change it for the whole site you must use the `initialize` call. To do it for just for a single diagram you can use the `%%init%%` directive - -Themes follow and build upon the Levels of Configuration, and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](./8.6.0_docs.md). - -## Deployable Themes - -The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls. - -1. **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes. - -2. **forest**- A theme full of light greens that is easy on the eyes. - -3. **dark**- A theme that would go well with other dark-colored elements. - -4. **default**- The default theme for all diagrams. - -5. **neutral**- The theme to be used for black and white printing. - -## Site-wide Themes - -Site-wide themes are declared via `initialize` by site owners. - -Example of `Initialize` call setting `theme` to `base`: - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', - theme: 'base', -}); -``` - -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. - -## Themes at the Local or Current Level - -When Generating a diagram using on a webpage that supports mermaid. It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. - -```mmd -%%{init: {'theme':'neutral'}}%% - graph TD - a --> b -``` - -Here is an example of how `%%init%%` can set the theme to 'neutral', this assumes that `themeVariables` are set to default: - -```mermaid-example -%%{init: {'theme':'neutral'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -# List of Themes - -# Customizing Themes with `themeVariables` - -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. - -| Parameter | Description | Type | Required | Objects contained | -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | - -**Here is an example of overriding `primaryColor` through `themeVariables` and giving everything a different look, using `%%init%%`.** - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -**Notes:** -Leaving it empty will set all variable values to default. - -## Color and Color Calculation: - -Color definitions have certain interactions in mermaid, this is in order to ensure visibility for diagrams. Mermaid will adjust some variables automatically, when colors are changed in order to compensate and maintain readability. - -**The Default Value Column** to the right of the Variable column will denote the Variable paired/associated with the Variable on the left and the nature of this pairing or association. If it for instance says primaryColor it means that it gets primaryColor as default value. If it says "based on primaryColor" it means that it is calculated/ derived from primaryColor. This calculation can be primary color inversion, a change of hue, darkening or lightening by 10%, etc. - -You can create your own themes, by changing any of the given variables below. If you are using a dark background, set dark mode to true to adjust the colors. It is possible to override the calculations using the variable names below, with `%%init%%` if you wish to style it differently. - -## Theme Variables Reference Table - -::: tip -Variables that are unique to some diagrams can be affected by changes in Theme Variables -::: - -| Variable | Default/Base/Factor value | Calc | Description | -| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | -| darkMode | false | | Boolean Value that dictates how to calculate colors. "true" will activate darkmode. | -| background | #f4f4f4 | | Used to calculate color for items that should either be background colored or contrasting to the background. | -| fontFamily | "trebuchet ms", verdana, arial | | | -| fontSize | 16px | | Font Size, in pixels | -| primaryColor | #fff4dd | | Color to be used as background in nodes, other colors will be derived from this | -| primaryBorderColor | based on primaryColor | \* | Color to be used as border in nodes using primaryColor | -| primaryTextColor | based on darkMode #ddd/#333 | \* | Color to be used as text color in nodes using primaryColor | -| secondaryColor | based on primaryColor | \* | | -| secondaryBorderColor | based on secondaryColor | \* | Color to be used as border in nodes using secondaryColor | -| secondaryTextColor | based on secondaryColor | \* | Color to be used as text color in nodes using secondaryColor | -| tertiaryColor | based on primaryColor | \* | | -| tertiaryBorderColor | based on tertiaryColor | \* | Color to be used as border in nodes using tertiaryColor | -| tertiaryTextColor | based on tertiaryColor | \* | Color to be used as text color in nodes using tertiaryColor | -| noteBkgColor | #fff5ad | | Color used as background in notes | -| noteTextColor | #333 | | Text color in note rectangles. | -| noteBorderColor | based on noteBkgColor | \* | Border color in note rectangles. | -| lineColor | based on background | \* | | -| textColor | based on primaryTextColor | \* | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in gantt diagram | -| mainBkg | based on primaryColor | \* | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc | -| errorBkgColor | tertiaryColor | \* | Color for syntax error message | -| errorTextColor | tertiaryTextColor | \* | Color for syntax error message | - -# What follows are Variables, specific to different diagrams and charts. - -## Some Theme Variables serve as, or affect the Default Values for Specific Diagram Variables, unless changed using `%%init%%` . - -## Flowchart - -| Variable | Default/ Associated Value | Calc | Description | -| ------------------- | ------------------------- | ---- | ---------------------------- | -| nodeBorder | primaryBorderColor | \* | Node Border Color | -| clusterBkg | tertiaryColor | \* | Background in subgraphs | -| clusterBorder | tertiaryBorderColor | \* | Cluster Border Color | -| defaultLinkColor | lineColor | \* | Link Color | -| titleColor | tertiaryTextColor | \* | Title Color | -| edgeLabelBackground | based on secondaryColor | \* | | -| nodeTextColor | primaryTextColor | \* | Color for text inside Nodes. | - -# sequence diagram - -| name | Default value | Calc | Description | -| --------------------- | ----------------------- | ---- | --------------------------- | -| actorBorder | primaryBorderColor | \* | Actor Border Color | -| actorBkg | mainBkg | \* | Actor Background Color | -| actorTextColor | primaryTextColor | \* | Actor Text Color | -| actorLineColor | grey | \* | Actor Line Color | -| signalColor | textColor | \* | Signal Color | -| signalTextColor | textColor | \* | Signal Text Color | -| labelBoxBkgColor | actorBkg | \* | Label Box Background Color | -| labelBoxBorderColor | actorBorder | \* | Label Box Border Color | -| labelTextColor | actorTextColor | \* | Label Text Color | -| loopTextColor | actorTextColor | \* | Loop ext Color | -| activationBorderColor | based on secondaryColor | \* | Activation Border Color | -| activationBkgColor | secondaryColor | \* | Activation Background Color | -| sequenceNumberColor | based on lineColor | \* | Sequence Number Color | - -# state colors - -| name | Default value | Calc | Description | -| ------------- | ---------------- | ---- | -------------------------------------------- | -| labelColor | primaryTextColor | \* | | -| altBackground | tertiaryColor | \* | Used for background in deep composite states | - -# class colors - -| name | Default value | Calc | Description | -| --------- | ------------- | ---- | ------------------------------- | -| classText | textColor | \* | Color of Text in class diagrams | - -# User journey colors - -| name | Default value | Calc | Description | -| --------- | ----------------------- | ---- | --------------------------------------- | -| fillType0 | primaryColor | \* | Fill for 1st section in journey diagram | -| fillType1 | secondaryColor | \* | Fill for 2nd section in journey diagram | -| fillType2 | based on primaryColor | \* | Fill for 3rd section in journey diagram | -| fillType3 | based on secondaryColor | \* | Fill for 4th section in journey diagram | -| fillType4 | based on primaryColor | \* | Fill for 5th section in journey diagram | -| fillType5 | based on secondaryColor | \* | Fill for 6th section in journey diagram | -| fillType6 | based on primaryColor | \* | Fill for 7th section in journey diagram | -| fillType7 | based on secondaryColor | \* | Fill for 8th section in journey diagram | - -\*\*Notes: Values are meant to create an alternating look. - -# Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -\*\*This got a bit too dark and bit too colorful. With some easy steps this can be fixed: - -- Make the primary color a little lighter -- set the tertiary color to a reddish shade as well -- make the edge label background differ from the subgraph by setting the edgeLabelBackground - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -The Theming Engine does not admit color codes and will only accept proper color values. Color Names is not supported so for instance, the color value 'red' will not work, but '#ff0000' will work. - -# Common theming activities - -## How to change the color of the arrows - -# Examples: - -When adjusting a theme it might be helpful to look at how your preferred theme goes with the diagrams, to evaluate whether everything is visible and looks good. -In the following examples, the directive `init` is used, with the `theme` being declared as `neutral`. For more information on using directives, read the documentation for [Version 8.6.0](/8.6.0_docs.md) - -### Flowchart - -```mmd -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -### Flowchart (beta) - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% - flowchart TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[Another] - C ==>|One| D[Laptop] - C x--x|Two| E[iPhone] - C o--o|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -### Sequence diagram - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% - sequenceDiagram - autonumber - par Action 1 - Alice->>John: Hello John, how are you? - and Action 2 - Alice->>Bob: Hello Bob, how are you? - end - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - Note right of John: John is perceptive - John-->>-Alice: I feel great! - loop Every minute - John-->Alice: Great! - end -``` - -### Class diagram - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% - -classDiagram - Animal "1" <|-- Duck - Animal <|-- Fish - Animal <--o Zebra - Animal : +int age - Animal : +String gender - Animal: +isMammal() - Animal: +mate() - class Duck{ - +String beakColor - +swim() - +quack() - } - class Fish{ - -int sizeInFeet - -canEat() - } - class Zebra{ - +bool is_wild - +run() - } -``` - -### Gantt - -```mermaid-example -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram functionality to mermaid - excludes :excludes the named dates/days from being included in a charted task.. - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d - - section Critical tasks - Completed task in the critical line :crit, done, 2014-01-06,24h - Implement parser and jison :crit, done, after des1, 2d - Create tests for parser :crit, active, 3d - Future task in critical line :crit, 5d - Create tests for renderer :2d - Add to mermaid :1d - - section Documentation - Describe gantt syntax :active, a1, after des1, 3d - Add gantt diagram to demo page :after a1 , 20h - Add another diagram to demo page :doc1, after a1 , 48h - - section Last section - Describe gantt syntax :after doc1, 3d - Add gantt diagram to demo page :20h - Add another diagram to demo page :48h -``` - -### State diagram - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% - stateDiagram - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvCapsLockPressed - ScrollLockOn --> ScrollLockOff : EvCapsLockPressed - } - state SomethingElse { - A --> B - B --> A - } - - Active --> SomethingElse - note right of SomethingElse : This is the note to the right. - - SomethingElse --> [*] - -``` - -### State diagram (beta) - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'neutral'}}%% -stateDiagram-v2 - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvCapsLockPressed - ScrollLockOn --> ScrollLockOff : EvCapsLockPressed - } - state SomethingElse { - A --> B - B --> A - } - - Active --> SomethingElse2 - note right of SomethingElse2 : This is the note to the right. - - SomethingElse2 --> [*] -``` - -### Entity Relations diagram - -```mermaid-example - erDiagram - CUSTOMER }|..|{ DELIVERY-ADDRESS : has - CUSTOMER ||--o{ ORDER : places - CUSTOMER ||--o{ INVOICE : "liable for" - DELIVERY-ADDRESS ||--o{ ORDER : receives - INVOICE ||--|{ ORDER : covers - ORDER ||--|{ ORDER-ITEM : includes - PRODUCT-CATEGORY ||--|{ PRODUCT : contains - PRODUCT ||--o{ ORDER-ITEM : "ordered in" -``` - -### User journey diagram - -```mermaid-example -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` diff --git a/vdocs/config/usage.md b/vdocs/config/usage.md deleted file mode 100644 index 925214c0a5..0000000000 --- a/vdocs/config/usage.md +++ /dev/null @@ -1,394 +0,0 @@ -# Usage - -Mermaid is a JavaScript tool that makes use of a Markdown based syntax to render customizable diagrams, charts and visualizations. - -Diagrams can be re-rendered/modified by modifying their descriptions. - -### CDN - -[https://unpkg.com/mermaid/](https://unpkg.com/mermaid/) - -Please note that you can switch versions through the dropdown box at the top right. - -## Using mermaid - -For the majority of users, Using the [Live Editor](https://mermaid.live/) would be sufficient, however you may also opt to deploy mermaid as a dependency or using the [Mermaid API](./Setup.md). - -We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermaid Live Editor. - -**Installing and Hosting Mermaid on a Webpage** - -**Using the npm package** - -``` -1. You will need to install node v16, which would have npm. - -2. download yarn using npm. - -3. enter the following command: - yarn add mermaid - -4. At this point, you can add mermaid as a dev dependency using this command: - yarn add --dev mermaid - -5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions. - as is shown in the example below -``` - -**Hosting mermaid on a web page.** - -> Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted.md) - -The easiest way to integrate mermaid on a web page requires two elements: - -- A graph definition, inside `<pre>` tags labeled `class=mermaid`. Example: - -```html -<pre class="mermaid"> - graph LR - A --- B - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); -</pre> -``` - -- Inclusion of the mermaid address in the html page body using a `script` tag as an ESM import, and the `mermaidAPI` call. - -Example: - -```html -<script type="module"> - import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs'; - mermaid.initialize({ startOnLoad: true }); -</script> -``` - -**Following these directions, mermaid starts at page load and (when the page has loaded) it will locate the graph definitions inside the `pre` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** - -## Simple full example: - -```html -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - </head> - <body> - <pre class="mermaid"> - graph LR - A --- B - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); - </pre> - <script type="module"> - import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs'; - mermaid.initialize({ startOnLoad: true }); - </script> - </body> -</html> -``` - -## Notes: - -An id attribute is also added to mermaid tags without one. - -Mermaid can load multiple diagrams, in the same page. - -> Try it out, save this code as HTML and load it using any browser.(Except Internet Explorer, please don't use Internet Explorer.) - -## Enabling Click Event and Tags in Nodes - -A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. This was introduce in version 8.2 as a security improvement, aimed at preventing malicious use. - -**It is the site owner's responsibility to discriminate between trustworthy and untrustworthy user-bases and we encourage the use of discretion.** - -## securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | String | Required | 'sandbox', 'strict', 'loose', 'antiscript' | - -Values: - -- **strict**: (**default**) tags in text are encoded, click functionality is disabled -- **loose**: tags in text are allowed, click functionality is enabled -- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled -- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. - -::: warning -This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. -**sandbox** security level is still in the beta version. -::: - -**If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** - -**To change `securityLevel`, you have to call `mermaidAPI.initialize`:** - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', -}); -``` - -### Labels out of bounds - -If you use dynamically loaded fonts that are loaded through CSS, such as Google fonts, mermaid should wait for the -whole page to load (dom + assets, particularly the fonts file). - -```javascript -$(document).load(function () { - mermaid.initialize(); -}); -``` - -or - -```javascript -$(document).ready(function () { - mermaid.initialize(); -}); -``` - -Not doing so will most likely result in mermaid rendering graphs that have labels out of bounds. The default integration in mermaid uses the window.load event to start rendering. - -If your page has other fonts in its body those might be used instead of the mermaid font. Specifying the font in your styling is a workaround for this. - -```css -div.mermaid { - font-family: 'trebuchet ms', verdana, arial; -} -``` - -### Calling `mermaid.init` - -By default, `mermaid.init` will be called when the document is ready, finding all elements with -`class="mermaid"`. If you are adding content after mermaid is loaded, or otherwise need -finer-grained control of this behavior, you can call `init` yourself with: - -- a configuration object -- some nodes, as - - a node - - an array-like of nodes - - or W3C selector that will find your nodes - -Example: - -```javascript -mermaid.init({ noteMargin: 10 }, '.someOtherClass'); -``` - -Or with no config object, and a jQuery selection: - -```javascript -mermaid.init(undefined, $('#someId .yetAnotherClass')); -``` - -::: warning -This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. -::: - -## Usage with webpack - -mermaid fully supports webpack. Here is a [working demo](https://github.com/mermaidjs/mermaid-webpack-demo). - -## API usage - -The main idea of the API is to be able to call a render function with the graph definition as a string. The render function -will render the graph and call a callback with the resulting SVG code. With this approach it is up to the site creator to -fetch the graph definition from the site (perhaps from a textarea), render it and place the graph somewhere in the site. - -The example below show an outline of how this could be used. The example just logs the resulting SVG to the JavaScript console. - -```html -<script src="mermaid.js"></script> - -<script> - mermaid.mermaidAPI.initialize({ startOnLoad: false }); - $(function () { - // Example of using the API var - element = document.querySelector('#graphDiv'); - const insertSvg = function (svgCode, bindFunctions) { - element.innerHTML = svgCode; - }; - const graphDefinition = 'graph TB\na-->b'; - const graph = mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); - }); -</script> -``` - -### Binding events - -Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must -add those events after the graph has been inserted into the DOM. - -The example code below is an extract of what mermaid does when using the API. The example shows how it is possible to -bind events to an SVG when using the API for rendering. - -```javascript -var insertSvg = function (svgCode, bindFunctions) { - element.innerHTML = svgCode; - if (typeof callback !== 'undefined') { - callback(id); - } - bindFunctions(element); -}; - -var id = 'theGraph'; - -mermaidAPI.render(id, txt, insertSvg, element); -``` - -1. The graph is generated using the render call. -2. After generation the render function calls the provided callback function, in this case it's called insertSvg. -3. The callback function is called with two parameters, the SVG code of the generated graph and a function. This function binds events to the SVG **after** it is inserted into the DOM. -4. Insert the SVG code into the DOM for presentation. -5. Call the binding function that binds the events. - -## Example of a marked renderer - -This is the renderer used for transforming the documentation from Markdown to html with mermaid diagrams in the html. - -```javascript -var renderer = new marked.Renderer(); -renderer.code = function (code, language) { - if (code.match(/^sequenceDiagram/) || code.match(/^graph/)) { - return '<pre class="mermaid">' + code + '</pre>'; - } else { - return '<pre><code>' + code + '</code></pre>'; - } -}; -``` - -Another example in CoffeeScript that also includes the mermaid script tag in the generated markup. - -```coffee -marked = require 'marked' - -module.exports = (options) -> - hasMermaid = false - renderer = new marked.Renderer() - renderer.defaultCode = renderer.code - renderer.code = (code, language) -> - if language is 'mermaid' - html = '' - if not hasMermaid - hasMermaid = true - html += '<script src="'+options.mermaidPath+'"></script>' - html + '<pre class="mermaid">'+code+'</pre>' - else - @defaultCode(code, language) - - renderer -``` - -## Advanced usage - -**Syntax validation without rendering (Work in Progress)** - -The **mermaid.parse(txt)** function validates graph definitions without rendering a graph. **[This function is still a work in progress](https://github.com/mermaid-js/mermaid/issues/1066), find alternatives below.** - -The function **mermaid.parse(txt)**, takes a text string as an argument and returns true if the definition follows mermaid's syntax and -false if it does not. The parseError function will be called when the parse function returns false. - -When the parser encounters invalid syntax the **mermaid.parseError** function is called. It is possible to override this -function in order to handle the error in an application-specific way. - -The code-example below in meta code illustrates how this could work: - -```javascript -mermaid.parseError = function (err, hash) { - displayErrorInGui(err); -}; - -var textFieldUpdated = function () { - var textStr = getTextFromFormField('code'); - - if (mermaid.parse(textStr)) { - reRender(textStr); - } -}; - -bindEventHandler('change', 'code', textFieldUpdated); -``` - -**Alternative to mermaid.parse():** -One effective and more future-proof method of validating your graph definitions, is to paste and render them via the [Mermaid Live Editor](https://mermaid.live/). This will ensure that your code is compliant with the syntax of Mermaid's most recent version. - -## Configuration - -Mermaid takes a number of options which lets you tweak the rendering of the diagrams. Currently there are three ways of -setting the options in mermaid. - -1. Instantiation of the configuration using the initialize call -2. _Using the global mermaid object_ - **Deprecated** -3. _using the global mermaid_config object_ - **Deprecated** -4. Instantiation of the configuration using the **mermaid.init** call- **Deprecated** - -The list above has two ways too many of doing this. Three are deprecated and will eventually be removed. The list of -configuration objects are described [in the mermaidAPI documentation](Setup.md). - -## Using the `mermaidAPI.initialize`/`mermaid.initialize` call - -The future proof way of setting the configuration is by using the initialization call to mermaid or mermaidAPI depending -on what kind of integration you use. - -```html -<script src="../dist/mermaid.js"></script> -<script> - let config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; - mermaid.initialize(config); -</script> -``` - -::: tip -This is the preferred way of configuring mermaid. -::: - -### The following methods are deprecated and are kept only for backwards compatibility. - -## Using the mermaid object - -Is it possible to set some configuration via the mermaid object. The two parameters that are supported using this -approach are: - -- mermaid.startOnLoad -- mermaid.htmlLabels - -```javascript -mermaid.startOnLoad = true; -``` - -::: warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: - -## Using the mermaid_config - -It is possible to set some configuration via the mermaid object. The two parameters that are supported using this -approach are: - -- mermaid_config.startOnLoad -- mermaid_config.htmlLabels - -```javascript -mermaid_config.startOnLoad = true; -``` - -::: warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: - -## Using the mermaid.init call - -To set some configuration via the mermaid object. The two parameters that are supported using this approach are: - -- mermaid_config.startOnLoad -- mermaid_config.htmlLabels - -```javascript -mermaid_config.startOnLoad = true; -``` - -::: warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: diff --git a/vdocs/intro/directives.md b/vdocs/intro/directives.md deleted file mode 100644 index b96a2184cb..0000000000 --- a/vdocs/intro/directives.md +++ /dev/null @@ -1,254 +0,0 @@ -# Directives - -## Directives - -Directives gives a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration. - -The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram specific configurations. So, directives are applied on top of the default configurations. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level. - -While directives allow you to change most of the default configuration settings, there are some that are not available, that too for security reasons. Also, you do have the _option to define the set of configurations_ that you would allow to be available to the diagram author for overriding with help of directives. - -## Types of Directives options - -Mermaid basically supports two types of configuration options to be overridden by directives. - -1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are: - -- theme -- fontFamily -- logLevel -- securityLevel -- startOnLoad -- secure - -2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves. - For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type. - -**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code. - -``` -Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs -``` - -## Declaring directives - -Now that we have defined the types of configurations that are available, we can learn how to declare directives. -A directive always starts and end `%%` sign with directive text in between, like `%% {directive_text} %%`. - -Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section. - -Following code snippet shows the structure of a directive: - -``` -%%{ - init: { - "theme": "dark", - "fontFamily": "monospace", - "logLevel": "info", - "flowchart": { - "htmlLabels": true, - "curve": "linear" - }, - "sequence": { - "mirrorActors": true - } - } -}%% -``` - -You can also define the directives in a single line, like this: - -``` -%%{init: { **insert argument here**}}%% -``` - -For example, the following code snippet: - -``` -%%{init: { "sequence": { "mirrorActors":false }}}%% -``` - -**Notes:** -The json object that is passed as {**argument** } must be valid key value pairs and encased in quotation marks or it will be ignored. -Valid Key Value pairs can be found in config. - -Example with a simple graph: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% -graph LR -A-->B -``` - -Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself. - -Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means: - -```mmd -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% -%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% -... -``` - -parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: - -```json -{ - "logLevel": "fatal", - "theme": "dark", - "startOnLoad": true -} -``` - -This will then be sent to `mermaid.initialize(...)` for rendering. - -## Directive Examples - -More directive examples for diagram specific configuration overrides -Now that the concept of directives has been explained, Let us see some more examples for directives usage: - -### Changing Theme via directive - -The following code snippet changes theme to forest: - -`%%{init: { "theme": "forest" } }%%` - -Possible themes value are: `default`,`base`, `dark`, `forest` and `neutral`. -Default Value is `default`. - -Example: - -```mermaid-example -%%{init: { "theme": "forest" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -### Changing fontFamily via directive - -The following code snippet changes fontFamily to rebuchet MS, Verdana, Arial, Sans-Serif: - -`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%` - -Example: - -```mermaid-example -%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing logLevel via directive - -The following code snippet changes logLevel to 2: - -`%%{init: { "logLevel": 2 } }%%` - -Possible logLevel values are: - -- `1` for _debug_, -- `2` for _info_ -- `3` for _warn_ -- `4` for _error_ -- `5` for _only fatal errors_ - -Default Value is `5`. - -Example: - -```mermaid-example -%%{init: { "logLevel": 2 } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing flowchart config via directive - -Some common flowchart configurations are: - -- _htmlLabels_: true/false -- _curve_: linear/curve -- _diagramPadding_: number -- _useMaxWidth_: number - -For complete list of flowchart configurations, see [defaultConfig.js](https://github.com/mermaid-js/mermaid/blob/develop/src/defaultConfig.js) in the source code. -_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ - -The following code snippet changes flowchart config: - -`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%` - -Here were are overriding only the flowchart config, and not the general config, where HtmlLabels is set to true and curve is set to linear. - -```mermaid-example -%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing Sequence diagram config via directive - -Some common sequence configurations are: - -- _width_: number -- _height_: number -- _messageAlign_: left, center, right -- _mirrorActors_: boolean -- _useMaxWidth_: boolean -- _rightAngles_: boolean -- _showSequenceNumbers_: boolean -- _wrap_: boolean - -For complete list of sequence diagram configurations, see _defaultConfig.js_ in the source code. -_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ - -So, `wrap` by default has a value of `false` for sequence diagrams. - -Let us see an example: - -```mermaid-example -sequenceDiagram - -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` - -Now let us enable wrap for sequence diagrams. - -The following code snippet changes sequence diagram config for `wrap` to `true`: - -`%%{init: { "sequence": { "wrap": true} } }%%` - -Using in the diagram above, the wrap will be enabled. - -```mermaid-example -%%{init: { "sequence": { "wrap": true, "width":300 } } }%% -sequenceDiagram -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` diff --git a/vdocs/intro/img/Code-Preview-Config.png b/vdocs/intro/img/Code-Preview-Config.png deleted file mode 100644 index 426e6bf63304aba149b046e6e7c78f58dcbaf1ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148873 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�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 diff --git a/vdocs/intro/img/Live-Editor-Choices.png b/vdocs/intro/img/Live-Editor-Choices.png deleted file mode 100644 index 5b4c2086dbce6311838b5ce33e34fc2b4c8e340a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53011 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≦O_^+~1=%YCo=H`jgY~#| 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 C;wEkY diff --git a/vdocs/intro/img/book-banner-post-release.jpg b/vdocs/intro/img/book-banner-post-release.jpg deleted file mode 100644 index 9ce3cc6fc7fc025b55f357403f572a6860d17625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75158 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%0A0K`3D|4*_4WyPt)PO+ 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%0Dny~x4UA0Z<K`AQ-lB5~WQd)!i|Ew@ag-Lu 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 diff --git a/vdocs/intro/index.md b/vdocs/intro/index.md deleted file mode 100644 index e2f36651f4..0000000000 --- a/vdocs/intro/index.md +++ /dev/null @@ -1,398 +0,0 @@ -# About Mermaid - -**Mermaid lets you create diagrams and visualizations using text and code.** - -It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. - -> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](./n00b-syntaxReference.md). - -<img src="/header.png" alt="" /> - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) - -<!-- Mermaid book banner --> - -[![Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!](img/book-banner-post-release.jpg)](https://mermaid-js.github.io/mermaid/landing/) - -<!-- <Main description> --> - -Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. - -> Doc-Rot is a Catch-22 that Mermaid helps to solve. - -Diagramming and documentation costs precious developer time and gets outdated quickly. -But not having diagrams or docs ruins productivity and hurts organizational learning.<br/> -Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).<br/> -<br/> -Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).<br/> -[Tutorials](../config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). - -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). - -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/docs/development.md) | 📜 [Version Log](../community/CHANGELOG.md) | 🔌 [Plug-Ins](../misc/integrations.md) - -::: warning 🖖 -Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). -::: - -:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!!** - -**Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project 🙏** - -In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. - -<a href="https://applitools.com/"> -<svg width="170" height="32" viewBox="0 0 170 32" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="a" maskUnits="userSpaceOnUse" x="27" y="0" width="143" height="32"><path fill-rule="evenodd" clip-rule="evenodd" d="M27.732.227h141.391v31.19H27.733V.227z" fill="#fff"></path></mask><g mask="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M153.851 22.562l1.971-3.298c1.291 1.219 3.837 2.402 5.988 2.402 1.971 0 2.903-.753 2.903-1.829 0-2.832-10.253-.502-10.253-7.313 0-2.904 2.51-5.45 7.099-5.45 2.904 0 5.234 1.004 6.955 2.367l-1.829 3.226c-1.039-1.075-3.011-2.008-5.126-2.008-1.65 0-2.725.717-2.725 1.685 0 2.546 10.289.395 10.289 7.386 0 3.19-2.724 5.52-7.528 5.52-3.012 0-5.916-1.003-7.744-2.688zm-5.7 2.259h4.553V.908h-4.553v23.913zm-6.273-8.676c0-2.689-1.578-5.02-4.446-5.02-2.832 0-4.409 2.331-4.409 5.02 0 2.724 1.577 5.055 4.409 5.055 2.868 0 4.446-2.33 4.446-5.055zm-13.588 0c0-4.912 3.442-9.07 9.142-9.07 5.736 0 9.178 4.158 9.178 9.07 0 4.911-3.442 9.106-9.178 9.106-5.7 0-9.142-4.195-9.142-9.106zm-5.628 0c0-2.689-1.577-5.02-4.445-5.02-2.832 0-4.41 2.331-4.41 5.02 0 2.724 1.578 5.055 4.41 5.055 2.868 0 4.445-2.33 4.445-5.055zm-13.587 0c0-4.912 3.441-9.07 9.142-9.07 5.736 0 9.178 4.158 9.178 9.07 0 4.911-3.442 9.106-9.178 9.106-5.701 0-9.142-4.195-9.142-9.106zm-8.425 4.338v-8.999h-2.868v-3.98h2.868V2.773h4.553v4.733h3.514v3.979h-3.514v7.78c0 1.111.574 1.936 1.578 1.936.681 0 1.326-.251 1.577-.538l.968 3.478c-.681.609-1.9 1.11-3.8 1.11-3.191 0-4.876-1.648-4.876-4.767zm-8.962 4.338h4.553V7.505h-4.553V24.82zm-.43-21.905a2.685 2.685 0 012.688-2.69c1.506 0 2.725 1.184 2.725 2.69a2.724 2.724 0 01-2.725 2.724c-1.47 0-2.688-1.219-2.688-2.724zM84.482 24.82h4.553V.908h-4.553v23.913zm-6.165-8.676c0-2.976-1.793-5.02-4.41-5.02-1.47 0-3.119.825-3.908 1.973v6.094c.753 1.111 2.438 2.008 3.908 2.008 2.617 0 4.41-2.044 4.41-5.055zm-8.318 6.453v8.82h-4.553V7.504H70v2.187c1.327-1.685 3.227-2.618 5.342-2.618 4.446 0 7.672 3.299 7.672 9.07 0 5.773-3.226 9.107-7.672 9.107-2.043 0-3.907-.86-5.342-2.653zm-10.718-6.453c0-2.976-1.793-5.02-4.41-5.02-1.47 0-3.119.825-3.908 1.973v6.094c.753 1.111 2.438 2.008 3.908 2.008 2.617 0 4.41-2.044 4.41-5.055zm-8.318 6.453v8.82H46.41V7.504h4.553v2.187c1.327-1.685 3.227-2.618 5.342-2.618 4.446 0 7.672 3.299 7.672 9.07 0 5.773-3.226 9.107-7.672 9.107-2.043 0-3.908-.86-5.342-2.653zm-11.758-1.936V18.51c-.753-1.004-2.187-1.542-3.657-1.542-1.793 0-3.263.968-3.263 2.617 0 1.65 1.47 2.582 3.263 2.582 1.47 0 2.904-.502 3.657-1.506zm0 4.159v-1.829c-1.183 1.434-3.227 2.259-5.485 2.259-2.761 0-5.988-1.864-5.988-5.736 0-4.087 3.227-5.593 5.988-5.593 2.33 0 4.337.753 5.485 2.115V13.85c0-1.756-1.506-2.904-3.8-2.904-1.829 0-3.55.717-4.984 2.044L28.63 9.8c2.115-1.901 4.84-2.726 7.564-2.726 3.98 0 7.6 1.578 7.6 6.561v11.186h-4.588z" fill="#00A298"></path></g><path fill-rule="evenodd" clip-rule="evenodd" d="M14.934 16.177c0 1.287-.136 2.541-.391 3.752-1.666-1.039-3.87-2.288-6.777-3.752 2.907-1.465 5.11-2.714 6.777-3.753.255 1.211.39 2.466.39 3.753m4.6-7.666V4.486a78.064 78.064 0 01-4.336 3.567c-1.551-2.367-3.533-4.038-6.14-5.207C11.1 4.658 12.504 6.7 13.564 9.262 5.35 15.155 0 16.177 0 16.177s5.35 1.021 13.564 6.915c-1.06 2.563-2.463 4.603-4.507 6.415 2.607-1.169 4.589-2.84 6.14-5.207a77.978 77.978 0 014.336 3.568v-4.025s-.492-.82-2.846-2.492c.6-1.611.93-3.354.93-5.174a14.8 14.8 0 00-.93-5.174c2.354-1.673 2.846-2.492 2.846-2.492" fill="#00A298"></path></svg> -</a> - -## Diagram Types - -### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) - -```mmd -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -``` - -```mermaid -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -``` - -### [Sequence diagram](../syntax/sequenceDiagram.md) - -```mmd -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts <br/>prevail! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts <br/>prevail! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -### [Gantt diagram](../syntax/gantt.md) - -```mmd -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram to mermaid - excludes weekdays 2014-01-10 - - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d -``` - -```mermaid -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram to mermaid - excludes weekdays 2014-01-10 - - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d -``` - -### [Class diagram](../syntax/classDiagram.md) - -```mmd -classDiagram - Class01 <|-- AveryLongClass : Cool - Class03 *-- Class04 - Class05 o-- Class06 - Class07 .. Class08 - Class09 --> C2 : Where am i? - Class09 --* C3 - Class09 --|> Class07 - Class07 : equals() - Class07 : Object[] elementData - Class01 : size() - Class01 : int chimp - Class01 : int gorilla - Class08 <--> C2: Cool label -``` - -```mermaid -classDiagram - Class01 <|-- AveryLongClass : Cool - Class03 *-- Class04 - Class05 o-- Class06 - Class07 .. Class08 - Class09 --> C2 : Where am i? - Class09 --* C3 - Class09 --|> Class07 - Class07 : equals() - Class07 : Object[] elementData - Class01 : size() - Class01 : int chimp - Class01 : int gorilla - Class08 <--> C2: Cool label -``` - -### Git graph - -```mmd - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -```mermaid - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) - -```mmd -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -```mermaid -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -### [User Journey Diagram] (../syntax/userjourney.md) - -```mmd -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -```mermaid -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -## Installation - -**In depth guides and examples can be found at [Getting Started](n00b-gettingStarted) and [Usage](../config/usage).** - -**It would also be helpful to learn more about mermaid's [Syntax](n00b-syntaxReference).** - -### CDN - -``` -https://unpkg.com/mermaid@<version>/dist/ -``` - -To select a version: - -Replace `<version>` with the desired version number. - -Latest Version: [https://unpkg.com/browse/mermaid@8.8.0/](https://unpkg.com/browse/mermaid@8.8.0/) - -## Deploying Mermaid - -To Deploy Mermaid: - -1. You will need to install node v16, which would have npm -2. Download yarn using npm -3. Enter the following command: `yarn add mermaid` -4. You can then add mermaid as a dev dependency using this command: - `yarn add --dev mermaid` - -### [Mermaid API](../config/Setup.md): - -**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** - -```html -<script type="module"> - import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs'; - mermaid.initialize({ startOnLoad: true }); -</script> -``` - -**Doing so will command the mermaid parser to look for the `<div>` or `<pre>` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.** - -**Examples can be found at** [Other examples](../syntax/examples) - -## Sibling projects - -- [Mermaid Live Editor](https://github.com/mermaid-js/mermaid-live-editor) -- [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli) -- [Mermaid Webpack Demo](https://github.com/mermaidjs/mermaid-webpack-demo) -- [Mermaid Parcel Demo](https://github.com/mermaidjs/mermaid-parcel-demo) - -## Request for Assistance - -Things are piling up and I have a hard time keeping up. It would be great if we could form a core team of developers to cooperate -with the future development of mermaid. - -As part of this team you would get write access to the repository and would -represent the project when answering questions and issues. - -Together we could continue the work with things like: - -- Adding more types of diagrams like mindmaps, ert diagrams, etc. -- Improving existing diagrams - -Don't hesitate to contact me if you want to get involved! - -## For contributors - -### Setup - -```sh -yarn install -``` - -### Build - -```sh -yarn build:watch -``` - -### Lint - -```sh -yarn lint -``` - -We use [eslint](https://eslint.org/). -We recommend you to install [editor plugins](https://eslint.org/docs/user-guide/integrations) to get real time lint result. - -### Test - -```sh -yarn test -``` - -Manual test in browser: open `dist/index.html` - -### Release - -For those who have the permission to do so: - -Update version number in `package.json`. - -```sh -npm publish -``` - -The above command generates files into the `dist` folder and publishes them to npmjs.org. - -## Related projects - -- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) -- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) -- [HTTP Server](https://github.com/TomWright/mermaid-server) - -## Contributors - -[![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) - -Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out. - -Detailed information about how to contribute can be found in the [contribution guide](#) - -## Security and safe diagrams - -For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. - -As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security. - -_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._ - -## Reporting vulnerabilities - -To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. - -## Appreciation - -A quick note from Knut Sveidqvist: - -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ -> -> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ - ---- - -_Mermaid was created by Knut Sveidqvist for easier documentation._ - -<style scoped> - #contributors + p, - #about-mermaid + p + p + blockquote + img + p - { - display: flex - } - - #contributors + p a, - #about-mermaid + p + p + blockquote + img + p a - { - margin: 0 0.5rem - } - - .dark #VPContent > div > div > div.content > div > main > div > div > img - { - filter: invert(1) hue-rotate(217deg) contrast(0.72); - } -</style> diff --git a/vdocs/misc/faq.md b/vdocs/misc/faq.md deleted file mode 100644 index 698061deff..0000000000 --- a/vdocs/misc/faq.md +++ /dev/null @@ -1,11 +0,0 @@ -# Frequently Asked Questions - -1. [How to add title to flowchart?](https://github.com/knsv/mermaid/issues/556#issuecomment-363182217) -1. [How to specify custom CSS file?](https://github.com/mermaidjs/mermaid.cli/pull/24#issuecomment-373402785) -1. [How to fix tooltip misplacement issue?](https://github.com/knsv/mermaid/issues/542#issuecomment-3343564621) -1. [How to specify gantt diagram xAxis format?](https://github.com/knsv/mermaid/issues/269#issuecomment-373229136) -1. [How to bind an event?](https://github.com/knsv/mermaid/issues/372) -1. [How to add newline in the text?](https://github.com/knsv/mermaid/issues/384#issuecomment-281339381) -1. [How to have special characters in link text?](https://github.com/knsv/mermaid/issues/407#issuecomment-329944735) -1. [How to change Flowchart curve style?](https://github.com/knsv/mermaid/issues/580#issuecomment-373929046) -1. [How to create a Flowchart end-Node that says "End"](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897) diff --git a/vdocs/misc/integrations.md b/vdocs/misc/integrations.md deleted file mode 100644 index 4147059a03..0000000000 --- a/vdocs/misc/integrations.md +++ /dev/null @@ -1,180 +0,0 @@ -# Integrations - -The following list is a compilation of different integrations and plugins that allow the rendering of mermaid definitions within other applications. - -They also serve as proof of concept, for the variety of things that can be built with mermaid. - -## Productivity - -- [GitHub](https://github.com) (**Native support**) - - [Using code blocks](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) (**Native support**) - - [GitHub action: Compile mermaid to image](https://github.com/neenjaw/compile-mermaid-markdown-action) - - [svg-generator](https://github.com/SimonKenyonShepard/mermaidjs-github-svg-generator) -- [GitLab](https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts) (**Native support**) -- [Gitea](https://gitea.io) (**Native support**) -- [Azure Devops](https://docs.microsoft.com/en-us/azure/devops/project/wiki/wiki-markdown-guidance?view=azure-devops#add-mermaid-diagrams-to-a-wiki-page) (**Native support**) -- [Tuleap](https://docs.tuleap.org/user-guide/writing-in-tuleap.html#graphs) (**Native support**) -- [Joplin](https://joplinapp.org) (**Native support**) -- [Notion](https://notion.so) (**Native support**) -- [Observable](https://observablehq.com/@observablehq/mermaid) (**Native support**) -- [GitBook](https://gitbook.com) - - [Mermaid Plugin](https://github.com/JozoVilcek/gitbook-plugin-mermaid) - - [Markdown with Mermaid CLI](https://github.com/miao1007/gitbook-plugin-mermaid-cli) - - [Mermaid plugin for GitBook](https://github.com/wwformat/gitbook-plugin-mermaid-pdf) -- [LiveBook](https://livebook.dev) (**Native support**) -- [Atlassian Products](https://www.atlassian.com) - - [Mermaid Plugin for Confluence](https://marketplace.atlassian.com/apps/1214124/mermaid-plugin-for-confluence?hosting=server&tab=overview) - - [CloudScript.io Addon](https://marketplace.atlassian.com/apps/1219878/cloudscript-io-mermaid-addon?hosting=cloud&tab=overview) - - [Auto convert diagrams in Jira](https://github.com/coddingtonbear/jirafs-mermaid) -- [Redmine](https://redmine.org) - - [Mermaid Macro](https://www.redmine.org/plugins/redmine_mermaid_macro) - - [redmine-mermaid](https://github.com/styz/redmine_mermaid) - - [markdown-for-mermaid-plugin](https://github.com/jamieh-mongolian/markdown-for-mermaid-plugin) -- [Jetsbrain IDE eg Pycharm](https://www.jetbrains.com/go/guide/tips/mermaid-js-support-in-markdown/) -- [mermerd](https://github.com/KarnerTh/mermerd) - -## CRM/ERP/Similar - -- [coreBOS](https://blog.corebos.org/blog/december2019) - -## Blogs - -- [Wordpress](https://wordpress.org) - - [WordPress Markdown Editor](https://wordpress.org/plugins/wp-githuber-md) - - [WP-ReliableMD](https://wordpress.org/plugins/wp-reliablemd/) -- [Hexo](https://hexo.io) - - [hexo-filter-mermaid-diagrams](https://github.com/webappdevelp/hexo-filter-mermaid-diagrams) - - [hexo-tag-mermaid](https://github.com/JameChou/hexo-tag-mermaid) - - [hexo-mermaid-diagrams](https://github.com/mslxl/hexo-mermaid-diagrams) - -## CMS - -- [VitePress](https://vitepress.vuejs.org/) - - [Plugin for Mermaid.js](https://emersonbottero.github.io/vitepress-plugin-mermaid/) -- [VuePress](https://vuepress.vuejs.org/) - - [Plugin for Mermaid.js](https://github.com/eFrane/vuepress-plugin-mermaidjs) -- [Grav CMS](https://getgrav.org/) - - [Mermaid Diagrams](https://github.com/DanielFlaum/grav-plugin-mermaid-diagrams) - - [Gitlab Markdown Adapter](https://github.com/Goutte/grav-plugin-gitlab-markdown-adapter) - -## Communication - -- [Discourse](https://discourse.org) - - [Mermaid Plugin](https://github.com/pnewell/discourse-mermaid), [And](https://github.com/unfoldingWord-dev/discourse-mermaid) -- [Mattermost](https://mattermost.com/) - - [Mermaid Plugin](https://github.com/SpikeTings/Mermaid) -- [phpBB](https://phpbb.com) - - [phpbb-ext-mermaid](https://github.com/AlfredoRamos/phpbb-ext-mermaid) -- [NodeBB](https://nodebb.org) - - [Mermaid Plugin](https://www.npmjs.com/package/nodebb-plugin-mermaid) - -## Wikis - -- [MediaWiki](https://www.mediawiki.org) - - [Mermaid Extension](https://www.mediawiki.org/wiki/Extension:Mermaid) - - [Flex Diagrams Extension](https://www.mediawiki.org/wiki/Extension:Flex_Diagrams) -- [Semantic Media Wiki](https://semantic-mediawiki.org) - - [Mermaid Plugin](https://github.com/SemanticMediaWiki/Mermaid) -- [FosWiki](https://foswiki.org) - - [Mermaid Plugin](https://foswiki.org/Extensions/MermaidPlugin) -- [DokuWiki](https://dokuwiki.org) - - [Flowcharts](https://www.dokuwiki.org/plugin:flowcharts?s[]=mermaid) - - [ComboStrap](https://combostrap.com/mermaid) -- [TiddlyWiki](https://tiddlywiki.com/) - - [mermaid-tw5: full js library](https://github.com/efurlanm/mermaid-tw5) - - [tw5-mermaid: wrapper for Mermaid Live](https://github.com/jasonmhoule/tw5-mermaid) - -## Editor Plugins - -- [Vs Code](https://code.visualstudio.com/) - - [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid) - - [Mermaid Preview](https://marketplace.visualstudio.com/items?itemName=vstirbu.vscode-mermaid-preview) - - [Mermaid Markdown Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=bpruitt-goddard.mermaid-markdown-syntax-highlighting) - - [Mermaid Editor](https://marketplace.visualstudio.com/items?itemName=tomoyukim.vscode-mermaid-editor) - - [Mermaid Export](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.mermaid-export) - - [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf) - - [Preview](https://marketplace.visualstudio.com/items?itemName=searKing.preview-vscode) - - [Preview Sequence Diagrams](https://marketplace.visualstudio.com/items?itemName=arichika.previewseqdiag-vscode) -- [Markdown-It](https://github.com/markdown-it/markdown-it) - - [Textual UML Parser](https://github.com/manastalukdar/markdown-it-textual-uml) - - [Mermaid Plugin](https://github.com/tylingsoft/markdown-it-mermaid) - - [md-it-mermaid](https://github.com/iamcco/md-it-mermaid) - - [markdown-it-mermaid-fence-new](https://github.com/Revomatico/markdown-it-mermaid-fence-new) - - [markdown-it-mermaid-less](https://github.com/searKing/markdown-it-mermaid-less) -- [Atom](https://atom.io) - - [Markdown Preview Enhanced](https://atom.io/packages/markdown-preview-enhanced) - - [Atom Mermaid](https://atom.io/packages/atom-mermaid) - - [Language Mermaid Syntax Highlighter](https://atom.io/packages/language-mermaid) -- [Sublime Text 3](https://sublimetext.com) - - [Mermaid Package](https://packagecontrol.io/packages/Mermaid) -- [Astah](https://astah.net) - - [Export to Mermaid](https://github.com/Avens666/Astah_Jude_UML_export_to_Markdown-mermaid-Plantuml-) -- [Light Table](http://lighttable.com/) - - [Mermaid Plugin](https://github.com/cldwalker/Mermaid) -- [Draw.io](https://draw.io) - [Plugin](https://github.com/nopeslide/drawio_mermaid_plugin) -- [Inkdrop](https://www.inkdrop.app) - [Plugin](https://github.com/inkdropapp/inkdrop-mermaid) -- [Vim](https://www.vim.org) - - [Vim Diagram Syntax](https://github.com/zhaozg/vim-diagram) -- [GNU Emacs](https://www.gnu.org/software/emacs/) - - [Major mode for .mmd files](https://github.com/abrochard/mermaid-mode) - - [Org-Mode integration](https://github.com/arnm/ob-mermaid) -- [Brackets](https://brackets.io/) - - [Mermaid Preview](https://github.com/AlanHohn/mermaid-preview) -- [Iodide](https://github.com/iodide-project/iodide) - - [iodide-mermaid-plugin](https://github.com/iodide-project/iodide-mermaid-plugin) -- [Google docs](https://docs.google.com/) - - [Mermaid plugin for google docs](https://workspace.google.com/marketplace/app/mermaid/636321283856) -- [Podlite](https://github.com/zag/podlite-desktop) - - [Named block =Diagram](https://github.com/zag/podlite/tree/main/packages/podlite-diagrams) -- [GNU Nano](https://www.nano-editor.org/) - - [Nano Mermaid](https://github.com/Yash-Singh1/nano-mermaid) - -## Document Generation - -- [Sphinx](https://www.sphinx-doc.org/en/master/) - - [sphinxcontrib-mermaid](https://github.com/mgaitan/sphinxcontrib-mermaid) -- [remark.js](https://remark.js.org/) - - [remark-mermaid](https://github.com/temando/remark-mermaid) -- [jSDoc](https://jsdoc.app/) - - [jsdoc-mermaid](https://github.com/Jellyvision/jsdoc-mermaid) -- [MkDocs](https://mkdocs.org) - - [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin) - - [mkdocs-material](https://github.com/squidfunk/mkdocs-material), check the [docs](https://squidfunk.github.io/mkdocs-material/reference/diagrams/) -- [Type Doc](https://typedoc.org/) - - [typedoc-plugin-mermaid](https://www.npmjs.com/package/typedoc-plugin-mermaid) -- [Docsy Hugo Theme](https://www.docsy.dev/docs/adding-content/lookandfeel/#diagrams-with-mermaid) (Native support in theme) -- [Codedoc](https://codedoc.cc/) - - [codedoc-mermaid-plugin](https://www.npmjs.com/package/codedoc-mermaid-plugin) -- [mdbook](https://rust-lang.github.io/mdBook/index.html) - - [mdbook-mermaid](https://github.com/badboy/mdbook-mermaid) - -## Browser Extensions - -| Name | Chrome Web Store | Firefox Add-ons | Opera | Edge | Source/Repository | -| ------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| GitHub + Mermaid | - | [🦊🔗](https://addons.mozilla.org/firefox/addon/github-mermaid/) | - | - | [🐙🔗](https://github.com/BackMarket/github-mermaid-extension) | -| Asciidoctor Live Preview | [🎡🔗](https://chrome.google.com/webstore/detail/asciidoctorjs-live-previe/iaalpfgpbocpdfblpnhhgllgbdbchmia) | - | - | [🌀🔗](https://microsoftedge.microsoft.com/addons/detail/asciidoctorjs-live-previ/pefkelkanablhjdekgdahplkccnbdggd?hl=en-US) | - | -| Diagram Tab | - | - | - | - | [🐙🔗](https://github.com/khafast/diagramtab) | -| Markdown Diagrams | [🎡🔗](https://chrome.google.com/webstore/detail/markdown-diagrams/pmoglnmodacnbbofbgcagndelmgaclel/) | [🦊🔗](https://addons.mozilla.org/en-US/firefox/addon/markdown-diagrams/) | [🔴🔗](https://addons.opera.com/en/extensions/details/markdown-diagrams/) | [🌀🔗](https://microsoftedge.microsoft.com/addons/detail/markdown-diagrams/hceenoomhhdkjjijnmlclkpenkapfihe) | [🐙🔗](https://github.com/marcozaccari/markdown-diagrams-browser-extension/tree/master/doc/examples) | -| Markdown Viewer | - | [🦊🔗](https://addons.mozilla.org/en-US/firefox/addon/markdown-viewer-chrome/) | - | - | [🐙🔗](https://github.com/simov/markdown-viewer) | -| Extensions for Mermaid | - | [🦊🔗](https://addons.mozilla.org/en-US/firefox/addon/markdown-viewer-chrome/) | [🔴🔗](https://addons.opera.com/en/extensions/details/extensions-for-mermaid/) | - | [🐙🔗](https://github.com/Stefan-S/mermaid-extension) | -| Chrome Diagrammer | [🎡🔗](https://chrome.google.com/webstore/detail/chrome-diagrammer/bkpbgjmkomfoakfklcjeoegkklgjnnpk) | - | - | - | - | -| Mermaid Diagrams | [🎡🔗](https://chrome.google.com/webstore/detail/mermaid-diagrams/phfcghedmopjadpojhmmaffjmfiakfil) | - | - | - | - | -| Mermaid Markdown | [🎡🔗](https://chrome.google.com/webstore/detail/mermaid-markdown/mboeoikjijmjcjgpccghbcoegikliijg) | - | - | - | - | -| Monkeys | [🎡🔗](https://chrome.google.com/webstore/detail/monkeys-mermaid-for-githu/cplfdpoajbclbgphaphphcldamfkjlgi) | - | - | - | - | -| Mermaid Previewer | [🎡🔗](https://chrome.google.com/webstore/detail/mermaid-previewer/oidjnlhbegipkcklbdfnbkikplpghfdl) | - | - | - | - | - -## Other - -- [Jekyll](https://jekyllrb.com/) - - [jekyll-mermaid](https://rubygems.org/gems/jekyll-mermaid) - - [jekyll-mermaid-diagrams](https://github.com/fuzhibo/jekyll-mermaid-diagrams) -- [Reveal.js](https://github.com/hakimel/reveal.js) - - [reveal.js-mermaid-plugin](https://github.com/ludwick/reveal.js-mermaid-plugin) -- [Bisheng](https://www.npmjs.com/package/bisheng) - - [bisheng-plugin-mermaid](https://github.com/yct21/bisheng-plugin-mermaid) -- [Reveal CK](https://github.com/jedcn/reveal-ck) - - [reveal-ck-mermaid-plugin](https://github.com/tmtm/reveal-ck-mermaid-plugin) -- [mermaid-server: Generate diagrams using a HTTP request](https://github.com/TomWright/mermaid-server) -- [ExDoc](https://github.com/elixir-lang/ex_doc) - - [Rendering Mermaid graphs](https://github.com/elixir-lang/ex_doc#rendering-mermaid-graphs) diff --git a/vdocs/public/.nojekyll b/vdocs/public/.nojekyll deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/vdocs/public/header.png b/vdocs/public/header.png deleted file mode 100644 index 6db8635c9d03eb8b40b21f72bdefb07217fcf359..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69565 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 vM;@QFomwEf=Z>KI7 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≈emE(K<l^eH1-t z^G9UC(+sU<!9$r9Eqn0osW}`Q6Xp^dYdDS;-4ifqAf0zL0(wz^Q8A)+D>5oXDcW3b z%j^#gaCN{aBYVUil*3_%BQSuA-v(Ih*js6-(PTT`S}C)uY9rf-Cn4T1W3V*3hChwQ zHLB|~0`TU}=3iy$^d|YhZNai$VqRXkF$CojpXDHCz?CP)5)bx~`hZ#YQn@S;0OSGX z;QT<0@L!Mc`K7W#y&dV}pat;dv$9}@9R{TLLme*9AL_d>t)(6W@Yy~omenj1D#O&M z=XhAAr~p2Asso;aNrZ?G4-&xo;LRDz$aoN}hSgOF-(w5qn*S-GB|@hKLYbisJ@Bzv z*QpaV*kk`!S}VGc=8ZY4aU$sY(1sab9O9lmFW)gT^^fGiAIUzS8q=CjpOaqIQuR7K z?}6fXz+zdJ_voIOMlrsON3?AP27@7kP3(d_+=2-gZczx(08>M&>MEhNl+Zdhs+t!x zH7;oCDx%RB(CE{;1@-?=;7{@(dWQdRL4XH>9}*n@GlMnBGdRqRLV#WNAh{FH0RC=X Z1U$jbBb@w}pbtF+157N98Ah&m{tH}yzQq6l diff --git a/vdocs/syntax/c4c.md b/vdocs/syntax/c4c.md deleted file mode 100644 index 0ab805182c..0000000000 --- a/vdocs/syntax/c4c.md +++ /dev/null @@ -1,363 +0,0 @@ -# C4 Diagrams - -> C4 Diagram: This is an experimental diagram for now. The syntax and properties can change in future releases. Proper documentation will be provided when the syntax is stable. - -Mermaid's c4 diagram syntax is compatible with plantUML. See example below: - -```mermaid-example - C4Context - title System Context diagram for Internet Banking System - Enterprise_Boundary(b0, "BankBoundary0") { - Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") - Person(customerB, "Banking Customer B") - Person_Ext(customerC, "Banking Customer C", "desc") - - Person(customerD, "Banking Customer D", "A customer of the bank, <br/> with personal bank accounts.") - - System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - - Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } - } - } - - BiRel(customerA, SystemAA, "Uses") - BiRel(SystemAA, SystemE, "Uses") - Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") - Rel(SystemC, customerA, "Sends e-mails to") - - UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red") - UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5") - UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10") - UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50") - UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20") - - UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1") - - -``` - -For an example, see the source code demos/index.html - -5 types of C4 charts are supported. - -- System Context (C4Context) -- Container diagram (C4Container) -- Component diagram (C4Component) -- Dynamic diagram (C4Dynamic) -- Deployment diagram (C4Deployment) - -Please refer to the linked document [C4-PlantUML syntax](https://github.com/plantuml-stdlib/C4-PlantUML/blob/master/README.md) for how to write the c4 diagram. - -C4 diagram is fixed style, such as css color, so different css is not provided under different skins. -updateElementStyle and UpdateElementStyle are written in the diagram last part. updateElementStyle is inconsistent with the original definition and updates the style of the relationship, including the offset of the text label relative to the original position. - -The layout does not use a fully automated layout algorithm. The position of shapes is adjusted by changing the order in which statements are written. So there is no plan to support the following Layout statements. -The number of shapes per row and the number of boundaries can be adjusted using UpdateLayoutConfig. - -- Layout -- - Lay_U, Lay_Up -- - Lay_D, Lay_Down -- - Lay_L, Lay_Left -- - Lay_R, Lay_Right - -The following unfinished features are not supported in the short term. - -- [ ] sprite -- [ ] tags -- [ ] link -- [ ] Legend - -- [x] System Context -- - [x] Person(alias, label, ?descr, ?sprite, ?tags, $link) -- - [x] Person_Ext -- - [x] System(alias, label, ?descr, ?sprite, ?tags, $link) -- - [x] SystemDb -- - [x] SystemQueue -- - [x] System_Ext -- - [x] SystemDb_Ext -- - [x] SystemQueue_Ext -- - [x] Boundary(alias, label, ?type, ?tags, $link) -- - [x] Enterprise_Boundary(alias, label, ?tags, $link) -- - [x] System_Boundary - -- [x] Container diagram -- - [x] Container(alias, label, ?techn, ?descr, ?sprite, ?tags, $link) -- - [x] ContainerDb -- - [x] ContainerQueue -- - [x] Container_Ext -- - [x] ContainerDb_Ext -- - [x] ContainerQueue_Ext -- - [x] Container_Boundary(alias, label, ?tags, $link) - -- [x] Component diagram -- - [x] Component(alias, label, ?techn, ?descr, ?sprite, ?tags, $link) -- - [x] ComponentDb -- - [x] ComponentQueue -- - [x] Component_Ext -- - [x] ComponentDb_Ext -- - [x] ComponentQueue_Ext - -- [x] Dynamic diagram -- - [x] RelIndex(index, from, to, label, ?tags, $link) - -- [x] Deployment diagram -- - [x] Deployment_Node(alias, label, ?type, ?descr, ?sprite, ?tags, $link) -- - [x] Node(alias, label, ?type, ?descr, ?sprite, ?tags, $link): short name of Deployment_Node() -- - [x] Node_L(alias, label, ?type, ?descr, ?sprite, ?tags, $link): left aligned Node() -- - [x] Node_R(alias, label, ?type, ?descr, ?sprite, ?tags, $link): right aligned Node() - -- [x] Relationship Types -- - [x] Rel(from, to, label, ?techn, ?descr, ?sprite, ?tags, $link) -- - [x] BiRel (bidirectional relationship) -- - [x] Rel_U, Rel_Up -- - [x] Rel_D, Rel_Down -- - [x] Rel_L, Rel_Left -- - [x] Rel_R, Rel_Right -- - [x] Rel_Back -- - [x] RelIndex \* Compatible with C4-Plantuml syntax, but ignores the index parameter. The sequence number is determined by the order in which the rel statements are written. - -- [ ] Custom tags/stereotypes support and skinparam updates -- - [ ] AddElementTag(tagStereo, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite): Introduces a new element tag. The styles of the tagged elements are updated and the tag is displayed in the calculated legend. -- - [ ] AddRelTag(tagStereo, ?textColor, ?lineColor, ?lineStyle, ?sprite, ?techn, ?legendText, ?legendSprite): Introduces a new Relationship tag. The styles of the tagged relationships are updated and the tag is displayed in the calculated legend. -- - [x] UpdateElementStyle(elementName, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite): This call updates the default style of the elements (component, ...) and creates no additional legend entry. -- - [x] UpdateRelStyle(from, to, ?textColor, ?lineColor, ?offsetX, ?offsetY): This call updates the default relationship colors and creates no additional legend entry. Two new parameters, offsetX and offsetY, are added to set the offset of the original position of the text. -- - [ ] RoundedBoxShape(): This call returns the name of the rounded box shape and can be used as ?shape argument. -- - [ ] EightSidedShape(): This call returns the name of the eight sided shape and can be used as ?shape argument. -- - [ ] DashedLine(): This call returns the name of the dashed line and can be used as ?lineStyle argument. -- - [ ] DottedLine(): This call returns the name of the dotted line and can be used as ?lineStyle argument. -- - [ ] BoldLine(): This call returns the name of the bold line and can be used as ?lineStyle argument. -- - [x] UpdateLayoutConfig(?c4ShapeInRow, ?c4BoundaryInRow): New. This call updates the default c4ShapeInRow(4) and c4BoundaryInRow(2). - -There are two ways to assign parameters with question marks. One uses the non-named parameter assignment method in the order of the parameters, and the other uses the named parameter assignment method, where the name must start with a $ symbol. - -Example: UpdateRelStyle(from, to, ?textColor, ?lineColor, ?offsetX, ?offsetY) - -``` -UpdateRelStyle(customerA, bankA, "red", "blue", "-40", "60") -UpdateRelStyle(customerA, bankA, $offsetX="-40", $offsetY="60", $lineColor="blue", $textColor="red") -UpdateRelStyle(customerA, bankA, $offsetY="60") - -``` - -## C4 System Context Diagram (C4Context) - -```mermaid-example - C4Context - title System Context diagram for Internet Banking System - Enterprise_Boundary(b0, "BankBoundary0") { - Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") - Person(customerB, "Banking Customer B") - Person_Ext(customerC, "Banking Customer C", "desc") - - Person(customerD, "Banking Customer D", "A customer of the bank, <br/> with personal bank accounts.") - - System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - - Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } - } - } - - BiRel(customerA, SystemAA, "Uses") - BiRel(SystemAA, SystemE, "Uses") - Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") - Rel(SystemC, customerA, "Sends e-mails to") - - UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red") - UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5") - UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10") - UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50") - UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20") - - UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1") - -``` - -## C4 Container diagram (C4Container) - -```mermaid-example - C4Container - title Container diagram for Internet Banking System - - System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system", $tags="v1.0") - Person(customer, Customer, "A customer of the bank, with personal bank accounts", $tags="v1.0") - - Container_Boundary(c1, "Internet Banking") { - Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to cutomers via their web browser") - Container_Ext(mobile_app, "Mobile App", "C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device") - Container(web_app, "Web Application", "Java, Spring MVC", "Delivers the static content and the Internet banking SPA") - ContainerDb(database, "Database", "SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.") - ContainerDb_Ext(backend_api, "API Application", "Java, Docker Container", "Provides Internet banking functionality via API") - - } - - System_Ext(banking_system, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - Rel(customer, web_app, "Uses", "HTTPS") - UpdateRelStyle(customer, web_app, $offsetY="60", $offsetX="90") - Rel(customer, spa, "Uses", "HTTPS") - UpdateRelStyle(customer, spa, $offsetY="-40") - Rel(customer, mobile_app, "Uses") - UpdateRelStyle(customer, mobile_app, $offsetY="-30") - - Rel(web_app, spa, "Delivers") - UpdateRelStyle(web_app, spa, $offsetX="130") - Rel(spa, backend_api, "Uses", "async, JSON/HTTPS") - Rel(mobile_app, backend_api, "Uses", "async, JSON/HTTPS") - Rel_Back(database, backend_api, "Reads from and writes to", "sync, JDBC") - - Rel(email_system, customer, "Sends e-mails to") - UpdateRelStyle(email_system, customer, $offsetX="-45") - Rel(backend_api, email_system, "Sends e-mails using", "sync, SMTP") - UpdateRelStyle(backend_api, email_system, $offsetY="-60") - Rel(backend_api, banking_system, "Uses", "sync/async, XML/HTTPS") - UpdateRelStyle(backend_api, banking_system, $offsetY="-50", $offsetX="-140") - -``` - -## C4 Component diagram (C4Component) - -```mermaid-example - C4Component - title Component diagram for Internet Banking System - API Application - - Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.") - Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.") - ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") - System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - Container_Boundary(api, "API Application") { - Component(sign, "Sign In Controller", "MVC Rest Controller", "Allows users to sign in to the internet banking system") - Component(accounts, "Accounts Summary Controller", "MVC Rest Controller", "Provides customers with a summary of their bank accounts") - Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.") - Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.") - - Rel(sign, security, "Uses") - Rel(accounts, mbsfacade, "Uses") - Rel(security, db, "Read & write to", "JDBC") - Rel(mbsfacade, mbs, "Uses", "XML/HTTPS") - } - - Rel_Back(spa, sign, "Uses", "JSON/HTTPS") - Rel(spa, accounts, "Uses", "JSON/HTTPS") - - Rel(ma, sign, "Uses", "JSON/HTTPS") - Rel(ma, accounts, "Uses", "JSON/HTTPS") - - UpdateRelStyle(spa, sign, $offsetY="-40") - UpdateRelStyle(spa, accounts, $offsetX="40", $offsetY="40") - - UpdateRelStyle(ma, sign, $offsetX="-90", $offsetY="40") - UpdateRelStyle(ma, accounts, $offsetY="-40") - - UpdateRelStyle(sign, security, $offsetX="-160", $offsetY="10") - UpdateRelStyle(accounts, mbsfacade, $offsetX="140", $offsetY="10") - UpdateRelStyle(security, db, $offsetY="-40") - UpdateRelStyle(mbsfacade, mbs, $offsetY="-40") - -``` - -## C4 Dynamic diagram (C4Dynamic) - -```mermaid-example - C4Dynamic - title Dynamic diagram for Internet Banking System - API Application - - ContainerDb(c4, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") - Container(c1, "Single-Page Application", "JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.") - Container_Boundary(b, "API Application") { - Component(c3, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.") - Component(c2, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.") - } - Rel(c1, c2, "Submits credentials to", "JSON/HTTPS") - Rel(c2, c3, "Calls isAuthenticated() on") - Rel(c3, c4, "select * from users where username = ?", "JDBC") - - UpdateRelStyle(c1, c2, $textColor="red", $offsetY="-40") - UpdateRelStyle(c2, c3, $textColor="red", $offsetX="-40", $offsetY="60") - UpdateRelStyle(c3, c4, $textColor="red", $offsetY="-40", $offsetX="10") - -``` - -## C4 Deployment diagram (C4Deployment) - -```mermaid-example - C4Deployment - title Deployment Diagram for Internet Banking System - Live - - Deployment_Node(mob, "Customer's mobile device", "Apple IOS or Android"){ - Container(mobile, "Mobile App", "Xamarin", "Provides a limited subset of the Internet Banking functionality to customers via their mobile device.") - } - - Deployment_Node(comp, "Customer's computer", "Mircosoft Windows or Apple macOS"){ - Deployment_Node(browser, "Web Browser", "Google Chrome, Mozilla Firefox,<br/> Apple Safari or Microsoft Edge"){ - Container(spa, "Single Page Application", "JavaScript and Angular", "Provides all of the Internet Banking functionality to customers via their web browser.") - } - } - - Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center"){ - Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS"){ - Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x"){ - Container(api, "API Application", "Java and Spring MVC", "Provides Internet Banking functionality via a JSON/HTTPS API.") - } - } - Deployment_Node(bb2, "bigbank-web*** x4", "Ubuntu 16.04 LTS"){ - Deployment_Node(apache2, "Apache Tomcat", "Apache Tomcat 8.x"){ - Container(web, "Web Application", "Java and Spring MVC", "Delivers the static content and the Internet Banking single page application.") - } - } - Deployment_Node(bigbankdb01, "bigbank-db01", "Ubuntu 16.04 LTS"){ - Deployment_Node(oracle, "Oracle - Primary", "Oracle 12c"){ - ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") - } - } - Deployment_Node(bigbankdb02, "bigbank-db02", "Ubuntu 16.04 LTS") { - Deployment_Node(oracle2, "Oracle - Secondary", "Oracle 12c") { - ContainerDb(db2, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") - } - } - } - - Rel(mobile, api, "Makes API calls to", "json/HTTPS") - Rel(spa, api, "Makes API calls to", "json/HTTPS") - Rel_U(web, spa, "Delivers to the customer's web browser") - Rel(api, db, "Reads from and writes to", "JDBC") - Rel(api, db2, "Reads from and writes to", "JDBC") - Rel_R(db, db2, "Replicates data to") - - UpdateRelStyle(spa, api, $offsetY="-40") - UpdateRelStyle(web, spa, $offsetY="-40") - UpdateRelStyle(api, db, $offsetY="-20", $offsetX="5") - UpdateRelStyle(api, db2, $offsetX="-40", $offsetY="-20") - UpdateRelStyle(db, db2, $offsetY="-10") - -``` diff --git a/vdocs/syntax/classDiagram.md b/vdocs/syntax/classDiagram.md deleted file mode 100644 index be77f1a1ab..0000000000 --- a/vdocs/syntax/classDiagram.md +++ /dev/null @@ -1,625 +0,0 @@ -# Class diagrams - -> "In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects." -> Wikipedia - -The class diagram is the main building block of object-oriented modeling. It is used for general conceptual modeling of the structure of the application, and for detailed modeling to translate the models into programming code. Class diagrams can also be used for data modeling. The classes in a class diagram represent both the main elements, interactions in the application, and the classes to be programmed. - -Mermaid can render class diagrams. - -```mermaid-example -classDiagram - Animal <|-- Duck - Animal <|-- Fish - Animal <|-- Zebra - Animal : +int age - Animal : +String gender - Animal: +isMammal() - Animal: +mate() - class Duck{ - +String beakColor - +swim() - +quack() - } - class Fish{ - -int sizeInFeet - -canEat() - } - class Zebra{ - +bool is_wild - +run() - } -``` - -## Syntax - -### Class - -UML provides mechanisms to represent class members, such as attributes and methods, and additional information about them. -A single instance of a class in the diagram contains three compartments: - -- The top compartment contains the name of the class. It is printed in bold and centered, and the first letter is capitalized. It may also contain optional annotation text describing the nature of the class. -- The middle compartment contains the attributes of the class. They are left-aligned and the first letter is lowercase. -- The bottom compartment contains the operations the class can execute. They are also left-aligned and the first letter is lowercase. - -```mermaid-example -classDiagram - class BankAccount - BankAccount : +String owner - BankAccount : +Bigdecimal balance - BankAccount : +deposit(amount) - BankAccount : +withdrawal(amount) - -``` - -## Define a class - -There are two ways to define a class: - -- Explicitly using keyword **class** like `class Animal` which would define the Animal class. -- Via a **relationship** which defines two classes at a time along with their relationship. For instance, `Vehicle <|-- Car`. - -```mermaid-example -classDiagram - class Animal - Vehicle <|-- Car -``` - -Naming convention: a class name should be composed only of alphanumeric characters (including unicode), and underscores. - -## Defining Members of a class - -UML provides mechanisms to represent class members such as attributes and methods, as well as additional information about them. - -Mermaid distinguishes between attributes and functions/methods based on if the **parenthesis** `()` are present or not. The ones with `()` are treated as functions/methods, and all others as attributes. - -There are two ways to define the members of a class, and regardless of whichever syntax is used to define the members, the output will still be same. The two different ways are : - -- Associate a member of a class using **:** (colon) followed by member name, useful to define one member at a time. For example: - -```mermaid-example -classDiagram -class BankAccount -BankAccount : +String owner -BankAccount : +BigDecimal balance -BankAccount : +deposit(amount) -BankAccount : +withdrawal(amount) -``` - -- Associate members of a class using **{}** brackets, where members are grouped within curly brackets. Suitable for defining multiple members at once. For example: - -```mermaid-example -classDiagram -class BankAccount{ - +String owner - +BigDecimal balance - +deposit(amount) - +withdrawal(amount) -} -``` - -#### Return Type - -Optionally you can end a method/function definition with the data type that will be returned (note: there must be a space between the final `)` and the return type). An example: - -```mermaid-example -classDiagram -class BankAccount{ - +String owner - +BigDecimal balance - +deposit(amount) bool - +withdrawal(amount) int -} -``` - -#### Generic Types - -Members can be defined using generic types, such as `List<int>`, for fields, parameters, and return types by enclosing the type within `~` (**tilde**). Note: **nested** type declarations such as `List<List<int>>` are not currently supported. - -Generics can be represented as part of a class definition and also in the parameters or the return value of a method/function: - -```mermaid-example -classDiagram -class Square~Shape~{ - int id - List~int~ position - setPoints(List~int~ points) - getPoints() List~int~ -} - -Square : -List~string~ messages -Square : +setMessages(List~string~ messages) -Square : +getMessages() List~string~ -``` - -#### Return Type - -Optionally you can end the method/function definition with the data type that will be returned. - -#### Visibility - -To describe the visibility (or encapsulation) of an attribute or method/function that is a part of a class (i.e. a class member), optional notation may be placed before that members' name: - -- `+` Public -- `-` Private -- `#` Protected -- `~` Package/Internal - -> _note_ you can also include additional _classifiers_ to a method definition by adding the following notation to the _end_ of the method, i.e.: after the `()`: -> -> - `*` Abstract e.g.: `someAbstractMethod()*` -> - `$` Static e.g.: `someStaticMethod()$` - -> _note_ you can also include additional _classifiers_ to a field definition by adding the following notation to the end of its name: -> -> - `$` Static e.g.: `String someField$` - -## Defining Relationship - -A relationship is a general term covering the specific types of logical connections found on class and object diagrams. - -``` -[classA][Arrow][ClassB] -``` - -There are eight different types of relations defined for classes under UML which are currently supported: - -| Type | Description | -| ----- | ------------- | -| <\|-- | Inheritance | -| \*-- | Composition | -| o-- | Aggregation | -| --> | Association | -| -- | Link (Solid) | -| ..> | Dependency | -| ..\|> | Realization | -| .. | Link (Dashed) | - -```mermaid-example -classDiagram -classA <|-- classB -classC *-- classD -classE o-- classF -classG <-- classH -classI -- classJ -classK <.. classL -classM <|.. classN -classO .. classP - -``` - -We can use the labels to describe the nature of the relation between two classes. Also, arrowheads can be used in the opposite direction as well: - -```mermaid-example -classDiagram -classA --|> classB : Inheritance -classC --* classD : Composition -classE --o classF : Aggregation -classG --> classH : Association -classI -- classJ : Link(Solid) -classK ..> classL : Dependency -classM ..|> classN : Realization -classO .. classP : Link(Dashed) - -``` - -### Labels on Relations - -It is possible to add label text to a relation: - -``` -[classA][Arrow][ClassB]:LabelText -``` - -```mermaid-example -classDiagram -classA <|-- classB : implements -classC *-- classD : composition -classE o-- classF : aggregation -``` - -### Two-way relations - -Relations can logically represent an N:M association: - -```mmd -classDiagram - Animal <|--|> Zebra -``` - -Here is the syntax: - -``` -[Relation Type][Link][Relation Type] -``` - -Where `Relation Type` can be one of: - -| Type | Description | -| ---- | ----------- | -| <\| | Inheritance | -| \* | Composition | -| o | Aggregation | -| > | Association | -| < | Association | -| \|> | Realization | - -And `Link` can be one of: - -| Type | Description | -| ---- | ----------- | -| -- | Solid | -| .. | Dashed | - -## Cardinality / Multiplicity on relations - -Multiplicity or cardinality in class diagrams indicates the number of instances of one class that can be linked to an instance of the other class. For example, each company will have one or more employees (not zero), and each employee currently works for zero or one companies. - -Multiplicity notations are placed near the end of an association. - -The different cardinality options are : - -- `1` Only 1 -- `0..1` Zero or One -- `1..*` One or more -- `*` Many -- `n` n {where n>1} -- `0..n` zero to n {where n>1} -- `1..n` one to n {where n>1} - -Cardinality can be easily defined by placing the text option within quotes `"` before or after a given arrow. For example: - -``` -[classA] "cardinality1" [Arrow] "cardinality2" [ClassB]:LabelText -``` - -```mermaid-example -classDiagram - Customer "1" --> "*" Ticket - Student "1" --> "1..*" Course - Galaxy --> "many" Star : Contains -``` - -## Annotations on classes - -It is possible to annotate classes with markers to provide additional metadata about the class. This can give a clearer indication about its nature. Some common annotations include: - -- `<<Interface>>` To represent an Interface class -- `<<Abstract>>` To represent an abstract class -- `<<Service>>` To represent a service class -- `<<Enumeration>>` To represent an enum - -Annotations are defined within the opening `<<` and closing `>>`. There are two ways to add an annotation to a class, and either way the output will be same: - -- In a **_separate line_** after a class is defined: - -```mermaid-example -classDiagram -class Shape -<<interface>> Shape -Shape : noOfVertices -Shape : draw() -``` - -- In a **_nested structure_** along with the class definition: - -```mermaid-example -classDiagram -class Shape{ - <<interface>> - noOfVertices - draw() -} -class Color{ - <<enumeration>> - RED - BLUE - GREEN - WHITE - BLACK -} - -``` - -## Comments - -Comments can be entered within a class diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text until the next newline will be treated as a comment, including any class diagram syntax. - -```mmd -classDiagram -%% This whole line is a comment classDiagram class Shape <<interface>> -class Shape{ - <<interface>> - noOfVertices - draw() -} -``` - -## Setting the direction of the diagram - -With class diagrams you can use the direction statement to set the direction in which the diagram will render: - -```mermaid-example -classDiagram - direction RL - class Student { - -idCard : IdCard - } - class IdCard{ - -id : int - -name : string - } - class Bike{ - -id : int - -name : string - } - Student "1" --o "1" IdCard : carries - Student "1" --o "1" Bike : rides -``` - -## Interaction - -It is possible to bind a click event to a node. The click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - -You would define these actions on a separate line after all classes have been declared. - -``` -action className "reference" "tooltip" -click className call callback() "tooltip" -click className href "url" "tooltip" -``` - -- _action_ is either `link` or `callback`, depending on which type of interaction you want to have called -- _className_ is the id of the node that the action will be associated with -- _reference_ is either the url link, or the function name for callback. -- (_optional_) tooltip is a string to be displayed when hovering over element (note: The styles of the tooltip are set by the class .mermaidTooltip.) -- note: callback function will be called with the nodeId as parameter. - -### Examples - -_URL Link:_ - -```mmd -classDiagram -class Shape -link Shape "https://www.github.com" "This is a tooltip for a link" -class Shape2 -click Shape2 href "https://www.github.com" "This is a tooltip for a link" -``` - -_Callback:_ - -```mmd -classDiagram -class Shape -callback Shape "callbackFunction" "This is a tooltip for a callback" -class Shape2 -click Shape2 call callbackFunction() "This is a tooltip for a callback" -``` - -```html -<script> - const callbackFunction = function () { - alert('A callback was triggered'); - }; -</script> -``` - -```mermaid -classDiagram - class Class01 - class Class02 - callback Class01 "callbackFunction" "Callback tooltip" - link Class02 "https://www.github.com" "This is a link" - class Class03 - class Class04 - click Class03 call callbackFunction() "Callback tooltip" - click Class04 href "https://www.github.com" "This is a link" -``` - -> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. - -Beginner's tip—a full example using interactive links in an HTML page: - -```html -<body> - <pre class="mermaid"> - classDiagram - Animal <|-- Duck - Animal <|-- Fish - Animal <|-- Zebra - Animal : +int age - Animal : +String gender - Animal: +isMammal() - Animal: +mate() - class Duck{ - +String beakColor - +swim() - +quack() - } - class Fish{ - -int sizeInFeet - -canEat() - } - class Zebra{ - +bool is_wild - +run() - } - - callback Duck callback "Tooltip" - link Zebra "https://www.github.com" "This is a link" - </pre> - - <script> - const callback = function () { - alert('A callback was triggered'); - }; - const config = { - startOnLoad: true, - securityLevel: 'loose', - }; - mermaid.initialize(config); - </script> -</body> -``` - -## Styling - -### Styling a node - -It is possible to apply specific styles such as a thicker border or a different background color to individual nodes. This is done by predefining classes in css styles that can be applied from the graph definition: - -```html -<style> - .cssClass > rect { - fill: #ff0000; - stroke: #ffff00; - stroke-width: 4px; - } -</style> -``` - -Then attaching that class to a specific node: - -``` - cssClass "nodeId1" cssClass; -``` - -It is also possible to attach a class to a list of nodes in one statement: - -``` - cssClass "nodeId1,nodeId2" cssClass; -``` - -A shorter form of adding a class is to attach the classname to the node using the `:::` operator: - -```mmd -classDiagram - class Animal:::cssClass -``` - -Or: - -```mmd -classDiagram - class Animal:::cssClass { - -int sizeInFeet - -canEat() - } -``` - -?> cssClasses cannot be added using this shorthand method at the same time as a relation statement. - -?> Due to limitations with existing markup for class diagrams, it is not currently possible to define css classes within the diagram itself. **_Coming soon!_** - -### Default Styles - -The main styling of the class diagram is done with a preset number of css classes. During rendering these classes are extracted from the file located at src/themes/class.scss. The classes used here are described below: - -| Class | Description | -| ------------------ | ----------------------------------------------------------------- | -| g.classGroup text | Styles for general class text | -| classGroup .title | Styles for general class title | -| g.classGroup rect | Styles for class diagram rectangle | -| g.classGroup line | Styles for class diagram line | -| .classLabel .box | Styles for class label box | -| .classLabel .label | Styles for class label text | -| composition | Styles for composition arrow head and arrow line | -| aggregation | Styles for aggregation arrow head and arrow line(dashed or solid) | -| dependency | Styles for dependency arrow head and arrow line | - -#### Sample stylesheet - -```scss -body { - background: white; -} - -g.classGroup text { - fill: $nodeBorder; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-family: var(--mermaid-font-family); - font-size: 10px; - - .title { - font-weight: bolder; - } -} - -g.classGroup rect { - fill: $nodeBkg; - stroke: $nodeBorder; -} - -g.classGroup line { - stroke: $nodeBorder; - stroke-width: 1; -} - -.classLabel .box { - stroke: none; - stroke-width: 0; - fill: $nodeBkg; - opacity: 0.5; -} - -.classLabel .label { - fill: $nodeBorder; - font-size: 10px; -} - -.relation { - stroke: $nodeBorder; - stroke-width: 1; - fill: none; -} - -@mixin composition { - fill: $nodeBorder; - stroke: $nodeBorder; - stroke-width: 1; -} - -#compositionStart { - @include composition; -} - -#compositionEnd { - @include composition; -} - -@mixin aggregation { - fill: $nodeBkg; - stroke: $nodeBorder; - stroke-width: 1; -} - -#aggregationStart { - @include aggregation; -} - -#aggregationEnd { - @include aggregation; -} - -#dependencyStart { - @include composition; -} - -#dependencyEnd { - @include composition; -} - -#extensionStart { - @include composition; -} - -#extensionEnd { - @include composition; -} -``` - -## Configuration - -`Coming soon` diff --git a/vdocs/syntax/entityRelationshipDiagram.md b/vdocs/syntax/entityRelationshipDiagram.md deleted file mode 100644 index 341c9147c4..0000000000 --- a/vdocs/syntax/entityRelationshipDiagram.md +++ /dev/null @@ -1,188 +0,0 @@ -# Entity Relationship Diagrams - -> An entity–relationship model (or ER model) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between entities (instances of those entity types). Wikipedia. - -Note that practitioners of ER modelling almost always refer to _entity types_ simply as _entities_. For example the `CUSTOMER` entity _type_ would be referred to simply as the `CUSTOMER` entity. This is so common it would be inadvisable to do anything else, but technically an entity is an abstract _instance_ of an entity type, and this is what an ER diagram shows - abstract instances, and the relationships between them. This is why entities are always named using singular nouns. - -Mermaid can render ER diagrams - -```mermaid-example -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses -``` - -Entity names are often capitalised, although there is no accepted standard on this, and it is not required in Mermaid. - -Relationships between entities are represented by lines with end markers representing cardinality. Mermaid uses the most popular crow's foot notation. The crow's foot intuitively conveys the possibility of many instances of the entity that it connects to. - -ER diagrams can be used for various purposes, ranging from abstract logical models devoid of any implementation details, through to physical models of relational database tables. It can be useful to include attribute definitions on ER diagrams to aid comprehension of the purpose and meaning of entities. These do not necessarily need to be exhaustive; often a small subset of attributes is enough. Mermaid allows them to be defined in terms of their _type_ and _name_. - -```mermaid-example -erDiagram - CUSTOMER ||--o{ ORDER : places - CUSTOMER { - string name - string custNumber - string sector - } - ORDER ||--|{ LINE-ITEM : contains - ORDER { - int orderNumber - string deliveryAddress - } - LINE-ITEM { - string productCode - int quantity - float pricePerUnit - } -``` - -When including attributes on ER diagrams, you must decide whether to include foreign keys as attributes. This probably depends on how closely you are trying to represent relational table structures. If your diagram is a _logical_ model which is not meant to imply a relational implementation, then it is better to leave these out because the associative relationships already convey the way that entities are associated. For example, a JSON data structure can implement a one-to-many relationship without the need for foreign key properties, using arrays. Similarly an object-oriented programming language may use pointers or references to collections. Even for models that are intended for relational implementation, you might decide that inclusion of foreign key attributes duplicates information already portrayed by the relationships, and does not add meaning to entities. Ultimately, it's your choice. - -## Syntax - -### Entities and Relationships - -Mermaid syntax for ER diagrams is compatible with PlantUML, with an extension to label the relationship. Each statement consists of the following parts: - -``` - <first-entity> [<relationship> <second-entity> : <relationship-label>] -``` - -Where: - -- `first-entity` is the name of an entity. Names must begin with an alphabetic character and may also contain digits, hyphens, and underscores. -- `relationship` describes the way that both entities inter-relate. See below. -- `second-entity` is the name of the other entity. -- `relationship-label` describes the relationship from the perspective of the first entity. - -For example: - -``` - PROPERTY ||--|{ ROOM : contains -``` - -This statement can be read as _a property contains one or more rooms, and a room is part of one and only one property_. You can see that the label here is from the first entity's perspective: a property contains a room, but a room does not contain a property. When considered from the perspective of the second entity, the equivalent label is usually very easy to infer. (Some ER diagrams label relationships from both perspectives, but this is not supported here, and is usually superfluous). - -Only the `first-entity` part of a statement is mandatory. This makes it possible to show an entity with no relationships, which can be useful during iterative construction of diagrams. If any other parts of a statement are specified, then all parts are mandatory. - -### Relationship Syntax - -The `relationship` part of each statement can be broken down into three sub-components: - -- the cardinality of the first entity with respect to the second, -- whether the relationship confers identity on a 'child' entity -- the cardinality of the second entity with respect to the first - -Cardinality is a property that describes how many elements of another entity can be related to the entity in question. In the above example a `PROPERTY` can have one or more `ROOM` instances associated to it, whereas a `ROOM` can only be associated with one `PROPERTY`. In each cardinality marker there are two characters. The outermost character represents a maximum value, and the innermost character represents a minimum value. The table below summarises possible cardinalities. - -| Value (left) | Value (right) | Meaning | -| :----------: | :-----------: | ----------------------------- | -| `\|o` | `o\|` | Zero or one | -| `\|\|` | `\|\|` | Exactly one | -| `}o` | `o{` | Zero or more (no upper limit) | -| `}\|` | `\|{` | One or more (no upper limit) | - -### Identification - -Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line: - -```mmd -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - PERSON ||--o{ NAMED-DRIVER : is -``` - -### Attributes - -Attributes can be defined for entities by specifying the entity name followed by a block containing multiple `type name` pairs, where a block is delimited by an opening `{` and a closing `}`. For example: - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string firstName - string lastName - int age - } -``` - -The attributes are rendered inside the entity boxes: - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string firstName - string lastName - int age - } -``` - -The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens or underscores. Other than that, there are no restrictions, and there is no implicit set of valid data types. - -#### Attribute Keys and Comments - -Attributes may also have a `key` or comment defined. Keys can be "PK" or "FK", for Primary Key or Foreign Key. And a `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string allowedDriver FK "The license of the allowed driver" - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string driversLicense PK "The license #" - string firstName - string lastName - int age - } -``` - -### Other Things - -- If you want the relationship label to be more than one word, you must use double quotes around the phrase -- If you don't want a label at all on a relationship, you must use an empty double-quoted string - -## Styling - -### Config options - -For simple color customization: - -| Name | Used as | -| :------- | :------------------------------------------------------------------- | -| `fill` | Background color of an entity or attribute | -| `stroke` | Border color of an entity or attribute, line color of a relationship | - -### Classes used - -The following CSS class selectors are available for richer styling: - -| Selector | Description | -| :------------------------- | :---------------------------------------------------- | -| `.er.attributeBoxEven` | The box containing attributes on even-numbered rows | -| `.er.attributeBoxOdd` | The box containing attributes on odd-numbered rows | -| `.er.entityBox` | The box representing an entity | -| `.er.entityLabel` | The label for an entity | -| `.er.relationshipLabel` | The label for a relationship | -| `.er.relationshipLabelBox` | The box surrounding a relationship label | -| `.er.relationshipLine` | The line representing a relationship between entities | diff --git a/vdocs/syntax/flowchart.md b/vdocs/syntax/flowchart.md deleted file mode 100644 index cbec4ae627..0000000000 --- a/vdocs/syntax/flowchart.md +++ /dev/null @@ -1,699 +0,0 @@ -# Flowcharts - Basic Syntax - -All Flowcharts are composed of **nodes**, the geometric shapes and **edges**, the arrows or lines. The mermaid code defines the way that these **nodes** and **edges** are made and interact. - -It can also accommodate different arrow types, multi directional arrows, and linking to and from subgraphs. - -> **Important note**: Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897).\*\* - -### A node (default) - -```mermaid-example -flowchart LR - id -``` - -> **Note** The id is what is displayed in the box. - -### A node with text - -It is also possible to set text in the box that differs from the id. If this is done several times, it is the last text -found for the node that will be used. Also if you define edges for the node later on, you can omit text definitions. The -one previously defined will be used when rendering the box. - -```mermaid-example -flowchart LR - id1[This is the text in the box] -``` - -## Graph - -This statement declares the direction of the Flowchart. - -This declares the flowchart is oriented from top to bottom (`TD` or `TB`). - -```mermaid-example -flowchart TD - Start --> Stop -``` - -This declares the flowchart is oriented from left to right (`LR`). - -```mermaid-example -flowchart LR - Start --> Stop -``` - -## Flowchart Orientation - -Possible FlowChart orientations are: - -- TB - top to bottom -- TD - top-down/ same as top to bottom -- BT - bottom to top -- RL - right to left -- LR - left to right - -## Node shapes - -### A node with round edges - -```mermaid-example -flowchart LR - id1(This is the text in the box) -``` - -### A stadium-shaped node - -```mermaid-example -flowchart LR - id1([This is the text in the box]) -``` - -### A node in a subroutine shape - -```mermaid-example -flowchart LR - id1[[This is the text in the box]] -``` - -### A node in a cylindrical shape - -```mermaid-example -flowchart LR - id1[(Database)] -``` - -### A node in the form of a circle - -```mermaid-example -flowchart LR - id1((This is the text in the circle)) -``` - -### A node in an asymmetric shape - -```mermaid-example -flowchart LR - id1>This is the text in the box] -``` - -Currently only the shape above is possible and not its mirror. _This might change with future releases._ - -### A node (rhombus) - -```mermaid-example -flowchart LR - id1{This is the text in the box} -``` - -### A hexagon node - -Code: - -```mmd -flowchart LR - id1{{This is the text in the box}} -``` - -Render: - -```mermaid -flowchart LR - id1{{This is the text in the box}} -``` - -### Parallelogram - -```mermaid-example -flowchart TD - id1[/This is the text in the box/] -``` - -### Parallelogram alt - -```mermaid-example -flowchart TD - id1[\This is the text in the box\] -``` - -### Trapezoid - -```mermaid-example -flowchart TD - A[/Christmas\] -``` - -### Trapezoid alt - -```mermaid-example -flowchart TD - B[\Go shopping/] -``` - -### Double circle - -```mermaid-example -flowchart TD - id1(((This is the text in the circle))) -``` - -## Links between nodes - -Nodes can be connected with links/edges. It is possible to have different types of links or attach a text string to a link. - -### A link with arrow head - -```mermaid-example -flowchart LR - A-->B -``` - -### An open link - -```mermaid-example -flowchart LR - A --- B -``` - -### Text on links - -```mermaid-example -flowchart LR - A-- This is the text! ---B -``` - -or - -```mermaid-example -flowchart LR - A---|This is the text|B -``` - -### A link with arrow head and text - -```mermaid-example -flowchart LR - A-->|text|B -``` - -or - -```mermaid-example -flowchart LR - A-- text -->B -``` - -### Dotted link - -```mermaid-example -flowchart LR; - A-.->B; -``` - -### Dotted link with text - -```mermaid-example -flowchart LR - A-. text .-> B -``` - -### Thick link - -```mermaid-example -flowchart LR - A ==> B -``` - -### Thick link with text - -```mermaid-example -flowchart LR - A == text ==> B -``` - -### Chaining of links - -It is possible declare many links in the same line as per below: - -```mermaid-example -flowchart LR - A -- text --> B -- text2 --> C -``` - -It is also possible to declare multiple nodes links in the same line as per below: - -```mermaid-example -flowchart LR - a --> b & c--> d -``` - -You can then describe dependencies in a very expressive way. Like the one-liner below: - -```mermaid-example -flowchart TB - A & B--> C & D -``` - -If you describe the same diagram using the the basic syntax, it will take four lines. A -word of warning, one could go overboard with this making the flowchart harder to read in -markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little. -This goes for expressive syntaxes as well. - -```mmd -flowchart TB - A --> C - A --> D - B --> C - B --> D -``` - -### New arrow types - -There are new types of arrows supported as per below: - -```mermaid-example -flowchart LR - A --o B - B --x C -``` - -### Multi directional arrows - -There is the possibility to use multidirectional arrows. - -```mermaid-example -flowchart LR - A o--o B - B <--> C - C x--x D -``` - -### Minimum length of a link - -Each node in the flowchart is ultimately assigned to a rank in the rendered -graph, i.e. to a vertical or horizontal level (depending on the flowchart -orientation), based on the nodes to which it is linked. By default, links -can span any number of ranks, but you can ask for any link to be longer -than the others by adding extra dashes in the link definition. - -In the following example, two extra dashes are added in the link from node _B_ -to node _E_, so that it spans two more ranks than regular links: - -```mermaid-example -flowchart TD - A[Start] --> B{Is it?} - B -->|Yes| C[OK] - C --> D[Rethink] - D --> B - B ---->|No| E[End] -``` - -> **Note** Links may still be made longer than the requested number of ranks -> by the rendering engine to accommodate other requests. - -When the link label is written in the middle of the link, the extra dashes must -be added on the right side of the link. The following example is equivalent to -the previous one: - -```mermaid-example -flowchart TD - A[Start] --> B{Is it?} - B -- Yes --> C[OK] - C --> D[Rethink] - D --> B - B -- No ----> E[End] -``` - -For dotted or thick links, the characters to add are equals signs or dots, -as summed up in the following table: - -| Length | 1 | 2 | 3 | -| ----------------- | :----: | :-----: | :------: | -| Normal | `---` | `----` | `-----` | -| Normal with arrow | `-->` | `--->` | `---->` | -| Thick | `===` | `====` | `=====` | -| Thick with arrow | `==>` | `===>` | `====>` | -| Dotted | `-.-` | `-..-` | `-...-` | -| Dotted with arrow | `-.->` | `-..->` | `-...->` | - -## Special characters that break syntax - -It is possible to put text within quotes in order to render more troublesome characters. As in the example below: - -```mermaid-example -flowchart LR - id1["This is the (text) in the box"] -``` - -### Entity codes to escape characters - -It is possible to escape characters using the syntax exemplified here. - -```mermaid-example - flowchart LR - A["A double quote:#quot;"] -->B["A dec char:#9829;"] -``` - -Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. - -## Subgraphs - -``` -subgraph title - graph definition -end -``` - -An example below: - -```mermaid-example -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end -``` - -You can also set an explicit id for the subgraph. - -```mermaid-example -flowchart TB - c1-->a2 - subgraph ide1 [one] - a1-->a2 - end -``` - -## flowcharts - -With the graphtype flowchart it is also possible to set edges to and from subgraphs as in the flowchart below. - -```mermaid-example -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end - one --> two - three --> two - two --> c2 -``` - -## Direction in subgraphs - -With the graphtype flowcharts you can use the direction statement to set the direction which the subgraph will render like in this example. - -```mermaid-example -flowchart LR - subgraph TOP - direction TB - subgraph B1 - direction RL - i1 -->f1 - end - subgraph B2 - direction BT - i2 -->f2 - end - end - A --> TOP --> B - B1 --> B2 -``` - -## Interaction - -It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - -``` -click nodeId callback -click nodeId call callback() -``` - -- nodeId is the id of the node -- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the nodeId as parameter. - -Examples of tooltip usage below: - -```html -<script> - const callback = function () { - alert('A callback was triggered'); - }; -</script> -``` - -The tooltip text is surrounded in double quotes. The styles of the tooltip are set by the class `.mermaidTooltip`. - -```mermaid-example -flowchart LR - A-->B - B-->C - C-->D - click A callback "Tooltip for a callback" - click B "https://www.github.com" "This is a tooltip for a link" - click A call callback() "Tooltip for a callback" - click B href "https://www.github.com" "This is a tooltip for a link" -``` - -> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. - -?> Due to limitations with how Docsify handles JavaScript callback functions, an alternate working demo for the above code can be viewed at [this jsfiddle](https://jsfiddle.net/s37cjoau/3/). - -Links are opened in the same browser tab/window by default. It is possible to change this by adding a link target to the click definition (`_self`, `_blank`, `_parent` and `_top` are supported): - -```mermaid-example -flowchart LR - A-->B - B-->C - C-->D - D-->E - click A "https://www.github.com" _blank - click B "https://www.github.com" "Open this in a new tab" _blank - click C href "https://www.github.com" _blank - click D href "https://www.github.com" "Open this in a new tab" _blank -``` - -Beginner's tip—a full example using interactive links in a html context: - -```html -<body> - <pre class="mermaid"> - flowchart LR - A-->B - B-->C - C-->D - click A callback "Tooltip" - click B "https://www.github.com" "This is a link" - click C call callback() "Tooltip" - click D href "https://www.github.com" "This is a link" - </pre> - - <script> - const callback = function () { - alert('A callback was triggered'); - }; - const config = { - startOnLoad: true, - flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, - securityLevel: 'loose', - }; - mermaid.initialize(config); - </script> -</body> -``` - -### Comments - -Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any flow syntax - -```mmd -flowchart LR -%% this is a comment A -- text --> B{node} - A -- text --> B -- text2 --> C -``` - -## Styling and classes - -### Styling links - -It is possible to style links. For instance, you might want to style a link that is going backwards in the flow. As links -have no ids in the same way as nodes, some other way of deciding what style the links should be attached to is required. -Instead of ids, the order number of when the link was defined in the graph is used, or use default to apply to all links. -In the example below the style defined in the linkStyle statement will belong to the fourth link in the graph: - -``` -linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; -``` - -### Styling line curves - -It is possible to style the type of curve used for lines between items, if the default method does not meet your needs. -Available curve styles include `basis`, `bump`, `linear`, `monotoneX`, `monotoneY`, `natural`, `step`, `stepAfter`, -and `stepBefore`. - -In this example, a left-to-right graph uses the `stepBefore` curve style: - -``` -%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% -graph LR -``` - -For a full list of available curves, including an explanation of custom curves, refer to -the [Shapes](https://github.com/d3/d3-shape/blob/main/README.md#curves) documentation in the -[d3-shape](https://github.com/d3/d3-shape/) project. - -### Styling a node - -It is possible to apply specific styles such as a thicker border or a different background color to a node. - -```mermaid-example -flowchart LR - id1(Start)-->id2(Stop) - style id1 fill:#f9f,stroke:#333,stroke-width:4px - style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 -``` - -#### Classes - -More convenient than defining the style every time is to define a class of styles and attach this class to the nodes that -should have a different look. - -a class definition looks like the example below: - -``` - classDef className fill:#f9f,stroke:#333,stroke-width:4px; -``` - -Attachment of a class to a node is done as per below: - -``` - class nodeId1 className; -``` - -It is also possible to attach a class to a list of nodes in one statement: - -``` - class nodeId1,nodeId2 className; -``` - -A shorter form of adding a class is to attach the classname to the node using the `:::`operator as per below: - -```mermaid-example -flowchart LR - A:::someclass --> B - classDef someclass fill:#f96; -``` - -### Css classes - -It is also possible to predefine classes in css styles that can be applied from the graph definition as in the example -below: - -**Example style** - -```html -<style> - .cssClass > rect { - fill: #ff0000; - stroke: #ffff00; - stroke-width: 4px; - } -</style> -``` - -**Example definition** - -```mermaid-example -flowchart LR; - A-->B[AAA<span>BBB</span>] - B-->D - class A cssClass -``` - -### Default class - -If a class is named default it will be assigned to all classes without specific class definitions. - -``` - classDef default fill:#f9f,stroke:#333,stroke-width:4px; -``` - -## Basic support for fontawesome - -It is possible to add icons from fontawesome. - -The icons are accessed via the syntax fa:#icon class name#. - -```mmd -flowchart TD - B["fab:fa-twitter for peace"] - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner) - B-->E(A fa:fa-camera-retro perhaps?) -``` - -```mermaid -flowchart TD - B[<img class='fab' src='https://raw.githubusercontent.com/FortAwesome/Font-Awesome/afecf2af5d897b763e5e8e28d46aad2f710ccad6/svgs/brands/twitter.svg'> for peace .] - B-->C[<img class='fab' src='https://raw.githubusercontent.com/FortAwesome/Font-Awesome/afecf2af5d897b763e5e8e28d46aad2f710ccad6/svgs/solid/ban.svg'> forbidden .] - B-->D(<img class='fab' src='https://raw.githubusercontent.com/FortAwesome/Font-Awesome/afecf2af5d897b763e5e8e28d46aad2f710ccad6/svgs/solid/spinner.svg'> .) - B-->E(A <img class='fab' src='https://raw.githubusercontent.com/FortAwesome/Font-Awesome/afecf2af5d897b763e5e8e28d46aad2f710ccad6/svgs/solid/camera-retro.svg'> perhaps? .) -``` - -?> Mermaid is now only compatible with Font Awesome versions 4 and 5. Check that you are using the correct version of Font Awesome. - -## Graph declarations with spaces between vertices and link and without semicolon - -- In graph declarations, the statements also can now end without a semicolon. After release 0.2.16, ending a graph statement with semicolon is just optional. So the below graph declaration is also valid along with the old declarations of the graph. - -- A single space is allowed between vertices and the link. However there should not be any space between a vertex and its text and a link and its text. The old syntax of graph declaration will also work and hence this new feature is optional and is introduced to improve readability. - -Below is the new declaration of the graph edges which is also valid along with the old declaration of the graph edges. - -```mermaid-example -flowchart LR - A[Hard edge] -->|Link text| B(Round edge) - B --> C{Decision} - C -->|One| D[Result one] - C -->|Two| E[Result two] -``` - -## Configuration... - -Is it possible to adjust the width of the rendered flowchart. - -This is done by defining **mermaid.flowchartConfig** or by the CLI to use a JSON file with the configuration. How to use the CLI is described in the mermaidCLI page. -mermaid.flowchartConfig can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.flowchartConfig = { - width: 100% -} -``` - -<style> -.fa, .fab, .fal, .far, .fas { - width: 16px; - height: 16px; - filter: opacity(0.5); -} - -.dark .fa, .dark .fab, .dark .fal, .dark .far, .dark .fas { - width: 16px; - height: 16px; - filter: invert(1) opacity(0.5); -} -</style> diff --git a/vdocs/syntax/img/Gantt-excluded-days-within.png b/vdocs/syntax/img/Gantt-excluded-days-within.png deleted file mode 100644 index 2283bf99d8d6ed1b721541ce1f0f8b38d6e19887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79453 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 diff --git a/vdocs/syntax/img/Gantt-long-weekend-look.png b/vdocs/syntax/img/Gantt-long-weekend-look.png deleted file mode 100644 index 1b2fc8e17ef9a4adb34de9dc326d41584873292c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79092 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 MKlB@l@6qgk080{I(f|Me diff --git a/vdocs/syntax/pie.md b/vdocs/syntax/pie.md deleted file mode 100644 index 75d377e4be..0000000000 --- a/vdocs/syntax/pie.md +++ /dev/null @@ -1,51 +0,0 @@ -# Pie chart diagrams - -> A pie chart (or a circle chart) is a circular statistical graphic, which is divided into slices to illustrate numerical proportion. In a pie chart, the arc length of each slice (and consequently its central angle and area), is proportional to the quantity it represents. While it is named for its resemblance to a pie which has been sliced, there are variations on the way it can be presented. The earliest known pie chart is generally credited to William Playfair's Statistical Breviary of 1801 -> -Wikipedia - -Mermaid can render Pie Chart diagrams. - -```mmd -pie title Pets adopted by volunteers - "Dogs" : 386 - "Cats" : 85 - "Rats" : 15 -``` - -```mermaid -pie title Pets adopted by volunteers - "Dogs" : 386 - "Cats" : 85 - "Rats" : 15 -``` - -## Syntax - -Drawing a pie chart is really simple in mermaid. - -- Start with `pie` keyword to begin the diagram - - `showData` to render the actual data values after the legend text. This is **_OPTIONAL_** -- Followed by `title` keyword and its value in string to give a title to the pie-chart. This is **_OPTIONAL_** -- Followed by dataSet - - `label` for a section in the pie diagram within `" "` quotes. - - Followed by `:` colon as separator - - Followed by `positive numeric value` (supported upto two decimal places) - -[pie] [showData] (OPTIONAL) -[title] [titlevalue] (OPTIONAL) -"[datakey1]" : [dataValue1] -"[datakey2]" : [dataValue2] -"[datakey3]" : [dataValue3] -. -. - -## Example - -```mermaid-example -pie showData - title Key elements in Product X - "Calcium" : 42.96 - "Potassium" : 50.05 - "Magnesium" : 10.01 - "Iron" : 5 -``` diff --git a/vdocs/syntax/requirementDiagram.md b/vdocs/syntax/requirementDiagram.md deleted file mode 100644 index 7c221312b7..0000000000 --- a/vdocs/syntax/requirementDiagram.md +++ /dev/null @@ -1,158 +0,0 @@ -# Requirement Diagram - -> A Requirement diagram provides a visualization for requirements and their connections, to each other and other documented elements. The modeling specs follow those defined by SysML v1.6. - -Rendering requirements is straightforward. - -```mermaid-example - requirementDiagram - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - element test_entity { - type: simulation - } - - test_entity - satisfies -> test_req -``` - -## Syntax - -There are three types of components to a requirement diagram: requirement, element, and relationship. - -The grammar for defining each is defined below. Words denoted in angle brackets, such as `<word>`, are enumerated keywords that have options elaborated in a table. `user_defined_...` is use in any place where user input is expected. - -An important note on user text: all input can be surrounded in quotes or not. For example, both `Id: "here is an example"` and `Id: here is an example` are both valid. However, users must be careful with unquoted input. The parser will fail if another keyword is detected. - -### Requirement - -A requirement definition contains a requirement type, name, id, text, risk, and verification method. The syntax follows: - -``` -<type> user_defined_name { - id: user_defined_id - text: user_defined text - risk: <risk> - verifymethod: <method> -} -``` - -Type, risk, and method are enumerations defined in SysML. - -| Keyword | Options | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| Type | requirement, functionalRequirement, interfaceRequirement, performanceRequirement, physicalRequirement, designConstraint | -| Risk | Low, Medium, High | -| VerificationMethod | Analysis, Inspection, Test, Demonstration | - -### Element - -An element definition contains an element name, type, and document reference. These three are all user defined. The element feature is intended to be lightweight but allow requirements to be connected to portions of other documents. - -``` -element user_defined_name { - type: user_defined_type - docref: user_defined_ref -} -``` - -### Relationship - -Relationships are comprised of a source node, destination node, and relationship type. - -Each follows the definition format of - -``` -{name of source} - <type> -> {name of destination} -``` - -or - -``` -{name of destination} <- <type> - {name of source} -``` - -"name of source" and "name of destination" should be names of requirement or element nodes defined elsewhere. - -A relationship type can be one of contains, copies, derives, satisfies, verifies, refines, or traces. - -Each relationship is labeled in the diagram. - -## Larger Example - -This example uses all features of the diagram. - -```mermaid-example - requirementDiagram - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - functionalRequirement test_req2 { - id: 1.1 - text: the second test text. - risk: low - verifymethod: inspection - } - - performanceRequirement test_req3 { - id: 1.2 - text: the third test text. - risk: medium - verifymethod: demonstration - } - - interfaceRequirement test_req4 { - id: 1.2.1 - text: the fourth test text. - risk: medium - verifymethod: analysis - } - - physicalRequirement test_req5 { - id: 1.2.2 - text: the fifth test text. - risk: medium - verifymethod: analysis - } - - designConstraint test_req6 { - id: 1.2.3 - text: the sixth test text. - risk: medium - verifymethod: analysis - } - - element test_entity { - type: simulation - } - - element test_entity2 { - type: word doc - docRef: reqs/test_entity - } - - element test_entity3 { - type: "test suite" - docRef: github.com/all_the_tests - } - - - test_entity - satisfies -> test_req2 - test_req - traces -> test_req2 - test_req - contains -> test_req3 - test_req3 - contains -> test_req4 - test_req4 - derives -> test_req5 - test_req5 - refines -> test_req6 - test_entity3 - verifies -> test_req5 - test_req <- copies - test_entity2 -``` diff --git a/vdocs/syntax/stateDiagram.md b/vdocs/syntax/stateDiagram.md deleted file mode 100644 index e28819e7a2..0000000000 --- a/vdocs/syntax/stateDiagram.md +++ /dev/null @@ -1,260 +0,0 @@ -# State diagrams - -> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction." Wikipedia - -Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml. - -```mermaid-example -stateDiagram-v2 - [*] --> Still - Still --> [*] - - Still --> Moving - Moving --> Still - Moving --> Crash - Crash --> [*] -``` - -Older renderer: - -```mermaid-example -stateDiagram - [*] --> Still - Still --> [*] - - Still --> Moving - Moving --> Still - Moving --> Crash - Crash --> [*] -``` - -In state diagrams systems are described in terms of its states and how the systems state can change to another state via a transitions. The example diagram above shows three states **Still**, **Moving** and **Crash**. You start in the state of Still. From Still you can change the state to Moving. In Moving you can change the state either back to Still or to Crash. There is no transition from Still to Crash. - -## States - -A state can be declared in multiple ways. The simplest way is to define a state id as a description. - -```mermaid-example -stateDiagram-v2 - s1 -``` - -Another way is by using the state keyword with a description as per below: - -```mermaid-example -stateDiagram-v2 - state "This is a state description" as s2 -``` - -Another way to define a state with a description is to define the state id followed by a colon and the description: - -```mermaid-example -stateDiagram-v2 - s2 : This is a state description -``` - -## Transitions - -Transitions are path/edges when one state passes into another. This is represented using text arrow, "\-\-\>". - -When you define a transition between two states and the states are not already defined the undefined states are defined with the id from the transition. You can later add descriptions to states defined this way. - -```mermaid-example -stateDiagram-v2 - s1 --> s2 -``` - -It is possible to add text to a transition. To describe what it represents. - -```mermaid-example -stateDiagram-v2 - s1 --> s2: A transition -``` - -## Start and End - -There are two special states indicating the start and stop of the diagram. These are written with the [\*] syntax and the direction of the transition to it defines it either as a start or a stop state. - -```mermaid-example -stateDiagram-v2 - [*] --> s1 - s1 --> [*] -``` - -## Composite states - -In a real world use of state diagrams you often end up with diagrams that are multi-dimensional as one state can -have several internal states. These are called composite states in this terminology. - -In order to define a composite state you need to use the state keyword followed by an id and the body of the composite state between \{\}. See the example below: - -```mermaid-example -stateDiagram-v2 - [*] --> First - state First { - [*] --> second - second --> [*] - } -``` - -You can do this in several layers: - -```mermaid-example -stateDiagram-v2 - [*] --> First - - state First { - [*] --> Second - - state Second { - [*] --> second - second --> Third - - state Third { - [*] --> third - third --> [*] - } - } - } -``` - -You can also define transitions also between composite states: - -```mermaid-example -stateDiagram-v2 - [*] --> First - First --> Second - First --> Third - - state First { - [*] --> fir - fir --> [*] - } - state Second { - [*] --> sec - sec --> [*] - } - state Third { - [*] --> thi - thi --> [*] - } -``` - -_You can not define transitions between internal states belonging to different composite states_ - -## Choice - -Sometimes you need to model a choice between two or more paths, you can do so using <<choice>>. - -```mermaid-example -stateDiagram-v2 - state if_state <<choice>> - [*] --> IsPositive - IsPositive --> if_state - if_state --> False: if n < 0 - if_state --> True : if n >= 0 -``` - -## Forks - -It is possible to specify a fork in the diagram using <<fork>> <<join>>. - -```mermaid-example - stateDiagram-v2 - state fork_state <<fork>> - [*] --> fork_state - fork_state --> State2 - fork_state --> State3 - - state join_state <<join>> - State2 --> join_state - State3 --> join_state - join_state --> State4 - State4 --> [*] -``` - -## Notes - -Sometimes nothing says it better then a Post-it note. That is also the case in state diagrams. - -Here you can choose to put the note to the _right of_ or to the _left of_ a node. - -```mermaid-example - stateDiagram-v2 - State1: The state with a note - note right of State1 - Important information! You can write - notes. - end note - State1 --> State2 - note left of State2 : This is the note to the left. -``` - -## Concurrency - -As in plantUml you can specify concurrency using the -- symbol. - -```mermaid-example -stateDiagram-v2 - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvScrollLockPressed - ScrollLockOn --> ScrollLockOff : EvScrollLockPressed - } -``` - -## Setting the direction of the diagram - -With state diagrams you can use the direction statement to set the direction which the diagram will render like in this example. - -```mermaid-example -stateDiagram - direction LR - [*] --> A - A --> B - B --> C - state B { - direction LR - a --> b - } - B --> D -``` - -## Comments - -Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax - -```mmd -stateDiagram-v2 - [*] --> Still - Still --> [*] -%% this is a comment - Still --> Moving - Moving --> Still %% another comment - Moving --> Crash - Crash --> [*] -``` - -## Styling - -Styling of the a state diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/state.scss - -## Spaces in state names - -Spaces can be added to a state by defining it at the top and referencing the acronym later. - -```mermaid-example -stateDiagram-v2 - Yswsii: Your state with spaces in it - [*] --> Yswsii -``` diff --git a/vdocs/syntax/userJourney.md b/vdocs/syntax/userJourney.md deleted file mode 100644 index 3476088aba..0000000000 --- a/vdocs/syntax/userJourney.md +++ /dev/null @@ -1,22 +0,0 @@ -# User Journey Diagram - -> User journeys describe at a high level of detail exactly what steps different users take to complete a specific task within a system, application or website. This technique shows the current (as-is) user workflow, and reveals areas of improvement for the to-be workflow. (Wikipedia) - -Mermaid can render user journey diagrams: - -```mermaid-example -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -Each user journey is split into sections, these describe the part of the task -the user is trying to complete. - -Tasks syntax is `Task name: <score>: <comma separated list of actors>` From 0da56a1249022aa5249a9a947ebfab8d02716764 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Sat, 15 Oct 2022 00:50:57 -0300 Subject: [PATCH 0387/1038] docs: new Documentation --- .github/gh-pages-publish.yml | 21 +++++++++++++++++++++ .github/workflows/docs.yml | 6 +++--- .github/workflows/lint.yml | 2 +- .lintstagedrc.json | 2 -- CONTRIBUTING.md | 14 +++++++------- package.json | 1 - packages/mermaid/.lintstagedrc.json | 6 ++++++ packages/mermaid/package.json | 15 ++++++++------- packages/mermaid/src/docs.mts | 2 +- 9 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 .github/gh-pages-publish.yml create mode 100644 packages/mermaid/.lintstagedrc.json diff --git a/.github/gh-pages-publish.yml b/.github/gh-pages-publish.yml new file mode 100644 index 0000000000..de87e6a3b2 --- /dev/null +++ b/.github/gh-pages-publish.yml @@ -0,0 +1,21 @@ +name: Build and Deploy Docs +on: [push] +permissions: + contents: write +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v3 + + - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. + run: | + pnpm install + cd ./packages/mermaid + pnpm docs:bundle + - name: Deploy 🚀📕 + uses: JamesIves/github-pages-deploy-action@v4.3.3 + with: + branch: gh-pages # The branch the action should deploy to. + folder: packages/mermaid/docs/.vitepress/dist # The folder the action should deploy. diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a7ad03a7a4..f316c47c70 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -5,12 +5,12 @@ on: branches: - develop paths: - - 'packages/mermaid/src/docs/**/*' + - 'packages/mermaid/docs/**/*' pull_request: branches: - develop paths: - - 'packages/mermaid/src/docs/**/*' + - 'packages/mermaid/docs/**/*' jobs: spellcheck: name: 'Docs: Spellcheck' @@ -24,5 +24,5 @@ jobs: node-version: '16' - run: npm install -g cspell name: Install cSpell - - run: cspell --config ./cSpell.json "packages/mermaid/src/docs/**/*.md" --no-progress + - run: cspell --config ./cSpell.json "packages/mermaid/docs/**/*.md" --no-progress name: Run cSpell diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9adbb177c3..204350dd15 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -39,4 +39,4 @@ jobs: run: pnpm run lint - name: Verify Docs - run: pnpm run docs:verify + run: cd .\packages\mermaid\ && pnpm run docs:verify diff --git a/.lintstagedrc.json b/.lintstagedrc.json index be6e927702..8d5e1ca4aa 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,6 +1,4 @@ { - "packages/mermaid/src/docs/**": ["pnpm run docs:build --git"], - "packages/mermaid/src/docs.mts": ["pnpm run docs:build --git"], "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], "*.jison": ["pnpm run lint:jison"] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ed436a8d1a..843e19fd9f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ We make all changes via pull requests. As we have many pull requests from develo - Large changes reviewed by knsv or other developer asked to review by knsv - Smaller low-risk changes like dependencies, documentation, etc. can be merged by active collaborators -- Documentation (updates to the `src/docs` folder is also allowed via direct commits) +- Documentation (updates to the `package/mermaid/docs` folder is also allowed via direct commits) To commit code, create a branch, let it start with the type like feature or bug followed by the issue number for reference and some describing text. @@ -50,16 +50,16 @@ Less strict here, it is OK to commit directly in the `develop` branch if you are The documentation is written in **Markdown**. For more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). -### Documentation source files are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) +### Documentation source files are in [`/packages/mermaid/docs`](packages/mermaid/docs) -The source files for the project documentation are located in the [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) directory. This is where you should make changes. -The files under `/packages/mermaid/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. +The source files for the project documentation are located in the [`/packages/mermaid/docs`](packages/mermaid/docs) directory. This is where you should make changes. +The files under `/packages/mermaid/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. ```mermaid flowchart LR classDef default fill:#fff,color:black,stroke:black - source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] + source["files in /packages/mermaid/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] ``` @@ -148,11 +148,11 @@ it('should render forks and joins', () => { Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature? -The source files for documentation are in `/packages/mermaid/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. +The source files for documentation are in `/packages/mermaid/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. #### Adding to or changing the documentation organization -If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `src/docs/_sidebar.md`. +If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `docs/_sidebar.md`. When changes are committed and then released, they become part of the `master` branch and become part of the published documentation on https://mermaid-js.github.io/mermaid/ diff --git a/package.json b/package.json index 7a25c43746..b8822bd934 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", - "todo-postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json new file mode 100644 index 0000000000..d199320ef9 --- /dev/null +++ b/packages/mermaid/.lintstagedrc.json @@ -0,0 +1,6 @@ +{ + "packages/mermaid/docs/**": ["pnpm run docs:build --git"], + "packages/mermaid/docs.mts": ["pnpm run docs:build --git"], + "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], + "*.jison": ["pnpm run lint:jison"] +} diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 34d9ea67d5..95a9b53f1a 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -27,26 +27,27 @@ "clean": "rimraf dist", "build:code": "node .esbuild/esbuild.cjs", "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:watch": "yarn build:code --watch", - "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:esbuild", + "build:watch": "pnpm build:code --watch", + "build:esbuild": "concurrently \"pnpm build:code\" \"pnpm build:types\"", + "build": "pnpm clean; pnpm build:esbuild", "dev": "node .esbuild/serve.cjs", + "predocs:build": "rimraf docs/.vitepress/dist", "docs:build": "ts-node-esm src/docs.mts", - "docs:verify": "yarn docs:build --verify", + "docs:verify": "pnpm docs:build --verify", "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --hideInPageTOC --namedAnchors --out docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", "predocs:dev": "pnpm docs:code", "docs:dev": "vitepress dev docs", "predocs:bundle": "pnpm docs:code", "docs:bundle": "vitepress build docs", "docs:serve": "vitepress serve docs", - "release": "yarn build", - "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", + "release": "pnpm build", + "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", "lint:jison": "ts-node-esm src/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", - "todo-prepare": "concurrently \"husky install\" \"yarn build\"", + "todo-prepare": "concurrently \"husky install\" \"pnpm build\"", "pre-commit": "lint-staged" }, "repository": { diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 088a50bf94..d350d99701 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -56,7 +56,7 @@ const LOGMSG_TRANSFORMED = 'transformed'; const LOGMSG_TO_BE_TRANSFORMED = 'to be transformed'; const LOGMSG_COPIED = `, and copied to ${FINAL_DOCS_DIR}`; -const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run yarn docs:build after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; +const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run pnpm docs:build after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; const verifyOnly: boolean = process.argv.includes('--verify'); const git: boolean = process.argv.includes('--git'); From 9251176f5eed8e36f5922c2cb583b2b7d5bd6cc0 Mon Sep 17 00:00:00 2001 From: Danang Estutomoaji <ajidanang9@gmail.com> Date: Sat, 15 Oct 2022 11:48:02 +0700 Subject: [PATCH 0388/1038] feat(issue#3675): added open graph meta tags --- packages/mermaid/src/docs/index.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 8c13f6f6b0..13be3b061b 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -15,6 +15,11 @@ name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> + <meta property="og:title" id="og-title" content="Mermaid" /> + <meta property="og:url" id="og-url" content="https://mermaid-js.github.io/mermaid/" /> + <meta property="og:image" content="https://i.ibb.co/883k0pH/mermaid-logo.jpg" /> + <meta property="og:description" content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." /> + <meta property="og:type" content="website" /> <!-- <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css"> --> <link rel="stylesheet" href="theme.css" /> <link From b78dc246ec544f819896441fc662c94aa644e527 Mon Sep 17 00:00:00 2001 From: Danang Estutomoaji <ajidanang9@gmail.com> Date: Sat, 15 Oct 2022 11:56:50 +0700 Subject: [PATCH 0389/1038] remove id attribute --- packages/mermaid/src/docs/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 13be3b061b..28108f91d9 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -15,8 +15,8 @@ name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> - <meta property="og:title" id="og-title" content="Mermaid" /> - <meta property="og:url" id="og-url" content="https://mermaid-js.github.io/mermaid/" /> + <meta property="og:title" content="Mermaid" /> + <meta property="og:url" content="https://mermaid-js.github.io/mermaid/" /> <meta property="og:image" content="https://i.ibb.co/883k0pH/mermaid-logo.jpg" /> <meta property="og:description" content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." /> <meta property="og:type" content="website" /> From 9ba1f7c1f6fe0fccadb65856d355e508a3ba47d8 Mon Sep 17 00:00:00 2001 From: Danang Estutomoaji <ajidanang9@gmail.com> Date: Sat, 15 Oct 2022 17:04:12 +0700 Subject: [PATCH 0390/1038] fix: prettier --- docs/index.html | 8 ++++++++ packages/mermaid/src/docs/index.html | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index 6d129c346c..0eee970347 100644 --- a/docs/index.html +++ b/docs/index.html @@ -15,6 +15,14 @@ name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> + <meta property="og:title" content="Mermaid" /> + <meta property="og:url" content="https://mermaid-js.github.io/mermaid/" /> + <meta property="og:image" content="https://i.ibb.co/883k0pH/mermaid-logo.jpg" /> + <meta + property="og:description" + content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." + /> + <meta property="og:type" content="website" /> <!-- <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css"> --> <link rel="stylesheet" href="theme.css" /> <link diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 28108f91d9..57061cc9d9 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -18,7 +18,10 @@ <meta property="og:title" content="Mermaid" /> <meta property="og:url" content="https://mermaid-js.github.io/mermaid/" /> <meta property="og:image" content="https://i.ibb.co/883k0pH/mermaid-logo.jpg" /> - <meta property="og:description" content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." /> + <meta + property="og:description" + content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." + /> <meta property="og:type" content="website" /> <!-- <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css"> --> <link rel="stylesheet" href="theme.css" /> From f532843665d13ba7e7de9f27d6d2a776ea59f257 Mon Sep 17 00:00:00 2001 From: Danang Estutomoaji <ajidanang9@gmail.com> Date: Sat, 15 Oct 2022 17:13:36 +0700 Subject: [PATCH 0391/1038] update: open graph image --- docs/index.html | 2 +- packages/mermaid/src/docs/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.html b/docs/index.html index 0eee970347..6f3f0f27b1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -17,7 +17,7 @@ /> <meta property="og:title" content="Mermaid" /> <meta property="og:url" content="https://mermaid-js.github.io/mermaid/" /> - <meta property="og:image" content="https://i.ibb.co/883k0pH/mermaid-logo.jpg" /> + <meta property="og:image" content="https://mermaid-js.github.io/mermaid/img/header.png" /> <meta property="og:description" content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 57061cc9d9..5022e6dc9a 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -17,7 +17,7 @@ /> <meta property="og:title" content="Mermaid" /> <meta property="og:url" content="https://mermaid-js.github.io/mermaid/" /> - <meta property="og:image" content="https://i.ibb.co/883k0pH/mermaid-logo.jpg" /> + <meta property="og:image" content="https://mermaid-js.github.io/mermaid/img/header.png" /> <meta property="og:description" content="Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs." From 478c38749139bd636444cad4307c0792c6dfee63 Mon Sep 17 00:00:00 2001 From: devcer <viswanathamsantosh@gmail.com> Date: Sat, 15 Oct 2022 19:43:07 +0530 Subject: [PATCH 0392/1038] added words to cspell ignore words list, removed mywords.txt --- .eslintrc.json | 3 +- cSpell.json | 18 +++++++++-- cypress/helpers/util.js | 1 - cypress/platform/xss21.html | 2 +- myWords.txt | 14 -------- .../mermaid-example-diagram/src/detector.ts | 2 +- .../src/exampleDiagramRenderer.js | 2 +- .../mermaid-mindmap/src/mindmapRenderer.js | 12 +++---- packages/mermaid/src/Diagram.ts | 2 +- packages/mermaid/src/config.ts | 2 +- packages/mermaid/src/dagre-wrapper/edges.js | 4 +-- .../src/dagre-wrapper/intersect/index.js | 3 +- .../dagre-wrapper/intersect/intersect-line.js | 5 +-- .../src/dagre-wrapper/mermaid-graphlib.js | 2 +- packages/mermaid/src/dagre-wrapper/nodes.js | 2 +- packages/mermaid/src/defaultConfig.ts | 4 ++- .../mermaid/src/diagram-api/diagramAPI.ts | 6 ++-- .../mermaid/src/diagrams/c4/c4Renderer.js | 32 +++++++++++-------- .../src/diagrams/class/classDetector-V2.ts | 2 +- .../src/diagrams/class/classDetector.ts | 2 +- .../src/diagrams/class/classRenderer-v2.js | 1 + .../src/diagrams/class/classRenderer.js | 2 +- .../mermaid/src/diagrams/class/svgDraw.js | 2 +- .../mermaid/src/diagrams/common/common.ts | 4 +-- .../mermaid/src/diagrams/er/erRenderer.js | 2 +- .../src/diagrams/flowchart/flowChartShapes.js | 2 +- .../src/diagrams/flowchart/flowDetector-v2.ts | 2 +- .../src/diagrams/flowchart/flowDetector.ts | 2 +- .../flowchart/parser/flow-direction.spec.js | 4 --- .../mermaid/src/diagrams/gantt/ganttDb.js | 2 +- .../src/diagrams/gantt/ganttDb.spec.ts | 1 + .../src/diagrams/gantt/ganttRenderer.js | 6 ++-- .../mermaid/src/diagrams/git/gitGraphAst.js | 9 +++--- .../src/diagrams/git/gitGraphRenderer-old.js | 22 ++++++------- packages/mermaid/src/diagrams/git/layout.js | 2 +- .../mermaid/src/diagrams/info/infoRenderer.js | 5 ++- .../mermaid/src/diagrams/pie/pieRenderer.js | 2 +- .../requirement/requirementRenderer.js | 2 +- .../src/diagrams/sequence/sequenceRenderer.ts | 11 ++++--- .../mermaid/src/diagrams/sequence/svgDraw.js | 6 ++-- packages/mermaid/src/diagrams/state/shapes.js | 4 +-- .../src/diagrams/state/stateDetector.ts | 2 +- .../src/diagrams/state/stateRenderer-v2.js | 4 +-- .../diagrams/user-journey/journeyRenderer.ts | 3 +- packages/mermaid/src/docs.mts | 1 + packages/mermaid/src/utils.ts | 1 + 46 files changed, 114 insertions(+), 110 deletions(-) delete mode 100644 myWords.txt diff --git a/.eslintrc.json b/.eslintrc.json index 902db3175d..73cd0df677 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -55,8 +55,7 @@ { "checkIdentifiers": false, "checkStrings": false, - "checkStringTemplates": false, - "customWordListFile": { "path": "./myWords.txt" } + "checkStringTemplates": false } ] }, diff --git a/cSpell.json b/cSpell.json index 5abf6e2838..867302e3cd 100644 --- a/cSpell.json +++ b/cSpell.json @@ -13,7 +13,8 @@ "sandboxed", "Sveidqvist", "verdana", - "Visio" + "Visio", + "mermiad" ], "ignoreWords": [ "Adamiecki", @@ -38,7 +39,20 @@ "Podlite", "redmine", "sphinxcontrib", - "Tuleap" + "Tuleap", + "dagre", + "vitepress", + "docsify", + "colour", + "graphlib", + "acyclicer", + "ranksep", + "descr", + "substate", + "Ashish", + "bbox", + "techn", + "cytoscape" ], "patterns": [ { diff --git a/cypress/helpers/util.js b/cypress/helpers/util.js index bee9a59f0b..33632b28a0 100644 --- a/cypress/helpers/util.js +++ b/cypress/helpers/util.js @@ -45,7 +45,6 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) => options.fontSize = '16px'; } const useAppli = Cypress.env('useAppli'); - //const useAppli = false; cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot'); const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-'); diff --git a/cypress/platform/xss21.html b/cypress/platform/xss21.html index e65a357ee4..998d39a5a8 100644 --- a/cypress/platform/xss21.html +++ b/cypress/platform/xss21.html @@ -94,7 +94,7 @@ } // var diagram = ` graph TD - // A --> B["<a href='javasc`; + // A --> B["<a href='javascript`; // diagram += `ript#colon;xssAttack()'>AAA</a>"]`; var diagram = ` graph TD A --> B["<a href='javasc`; diff --git a/myWords.txt b/myWords.txt deleted file mode 100644 index 1ae2e945ee..0000000000 --- a/myWords.txt +++ /dev/null @@ -1,14 +0,0 @@ -customizability -Gantt -jison -knsv -Knut -mindmap -Mindmaps -mitigations -sandboxed -Sveidqvist -verdana -Visio -vitepress -colour diff --git a/packages/mermaid-example-diagram/src/detector.ts b/packages/mermaid-example-diagram/src/detector.ts index 4d857ac26c..29f6d2a6dc 100644 --- a/packages/mermaid-example-diagram/src/detector.ts +++ b/packages/mermaid-example-diagram/src/detector.ts @@ -2,7 +2,7 @@ export const id = 'example-diagram'; /** - * Detector function that will be called by mermaid to determine if the diagram is this type of digram. + * Detector function that will be called by mermaid to determine if the diagram is this type of diagram. * * @param txt The diagram text will be passed to the detector * @returns True if the diagram text matches a diagram of this type diff --git a/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js b/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js index 4eaf49d5c5..0d73406778 100644 --- a/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js +++ b/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js @@ -16,7 +16,7 @@ export const draw = (text, id, version) => { log.debug('Rendering example diagram\n' + text, 'Conf: '); const THEME_COLOR_LIMIT = getConfig().themeVariables.THEME_COLOR_LIMIT; const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index acbb350481..bc45164b34 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -11,7 +11,7 @@ cytoscape.use(coseBilkent); /** * @param {any} svg The svg element to draw the diagram onto - * @param {object} mindmap The maindmap data and hierarchy + * @param {object} mindmap The mindmap data and hierarchy * @param section * @param {object} conf The configuration object */ @@ -52,7 +52,7 @@ function drawEdges(edgesEl, cy) { /** * @param {any} svg The svg element to draw the diagram onto - * @param {object} mindmap The maindmap data and hierarchy + * @param {object} mindmap The mindmap data and hierarchy * @param section * @param cy * @param {object} conf The configuration object @@ -96,7 +96,6 @@ function addNodes(mindmap, cy, conf, level) { /** * @param node * @param conf - * @param cy */ function layoutMindmap(node, conf) { return new Promise((resolve) => { @@ -121,7 +120,7 @@ function layoutMindmap(node, conf) { renderEl.remove(); addNodes(node, cy, conf, 0); - // Make cytoscape care about the dimensisions of the nodes + // Make cytoscape care about the dimensions of the nodes cy.nodes().forEach(function (n) { n.layoutDimensions = () => { const data = n.data(); @@ -143,10 +142,7 @@ function layoutMindmap(node, conf) { }); } /** - * @param node * @param cy - * @param positionedMindmap - * @param conf */ function positionNodes(cy) { cy.nodes().map((node, id) => { @@ -184,7 +180,7 @@ export const draw = async (text, id, version, diagObj) => { log.debug('Renering info diagram\n' + text); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 9bdc92079f..6d9e6a9e24 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -79,7 +79,7 @@ export const getDiagramFromText = async (txt: string, parseError?: Function) => if (!loader) { throw new Error(`Diagram ${type} not found.`); } - // Diagram not avaiable, loading it + // Diagram not available, loading it // const path = getPathForDiagram(type); const { diagram } = await loader(); // eslint-disable-line @typescript-eslint/no-explicit-any registerDiagram( diff --git a/packages/mermaid/src/config.ts b/packages/mermaid/src/config.ts index 44dcf8bd14..8dfeeafca8 100644 --- a/packages/mermaid/src/config.ts +++ b/packages/mermaid/src/config.ts @@ -166,7 +166,7 @@ export const sanitize = (options: any) => { } }); // Check that there no attempts of xss, there should be no tags at all in the directive - // blocking data urls as base64 urls can contain svgs with inline script tags + // blocking data urls as base64 urls can contain svg's with inline script tags Object.keys(options).forEach((key) => { if (typeof options[key] === 'string') { if ( diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index 6ed08e924f..606c0ca8ae 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -310,7 +310,7 @@ const cutPathAtIntersect = (_points, boundryNode) => { // const node = clusterDb[edge.toCluster].node; log.info('abc88 checking point', point, boundryNode); - // check if point is inside the boundry rect + // check if point is inside the boundary rect if (!outsideNode(boundryNode, point) && !isInside) { // First point inside the rect found // Calc the intersection coord between the point anf the last point outside the rect @@ -429,7 +429,7 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph }) .curve(curve); - // Contruct stroke classes based on properties + // Construct stroke classes based on properties let strokeClasses; switch (edge.thickness) { case 'normal': diff --git a/packages/mermaid/src/dagre-wrapper/intersect/index.js b/packages/mermaid/src/dagre-wrapper/intersect/index.js index 9acff666c2..4053ea097e 100644 --- a/packages/mermaid/src/dagre-wrapper/intersect/index.js +++ b/packages/mermaid/src/dagre-wrapper/intersect/index.js @@ -1,5 +1,6 @@ /* - * Borrowed with love from from dagrge-d3. Many thanks to cpettitt! + // eslint-disable-next-line @cspell/spellchecker + * Borrowed with love from from dagre-d3. Many thanks to cpettitt! */ import node from './intersect-node.js'; diff --git a/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js b/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js index f9ef0b15f8..0e6750abd9 100644 --- a/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js +++ b/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js @@ -7,6 +7,7 @@ * @param q2 */ function intersectLine(p1, p2, q1, q2) { + // eslint-disable-next-line @cspell/spellchecker // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994, // p7 and p473. @@ -28,7 +29,7 @@ function intersectLine(p1, p2, q1, q2) { // Check signs of r3 and r4. If both point 3 and point 4 lie on // same side of line 1, the line segments do not intersect. if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) { - return /*DONT_INTERSECT*/; + return /*DON'T_INTERSECT*/; } // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0 @@ -44,7 +45,7 @@ function intersectLine(p1, p2, q1, q2) { // on same side of second line segment, the line segments do // not intersect. if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) { - return /*DONT_INTERSECT*/; + return /*DON'T_INTERSECT*/; } // Line segments intersect: compute intersection point. diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 4c283b12f1..950a8b02b4 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -235,7 +235,7 @@ export const adjustClustersAndEdges = (graph, depth) => { // Check if any edge leaves the cluster (not the actual cluster, that's a link from the box) if (edge.v !== id && edge.w !== id) { - // Any edge where either the one of the nodes is decending to the cluster but not the other + // Any edge where either the one of the nodes is descending to the cluster but not the other // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) { const d1 = isDecendant(edge.v, id); diff --git a/packages/mermaid/src/dagre-wrapper/nodes.js b/packages/mermaid/src/dagre-wrapper/nodes.js index f25eb2e86b..5d5bd2f2c5 100644 --- a/packages/mermaid/src/dagre-wrapper/nodes.js +++ b/packages/mermaid/src/dagre-wrapper/nodes.js @@ -291,7 +291,7 @@ const cylinder = (parent, node) => { (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) ) { // ellipsis equation: x*x / a*a + y*y / b*b = 1 - // solve for y to get adjustion value for pos.y + // solve for y to get adjusted value for pos.y let y = ry * ry * (1 - (x * x) / (rx * rx)); if (y != 0) y = Math.sqrt(y); y = ry - y; diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 710557bd98..9563566cba 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -119,10 +119,12 @@ const config: Partial<MermaidConfig> = { /** * This option controls if the generated ids of nodes in the SVG are generated randomly or based * on a seed. If set to false, the IDs are generated based on the current date and thus are not + // eslint-disable-next-line @cspell/spellchecker * deterministic. This is the default behaviour. * * **Notes**: * + // eslint-disable-next-line @cspell/spellchecker * This matters if your files are checked into sourcecontrol e.g. git and should not change unless * content is changed. * @@ -1168,7 +1170,7 @@ const config: Partial<MermaidConfig> = { * | --------------- | ----------- | ------- | -------- | ------------------ | * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | * - * **Notes:** How many boundarys to place in each row. + * **Notes:** How many boundaries to place in each row. * * Default value: 2 */ diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 002619bbbd..e5969515ba 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -7,9 +7,9 @@ import { setupGraphViewbox as _setupGraphViewbox } from '../setupGraphViewbox'; import { addStylesForDiagram } from '../styles'; /* - Packaging and exposing resources for externa diagrams so that they can import - diagramAPI and have access to selct parts of mermaid common code reqiored to - create diagrams worling like the internal diagrams. + Packaging and exposing resources for external diagrams so that they can import + diagramAPI and have access to select parts of mermaid common code required to + create diagrams working like the internal diagrams. */ export const log = _log; export const setLogLevel = _setLogLevel; diff --git a/packages/mermaid/src/diagrams/c4/c4Renderer.js b/packages/mermaid/src/diagrams/c4/c4Renderer.js index dceca28871..c4f40b0bc5 100644 --- a/packages/mermaid/src/diagrams/c4/c4Renderer.js +++ b/packages/mermaid/src/diagrams/c4/c4Renderer.js @@ -441,20 +441,26 @@ export const drawRels = function (diagram, rels, getC4ShapeObj, diagObj) { * @param diagram * @param parentBoundaryAlias * @param parentBounds - * @param currentBoundarys + * @param currentBoundaries * @param diagObj */ -function drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentBoundarys, diagObj) { +function drawInsideBoundary( + diagram, + parentBoundaryAlias, + parentBounds, + currentBoundaries, + diagObj +) { let currentBounds = new Bounds(diagObj); - // Calculate the width limit of the boundar. label/type 的长度, + // Calculate the width limit of the boundary. label/type 的长度, currentBounds.data.widthLimit = - parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundarys.length); + parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length); // Math.min( // conf.width * conf.c4ShapeInRow + conf.c4ShapeMargin * conf.c4ShapeInRow * 2, - // parentBounds.data.widthLimit / Math.min(conf.c4BoundaryInRow, currentBoundarys.length) + // parentBounds.data.widthLimit / Math.min(conf.c4BoundaryInRow, currentBoundaries.length) // ); - for (let i = 0; i < currentBoundarys.length; i++) { - let currentBoundary = currentBoundarys[i]; + for (let i = 0; i < currentBoundaries.length; i++) { + let currentBoundary = currentBoundaries[i]; let Y = 0; currentBoundary.image = { width: 0, height: 0, Y: 0 }; if (currentBoundary.sprite) { @@ -508,13 +514,13 @@ function drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentB } if (i == 0 || i % c4BoundaryInRow === 0) { - // Calculate the drawing start point of the currentBoundarys. + // Calculate the drawing start point of the currentBoundaries. let _x = parentBounds.data.startx + conf.diagramMarginX; let _y = parentBounds.data.stopy + conf.diagramMarginY + Y; currentBounds.setData(_x, _x, _y, _y); } else { - // Calculate the drawing start point of the currentBoundarys. + // Calculate the drawing start point of the currentBoundaries. let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX @@ -540,8 +546,6 @@ function drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentB if (nextCurrentBoundarys.length > 0) { // draw boundary inside currentBoundary - // bounds.init(); - // parentBoundaryWidthLimit = bounds.data.stopx - bounds.startx; drawInsideBoundary( diagram, parentBoundaryAlias, @@ -576,7 +580,7 @@ function drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentB export const draw = function (_text, id, _version, diagObj) { conf = configApi.getConfig().c4; const securityLevel = configApi.getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); @@ -616,10 +620,10 @@ export const draw = function (_text, id, _version, diagObj) { globalBoundaryMaxY = conf.diagramMarginY; const title = diagObj.db.getTitle(); - let currentBoundarys = diagObj.db.getBoundarys(''); + let currentBoundaries = diagObj.db.getBoundarys(''); // switch (c4type) { // case 'C4Context': - drawInsideBoundary(diagram, '', screenBounds, currentBoundarys, diagObj); + drawInsideBoundary(diagram, '', screenBounds, currentBoundaries, diagObj); // break; // } diff --git a/packages/mermaid/src/diagrams/class/classDetector-V2.ts b/packages/mermaid/src/diagrams/class/classDetector-V2.ts index a0e2701007..6ef4f75142 100644 --- a/packages/mermaid/src/diagrams/class/classDetector-V2.ts +++ b/packages/mermaid/src/diagrams/class/classDetector-V2.ts @@ -1,7 +1,7 @@ import type { DiagramDetector } from '../../diagram-api/detectType'; export const classDetectorV2: DiagramDetector = (txt, config) => { - // If we have confgured to use dagre-wrapper then we should return true in this function for classDiagram code thus making it use the new class diagram + // If we have configured to use dagre-wrapper then we should return true in this function for classDiagram code thus making it use the new class diagram if (txt.match(/^\s*classDiagram/) !== null && config?.class?.defaultRenderer === 'dagre-wrapper') return true; // We have not opted to use the new renderer so we should return true if we detect a class diagram diff --git a/packages/mermaid/src/diagrams/class/classDetector.ts b/packages/mermaid/src/diagrams/class/classDetector.ts index 19d8bd2f58..e5d8a2e562 100644 --- a/packages/mermaid/src/diagrams/class/classDetector.ts +++ b/packages/mermaid/src/diagrams/class/classDetector.ts @@ -1,7 +1,7 @@ import type { DiagramDetector } from '../../diagram-api/detectType'; export const classDetector: DiagramDetector = (txt, config) => { - // If we have confgured to use dagre-wrapper then we should never return true in this function + // If we have configured to use dagre-wrapper then we should never return true in this function if (config?.class?.defaultRenderer === 'dagre-wrapper') return false; // We have not opted to use the new renderer so we should return true if we detect a class diagram return txt.match(/^\s*classDiagram/) !== null; diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js index 20722e6d05..aa3f87208e 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js @@ -64,6 +64,7 @@ export const addClasses = function (classes, g, _id, diagObj) { // if (evaluate(getConfig().flowchart.htmlLabels)) { // const node = { // label: vertexText.replace( + // eslint-disable-next-line @cspell/spellchecker // /fa[lrsb]?:fa-[\w-]+/g, // s => `<i class='${s.replace(':', ' ')}'></i>` // ) diff --git a/packages/mermaid/src/diagrams/class/classRenderer.js b/packages/mermaid/src/diagrams/class/classRenderer.js index c1236afea7..b31ddf52d2 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer.js +++ b/packages/mermaid/src/diagrams/class/classRenderer.js @@ -148,7 +148,7 @@ export const draw = function (text, id, _version, diagObj) { log.info('Rendering diagram ' + text); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/class/svgDraw.js b/packages/mermaid/src/diagrams/class/svgDraw.js index 9a4dc761e2..443765b485 100644 --- a/packages/mermaid/src/diagrams/class/svgDraw.js +++ b/packages/mermaid/src/diagrams/class/svgDraw.js @@ -347,7 +347,7 @@ const buildMethodDisplay = function (parsedText) { }; const buildLegacyDisplay = function (text) { - // if for some reason we dont have any match, use old format to parse text + // if for some reason we don't have any match, use old format to parse text let displayText = ''; let cssStyle = ''; let memberText = ''; diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index 9f6ae2cdbb..8caa4c7a61 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -60,7 +60,7 @@ export const sanitizeTextOrArray = ( export const lineBreakRegex = /<br\s*\/?>/gi; /** - * Whether or not a text has any linebreaks + * Whether or not a text has any line breaks * * @param {string} text The text to test * @returns {boolean} Whether or not the text has breaks @@ -80,7 +80,7 @@ export const splitBreaks = (text: string): string[] => { }; /** - * Converts placeholders to linebreaks in HTML + * Converts placeholders to line breaks in HTML * * @param {string} s HTML with placeholders * @returns {string} HTML with breaks instead of placeholders diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index a6277f27da..3e6384e6a6 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -644,7 +644,7 @@ export const draw = function (text, id, _version, diagObj) { // inserted - this represents the insertion point for relationship paths const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g); - // TODO: externalise the addition of entities to the graph - it's a bit 'buried' in the above + // TODO: externalize the addition of entities to the graph - it's a bit 'buried' in the above // Add all the relationships to the graph const relationships = addRelationships(diagObj.db.getRelationships(), g); diff --git a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js index 083c52a03b..32a26720fd 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js +++ b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js @@ -279,7 +279,7 @@ function cylinder(parent, bbox, node) { (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) ) { // ellipsis equation: x*x / a*a + y*y / b*b = 1 - // solve for y to get adjustion value for pos.y + // solve for y to get adjusted value for pos.y let y = ry * ry * (1 - (x * x) / (rx * rx)); if (y != 0) y = Math.sqrt(y); y = ry - y; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts index f73748c797..9a231c4aa8 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts @@ -1,7 +1,7 @@ import type { DiagramDetector } from '../../diagram-api/detectType'; export const flowDetectorV2: DiagramDetector = (txt, config) => { - // If we have confgured to use dagre-wrapper then we should return true in this function for graph code thus making it use the new flowchart diagram + // If we have configured to use dagre-wrapper then we should return true in this function for graph code thus making it use the new flowchart diagram if (config?.flowchart?.defaultRenderer === 'dagre-wrapper' && txt.match(/^\s*graph/) !== null) return true; return txt.match(/^\s*flowchart/) !== null; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts index edc9096c08..c42a96d9e8 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts @@ -1,7 +1,7 @@ import type { DiagramDetector } from '../../diagram-api/detectType'; export const flowDetector: DiagramDetector = (txt, config) => { - // If we have confired to only use new flow charts this function shohuld always return false + // If we have conferred to only use new flow charts this function should always return false // as in not signalling true for a legacy flowchart if (config?.flowchart?.defaultRenderer === 'dagre-wrapper') return false; return txt.match(/^\s*graph/) !== null; diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js index a56184f110..6b741fc12f 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js @@ -2,11 +2,7 @@ import flowDb from '../flowDb'; import flow from './flow'; import filter from 'lodash/filter'; import { setConfig } from '../../../config'; -// import DOMPurify from 'dompurify'; -// const domPurify = DOMPurify.createDOMPurify(window); - -// const clean = DOMPurify.sanitize(dirty); setConfig({ securityLevel: 'strict', }); diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index 9183cc7661..096b5a4104 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -229,7 +229,7 @@ const getStartDate = function (prevTime, dateFormat, str) { * Parse a string as a moment duration. * * The string have to be compound by a value and a shorthand duration unit. For example `5d` - * representes 5 days. + * represents 5 days. * * Shorthand unit supported are: * diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts index 09df96f12f..eb8a38f607 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck TODO: Fix TS import moment from 'moment-mini'; import ganttDb from './ganttDb'; diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index 3b12bc1911..8ad9ca0371 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -27,7 +27,7 @@ export const draw = function (text, id, version, diagObj) { // parser.parse(text); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); @@ -610,7 +610,7 @@ export const draw = function (text, id, version, diagObj) { } /** - * From this stackexchange question: + * From this stack exchange question: * http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript * * @param arr @@ -629,7 +629,7 @@ export const draw = function (text, id, version, diagObj) { } /** - * From this stackexchange question: + * From this stack exchange question: * http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array * * @param arr diff --git a/packages/mermaid/src/diagrams/git/gitGraphAst.js b/packages/mermaid/src/diagrams/git/gitGraphAst.js index 41130c7800..c5674f39de 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphAst.js +++ b/packages/mermaid/src/diagrams/git/gitGraphAst.js @@ -39,6 +39,7 @@ export const parseDirective = function (statement, context, type) { // * @param currentCommit // * @param otherCommit // */ +// eslint-disable-next-line @cspell/spellchecker // function isfastforwardable(currentCommit, otherCommit) { // log.debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id); // let cnt = 0; @@ -384,14 +385,14 @@ export const checkout = function (branch) { /** * @param arr * @param key - * @param newval + * @param newVal */ -function upsert(arr, key, newval) { +function upsert(arr, key, newVal) { const index = arr.indexOf(key); if (index === -1) { - arr.push(newval); + arr.push(newVal); } else { - arr.splice(index, 1, newval); + arr.splice(index, 1, newVal); } } diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js index eefaf5ad84..fa46dfde9a 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js @@ -218,18 +218,18 @@ function cloneNode(svg, selector) { /** * @param svg - * @param commitid + * @param commitId * @param branches * @param direction */ -function renderCommitHistory(svg, commitid, branches, direction) { +function renderCommitHistory(svg, commitId, branches, direction) { let commit; const numCommits = Object.keys(allCommitsDict).length; - if (typeof commitid === 'string') { + if (typeof commitId === 'string') { do { - commit = allCommitsDict[commitid]; + commit = allCommitsDict[commitId]; logger.debug('in renderCommitHistory', commit.id, commit.seq); - if (svg.select('#node-' + commitid).size() > 0) { + if (svg.select('#node-' + commitId).size() > 0) { return; } svg @@ -291,15 +291,15 @@ function renderCommitHistory(svg, commitid, branches, direction) { .attr('class', 'commit-msg') .text(', ' + commit.message); } - commitid = commit.parent; - } while (commitid && allCommitsDict[commitid]); + commitId = commit.parent; + } while (commitId && allCommitsDict[commitId]); } - if (Array.isArray(commitid)) { - logger.debug('found merge commmit', commitid); - renderCommitHistory(svg, commitid[0], branches, direction); + if (Array.isArray(commitId)) { + logger.debug('found merge commmit', commitId); + renderCommitHistory(svg, commitId[0], branches, direction); branchNum++; - renderCommitHistory(svg, commitid[1], branches, direction); + renderCommitHistory(svg, commitId[1], branches, direction); branchNum--; } } diff --git a/packages/mermaid/src/diagrams/git/layout.js b/packages/mermaid/src/diagrams/git/layout.js index 5714c2b96a..dd8f23843e 100644 --- a/packages/mermaid/src/diagrams/git/layout.js +++ b/packages/mermaid/src/diagrams/git/layout.js @@ -1,6 +1,6 @@ import { getConfig } from '../../config'; -export default (dir, _branches, _commits) => { +export default (dir, _branches) => { const config = getConfig().gitGraph; const branches = []; const commits = []; diff --git a/packages/mermaid/src/diagrams/info/infoRenderer.js b/packages/mermaid/src/diagrams/info/infoRenderer.js index b50178481b..1caa7222cc 100644 --- a/packages/mermaid/src/diagrams/info/infoRenderer.js +++ b/packages/mermaid/src/diagrams/info/infoRenderer.js @@ -9,16 +9,15 @@ import { getConfig } from '../../config'; * @param {any} text * @param {any} id * @param {any} version - * @param diagObj */ -export const draw = (text, id, version, diagObj) => { +export const draw = (text, id, version) => { try { // const parser = infoParser.parser; // parser.yy = db; log.debug('Rendering info diagram\n' + text); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/pie/pieRenderer.js b/packages/mermaid/src/diagrams/pie/pieRenderer.js index f8e21bc9d1..c630c82fec 100644 --- a/packages/mermaid/src/diagrams/pie/pieRenderer.js +++ b/packages/mermaid/src/diagrams/pie/pieRenderer.js @@ -21,7 +21,7 @@ export const draw = (txt, id, _version, diagObj) => { log.debug('Rendering info diagram\n' + txt); const securityLevel = configApi.getConfig().securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js index d10c43066c..79d67e76ed 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js +++ b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js @@ -311,7 +311,7 @@ export const draw = (text, id, _version, diagObj) => { diagObj.parser.parse(text); const securityLevel = conf.securityLevel; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index 19352ca723..f7de8a1113 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck TODO: fix file import { select, selectAll } from 'd3'; import svgDraw, { drawText, fixLifeLineHeights } from './svgDraw'; @@ -204,8 +205,8 @@ export const bounds = { * Draws an note in the diagram with the attached line * * @param {any} elem - The diagram to draw to. - * @param {{ x: number; y: number; message: string; width: number }} noteModel - Startx: x axis - * start position, verticalPos: y axis position, messsage: the message to be shown, width: Set + * @param {{ x: number; y: number; message: string; width: number }} noteModel - startX: x axis + * start position, verticalPos: y axis position, message: the message to be shown, width: Set * this with a custom width to override the default configured width. */ const drawNote = function (elem, noteModel) { @@ -280,7 +281,7 @@ const actorFont = (cnf) => { * * @param {any} diagram - The parent of the message element * @param {any} msgModel - The model containing fields describing a message - * @returns {number} LineStarty - The Y coordinate at which the message line starts + * @returns {number} lineStartY - The Y coordinate at which the message line starts */ const boundMessage = function (diagram, msgModel) { bounds.bumpVerticalPos(10); @@ -587,12 +588,12 @@ function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoop * @param {any} _text The text of the diagram * @param {any} id The id of the diagram which will be used as a DOM element id¨ * @param {any} _version Mermaid version from package.json - * @param {any} diagObj A stanard diagram containing the db and the text and type etc of the diagram + * @param {any} diagObj A standard diagram containing the db and the text and type etc of the diagram */ export const draw = function (_text, id, _version, diagObj) { const { securityLevel, sequence } = configApi.getConfig(); conf = sequence; - // Handle root and Document for when rendering in sanbox mode + // Handle root and Document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index fd70871e04..c2a007edce 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -509,7 +509,7 @@ export const anchorElement = function (elem) { * * @param {any} elem - Element to append activation rect. * @param {any} bounds - Activation box bounds. - * @param {any} verticalPos - Precise y cooridnate of bottom activation box edge. + * @param {any} verticalPos - Precise y coordinate of bottom activation box edge. * @param {any} conf - Sequence diagram config object. * @param {any} actorActivations - Number of activations on the actor. */ @@ -527,10 +527,10 @@ export const drawActivation = function (elem, bounds, verticalPos, conf, actorAc /** * Draws a loop in the diagram * - * @param {any} elem - Elemenet to append the loop to. + * @param {any} elem - Element to append the loop to. * @param {any} loopModel - LoopModel of the given loop. * @param {any} labelText - Text within the loop. - * @param {any} conf - Diagrom configuration + * @param {any} conf - Diagram configuration * @returns {any} */ export const drawLoop = function (elem, loopModel, labelText, conf) { diff --git a/packages/mermaid/src/diagrams/state/shapes.js b/packages/mermaid/src/diagrams/state/shapes.js index e2286bb511..cb73b63d2c 100644 --- a/packages/mermaid/src/diagrams/state/shapes.js +++ b/packages/mermaid/src/diagrams/state/shapes.js @@ -137,7 +137,7 @@ export const drawDescrState = (g, stateDef) => { /** Adds the creates a box around the existing content and adds a panel for the id on top of the content. */ /** - * Function that creates an title row and a frame around a substate for a composit state diagram. + * Function that creates an title row and a frame around a substate for a composite state diagram. * The function returns a new d3 svg object with updated width and height properties; * * @param {any} g The d3 svg object for the substate to framed @@ -178,7 +178,7 @@ export const addTitleAndBox = (g, stateDef, altBkg) => { // descrLine.attr('x2', graphBox.width + getConfig().state.padding); if (stateDef.doc) { - // cnsole.warn( + // console.warn( // stateDef.id, // 'orgX: ', // orgX, diff --git a/packages/mermaid/src/diagrams/state/stateDetector.ts b/packages/mermaid/src/diagrams/state/stateDetector.ts index 79dd6586bb..43da2e1833 100644 --- a/packages/mermaid/src/diagrams/state/stateDetector.ts +++ b/packages/mermaid/src/diagrams/state/stateDetector.ts @@ -1,7 +1,7 @@ import type { DiagramDetector } from '../../diagram-api/detectType'; export const stateDetector: DiagramDetector = (txt, config) => { - // If we have confired to only use new state diagrams this function should always return false + // If we have confirmed to only use new state diagrams this function should always return false // as in not signalling true for a legacy state diagram if (config?.state?.defaultRenderer === 'dagre-wrapper') return false; return txt.match(/^\s*stateDiagram/) !== null; diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 13c474b5e1..124a9db925 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -56,7 +56,7 @@ const setupNode = (g, parent, node, altFlag) => { }; } - // Build of the array of description strings accordinging + // Build of the array of description strings according if (node.description) { if (Array.isArray(nodeDb[node.id].description)) { // There already is an array of strings,add to it @@ -64,7 +64,7 @@ const setupNode = (g, parent, node, altFlag) => { nodeDb[node.id].description.push(node.description); } else { if (nodeDb[node.id].description.length > 0) { - // if there is a description already transformit to an array + // if there is a description already transform it to an array nodeDb[node.id].shape = 'rectWithTitle'; if (nodeDb[node.id].description === node.id) { // If the previous description was the is, remove it diff --git a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts index 2eaa9e0204..da5f44eec5 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck TODO: fix file import { select } from 'd3'; import svgDraw from './svgDraw'; @@ -261,7 +262,7 @@ export const drawTasks = function (diagram, tasks, verticalPos) { // Draw the box with the attached line svgDraw.drawTask(diagram, task, conf); - bounds.insert(task.x, task.y, task.x + task.width + conf.taskMargin, 300 + 5 * 30); // stopy is the length of the descenders. + bounds.insert(task.x, task.y, task.x + task.width + conf.taskMargin, 300 + 5 * 30); // stopY is the length of the descenders. } }; diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index a22dc59e20..eef3b2ef6e 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -39,6 +39,7 @@ import { join, dirname } from 'path'; import prettier from 'prettier'; import { remark } from 'remark'; // @ts-ignore No typescript declaration file +// eslint-disable-next-line @cspell/spellchecker import flatmap from 'unist-util-flatmap'; // These paths are from the root of the mono-repo, not from the diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index eecda41e99..78065d6f2a 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck : TODO Fix ts errors import { sanitizeUrl } from '@braintree/sanitize-url'; import { From aec1d809665b4b64d9b79e98c0284895fc744c9f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 15 Oct 2022 21:33:09 +0530 Subject: [PATCH 0393/1038] fix: Remove hardcoded numericLevel --- packages/mermaid/src/logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index 3eae56d8a7..a03d569147 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -41,7 +41,7 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin } else if (typeof level === 'number') { numericLevel = level; } - numericLevel = 0; + log.trace = () => {}; log.debug = () => {}; log.info = () => {}; From d248952d9e7bd0aeb1db747e5c947e62457dcc5b Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 11:11:54 -0700 Subject: [PATCH 0394/1038] render: constants --- packages/mermaid/src/mermaidAPI.ts | 70 ++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7fe5064de5..0bfa561ccb 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -33,6 +33,29 @@ import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; +const MAX_TEXTLENGTH_EXCEEDED_MSG = + 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; + +const SECURITY_LVL_SANDBOX = 'sandbox'; +const SECURITY_LVL_LOOSE = 'loose'; + +const XMLNS_XHTML_STD = 'http://www.w3.org/1999/xhtml'; +const XMLNS_SVG_STD = 'http://www.w3.org/2000/svg'; +const XMLNS_XLINK_STD = 'http://www.w3.org/1999/xlink'; + +// ------------------------------ +// iFrame +const IFRAME_WIDTH = '100%'; +const IFRAME_HEIGHT = '100%'; +const IFRAME_STYLES = 'border:0;margin:0;'; +const IFRAME_BODY_STYLE = 'margin:0'; +const IFRAME_SANDBOX_OPTS = 'allow-top-navigation-by-user-activation allow-popups'; +const IFRAME_NOT_SUPPORTED_MSG = 'The “iframe” tag is not supported by your browser.'; + +const DOMPURIFY_TAGS = 'foreignobject'; +const DOMPURIFY_ATTR = 'dominant-baseline'; +// -------------------------------------------------------------------------------- + /** * @param text * @param parseError @@ -84,6 +107,7 @@ export const decodeEntities = function (text: string): string { return txt; }; + /** * Function that renders an svg with a graph from a chart definition. Usage example below. * @@ -116,6 +140,7 @@ const render = async function ( container?: Element ): Promise<void> { addDiagrams(); + configApi.reset(); text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; const graphInit = utils.detectInit(text); @@ -129,19 +154,19 @@ const render = async function ( // Check the maximum allowed text size if (text.length > cnf.maxTextSize!) { - text = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; + text = MAX_TEXTLENGTH_EXCEEDED_MSG; } let root: any = select('body'); // In regular execution the container will be the div with a mermaid class if (typeof container !== 'undefined') { - // A container was provided by the caller + // A container was provided by the caller. Clear the inner HTML if there is any if (container) { container.innerHTML = ''; } - if (cnf.securityLevel === 'sandbox') { + if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { // IF we are in sandboxed mode, we do everyting mermaid related // in a sandboxed div const iframe = select(container) @@ -163,8 +188,8 @@ const render = async function ( .append('svg') .attr('id', id) .attr('width', '100%') - .attr('xmlns', 'http://www.w3.org/2000/svg') - .attr('xmlns:xlink', 'http://www.w3.org/1999/xlink') + .attr('xmlns', XMLNS_SVG_STD) + .attr('xmlns:xlink', XMLNS_XLINK_STD) .append('g'); } else { // No container was provided @@ -177,7 +202,7 @@ const render = async function ( // Remove previous tpm element if it exists let element; - if (cnf.securityLevel === 'sandbox') { + if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { element = document.querySelector('#i' + id); } else { element = document.querySelector('#d' + id); @@ -190,7 +215,7 @@ const render = async function ( // Add the tmp div used for rendering with the id `d${id}` // d+id it will contain a svg with the id "id" - if (cnf.securityLevel === 'sandbox') { + if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { // IF we are in sandboxed mode, we do everyting mermaid related // in a sandboxed div const iframe = select('body') @@ -213,7 +238,7 @@ const render = async function ( .append('svg') .attr('id', id) .attr('width', '100%') - .attr('xmlns', 'http://www.w3.org/2000/svg') + .attr('xmlns', XMLNS_SVG_STD) .append('g'); } @@ -305,16 +330,13 @@ const render = async function ( throw e; } - root - .select(`[id="${id}"]`) - .selectAll('foreignobject > *') - .attr('xmlns', 'http://www.w3.org/1999/xhtml'); + root.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', XMLNS_XHTML_STD); // Fix for when the base tag is used let svgCode = root.select('#d' + id).node().innerHTML; log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); - if (!evaluate(cnf.arrowMarkerAbsolute) && cnf.securityLevel !== 'sandbox') { + if (!evaluate(cnf.arrowMarkerAbsolute) && cnf.securityLevel !== SECURITY_LVL_SANDBOX) { svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g'); } @@ -323,23 +345,23 @@ const render = async function ( // Fix for when the br tag is used svgCode = svgCode.replace(/<br>/g, '<br/>'); - if (cnf.securityLevel === 'sandbox') { + if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { const svgEl = root.select('#d' + id + ' svg').node(); - const width = '100%'; - let height = '100%'; + const width = IFRAME_WIDTH; + let height = IFRAME_HEIGHT; if (svgEl) { height = svgEl.viewBox.baseVal.height + 'px'; } - svgCode = `<iframe style="width:${width};height:${height};border:0;margin:0;" src="data:text/html;base64,${btoa( - '<body style="margin:0">' + svgCode + '</body>' - )}" sandbox="allow-top-navigation-by-user-activation allow-popups"> - The “iframe” tag is not supported by your browser. + svgCode = `<iframe style="width:${width};height:${height};${IFRAME_STYLES}" src="data:text/html;base64,${btoa( + `<body style="${IFRAME_BODY_STYLE}">` + svgCode + '</body>' + )}" sandbox="${IFRAME_SANDBOX_OPTS}"> + ${IFRAME_NOT_SUPPORTED_MSG} </iframe>`; } else { - if (cnf.securityLevel !== 'loose') { + if (cnf.securityLevel !== SECURITY_LVL_LOOSE) { svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: ['foreignobject'], - ADD_ATTR: ['dominant-baseline'], + ADD_TAGS: [DOMPURIFY_TAGS], + ADD_ATTR: [DOMPURIFY_ATTR], }); } } @@ -365,7 +387,7 @@ const render = async function ( } attachFunctions(); - const tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id; + const tmpElementSelector = cnf.securityLevel === SECURITY_LVL_SANDBOX ? '#i' + id : '#d' + id; const node = select(tmpElementSelector).node(); if (node && 'remove' in node) { node.remove(); From 8aaa7b1ba314bfe9ee1a9c68f2b318ce98ac315d Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 13:14:01 -0700 Subject: [PATCH 0395/1038] specs: encodeEntities, decodeEntities --- packages/mermaid/src/mermaidAPI.spec.js | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/packages/mermaid/src/mermaidAPI.spec.js b/packages/mermaid/src/mermaidAPI.spec.js index 241b5ec864..35473d1bfe 100644 --- a/packages/mermaid/src/mermaidAPI.spec.js +++ b/packages/mermaid/src/mermaidAPI.spec.js @@ -1,9 +1,78 @@ 'use strict'; import mermaid from './mermaid'; import mermaidAPI from './mermaidAPI'; +import { encodeEntities, decodeEntities } from './mermaidAPI'; + import assignWithDepth from './assignWithDepth'; describe('when using mermaidAPI and ', function () { + describe('encodeEntities', () => { + it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => { + const text = 'style this; is ; everything :something#not-nothing; and this too;'; + expect(encodeEntities(text)).toEqual( + 'style this; is ; everything :something#not-nothing; and this too' + ); + }); + it('removes the ending ; from classDef [text1]:[optional word]#[text2]; with ', () => { + const text = 'classDef this; is ; everything :something#not-nothing; and this too;'; + expect(encodeEntities(text)).toEqual( + 'classDef this; is ; everything :something#not-nothing; and this too' + ); + }); + + describe('replaces words starting with # and ending with ;', () => { + const testStr = 'Hello #there;'; + + it('removes the #', () => { + const result = encodeEntities(testStr); + expect(result.substring(0, 7)).toEqual('Hello fl'); + }); + + it('prefix is fl°° if is all digits', () => { + const result = encodeEntities('Hello #77653;'); + expect(result.substring(6, result.length)).toEqual('fl°°77653¶ß'); + }); + + it('prefix is fl° if is not all digits', () => { + const result = encodeEntities(testStr); + expect(result.substring(6, result.length)).toEqual('fl°there¶ß'); + }); + it('always removes the semi-colon and ends with ¶ß', () => { + const result = encodeEntities(testStr); + expect(result.substring(result.length - 2, result.length)).toEqual('¶ß'); + }); + }); + + it('does all the replacements on the given text', () => { + const text = + 'style this; is ; everything :something#not-nothing; and this too; \n' + + 'classDef this; is ; everything :something#not-nothing; and this too; \n' + + 'Hello #there; #andHere;#77653;'; + + const result = encodeEntities(text); + expect(result).toEqual( + 'style this; is ; everything :something#not-nothing; and this too \n' + + 'classDef this; is ; everything :something#not-nothing; and this too \n' + + 'Hello fl°there¶ß fl°andHere¶ßfl°°77653¶ß' + ); + }); + }); + + describe('decodeEntities', () => { + it('replaces fl°° with &#', () => { + expect(decodeEntities('fl°°hfl°°ifl°°')).toEqual('&#h&#i&#'); + }); + it('replaces fl° with &', () => { + expect(decodeEntities('fl°hfl°ifl°')).toEqual('&h&i&'); + }); + it('replaces ¶ß with ;', () => { + expect(decodeEntities('¶ßh¶ßi¶ß')).toEqual(';h;i;'); + }); + it('runs all the replacements on the given text', () => { + expect(decodeEntities('¶ßfl°¶ßfl°°¶ß')).toEqual(';&;&#;'); + }); + }); + describe('doing initialize ', function () { beforeEach(function () { document.body.innerHTML = ''; From 978bf4e0ffc3451394ef61e63b13298e96a42a18 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 13:19:58 -0700 Subject: [PATCH 0396/1038] render: define const iFrameId, enclosingDivID and _selector to use in function --- packages/mermaid/src/mermaidAPI.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 0bfa561ccb..7dfa720bf1 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -157,6 +157,11 @@ const render = async function ( text = MAX_TEXTLENGTH_EXCEEDED_MSG; } + const iFrameID = 'i' + id; + const iFrameID_selector = '#' + iFrameID; + const enclosingDivID = 'd' + id; + const enclosingDivID_selector = '#' + enclosingDivID; + let root: any = select('body'); // In regular execution the container will be the div with a mermaid class @@ -171,7 +176,7 @@ const render = async function ( // in a sandboxed div const iframe = select(container) .append('iframe') - .attr('id', 'i' + id) + .attr('id', iFrameID) .attr('style', 'width: 100%; height: 100%;') .attr('sandbox', ''); // const iframeBody = ; @@ -183,7 +188,7 @@ const render = async function ( root .append('div') - .attr('id', 'd' + id) + .attr('id', enclosingDivID) .attr('style', 'font-family: ' + cnf.fontFamily) .append('svg') .attr('id', id) @@ -203,7 +208,7 @@ const render = async function ( // Remove previous tpm element if it exists let element; if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { - element = document.querySelector('#i' + id); + element = document.querySelector(iFrameID_selector); } else { element = document.querySelector('#d' + id); } @@ -220,7 +225,7 @@ const render = async function ( // in a sandboxed div const iframe = select('body') .append('iframe') - .attr('id', 'i' + id) + .attr('id', iFrameID) .attr('style', 'width: 100%; height: 100%;') .attr('sandbox', ''); @@ -233,7 +238,7 @@ const render = async function ( // This is the temporary div root .append('div') - .attr('id', 'd' + id) + .attr('id', enclosingDivID) // this is the seed of the svg to be rendered .append('svg') .attr('id', id) @@ -255,7 +260,7 @@ const render = async function ( parseEncounteredException = error; } // Get the tmp element containing the the svg - const element = root.select('#d' + id).node(); + const element = root.select(enclosingDivID_selector).node(); const graphType = diag.type; // insert inline style into svg @@ -333,7 +338,7 @@ const render = async function ( root.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', XMLNS_XHTML_STD); // Fix for when the base tag is used - let svgCode = root.select('#d' + id).node().innerHTML; + let svgCode = root.select(enclosingDivID_selector).node().innerHTML; log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); if (!evaluate(cnf.arrowMarkerAbsolute) && cnf.securityLevel !== SECURITY_LVL_SANDBOX) { @@ -346,7 +351,7 @@ const render = async function ( svgCode = svgCode.replace(/<br>/g, '<br/>'); if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { - const svgEl = root.select('#d' + id + ' svg').node(); + const svgEl = root.select(enclosingDivID_selector + ' svg').node(); const width = IFRAME_WIDTH; let height = IFRAME_HEIGHT; if (svgEl) { @@ -387,7 +392,8 @@ const render = async function ( } attachFunctions(); - const tmpElementSelector = cnf.securityLevel === SECURITY_LVL_SANDBOX ? '#i' + id : '#d' + id; + const tmpElementSelector = + cnf.securityLevel === SECURITY_LVL_SANDBOX ? iFrameID_selector : enclosingDivID_selector; const node = select(tmpElementSelector).node(); if (node && 'remove' in node) { node.remove(); From 2e86031f0038aac5d797ddb5fae9b755fb761d4c Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 13:27:15 -0700 Subject: [PATCH 0397/1038] comment the main steps (prepare to break into functions that can be tested) --- packages/mermaid/src/mermaidAPI.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7dfa720bf1..0e6aacfc23 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -142,7 +142,10 @@ const render = async function ( addDiagrams(); configApi.reset(); + + // clean up text CRLFs text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; + const graphInit = utils.detectInit(text); if (graphInit) { directiveSanitizer(graphInit); @@ -164,6 +167,9 @@ const render = async function ( let root: any = select('body'); + // ------------------------------------------------------------------------------- + // Define the root d3 node + // In regular execution the container will be the div with a mermaid class if (typeof container !== 'undefined') { // A container was provided by the caller. Clear the inner HTML if there is any @@ -247,8 +253,13 @@ const render = async function ( .append('g'); } + // ------------------------------------------------------------------------------- + // text = encodeEntities(text); + // ------------------------------------------------------------------------------- + // Create the diagram + // Important that we do not create the diagram until after the directives have been included let diag; let parseEncounteredException; @@ -259,10 +270,14 @@ const render = async function ( diag = new Diagram('error'); parseEncounteredException = error; } + // Get the tmp element containing the the svg const element = root.select(enclosingDivID_selector).node(); const graphType = diag.type; + // ------------------------------------------------------------------------------- + // Create and insert the styles (user styles, theme styles, config styles) + // insert inline style into svg const svg = element.firstChild; const firstChild = svg.firstChild; @@ -328,6 +343,8 @@ const render = async function ( style1.innerHTML = `#${id} ` + rules; svg.insertBefore(style1, firstChild); + // ------------------------------------------------------------------------------- + // Draw the diagram with the renderer try { await diag.renderer.draw(text, id, pkg.version, diag); } catch (e) { @@ -335,6 +352,8 @@ const render = async function ( throw e; } + // ------------------------------------------------------------------------------- + // Clean up SVG code root.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', XMLNS_XHTML_STD); // Fix for when the base tag is used @@ -350,6 +369,8 @@ const render = async function ( // Fix for when the br tag is used svgCode = svgCode.replace(/<br>/g, '<br/>'); + // ------------------------------------------------------------------------------- + // Inser svgCode into an iFrame if we are sandboxed if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); const width = IFRAME_WIDTH; @@ -364,6 +385,8 @@ const render = async function ( </iframe>`; } else { if (cnf.securityLevel !== SECURITY_LVL_LOOSE) { + // ------------------------------------------------------------------------------- + // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { ADD_TAGS: [DOMPURIFY_TAGS], ADD_ATTR: [DOMPURIFY_ATTR], @@ -371,6 +394,8 @@ const render = async function ( } } + // ------------------------------------------------------------------------------- + // Do any callbacks (cb = callback) if (typeof cb !== 'undefined') { switch (graphType) { case 'flowchart': @@ -392,6 +417,8 @@ const render = async function ( } attachFunctions(); + // ------------------------------------------------------------------------------- + // Remove the temporary element if appropriate const tmpElementSelector = cnf.securityLevel === SECURITY_LVL_SANDBOX ? iFrameID_selector : enclosingDivID_selector; const node = select(tmpElementSelector).node(); From 5aff154740c756fa2fdef4ace1ef46a58f53cb09 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 13:43:40 -0700 Subject: [PATCH 0398/1038] more meaningful var names; move related lines together; const idSelector --- packages/mermaid/src/mermaidAPI.ts | 95 +++++++++++++++--------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 0e6aacfc23..dca3a02de9 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -124,42 +124,35 @@ export const decodeEntities = function (text: string): string { * }); * ``` * - * @param {string} id The id of the element to be rendered - * @param {string} text The graph definition + * @param {string} id The id for the SVG element (the element to be rendered) + * @param {string} text The text for the graph definition * @param {(svgCode: string, bindFunctions?: (element: Element) => void) => void} cb Callback which * is called after rendering is finished with the svg code as inparam. - * @param {Element} container Selector to element in which a div with the graph temporarily will be - * inserted. If one is provided a hidden div will be inserted in the body of the page instead. The - * element will be removed when rendering is completed. + * @param {Element} svgContainingElement HTML element where the svg will be inserted. (Is usually element with the .mermaid class) + * inserted. If no svgContainingElement is provided then the SVG element will be appended to the body. * @returns {void} */ const render = async function ( id: string, text: string, cb: (svgCode: string, bindFunctions?: (element: Element) => void) => void, - container?: Element + svgContainingElement?: Element ): Promise<void> { addDiagrams(); configApi.reset(); - - // clean up text CRLFs - text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; - - const graphInit = utils.detectInit(text); - if (graphInit) { - directiveSanitizer(graphInit); - configApi.addDirective(graphInit); - } - const cnf = configApi.getConfig(); - - log.debug(cnf); + const config = configApi.getConfig(); + log.debug(config); // Check the maximum allowed text size - if (text.length > cnf.maxTextSize!) { + if (text.length > config.maxTextSize!) { text = MAX_TEXTLENGTH_EXCEEDED_MSG; } + // clean up text CRLFs + text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; + + const idSelector = '#' + id; const iFrameID = 'i' + id; const iFrameID_selector = '#' + iFrameID; const enclosingDivID = 'd' + id; @@ -170,17 +163,17 @@ const render = async function ( // ------------------------------------------------------------------------------- // Define the root d3 node - // In regular execution the container will be the div with a mermaid class - if (typeof container !== 'undefined') { - // A container was provided by the caller. Clear the inner HTML if there is any - if (container) { - container.innerHTML = ''; + // In regular execution the svgContainingElement will be the element with a mermaid class + if (typeof svgContainingElement !== 'undefined') { + // A svgContainingElement was provided by the caller. Clear the inner HTML if there is any + if (svgContainingElement) { + svgContainingElement.innerHTML = ''; } - if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { + if (config.securityLevel === SECURITY_LVL_SANDBOX) { // IF we are in sandboxed mode, we do everyting mermaid related // in a sandboxed div - const iframe = select(container) + const iframe = select(svgContainingElement) .append('iframe') .attr('id', iFrameID) .attr('style', 'width: 100%; height: 100%;') @@ -189,13 +182,13 @@ const render = async function ( root = select(iframe.nodes()[0]!.contentDocument!.body); root.node().style.margin = 0; } else { - root = select(container); + root = select(svgContainingElement); } root .append('div') .attr('id', enclosingDivID) - .attr('style', 'font-family: ' + cnf.fontFamily) + .attr('style', 'font-family: ' + config.fontFamily) .append('svg') .attr('id', id) .attr('width', '100%') @@ -203,7 +196,7 @@ const render = async function ( .attr('xmlns:xlink', XMLNS_XLINK_STD) .append('g'); } else { - // No container was provided + // No svgContainingElement was provided // If there is an existing element with the id, we remove it // this likely a previously rendered diagram const existingSvg = document.getElementById(id); @@ -211,12 +204,12 @@ const render = async function ( existingSvg.remove(); } - // Remove previous tpm element if it exists + // Remove previous temporary element if it exists let element; - if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { + if (config.securityLevel === SECURITY_LVL_SANDBOX) { element = document.querySelector(iFrameID_selector); } else { - element = document.querySelector('#d' + id); + element = document.querySelector(enclosingDivID_selector); } if (element) { @@ -226,7 +219,7 @@ const render = async function ( // Add the tmp div used for rendering with the id `d${id}` // d+id it will contain a svg with the id "id" - if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { + if (config.securityLevel === SECURITY_LVL_SANDBOX) { // IF we are in sandboxed mode, we do everyting mermaid related // in a sandboxed div const iframe = select('body') @@ -263,6 +256,14 @@ const render = async function ( // Important that we do not create the diagram until after the directives have been included let diag; let parseEncounteredException; + + // Add Directives (Must do this before creating the diagram.) + const graphInit = utils.detectInit(text); + if (graphInit) { + directiveSanitizer(graphInit); + configApi.addDirective(graphInit); + } + try { // diag = new Diagram(text); diag = await getDiagramFromText(text); @@ -286,22 +287,22 @@ const render = async function ( // user provided theme CSS // If you add more configuration driven data into the user styles make sure that the value is // sanitized bye the santiizeCSS function - if (cnf.themeCSS !== undefined) { - userStyles += `\n${cnf.themeCSS}`; + if (config.themeCSS !== undefined) { + userStyles += `\n${config.themeCSS}`; } // user provided theme CSS - if (cnf.fontFamily !== undefined) { - userStyles += `\n:root { --mermaid-font-family: ${cnf.fontFamily}}`; + if (config.fontFamily !== undefined) { + userStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`; } // user provided theme CSS - if (cnf.altFontFamily !== undefined) { - userStyles += `\n:root { --mermaid-alt-font-family: ${cnf.altFontFamily}}`; + if (config.altFontFamily !== undefined) { + userStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`; } // classDef if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { const classes: any = flowRenderer.getClasses(text, diag); - const htmlLabels = cnf.htmlLabels || cnf.flowchart?.htmlLabels; + const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; for (const className in classes) { if (htmlLabels) { userStyles += `\n.${className} > * { ${classes[className].styles.join( @@ -337,10 +338,10 @@ const render = async function ( const stylis = (selector: string, styles: string) => serialize(compile(`${selector}{${styles}}`), stringify); - const rules = stylis(`#${id}`, getStyles(graphType, userStyles, cnf.themeVariables)); + const rules = stylis(`${idSelector}`, getStyles(graphType, userStyles, config.themeVariables)); const style1 = document.createElement('style'); - style1.innerHTML = `#${id} ` + rules; + style1.innerHTML = `${idSelector} ` + rules; svg.insertBefore(style1, firstChild); // ------------------------------------------------------------------------------- @@ -359,8 +360,8 @@ const render = async function ( // Fix for when the base tag is used let svgCode = root.select(enclosingDivID_selector).node().innerHTML; - log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); - if (!evaluate(cnf.arrowMarkerAbsolute) && cnf.securityLevel !== SECURITY_LVL_SANDBOX) { + log.debug('config.arrowMarkerAbsolute', config.arrowMarkerAbsolute); + if (!evaluate(config.arrowMarkerAbsolute) && config.securityLevel !== SECURITY_LVL_SANDBOX) { svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g'); } @@ -371,7 +372,7 @@ const render = async function ( // ------------------------------------------------------------------------------- // Inser svgCode into an iFrame if we are sandboxed - if (cnf.securityLevel === SECURITY_LVL_SANDBOX) { + if (config.securityLevel === SECURITY_LVL_SANDBOX) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); const width = IFRAME_WIDTH; let height = IFRAME_HEIGHT; @@ -384,7 +385,7 @@ const render = async function ( ${IFRAME_NOT_SUPPORTED_MSG} </iframe>`; } else { - if (cnf.securityLevel !== SECURITY_LVL_LOOSE) { + if (config.securityLevel !== SECURITY_LVL_LOOSE) { // ------------------------------------------------------------------------------- // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { @@ -420,7 +421,7 @@ const render = async function ( // ------------------------------------------------------------------------------- // Remove the temporary element if appropriate const tmpElementSelector = - cnf.securityLevel === SECURITY_LVL_SANDBOX ? iFrameID_selector : enclosingDivID_selector; + config.securityLevel === SECURITY_LVL_SANDBOX ? iFrameID_selector : enclosingDivID_selector; const node = select(tmpElementSelector).node(); if (node && 'remove' in node) { node.remove(); From a26673c59a9fcc808d4ea32dcaf9086c753984c5 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 13:55:00 -0700 Subject: [PATCH 0399/1038] const isSandboxed, isLooseSecurityLevel, fontFamily; a few more CONSTs --- packages/mermaid/src/mermaidAPI.ts | 59 ++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index dca3a02de9..5a37937870 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -45,6 +45,7 @@ const XMLNS_XLINK_STD = 'http://www.w3.org/1999/xlink'; // ------------------------------ // iFrame +const SANDBOX_IFRAME_STYLE = 'width: 100%; height: 100%;'; const IFRAME_WIDTH = '100%'; const IFRAME_HEIGHT = '100%'; const IFRAME_STYLES = 'border:0;margin:0;'; @@ -52,9 +53,11 @@ const IFRAME_BODY_STYLE = 'margin:0'; const IFRAME_SANDBOX_OPTS = 'allow-top-navigation-by-user-activation allow-popups'; const IFRAME_NOT_SUPPORTED_MSG = 'The “iframe” tag is not supported by your browser.'; -const DOMPURIFY_TAGS = 'foreignobject'; -const DOMPURIFY_ATTR = 'dominant-baseline'; -// -------------------------------------------------------------------------------- +// DOMPurify settings for svgCode +const DOMPURE_TAGS = ['foreignobject']; +const DOMPURE_ATTR = ['dominant-baseline']; + +// ---------------------------------------------------------------------------- /** * @param text @@ -66,6 +69,11 @@ function parse(text: string, parseError?: ParseErrorFunction): boolean { return diagram.parse(text, parseError); } +/** + * + * @param {string} text - text to be encoded + * @returns {string} + */ export const encodeEntities = function (text: string): string { let txt = text; @@ -92,6 +100,11 @@ export const encodeEntities = function (text: string): string { return txt; }; +/** + * + * @param {string} text - text to be decoded + * @returns {string} + */ export const decodeEntities = function (text: string): string { let txt = text; @@ -160,6 +173,11 @@ const render = async function ( let root: any = select('body'); + const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX; + const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE; + + const fontFamily = config.fontFamily; + // ------------------------------------------------------------------------------- // Define the root d3 node @@ -170,13 +188,13 @@ const render = async function ( svgContainingElement.innerHTML = ''; } - if (config.securityLevel === SECURITY_LVL_SANDBOX) { + if (isSandboxed) { // IF we are in sandboxed mode, we do everyting mermaid related // in a sandboxed div const iframe = select(svgContainingElement) .append('iframe') .attr('id', iFrameID) - .attr('style', 'width: 100%; height: 100%;') + .attr('style', SANDBOX_IFRAME_STYLE) .attr('sandbox', ''); // const iframeBody = ; root = select(iframe.nodes()[0]!.contentDocument!.body); @@ -188,7 +206,7 @@ const render = async function ( root .append('div') .attr('id', enclosingDivID) - .attr('style', 'font-family: ' + config.fontFamily) + .attr('style', 'font-family: ' + fontFamily) .append('svg') .attr('id', id) .attr('width', '100%') @@ -206,7 +224,7 @@ const render = async function ( // Remove previous temporary element if it exists let element; - if (config.securityLevel === SECURITY_LVL_SANDBOX) { + if (isSandboxed) { element = document.querySelector(iFrameID_selector); } else { element = document.querySelector(enclosingDivID_selector); @@ -219,13 +237,12 @@ const render = async function ( // Add the tmp div used for rendering with the id `d${id}` // d+id it will contain a svg with the id "id" - if (config.securityLevel === SECURITY_LVL_SANDBOX) { - // IF we are in sandboxed mode, we do everyting mermaid related - // in a sandboxed div + if (isSandboxed) { + // IF we are in sandboxed mode, we do everything mermaid relate in a (sandboxed) iFrame const iframe = select('body') .append('iframe') .attr('id', iFrameID) - .attr('style', 'width: 100%; height: 100%;') + .attr('style', SANDBOX_IFRAME_STYLE) .attr('sandbox', ''); root = select(iframe.nodes()[0]!.contentDocument!.body); @@ -291,8 +308,8 @@ const render = async function ( userStyles += `\n${config.themeCSS}`; } // user provided theme CSS - if (config.fontFamily !== undefined) { - userStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`; + if (fontFamily !== undefined) { + userStyles += `\n:root { --mermaid-font-family: ${fontFamily}}`; } // user provided theme CSS if (config.altFontFamily !== undefined) { @@ -371,26 +388,29 @@ const render = async function ( svgCode = svgCode.replace(/<br>/g, '<br/>'); // ------------------------------------------------------------------------------- - // Inser svgCode into an iFrame if we are sandboxed - if (config.securityLevel === SECURITY_LVL_SANDBOX) { + + if (isSandboxed) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); const width = IFRAME_WIDTH; let height = IFRAME_HEIGHT; + + // set the svg element height to px if (svgEl) { height = svgEl.viewBox.baseVal.height + 'px'; } + // Insert iFrame code into svg code svgCode = `<iframe style="width:${width};height:${height};${IFRAME_STYLES}" src="data:text/html;base64,${btoa( `<body style="${IFRAME_BODY_STYLE}">` + svgCode + '</body>' )}" sandbox="${IFRAME_SANDBOX_OPTS}"> ${IFRAME_NOT_SUPPORTED_MSG} </iframe>`; } else { - if (config.securityLevel !== SECURITY_LVL_LOOSE) { + if (isLooseSecurityLevel) { // ------------------------------------------------------------------------------- // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: [DOMPURIFY_TAGS], - ADD_ATTR: [DOMPURIFY_ATTR], + ADD_TAGS: DOMPURE_TAGS, + ADD_ATTR: DOMPURE_ATTR, }); } } @@ -420,8 +440,7 @@ const render = async function ( // ------------------------------------------------------------------------------- // Remove the temporary element if appropriate - const tmpElementSelector = - config.securityLevel === SECURITY_LVL_SANDBOX ? iFrameID_selector : enclosingDivID_selector; + const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; const node = select(tmpElementSelector).node(); if (node && 'remove' in node) { node.remove(); From d106d3d1b170e627f5c71f46e863712421c8399a Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 19:14:56 -0700 Subject: [PATCH 0400/1038] add MockedD3.ts --- packages/mermaid/src/tests/MockedD3.ts | 119 +++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 packages/mermaid/src/tests/MockedD3.ts diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts new file mode 100644 index 0000000000..e86ba1285c --- /dev/null +++ b/packages/mermaid/src/tests/MockedD3.ts @@ -0,0 +1,119 @@ +/** + * This is a mocked/stubbed version of the d3 Selection type. Each of the main functions are all + * mocked (via vi.fn()) so you can track if they have been called, etc. + */ +export class MockedD3 { + public attribs = new Map<string, string | null>(); + public id: string | undefined = ''; + _children: MockedD3[] = []; + + constructor(givenId = 'mock-id') { + this.id = givenId; + } + + /** Helpful utility during development/debugging. This is not a real d3 function */ + public listChildren(): string { + return this._children + .map((child) => { + return child.id; + }) + .join(', '); + } + + select = vi.fn().mockImplementation(({ select_str = '' }): MockedD3 => { + // Get the id from an argument string. if it is of the form [id='some-id'], strip off the + // surrounding id[..] + const stripSurroundRegexp = /\[id='(.*)'\]/; + const matchedSurrounds = select_str.match(stripSurroundRegexp); + const cleanId = matchedSurrounds ? matchedSurrounds[1] : select_str; + return new MockedD3(cleanId); + }); + + append = vi + .fn() + .mockImplementation(function (this: MockedD3, type: string, id = '' + '-appended'): MockedD3 { + const newMock = new MockedD3(id); + newMock.attribs.set('type', type); + this._children.push(newMock); + return newMock; + }); + + // NOTE: The d3 implementation allows for a selector ('beforeSelector' arg below). + // With this mocked implementation, we assume it will always refer to an node id + // and will always be of the form "#[id of the node to insert before]". + // To keep this simple, any leading '#' is removed and the resulting string is the node id searched. + insert = (type: string, beforeSelector?: string, id = this.id + '-inserted'): MockedD3 => { + const newMock = new MockedD3(id); + newMock.attribs.set('type', type); + if (beforeSelector === undefined) { + this._children.push(newMock); + } else { + const idOnly = beforeSelector[0] == '#' ? beforeSelector.substring(1) : beforeSelector; + const foundIndex = this._children.findIndex((child) => child.id === idOnly); + if (foundIndex < 0) this._children.push(newMock); + else this._children.splice(foundIndex, 0, newMock); + } + return newMock; + }; + + attr(attrName: string): null | undefined | string | number; + // attr(attrName: string, attrValue: string): MockedD3; + attr(attrName: string, attrValue?: string): null | undefined | string | number | MockedD3 { + if (arguments.length === 1) { + return this.attribs.get(attrName); + } else { + if (attrName === 'id') this.id = attrValue; // also set the id explicitly + if (attrValue !== undefined) this.attribs.set(attrName, attrValue); + return this; + } + } + + public lower(attrValue = '') { + this.attribs.set('lower', attrValue); + return this; + } + public style(attrValue = '') { + this.attribs.set('style', attrValue); + return this; + } + public text(attrValue = '') { + this.attribs.set('text', attrValue); + return this; + } + // NOTE: Arbitrarily returns an empty object. The return value could be something different with a mockReturnValue() or mockImplementation() + public node = vi.fn().mockReturnValue({}); + + nodes = vi.fn().mockImplementation(function (this: MockedD3): MockedD3[] { + return this._children; + }); + + // This will try to use attrs that have been set. + getBBox = () => { + const x = this.attribs.has('x') ? this.attribs.get('x') : 20; + const y = this.attribs.has('y') ? this.attribs.get('y') : 30; + const width = this.attribs.has('width') ? this.attribs.get('width') : 140; + const height = this.attribs.has('height') ? this.attribs.get('height') : 250; + return { + x: x, + y: y, + width: width, + height: height, + }; + }; + + // -------------------------------------------------------------------------------- + // The following functions are here for completeness. They simply return a vi.fn() + + insertBefore = vi.fn(); + curveBasis = vi.fn(); + curveBasisClosed = vi.fn(); + curveBasisOpen = vi.fn(); + curveLinear = vi.fn(); + curveLinearClosed = vi.fn(); + curveMonotoneX = vi.fn(); + curveMonotoneY = vi.fn(); + curveNatural = vi.fn(); + curveStep = vi.fn(); + curveStepAfter = vi.fn(); + curveStepBefore = vi.fn(); +} From a3b8c301e27f0d7b43372d76b1b75fae4bbfb567 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sat, 15 Oct 2022 19:15:59 -0700 Subject: [PATCH 0401/1038] functions and specs: createCssStyles, appendDivSvgG,cleanUpSvgCode, putIntoIFrame [for render] --- packages/mermaid/src/mermaidAPI.spec.js | 334 +++++++++++++++++++++- packages/mermaid/src/mermaidAPI.ts | 362 ++++++++++++++---------- 2 files changed, 543 insertions(+), 153 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.spec.js b/packages/mermaid/src/mermaidAPI.spec.js index 35473d1bfe..f697891a43 100644 --- a/packages/mermaid/src/mermaidAPI.spec.js +++ b/packages/mermaid/src/mermaidAPI.spec.js @@ -1,10 +1,39 @@ 'use strict'; +import { vi } from 'vitest'; + import mermaid from './mermaid'; import mermaidAPI from './mermaidAPI'; -import { encodeEntities, decodeEntities } from './mermaidAPI'; +import { + encodeEntities, + decodeEntities, + createCssStyles, + appendDivSvgG, + cleanUpSvgCode, + putIntoIFrame, +} from './mermaidAPI'; import assignWithDepth from './assignWithDepth'; +// To mock a module, first define a mock for it, then import it. Be sure the path points to exactly the same file as is imported in mermaidAPI (the module being tested) +vi.mock('./styles', () => { + return { + addStylesForDiagram: vi.fn(), + default: vi.fn().mockReturnValue(' .userStyle { font-weight:bold; }'), + }; +}); +import getStyles from './styles'; + +vi.mock('stylis', () => { + return { + stringify: vi.fn(), + compile: vi.fn(), + serialize: vi.fn().mockReturnValue('stylis serialized css'), + }; +}); +import { compile, serialize } from 'stylis'; + +import { MockedD3 } from './tests/MockedD3'; + describe('when using mermaidAPI and ', function () { describe('encodeEntities', () => { it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => { @@ -73,6 +102,309 @@ describe('when using mermaidAPI and ', function () { }); }); + describe('cleanUpSvgCode', () => { + it('replaces marker end URLs with just the anchor if not sandboxed and not useMarkerUrls', () => { + const markerFullUrl = 'marker-end="url(some-URI#that)"'; + let useArrowMarkerUrls = false; + let isSandboxed = false; + let result = cleanUpSvgCode(markerFullUrl, isSandboxed, useArrowMarkerUrls); + expect(result).toEqual('marker-end="url(#that)"'); + + useArrowMarkerUrls = true; + result = cleanUpSvgCode(markerFullUrl, isSandboxed, useArrowMarkerUrls); + expect(result).toEqual(markerFullUrl); // not changed + + useArrowMarkerUrls = false; + isSandboxed = true; + result = cleanUpSvgCode(markerFullUrl, isSandboxed, useArrowMarkerUrls); + expect(result).toEqual(markerFullUrl); // not changed + }); + + it('decodesEntities', () => { + const result = cleanUpSvgCode('¶ß brrrr', true, true); + expect(result).toEqual('; brrrr'); + }); + + it('replaces old style br tags with new style', () => { + const result = cleanUpSvgCode('<br> brrrr<br>', true, true); + expect(result).toEqual('<br/> brrrr<br/>'); + }); + }); + + describe('putIntoIFrame', () => { + const inputSvgCode = 'this is the SVG code'; + + it('uses the default SVG iFrame height is used if no svgElement given', () => { + const result = putIntoIFrame(inputSvgCode); + expect(result).toMatch(/style="(.*)height:100%(.*);"/); + }); + it('default style attributes are: width: 100%, height: 100%, border: 0, margin: 0', () => { + const result = putIntoIFrame(inputSvgCode); + expect(result).toMatch(/style="(.*)width:100%(.*);"/); + expect(result).toMatch(/style="(.*)height:100%(.*);"/); + expect(result).toMatch(/style="(.*)border:0(.*);"/); + expect(result).toMatch(/style="(.*)margin:0(.*);"/); + }); + it('sandbox="allow-top-navigation-by-user-activation allow-popups">', () => { + const result = putIntoIFrame(inputSvgCode); + expect(result).toMatch(/sandbox="allow-top-navigation-by-user-activation allow-popups">/); + }); + it('msg shown is "The "iframe" tag is not supported by your browser.\\n" if iFrames are not supported in the browser', () => { + const result = putIntoIFrame(inputSvgCode); + expect(result).toMatch(/\s*The "iframe" tag is not supported by your browser\./); + }); + + it('sets src to base64 version of <body style="IFRAME_SVG_BODY_STYLE">svgCode<//body>', () => { + const base64encodedSrc = btoa('<body style="' + 'margin:0' + '">' + inputSvgCode + '</body>'); + const expectedRegExp = new RegExp('src="data:text/html;base64,' + base64encodedSrc + '"'); + + const result = putIntoIFrame(inputSvgCode); + expect(result).toMatch(expectedRegExp); + }); + + it('uses the height and appends px from the svgElement given', () => { + const faux_svgElement = { + viewBox: { + baseVal: { + height: 42, + }, + }, + }; + + const result = putIntoIFrame(inputSvgCode, faux_svgElement); + expect(result).toMatch(/style="(.*)height:42px;/); + }); + }); + + const fauxParentNode = new MockedD3(); + const fauxEnclosingDiv = new MockedD3(); + const fauxSvgNode = new MockedD3(); + + describe('appendDivSvgG', () => { + const fauxGNode = new MockedD3(); + const parent_append_spy = vi.spyOn(fauxParentNode, 'append').mockReturnValue(fauxEnclosingDiv); + const div_append_spy = vi.spyOn(fauxEnclosingDiv, 'append').mockReturnValue(fauxSvgNode); + const div_attr_spy = vi.spyOn(fauxEnclosingDiv, 'attr').mockReturnValue(fauxEnclosingDiv); + const svg_append_spy = vi.spyOn(fauxSvgNode, 'append').mockReturnValue(fauxGNode); + const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); + + it('appends a div node', () => { + appendDivSvgG(fauxParentNode, 'theId'); + expect(parent_append_spy).toHaveBeenCalledWith('div'); + expect(div_append_spy).toHaveBeenCalledWith('svg'); + }); + it('the id for the div is "d" with the id appended', () => { + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); + expect(div_attr_spy).toHaveBeenCalledWith('id', 'dtheId'); + }); + + it('sets the style for the div if one is given', () => { + appendDivSvgG(fauxParentNode, 'theId', 'dtheId', 'given div style', 'given x link'); + expect(div_attr_spy).toHaveBeenCalledWith('style', 'given div style'); + }); + + it('appends a svg node to the div node', () => { + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); + expect(div_attr_spy).toHaveBeenCalledWith('id', 'dtheId'); + }); + it('sets the svg width to 100%', () => { + appendDivSvgG(fauxParentNode, 'theId'); + expect(svg_attr_spy).toHaveBeenCalledWith('width', '100%'); + }); + it('the svg id is the id', () => { + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); + expect(svg_attr_spy).toHaveBeenCalledWith('id', 'theId'); + }); + it('the svg xml namespace is the 2000 standard', () => { + appendDivSvgG(fauxParentNode, 'theId'); + expect(svg_attr_spy).toHaveBeenCalledWith('xmlns', 'http://www.w3.org/2000/svg'); + }); + it('sets the svg xlink if one is given', () => { + appendDivSvgG(fauxParentNode, 'theId', 'dtheId', 'div style', 'given x link'); + expect(svg_attr_spy).toHaveBeenCalledWith('xmlns:xlink', 'given x link'); + }); + it('appends a g (group) node to the svg node', () => { + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); + expect(svg_append_spy).toHaveBeenCalledWith('g'); + }); + it('returns the given parentRoot d3 nodes', () => { + expect(appendDivSvgG(fauxParentNode, 'theId', 'dtheId')).toEqual(fauxParentNode); + }); + }); + + describe('createCssStyles', () => { + const serif = 'serif'; + const sansSerif = 'sans-serif'; + const mocked_config_with_htmlLabels = { + themeCSS: 'default', + fontFamily: serif, + altFontFamily: sansSerif, + htmlLabels: '', + }; + + it('gets the cssStyles from the theme', () => { + const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', null); + expect(styles).toMatch(/^\ndefault(.*)/); + }); + it('gets the fontFamily from the config', () => { + const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', null); + expect(styles).toMatch(/(.*)\n:root \{ --mermaid-font-family: serif(.*)/); + }); + it('gets the alt fontFamily from the config', () => { + const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', null); + expect(styles).toMatch(/(.*)\n:root \{ --mermaid-alt-font-family: sans-serif(.*)/); + }); + + describe('there are some classDefs', () => { + const classDef1 = { id: 'classDef1', styles: ['style1-1', 'style1-2'], textStyles: [] }; + const classDef2 = { id: 'classDef2', styles: [], textStyles: ['textStyle2-1'] }; + const classDef3 = { id: 'classDef3', textStyles: ['textStyle3-1', 'textStyle3-2'] }; + const classDefs = [classDef1, classDef2, classDef3]; + + describe('the graph supports classDefs', () => { + const graphType = 'flowchart-v2'; + + const REGEXP_SPECIALS = ['^', '$', '?', '(', '{', '[', '.', '*', '!']; + + // prefix any special RegExp characters in the given string with a \ so we can use the literal character in a RegExp + function escapeForRegexp(str) { + const strChars = str.split(''); // split into array of every char + const strEscaped = strChars.map((char) => { + if (REGEXP_SPECIALS.includes(char)) return `\\${char}`; + else return char; + }); + return strEscaped.join(''); + } + function expect_styles_matchesHtmlElements(styles, htmlElement) { + expect(styles).toMatch( + new RegExp( + `\\.classDef1 ${escapeForRegexp( + htmlElement + )} \\{ style1-1 !important; style1-2 !important; }` + ) + ); + // no CSS styles are created if there are no styles for a classDef + expect(styles).not.toMatch( + new RegExp(`\\.classDef2 ${escapeForRegexp(htmlElement)} \\{ style(.*) !important; }`) + ); + expect(styles).not.toMatch( + new RegExp(`\\.classDef3 ${escapeForRegexp(htmlElement)} \\{ style(.*) !important; }`) + ); + } + + function expect_textStyles_matchesHtmlElements(styles, htmlElement) { + expect(styles).toMatch( + new RegExp( + `\\.classDef2 ${escapeForRegexp(htmlElement)} \\{ textStyle2-1 !important; }` + ) + ); + expect(styles).toMatch( + new RegExp( + `\\.classDef3 ${escapeForRegexp( + htmlElement + )} \\{ textStyle3-1 !important; textStyle3-2 !important; }` + ) + ); + + // no CSS styles are created if there are no textStyles for a classDef + expect(styles).not.toMatch( + new RegExp( + `\\.classDef1 ${escapeForRegexp(htmlElement)} \\{ textStyle(.*) !important; }` + ) + ); + } + + function expect_correct_styles_with_htmlElements(mocked_config) { + describe('creates styles for "> *" and "span" elements', () => { + const htmlElements = ['> *', 'span']; + + it('creates CSS styles for every style and textStyle in every classDef', () => { + // @todo TODO Can't figure out how to spy on the cssImportantStyles method. That would be a much better approach than manually checking the result + + const styles = createCssStyles(mocked_config, graphType, classDefs); + htmlElements.forEach((htmlElement) => { + expect_styles_matchesHtmlElements(styles, htmlElement); + }); + expect_textStyles_matchesHtmlElements(styles, 'tspan'); + }); + }); + } + + it('there are htmlLabels in the configuration', () => { + expect_correct_styles_with_htmlElements(mocked_config_with_htmlLabels); + }); + + it('there are flowchart.htmlLabels in the configuration', () => { + const mocked_config_flowchart_htmlLabels = { + themeCSS: 'default', + fontFamily: 'serif', + altFontFamily: 'sans-serif', + flowchart: { + htmlLabels: 'flowchart-htmlLables', + }, + }; + expect_correct_styles_with_htmlElements(mocked_config_flowchart_htmlLabels); + }); + + describe('no htmlLabels in the configuration', () => { + const mocked_config_no_htmlLabels = { + themeCSS: 'default', + fontFamily: 'serif', + altFontFamily: 'sans-serif', + }; + + describe('creates styles for shape elements "rect", "polygon", "ellipse", and "circle"', () => { + const htmlElements = ['rect', 'polygon', 'ellipse', 'circle']; + + it('creates CSS styles for every style and textStyle in every classDef', () => { + // @todo TODO Can't figure out how to spy on the cssImportantStyles method. That would be a much better approach than manually checking the result + + const styles = createCssStyles(mocked_config_no_htmlLabels, graphType, classDefs); + htmlElements.forEach((htmlElement) => { + expect_styles_matchesHtmlElements(styles, htmlElement); + }); + expect_textStyles_matchesHtmlElements(styles, 'tspan'); + }); + }); + }); + }); + }); + }); + + // describe('createUserStyles', () => { + // const mockConfig = { + // themeCSS: 'default', + // htmlLabels: 'htmlLabels', + // themeVariables: { fontFamily: 'serif' }, + // }; + // const classDef1 = { id: 'classDef1', styles: ['style1-1'], textStyles: [] }; + // + // it('gets the css styles created', () => { + // // @todo TODO if a single function in the module can be mocked, do it for createCssStyles and mock the results. + // + // createUserStyles(mockConfig, 'flowchart-v2', [classDef1], 'someId'); + // const expectedStyles = + // '\ndefault' + + // '\n.classDef1 > * { style1-1 !important; }' + + // '\n.classDef1 span { style1-1 !important; }'; + // expect(getStyles).toHaveBeenCalledWith('flowchart-v2', expectedStyles, { + // fontFamily: 'serif', + // }); + // }); + // + // it('calls getStyles to get css for all graph, user css styles, and config theme variables', () => { + // createUserStyles(mockConfig, 'someDiagram', null, 'someId'); + // expect(getStyles).toHaveBeenCalled(); + // }); + // + // it('returns the result of compiling, stringifying, and serializing the css code with stylis', () => { + // const result = createUserStyles(mockConfig, 'someDiagram', null, 'someId'); + // expect(compile).toHaveBeenCalled(); + // expect(serialize).toHaveBeenCalled(); + // expect(result).toEqual('stylis serialized css'); + // }); + // }); + describe('doing initialize ', function () { beforeEach(function () { document.body.innerHTML = ''; diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 5a37937870..0165aaeff4 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -45,18 +45,27 @@ const XMLNS_XLINK_STD = 'http://www.w3.org/1999/xlink'; // ------------------------------ // iFrame -const SANDBOX_IFRAME_STYLE = 'width: 100%; height: 100%;'; const IFRAME_WIDTH = '100%'; const IFRAME_HEIGHT = '100%'; const IFRAME_STYLES = 'border:0;margin:0;'; const IFRAME_BODY_STYLE = 'margin:0'; const IFRAME_SANDBOX_OPTS = 'allow-top-navigation-by-user-activation allow-popups'; -const IFRAME_NOT_SUPPORTED_MSG = 'The “iframe” tag is not supported by your browser.'; +const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.'; // DOMPurify settings for svgCode const DOMPURE_TAGS = ['foreignobject']; const DOMPURE_ATTR = ['dominant-baseline']; +// This is what is returned from getClasses(...) methods. +// It is slightly renamed to ..StyleClassDef instead of just ClassDef because "class" is a greatly ambiguous and overloaded word. +// It makes it clear we're working with a style class definition, even though defining the type is currently difficult. +// @ts-ignore This is an alias for a js construct used in diagrams. +type DiagramStyleClassDef = any; + +// This makes it clear that we're working with a d3 selected element of some kind, even though it's hard to specify the exact type. +// @ts-ignore Could replicate the type definition in d3. This also makes it possible to use the untyped info from the js diagram files. +type D3Element = any; + // ---------------------------------------------------------------------------- /** @@ -121,6 +130,174 @@ export const decodeEntities = function (text: string): string { return txt; }; +// append !important; to each cssClass followed by a final !important, all enclosed in { } +// +/** + * Create a CSS style that starts with the given class name, then the element, + * with an enclosing block that has each of the cssClasses followed by !important; + * @param {string} cssClass + * @param {string} element + * @param {string[]} cssClasses + * @returns {string} + */ +export const cssImportantStyles = ( + cssClass: string, + element: string, + cssClasses: string[] = [] +): string => { + return `\n.${cssClass} ${element} { ${cssClasses.join(' !important; ')} !important; }`; +}; + +/** + * Create the user styles + * + * @param {MermaidConfig} config + * @param {string} graphType + * @param {null | DiagramStyleClassDef[]} classDefs - the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) + * @returns {string} the string with all the user styles + */ +export const createCssStyles = ( + config: MermaidConfig, + graphType: string, + classDefs: DiagramStyleClassDef[] | null | undefined +): string => { + let cssStyles = ''; + + // user provided theme CSS info + // If you add more configuration driven data into the user styles make sure that the value is + // sanitized by the santizeCSS function @todo TODO where is this method? what should be used to replace it? refactor so that it's always sanitized + if (config.themeCSS !== undefined) cssStyles += `\n${config.themeCSS}`; + + if (config.fontFamily !== undefined) + cssStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`; + + if (config.altFontFamily !== undefined) + cssStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`; + + // classDefs defined in the diagram text + if (classDefs !== undefined && classDefs !== null && classDefs.length > 0) { + if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { + const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; + + const cssHtmlElements = ['> *', 'span']; // @todo TODO make a constant + const cssShapeElements = ['rect', 'polygon', 'ellipse', 'circle']; // @todo TODO make a constant + + const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements; + + // create the CSS styles needed for each styleClass definition and css element + for (const classId in classDefs) { + const styleClassDef = classDefs[classId]; + // create the css styles for each cssElement and the styles (only if there are styles) + if (styleClassDef['styles'] && styleClassDef['styles'].length > 0) { + cssElements.forEach((cssElement) => { + cssStyles += cssImportantStyles( + styleClassDef['id'], + cssElement, + styleClassDef['styles'] + ); + }); + } + // create the css styles for the tspan element and the text styles (only if there are textStyles) + if (styleClassDef['textStyles'] && styleClassDef['textStyles'].length > 0) { + cssStyles += cssImportantStyles( + styleClassDef['id'], + 'tspan', + styleClassDef['textStyles'] + ); + } + } + } + } + return cssStyles; +}; + +export const cleanUpSvgCode = ( + svgCode = '', + inSandboxMode: boolean, + useArrowMarkerUrls: boolean +): string => { + let cleanedUpSvg = svgCode; + + // Replace marker-end urls with just the # anchor (remove the preceding part of the URL) + if (!useArrowMarkerUrls && !inSandboxMode) { + cleanedUpSvg = cleanedUpSvg.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#'); + } + + cleanedUpSvg = decodeEntities(cleanedUpSvg); + + // replace old br tags with newer style + cleanedUpSvg = cleanedUpSvg.replace(/<br>/g, '<br/>'); + + return cleanedUpSvg; +}; + +/** + * Put the svgCode into an iFrame. Return the iFrame code + * + * @param {string} svgCode + * @param {D3Element} svgElement - the d3 node that has the current svgElement so we can get the height from it + * @returns {string} - the code with the iFrame that now contains the svgCode + * @todo TODO replace btoa(). Replace with buf.toString('base64')? + */ +export const putIntoIFrame = (svgCode = '', svgElement?: D3Element): string => { + let height = IFRAME_HEIGHT; // default iFrame height + if (svgElement) height = svgElement.viewBox.baseVal.height + 'px'; + const base64encodedSrc = btoa('<body style="' + IFRAME_BODY_STYLE + '">' + svgCode + '</body>'); + return `<iframe style="width:${IFRAME_WIDTH};height:${height};${IFRAME_STYLES}" src="data:text/html;base64,${base64encodedSrc}" sandbox="${IFRAME_SANDBOX_OPTS}"> + ${IFRAME_NOT_SUPPORTED_MSG} +</iframe>`; +}; + +/** + * Append an enclosing div, then svg, then g (group) to the d3 parentRoot. Set attributes. + * Only set the style attribute on the enclosing div if divStyle is given. + * Only set the xmlns:xlink attribute on svg if svgXlink is given. + * Return the last node appended + * + * @param {D3Element} parentRoot - the d3 node to append things to + * @param {string} id + * @param enclosingDivId + * @param {string} divStyle + * @param {string} svgXlink + * @returns {D3Element} - returns the parentRoot that had nodes appended + */ +export const appendDivSvgG = ( + parentRoot: D3Element, + id: string, + enclosingDivId: string, + divStyle?: string, + svgXlink?: string +): D3Element => { + const enclosingDiv = parentRoot.append('div'); + enclosingDiv.attr('id', enclosingDivId); + if (divStyle) enclosingDiv.attr('style', divStyle); + + const svgNode = enclosingDiv + .append('svg') + .attr('id', id) + .attr('width', '100%') + .attr('xmlns', XMLNS_SVG_STD); + if (svgXlink) svgNode.attr('xmlns:xlink', svgXlink); + + svgNode.append('g'); + return parentRoot; +}; + +/** Append an iFrame node to the given parentNode and set the id, style, and 'sandbox' attributes + * Return the appended iframe d3 node + * + * @param {D3Element} parentNode + * @param {string} iFrameId - id to use for the iFrame + * @returns {D3Element} the appended iframe d3 node + */ +function sandboxedIframe(parentNode: D3Element, iFrameId: string): D3Element { + return parentNode + .append('iframe') + .attr('id', iFrameId) + .attr('style', 'width: 100%; height: 100%;') + .attr('sandbox', ''); +} + /** * Function that renders an svg with a graph from a chart definition. Usage example below. * @@ -154,13 +331,19 @@ const render = async function ( addDiagrams(); configApi.reset(); + + // Add Directives. Must do this before getting the config and before creating the diagram. + const graphInit = utils.detectInit(text); + if (graphInit) { + directiveSanitizer(graphInit); + configApi.addDirective(graphInit); + } + const config = configApi.getConfig(); log.debug(config); // Check the maximum allowed text size - if (text.length > config.maxTextSize!) { - text = MAX_TEXTLENGTH_EXCEEDED_MSG; - } + if (text.length > config.maxTextSize!) text = MAX_TEXTLENGTH_EXCEEDED_MSG; // clean up text CRLFs text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; @@ -183,44 +366,23 @@ const render = async function ( // In regular execution the svgContainingElement will be the element with a mermaid class if (typeof svgContainingElement !== 'undefined') { - // A svgContainingElement was provided by the caller. Clear the inner HTML if there is any - if (svgContainingElement) { - svgContainingElement.innerHTML = ''; - } + if (svgContainingElement) svgContainingElement.innerHTML = ''; if (isSandboxed) { - // IF we are in sandboxed mode, we do everyting mermaid related - // in a sandboxed div - const iframe = select(svgContainingElement) - .append('iframe') - .attr('id', iFrameID) - .attr('style', SANDBOX_IFRAME_STYLE) - .attr('sandbox', ''); - // const iframeBody = ; + // If we are in sandboxed mode, we do everything mermaid related in a (sandboxed )iFrame + const iframe = sandboxedIframe(select(svgContainingElement), iFrameID); root = select(iframe.nodes()[0]!.contentDocument!.body); root.node().style.margin = 0; } else { root = select(svgContainingElement); } - - root - .append('div') - .attr('id', enclosingDivID) - .attr('style', 'font-family: ' + fontFamily) - .append('svg') - .attr('id', id) - .attr('width', '100%') - .attr('xmlns', XMLNS_SVG_STD) - .attr('xmlns:xlink', XMLNS_XLINK_STD) - .append('g'); + appendDivSvgG(root, id, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD); } else { // No svgContainingElement was provided // If there is an existing element with the id, we remove it // this likely a previously rendered diagram const existingSvg = document.getElementById(id); - if (existingSvg) { - existingSvg.remove(); - } + if (existingSvg) existingSvg.remove(); // Remove previous temporary element if it exists let element; @@ -229,42 +391,22 @@ const render = async function ( } else { element = document.querySelector(enclosingDivID_selector); } + if (element) element.remove(); - if (element) { - element.remove(); - } - - // Add the tmp div used for rendering with the id `d${id}` - // d+id it will contain a svg with the id "id" + // Add the temporary div used for rendering with the enclosingDivID. + // This temporary div will contain a svg with the id == id if (isSandboxed) { - // IF we are in sandboxed mode, we do everything mermaid relate in a (sandboxed) iFrame - const iframe = select('body') - .append('iframe') - .attr('id', iFrameID) - .attr('style', SANDBOX_IFRAME_STYLE) - .attr('sandbox', ''); + // If we are in sandboxed mode, we do everything mermaid related in a (sandboxed) iFrame + const iframe = sandboxedIframe(select('body'), iFrameID); root = select(iframe.nodes()[0]!.contentDocument!.body); root.node().style.margin = 0; - } else { - root = select('body'); - } + } else root = select('body'); - // This is the temporary div - root - .append('div') - .attr('id', enclosingDivID) - // this is the seed of the svg to be rendered - .append('svg') - .attr('id', id) - .attr('width', '100%') - .attr('xmlns', XMLNS_SVG_STD) - .append('g'); + appendDivSvgG(root, id, enclosingDivID); } - // ------------------------------------------------------------------------------- - // text = encodeEntities(text); // ------------------------------------------------------------------------------- @@ -274,13 +416,6 @@ const render = async function ( let diag; let parseEncounteredException; - // Add Directives (Must do this before creating the diagram.) - const graphInit = utils.detectInit(text); - if (graphInit) { - directiveSanitizer(graphInit); - configApi.addDirective(graphInit); - } - try { // diag = new Diagram(text); diag = await getDiagramFromText(text); @@ -289,7 +424,7 @@ const render = async function ( parseEncounteredException = error; } - // Get the tmp element containing the the svg + // Get the tmp div element containing the svg const element = root.select(enclosingDivID_selector).node(); const graphType = diag.type; @@ -300,62 +435,12 @@ const render = async function ( const svg = element.firstChild; const firstChild = svg.firstChild; - let userStyles = ''; - // user provided theme CSS - // If you add more configuration driven data into the user styles make sure that the value is - // sanitized bye the santiizeCSS function - if (config.themeCSS !== undefined) { - userStyles += `\n${config.themeCSS}`; - } - // user provided theme CSS - if (fontFamily !== undefined) { - userStyles += `\n:root { --mermaid-font-family: ${fontFamily}}`; - } - // user provided theme CSS - if (config.altFontFamily !== undefined) { - userStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`; - } - - // classDef - if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { - const classes: any = flowRenderer.getClasses(text, diag); - const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; - for (const className in classes) { - if (htmlLabels) { - userStyles += `\n.${className} > * { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - userStyles += `\n.${className} span { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - } else { - userStyles += `\n.${className} path { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - userStyles += `\n.${className} rect { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - userStyles += `\n.${className} polygon { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - userStyles += `\n.${className} ellipse { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - userStyles += `\n.${className} circle { ${classes[className].styles.join( - ' !important; ' - )} !important; }`; - if (classes[className].textStyles) { - userStyles += `\n.${className} tspan { ${classes[className].textStyles.join( - ' !important; ' - )} !important; }`; - } - } - } - } + const userDefClasses: any = flowRenderer.getClasses(text, diag); + const cssStyles = createCssStyles(config, graphType, userDefClasses); const stylis = (selector: string, styles: string) => serialize(compile(`${selector}{${styles}}`), stringify); - const rules = stylis(`${idSelector}`, getStyles(graphType, userStyles, config.themeVariables)); + const rules = stylis(`${idSelector}`, getStyles(graphType, cssStyles, config.themeVariables)); const style1 = document.createElement('style'); style1.innerHTML = `${idSelector} ` + rules; @@ -378,35 +463,13 @@ const render = async function ( let svgCode = root.select(enclosingDivID_selector).node().innerHTML; log.debug('config.arrowMarkerAbsolute', config.arrowMarkerAbsolute); - if (!evaluate(config.arrowMarkerAbsolute) && config.securityLevel !== SECURITY_LVL_SANDBOX) { - svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g'); - } - - svgCode = decodeEntities(svgCode); - - // Fix for when the br tag is used - svgCode = svgCode.replace(/<br>/g, '<br/>'); - - // ------------------------------------------------------------------------------- + svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute)); if (isSandboxed) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); - const width = IFRAME_WIDTH; - let height = IFRAME_HEIGHT; - - // set the svg element height to px - if (svgEl) { - height = svgEl.viewBox.baseVal.height + 'px'; - } - // Insert iFrame code into svg code - svgCode = `<iframe style="width:${width};height:${height};${IFRAME_STYLES}" src="data:text/html;base64,${btoa( - `<body style="${IFRAME_BODY_STYLE}">` + svgCode + '</body>' - )}" sandbox="${IFRAME_SANDBOX_OPTS}"> - ${IFRAME_NOT_SUPPORTED_MSG} -</iframe>`; + svgCode = putIntoIFrame(svgCode, svgEl); } else { if (isLooseSecurityLevel) { - // ------------------------------------------------------------------------------- // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { ADD_TAGS: DOMPURE_TAGS, @@ -433,22 +496,17 @@ const render = async function ( default: cb(svgCode); } - } else { - log.debug('CB = undefined!'); - } + } else log.debug('CB = undefined!'); + attachFunctions(); // ------------------------------------------------------------------------------- // Remove the temporary element if appropriate const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; const node = select(tmpElementSelector).node(); - if (node && 'remove' in node) { - node.remove(); - } + if (node && 'remove' in node) node.remove(); - if (parseEncounteredException) { - throw parseEncounteredException; - } + if (parseEncounteredException) throw parseEncounteredException; return svgCode; }; From a4af3704ba27e484dc07453146bac52a9d44cdca Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 16 Oct 2022 10:05:11 +0530 Subject: [PATCH 0402/1038] fix: getElementById type issue. Converts mindmapDB to TS --- packages/mermaid-mindmap/package.json | 1 + packages/mermaid-mindmap/src/mermaidUtils.ts | 4 +- .../src/{mindmapDb.js => mindmapDb.ts} | 60 +++++++++++-------- pnpm-lock.yaml | 2 + 4 files changed, 41 insertions(+), 26 deletions(-) rename packages/mermaid-mindmap/src/{mindmapDb.js => mindmapDb.ts} (64%) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 847eeffef2..dfbe5b88e5 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -58,6 +58,7 @@ }, "devDependencies": { "concurrently": "^7.4.0", + "mermaid": "workspace:*", "rimraf": "^3.0.2" }, "resolutions": { diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts index 7d8ac38bf5..c3d70be135 100644 --- a/packages/mermaid-mindmap/src/mermaidUtils.ts +++ b/packages/mermaid-mindmap/src/mermaidUtils.ts @@ -1,3 +1,5 @@ +import type { MermaidConfig } from 'mermaid/dist/config.type'; + const warning = (s: string) => { // Todo remove debug code console.error('Log function was called before initialization', s); // eslint-disable-line @@ -24,7 +26,7 @@ export const log: Record<keyof typeof LEVELS, typeof console.log> = { }; export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; -export let getConfig: () => object; +export let getConfig: () => MermaidConfig; export let sanitizeText: (str: string) => string; // eslint-disable @typescript-eslint/no-explicit-any export let setupGraphViewbox: ( diff --git a/packages/mermaid-mindmap/src/mindmapDb.js b/packages/mermaid-mindmap/src/mindmapDb.ts similarity index 64% rename from packages/mermaid-mindmap/src/mindmapDb.js rename to packages/mermaid-mindmap/src/mindmapDb.ts index 2ae98c223b..3f35d92092 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.js +++ b/packages/mermaid-mindmap/src/mindmapDb.ts @@ -1,16 +1,30 @@ /** Created by knut on 15-01-14. */ import { sanitizeText, getConfig, log } from './mermaidUtils'; +import type { DetailedError } from 'mermaid/dist/utils'; -let nodes = []; +interface Node { + id: number; + nodeId: string; + level: number; + descr: string; + type: number; + children: Node[]; + width: number; + padding: number; + icon?: string; + class?: string; +} + +let nodes: Node[] = []; let cnt = 0; -let elements = {}; +let elements: Record<number, HTMLElement> = {}; export const clear = () => { nodes = []; cnt = 0; elements = {}; }; -const getParent = function (level) { +const getParent = function (level: number) { for (let i = nodes.length - 1; i >= 0; i--) { if (nodes[i].level < level) { return nodes[i]; @@ -23,28 +37,21 @@ const getParent = function (level) { export const getMindmap = () => { return nodes.length > 0 ? nodes[0] : null; }; -export const addNode = (level, id, descr, type) => { + +export const addNode = (level: number, id: string, descr: string, type: number) => { log.info('addNode', level, id, descr, type); const conf = getConfig(); - const node = { + const padding = conf.mindmap?.padding ?? 15; + const node: Node = { id: cnt++, nodeId: sanitizeText(id), level, descr: sanitizeText(descr), type, children: [], - width: getConfig().mindmap.maxNodeWidth, + width: getConfig().mindmap?.maxNodeWidth ?? 200, + padding: type === nodeType.ROUNDED_RECT || type === nodeType.RECT ? 2 * padding : padding, }; - switch (node.type) { - case nodeType.ROUNDED_RECT: - node.padding = 2 * conf.mindmap.padding; - break; - case nodeType.RECT: - node.padding = 2 * conf.mindmap.padding; - break; - default: - node.padding = conf.mindmap.padding; - } const parent = getParent(level); if (parent) { parent.children.push(node); @@ -56,9 +63,10 @@ export const addNode = (level, id, descr, type) => { nodes.push(node); } else { // Syntax error ... there can only bee one root - let error = new Error( + const error = new Error( 'There can be only one root. No parent could be found for ("' + node.descr + '")' ); + // @ts-ignore TODO: Add mermaid error error.hash = { text: 'branch ' + name, token: 'branch ' + name, @@ -81,7 +89,7 @@ export const nodeType = { BANG: 5, }; -export const getType = (startStr, endStr) => { +export const getType = (startStr: string, endStr: string): number => { log.debug('In get type', startStr, endStr); switch (startStr) { case '[': @@ -99,11 +107,11 @@ export const getType = (startStr, endStr) => { } }; -export const setElementForId = (id, element) => { +export const setElementForId = (id: number, element: HTMLElement) => { elements[id] = element; }; -export const decorateNode = (decoration) => { +export const decorateNode = (decoration: { icon: string; class: string }) => { const node = nodes[nodes.length - 1]; if (decoration && decoration.icon) { node.icon = sanitizeText(decoration.icon); @@ -113,7 +121,7 @@ export const decorateNode = (decoration) => { } }; -export const type2Str = (type) => { +export const type2Str = (type: number) => { switch (type) { case nodeType.DEFAULT: return 'no-border'; @@ -132,13 +140,15 @@ export const type2Str = (type) => { } }; -export let parseError; -export const setErrorHandler = (handler) => { +export type ParseErrorFunction = (err: string | DetailedError, hash?: any) => void; +export let parseError: ParseErrorFunction; +export const setErrorHandler = (handler: ParseErrorFunction) => { parseError = handler; }; // Expose logger to grammar export const getLogger = () => log; -export const getNodeById = (id) => nodes[id]; -export const getElementById = (id) => elements[id]; +export const getNodeById = (id: number): Node => nodes[id]; +export const getElementById = (id: number | string): HTMLElement => + elements[typeof id === 'string' ? parseInt(id) : id]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2f88060c6..8e3d73948e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -285,6 +285,7 @@ importers: cytoscape-cose-bilkent: ^4.1.0 cytoscape-fcose: ^2.1.0 d3: ^7.0.0 + mermaid: workspace:* non-layered-tidy-tree-layout: ^2.0.2 rimraf: ^3.0.2 dependencies: @@ -296,6 +297,7 @@ importers: non-layered-tidy-tree-layout: 2.0.2 devDependencies: concurrently: 7.4.0 + mermaid: link:../mermaid rimraf: 3.0.2 packages: From c83e29c6e3f552f625c36a9e08876ffb3385615b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 16 Oct 2022 10:11:19 +0530 Subject: [PATCH 0403/1038] chore: Update creation date --- packages/mermaid-mindmap/src/mindmapDb.ts | 2 +- packages/mermaid-mindmap/src/mindmapRenderer.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid-mindmap/src/mindmapDb.ts b/packages/mermaid-mindmap/src/mindmapDb.ts index 3f35d92092..3b07bd8826 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.ts +++ b/packages/mermaid-mindmap/src/mindmapDb.ts @@ -1,4 +1,4 @@ -/** Created by knut on 15-01-14. */ +/** Created by knut on 23-07-2022. */ import { sanitizeText, getConfig, log } from './mermaidUtils'; import type { DetailedError } from 'mermaid/dist/utils'; diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index f69b0b381a..c4f71588f4 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -1,4 +1,4 @@ -/** Created by knut on 14-12-11. */ +/** Created by knut on 23-07-2022. */ import { select } from 'd3'; import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; import svgDraw from './svgDraw'; From 720849a55e35a5f1b09ee4bf4202b534f6ae1e98 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sun, 16 Oct 2022 09:55:42 +0100 Subject: [PATCH 0404/1038] test(gantt): remove incorrect comment This comment seems to have been accidentally added 7 years ago in https://github.com/mermaid-js/mermaid/commit/6f96b5dd1432d042c60d3a03f8fb67a6ee33e288 --- .../mermaid/src/diagrams/gantt/parser/gantt.spec.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js index 9e56752491..9a1401cada 100644 --- a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js +++ b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js @@ -65,17 +65,6 @@ describe('when parsing a gantt diagram it', function () { expect(parserFnConstructor(str)).not.toThrow(); }); - /** - * Beslutsflöde inligt nedan. Obs bla bla bla - * - * graph TD - * A[Hard pledge] -- text on link -->B(Round edge) - * B --> C{to do or not to do} - * C -->|Too| D[Result one] - * C -->|Doo| E[Result two] - * - * Params bapa - a unique bapap - */ it('should handle a task definition', function () { const str = 'gantt\n' + From 989d716c36261a7faccaf599ade894c850d1bda6 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sun, 16 Oct 2022 09:57:31 +0100 Subject: [PATCH 0405/1038] style: fix @cspell/eslint warnings Ignores some names of contributors, and adjusts some capitilization spacing to fix all cspell warnings. --- applitools.config.js | 1 + cSpell.json | 8 +++++++- cypress/integration/rendering/appli.spec.js | 2 +- packages/mermaid/src/defaultConfig.ts | 12 +++++------- .../src/diagrams/sequence/sequenceDiagram.spec.js | 6 +++--- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/applitools.config.js b/applitools.config.js index 1c0607868c..5c1c4bb49d 100644 --- a/applitools.config.js +++ b/applitools.config.js @@ -1,3 +1,4 @@ +/* eslint-disable @cspell/spellchecker */ // eslint-disable-next-line @typescript-eslint/no-var-requires const { defineConfig } = require('cypress'); diff --git a/cSpell.json b/cSpell.json index 867302e3cd..16cc692c0c 100644 --- a/cSpell.json +++ b/cSpell.json @@ -52,7 +52,13 @@ "Ashish", "bbox", "techn", - "cytoscape" + "cytoscape", + "Lucida", + "Bilkent", + "cpettitt", + "antiscript", + "ts-nocheck", + "setupGraphViewbox" ], "patterns": [ { diff --git a/cypress/integration/rendering/appli.spec.js b/cypress/integration/rendering/appli.spec.js index d6a83eb8bb..462fe869cd 100644 --- a/cypress/integration/rendering/appli.spec.js +++ b/cypress/integration/rendering/appli.spec.js @@ -21,7 +21,7 @@ describe('Git Graph diagram', () => { // // Call Open on eyes to initialize a test session // cy.eyesOpen({ // appName: 'Demo App', - // testName: 'Ultrafast grid demo', + // testName: 'UltraFast grid demo', // }); // // check the login page with fluent api, see more info here diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 9563566cba..38b910ffb3 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -119,13 +119,11 @@ const config: Partial<MermaidConfig> = { /** * This option controls if the generated ids of nodes in the SVG are generated randomly or based * on a seed. If set to false, the IDs are generated based on the current date and thus are not - // eslint-disable-next-line @cspell/spellchecker - * deterministic. This is the default behaviour. + * deterministic. This is the default behavior. * * **Notes**: * - // eslint-disable-next-line @cspell/spellchecker - * This matters if your files are checked into sourcecontrol e.g. git and should not change unless + * This matters if your files are checked into source control e.g. git and should not change unless * content is changed. * * Default value: false @@ -635,9 +633,9 @@ const config: Partial<MermaidConfig> = { numberSectionStyles: 4, /** - * | Parameter | Description | Type | Required | Values | - * | ---------- | --------------------------- | ---- | -------- | ---------------- | - * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | + * | Parameter | Description | Type | Required | Values | + * | ---------- | ---------------------------- | ---- | -------- | ---------------- | + * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd | * * **Notes:** * diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index 5aebd1e3a5..9422a5f37f 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -130,7 +130,7 @@ Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; mermaidAPI.parse(str); - diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility autonumbers + diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers expect(diagram.db.showSequenceNumbers()).toBe(false); }); it('should show sequence numbers when autonumber is enabled', function () { @@ -142,7 +142,7 @@ Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; mermaidAPI.parse(str); - diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility autonumbers + diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers expect(diagram.db.showSequenceNumbers()).toBe(true); }); it('should handle a sequenceDiagram definition with a title:', function () { @@ -1871,7 +1871,7 @@ Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; mermaidAPI.parse(str1, diagram); - diagram.renderer.draw(str1, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility autonumbers + diagram.renderer.draw(str1, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers expect(diagram.db.showSequenceNumbers()).toBe(true); const str2 = ` From aa43cfb5acbaccfe1bd05f5fa67b3e70e54eb39b Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sun, 16 Oct 2022 10:23:57 +0100 Subject: [PATCH 0406/1038] style(sequence): rename lineStarty to lineStartY Fixes @cspell/eslint warnings. --- .../src/diagrams/sequence/sequenceRenderer.ts | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index f7de8a1113..9b1a55fc13 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -293,15 +293,15 @@ const boundMessage = function (diagram, msgModel) { bounds.bumpVerticalPos(lineHeight); - let lineStarty; + let lineStartY; let totalOffset = textDims.height - 10; const textWidth = textDims.width; if (startx === stopx) { - lineStarty = bounds.getVerticalPos() + totalOffset; + lineStartY = bounds.getVerticalPos() + totalOffset; if (!conf.rightAngles) { totalOffset += conf.boxMargin; - lineStarty = bounds.getVerticalPos() + totalOffset; + lineStartY = bounds.getVerticalPos() + totalOffset; } totalOffset += 30; const dx = Math.max(textWidth / 2, conf.width / 2); @@ -313,15 +313,15 @@ const boundMessage = function (diagram, msgModel) { ); } else { totalOffset += conf.boxMargin; - lineStarty = bounds.getVerticalPos() + totalOffset; - bounds.insert(startx, lineStarty - 10, stopx, lineStarty); + lineStartY = bounds.getVerticalPos() + totalOffset; + bounds.insert(startx, lineStartY - 10, stopx, lineStartY); } bounds.bumpVerticalPos(totalOffset); msgModel.height += totalOffset; msgModel.stopy = msgModel.starty + msgModel.height; bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy); - return lineStarty; + return lineStartY; }; /** @@ -329,10 +329,10 @@ const boundMessage = function (diagram, msgModel) { * * @param {any} diagram - The parent of the message element * @param {any} msgModel - The model containing fields describing a message - * @param {number} lineStarty - The Y coordinate at which the message line starts + * @param {number} lineStartY - The Y coordinate at which the message line starts * @param diagObj */ -const drawMessage = function (diagram, msgModel, lineStarty, diagObj) { +const drawMessage = function (diagram, msgModel, lineStartY, diagObj) { const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel; const textDims = utils.calculateTextDimensions(message, messageFont(conf)); const textObj = svgDraw.getTextObj(); @@ -361,8 +361,8 @@ const drawMessage = function (diagram, msgModel, lineStarty, diagObj) { .append('path') .attr( 'd', - `M ${startx},${lineStarty} H ${startx + Math.max(conf.width / 2, textWidth / 2)} V ${ - lineStarty + 25 + `M ${startx},${lineStartY} H ${startx + Math.max(conf.width / 2, textWidth / 2)} V ${ + lineStartY + 25 } H ${startx}` ); } else { @@ -373,27 +373,27 @@ const drawMessage = function (diagram, msgModel, lineStarty, diagObj) { 'M ' + startx + ',' + - lineStarty + + lineStartY + ' C ' + (startx + 60) + ',' + - (lineStarty - 10) + + (lineStartY - 10) + ' ' + (startx + 60) + ',' + - (lineStarty + 30) + + (lineStartY + 30) + ' ' + startx + ',' + - (lineStarty + 20) + (lineStartY + 20) ); } } else { line = diagram.append('line'); line.attr('x1', startx); - line.attr('y1', lineStarty); + line.attr('y1', lineStartY); line.attr('x2', stopx); - line.attr('y2', lineStarty); + line.attr('y2', lineStartY); } // Make an SVG Container // Draw the line @@ -441,7 +441,7 @@ const drawMessage = function (diagram, msgModel, lineStarty, diagObj) { diagram .append('text') .attr('x', startx) - .attr('y', lineStarty + 4) + .attr('y', lineStartY + 4) .attr('font-family', 'sans-serif') .attr('font-size', '12px') .attr('text-anchor', 'middle') @@ -812,8 +812,8 @@ export const draw = function (_text, id, _version, diagObj) { msgModel.starty = bounds.getVerticalPos(); msgModel.sequenceIndex = sequenceIndex; msgModel.sequenceVisible = diagObj.db.showSequenceNumbers(); - const lineStarty = boundMessage(diagram, msgModel); - messagesToDraw.push({ messageModel: msgModel, lineStarty: lineStarty }); + const lineStartY = boundMessage(diagram, msgModel); + messagesToDraw.push({ messageModel: msgModel, lineStartY: lineStartY }); bounds.models.addMessage(msgModel); } catch (e) { log.error('error while drawing message', e); @@ -837,7 +837,7 @@ export const draw = function (_text, id, _version, diagObj) { } }); - messagesToDraw.forEach((e) => drawMessage(diagram, e.messageModel, e.lineStarty, diagObj)); + messagesToDraw.forEach((e) => drawMessage(diagram, e.messageModel, e.lineStartY, diagObj)); if (conf.mirrorActors) { // Draw actors below diagram From 166dca55f237937a2ccccc6cc208c95fc7caebf0 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sun, 16 Oct 2022 09:09:36 -0700 Subject: [PATCH 0407/1038] functions and specs: createUserstyles; minor changes --- ...{mermaidAPI.spec.js => mermaidAPI.spec.ts} | 186 ++++++++++++------ packages/mermaid/src/mermaidAPI.ts | 48 +++-- 2 files changed, 157 insertions(+), 77 deletions(-) rename packages/mermaid/src/{mermaidAPI.spec.js => mermaidAPI.spec.ts} (78%) diff --git a/packages/mermaid/src/mermaidAPI.spec.js b/packages/mermaid/src/mermaidAPI.spec.ts similarity index 78% rename from packages/mermaid/src/mermaidAPI.spec.js rename to packages/mermaid/src/mermaidAPI.spec.ts index f697891a43..8361f368c4 100644 --- a/packages/mermaid/src/mermaidAPI.spec.js +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -2,11 +2,14 @@ import { vi } from 'vitest'; import mermaid from './mermaid'; +import { MermaidConfig } from './config.type'; + import mermaidAPI from './mermaidAPI'; import { encodeEntities, decodeEntities, createCssStyles, + createUserStyles, appendDivSvgG, cleanUpSvgCode, putIntoIFrame, @@ -14,7 +17,9 @@ import { import assignWithDepth from './assignWithDepth'; -// To mock a module, first define a mock for it, then import it. Be sure the path points to exactly the same file as is imported in mermaidAPI (the module being tested) +// -------------- +// Mocks +// To mock a module, first define a mock for it, then (if used explicitly in the tests) import it. Be sure the path points to exactly the same file as is imported in mermaidAPI (the module being tested) vi.mock('./styles', () => { return { addStylesForDiagram: vi.fn(), @@ -34,6 +39,8 @@ import { compile, serialize } from 'stylis'; import { MockedD3 } from './tests/MockedD3'; +// ------------------------------------------------------------------------------------- + describe('when using mermaidAPI and ', function () { describe('encodeEntities', () => { it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => { @@ -184,12 +191,14 @@ describe('when using mermaidAPI and ', function () { const fauxGNode = new MockedD3(); const parent_append_spy = vi.spyOn(fauxParentNode, 'append').mockReturnValue(fauxEnclosingDiv); const div_append_spy = vi.spyOn(fauxEnclosingDiv, 'append').mockReturnValue(fauxSvgNode); + // @ts-ignore @todo TODO why is this getting a type error? const div_attr_spy = vi.spyOn(fauxEnclosingDiv, 'attr').mockReturnValue(fauxEnclosingDiv); const svg_append_spy = vi.spyOn(fauxSvgNode, 'append').mockReturnValue(fauxGNode); + // @ts-ignore @todo TODO why is this getting a type error? const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode); it('appends a div node', () => { - appendDivSvgG(fauxParentNode, 'theId'); + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); expect(parent_append_spy).toHaveBeenCalledWith('div'); expect(div_append_spy).toHaveBeenCalledWith('svg'); }); @@ -208,7 +217,7 @@ describe('when using mermaidAPI and ', function () { expect(div_attr_spy).toHaveBeenCalledWith('id', 'dtheId'); }); it('sets the svg width to 100%', () => { - appendDivSvgG(fauxParentNode, 'theId'); + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); expect(svg_attr_spy).toHaveBeenCalledWith('width', '100%'); }); it('the svg id is the id', () => { @@ -216,7 +225,7 @@ describe('when using mermaidAPI and ', function () { expect(svg_attr_spy).toHaveBeenCalledWith('id', 'theId'); }); it('the svg xml namespace is the 2000 standard', () => { - appendDivSvgG(fauxParentNode, 'theId'); + appendDivSvgG(fauxParentNode, 'theId', 'dtheId'); expect(svg_attr_spy).toHaveBeenCalledWith('xmlns', 'http://www.w3.org/2000/svg'); }); it('sets the svg xlink if one is given', () => { @@ -235,11 +244,11 @@ describe('when using mermaidAPI and ', function () { describe('createCssStyles', () => { const serif = 'serif'; const sansSerif = 'sans-serif'; - const mocked_config_with_htmlLabels = { + const mocked_config_with_htmlLabels: MermaidConfig = { themeCSS: 'default', fontFamily: serif, altFontFamily: sansSerif, - htmlLabels: '', + htmlLabels: true, }; it('gets the cssStyles from the theme', () => { @@ -267,7 +276,7 @@ describe('when using mermaidAPI and ', function () { const REGEXP_SPECIALS = ['^', '$', '?', '(', '{', '[', '.', '*', '!']; // prefix any special RegExp characters in the given string with a \ so we can use the literal character in a RegExp - function escapeForRegexp(str) { + function escapeForRegexp(str: string) { const strChars = str.split(''); // split into array of every char const strEscaped = strChars.map((char) => { if (REGEXP_SPECIALS.includes(char)) return `\\${char}`; @@ -275,7 +284,9 @@ describe('when using mermaidAPI and ', function () { }); return strEscaped.join(''); } - function expect_styles_matchesHtmlElements(styles, htmlElement) { + + // Common test expecting given styles to have .classDef1 and .classDef2 statements but not .classDef3 + function expect_styles_matchesHtmlElements(styles: string, htmlElement: string) { expect(styles).toMatch( new RegExp( `\\.classDef1 ${escapeForRegexp( @@ -292,13 +303,14 @@ describe('when using mermaidAPI and ', function () { ); } - function expect_textStyles_matchesHtmlElements(styles, htmlElement) { - expect(styles).toMatch( + // Common test expecting given textStyles to have .classDef2 and .classDef3 statements but not .classDef1 + function expect_textStyles_matchesHtmlElements(textStyles: string, htmlElement: string) { + expect(textStyles).toMatch( new RegExp( `\\.classDef2 ${escapeForRegexp(htmlElement)} \\{ textStyle2-1 !important; }` ) ); - expect(styles).toMatch( + expect(textStyles).toMatch( new RegExp( `\\.classDef3 ${escapeForRegexp( htmlElement @@ -307,14 +319,15 @@ describe('when using mermaidAPI and ', function () { ); // no CSS styles are created if there are no textStyles for a classDef - expect(styles).not.toMatch( + expect(textStyles).not.toMatch( new RegExp( `\\.classDef1 ${escapeForRegexp(htmlElement)} \\{ textStyle(.*) !important; }` ) ); } - function expect_correct_styles_with_htmlElements(mocked_config) { + // common suite and tests to verify that the right styles are created with the right htmlElements + function expect_correct_styles_with_htmlElements(mocked_config: MermaidConfig) { describe('creates styles for "> *" and "span" elements', () => { const htmlElements = ['> *', 'span']; @@ -335,12 +348,12 @@ describe('when using mermaidAPI and ', function () { }); it('there are flowchart.htmlLabels in the configuration', () => { - const mocked_config_flowchart_htmlLabels = { + const mocked_config_flowchart_htmlLabels: MermaidConfig = { themeCSS: 'default', fontFamily: 'serif', altFontFamily: 'sans-serif', flowchart: { - htmlLabels: 'flowchart-htmlLables', + htmlLabels: true, }, }; expect_correct_styles_with_htmlElements(mocked_config_flowchart_htmlLabels); @@ -371,39 +384,75 @@ describe('when using mermaidAPI and ', function () { }); }); - // describe('createUserStyles', () => { - // const mockConfig = { - // themeCSS: 'default', - // htmlLabels: 'htmlLabels', - // themeVariables: { fontFamily: 'serif' }, - // }; - // const classDef1 = { id: 'classDef1', styles: ['style1-1'], textStyles: [] }; - // - // it('gets the css styles created', () => { - // // @todo TODO if a single function in the module can be mocked, do it for createCssStyles and mock the results. - // - // createUserStyles(mockConfig, 'flowchart-v2', [classDef1], 'someId'); - // const expectedStyles = - // '\ndefault' + - // '\n.classDef1 > * { style1-1 !important; }' + - // '\n.classDef1 span { style1-1 !important; }'; - // expect(getStyles).toHaveBeenCalledWith('flowchart-v2', expectedStyles, { - // fontFamily: 'serif', - // }); - // }); - // - // it('calls getStyles to get css for all graph, user css styles, and config theme variables', () => { - // createUserStyles(mockConfig, 'someDiagram', null, 'someId'); - // expect(getStyles).toHaveBeenCalled(); - // }); - // - // it('returns the result of compiling, stringifying, and serializing the css code with stylis', () => { - // const result = createUserStyles(mockConfig, 'someDiagram', null, 'someId'); - // expect(compile).toHaveBeenCalled(); - // expect(serialize).toHaveBeenCalled(); - // expect(result).toEqual('stylis serialized css'); - // }); - // }); + describe('createUserStyles', () => { + const mockConfig = { + themeCSS: 'default', + htmlLabels: true, + themeVariables: { fontFamily: 'serif' }, + }; + + // + // export interface MermaidConfig { + // lazyLoadedDiagrams?: string[]; + // theme?: string; + // themeVariables?: any; + // themeCSS?: string; + // maxTextSize?: number; + // darkMode?: boolean; + // htmlLabels?: boolean; + // fontFamily?: string; + // altFontFamily?: string; + // logLevel?: number; + // securityLevel?: string; + // startOnLoad?: boolean; + // arrowMarkerAbsolute?: boolean; + // secure?: string[]; + // deterministicIds?: boolean; + // deterministicIDSeed?: string; + // flowchart?: FlowchartDiagramConfig; + // sequence?: SequenceDiagramConfig; + // gantt?: GanttDiagramConfig; + // journey?: JourneyDiagramConfig; + // class?: ClassDiagramConfig; + // state?: StateDiagramConfig; + // er?: ErDiagramConfig; + // pie?: PieDiagramConfig; + // requirement?: RequirementDiagramConfig; + // mindmap?: MindmapDiagramConfig; + // gitGraph?: GitGraphDiagramConfig; + // c4?: C4DiagramConfig; + // dompurifyConfig?: DOMPurify.Config; + // wrap?: boolean; + // fontSize?: number; + // } + + const classDef1 = { id: 'classDef1', styles: ['style1-1'], textStyles: [] }; + + it('gets the css styles created', () => { + // @todo TODO if a single function in the module can be mocked, do it for createCssStyles and mock the results. + + createUserStyles(mockConfig, 'flowchart-v2', [classDef1], 'someId'); + const expectedStyles = + '\ndefault' + + '\n.classDef1 > * { style1-1 !important; }' + + '\n.classDef1 span { style1-1 !important; }'; + expect(getStyles).toHaveBeenCalledWith('flowchart-v2', expectedStyles, { + fontFamily: 'serif', + }); + }); + + it('calls getStyles to get css for all graph, user css styles, and config theme variables', () => { + createUserStyles(mockConfig, 'someDiagram', null, 'someId'); + expect(getStyles).toHaveBeenCalled(); + }); + + it('returns the result of compiling, stringifying, and serializing the css code with stylis', () => { + const result = createUserStyles(mockConfig, 'someDiagram', null, 'someId'); + expect(compile).toHaveBeenCalled(); + expect(serialize).toHaveBeenCalled(); + expect(result).toEqual('stylis serialized css'); + }); + }); describe('doing initialize ', function () { beforeEach(function () { @@ -412,16 +461,19 @@ describe('when using mermaidAPI and ', function () { }); it('should copy a literal into the configuration', function () { - const orgConfig = mermaidAPI.getConfig(); + const orgConfig: any = mermaidAPI.getConfig(); expect(orgConfig.testLiteral).toBe(undefined); - mermaidAPI.initialize({ testLiteral: true }); - const config = mermaidAPI.getConfig(); + const testConfig: any = { testLiteral: true }; + + mermaidAPI.initialize(testConfig); + const config: any = mermaidAPI.getConfig(); expect(config.testLiteral).toBe(true); }); + it('should copy a an object into the configuration', function () { - const orgConfig = mermaidAPI.getConfig(); + const orgConfig: any = mermaidAPI.getConfig(); expect(orgConfig.testObject).toBe(undefined); const object = { @@ -429,19 +481,25 @@ describe('when using mermaidAPI and ', function () { test2: false, }; - mermaidAPI.initialize({ testObject: object }); - let config = mermaidAPI.getConfig(); + const testConfig: any = { testObject: object }; + + mermaidAPI.initialize(testConfig); + + let config: any = mermaidAPI.getConfig(); expect(config.testObject.test1).toBe(1); - mermaidAPI.updateSiteConfig({ testObject: { test3: true } }); + + const testObjSetting: any = { testObject: { test3: true } }; + mermaidAPI.updateSiteConfig(testObjSetting); config = mermaidAPI.getConfig(); expect(config.testObject.test1).toBe(1); expect(config.testObject.test2).toBe(false); expect(config.testObject.test3).toBe(true); }); + it('should reset mermaid config to global defaults', function () { - let config = { + const config = { logLevel: 0, securityLevel: 'loose', }; @@ -458,7 +516,7 @@ describe('when using mermaidAPI and ', function () { }); it('should prevent changes to site defaults (sneaky)', function () { - let config = { + const config: any = { logLevel: 0, }; mermaidAPI.initialize(config); @@ -477,11 +535,12 @@ describe('when using mermaidAPI and ', function () { expect(mermaidAPI.getConfig()).toEqual(siteConfig); }); it('should prevent clobbering global defaults (direct)', function () { - let config = assignWithDepth({}, mermaidAPI.defaultConfig); + const config = assignWithDepth({}, mermaidAPI.defaultConfig); assignWithDepth(config, { logLevel: 0 }); - let error = { message: '' }; + let error: any = { message: '' }; try { + // @ts-ignore This is a read-only property. Typescript will not allow assignment, but regular javascript might. mermaidAPI['defaultConfig'] = config; } catch (e) { error = e; @@ -492,7 +551,7 @@ describe('when using mermaidAPI and ', function () { expect(mermaidAPI.defaultConfig['logLevel']).toBe(5); }); it('should prevent changes to global defaults (direct)', function () { - let error = { message: '' }; + let error: any = { message: '' }; try { mermaidAPI.defaultConfig['logLevel'] = 0; } catch (e) { @@ -504,10 +563,10 @@ describe('when using mermaidAPI and ', function () { expect(mermaidAPI.defaultConfig['logLevel']).toBe(5); }); it('should prevent sneaky changes to global defaults (assignWithDepth)', function () { - let config = { + const config = { logLevel: 0, }; - let error = { message: '' }; + let error: any = { message: '' }; try { assignWithDepth(mermaidAPI.defaultConfig, config); } catch (e) { @@ -522,7 +581,8 @@ describe('when using mermaidAPI and ', function () { describe('dompurify config', function () { it('should allow dompurify config to be set', function () { mermaidAPI.initialize({ dompurifyConfig: { ADD_ATTR: ['onclick'] } }); - expect(mermaidAPI.getConfig().dompurifyConfig.ADD_ATTR).toEqual(['onclick']); + + expect(mermaidAPI!.getConfig()!.dompurifyConfig!.ADD_ATTR).toEqual(['onclick']); }); }); describe('test mermaidApi.parse() for checking validity of input ', function () { diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 0165aaeff4..73597d1c81 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -39,9 +39,9 @@ const MAX_TEXTLENGTH_EXCEEDED_MSG = const SECURITY_LVL_SANDBOX = 'sandbox'; const SECURITY_LVL_LOOSE = 'loose'; -const XMLNS_XHTML_STD = 'http://www.w3.org/1999/xhtml'; const XMLNS_SVG_STD = 'http://www.w3.org/2000/svg'; const XMLNS_XLINK_STD = 'http://www.w3.org/1999/xlink'; +const XMLNS_XHTML_STD = 'http://www.w3.org/1999/xhtml'; // ------------------------------ // iFrame @@ -87,12 +87,10 @@ export const encodeEntities = function (text: string): string { let txt = text; txt = txt.replace(/style.*:\S*#.*;/g, function (s) { - const innerTxt = s.substring(0, s.length - 1); - return innerTxt; + return s.substring(0, s.length - 1); }); txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) { - const innerTxt = s.substring(0, s.length - 1); - return innerTxt; + return s.substring(0, s.length - 1); }); txt = txt.replace(/#\w+;/g, function (s) { @@ -211,6 +209,29 @@ export const createCssStyles = ( return cssStyles; }; +export const createUserStyles = ( + config: MermaidConfig, + graphType: string, + classDefs: null | DiagramStyleClassDef, + svgId: string +): string => { + const userCSSstyles = createCssStyles(config, graphType, classDefs); + const allStyles = getStyles(graphType, userCSSstyles, config.themeVariables); + + // Now turn all of the styles into a (compiled) string that starts with the id + // use the stylis library to compile the css, turn the results into a valid CSS string (serialize(...., stringify)) + // @see https://github.com/thysultan/stylis + return serialize(compile(`${svgId}{${allStyles}}`), stringify); +}; + +/** + * Clean up svgCode. Do replacements needed + * + * @param {string} svgCode + * @param {boolean} inSandboxMode - security level + * @param {boolean} useArrowMarkerUrls - should arrow marker's use full urls? (vs. just the anchors) + * @returns {string} the cleaned up svgCode + */ export const cleanUpSvgCode = ( svgCode = '', inSandboxMode: boolean, @@ -424,23 +445,22 @@ const render = async function ( parseEncounteredException = error; } - // Get the tmp div element containing the svg + // Get the temporary div element containing the svg const element = root.select(enclosingDivID_selector).node(); const graphType = diag.type; // ------------------------------------------------------------------------------- // Create and insert the styles (user styles, theme styles, config styles) - // insert inline style into svg + // Insert an element into svg. This is where we put the styles const svg = element.firstChild; const firstChild = svg.firstChild; - - const userDefClasses: any = flowRenderer.getClasses(text, diag); - const cssStyles = createCssStyles(config, graphType, userDefClasses); - - const stylis = (selector: string, styles: string) => - serialize(compile(`${selector}{${styles}}`), stringify); - const rules = stylis(`${idSelector}`, getStyles(graphType, cssStyles, config.themeVariables)); + const rules = createUserStyles( + config, + graphType, + flowRenderer.getClasses(text, diag), + idSelector + ); const style1 = document.createElement('style'); style1.innerHTML = `${idSelector} ` + rules; From fcba29f774850c109a51f88746e6732b00efa980 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sun, 16 Oct 2022 11:08:01 -0700 Subject: [PATCH 0408/1038] functions and specs: removeExistingElements --- packages/mermaid/src/mermaidAPI.spec.ts | 72 ++++++++++++++++++++++++- packages/mermaid/src/mermaidAPI.ts | 46 ++++++++++------ 2 files changed, 101 insertions(+), 17 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 8361f368c4..08aaef6a7c 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -4,7 +4,7 @@ import { vi } from 'vitest'; import mermaid from './mermaid'; import { MermaidConfig } from './config.type'; -import mermaidAPI from './mermaidAPI'; +import mermaidAPI, { removeExistingElements } from './mermaidAPI'; import { encodeEntities, decodeEntities, @@ -454,6 +454,76 @@ describe('when using mermaidAPI and ', function () { }); }); + describe('removeExistingElements', () => { + const svgId = 'svgId'; + const tempDivId = 'tempDivId'; + const tempIframeId = 'tempIFrameId'; + const givenDocument = new Document(); + const rootHtml = givenDocument.createElement('html'); + givenDocument.append(rootHtml); + + const svgElement = givenDocument.createElement('svg'); // doesn't matter what the tag is in the test + svgElement.id = svgId; + const tempDivElement = givenDocument.createElement('div'); // doesn't matter what the tag is in the test + tempDivElement.id = tempDivId; + const tempiFrameElement = givenDocument.createElement('div'); // doesn't matter what the tag is in the test + tempiFrameElement.id = tempIframeId; + + it('removes an existing element with given id', () => { + rootHtml.appendChild(svgElement); + expect(givenDocument.getElementById(svgElement.id)).toEqual(svgElement); + removeExistingElements(givenDocument, false, svgId, tempDivId, tempIframeId); + expect(givenDocument.getElementById(svgElement.id)).toBeNull(); + }); + + describe('is in sandboxed mode', () => { + const inSandboxedMode = true; + + it('removes an existing element with the given iFrame selector', () => { + tempiFrameElement.append(svgElement); + rootHtml.append(tempiFrameElement); + rootHtml.append(tempDivElement); + + expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); + expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); + expect(givenDocument.getElementById(svgId)).toEqual(svgElement); + removeExistingElements( + givenDocument, + inSandboxedMode, + svgId, + '#' + tempDivId, + '#' + tempIframeId + ); + expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); + expect(givenDocument.getElementById(tempIframeId)).toBeNull(); + expect(givenDocument.getElementById(svgId)).toBeNull(); + }); + }); + describe('not in sandboxed mode', () => { + const inSandboxedMode = false; + + it('removes an existing element with the given enclosing div selector', () => { + tempDivElement.append(svgElement); + rootHtml.append(tempDivElement); + rootHtml.append(tempiFrameElement); + + expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); + expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); + expect(givenDocument.getElementById(svgId)).toEqual(svgElement); + removeExistingElements( + givenDocument, + inSandboxedMode, + svgId, + '#' + tempDivId, + '#' + tempIframeId + ); + expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); + expect(givenDocument.getElementById(tempDivId)).toBeNull(); + expect(givenDocument.getElementById(svgId)).toBeNull(); + }); + }); + }); + describe('doing initialize ', function () { beforeEach(function () { document.body.innerHTML = ''; diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 73597d1c81..54e1758fb5 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -86,10 +86,10 @@ function parse(text: string, parseError?: ParseErrorFunction): boolean { export const encodeEntities = function (text: string): string { let txt = text; - txt = txt.replace(/style.*:\S*#.*;/g, function (s) { + txt = txt.replace(/style.*:\S*#.*;/g, function (s): string { return s.substring(0, s.length - 1); }); - txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) { + txt = txt.replace(/classDef.*:\S*#.*;/g, function (s): string { return s.substring(0, s.length - 1); }); @@ -319,6 +319,31 @@ function sandboxedIframe(parentNode: D3Element, iFrameId: string): D3Element { .attr('sandbox', ''); } +/** + * Remove any existing elements from the given document + * + * @param {Document} doc - the document to removed elements from + * @param {string} isSandboxed - whether or not we are in sandboxed mode + * @param {string} id - id for any existing SVG element + * @param {string} divSelector - selector for any existing enclosing div element + * @param {string} iFrameSelector - selector for any existing iFrame element + */ +export const removeExistingElements = ( + doc: Document, + isSandboxed: boolean, + id: string, + divSelector: string, + iFrameSelector: string +) => { + // Remove existing SVG element if it exists + const existingSvg = doc.getElementById(id); + if (existingSvg) existingSvg.remove(); + + // Remove previous temporary element if it exists + const element = isSandboxed ? doc.querySelector(iFrameSelector) : doc.querySelector(divSelector); + if (element) element.remove(); +}; + /** * Function that renders an svg with a graph from a chart definition. Usage example below. * @@ -384,8 +409,8 @@ const render = async function ( // ------------------------------------------------------------------------------- // Define the root d3 node - // In regular execution the svgContainingElement will be the element with a mermaid class + if (typeof svgContainingElement !== 'undefined') { if (svgContainingElement) svgContainingElement.innerHTML = ''; @@ -400,19 +425,9 @@ const render = async function ( appendDivSvgG(root, id, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD); } else { // No svgContainingElement was provided - // If there is an existing element with the id, we remove it - // this likely a previously rendered diagram - const existingSvg = document.getElementById(id); - if (existingSvg) existingSvg.remove(); - // Remove previous temporary element if it exists - let element; - if (isSandboxed) { - element = document.querySelector(iFrameID_selector); - } else { - element = document.querySelector(enclosingDivID_selector); - } - if (element) element.remove(); + // If there is an existing element with the id, we remove it. This likely a previously rendered diagram + removeExistingElements(document, isSandboxed, id, iFrameID_selector, enclosingDivID_selector); // Add the temporary div used for rendering with the enclosingDivID. // This temporary div will contain a svg with the id == id @@ -420,7 +435,6 @@ const render = async function ( if (isSandboxed) { // If we are in sandboxed mode, we do everything mermaid related in a (sandboxed) iFrame const iframe = sandboxedIframe(select('body'), iFrameID); - root = select(iframe.nodes()[0]!.contentDocument!.body); root.node().style.margin = 0; } else root = select('body'); From ea86ef3995b243ebd185a3fc096aac88dd6be184 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Sun, 16 Oct 2022 11:14:57 -0700 Subject: [PATCH 0409/1038] change spec descriptions to active voice (= shorter b/c 'should' isn't needed) --- packages/mermaid/src/mermaidAPI.spec.ts | 30 ++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 08aaef6a7c..8206499f97 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -41,7 +41,7 @@ import { MockedD3 } from './tests/MockedD3'; // ------------------------------------------------------------------------------------- -describe('when using mermaidAPI and ', function () { +describe('mermaidAPI', function () { describe('encodeEntities', () => { it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => { const text = 'style this; is ; everything :something#not-nothing; and this too;'; @@ -524,13 +524,13 @@ describe('when using mermaidAPI and ', function () { }); }); - describe('doing initialize ', function () { + describe('initialize', function () { beforeEach(function () { document.body.innerHTML = ''; mermaidAPI.globalReset(); }); - it('should copy a literal into the configuration', function () { + it('copies a literal into the configuration', function () { const orgConfig: any = mermaidAPI.getConfig(); expect(orgConfig.testLiteral).toBe(undefined); @@ -542,7 +542,7 @@ describe('when using mermaidAPI and ', function () { expect(config.testLiteral).toBe(true); }); - it('should copy a an object into the configuration', function () { + it('copies a an object into the configuration', function () { const orgConfig: any = mermaidAPI.getConfig(); expect(orgConfig.testObject).toBe(undefined); @@ -568,7 +568,7 @@ describe('when using mermaidAPI and ', function () { expect(config.testObject.test3).toBe(true); }); - it('should reset mermaid config to global defaults', function () { + it('resets mermaid config to global defaults', function () { const config = { logLevel: 0, securityLevel: 'loose', @@ -585,7 +585,7 @@ describe('when using mermaidAPI and ', function () { expect(mermaidAPI.getConfig().securityLevel).toBe('strict'); }); - it('should prevent changes to site defaults (sneaky)', function () { + it('prevents changes to site defaults (sneaky)', function () { const config: any = { logLevel: 0, }; @@ -604,7 +604,7 @@ describe('when using mermaidAPI and ', function () { expect(mermaidAPI.getSiteConfig()).toEqual(siteConfig); expect(mermaidAPI.getConfig()).toEqual(siteConfig); }); - it('should prevent clobbering global defaults (direct)', function () { + it('prevents clobbering global defaults (direct)', function () { const config = assignWithDepth({}, mermaidAPI.defaultConfig); assignWithDepth(config, { logLevel: 0 }); @@ -620,7 +620,7 @@ describe('when using mermaidAPI and ', function () { ); expect(mermaidAPI.defaultConfig['logLevel']).toBe(5); }); - it('should prevent changes to global defaults (direct)', function () { + it('prevents changes to global defaults (direct)', function () { let error: any = { message: '' }; try { mermaidAPI.defaultConfig['logLevel'] = 0; @@ -632,7 +632,7 @@ describe('when using mermaidAPI and ', function () { ); expect(mermaidAPI.defaultConfig['logLevel']).toBe(5); }); - it('should prevent sneaky changes to global defaults (assignWithDepth)', function () { + it('prevents sneaky changes to global defaults (assignWithDepth)', function () { const config = { logLevel: 0, }; @@ -649,22 +649,22 @@ describe('when using mermaidAPI and ', function () { }); }); describe('dompurify config', function () { - it('should allow dompurify config to be set', function () { + it('allows dompurify config to be set', function () { mermaidAPI.initialize({ dompurifyConfig: { ADD_ATTR: ['onclick'] } }); expect(mermaidAPI!.getConfig()!.dompurifyConfig!.ADD_ATTR).toEqual(['onclick']); }); }); - describe('test mermaidApi.parse() for checking validity of input ', function () { + describe('parse', function () { mermaid.parseError = undefined; // ensure it parseError undefined - it('should throw for an invalid definition (with no mermaid.parseError() defined)', function () { + it('throws for an invalid definition (with no mermaid.parseError() defined)', function () { expect(mermaid.parseError).toEqual(undefined); expect(() => mermaidAPI.parse('this is not a mermaid diagram definition')).toThrow(); }); - it('should not throw for a valid definition', function () { + it('does not throw for a valid definition', function () { expect(() => mermaidAPI.parse('graph TD;A--x|text including URL space|B;')).not.toThrow(); }); - it('it should return false for invalid definition WITH a parseError() callback defined', function () { + it('returns false for invalid definition WITH a parseError() callback defined', function () { let parseErrorWasCalled = false; // also test setParseErrorHandler() call working to set mermaid.parseError expect( @@ -674,7 +674,7 @@ describe('when using mermaidAPI and ', function () { ).toEqual(false); expect(parseErrorWasCalled).toEqual(true); }); - it('should return true for valid definition', function () { + it('returns true for valid definition', function () { expect(mermaidAPI.parse('graph TD;A--x|text including URL space|B;')).toEqual(true); }); }); From 541de12690f666d9b34464aa80689e74492d2a78 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 16 Oct 2022 22:58:11 +0200 Subject: [PATCH 0410/1038] chore(deps): update all non-major dependencies (#3671) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 10 +- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 3344 ++++++++++++++++----------------- 3 files changed, 1666 insertions(+), 1690 deletions(-) diff --git a/package.json b/package.json index 5517a79120..956e20b052 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", "type": "module", - "packageManager": "pnpm@7.13.2", + "packageManager": "pnpm@7.13.5", "exports": { ".": { "require": "./dist/mermaid.min.js", @@ -102,13 +102,13 @@ "@types/stylis": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", - "@vitest/coverage-c8": "0.24.1", - "@vitest/ui": "0.24.1", + "@vitest/coverage-c8": "0.24.3", + "@vitest/ui": "0.24.3", "concurrently": "^7.4.0", "coveralls": "^3.1.1", "cypress": "^10.0.0", "cypress-image-snapshot": "^4.0.1", - "documentation": "13.2.0", + "documentation": "13.2.5", "esbuild": "^0.15.10", "eslint": "^8.24.0", "eslint-config-prettier": "^8.5.0", @@ -141,7 +141,7 @@ "vitepress": "^1.0.0-alpha.19", "vitepress-plugin-mermaid": "^2.0.8", "vitepress-plugin-search": "^1.0.4-alpha.11", - "vitest": "0.24.1" + "vitest": "0.24.3" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 6ce4f8109b..74c8331ba9 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -92,7 +92,7 @@ "coveralls": "^3.1.1", "cypress": "^10.0.0", "cypress-image-snapshot": "^4.0.1", - "documentation": "13.2.0", + "documentation": "13.2.5", "esbuild": "^0.15.8", "eslint": "^8.23.1", "eslint-config-prettier": "^8.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3af45ffee2..6654cd0df3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: '@types/uuid': ^8.3.4 '@typescript-eslint/eslint-plugin': ^5.39.0 '@typescript-eslint/parser': ^5.39.0 - '@vitest/coverage-c8': 0.24.1 - '@vitest/ui': 0.24.1 + '@vitest/coverage-c8': 0.24.3 + '@vitest/ui': 0.24.3 concurrently: ^7.4.0 coveralls: ^3.1.1 cypress: ^10.0.0 @@ -33,7 +33,7 @@ importers: d3: ^7.0.0 dagre: ^0.8.5 dagre-d3: ^0.6.4 - documentation: 13.2.0 + documentation: 13.2.5 dompurify: 2.4.0 esbuild: ^0.15.10 eslint: ^8.24.0 @@ -76,7 +76,7 @@ importers: vitepress: ^1.0.0-alpha.19 vitepress-plugin-mermaid: ^2.0.8 vitepress-plugin-search: ^1.0.4-alpha.11 - vitest: 0.24.1 + vitest: 0.24.3 dependencies: '@braintree/sanitize-url': 6.0.0 '@types/node': 18.8.1 @@ -109,13 +109,13 @@ importers: '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@vitest/coverage-c8': 0.24.1_xzgakswda4jfhzd65tgzmbprsy - '@vitest/ui': 0.24.1 + '@vitest/coverage-c8': 0.24.3_ff3ihdoybm7ovley6q4itwsswa + '@vitest/ui': 0.24.3 concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1 - documentation: 13.2.0 + documentation: 13.2.5 esbuild: 0.15.10 eslint: 8.24.0 eslint-config-prettier: 8.5.0_eslint@8.24.0 @@ -145,10 +145,10 @@ importers: typescript: 4.8.4 unist-util-flatmap: 1.0.0 vite: 3.1.4 - vitepress: 1.0.0-alpha.19 - vitepress-plugin-mermaid: 2.0.8_vitepress@1.0.0-alpha.19 - vitepress-plugin-search: 1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4 - vitest: 0.24.1_xzgakswda4jfhzd65tgzmbprsy + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-mermaid: 2.0.8_ml5vzxpqibyfsid5kdls3ch6aa + vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y + vitest: 0.24.3_ff3ihdoybm7ovley6q4itwsswa packages/mermaid: specifiers: @@ -173,7 +173,7 @@ importers: d3: ^7.0.0 dagre: ^0.8.5 dagre-d3: ^0.6.4 - documentation: 13.2.0 + documentation: 13.2.5 dompurify: 2.4.0 esbuild: ^0.15.8 eslint: ^8.23.1 @@ -239,14 +239,14 @@ importers: concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0 - documentation: 13.2.0 + cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 + documentation: 13.2.5 esbuild: 0.15.8 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -265,7 +265,7 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_typescript@4.8.3 + ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a typescript: 4.8.3 unist-util-flatmap: 1.0.0 @@ -306,13 +306,14 @@ packages: '@algolia/autocomplete-shared': 1.7.1 dev: true - /@algolia/autocomplete-preset-algolia/1.7.1_algoliasearch@4.14.2: + /@algolia/autocomplete-preset-algolia/1.7.1_qs6lk5nhygj2o3hj4sf6xnr724: resolution: {integrity: sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==} peerDependencies: '@algolia/client-search': ^4.9.1 algoliasearch: ^4.9.1 dependencies: '@algolia/autocomplete-shared': 1.7.1 + '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true @@ -679,20 +680,15 @@ packages: '@babel/highlight': 7.18.6 dev: true - /@babel/compat-data/7.19.1: - resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/core/7.12.3: resolution: {integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.12.1 + '@babel/generator': 7.19.0 '@babel/helper-module-transforms': 7.19.0 '@babel/helpers': 7.19.0 - '@babel/parser': 7.12.3 + '@babel/parser': 7.19.1 '@babel/template': 7.18.10 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 @@ -725,91 +721,11 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure/7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: - resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-compilation-targets/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 - semver: 6.3.0 - dev: true - - /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.2.1 - dev: true - - /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.12.3: - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-explode-assignable-expression/7.18.6: - resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} @@ -820,1053 +736,119 @@ packages: /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-member-expression-to-functions/7.18.9: - resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-module-imports/7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-module-transforms/7.19.0: - resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} - engines: {node: '>=6.9.0'} - 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.19.1 - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-optimise-call-expression/7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-plugin-utils/7.19.0: - resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-wrap-function': 7.19.0 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-replace-supers/7.19.1: - resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-simple-access/7.18.6: - resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-skip-transparent-expression-wrappers/7.18.9: - resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-split-export-declaration/7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/helper-string-parser/7.18.10: - resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-identifier/7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-wrap-function/7.19.0: - resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.19.0 - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helpers/7.19.0: - resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/highlight/7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@babel/parser/7.12.3: - resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/parser/7.19.1: - resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.19.0 - dev: true - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-async-generator-functions/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-decorators/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-LfIKNBBY7Q1OX5C4xAgRQffOg2OnhAo9fnbcOHgOC9Yytm2Sw+4XqHufRYU86tHomzepxtvuVaNO+3EVKR4ivw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-do-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ddToGCONJhCuL+l4FhtGnKl5ZYCj9fDVFiqiCdQDpeIbVn/NvMeSib+7T1/rk08jRafae4qNiP8OnJyuqlsuYA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-do-expressions': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-export-default-from/7.18.10_@babel+core@7.12.3: - resolution: {integrity: sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-export-default-from': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-function-bind/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-9RfxqKkRBCCT0xoBl9AqieCMscJmSAL9HYixGMWH549jUpT9csWWK/HEYZEx9t9iW/PRSXgX95x9bDlgtAJGFA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-function-bind': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-function-sent/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-UdaOKPOLPt0O+Xu26tnw6oAZMLXhk+yMrXOzn6kAzTHBnWHJsoN1hlrgxFAQ+FRLS0ql1oYIQ2phvoFzmN3GMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-wrap-function': 7.19.0 - '@babel/plugin-syntax-function-sent': 7.18.6_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-object-rest-spread/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-pipeline-operator/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-Pc33e6m8f4MJhRXVCUwiKZNtEm+W2CUPHIL0lyJNtkp+w6d75CLw3gsBKQ81VAMUgT9jVPIEU8gwJ5nJgmJ1Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-pipeline-operator': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-throw-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-WHOrJyhGoGrdtW480L79cF7Iq/gZDZ/z6OqK7mVyFR5I37dTpog/wNgb6hmaM3HYZtULEJl++7VaMWkNZsOcHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-throw-expressions': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.12.3: - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-do-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-kTogvOsjBTVOSZtkkziiXB5hwGXqwhq2gBXDaiWVruRLDT7C2GqfbsMnicHJ7ePq2GE8UJeWS34YbNP6yDhwUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-function-bind/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-wZN0Aq/AScknI9mKGcR3TpHdASMufFGaeJgc1rhPmLtZ/PniwjePSh8cfh8tXMB3U4kh/3cRKrLjDtedejg8jQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-function-sent/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-f3OJHIlFIkg+cP1Hfo2SInLhsg0pz2Ikmgo7jMdIIKC+3jVXQlHB0bgSapOWxeWI0SU28qIWmfn5ZKu1yPJHkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-import-assertions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-pipeline-operator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-pFtIdQomJtkTHWcNsGXhjJ5YUkL+AxJnP4G+Ol85UO6uT2fpHTPYLLE5bBeRA9cxf25qa/VKsJ3Fi67Gyqe3rA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.12.3: - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-throw-expressions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-rp1CqEZXGv1z1YZ3qYffBH3rhnOxrTwQG8fh2yqulTurwv9zu3Gthfd+niZBLSOi1rY6146TgF+JmVeDXaX4TQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.3: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-block-scoping/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-classes/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-destructuring/7.18.13_@babel+core@7.12.3: - resolution: {integrity: sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.12.3: - resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-literals/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - dev: true - - /@babel/plugin-transform-modules-amd/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + engines: {node: '>=6.9.0'} dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.19.0 dev: true - /@babel/plugin-transform-modules-commonjs/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==} + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-simple-access': 7.18.6 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.19.0 dev: true - /@babel/plugin-transform-modules-systemjs/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==} + /@babel/helper-module-transforms/7.19.0: + resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 + '@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.19.1 - babel-plugin-dynamic-import-node: 2.3.3 + '@babel/template': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + /@babel/helper-plugin-utils/7.19.0: + resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} + /@babel/helper-simple-access/7.18.6: + resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/types': 7.19.0 dev: true - /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/types': 7.19.0 dev: true - /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + /@babel/helper-string-parser/7.18.10: + resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - transitivePeerDependencies: - - supports-color dev: true - /@babel/plugin-transform-parameters/7.18.8_@babel+core@7.12.3: - resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + /@babel/helpers/7.19.0: + resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/template': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 + transitivePeerDependencies: + - supports-color dev: true - /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 dev: true - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/parser/7.12.3: + resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: - '@babel/core': 7.12.3 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 + '@babel/types': 7.19.0 dev: true - /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/parser/7.19.1: + resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: - '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.12.3 '@babel/types': 7.19.0 dev: true - /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - regenerator-transform: 0.15.0 dev: true - /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1874,9 +856,8 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1884,19 +865,17 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-spread/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 dev: true - /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1905,9 +884,8 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1915,9 +893,8 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1925,9 +902,8 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.12.3: - resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1935,152 +911,51 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/preset-env/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.1 '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-async-generator-functions': 7.19.1_@babel+core@7.12.3 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-object-rest-spread': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-import-assertions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 - '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoping': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-classes': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-destructuring': 7.18.13_@babel+core@7.12.3 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.12.3 - '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-amd': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-commonjs': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-systemjs': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-named-capturing-groups-regex': 7.19.1_@babel+core@7.12.3 - '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 - '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.12.3 - '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.12.3 - '@babel/preset-modules': 0.1.5_@babel+core@7.12.3 - '@babel/types': 7.19.0 - babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.12.3 - babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.12.3 - babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.12.3 - core-js-compat: 3.25.2 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color dev: true - /@babel/preset-flow/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.12.3 dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.12.3: - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.3: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 - '@babel/types': 7.19.0 - esutils: 2.0.3 dev: true - /@babel/preset-react/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3: + resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.12.3 - dev: true - - /@babel/preset-stage-0/7.8.3: - resolution: {integrity: sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ==} - dev: true - - /@babel/runtime/7.19.0: - resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.9 dev: true /@babel/template/7.18.10: @@ -2125,7 +1000,15 @@ packages: /@braintree/sanitize-url/6.0.0: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} - dev: false + + /@cnakazawa/watch/1.0.4: + resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} + engines: {node: '>=0.1.95'} + hasBin: true + dependencies: + exec-sh: 0.3.6 + minimist: 1.2.6 + dev: true /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -2340,10 +1223,10 @@ packages: resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} dev: true - /@docsearch/js/3.2.1: + /@docsearch/js/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} dependencies: - '@docsearch/react': 3.2.1 + '@docsearch/react': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y preact: 10.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -2352,7 +1235,7 @@ packages: - react-dom dev: true - /@docsearch/react/3.2.1: + /@docsearch/react/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -2367,7 +1250,7 @@ packages: optional: true dependencies: '@algolia/autocomplete-core': 1.7.1 - '@algolia/autocomplete-preset-algolia': 1.7.1_algoliasearch@4.14.2 + '@algolia/autocomplete-preset-algolia': 1.7.1_qs6lk5nhygj2o3hj4sf6xnr724 '@docsearch/css': 3.2.1 algoliasearch: 4.14.2 transitivePeerDependencies: @@ -2493,6 +1376,18 @@ packages: engines: {node: '>=8'} dev: true + /@jest/console/26.6.2: + resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + jest-message-util: 26.6.2 + jest-util: 26.6.2 + slash: 3.0.0 + dev: true + /@jest/console/29.1.0: resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2505,6 +1400,46 @@ packages: slash: 3.0.0 dev: true + /@jest/core/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/reporters': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-changed-files: 26.6.2 + jest-config: 26.6.3_ts-node@10.9.1 + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-resolve-dependencies: 26.6.3 + jest-runner: 26.6.3_ts-node@10.9.1 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + jest-watcher: 26.6.2 + micromatch: 4.0.5 + p-each-series: 2.2.0 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /@jest/core/29.1.1_ts-node@10.9.1: resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2547,6 +1482,16 @@ packages: - ts-node dev: true + /@jest/environment/26.6.2: + resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + dev: true + /@jest/environment/29.1.1: resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2574,6 +1519,18 @@ packages: - supports-color dev: true + /@jest/fake-timers/26.6.2: + resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@sinonjs/fake-timers': 6.0.1 + '@types/node': 18.8.1 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-util: 26.6.2 + dev: true + /@jest/fake-timers/29.1.1: resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2586,6 +1543,15 @@ packages: jest-util: 29.1.0 dev: true + /@jest/globals/26.6.2: + resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/types': 26.6.2 + expect: 26.6.2 + dev: true + /@jest/globals/29.1.1: resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2598,6 +1564,40 @@ packages: - supports-color dev: true + /@jest/reporters/26.6.2: + resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-haste-map: 26.6.2 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 7.1.2 + optionalDependencies: + node-notifier: 8.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/reporters/29.1.0: resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2643,6 +1643,15 @@ packages: '@sinclair/typebox': 0.24.43 dev: true + /@jest/source-map/26.6.2: + resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} + engines: {node: '>= 10.14.2'} + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.10 + source-map: 0.6.1 + dev: true + /@jest/source-map/29.0.0: resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2652,6 +1661,16 @@ packages: graceful-fs: 4.2.10 dev: true + /@jest/test-result/26.6.2: + resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/types': 26.6.2 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + /@jest/test-result/29.1.0: resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2662,6 +1681,23 @@ packages: collect-v8-coverage: 1.0.1 dev: true + /@jest/test-sequencer/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/test-result': 26.6.2 + graceful-fs: 4.2.10 + jest-haste-map: 26.6.2 + jest-runner: 26.6.3_ts-node@10.9.1 + jest-runtime: 26.6.3_ts-node@10.9.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /@jest/test-sequencer/29.1.0: resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2672,6 +1708,29 @@ packages: slash: 3.0.0 dev: true + /@jest/transform/26.6.2: + resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/core': 7.12.3 + '@jest/types': 26.6.2 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.8.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 26.6.2 + jest-regex-util: 26.0.0 + jest-util: 26.6.2 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/transform/29.1.0: resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2695,6 +1754,17 @@ packages: - supports-color dev: true + /@jest/types/26.6.2: + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.8.1 + '@types/yargs': 15.0.14 + chalk: 4.1.2 + dev: true + /@jest/types/29.1.0: resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2769,6 +1839,14 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -2798,6 +1876,12 @@ packages: type-detect: 4.0.8 dev: true + /@sinonjs/fake-timers/6.0.1: + resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} + dependencies: + '@sinonjs/commons': 1.8.3 + dev: true + /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: @@ -2892,6 +1976,12 @@ packages: resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true + /@types/concat-stream/1.6.1: + resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -3117,6 +2207,12 @@ packages: '@types/serve-static': 1.15.0 dev: true + /@types/form-data/0.0.33: + resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/geojson/7946.0.10: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true @@ -3191,6 +2287,10 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true + /@types/node/10.17.60: + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + dev: true + /@types/node/14.18.29: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true @@ -3206,6 +2306,10 @@ packages: /@types/node/18.8.1: resolution: {integrity: sha512-vuYaNuEIbOYLTLUAJh50ezEbvxrD43iby+lpUA2aa148Nh5kX/AVO/9m1Ahmbux2iU5uxJTNF9g2Y+31uml7RQ==} + /@types/node/8.10.66: + resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} + dev: true + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -3283,6 +2387,12 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true + /@types/yargs/15.0.14: + resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + /@types/yargs/17.0.13: resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} dependencies: @@ -3560,11 +2670,11 @@ packages: vue: 3.2.40 dev: true - /@vitest/coverage-c8/0.24.1_xzgakswda4jfhzd65tgzmbprsy: - resolution: {integrity: sha512-cOFHXRHB9WHtGgsHE4FX4Ef1c9Hon668RNJQOJvqSy1/1Y7zIYIBhFWmuFKLZRCMV4jGT5CRiuB9KtdNsOc3og==} + /@vitest/coverage-c8/0.24.3_ff3ihdoybm7ovley6q4itwsswa: + resolution: {integrity: sha512-tAmMyHxWYnAwGeJb7QgTuEX8aLasTg4X1/6INobXa/7wYGEJ28CACFO5iLn1HzFVPoLvhsS3luQjiflGjjSMRQ==} dependencies: c8: 7.12.0 - vitest: 0.24.1_xzgakswda4jfhzd65tgzmbprsy + vitest: 0.24.3_ff3ihdoybm7ovley6q4itwsswa transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3578,8 +2688,8 @@ packages: - terser dev: true - /@vitest/ui/0.24.1: - resolution: {integrity: sha512-7baeu1+XspO+eAOsygPNL1k8EQRpn7Mj8fhwgyzsTzoYAkqP62mOPO+sqa+TdVaE3241sbAniIzHD1mVMJp70A==} + /@vitest/ui/0.24.3: + resolution: {integrity: sha512-f5agYA/sdkiipq42TZayJoeUGjWx+opDjIVeNnb1SG2BNxqObFqh6GuJlzpGHerg4a2+ZSoVo4f4p2+dEyXPmg==} dependencies: sirv: 2.0.2 dev: true @@ -3738,6 +2848,53 @@ packages: p-iteration: 1.1.8 dev: true + /@yankeeinlondon/builder-api/0.4.1_wgjnmyfjddfvpl2h62oj2lktde: + resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} + peerDependencies: + fp-ts: ^2.12.1 + inferred-types: ^0.22.0 + markdown-it: ^13.0.1 + vite-plugin-md: '*' + dependencies: + '@yankeeinlondon/happy-wrapper': 2.6.0_ff3ihdoybm7ovley6q4itwsswa + fp-ts: 2.12.3 + inferred-types: 0.22.0 + markdown-it: 13.0.1 + vite-plugin-md: 0.20.4_ddevayggxncg4aofvrlbkut4ha + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /@yankeeinlondon/happy-wrapper/2.6.0_ff3ihdoybm7ovley6q4itwsswa: + resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} + peerDependencies: + happy-dom: ^6.0.4 + dependencies: + happy-dom: 6.0.4 + native-dash: 1.23.2_ff3ihdoybm7ovley6q4itwsswa + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /JSONSelect/0.4.0: resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} engines: {node: '>=0.4.7'} @@ -3963,6 +3120,15 @@ packages: engines: {node: '>=12'} dev: true + /anymatch/2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -4041,6 +3207,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -4116,6 +3286,25 @@ packages: - debug dev: true + /babel-jest/26.6.3_@babel+core@7.12.3: + resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/babel__core': 7.1.19 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 26.6.2_@babel+core@7.12.3 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-jest/29.1.0_@babel+core@7.12.3: resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4134,12 +3323,6 @@ packages: - supports-color dev: true - /babel-plugin-dynamic-import-node/2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - dependencies: - object.assign: 4.1.4 - dev: true - /babel-plugin-istanbul/6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -4153,9 +3336,9 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/29.0.2: - resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /babel-plugin-jest-hoist/26.6.2: + resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} + engines: {node: '>= 10.14.2'} dependencies: '@babel/template': 7.18.10 '@babel/types': 7.19.0 @@ -4163,40 +3346,14 @@ packages: '@types/babel__traverse': 7.18.2 dev: true - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.12.3: - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.12.3 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.12.3: - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - core-js-compat: 3.25.2 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.12.3: - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + /babel-plugin-jest-hoist/29.0.2: + resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.12.3 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.18.10 + '@babel/types': 7.19.0 + '@types/babel__core': 7.1.19 + '@types/babel__traverse': 7.18.2 dev: true /babel-preset-current-node-syntax/1.0.1_@babel+core@7.12.3: @@ -4219,6 +3376,17 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 dev: true + /babel-preset-jest/26.6.2_@babel+core@7.12.3: + resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.3 + babel-plugin-jest-hoist: 26.6.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 + dev: true + /babel-preset-jest/29.0.2_@babel+core@7.12.3: resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4356,6 +3524,28 @@ packages: fill-range: 7.0.1 dev: true + /brilliant-errors/0.6.0_ff3ihdoybm7ovley6q4itwsswa: + resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} + engines: {node: '>=12.0.0'} + dependencies: + callsites: 3.1.0 + common-types: 1.31.1 + inferred-types: 0.22.0 + vitest: 0.19.1_ff3ihdoybm7ovley6q4itwsswa + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true @@ -4366,17 +3556,6 @@ packages: resolve: 1.1.7 dev: true - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001409 - electron-to-chromium: 1.4.257 - node-releases: 2.0.6 - update-browserslist-db: 1.0.9_browserslist@4.21.4 - dev: true - /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -4508,8 +3687,11 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001409: - resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} + /capture-exit/2.0.0: + resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} + engines: {node: 6.* || 8.* || >= 10.*} + dependencies: + rsvp: 4.8.5 dev: true /caseless/0.12.0: @@ -4618,10 +3800,18 @@ packages: fsevents: 2.3.2 dev: true + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true + /cjs-module-lexer/0.6.0: + resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} + dev: true + /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -4729,10 +3919,6 @@ packages: engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true - /collapse-white-space/1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} - dev: true - /collect-v8-coverage/1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} dev: true @@ -4794,7 +3980,6 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -4811,6 +3996,10 @@ packages: engines: {node: '>=4.0.0'} dev: true + /common-types/1.31.1: + resolution: {integrity: sha512-eixAd22Gmek1dgsPgyqCSjzMAlp8rpSLkb44iEMfOzR9fwGFYEkH+AWOHmwSFxWmO8MvMND/m1jpZX0Wk4+yJA==} + dev: true + /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -5081,12 +4270,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat/3.25.2: - resolution: {integrity: sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==} - dependencies: - browserslist: 4.21.4 - dev: true - /core-util-is/1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true @@ -5177,10 +4360,18 @@ packages: source-map: 0.6.1 dev: true + /css.escape/1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true + /cssom/0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + dev: true + /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -5196,7 +4387,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0: + /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -5206,7 +4397,7 @@ packages: cypress: 10.8.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0 + jest-image-snapshot: 4.2.0_jest@26.6.3 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5311,12 +4502,10 @@ packages: engines: {node: '>=12'} dependencies: internmap: 2.0.3 - dev: false /d3-axis/3.0.0: resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} engines: {node: '>=12'} - dev: false /d3-brush/3.0.0: resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} @@ -5327,38 +4516,32 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 - dev: false /d3-chord/3.0.1: resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 - dev: false /d3-color/3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} - dev: false /d3-contour/4.0.0: resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-delaunay/6.0.2: resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} engines: {node: '>=12'} dependencies: delaunator: 5.0.0 - dev: false /d3-dispatch/3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} - dev: false /d3-drag/3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} @@ -5366,7 +4549,6 @@ packages: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 - dev: false /d3-dsv/3.0.1: resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} @@ -5376,19 +4558,16 @@ packages: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 - dev: false /d3-ease/3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} - dev: false /d3-fetch/3.0.1: resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} engines: {node: '>=12'} dependencies: d3-dsv: 3.0.1 - dev: false /d3-force/3.0.0: resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} @@ -5397,51 +4576,42 @@ packages: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 - dev: false /d3-format/3.1.0: resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} engines: {node: '>=12'} - dev: false /d3-geo/3.0.1: resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-hierarchy/3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} engines: {node: '>=12'} - dev: false /d3-interpolate/3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 - dev: false /d3-path/3.0.1: resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} engines: {node: '>=12'} - dev: false /d3-polygon/3.0.1: resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} engines: {node: '>=12'} - dev: false /d3-quadtree/3.0.1: resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} engines: {node: '>=12'} - dev: false /d3-random/3.0.1: resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} engines: {node: '>=12'} - dev: false /d3-scale-chromatic/3.0.0: resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} @@ -5449,7 +4619,6 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 - dev: false /d3-scale/4.0.2: resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} @@ -5460,38 +4629,32 @@ packages: d3-interpolate: 3.0.1 d3-time: 3.0.0 d3-time-format: 4.1.0 - dev: false /d3-selection/3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} - dev: false /d3-shape/3.1.0: resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 - dev: false /d3-time-format/4.1.0: resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} engines: {node: '>=12'} dependencies: d3-time: 3.0.0 - dev: false /d3-time/3.0.0: resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 - dev: false /d3-timer/3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} - dev: false /d3-transition/3.0.1_d3-selection@3.0.0: resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} @@ -5505,7 +4668,6 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 - dev: false /d3-zoom/3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} @@ -5516,7 +4678,6 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 - dev: false /d3/7.6.1: resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} @@ -5552,7 +4713,6 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1_d3-selection@3.0.0 d3-zoom: 3.0.0 - dev: false /dagre-d3/0.6.4: resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} @@ -5561,14 +4721,12 @@ packages: dagre: 0.8.5 graphlib: 2.1.8 lodash: 4.17.21 - dev: false /dagre/0.8.5: resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} dependencies: graphlib: 2.1.8 lodash: 4.17.21 - dev: false /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} @@ -5587,6 +4745,15 @@ packages: engines: {node: '>= 6'} dev: true + /data-urls/2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + dev: true + /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -5612,6 +4779,7 @@ packages: /de-indent/1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true + optional: true /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -5792,7 +4960,6 @@ packages: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: robust-predicates: 3.0.1 - dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -5819,12 +4986,6 @@ packages: engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true - /detab/2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - dependencies: - repeat-string: 1.6.1 - dev: true - /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -5845,6 +5006,11 @@ packages: minimist: 1.2.6 dev: true + /diff-sequences/26.6.2: + resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} + engines: {node: '>= 10.14.2'} + dev: true + /diff-sequences/29.0.0: resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5881,35 +5047,14 @@ packages: esutils: 2.0.3 dev: true - /documentation/13.2.0: - resolution: {integrity: sha512-c7lIXNZ9t3481c+OGpj4lWPhtdmQilg4E04wc6TXH1gYg2wWu+/f3c60Otg2HDRVnCQoXrozSWuUYNl7y7FJxw==} + /documentation/13.2.5: + resolution: {integrity: sha512-d1TrfrHXYZR63xrOzkYwwe297vkSwBoEhyyMBOi20T+7Ohe1aX1dW4nqXncQmdmE5MxluSaxxa3BW1dCvbF5AQ==} engines: {node: '>=10'} hasBin: true dependencies: '@babel/core': 7.12.3 '@babel/generator': 7.12.1 '@babel/parser': 7.12.3 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-decorators': 7.19.1_@babel+core@7.12.3 - '@babel/plugin-proposal-do-expressions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.12.3 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-function-bind': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-function-sent': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-pipeline-operator': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-throw-expressions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 - '@babel/preset-env': 7.19.1_@babel+core@7.12.3 - '@babel/preset-flow': 7.18.6_@babel+core@7.12.3 - '@babel/preset-react': 7.18.6_@babel+core@7.12.3 - '@babel/preset-stage-0': 7.8.3 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 ansi-html: 0.0.7 @@ -5928,6 +5073,7 @@ packages: ini: 1.3.8 js-yaml: 3.14.1 lodash: 4.17.21 + mdast-util-find-and-replace: 1.1.1 mdast-util-inject: 1.1.0 micromatch: 3.1.10 mime: 2.6.0 @@ -5935,23 +5081,26 @@ packages: parse-filepath: 1.0.2 pify: 5.0.0 read-pkg-up: 4.0.0 - remark: 9.0.0 - remark-html: 8.0.0 - remark-reference-links: 4.0.4 - remark-toc: 5.1.1 + remark: 13.0.0 + remark-gfm: 1.0.0 + remark-html: 13.0.2 + remark-reference-links: 5.0.0 + remark-toc: 7.2.0 resolve: 1.22.1 stream-array: 1.1.2 strip-json-comments: 2.0.1 tiny-lr: 1.1.1 - unist-builder: 1.0.4 - unist-util-visit: 1.4.1 + unist-builder: 2.0.3 + unist-util-visit: 2.0.3 vfile: 4.2.1 vfile-reporter: 6.0.2 vfile-sort: 2.2.2 vinyl: 2.2.1 vinyl-fs: 3.0.3 - vue-template-compiler: 2.7.10 yargs: 15.4.1 + optionalDependencies: + '@vue/compiler-sfc': 3.2.40 + vue-template-compiler: 2.7.10 transitivePeerDependencies: - supports-color dev: true @@ -5968,6 +5117,13 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true + /domexception/2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + dependencies: + webidl-conversions: 5.0.0 + dev: true + /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -5984,7 +5140,6 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} - dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -6047,15 +5202,16 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /electron-to-chromium/1.4.257: - resolution: {integrity: sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A==} - dev: true - /emittery/0.10.2: resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} engines: {node: '>=12'} dev: true + /emittery/0.7.2: + resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} + engines: {node: '>=10'} + dev: true + /emoji-regex/6.1.1: resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} dev: true @@ -6642,7 +5798,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: + /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6658,6 +5814,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha eslint: 8.23.1 + jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -6985,6 +6142,10 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true + /exec-sh/0.3.6: + resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} + dev: true + /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -7070,6 +6231,18 @@ packages: - supports-color dev: true + /expect/26.6.2: + resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + ansi-styles: 4.3.0 + jest-get-type: 26.3.0 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + dev: true + /expect/29.1.0: resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7369,6 +6542,15 @@ packages: mime-types: 2.1.35 dev: true + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7383,6 +6565,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /fp-ts/2.12.3: + resolution: {integrity: sha512-8m0XvW8kZbfnJOA4NvSVXu95mLbPf4LQGwQyqVukIYS4KzSNJiyKSmuZUmbVHteUi6MGkAJGPb0goPZqI+Tsqg==} + dev: true + /fragment-cache/0.2.1: resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} @@ -7505,6 +6691,11 @@ packages: yargs: 16.2.0 dev: true + /get-port/3.2.0: + resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} + engines: {node: '>=4'} + dev: true + /get-port/5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} @@ -7757,7 +6948,21 @@ packages: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 - dev: false + + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + + /growly/1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + dev: true + optional: true /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} @@ -7772,6 +6977,20 @@ packages: uglify-js: 3.17.1 dev: true + /happy-dom/6.0.4: + resolution: {integrity: sha512-b+ID23Ms0BY08UNLymsOMG7EI2jSlwEt4cbJs938GZfeNAg+fqgkSO3TokQMgSOFoHznpjWmpVjBUL5boJ9PWw==} + dependencies: + css.escape: 1.5.1 + he: 1.2.0 + node-fetch: 2.6.7 + sync-request: 6.1.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + transitivePeerDependencies: + - encoding + dev: true + /har-schema/2.0.0: resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} @@ -7865,24 +7084,24 @@ packages: resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} dev: true - /hast-util-sanitize/1.3.1: - resolution: {integrity: sha512-AIeKHuHx0Wk45nSkGVa2/ujQYTksnDl8gmmKo/mwQi7ag7IBZ8cM3nJ2G86SajbjGP/HRpud6kMkPtcM2i0Tlw==} + /hast-util-sanitize/3.0.2: + resolution: {integrity: sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA==} dependencies: xtend: 4.0.2 dev: true - /hast-util-to-html/4.0.1: - resolution: {integrity: sha512-2emzwyf0xEsc4TBIPmDJmBttIw8R4SXAJiJZoiRR/s47ODYWgOqNoDbf2SJAbMbfNdFWMiCSOrI3OVnX6Qq2Mg==} + /hast-util-to-html/7.1.3: + resolution: {integrity: sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==} dependencies: ccount: 1.1.0 comma-separated-tokens: 1.0.8 hast-util-is-element: 1.1.0 hast-util-whitespace: 1.0.4 html-void-elements: 1.0.5 - property-information: 4.2.0 + property-information: 5.6.0 space-separated-tokens: 1.1.5 - stringify-entities: 1.3.2 - unist-util-is: 2.1.3 + stringify-entities: 3.1.0 + unist-util-is: 4.1.0 xtend: 4.0.2 dev: true @@ -7914,6 +7133,13 @@ packages: lru-cache: 6.0.0 dev: true + /html-encoding-sniffer/2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + dependencies: + whatwg-encoding: 1.0.5 + dev: true + /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -7938,6 +7164,16 @@ packages: entities: 4.4.0 dev: true + /http-basic/8.1.3: + resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} + engines: {node: '>=6.0.0'} + dependencies: + caseless: 0.12.0 + concat-stream: 1.6.2 + http-response-object: 3.0.2 + parse-cache-control: 1.0.1 + dev: true + /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -7979,6 +7215,12 @@ packages: - supports-color dev: true + /http-response-object/3.0.2: + resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} + dependencies: + '@types/node': 10.17.60 + dev: true + /http-signature/1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -8098,6 +7340,12 @@ packages: engines: {node: '>=8'} dev: true + /inferred-types/0.22.0: + resolution: {integrity: sha512-7JF/huiuS1ANuQisfRigytz4IdYbmQVXOW+Jt6IL4k3TQxsCxAz72rWccBKTomnmGzBRcd3ki8gyrESYY/2bYw==} + dependencies: + common-types: 1.31.1 + dev: true + /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -8121,7 +7369,6 @@ packages: /internmap/2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - dev: false /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} @@ -8162,11 +7409,6 @@ packages: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} dev: true - /is-alphanumeric/1.0.0: - resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==} - engines: {node: '>=0.10.0'} - dev: true - /is-alphanumerical/1.0.4: resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} dependencies: @@ -8194,6 +7436,13 @@ packages: engines: {node: '>=4'} dev: true + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -8243,6 +7492,13 @@ packages: kind-of: 6.0.3 dev: true + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + optional: true + /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -8333,6 +7589,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj/2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -8409,18 +7670,18 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-whitespace-character/1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - dev: true - /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} dev: true - /is-word-character/1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 dev: true + optional: true /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -8455,6 +7716,18 @@ packages: engines: {node: '>=8'} dev: true + /istanbul-lib-instrument/4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.12.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-instrument/5.2.0: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} @@ -8504,6 +7777,15 @@ packages: plist: 3.0.6 dev: true + /jest-changed-files/26.6.2: + resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + execa: 4.1.0 + throat: 5.0.0 + dev: true + /jest-changed-files/29.0.0: resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8539,6 +7821,32 @@ packages: - supports-color dev: true + /jest-cli/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/core': 26.6.3_ts-node@10.9.1 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + is-ci: 2.0.0 + jest-config: 26.6.3_ts-node@10.9.1 + jest-util: 26.6.2 + jest-validate: 26.6.2 + prompts: 2.4.2 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-cli/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8567,6 +7875,41 @@ packages: - ts-node dev: true + /jest-config/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} + engines: {node: '>= 10.14.2'} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + '@babel/core': 7.12.3 + '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 + '@jest/types': 26.6.2 + babel-jest: 26.6.3_@babel+core@7.12.3 + chalk: 4.1.2 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-environment-jsdom: 26.6.2 + jest-environment-node: 26.6.2 + jest-get-type: 26.3.0 + jest-jasmine2: 26.6.3_ts-node@10.9.1 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + micromatch: 4.0.5 + pretty-format: 26.6.2 + ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + /jest-config/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8607,6 +7950,16 @@ packages: - supports-color dev: true + /jest-diff/26.6.2: + resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.2 + diff-sequences: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-diff/29.1.0: resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8617,6 +7970,13 @@ packages: pretty-format: 29.1.0 dev: true + /jest-docblock/26.0.0: + resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} + engines: {node: '>= 10.14.2'} + dependencies: + detect-newline: 3.1.0 + dev: true + /jest-docblock/29.0.0: resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8624,6 +7984,17 @@ packages: detect-newline: 3.1.0 dev: true + /jest-each/26.6.2: + resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + jest-get-type: 26.3.0 + jest-util: 26.6.2 + pretty-format: 26.6.2 + dev: true + /jest-each/29.1.0: resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8635,6 +8006,36 @@ packages: pretty-format: 29.1.0 dev: true + /jest-environment-jsdom/26.6.2: + resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node/26.6.2: + resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + dev: true + /jest-environment-node/29.1.1: resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8647,11 +8048,39 @@ packages: jest-util: 29.1.0 dev: true + /jest-get-type/26.3.0: + resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} + engines: {node: '>= 10.14.2'} + dev: true + /jest-get-type/29.0.0: resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-haste-map/26.6.2: + resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.8.1 + anymatch: 3.1.2 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 26.0.0 + jest-serializer: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + micromatch: 4.0.5 + sane: 4.1.0 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + transitivePeerDependencies: + - supports-color + dev: true + /jest-haste-map/29.1.0: resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8671,7 +8100,7 @@ packages: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0: + /jest-image-snapshot/4.2.0_jest@26.6.3: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8680,6 +8109,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 + jest: 26.6.3_ts-node@10.9.1 lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8706,6 +8136,44 @@ packages: ssim.js: 3.5.0 dev: true + /jest-jasmine2/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/traverse': 7.19.1 + '@jest/environment': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + co: 4.6.0 + expect: 26.6.2 + is-generator-fn: 2.1.0 + jest-each: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + pretty-format: 26.6.2 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + + /jest-leak-detector/26.6.2: + resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} + engines: {node: '>= 10.14.2'} + dependencies: + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-leak-detector/29.1.0: resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8714,6 +8182,16 @@ packages: pretty-format: 29.1.0 dev: true + /jest-matcher-utils/26.6.2: + resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.2 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + /jest-matcher-utils/29.1.0: resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8724,6 +8202,21 @@ packages: pretty-format: 29.1.0 dev: true + /jest-message-util/26.6.2: + resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 26.6.2 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 26.6.2 + slash: 3.0.0 + stack-utils: 2.0.5 + dev: true + /jest-message-util/29.1.0: resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8739,6 +8232,14 @@ packages: stack-utils: 2.0.5 dev: true + /jest-mock/26.6.2: + resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + dev: true + /jest-mock/29.1.1: resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8748,6 +8249,18 @@ packages: jest-util: 29.1.0 dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 26.6.2 + dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} @@ -8760,11 +8273,27 @@ packages: jest-resolve: 29.1.0 dev: true + /jest-regex-util/26.0.0: + resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} + engines: {node: '>= 10.14.2'} + dev: true + /jest-regex-util/29.0.0: resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-resolve-dependencies/26.6.3: + resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + jest-regex-util: 26.0.0 + jest-snapshot: 26.6.2 + transitivePeerDependencies: + - supports-color + dev: true + /jest-resolve-dependencies/29.1.1: resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8775,6 +8304,20 @@ packages: - supports-color dev: true + /jest-resolve/26.6.2: + resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 + jest-util: 26.6.2 + read-pkg-up: 7.0.1 + resolve: 1.22.1 + slash: 3.0.0 + dev: true + /jest-resolve/29.1.0: resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8790,6 +8333,38 @@ packages: slash: 3.0.0 dev: true + /jest-runner/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + emittery: 0.7.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-config: 26.6.3_ts-node@10.9.1 + jest-docblock: 26.0.0 + jest-haste-map: 26.6.2 + jest-leak-detector: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + jest-runtime: 26.6.3_ts-node@10.9.1 + jest-util: 26.6.2 + jest-worker: 26.6.2 + source-map-support: 0.5.13 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-runner/29.1.1: resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8819,6 +8394,46 @@ packages: - supports-color dev: true + /jest-runtime/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/globals': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/yargs': 15.0.14 + chalk: 4.1.2 + cjs-module-lexer: 0.6.0 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-config: 26.6.3_ts-node@10.9.1 + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + slash: 3.0.0 + strip-bom: 4.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest-runtime/29.1.1: resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8849,6 +8464,38 @@ packages: - supports-color dev: true + /jest-serializer/26.6.2: + resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/node': 18.8.1 + graceful-fs: 4.2.10 + dev: true + + /jest-snapshot/26.6.2: + resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} + engines: {node: '>= 10.14.2'} + dependencies: + '@babel/types': 7.19.0 + '@jest/types': 26.6.2 + '@types/babel__traverse': 7.18.2 + '@types/prettier': 2.7.1 + chalk: 4.1.2 + expect: 26.6.2 + graceful-fs: 4.2.10 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + jest-haste-map: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + natural-compare: 1.4.0 + pretty-format: 26.6.2 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color + dev: true + /jest-snapshot/29.1.0: resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8881,6 +8528,18 @@ packages: - supports-color dev: true + /jest-util/26.6.2: + resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + is-ci: 2.0.0 + micromatch: 4.0.5 + dev: true + /jest-util/29.1.0: resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8893,6 +8552,18 @@ packages: picomatch: 2.3.1 dev: true + /jest-validate/26.6.2: + resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/types': 26.6.2 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 26.3.0 + leven: 3.1.0 + pretty-format: 26.6.2 + dev: true + /jest-validate/29.1.0: resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8905,6 +8576,19 @@ packages: pretty-format: 29.1.0 dev: true + /jest-watcher/26.6.2: + resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 18.8.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest-util: 26.6.2 + string-length: 4.0.2 + dev: true + /jest-watcher/29.1.0: resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8919,6 +8603,15 @@ packages: string-length: 4.0.2 dev: true + /jest-worker/26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.8.1 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + /jest-worker/29.1.0: resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8928,6 +8621,22 @@ packages: supports-color: 8.1.1 dev: true + /jest/26.6.3_ts-node@10.9.1: + resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} + engines: {node: '>= 10.14.2'} + hasBin: true + dependencies: + '@jest/core': 26.6.3_ts-node@10.9.1 + import-local: 3.1.0 + jest-cli: 26.6.3_ts-node@10.9.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + /jest/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9022,6 +8731,48 @@ packages: engines: {node: '>=12.0.0'} dev: true + /jsdom/16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.4.1 + domexception: 2.0.1 + escodegen: 2.0.0 + form-data: 3.0.1 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.4.6 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsdom/20.0.0: resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} engines: {node: '>=14'} @@ -9105,11 +8856,6 @@ packages: - utf-8-validate dev: true - /jsesc/0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -9214,7 +8960,6 @@ packages: /khroma/2.0.0: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} - dev: false /kind-of/3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -9447,10 +9192,6 @@ packages: p-locate: 5.0.0 dev: true - /lodash.debounce/4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true - /lodash.ismatch/4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true @@ -9579,10 +9320,6 @@ packages: object-visit: 1.0.1 dev: true - /markdown-escapes/1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - dev: true - /markdown-it/13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} hasBin: true @@ -9594,20 +9331,24 @@ packages: uc.micro: 1.0.6 dev: true - /markdown-table/1.1.3: - resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} + /markdown-table/2.0.0: + resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} + dependencies: + repeat-string: 1.6.1 dev: true - /mdast-util-compact/1.0.4: - resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==} + /mdast-util-definitions/4.0.0: + resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} dependencies: - unist-util-visit: 1.4.1 + unist-util-visit: 2.0.3 dev: true - /mdast-util-definitions/1.2.5: - resolution: {integrity: sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==} + /mdast-util-find-and-replace/1.1.1: + resolution: {integrity: sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==} dependencies: - unist-util-visit: 1.4.1 + escape-string-regexp: 4.0.0 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 dev: true /mdast-util-from-markdown/0.8.5: @@ -9641,26 +9382,75 @@ packages: - supports-color dev: true + /mdast-util-gfm-autolink-literal/0.1.3: + resolution: {integrity: sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==} + dependencies: + ccount: 1.1.0 + mdast-util-find-and-replace: 1.1.1 + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-strikethrough/0.2.3: + resolution: {integrity: sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==} + dependencies: + mdast-util-to-markdown: 0.6.5 + dev: true + + /mdast-util-gfm-table/0.1.6: + resolution: {integrity: sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==} + dependencies: + markdown-table: 2.0.0 + mdast-util-to-markdown: 0.6.5 + dev: true + + /mdast-util-gfm-task-list-item/0.1.6: + resolution: {integrity: sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==} + dependencies: + mdast-util-to-markdown: 0.6.5 + dev: true + + /mdast-util-gfm/0.1.2: + resolution: {integrity: sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==} + dependencies: + mdast-util-gfm-autolink-literal: 0.1.3 + mdast-util-gfm-strikethrough: 0.2.3 + mdast-util-gfm-table: 0.1.6 + mdast-util-gfm-task-list-item: 0.1.6 + mdast-util-to-markdown: 0.6.5 + transitivePeerDependencies: + - supports-color + dev: true + /mdast-util-inject/1.1.0: resolution: {integrity: sha512-CcJ0mHa36QYumDKiZ2OIR+ClhfOM7zIzN+Wfy8tRZ1hpH9DKLCS+Mh4DyK5bCxzE9uxMWcbIpeNFWsg1zrj/2g==} dependencies: mdast-util-to-string: 1.1.0 dev: true - /mdast-util-to-hast/3.0.4: - resolution: {integrity: sha512-/eIbly2YmyVgpJNo+bFLLMCI1XgolO/Ffowhf+pHDq3X4/V6FntC9sGQCDLM147eTS+uSXv5dRzJyFn+o0tazA==} + /mdast-util-to-hast/10.2.0: + resolution: {integrity: sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==} dependencies: - collapse-white-space: 1.0.6 - detab: 2.0.4 - mdast-util-definitions: 1.2.5 + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + mdast-util-definitions: 4.0.0 mdurl: 1.0.1 - trim: 0.0.1 - trim-lines: 1.1.3 - unist-builder: 1.0.4 + unist-builder: 2.0.3 unist-util-generated: 1.1.6 unist-util-position: 3.1.0 - unist-util-visit: 1.4.1 - xtend: 4.0.2 + unist-util-visit: 2.0.3 + dev: true + + /mdast-util-to-markdown/0.6.5: + resolution: {integrity: sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==} + dependencies: + '@types/unist': 2.0.6 + longest-streak: 2.0.4 + mdast-util-to-string: 2.0.0 + parse-entities: 2.0.0 + repeat-string: 1.6.1 + zwitch: 1.0.5 dev: true /mdast-util-to-markdown/1.3.0: @@ -9687,13 +9477,16 @@ packages: resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} dev: true - /mdast-util-toc/3.1.0: - resolution: {integrity: sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==} + /mdast-util-toc/5.1.0: + resolution: {integrity: sha512-csimbRIVkiqc+PpFeKDGQ/Ck2N4f9FYH3zzBMMJzcxoKL8m+cM0n94xXm0I9eaxHnKdY9n145SGTdyJC7i273g==} dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + extend: 3.0.2 github-slugger: 1.4.0 - mdast-util-to-string: 1.1.0 - unist-util-is: 2.1.3 - unist-util-visit: 1.4.1 + mdast-util-to-string: 2.0.0 + unist-util-is: 4.1.0 + unist-util-visit: 2.0.3 dev: true /mdn-data/2.0.6: @@ -9739,6 +9532,20 @@ packages: engines: {node: '>= 8'} dev: true + /mermaid/9.1.7: + resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + dagre: 0.8.5 + dagre-d3: 0.6.4 + dompurify: 2.4.0 + graphlib: 2.1.8 + khroma: 2.0.0 + moment-mini: 2.24.0 + stylis: 4.1.2 + dev: true + /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -9765,6 +9572,55 @@ packages: uvu: 0.5.6 dev: true + /micromark-extension-gfm-autolink-literal/0.5.7: + resolution: {integrity: sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm-strikethrough/0.6.5: + resolution: {integrity: sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm-table/0.4.3: + resolution: {integrity: sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm-tagfilter/0.3.0: + resolution: {integrity: sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==} + dev: true + + /micromark-extension-gfm-task-list-item/0.3.3: + resolution: {integrity: sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==} + dependencies: + micromark: 2.11.4 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-extension-gfm/0.3.3: + resolution: {integrity: sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==} + dependencies: + micromark: 2.11.4 + micromark-extension-gfm-autolink-literal: 0.5.7 + micromark-extension-gfm-strikethrough: 0.6.5 + micromark-extension-gfm-table: 0.4.3 + micromark-extension-gfm-tagfilter: 0.3.0 + micromark-extension-gfm-task-list-item: 0.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /micromark-factory-destination/1.0.0: resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} dependencies: @@ -10071,6 +9927,10 @@ packages: - supports-color dev: true + /moment-mini/2.24.0: + resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==} + dev: true + /moment-mini/2.29.4: resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} dev: false @@ -10126,6 +9986,25 @@ packages: - supports-color dev: true + /native-dash/1.23.2_ff3ihdoybm7ovley6q4itwsswa: + resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} + dependencies: + brilliant-errors: 0.6.0_ff3ihdoybm7ovley6q4itwsswa + inferred-types: 0.22.0 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10164,9 +10043,18 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-releases/2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + /node-notifier/8.0.2: + resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} + requiresBuild: true + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.3.7 + shellwords: 0.1.1 + uuid: 8.3.2 + which: 2.0.2 dev: true + optional: true /nomnom/1.5.2: resolution: {integrity: sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==} @@ -10365,6 +10253,11 @@ packages: engines: {node: '>=8'} dev: true + /p-each-series/2.2.0: + resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} + engines: {node: '>=8'} + dev: true + /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -10478,15 +10371,8 @@ packages: callsites: 3.1.0 dev: true - /parse-entities/1.2.2: - resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 + /parse-cache-control/1.0.1: + resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} dev: true /parse-entities/2.0.0: @@ -10794,6 +10680,16 @@ packages: engines: {node: '>=6'} dev: true + /pretty-format/26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 17.0.2 + dev: true + /pretty-format/29.1.0: resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10811,6 +10707,12 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true + /promise/8.2.0: + resolution: {integrity: sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==} + dependencies: + asap: 2.0.6 + dev: true + /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -10819,8 +10721,8 @@ packages: sisteransi: 1.0.5 dev: true - /property-information/4.2.0: - resolution: {integrity: sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==} + /property-information/5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} dependencies: xtend: 4.0.2 dev: true @@ -10979,6 +10881,10 @@ packages: unpipe: 1.0.0 dev: true + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -11089,31 +10995,10 @@ packages: /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - - /regenerate-unicode-properties/10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: true - - /regenerate/1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: true - - /regenerator-runtime/0.13.9: - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - dev: true - - /regenerator-transform/0.15.0: - resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} + engines: {node: '>=8'} dependencies: - '@babel/runtime': 7.19.0 + indent-string: 4.0.0 + strip-indent: 3.0.0 dev: true /regex-not/1.0.2: @@ -11129,36 +11014,21 @@ packages: engines: {node: '>=8'} dev: true - /regexpu-core/5.2.1: - resolution: {integrity: sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.0 - regjsgen: 0.7.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.0.0 - dev: true - - /regjsgen/0.7.1: - resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} - dev: true - - /regjsparser/0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + /remark-gfm/1.0.0: + resolution: {integrity: sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==} dependencies: - jsesc: 0.5.0 + mdast-util-gfm: 0.1.2 + micromark-extension-gfm: 0.3.3 + transitivePeerDependencies: + - supports-color dev: true - /remark-html/8.0.0: - resolution: {integrity: sha512-3V2391GL3hxKhrkzYOyfPpxJ6taIKLCfuLVqumeWQOk3H9nTtSQ8St8kMYkBVIEAquXN1chT83qJ/2lAW+dpEg==} + /remark-html/13.0.2: + resolution: {integrity: sha512-LhSRQ+3RKdBqB/RGesFWkNNfkGqprDUCwjq54SylfFeNyZby5kqOG8Dn/vYsRoM8htab6EWxFXCY6XIZvMoRiQ==} dependencies: - hast-util-sanitize: 1.3.1 - hast-util-to-html: 4.0.1 - mdast-util-to-hast: 3.0.4 - xtend: 4.0.2 + hast-util-sanitize: 3.0.2 + hast-util-to-html: 7.1.3 + mdast-util-to-hast: 10.2.0 dev: true /remark-parse/10.0.1: @@ -11171,38 +11041,18 @@ packages: - supports-color dev: true - /remark-parse/5.0.0: - resolution: {integrity: sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==} - dependencies: - collapse-white-space: 1.0.6 - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - is-word-character: 1.0.4 - markdown-escapes: 1.0.4 - parse-entities: 1.2.2 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - trim: 0.0.1 - trim-trailing-lines: 1.1.4 - unherit: 1.1.3 - unist-util-remove-position: 1.1.4 - vfile-location: 2.0.6 - xtend: 4.0.2 - dev: true - - /remark-reference-links/4.0.4: - resolution: {integrity: sha512-+2X8hwSQqxG4tvjYZNrTcEC+bXp8shQvwRGG6J/rnFTvBoU4G0BBviZoqKGZizLh/DG+0gSYhiDDWCqyxXW1iQ==} + /remark-parse/9.0.0: + resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} dependencies: - unist-util-visit: 1.4.1 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color dev: true - /remark-slug/5.1.2: - resolution: {integrity: sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A==} + /remark-reference-links/5.0.0: + resolution: {integrity: sha512-oSIo6lfDyG/1yYl2jPZNXmD9dgyPxp07mSd7snJagVMsDU6NRlD8i54MwHWUgMoOHTs8lIKPkwaUok/tbr5syQ==} dependencies: - github-slugger: 1.2.0 - mdast-util-to-string: 1.1.0 - unist-util-visit: 1.4.1 + unist-util-visit: 2.0.3 dev: true /remark-stringify/10.0.2: @@ -11213,30 +11063,27 @@ packages: unified: 10.1.2 dev: true - /remark-stringify/5.0.0: - resolution: {integrity: sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==} + /remark-stringify/9.0.1: + resolution: {integrity: sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==} dependencies: - ccount: 1.1.0 - is-alphanumeric: 1.0.0 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - longest-streak: 2.0.4 - markdown-escapes: 1.0.4 - markdown-table: 1.1.3 - mdast-util-compact: 1.0.4 - parse-entities: 1.2.2 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - stringify-entities: 1.3.2 - unherit: 1.1.3 - xtend: 4.0.2 + mdast-util-to-markdown: 0.6.5 + dev: true + + /remark-toc/7.2.0: + resolution: {integrity: sha512-ppHepvpbg7j5kPFmU5rzDC4k2GTcPDvWcxXyr/7BZzO1cBSPk0stKtEJdsgAyw2WHKPGxadcHIZRjb2/sHxjkg==} + dependencies: + '@types/unist': 2.0.6 + mdast-util-toc: 5.1.0 dev: true - /remark-toc/5.1.1: - resolution: {integrity: sha512-vCPW4YOsm2CfyuScdktM9KDnJXVHJsd/ZeRtst+dnBU3B3KKvt8bc+bs5syJjyptAHfqo7H+5Uhz+2blWBfwow==} + /remark/13.0.0: + resolution: {integrity: sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==} dependencies: - mdast-util-toc: 3.1.0 - remark-slug: 5.1.2 + remark-parse: 9.0.0 + remark-stringify: 9.0.1 + unified: 9.2.2 + transitivePeerDependencies: + - supports-color dev: true /remark/14.0.2: @@ -11250,14 +11097,6 @@ packages: - supports-color dev: true - /remark/9.0.0: - resolution: {integrity: sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==} - dependencies: - remark-parse: 5.0.0 - remark-stringify: 5.0.0 - unified: 6.2.0 - dev: true - /remove-bom-buffer/3.0.0: resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} engines: {node: '>=0.10.0'} @@ -11289,11 +11128,6 @@ packages: engines: {node: '>=0.10'} dev: true - /replace-ext/1.0.0: - resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} - engines: {node: '>= 0.10'} - dev: true - /replace-ext/1.0.1: resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} engines: {node: '>= 0.10'} @@ -11452,7 +11286,6 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} - dev: false /rollup/2.78.1: resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} @@ -11468,7 +11301,11 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: false + + /rsvp/4.8.5: + resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} + engines: {node: 6.* || >= 7.*} + dev: true /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -11478,7 +11315,6 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - dev: false /rxjs/7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} @@ -11514,6 +11350,25 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + /sane/4.1.0: + resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} + engines: {node: 6.* || 8.* || >= 10.*} + deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added + hasBin: true + dependencies: + '@cnakazawa/watch': 1.0.4 + anymatch: 2.0.0 + capture-exit: 2.0.0 + exec-sh: 0.3.6 + execa: 1.0.0 + fb-watchman: 2.0.2 + micromatch: 3.1.10 + minimist: 1.2.6 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + dev: true + /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -11528,6 +11383,14 @@ packages: xmlchars: 2.2.0 dev: true + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -11625,6 +11488,11 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true + /shellwords/0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true + optional: true + /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -11797,6 +11665,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true @@ -11929,10 +11802,6 @@ packages: - supports-color dev: true - /state-toggle/1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - dev: true - /static-extend/0.1.2: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} @@ -12026,13 +11895,12 @@ packages: safe-buffer: 5.2.1 dev: true - /stringify-entities/1.3.2: - resolution: {integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==} + /stringify-entities/3.1.0: + resolution: {integrity: sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==} dependencies: character-entities-html4: 1.1.4 character-entities-legacy: 1.1.4 - is-alphanumerical: 1.0.4 - is-hexadecimal: 1.0.4 + xtend: 4.0.2 dev: true /stringify-package/1.0.1: @@ -12060,6 +11928,11 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -12110,7 +11983,6 @@ packages: /stylis/4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} - dev: false /subarg/1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} @@ -12168,6 +12040,21 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /sync-request/6.1.0: + resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} + engines: {node: '>=8.0.0'} + dependencies: + http-response-object: 3.0.2 + sync-rpc: 1.3.6 + then-request: 6.0.2 + dev: true + + /sync-rpc/1.3.6: + resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} + dependencies: + get-port: 3.2.0 + dev: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -12202,6 +12089,23 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /then-request/6.0.2: + resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} + engines: {node: '>=6.0.0'} + dependencies: + '@types/concat-stream': 1.6.1 + '@types/form-data': 0.0.33 + '@types/node': 8.10.66 + '@types/qs': 6.9.7 + caseless: 0.12.0 + concat-stream: 1.6.2 + form-data: 2.3.3 + http-basic: 8.1.3 + http-response-object: 3.0.2 + promise: 8.2.0 + qs: 6.11.0 + dev: true + /throat/5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true @@ -12251,6 +12155,11 @@ packages: resolution: {integrity: sha512-zs1gMVBwyyG2QbVchYIbnabRhMOCGvrwZz/q+SV+LIMa9q5YDQZi2kkI6ZRqV2Bz7ba1uvrc7ieUoE4KWnGeKg==} dev: true + /tinypool/0.2.4: + resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} + engines: {node: '>=14.0.0'} + dev: true + /tinypool/0.3.0: resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} @@ -12356,6 +12265,13 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true + /tr46/2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + dependencies: + punycode: 2.1.1 + dev: true + /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -12368,23 +12284,11 @@ packages: hasBin: true dev: true - /trim-lines/1.1.3: - resolution: {integrity: sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==} - dev: true - /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true - /trim-trailing-lines/1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} - dev: true - - /trim/0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - dev: true - /trough/1.0.5: resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} dev: true @@ -12455,7 +12359,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_typescript@4.8.3: + /ts-node/10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12474,6 +12378,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 + '@types/node': 18.8.1 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -12580,6 +12485,12 @@ packages: mime-types: 2.1.35 dev: true + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + /typedarray/0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true @@ -12617,36 +12528,6 @@ packages: resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==} dev: true - /unherit/1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} - dependencies: - inherits: 2.0.4 - xtend: 4.0.2 - dev: true - - /unicode-canonical-property-names-ecmascript/2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true - - /unicode-match-property-ecmascript/2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: true - - /unicode-match-property-value-ecmascript/2.0.0: - resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} - engines: {node: '>=4'} - dev: true - - /unicode-property-aliases-ecmascript/2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: true - /unified/10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: @@ -12659,16 +12540,16 @@ packages: vfile: 5.3.5 dev: true - /unified/6.2.0: - resolution: {integrity: sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==} + /unified/9.2.2: + resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} dependencies: '@types/unist': 2.0.6 bail: 1.0.5 extend: 3.0.2 - is-plain-obj: 1.1.0 + is-buffer: 2.0.5 + is-plain-obj: 2.1.0 trough: 1.0.5 - vfile: 2.3.0 - x-is-string: 0.1.0 + vfile: 4.2.1 dev: true /union-value/1.0.1: @@ -12688,10 +12569,8 @@ packages: through2-filter: 3.0.0 dev: true - /unist-builder/1.0.4: - resolution: {integrity: sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==} - dependencies: - object-assign: 4.1.1 + /unist-builder/2.0.3: + resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} dev: true /unist-util-flatmap/1.0.0: @@ -12702,12 +12581,8 @@ packages: resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} dev: true - /unist-util-is/2.1.3: - resolution: {integrity: sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==} - dev: true - - /unist-util-is/3.0.0: - resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} + /unist-util-is/4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} dev: true /unist-util-is/5.1.1: @@ -12718,16 +12593,6 @@ packages: resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} dev: true - /unist-util-remove-position/1.1.4: - resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} - dependencies: - unist-util-visit: 1.4.1 - dev: true - - /unist-util-stringify-position/1.1.2: - resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} - dev: true - /unist-util-stringify-position/2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: @@ -12740,10 +12605,11 @@ packages: '@types/unist': 2.0.6 dev: true - /unist-util-visit-parents/2.1.2: - resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} + /unist-util-visit-parents/3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} dependencies: - unist-util-is: 3.0.0 + '@types/unist': 2.0.6 + unist-util-is: 4.1.0 dev: true /unist-util-visit-parents/5.1.1: @@ -12753,10 +12619,12 @@ packages: unist-util-is: 5.1.1 dev: true - /unist-util-visit/1.4.1: - resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} + /unist-util-visit/2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} dependencies: - unist-util-visit-parents: 2.1.2 + '@types/unist': 2.0.6 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 dev: true /unist-util-visit/4.1.1: @@ -12800,17 +12668,6 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db/1.0.9_browserslist@4.21.4: - resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -12874,6 +12731,15 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /v8-to-istanbul/7.1.2: + resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} + engines: {node: '>=10.10.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + source-map: 0.7.4 + dev: true + /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -12909,16 +12775,6 @@ packages: extsprintf: 1.3.0 dev: true - /vfile-location/2.0.6: - resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==} - dev: true - - /vfile-message/1.1.1: - resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} - dependencies: - unist-util-stringify-position: 1.1.2 - dev: true - /vfile-message/2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} dependencies: @@ -12952,15 +12808,6 @@ packages: resolution: {integrity: sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==} dev: true - /vfile/2.3.0: - resolution: {integrity: sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==} - dependencies: - is-buffer: 1.1.6 - replace-ext: 1.0.0 - unist-util-stringify-position: 1.1.2 - vfile-message: 1.1.1 - dev: true - /vfile/4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} dependencies: @@ -13027,6 +12874,35 @@ packages: replace-ext: 1.0.1 dev: true + /vite-plugin-md/0.20.4_ddevayggxncg4aofvrlbkut4ha: + resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} + peerDependencies: + '@rollup/pluginutils': ^4.2.1 + rollup: ^2.77.0 + dependencies: + '@rollup/pluginutils': 4.2.1 + '@yankeeinlondon/builder-api': 0.4.1_wgjnmyfjddfvpl2h62oj2lktde + '@yankeeinlondon/happy-wrapper': 2.6.0_ff3ihdoybm7ovley6q4itwsswa + gray-matter: 4.0.3 + markdown-it: 13.0.1 + rollup: 2.79.1 + source-map-js: 1.0.2 + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - fp-ts + - happy-dom + - inferred-types + - jsdom + - less + - sass + - stylus + - supports-color + - terser + dev: true + /vite/3.1.4: resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -13054,17 +12930,19 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_vitepress@1.0.0-alpha.19: + /vitepress-plugin-mermaid/2.0.8_ml5vzxpqibyfsid5kdls3ch6aa: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 vite-plugin-md: ^0.20.4 vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: - vitepress: 1.0.0-alpha.19 + mermaid: 9.1.7 + vite-plugin-md: 0.20.4_ddevayggxncg4aofvrlbkut4ha + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4: + /vitepress-plugin-search/1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y: resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -13073,15 +12951,16 @@ packages: vue: '3' dependencies: vite: 3.1.4 - vitepress: 1.0.0-alpha.19 + vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vue: 3.2.40 dev: true - /vitepress/1.0.0-alpha.19: + /vitepress/1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-0FIUZB6JGXio7SELDDUkyQoMjmO/UAXqDXmznzOsBKsdZ3EHlyb6NaP/V/BMfN5S8+GV88ScbIL0jd/pDzkLBg==} hasBin: true dependencies: '@docsearch/css': 3.2.1 - '@docsearch/js': 3.2.1 + '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y '@vitejs/plugin-vue': 3.1.2_vite@3.1.4+vue@3.2.40 '@vue/devtools-api': 6.4.3 '@vueuse/core': 9.3.0_vue@3.2.40 @@ -13101,8 +12980,53 @@ packages: - terser dev: true - /vitest/0.24.1_xzgakswda4jfhzd65tgzmbprsy: - resolution: {integrity: sha512-NKkK1xnDIOOr42pKBfGQQl6b6IWdFVBpG6ZS1T+nUlJuqcOiZ7lxjVwHy9wrtTYpJ0BWww9y6bSGYXubD29Nag==} + /vitest/0.19.1_ff3ihdoybm7ovley6q4itwsswa: + resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.3 + '@types/chai-subset': 1.3.3 + '@types/node': 18.8.1 + '@vitest/ui': 0.24.3 + chai: 4.3.6 + debug: 4.3.4 + happy-dom: 6.0.4 + jsdom: 20.0.1 + local-pkg: 0.4.2 + tinypool: 0.2.4 + tinyspy: 1.0.2 + vite: 3.1.4 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + - terser + dev: true + + /vitest/0.24.3_ff3ihdoybm7ovley6q4itwsswa: + resolution: {integrity: sha512-aM0auuPPgMSstWvr851hB74g/LKaKBzSxcG3da7ejfZbx08Y21JpZmbmDYrMTCGhVZKqTGwzcnLMwyfz2WzkhQ==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -13126,9 +13050,10 @@ packages: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 '@types/node': 18.8.1 - '@vitest/ui': 0.24.1 + '@vitest/ui': 0.24.3 chai: 4.3.6 debug: 4.3.4 + happy-dom: 6.0.4 jsdom: 20.0.1 local-pkg: 0.4.2 strip-literal: 0.4.2 @@ -13204,10 +13129,12 @@ packages: /vue-template-compiler/2.7.10: resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==} + requiresBuild: true dependencies: de-indent: 1.0.2 he: 1.2.0 dev: true + optional: true /vue/3.2.40: resolution: {integrity: sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==} @@ -13225,6 +13152,13 @@ packages: browser-process-hrtime: 1.0.0 dev: true + /w3c-xmlserializer/2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + dependencies: + xml-name-validator: 3.0.0 + dev: true + /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -13271,6 +13205,16 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true + /webidl-conversions/5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + dev: true + + /webidl-conversions/6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + dev: true + /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -13290,6 +13234,12 @@ packages: engines: {node: '>=0.8.0'} dev: true + /whatwg-encoding/1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + dependencies: + iconv-lite: 0.4.24 + dev: true + /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -13301,6 +13251,10 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true + /whatwg-mimetype/2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + dev: true + /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -13329,6 +13283,15 @@ packages: webidl-conversions: 3.0.1 dev: true + /whatwg-url/8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: true + /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true @@ -13379,6 +13342,15 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + /write-file-atomic/4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -13439,8 +13411,8 @@ packages: optional: true dev: true - /x-is-string/0.1.0: - resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} + /xml-name-validator/3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} dev: true /xml-name-validator/4.0.0: @@ -13584,6 +13556,10 @@ packages: engines: {node: '>=10'} dev: true + /zwitch/1.0.5: + resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} + dev: true + /zwitch/2.0.2: resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} dev: true From 319f925bdd3a69a033947b90f79b98f67f7b23b7 Mon Sep 17 00:00:00 2001 From: uttk <46495635+uttk@users.noreply.github.com> Date: Mon, 17 Oct 2022 03:07:10 +0000 Subject: [PATCH 0411/1038] fix: Fixed git graph to use global setting if `useMaxWidth` option is not set --- packages/mermaid/src/diagrams/git/gitGraphRenderer.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js index 0b52b0360f..71698a5007 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js @@ -495,7 +495,8 @@ const drawBranches = (svg, branches) => { */ export const draw = function (txt, id, ver, diagObj) { clear(); - const gitGraphConfig = getConfig().gitGraph; + const conf = getConfig(); + const gitGraphConfig = conf.gitGraph; // try { log.debug('in gitgraph renderer', txt + '\n', 'id:', id, ver); @@ -522,7 +523,12 @@ export const draw = function (txt, id, ver, diagObj) { drawCommits(diagram, allCommitsDict, true); // Setup the view box and size of the svg element - setupGraphViewbox(undefined, diagram, gitGraphConfig.diagramPadding, gitGraphConfig.useMaxWidth); + setupGraphViewbox( + undefined, + diagram, + gitGraphConfig.diagramPadding, + gitGraphConfig.useMaxWidth ?? conf.useMaxWidth + ); }; export default { From 17b72d565de595c94c1e339da37fc81676c4b200 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Oct 2022 00:58:59 +0000 Subject: [PATCH 0412/1038] chore(deps): pin dependencies --- package.json | 132 +- packages/mermaid-example-diagram/package.json | 4 +- packages/mermaid-mindmap/package.json | 4 +- packages/mermaid/package.json | 86 +- pnpm-lock.yaml | 2273 +++++++---------- 5 files changed, 1073 insertions(+), 1426 deletions(-) diff --git a/package.json b/package.json index 956e20b052..a358689f3c 100644 --- a/package.json +++ b/package.json @@ -70,81 +70,81 @@ ] }, "dependencies": { - "@braintree/sanitize-url": "^6.0.0", - "@types/node": "^18.8.1", - "@types/uuid": "^8.3.4", - "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", + "@braintree/sanitize-url": "6.0.0", + "@types/node": "18.11.0", + "@types/uuid": "8.3.4", + "d3": "7.6.1", + "dagre": "0.8.5", + "dagre-d3": "0.6.4", "dompurify": "2.4.0", - "fast-clone": "^1.5.13", - "graphlib": "^2.1.8", - "khroma": "^2.0.0", - "lodash": "^4.17.21", - "moment-mini": "^2.24.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "rollup": "^2.79.1", - "stylis": "^4.1.2", - "uuid": "^9.0.0" + "fast-clone": "1.5.13", + "graphlib": "2.1.8", + "khroma": "2.0.0", + "lodash": "4.17.21", + "moment-mini": "2.29.4", + "non-layered-tidy-tree-layout": "2.0.2", + "rollup": "2.79.1", + "stylis": "4.1.2", + "uuid": "9.0.0" }, "devDependencies": { - "@applitools/eyes-cypress": "^3.27.1", - "@commitlint/cli": "^17.1.2", - "@commitlint/config-conventional": "^17.1.0", - "@types/d3": "^7.4.0", - "@types/dompurify": "^2.3.4", - "@types/eslint": "^8.4.6", - "@types/express": "^4.17.14", - "@types/jsdom": "^20.0.0", - "@types/lodash": "^4.14.186", - "@types/mdast": "^3.0.10", - "@types/prettier": "^2.7.1", - "@types/stylis": "^4.0.2", - "@typescript-eslint/eslint-plugin": "^5.39.0", - "@typescript-eslint/parser": "^5.39.0", + "@applitools/eyes-cypress": "3.27.2", + "@commitlint/cli": "17.1.2", + "@commitlint/config-conventional": "17.1.0", + "@types/d3": "7.4.0", + "@types/dompurify": "2.3.4", + "@types/eslint": "8.4.6", + "@types/express": "4.17.14", + "@types/jsdom": "20.0.0", + "@types/lodash": "4.14.186", + "@types/mdast": "3.0.10", + "@types/prettier": "2.7.1", + "@types/stylis": "4.0.2", + "@typescript-eslint/eslint-plugin": "5.40.0", + "@typescript-eslint/parser": "5.40.0", "@vitest/coverage-c8": "0.24.3", "@vitest/ui": "0.24.3", - "concurrently": "^7.4.0", - "coveralls": "^3.1.1", - "cypress": "^10.0.0", - "cypress-image-snapshot": "^4.0.1", + "concurrently": "7.4.0", + "coveralls": "3.1.1", + "cypress": "10.10.0", + "cypress-image-snapshot": "4.0.1", "documentation": "13.2.5", - "esbuild": "^0.15.10", - "eslint": "^8.24.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-html": "^7.1.0", - "eslint-plugin-jest": "^27.1.0", - "eslint-plugin-jsdoc": "^39.3.6", - "eslint-plugin-json": "^3.1.0", - "eslint-plugin-markdown": "^3.0.0", - "express": "^4.18.1", - "globby": "^13.1.2", - "husky": "^8.0.1", - "identity-obj-proxy": "^3.0.0", - "jest": "29.x", - "jison": "^0.4.18", - "jsdom": "^20.0.1", - "lint-staged": "^13.0.3", - "markdown-it": "^13.0.1", - "path-browserify": "^1.0.1", - "pnpm": "^7.13.2", - "prettier": "^2.7.1", - "prettier-plugin-jsdoc": "^0.4.2", - "remark": "^14.0.2", - "rimraf": "^3.0.2", - "start-server-and-test": "^1.14.0", - "ts-node": "^10.9.1", - "typescript": "^4.8.4", - "unist-util-flatmap": "^1.0.0", - "vite": "^3.1.4", - "vitepress": "^1.0.0-alpha.19", - "vitepress-plugin-mermaid": "^2.0.8", - "vitepress-plugin-search": "^1.0.4-alpha.11", + "esbuild": "0.15.11", + "eslint": "8.25.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-cypress": "2.12.1", + "eslint-plugin-html": "7.1.0", + "eslint-plugin-jest": "27.1.2", + "eslint-plugin-jsdoc": "39.3.6", + "eslint-plugin-json": "3.1.0", + "eslint-plugin-markdown": "3.0.0", + "express": "4.18.2", + "globby": "13.1.2", + "husky": "8.0.1", + "identity-obj-proxy": "3.0.0", + "jest": "29.2.0", + "jison": "0.4.18", + "jsdom": "20.0.1", + "lint-staged": "13.0.3", + "markdown-it": "13.0.1", + "path-browserify": "1.0.1", + "pnpm": "7.13.5", + "prettier": "2.7.1", + "prettier-plugin-jsdoc": "0.4.2", + "remark": "14.0.2", + "rimraf": "3.0.2", + "start-server-and-test": "1.14.0", + "ts-node": "10.9.1", + "typescript": "4.8.4", + "unist-util-flatmap": "1.0.0", + "vite": "3.1.8", + "vitepress": "1.0.0-alpha.21", + "vitepress-plugin-mermaid": "2.0.8", + "vitepress-plugin-search": "1.0.4-alpha.11", "vitest": "0.24.3" }, "resolutions": { - "d3": "^7.0.0" + "d3": "7.6.1" }, "files": [ "dist" diff --git a/packages/mermaid-example-diagram/package.json b/packages/mermaid-example-diagram/package.json index 8898a66f65..818ceb6a90 100644 --- a/packages/mermaid-example-diagram/package.json +++ b/packages/mermaid-example-diagram/package.json @@ -50,8 +50,8 @@ }, "dependencies": {}, "devDependencies": { - "concurrently": "^7.4.0", - "rimraf": "^3.0.2" + "concurrently": "7.4.0", + "rimraf": "3.0.2" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index befe56016c..e6ec9ad520 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -57,8 +57,8 @@ "non-layered-tidy-tree-layout": "^2.0.2" }, "devDependencies": { - "concurrently": "^7.4.0", - "rimraf": "^3.0.2" + "concurrently": "7.4.0", + "rimraf": "3.0.2" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 74c8331ba9..b943eb432b 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -75,51 +75,51 @@ "stylis": "^4.1.2" }, "devDependencies": { - "@applitools/eyes-cypress": "^3.25.7", - "@commitlint/cli": "^17.1.2", - "@commitlint/config-conventional": "^17.0.0", - "@types/d3": "^7.4.0", - "@types/dompurify": "^2.3.4", - "@types/eslint": "^8.4.6", - "@types/express": "^4.17.13", - "@types/jsdom": "^20.0.0", - "@types/lodash": "^4.14.185", - "@types/prettier": "^2.7.0", - "@types/stylis": "^4.0.2", - "@typescript-eslint/eslint-plugin": "^5.37.0", - "@typescript-eslint/parser": "^5.37.0", - "concurrently": "^7.4.0", - "coveralls": "^3.1.1", - "cypress": "^10.0.0", - "cypress-image-snapshot": "^4.0.1", + "@applitools/eyes-cypress": "3.27.2", + "@commitlint/cli": "17.1.2", + "@commitlint/config-conventional": "17.1.0", + "@types/d3": "7.4.0", + "@types/dompurify": "2.3.4", + "@types/eslint": "8.4.6", + "@types/express": "4.17.14", + "@types/jsdom": "20.0.0", + "@types/lodash": "4.14.186", + "@types/prettier": "2.7.1", + "@types/stylis": "4.0.2", + "@typescript-eslint/eslint-plugin": "5.40.0", + "@typescript-eslint/parser": "5.40.0", + "concurrently": "7.4.0", + "coveralls": "3.1.1", + "cypress": "10.10.0", + "cypress-image-snapshot": "4.0.1", "documentation": "13.2.5", - "esbuild": "^0.15.8", - "eslint": "^8.23.1", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-html": "^7.1.0", - "eslint-plugin-jest": "^27.0.4", - "eslint-plugin-jsdoc": "^39.3.6", - "eslint-plugin-json": "^3.1.0", - "eslint-plugin-markdown": "^3.0.0", - "express": "^4.18.1", - "globby": "^13.1.2", - "husky": "^8.0.0", - "identity-obj-proxy": "^3.0.0", - "jison": "^0.4.18", + "esbuild": "0.15.11", + "eslint": "8.25.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-cypress": "2.12.1", + "eslint-plugin-html": "7.1.0", + "eslint-plugin-jest": "27.1.2", + "eslint-plugin-jsdoc": "39.3.6", + "eslint-plugin-json": "3.1.0", + "eslint-plugin-markdown": "3.0.0", + "express": "4.18.2", + "globby": "13.1.2", + "husky": "8.0.1", + "identity-obj-proxy": "3.0.0", + "jison": "0.4.18", "js-base64": "3.7.2", - "jsdom": "^20.0.0", - "lint-staged": "^13.0.0", - "moment": "^2.23.0", - "path-browserify": "^1.0.1", - "prettier": "^2.7.1", - "prettier-plugin-jsdoc": "^0.4.2", - "remark": "^14.0.2", - "rimraf": "^3.0.2", - "start-server-and-test": "^1.12.6", - "ts-node": "^10.9.1", - "typescript": "^4.8.3", - "unist-util-flatmap": "^1.0.0" + "jsdom": "20.0.1", + "lint-staged": "13.0.3", + "moment": "2.29.4", + "path-browserify": "1.0.1", + "prettier": "2.7.1", + "prettier-plugin-jsdoc": "0.4.2", + "remark": "14.0.2", + "rimraf": "3.0.2", + "start-server-and-test": "1.14.0", + "ts-node": "10.9.1", + "typescript": "4.8.4", + "unist-util-flatmap": "1.0.0" }, "resolutions": { "d3": "^7.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6654cd0df3..f8910113ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,85 +1,85 @@ lockfileVersion: 5.4 overrides: - d3: ^7.0.0 + d3: 7.6.1 importers: .: specifiers: - '@applitools/eyes-cypress': ^3.27.1 - '@braintree/sanitize-url': ^6.0.0 - '@commitlint/cli': ^17.1.2 - '@commitlint/config-conventional': ^17.1.0 - '@types/d3': ^7.4.0 - '@types/dompurify': ^2.3.4 - '@types/eslint': ^8.4.6 - '@types/express': ^4.17.14 - '@types/jsdom': ^20.0.0 - '@types/lodash': ^4.14.186 - '@types/mdast': ^3.0.10 - '@types/node': ^18.8.1 - '@types/prettier': ^2.7.1 - '@types/stylis': ^4.0.2 - '@types/uuid': ^8.3.4 - '@typescript-eslint/eslint-plugin': ^5.39.0 - '@typescript-eslint/parser': ^5.39.0 + '@applitools/eyes-cypress': 3.27.2 + '@braintree/sanitize-url': 6.0.0 + '@commitlint/cli': 17.1.2 + '@commitlint/config-conventional': 17.1.0 + '@types/d3': 7.4.0 + '@types/dompurify': 2.3.4 + '@types/eslint': 8.4.6 + '@types/express': 4.17.14 + '@types/jsdom': 20.0.0 + '@types/lodash': 4.14.186 + '@types/mdast': 3.0.10 + '@types/node': 18.11.0 + '@types/prettier': 2.7.1 + '@types/stylis': 4.0.2 + '@types/uuid': 8.3.4 + '@typescript-eslint/eslint-plugin': 5.40.0 + '@typescript-eslint/parser': 5.40.0 '@vitest/coverage-c8': 0.24.3 '@vitest/ui': 0.24.3 - concurrently: ^7.4.0 - coveralls: ^3.1.1 - cypress: ^10.0.0 - cypress-image-snapshot: ^4.0.1 - d3: ^7.0.0 - dagre: ^0.8.5 - dagre-d3: ^0.6.4 + concurrently: 7.4.0 + coveralls: 3.1.1 + cypress: 10.10.0 + cypress-image-snapshot: 4.0.1 + d3: 7.6.1 + dagre: 0.8.5 + dagre-d3: 0.6.4 documentation: 13.2.5 dompurify: 2.4.0 - esbuild: ^0.15.10 - eslint: ^8.24.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-cypress: ^2.12.1 - eslint-plugin-html: ^7.1.0 - eslint-plugin-jest: ^27.1.0 - eslint-plugin-jsdoc: ^39.3.6 - eslint-plugin-json: ^3.1.0 - eslint-plugin-markdown: ^3.0.0 - express: ^4.18.1 - fast-clone: ^1.5.13 - globby: ^13.1.2 - graphlib: ^2.1.8 - husky: ^8.0.1 - identity-obj-proxy: ^3.0.0 - jest: 29.x - jison: ^0.4.18 - jsdom: ^20.0.1 - khroma: ^2.0.0 - lint-staged: ^13.0.3 - lodash: ^4.17.21 - markdown-it: ^13.0.1 - moment-mini: ^2.24.0 - non-layered-tidy-tree-layout: ^2.0.2 - path-browserify: ^1.0.1 - pnpm: ^7.13.2 - prettier: ^2.7.1 - prettier-plugin-jsdoc: ^0.4.2 - remark: ^14.0.2 - rimraf: ^3.0.2 - rollup: ^2.79.1 - start-server-and-test: ^1.14.0 - stylis: ^4.1.2 - ts-node: ^10.9.1 - typescript: ^4.8.4 - unist-util-flatmap: ^1.0.0 - uuid: ^9.0.0 - vite: ^3.1.4 - vitepress: ^1.0.0-alpha.19 - vitepress-plugin-mermaid: ^2.0.8 - vitepress-plugin-search: ^1.0.4-alpha.11 + esbuild: 0.15.11 + eslint: 8.25.0 + eslint-config-prettier: 8.5.0 + eslint-plugin-cypress: 2.12.1 + eslint-plugin-html: 7.1.0 + eslint-plugin-jest: 27.1.2 + eslint-plugin-jsdoc: 39.3.6 + eslint-plugin-json: 3.1.0 + eslint-plugin-markdown: 3.0.0 + express: 4.18.2 + fast-clone: 1.5.13 + globby: 13.1.2 + graphlib: 2.1.8 + husky: 8.0.1 + identity-obj-proxy: 3.0.0 + jest: 29.2.0 + jison: 0.4.18 + jsdom: 20.0.1 + khroma: 2.0.0 + lint-staged: 13.0.3 + lodash: 4.17.21 + markdown-it: 13.0.1 + moment-mini: 2.29.4 + non-layered-tidy-tree-layout: 2.0.2 + path-browserify: 1.0.1 + pnpm: 7.13.5 + prettier: 2.7.1 + prettier-plugin-jsdoc: 0.4.2 + remark: 14.0.2 + rimraf: 3.0.2 + rollup: 2.79.1 + start-server-and-test: 1.14.0 + stylis: 4.1.2 + ts-node: 10.9.1 + typescript: 4.8.4 + unist-util-flatmap: 1.0.0 + uuid: 9.0.0 + vite: 3.1.8 + vitepress: 1.0.0-alpha.21 + vitepress-plugin-mermaid: 2.0.8 + vitepress-plugin-search: 1.0.4-alpha.11 vitest: 0.24.3 dependencies: '@braintree/sanitize-url': 6.0.0 - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@types/uuid': 8.3.4 d3: 7.6.1 dagre: 0.8.5 @@ -95,7 +95,7 @@ importers: stylis: 4.1.2 uuid: 9.0.0 devDependencies: - '@applitools/eyes-cypress': 3.27.1 + '@applitools/eyes-cypress': 3.27.2 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@types/d3': 7.4.0 @@ -107,108 +107,108 @@ importers: '@types/mdast': 3.0.10 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my - '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q '@vitest/coverage-c8': 0.24.3_ff3ihdoybm7ovley6q4itwsswa '@vitest/ui': 0.24.3 concurrently: 7.4.0 coveralls: 3.1.1 - cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1 + cypress: 10.10.0 + cypress-image-snapshot: 4.0.1_sldctbhq72okzn4urvbivac6lq documentation: 13.2.5 - esbuild: 0.15.10 - eslint: 8.24.0 - eslint-config-prettier: 8.5.0_eslint@8.24.0 - eslint-plugin-cypress: 2.12.1_eslint@8.24.0 + esbuild: 0.15.11 + eslint: 8.25.0 + eslint-config-prettier: 8.5.0_eslint@8.25.0 + eslint-plugin-cypress: 2.12.1_eslint@8.25.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.0_4rkgrv37dc3yt652qtbljgksbi - eslint-plugin-jsdoc: 39.3.6_eslint@8.24.0 + eslint-plugin-jest: 27.1.2_nc3c3bdiyy2hxtl32wv7esmvmq + eslint-plugin-jsdoc: 39.3.6_eslint@8.25.0 eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.24.0 - express: 4.18.1 + eslint-plugin-markdown: 3.0.0_eslint@8.25.0 + express: 4.18.2 globby: 13.1.2 husky: 8.0.1 identity-obj-proxy: 3.0.0 - jest: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq jison: 0.4.18 jsdom: 20.0.1 lint-staged: 13.0.3 markdown-it: 13.0.1 path-browserify: 1.0.1 - pnpm: 7.13.2 + pnpm: 7.13.5 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_jrs6fgrkrfl5zdawlcdiuhuotq + ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga typescript: 4.8.4 unist-util-flatmap: 1.0.0 - vite: 3.1.4 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_ml5vzxpqibyfsid5kdls3ch6aa - vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y + vite: 3.1.8 + vitepress: 1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-mermaid: 2.0.8_orex2agllvbrjwlm6w3vfszwae + vitepress-plugin-search: 1.0.4-alpha.11_edcjrozpkfaskrqytnhbwsc3ky vitest: 0.24.3_ff3ihdoybm7ovley6q4itwsswa packages/mermaid: specifiers: - '@applitools/eyes-cypress': ^3.25.7 + '@applitools/eyes-cypress': 3.27.2 '@braintree/sanitize-url': ^6.0.0 - '@commitlint/cli': ^17.1.2 - '@commitlint/config-conventional': ^17.0.0 - '@types/d3': ^7.4.0 - '@types/dompurify': ^2.3.4 - '@types/eslint': ^8.4.6 - '@types/express': ^4.17.13 - '@types/jsdom': ^20.0.0 - '@types/lodash': ^4.14.185 - '@types/prettier': ^2.7.0 - '@types/stylis': ^4.0.2 - '@typescript-eslint/eslint-plugin': ^5.37.0 - '@typescript-eslint/parser': ^5.37.0 - concurrently: ^7.4.0 - coveralls: ^3.1.1 - cypress: ^10.0.0 - cypress-image-snapshot: ^4.0.1 - d3: ^7.0.0 + '@commitlint/cli': 17.1.2 + '@commitlint/config-conventional': 17.1.0 + '@types/d3': 7.4.0 + '@types/dompurify': 2.3.4 + '@types/eslint': 8.4.6 + '@types/express': 4.17.14 + '@types/jsdom': 20.0.0 + '@types/lodash': 4.14.186 + '@types/prettier': 2.7.1 + '@types/stylis': 4.0.2 + '@typescript-eslint/eslint-plugin': 5.40.0 + '@typescript-eslint/parser': 5.40.0 + concurrently: 7.4.0 + coveralls: 3.1.1 + cypress: 10.10.0 + cypress-image-snapshot: 4.0.1 + d3: 7.6.1 dagre: ^0.8.5 dagre-d3: ^0.6.4 documentation: 13.2.5 dompurify: 2.4.0 - esbuild: ^0.15.8 - eslint: ^8.23.1 - eslint-config-prettier: ^8.5.0 - eslint-plugin-cypress: ^2.12.1 - eslint-plugin-html: ^7.1.0 - eslint-plugin-jest: ^27.0.4 - eslint-plugin-jsdoc: ^39.3.6 - eslint-plugin-json: ^3.1.0 - eslint-plugin-markdown: ^3.0.0 - express: ^4.18.1 + esbuild: 0.15.11 + eslint: 8.25.0 + eslint-config-prettier: 8.5.0 + eslint-plugin-cypress: 2.12.1 + eslint-plugin-html: 7.1.0 + eslint-plugin-jest: 27.1.2 + eslint-plugin-jsdoc: 39.3.6 + eslint-plugin-json: 3.1.0 + eslint-plugin-markdown: 3.0.0 + express: 4.18.2 fast-clone: ^1.5.13 - globby: ^13.1.2 + globby: 13.1.2 graphlib: ^2.1.8 - husky: ^8.0.0 - identity-obj-proxy: ^3.0.0 - jison: ^0.4.18 + husky: 8.0.1 + identity-obj-proxy: 3.0.0 + jison: 0.4.18 js-base64: 3.7.2 - jsdom: ^20.0.0 + jsdom: 20.0.1 khroma: ^2.0.0 - lint-staged: ^13.0.0 + lint-staged: 13.0.3 lodash: ^4.17.21 - moment: ^2.23.0 + moment: 2.29.4 moment-mini: ^2.24.0 non-layered-tidy-tree-layout: ^2.0.2 - path-browserify: ^1.0.1 - prettier: ^2.7.1 - prettier-plugin-jsdoc: ^0.4.2 - remark: ^14.0.2 - rimraf: ^3.0.2 - start-server-and-test: ^1.12.6 + path-browserify: 1.0.1 + prettier: 2.7.1 + prettier-plugin-jsdoc: 0.4.2 + remark: 14.0.2 + rimraf: 3.0.2 + start-server-and-test: 1.14.0 stylis: ^4.1.2 - ts-node: ^10.9.1 - typescript: ^4.8.3 - unist-util-flatmap: ^1.0.0 + ts-node: 10.9.1 + typescript: 4.8.4 + unist-util-flatmap: 1.0.0 dependencies: '@braintree/sanitize-url': 6.0.0 d3: 7.6.1 @@ -223,7 +223,7 @@ importers: non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.2 devDependencies: - '@applitools/eyes-cypress': 3.27.1 + '@applitools/eyes-cypress': 3.27.2 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@types/d3': 7.4.0 @@ -231,32 +231,32 @@ importers: '@types/eslint': 8.4.6 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 - '@types/lodash': 4.14.185 - '@types/prettier': 2.7.0 + '@types/lodash': 4.14.186 + '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q concurrently: 7.4.0 coveralls: 3.1.1 - cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 + cypress: 10.10.0 + cypress-image-snapshot: 4.0.1_wsmbrbtpfgb2tvmlrj7mjfruri documentation: 13.2.5 - esbuild: 0.15.8 - eslint: 8.23.1 - eslint-config-prettier: 8.5.0_eslint@8.23.1 - eslint-plugin-cypress: 2.12.1_eslint@8.23.1 + esbuild: 0.15.11 + eslint: 8.25.0 + eslint-config-prettier: 8.5.0_eslint@8.25.0 + eslint-plugin-cypress: 2.12.1_eslint@8.25.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm - eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 + eslint-plugin-jest: 27.1.2_37sgn6sqs6ms4ljiz35av2ikje + eslint-plugin-jsdoc: 39.3.6_eslint@8.25.0 eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.23.1 - express: 4.18.1 + eslint-plugin-markdown: 3.0.0_eslint@8.25.0 + express: 4.18.2 globby: 13.1.2 husky: 8.0.1 identity-obj-proxy: 3.0.0 jison: 0.4.18 js-base64: 3.7.2 - jsdom: 20.0.0 + jsdom: 20.0.1 lint-staged: 13.0.3 moment: 2.29.4 path-browserify: 1.0.1 @@ -265,14 +265,14 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a - typescript: 4.8.3 + ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga + typescript: 4.8.4 unist-util-flatmap: 1.0.0 packages/mermaid-example-diagram: specifiers: - concurrently: ^7.4.0 - rimraf: ^3.0.2 + concurrently: 7.4.0 + rimraf: 3.0.2 devDependencies: concurrently: 7.4.0 rimraf: 3.0.2 @@ -280,13 +280,13 @@ importers: packages/mermaid-mindmap: specifiers: '@braintree/sanitize-url': ^6.0.0 - concurrently: ^7.4.0 + concurrently: 7.4.0 cytoscape: ^3.23.0 cytoscape-cose-bilkent: ^4.1.0 cytoscape-fcose: ^2.1.0 - d3: ^7.0.0 + d3: 7.6.1 non-layered-tidy-tree-layout: ^2.0.2 - rimraf: ^3.0.2 + rimraf: 3.0.2 dependencies: '@braintree/sanitize-url': 6.0.0 cytoscape: 3.23.0 @@ -411,8 +411,56 @@ packages: '@algolia/requester-common': 4.14.2 dev: true - /@applitools/dom-capture/11.1.1: - resolution: {integrity: sha512-aUPsS3h/caQryythSjaX4uG23HzTBsnFBfO7BUvuomMdAm3qIHBstIHPCiUSJbXmPBabfqlWm59YKdxC3PTWcw==} + /@applitools/core-base/1.1.0: + resolution: {integrity: sha512-YcMF3a3tW7oDtxN7pQM8vUmezqMNcK+pgyYHKyjpRt/m2BUuNrymx+7CToR8n5sBDmfG6TWanufFkjocOtKq6g==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.2 + '@applitools/logger': 1.1.26 + '@applitools/req': 1.1.10 + '@applitools/types': 1.5.19 + '@applitools/utils': 1.3.12 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/core/1.1.5: + resolution: {integrity: sha512-CroUu72ducqxEQSTBfNPyDCq3699A7r9zpp6fh5WP65WiaTzkf8WNviR3Ir/fDVteYr4wCGxGN6WfUIJ3Gh1IA==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/core-base': 1.1.0 + '@applitools/dom-capture': 11.2.0 + '@applitools/dom-snapshot': 4.7.0 + '@applitools/driver': 1.10.5 + '@applitools/logger': 1.1.26 + '@applitools/nml-client': 1.3.3 + '@applitools/req': 1.1.10 + '@applitools/screenshoter': 3.6.3 + '@applitools/snippets': 2.4.5 + '@applitools/types': 1.5.19 + '@applitools/ufg-client': 1.0.9 + '@applitools/utils': 1.3.12 + abort-controller: 3.0.0 + throat: 6.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + + /@applitools/dom-capture/11.1.2: + resolution: {integrity: sha512-LRs3yWiS7NQpDrNTx77zO7U/nldrzq5B5HnEmM/ZJM6xThOPZdTJNYEcdzQV8yfZVawX/pq/imyejcVIvhmFzA==} + engines: {node: '>=8.9.0'} + dependencies: + '@applitools/dom-shared': 1.0.5 + '@applitools/functional-commons': 1.6.0 + dev: true + + /@applitools/dom-capture/11.2.0: + resolution: {integrity: sha512-zFfYgvdXq5oTpLuYvOJdkh7jsbAxajOpD67pVoKc27lKwE0CGaM9I0Uf+qGh7GYtY93qyzMWBzqC7C8JlSK1gA==} engines: {node: '>=8.9.0'} dependencies: '@applitools/dom-shared': 1.0.5 @@ -429,6 +477,11 @@ packages: engines: {node: '>=8.9.0'} dev: true + /@applitools/dom-shared/1.0.9: + resolution: {integrity: sha512-u6nRHBklRAaODILm0HRluE0IAwrnjs8AMNRBFxHThKGt4qpbkhnwazGMr4zDu3WCBjr/sA31kekUqNl0Jx3YeQ==} + engines: {node: '>=8.9.0'} + dev: true + /@applitools/dom-snapshot/4.6.2: resolution: {integrity: sha512-8XFbsIl154VK3rqNhHbSzcYDNLJ8QEgHzWht5cM0WhScWVokXUfL+kDmqjLIMZ47VgP3XXxk0rgX5QOs2TZx8Q==} engines: {node: '>=8.9.0'} @@ -439,22 +492,43 @@ packages: pako: 1.0.11 dev: true - /@applitools/driver/1.9.20: - resolution: {integrity: sha512-yrVydj5ukcBzADVTyrqEJ9rV2GauUOgC0NvXupvT+3qZSkwGumFb6SxlP5q39jy6/1EmRL9Szl1y9/DbwZ9OdQ==} + /@applitools/dom-snapshot/4.7.0: + resolution: {integrity: sha512-exLRB2dTLiqD8i5oOK/QyfNMSLramVF5CFYNI29WWQjbXkIpCGOomGA8/xL+sYiC53jjx3Y9u6jHtlkb5ASJAQ==} + engines: {node: '>=8.9.0'} + dependencies: + '@applitools/dom-shared': 1.0.9 + '@applitools/functional-commons': 1.6.0 + css-tree: 1.0.0-alpha.39 + pako: 1.0.11 + dev: true + + /@applitools/driver/1.10.5: + resolution: {integrity: sha512-I2KSRM2ZIo5AJh2ylLB/WECExmKVpx7GJCnsOHcriLh+E8XDhZkZtCQ9GEIM/aVRO0yLm70H24r0/qxNyikt1A==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.26 + '@applitools/snippets': 2.4.5 + '@applitools/utils': 1.3.12 + semver: 7.3.7 + dev: true + + /@applitools/driver/1.9.26: + resolution: {integrity: sha512-owkCcmklmvDBu6uabewHQJTX5sLFj/ULccpXPEW8Z/UB+Nd/ttWwUz92OxLJFrYq1F4Nd8X1WIyrVYnuqYAE1g==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/logger': 1.1.15 + '@applitools/logger': 1.1.16 '@applitools/snippets': 2.4.5 - '@applitools/types': 1.5.8 + '@applitools/types': 1.5.9 '@applitools/utils': 1.3.10 + semver: 7.3.7 dev: true - /@applitools/execution-grid-client/1.1.23: - resolution: {integrity: sha512-9J66rP3HYpI10pLH+wbMWr6BAcCuaGIskSDJyitvfS8hc2UyWdpVsAIHdkmivvTEpu3f+VaLKlhINRYlCJRJpQ==} + /@applitools/execution-grid-client/1.1.24: + resolution: {integrity: sha512-SA6pl54KwkExr30lPRrEGfP3Ypfyfw8LLhVk7XWMLp4D7JgBPNyzAbY+KHLE4bVXRUBiXDzQGcf8scLVycajxg==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/logger': 1.1.15 + '@applitools/logger': 1.1.16 '@applitools/utils': 1.3.10 abort-controller: 3.0.0 node-fetch: 2.6.7 @@ -466,26 +540,44 @@ packages: - supports-color dev: true - /@applitools/eyes-api/1.7.5: - resolution: {integrity: sha512-wvFHjPFAVRSCCUg3zEr8HNoRS8lChnm9TwYI/+qjo91eNM+nVSEtPE6tb2GcdUbDqz0zpnCi8N3Mi2TulAZj2w==} + /@applitools/execution-grid-client/1.1.29: + resolution: {integrity: sha512-iI7oFmzM9G6Qmgmt1JsYJ2Qhs0C5hgrwxoehANa7d62HlGpppvKlv5gOAkkQphsyvLSrPTlfqKPRyh9/W6ZeZQ==} engines: {node: '>=12.13.0'} + hasBin: true dependencies: - '@applitools/logger': 1.1.15 - '@applitools/types': 1.5.8 - '@applitools/utils': 1.3.10 + '@applitools/logger': 1.1.26 + '@applitools/utils': 1.3.12 + abort-controller: 3.0.0 + node-fetch: 2.6.7 + proxy-agent: 5.0.0 + raw-body: 2.5.1 + yargs: 17.4.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/eyes-api/1.8.5: + resolution: {integrity: sha512-pZK5RBvnG9/IiXDQFuErcUngbGNDcPLIhl1YydbfEDDtT+vo/mOd8Zq1VGZfHHSiLFr0gBnHAISS3d8n0J1/4w==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.26 + '@applitools/types': 1.5.19 + '@applitools/utils': 1.3.12 dev: true - /@applitools/eyes-cypress/3.27.1: - resolution: {integrity: sha512-QtQawBi0B16ClPcyFEyvd8+3VKoZnJcj2UX41U5gnycQvidvJCyruFJlmuL9OnCBgpA17U4y9NnRceeHsywhqQ==} + /@applitools/eyes-cypress/3.27.2: + resolution: {integrity: sha512-nk7j9FQFQ7F4OE2lFOFjuquEXR6b4Z9IKwM7MtCNoOpnvpb15WS7JQX9GAGkv4t9Gst500a7d8gndLmgYwOgKg==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/eyes-api': 1.7.5 - '@applitools/eyes-universal': 2.10.3 + '@applitools/eyes-api': 1.8.5 + '@applitools/eyes-universal': 2.16.3 '@applitools/functional-commons': 1.6.0 - '@applitools/logger': 1.1.15 - '@applitools/visual-grid-client': 15.13.13 + '@applitools/logger': 1.1.26 + '@applitools/visual-grid-client': 15.14.1 chalk: 3.0.0 + semver: 7.3.7 uuid: 8.3.2 ws: 8.5.0 transitivePeerDependencies: @@ -496,20 +588,36 @@ packages: - utf-8-validate dev: true - /@applitools/eyes-sdk-core/13.8.19: - resolution: {integrity: sha512-brijRwys0kNyGdVictyJPGdqS+6iE3G0gwYHnzBZWvP7ryh6FeIwDbLxyc43UVpmNJPKAToVZ50J+2C/S6E3pQ==} + /@applitools/eyes-sdk-core/13.11.6: + resolution: {integrity: sha512-p7rf1A3pRF3CUxmYbOpHm0FjaWzGKy95eFHPvi1IcGdICQ0bZ7y9OyCEddXjPplqo+olHt2ZVXB5zzh70UO3iw==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/core': 1.1.5 + '@applitools/driver': 1.10.5 + '@applitools/execution-grid-client': 1.1.29 + '@applitools/utils': 1.3.12 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + + /@applitools/eyes-sdk-core/13.9.1: + resolution: {integrity: sha512-4WNfdUAqi5rXSAKWMOZHJOG7LfHLJ0+k3ZXR1RuN9D2SnhQ1CA+JtfXYLZuBqqKl8GUSb/XizYpojOqJpFoAfw==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/dom-capture': 11.1.1 + '@applitools/dom-capture': 11.1.2 '@applitools/dom-snapshot': 4.6.2 - '@applitools/driver': 1.9.20 - '@applitools/execution-grid-client': 1.1.23 + '@applitools/driver': 1.9.26 + '@applitools/execution-grid-client': 1.1.24 '@applitools/isomorphic-fetch': 3.0.0 - '@applitools/logger': 1.1.15 - '@applitools/screenshoter': 3.4.14 + '@applitools/logger': 1.1.16 + '@applitools/nml-client': 1.1.1 + '@applitools/screenshoter': 3.5.1 '@applitools/snippets': 2.4.5 - '@applitools/types': 1.5.8 + '@applitools/types': 1.5.9 '@applitools/utils': 1.3.10 axios: 0.26.0 chalk: 3.0.0 @@ -520,23 +628,22 @@ packages: - supports-color dev: true - /@applitools/eyes-universal/2.10.3: - resolution: {integrity: sha512-z/1N9RaDakfosQfGTEwFgky0DwPjpw4bCILYx1Te4vlOywCDGSD9KrJmmMqe2YkO2wgqi61uNvQvrBDePKvmHQ==} + /@applitools/eyes-universal/2.16.3: + resolution: {integrity: sha512-AYbr1eJS8cwWb08YtoSTn+KKjihKKe12HPYCZ7N3HKeHZD96DKunyG8ERop6YvuH7CrPJtfyZawgPGUdyjqPJw==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/execution-grid-client': 1.1.23 - '@applitools/eyes-sdk-core': 13.8.19 - '@applitools/logger': 1.1.15 - '@applitools/utils': 1.3.10 - '@applitools/visual-grid-client': 15.13.13 + '@applitools/core': 1.1.5 + '@applitools/execution-grid-client': 1.1.29 + '@applitools/eyes-sdk-core': 13.11.6 + '@applitools/logger': 1.1.26 + '@applitools/utils': 1.3.12 proxy-agent: 5.0.0 webdriver: 7.16.11 ws: 7.4.6 yargs: 17.4.1 transitivePeerDependencies: - bufferutil - - debug - encoding - supports-color - utf-8-validate @@ -562,6 +669,24 @@ packages: - supports-color dev: true + /@applitools/image/1.0.1: + resolution: {integrity: sha512-Z9SEOFcQnnPbIIbagN2RTqgKF1NuYEZnlPNVB4suxnSRxrrjvoVudnysMI2uqKbWjeL5fIxpKgZDNP5sibSuCQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.10 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + + /@applitools/image/1.0.2: + resolution: {integrity: sha512-6paeiEsyHGg48zfPlL6Zw43VKNfKHbW+ynTTxTomceZot11OrC46kmy5MdyvMrHDG0ytb+CsMHPgqNJhNE0HLQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.12 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + /@applitools/isomorphic-fetch/3.0.0: resolution: {integrity: sha512-7rutaN/2M5wYjOIOTKS/Zuc1Na90fJNEAqvo/jCxt7nSD1kYscHV3aCk9t7RD59gmzLMvUTIxFbjl4RUMV8qfg==} dependencies: @@ -600,7 +725,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.5.0 + ws: 8.9.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -608,14 +733,23 @@ packages: - utf-8-validate dev: true - /@applitools/logger/1.1.15: - resolution: {integrity: sha512-2SNbINnxvGxy8G5TXIZHhXWqWBFFn0o/+4ZP57VvohPG8AF4wqXBO3H93LZMMpDz/4prND0bBLqK3XFLY4ppTQ==} + /@applitools/logger/1.1.16: + resolution: {integrity: sha512-AA18naLM/v+2k4YwUJ9ayuSUSQBRRlS7hZLQfHEFS9XZMcflSU8a5H0G2cl8AiZMj1hXK6bCIyH3x41x8aFtYQ==} engines: {node: '>=12.13.0'} dependencies: '@applitools/utils': 1.3.10 chalk: 4.1.2 dev: true + /@applitools/logger/1.1.26: + resolution: {integrity: sha512-zrwucuOzMLXAyPudCwHiTs8RueTl1CPrQdvz5LHkcNvuhCzCTBOksAYlU8U7TdA/xfxGALLBfGZRbVRd/VF5sQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/types': 1.5.19 + '@applitools/utils': 1.3.12 + chalk: 4.1.2 + dev: true + /@applitools/monitoring-commons/1.0.19: resolution: {integrity: sha512-rzEOvGoiEF4KnK0PJ9I0btdwnaNlIPLYhjF1vTEG15PoucbbKpix9fYusxWlDG7kMiZya8ZycVPc0woVlNaHRQ==} engines: {node: '>=8.0.0'} @@ -625,42 +759,136 @@ packages: - supports-color dev: true - /@applitools/screenshoter/3.4.14: - resolution: {integrity: sha512-vdaHxzSobJzujyXENSuVybYyOfBWZlDb6OwVzRsiJxpwuN9L5VtOu30kuvxAXzycHMfa+8vLgO2pHnU6Vp/MiQ==} + /@applitools/nml-client/1.1.1: + resolution: {integrity: sha512-5SGbk0LdznYiUp2yxT0z8eCFC115oA1ywJ+eDkpccNgLZlQrmUKo7MKtnKlnewn3n3eTYoGJpU4mn4jiy2tefQ==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/logger': 1.1.15 + '@applitools/req': 1.1.0 + '@applitools/utils': 1.3.10 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/nml-client/1.3.3: + resolution: {integrity: sha512-5buXrh/7YX+vuDGItu8K1mVervRMxZ92rTfr8KxSGsesKGf/QUhTTAgTdte9EE8sS7xvWIGDV8fwlXwfJk/n0A==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.26 + '@applitools/req': 1.1.10 + '@applitools/types': 1.5.19 + '@applitools/utils': 1.3.12 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/req/1.1.0: + resolution: {integrity: sha512-3NaS3F5vBJKvsxwI1bXI9ObDfuy8gfydLOVU4ZE+cKPICzIje5ZSGQjrlIsRt3ayfkJCqK+7r9l8Xyln+wZYig==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.10 + abort-controller: 3.0.0 + node-fetch: 2.6.7 + proxy-agent: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/req/1.1.10: + resolution: {integrity: sha512-PRGcqojWqCxoKAS7iDs1FWg8Kia6AP5xTDYMxoAWZoPQ+WVyk0vZUTa5I0T+0xBkVL1AKxE98FIoHqI8iWqmmQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/types': 1.5.19 + '@applitools/utils': 1.3.12 + '@types/node-fetch': 2.6.2 + abort-controller: 3.0.0 + node-fetch: 2.6.7 + proxy-agent: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/screenshoter/3.5.1: + resolution: {integrity: sha512-MueuoxNg2atSbeTZcc47HnBCkxubsDg7nAr0s5d/qTmVlEFxv618Sq6pCcZH7eK3S8W36CeXUd1GYfy8lUDg6w==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.1 + '@applitools/logger': 1.1.16 '@applitools/snippets': 2.4.5 '@applitools/utils': 1.3.10 jpeg-js: 0.4.4 png-async: 0.9.4 dev: true + /@applitools/screenshoter/3.6.3: + resolution: {integrity: sha512-xg62cKkU5qU6sfTsitg2QVEpVu1mVGqvLQcMY3anj0qmKSVeWPbcPA5MRs7bz0/qBDaEB202oYQinWOQmDWLjQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.2 + '@applitools/logger': 1.1.26 + '@applitools/snippets': 2.4.5 + '@applitools/utils': 1.3.12 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + /@applitools/snippets/2.4.5: resolution: {integrity: sha512-GoLN1wu8u5/qwdk1ozEElqmr4y7AoMQl0Ka0OzisGdx9/L7R0RzSWQCErjkf4LgKiWKK8j7lde3JT9yjxfritQ==} engines: {node: '>=12.13.0'} dev: true - /@applitools/types/1.5.8: - resolution: {integrity: sha512-trMH32oewkrptYG26IzEbwMW9VG9BJo64bzwx/T4oz6ZfndXGCjwGCFQE4FDE++dRZTjzSF00h2YSzIxPAapeQ==} + /@applitools/types/1.5.19: + resolution: {integrity: sha512-0KYkVDOSQQRv3UtFfwq0cYerUo9SPkSO0KWsuwI1keO7ctnlyasXjKFRxx/bqrN2CklRSIEiXrvxOM6KAm6KRw==} + engines: {node: '>=12.13.0'} + dev: true + + /@applitools/types/1.5.9: + resolution: {integrity: sha512-8lBeXQ3dRRcIRREisGj9kxFXRNoctMbeAQHWfiSDe/6CS/qO2cGArWRPhOusFsZiYE1NEahgIM6exufztgkfKA==} engines: {node: '>=12.13.0'} dev: true + /@applitools/ufg-client/1.0.9: + resolution: {integrity: sha512-n0asPit711UeTQlTxg4vW+8ER/WWgvbLK7LldGtMGvbdrwh+0L/h/AJeG0U/xBCwJ0s+734j5vY3msySSxjH4g==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/jsdom': 1.0.4 + '@applitools/logger': 1.1.26 + '@applitools/req': 1.1.10 + '@applitools/types': 1.5.19 + '@applitools/utils': 1.3.12 + abort-controller: 3.0.0 + postcss-value-parser: 4.2.0 + throat: 6.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + /@applitools/utils/1.3.10: resolution: {integrity: sha512-CI/5BLB0D/aZn6uL8JJmsErI+TOHCa4Gz5Wi8sJknuPz/V9Ws6jIh9ZCTzvOCDUIp99qLJwD6TSA2BY9aMhCNw==} engines: {node: '>=12.13.0'} dev: true - /@applitools/visual-grid-client/15.13.13: - resolution: {integrity: sha512-3GkzrR0WEcsihRZEgbxXecfBb8Q0U/L7VDNpy/APlw7K54kWPgTal/CYk1NwLDKj9iqpHlFfvDhI0zoeCNrR4A==} + /@applitools/utils/1.3.12: + resolution: {integrity: sha512-aWIMcq6wqzIVVIcbe1Q5f2g7PJeyLq17S0hH5xhqOArzJz/urAbLl98jHMOOkIBZVfuIAX0cIgaMPfuUpky96g==} + engines: {node: '>=12.13.0'} + dev: true + + /@applitools/visual-grid-client/15.14.1: + resolution: {integrity: sha512-Gy7S3miR+q8zcKEpH4RSnnZRlcEMN2bxgZ3RafkiCsr7FWIsGeKf0dqAJYljIXB+xU9cVla6Z5cnts/jsu7f4w==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/eyes-sdk-core': 13.8.19 + '@applitools/eyes-sdk-core': 13.9.1 '@applitools/functional-commons': 1.6.0 '@applitools/http-commons': 2.4.7 '@applitools/isomorphic-fetch': 3.0.0 '@applitools/jsdom': 1.0.4 - '@applitools/logger': 1.1.15 + '@applitools/logger': 1.1.16 abort-controller: 3.0.0 chalk: 3.0.0 postcss-value-parser: 4.1.0 @@ -1266,8 +1494,8 @@ packages: jsdoc-type-pratt-parser: 3.1.0 dev: true - /@esbuild/android-arm/0.15.10: - resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + /@esbuild/android-arm/0.15.11: + resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1275,19 +1503,8 @@ packages: dev: true optional: true - /@esbuild/android-arm/0.15.8: - resolution: {integrity: sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dependencies: - esbuild-wasm: 0.15.8 - dev: true - optional: true - - /@esbuild/linux-loong64/0.15.10: - resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + /@esbuild/linux-loong64/0.15.11: + resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1295,17 +1512,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.8: - resolution: {integrity: sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@eslint/eslintrc/1.3.2: - resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1342,10 +1550,6 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} - dev: true - /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -1381,22 +1585,22 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 slash: 3.0.0 dev: true - /@jest/console/29.1.0: - resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} + /@jest/console/29.2.0: + resolution: {integrity: sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 chalk: 4.1.2 - jest-message-util: 29.1.0 - jest-util: 29.1.0 + jest-message-util: 29.2.0 + jest-util: 29.2.0 slash: 3.0.0 dev: true @@ -1409,7 +1613,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -1440,8 +1644,8 @@ packages: - utf-8-validate dev: true - /@jest/core/29.1.1_ts-node@10.9.1: - resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} + /@jest/core/29.2.0_ts-node@10.9.1: + resolution: {integrity: sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1449,32 +1653,32 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.1.0 - '@jest/reporters': 29.1.0 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/console': 29.2.0 + '@jest/reporters': 29.2.0 + '@jest/test-result': 29.2.0 + '@jest/transform': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 29.0.0 - jest-config: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq - jest-haste-map: 29.1.0 - jest-message-util: 29.1.0 - jest-regex-util: 29.0.0 - jest-resolve: 29.1.0 - jest-resolve-dependencies: 29.1.1 - jest-runner: 29.1.1 - jest-runtime: 29.1.1 - jest-snapshot: 29.1.0 - jest-util: 29.1.0 - jest-validate: 29.1.0 - jest-watcher: 29.1.0 + jest-changed-files: 29.2.0 + jest-config: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq + jest-haste-map: 29.2.0 + jest-message-util: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.2.0 + jest-resolve-dependencies: 29.2.0 + jest-runner: 29.2.0 + jest-runtime: 29.2.0 + jest-snapshot: 29.2.0 + jest-util: 29.2.0 + jest-validate: 29.2.0 + jest-watcher: 29.2.0 micromatch: 4.0.5 - pretty-format: 29.1.0 + pretty-format: 29.2.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -1488,33 +1692,33 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 jest-mock: 26.6.2 dev: true - /@jest/environment/29.1.1: - resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} + /@jest/environment/29.2.0: + resolution: {integrity: sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.1.1 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 - jest-mock: 29.1.1 + '@jest/fake-timers': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 + jest-mock: 29.2.0 dev: true - /@jest/expect-utils/29.1.0: - resolution: {integrity: sha512-YcD5CF2beqfoB07WqejPzWq1/l+zT3SgGwcqqIaPPG1DHFn/ea8MWWXeqV3KKMhTaOM1rZjlYplj1GQxR0XxKA==} + /@jest/expect-utils/29.2.0: + resolution: {integrity: sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.0.0 + jest-get-type: 29.2.0 dev: true - /@jest/expect/29.1.0: - resolution: {integrity: sha512-qWQttxE5rEwzvDW9G3f0o8chu1EKvIfsMQDeRlXMLCtsDS94ckcqEMNgbKKz0NYlZ45xrIoy+/pngt3ZFr/2zw==} + /@jest/expect/29.2.0: + resolution: {integrity: sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.1.0 - jest-snapshot: 29.1.0 + expect: 29.2.0 + jest-snapshot: 29.2.0 transitivePeerDependencies: - supports-color dev: true @@ -1525,22 +1729,22 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 18.8.1 + '@types/node': 18.11.0 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true - /@jest/fake-timers/29.1.1: - resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} + /@jest/fake-timers/29.2.0: + resolution: {integrity: sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.2.0 '@sinonjs/fake-timers': 9.1.2 - '@types/node': 18.8.1 - jest-message-util: 29.1.0 - jest-mock: 29.1.1 - jest-util: 29.1.0 + '@types/node': 18.11.0 + jest-message-util: 29.2.0 + jest-mock: 29.2.0 + jest-util: 29.2.0 dev: true /@jest/globals/26.6.2: @@ -1552,14 +1756,14 @@ packages: expect: 26.6.2 dev: true - /@jest/globals/29.1.1: - resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} + /@jest/globals/29.2.0: + resolution: {integrity: sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/expect': 29.1.0 - '@jest/types': 29.1.0 - jest-mock: 29.1.1 + '@jest/environment': 29.2.0 + '@jest/expect': 29.2.0 + '@jest/types': 29.2.0 + jest-mock: 29.2.0 transitivePeerDependencies: - supports-color dev: true @@ -1598,8 +1802,8 @@ packages: - supports-color dev: true - /@jest/reporters/29.1.0: - resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} + /@jest/reporters/29.2.0: + resolution: {integrity: sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1608,12 +1812,12 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.1.0 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 + '@jest/console': 29.2.0 + '@jest/test-result': 29.2.0 + '@jest/transform': 29.2.0 + '@jest/types': 29.2.0 '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 18.8.1 + '@types/node': 18.11.0 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -1624,13 +1828,12 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.1.0 - jest-util: 29.1.0 - jest-worker: 29.1.0 + jest-message-util: 29.2.0 + jest-util: 29.2.0 + jest-worker: 29.2.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - terminal-link: 2.1.1 v8-to-istanbul: 9.0.1 transitivePeerDependencies: - supports-color @@ -1652,8 +1855,8 @@ packages: source-map: 0.6.1 dev: true - /@jest/source-map/29.0.0: - resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} + /@jest/source-map/29.2.0: + resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.15 @@ -1671,12 +1874,12 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-result/29.1.0: - resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} + /@jest/test-result/29.2.0: + resolution: {integrity: sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.1.0 - '@jest/types': 29.1.0 + '@jest/console': 29.2.0 + '@jest/types': 29.2.0 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -1698,13 +1901,13 @@ packages: - utf-8-validate dev: true - /@jest/test-sequencer/29.1.0: - resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} + /@jest/test-sequencer/29.2.0: + resolution: {integrity: sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.1.0 + '@jest/test-result': 29.2.0 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 + jest-haste-map: 29.2.0 slash: 3.0.0 dev: true @@ -1731,21 +1934,21 @@ packages: - supports-color dev: true - /@jest/transform/29.1.0: - resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} + /@jest/transform/29.2.0: + resolution: {integrity: sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 - '@jest/types': 29.1.0 + '@jest/types': 29.2.0 '@jridgewell/trace-mapping': 0.3.15 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 1.8.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 - jest-regex-util: 29.0.0 - jest-util: 29.1.0 + jest-haste-map: 29.2.0 + jest-regex-util: 29.2.0 + jest-util: 29.2.0 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -1760,19 +1963,19 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@types/yargs': 15.0.14 chalk: 4.1.2 dev: true - /@jest/types/29.1.0: - resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} + /@jest/types/29.2.0: + resolution: {integrity: sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@types/yargs': 17.0.13 chalk: 4.1.2 dev: true @@ -1954,7 +2157,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/cacheable-request/6.0.2: @@ -1962,7 +2165,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@types/responselike': 1.0.0 dev: true @@ -1979,13 +2182,13 @@ packages: /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/d3-array/3.0.3: @@ -2193,7 +2396,7 @@ packages: /@types/express-serve-static-core/4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -2210,7 +2413,7 @@ packages: /@types/form-data/0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/geojson/7946.0.10: @@ -2220,7 +2423,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/http-cache-semantics/4.0.1: @@ -2246,7 +2449,7 @@ packages: /@types/jsdom/20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 18.7.21 + '@types/node': 18.11.0 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -2258,11 +2461,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.8.1 - dev: true - - /@types/lodash/4.14.185: - resolution: {integrity: sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA==} + '@types/node': 18.11.0 dev: true /@types/lodash/4.14.186: @@ -2287,6 +2486,13 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true + /@types/node-fetch/2.6.2: + resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} + dependencies: + '@types/node': 18.11.0 + form-data: 3.0.1 + dev: true + /@types/node/10.17.60: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: true @@ -2299,12 +2505,8 @@ packages: resolution: {integrity: sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==} dev: true - /@types/node/18.7.21: - resolution: {integrity: sha512-rLFzK5bhM0YPyCoTC8bolBjMk7bwnZ8qeZUBslBfjZQou2ssJdWslx9CZ8DGM+Dx7QXQiiTVZ/6QO6kwtHkZCA==} - dev: true - - /@types/node/18.8.1: - resolution: {integrity: sha512-vuYaNuEIbOYLTLUAJh50ezEbvxrD43iby+lpUA2aa148Nh5kX/AVO/9m1Ahmbux2iU5uxJTNF9g2Y+31uml7RQ==} + /@types/node/18.11.0: + resolution: {integrity: sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==} /@types/node/8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} @@ -2318,10 +2520,6 @@ packages: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: true - /@types/prettier/2.7.0: - resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==} - dev: true - /@types/prettier/2.7.1: resolution: {integrity: sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==} dev: true @@ -2337,14 +2535,14 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true /@types/sinonjs__fake-timers/8.1.1: @@ -2403,12 +2601,12 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true optional: true - /@typescript-eslint/eslint-plugin/5.38.0_wsb62dxj2oqwgas4kadjymcmry: - resolution: {integrity: sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==} + /@typescript-eslint/eslint-plugin/5.40.0_25sstg4uu2sk4pm7xcyzuov7xq: + resolution: {integrity: sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2418,38 +2616,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha - '@typescript-eslint/scope-manager': 5.38.0 - '@typescript-eslint/type-utils': 5.38.0_irgkl5vooow2ydyo6aokmferha - '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/scope-manager': 5.40.0 + '@typescript-eslint/type-utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q debug: 4.3.4 - eslint: 8.23.1 - ignore: 5.2.0 - regexpp: 3.2.0 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.3 - typescript: 4.8.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/eslint-plugin/5.39.0_xyciw6oqjoiiono4dhv3uhn5my: - resolution: {integrity: sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@typescript-eslint/scope-manager': 5.39.0 - '@typescript-eslint/type-utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.25.0 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 @@ -2459,28 +2631,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.38.0_irgkl5vooow2ydyo6aokmferha: - resolution: {integrity: sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.38.0 - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 - debug: 4.3.4 - eslint: 8.23.1 - typescript: 4.8.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/5.39.0_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==} + /@typescript-eslint/parser/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2489,34 +2641,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.39.0 - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.40.0 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.25.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.38.0: - resolution: {integrity: sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA==} + /@typescript-eslint/scope-manager/5.40.0: + resolution: {integrity: sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/visitor-keys': 5.38.0 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/visitor-keys': 5.40.0 dev: true - /@typescript-eslint/scope-manager/5.39.0: - resolution: {integrity: sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/visitor-keys': 5.39.0 - dev: true - - /@typescript-eslint/type-utils/5.38.0_irgkl5vooow2ydyo6aokmferha: - resolution: {integrity: sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==} + /@typescript-eslint/type-utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2525,48 +2669,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 - '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q debug: 4.3.4 - eslint: 8.23.1 - tsutils: 3.21.0_typescript@4.8.3 - typescript: 4.8.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/type-utils/5.39.0_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4 - '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.25.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.38.0: - resolution: {integrity: sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/types/5.39.0: - resolution: {integrity: sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==} + /@typescript-eslint/types/5.40.0: + resolution: {integrity: sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.38.0_typescript@4.8.3: - resolution: {integrity: sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg==} + /@typescript-eslint/typescript-estree/5.40.0_typescript@4.8.4: + resolution: {integrity: sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2574,29 +2693,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/visitor-keys': 5.38.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.3 - typescript: 4.8.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree/5.39.0_typescript@4.8.4: - resolution: {integrity: sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/visitor-keys': 5.39.0 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/visitor-keys': 5.40.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2607,66 +2705,41 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.38.0_irgkl5vooow2ydyo6aokmferha: - resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==} + /@typescript-eslint/utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.38.0 - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 - eslint: 8.23.1 + '@typescript-eslint/scope-manager': 5.40.0 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + eslint: 8.25.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.23.1 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils/5.39.0_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.39.0 - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4 - eslint: 8.24.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.25.0 + semver: 7.3.7 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.38.0: - resolution: {integrity: sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w==} + /@typescript-eslint/visitor-keys/5.40.0: + resolution: {integrity: sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/types': 5.40.0 eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.39.0: - resolution: {integrity: sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.39.0 - eslint-visitor-keys: 3.3.0 - dev: true - - /@vitejs/plugin-vue/3.1.2_vite@3.1.4+vue@3.2.40: + /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.40: resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.1.4 + vite: 3.1.8 vue: 3.2.40 dev: true @@ -2732,8 +2805,8 @@ packages: '@vue/shared': 3.2.40 dev: true - /@vue/devtools-api/6.4.3: - resolution: {integrity: sha512-9WCRwdROJvWcHAdyrR7SZMM/qUvllDZnpndHXokThkUsjnJ2xe4/pvsH9FZrxFe22L+JmDKczL79HjLJ7DK9rg==} + /@vue/devtools-api/6.4.4: + resolution: {integrity: sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==} dev: true /@vue/reactivity-transform/3.2.40: @@ -3305,17 +3378,17 @@ packages: - supports-color dev: true - /babel-jest/29.1.0_@babel+core@7.12.3: - resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} + /babel-jest/29.2.0_@babel+core@7.12.3: + resolution: {integrity: sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.12.3 - '@jest/transform': 29.1.0 + '@jest/transform': 29.2.0 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.0.2_@babel+core@7.12.3 + babel-preset-jest: 29.2.0_@babel+core@7.12.3 chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -3346,8 +3419,8 @@ packages: '@types/babel__traverse': 7.18.2 dev: true - /babel-plugin-jest-hoist/29.0.2: - resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} + /babel-plugin-jest-hoist/29.2.0: + resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.18.10 @@ -3387,14 +3460,14 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 dev: true - /babel-preset-jest/29.0.2_@babel+core@7.12.3: - resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} + /babel-preset-jest/29.2.0_@babel+core@7.12.3: + resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 29.0.2 + babel-plugin-jest-hoist: 29.2.0 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 dev: true @@ -3459,8 +3532,8 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /body-parser/1.20.0: - resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + /body-parser/1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -3471,7 +3544,7 @@ packages: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.10.3 + qs: 6.11.0 raw-body: 2.5.1 type-is: 1.6.18 unpipe: 1.0.0 @@ -4387,42 +4460,42 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: + /cypress-image-snapshot/4.0.1_sldctbhq72okzn4urvbivac6lq: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: cypress: ^4.5.0 dependencies: chalk: 2.4.2 - cypress: 10.8.0 + cypress: 10.10.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 + jest-image-snapshot: 4.2.0_jest@29.2.0 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: - jest dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@29.1.1: + /cypress-image-snapshot/4.0.1_wsmbrbtpfgb2tvmlrj7mjfruri: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: cypress: ^4.5.0 dependencies: chalk: 2.4.2 - cypress: 10.8.0 + cypress: 10.10.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@29.1.1 + jest-image-snapshot: 4.2.0_jest@26.6.3 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: - jest dev: true - /cypress/10.8.0: - resolution: {integrity: sha512-QVse0dnLm018hgti2enKMVZR9qbIO488YGX06nH5j3Dg1isL38DwrBtyrax02CANU6y8F4EJUuyW6HJKw1jsFA==} + /cypress/10.10.0: + resolution: {integrity: sha512-bU8r44x1NIYAUNNXt3CwJpLOVth7HUv2hUhYCxZmgZ1IugowDvuHNpevnoZRQx1KKOEisLvIJW+Xen5Pjn41pg==} engines: {node: '>=12.0.0'} hasBin: true requiresBuild: true @@ -5011,8 +5084,8 @@ packages: engines: {node: '>= 10.14.2'} dev: true - /diff-sequences/29.0.0: - resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} + /diff-sequences/29.2.0: + resolution: {integrity: sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -5264,8 +5337,8 @@ packages: string-template: 0.2.1 dev: true - /esbuild-android-64/0.15.10: - resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} + /esbuild-android-64/0.15.11: + resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -5273,360 +5346,170 @@ packages: dev: true optional: true - /esbuild-android-64/0.15.8: - resolution: {integrity: sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dependencies: - esbuild-wasm: 0.15.8 - dev: true - optional: true - - /esbuild-android-arm64/0.15.10: - resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.15.8: - resolution: {integrity: sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.10: - resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.8: - resolution: {integrity: sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.10: - resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.8: - resolution: {integrity: sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.10: - resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.8: - resolution: {integrity: sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.10: - resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.8: - resolution: {integrity: sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.10: - resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.8: - resolution: {integrity: sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.10: - resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.8: - resolution: {integrity: sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.10: - resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.8: - resolution: {integrity: sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.10: - resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.8: - resolution: {integrity: sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.10: - resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.8: - resolution: {integrity: sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.10: - resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} + /esbuild-android-arm64/0.15.11: + resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==} engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] + cpu: [arm64] + os: [android] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.15.8: - resolution: {integrity: sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==} + /esbuild-darwin-64/0.15.11: + resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==} engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] + cpu: [x64] + os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-linux-riscv64/0.15.10: - resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} + /esbuild-darwin-arm64/0.15.11: + resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==} engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] + cpu: [arm64] + os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-linux-riscv64/0.15.8: - resolution: {integrity: sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==} + /esbuild-freebsd-64/0.15.11: + resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==} engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] + cpu: [x64] + os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.15.10: - resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} + /esbuild-freebsd-arm64/0.15.11: + resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==} engines: {node: '>=12'} - cpu: [s390x] - os: [linux] + cpu: [arm64] + os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.15.8: - resolution: {integrity: sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==} + /esbuild-linux-32/0.15.11: + resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==} engines: {node: '>=12'} - cpu: [s390x] + cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.15.10: - resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} + /esbuild-linux-64/0.15.11: + resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==} engines: {node: '>=12'} cpu: [x64] - os: [netbsd] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.15.8: - resolution: {integrity: sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==} + /esbuild-linux-arm/0.15.11: + resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==} engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] + cpu: [arm] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.15.10: - resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} + /esbuild-linux-arm64/0.15.11: + resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==} engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] + cpu: [arm64] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.15.8: - resolution: {integrity: sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==} + /esbuild-linux-mips64le/0.15.11: + resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==} engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] + cpu: [mips64el] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.15.10: - resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} + /esbuild-linux-ppc64le/0.15.11: + resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==} engines: {node: '>=12'} - cpu: [x64] - os: [sunos] + cpu: [ppc64] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.15.8: - resolution: {integrity: sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==} + /esbuild-linux-riscv64/0.15.11: + resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==} engines: {node: '>=12'} - cpu: [x64] - os: [sunos] + cpu: [riscv64] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-wasm/0.15.8: - resolution: {integrity: sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==} + /esbuild-linux-s390x/0.15.11: + resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==} engines: {node: '>=12'} - hasBin: true + cpu: [s390x] + os: [linux] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.15.10: - resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} + /esbuild-netbsd-64/0.15.11: + resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==} engines: {node: '>=12'} - cpu: [ia32] - os: [win32] + cpu: [x64] + os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.15.8: - resolution: {integrity: sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==} + /esbuild-openbsd-64/0.15.11: + resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==} engines: {node: '>=12'} - cpu: [ia32] - os: [win32] + cpu: [x64] + os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.15.10: - resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} + /esbuild-sunos-64/0.15.11: + resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==} engines: {node: '>=12'} cpu: [x64] - os: [win32] + os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.15.8: - resolution: {integrity: sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==} + /esbuild-windows-32/0.15.11: + resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==} engines: {node: '>=12'} - cpu: [x64] + cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.15.10: - resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} + /esbuild-windows-64/0.15.11: + resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.15.8: - resolution: {integrity: sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==} + /esbuild-windows-arm64/0.15.11: + resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -5634,64 +5517,34 @@ packages: dev: true optional: true - /esbuild/0.15.10: - resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.10 - '@esbuild/linux-loong64': 0.15.10 - esbuild-android-64: 0.15.10 - esbuild-android-arm64: 0.15.10 - esbuild-darwin-64: 0.15.10 - esbuild-darwin-arm64: 0.15.10 - esbuild-freebsd-64: 0.15.10 - esbuild-freebsd-arm64: 0.15.10 - esbuild-linux-32: 0.15.10 - esbuild-linux-64: 0.15.10 - esbuild-linux-arm: 0.15.10 - esbuild-linux-arm64: 0.15.10 - esbuild-linux-mips64le: 0.15.10 - esbuild-linux-ppc64le: 0.15.10 - esbuild-linux-riscv64: 0.15.10 - esbuild-linux-s390x: 0.15.10 - esbuild-netbsd-64: 0.15.10 - esbuild-openbsd-64: 0.15.10 - esbuild-sunos-64: 0.15.10 - esbuild-windows-32: 0.15.10 - esbuild-windows-64: 0.15.10 - esbuild-windows-arm64: 0.15.10 - dev: true - - /esbuild/0.15.8: - resolution: {integrity: sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==} + /esbuild/0.15.11: + resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.8 - '@esbuild/linux-loong64': 0.15.8 - esbuild-android-64: 0.15.8 - esbuild-android-arm64: 0.15.8 - esbuild-darwin-64: 0.15.8 - esbuild-darwin-arm64: 0.15.8 - esbuild-freebsd-64: 0.15.8 - esbuild-freebsd-arm64: 0.15.8 - esbuild-linux-32: 0.15.8 - esbuild-linux-64: 0.15.8 - esbuild-linux-arm: 0.15.8 - esbuild-linux-arm64: 0.15.8 - esbuild-linux-mips64le: 0.15.8 - esbuild-linux-ppc64le: 0.15.8 - esbuild-linux-riscv64: 0.15.8 - esbuild-linux-s390x: 0.15.8 - esbuild-netbsd-64: 0.15.8 - esbuild-openbsd-64: 0.15.8 - esbuild-sunos-64: 0.15.8 - esbuild-windows-32: 0.15.8 - esbuild-windows-64: 0.15.8 - esbuild-windows-arm64: 0.15.8 + '@esbuild/android-arm': 0.15.11 + '@esbuild/linux-loong64': 0.15.11 + esbuild-android-64: 0.15.11 + esbuild-android-arm64: 0.15.11 + esbuild-darwin-64: 0.15.11 + esbuild-darwin-arm64: 0.15.11 + esbuild-freebsd-64: 0.15.11 + esbuild-freebsd-arm64: 0.15.11 + esbuild-linux-32: 0.15.11 + esbuild-linux-64: 0.15.11 + esbuild-linux-arm: 0.15.11 + esbuild-linux-arm64: 0.15.11 + esbuild-linux-mips64le: 0.15.11 + esbuild-linux-ppc64le: 0.15.11 + esbuild-linux-riscv64: 0.15.11 + esbuild-linux-s390x: 0.15.11 + esbuild-netbsd-64: 0.15.11 + esbuild-openbsd-64: 0.15.11 + esbuild-sunos-64: 0.15.11 + esbuild-windows-32: 0.15.11 + esbuild-windows-64: 0.15.11 + esbuild-windows-arm64: 0.15.11 dev: true /escalade/3.1.1: @@ -5756,39 +5609,21 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.23.1: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.23.1 - dev: true - - /eslint-config-prettier/8.5.0_eslint@8.24.0: + /eslint-config-prettier/8.5.0_eslint@8.25.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.24.0 + eslint: 8.25.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.23.1: + /eslint-plugin-cypress/2.12.1_eslint@8.25.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.23.1 - globals: 11.12.0 - dev: true - - /eslint-plugin-cypress/2.12.1_eslint@8.24.0: - resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} - peerDependencies: - eslint: '>= 3.2.1' - dependencies: - eslint: 8.24.0 + eslint: 8.25.0 globals: 11.12.0 dev: true @@ -5798,8 +5633,8 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: - resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} + /eslint-plugin-jest/27.1.2_37sgn6sqs6ms4ljiz35av2ikje: + resolution: {integrity: sha512-+nLOn5jvQKLUywXxXKsLuuENsB/FhygXOLI+l5QlF+ACGe0DM14FlpYrGZ4nEiTo0BGlL5MymG73XA/tC3v3fA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -5811,17 +5646,17 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry - '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha - eslint: 8.23.1 + '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq + '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + eslint: 8.25.0 jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jest/27.1.0_4rkgrv37dc3yt652qtbljgksbi: - resolution: {integrity: sha512-sqojX5GKzQ8+PScF9rJ7dRMtu0NEIWsaDMLwRRvVE28mnWctZe5VAti394Nmut11vPwgxck9XnDmmjx/U9NowQ==} + /eslint-plugin-jest/27.1.2_nc3c3bdiyy2hxtl32wv7esmvmq: + resolution: {integrity: sha512-+nLOn5jvQKLUywXxXKsLuuENsB/FhygXOLI+l5QlF+ACGe0DM14FlpYrGZ4nEiTo0BGlL5MymG73XA/tC3v3fA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -5833,34 +5668,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my - '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - eslint: 8.24.0 - jest: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq + '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + eslint: 8.25.0 + jest: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc/39.3.6_eslint@8.23.1: - resolution: {integrity: sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==} - engines: {node: ^14 || ^16 || ^17 || ^18} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@es-joy/jsdoccomment': 0.31.0 - comment-parser: 1.3.1 - debug: 4.3.4 - escape-string-regexp: 4.0.0 - eslint: 8.23.1 - esquery: 1.4.0 - semver: 7.3.7 - spdx-expression-parse: 3.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-jsdoc/39.3.6_eslint@8.24.0: + /eslint-plugin-jsdoc/39.3.6_eslint@8.25.0: resolution: {integrity: sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==} engines: {node: ^14 || ^16 || ^17 || ^18} peerDependencies: @@ -5870,7 +5687,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.24.0 + eslint: 8.25.0 esquery: 1.4.0 semver: 7.3.7 spdx-expression-parse: 3.0.1 @@ -5886,25 +5703,13 @@ packages: vscode-json-languageservice: 4.2.1 dev: true - /eslint-plugin-markdown/3.0.0_eslint@8.23.1: - resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.23.1 - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-markdown/3.0.0_eslint@8.24.0: + /eslint-plugin-markdown/3.0.0_eslint@8.25.0: resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.24.0 + eslint: 8.25.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color @@ -5926,23 +5731,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.23.1: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.23.1 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-utils/3.0.0_eslint@8.24.0: + /eslint-utils/3.0.0_eslint@8.25.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.24.0 + eslint: 8.25.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5956,62 +5751,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.23.1: - resolution: {integrity: sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint/eslintrc': 1.3.2 - '@humanwhocodes/config-array': 0.10.5 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 - '@humanwhocodes/module-importer': 1.0.1 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.23.1 - eslint-visitor-keys: 3.3.0 - espree: 9.4.0 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.17.0 - globby: 11.1.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.0 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-sdsl: 4.1.4 - 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.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint/8.24.0: - resolution: {integrity: sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==} + /eslint/8.25.0: + resolution: {integrity: sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.2 + '@eslint/eslintrc': 1.3.3 '@humanwhocodes/config-array': 0.10.5 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 '@humanwhocodes/module-importer': 1.0.1 ajv: 6.12.6 chalk: 4.1.2 @@ -6020,7 +5766,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.25.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -6243,24 +5989,24 @@ packages: jest-regex-util: 26.0.0 dev: true - /expect/29.1.0: - resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} + /expect/29.2.0: + resolution: {integrity: sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.1.0 - jest-get-type: 29.0.0 - jest-matcher-utils: 29.1.0 - jest-message-util: 29.1.0 - jest-util: 29.1.0 + '@jest/expect-utils': 29.2.0 + jest-get-type: 29.2.0 + jest-matcher-utils: 29.2.0 + jest-message-util: 29.2.0 + jest-util: 29.2.0 dev: true - /express/4.18.1: - resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} + /express/4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.0 + body-parser: 1.20.1 content-disposition: 0.5.4 content-type: 1.0.4 cookie: 0.5.0 @@ -6279,7 +6025,7 @@ packages: parseurl: 1.3.3 path-to-regexp: 0.1.7 proxy-addr: 2.0.7 - qs: 6.10.3 + qs: 6.11.0 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.18.0 @@ -7786,35 +7532,35 @@ packages: throat: 5.0.0 dev: true - /jest-changed-files/29.0.0: - resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} + /jest-changed-files/29.2.0: + resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 p-limit: 3.1.0 dev: true - /jest-circus/29.1.1: - resolution: {integrity: sha512-Ii+3JIeLF3z8j2E7fPSjPjXJLBdbAcZyfEiALRQ1Fk+FWTIfuEfZrZcjSaBdz/k/waoq+bPf9x/vBCXIAyLLEQ==} + /jest-circus/29.2.0: + resolution: {integrity: sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/expect': 29.1.0 - '@jest/test-result': 29.1.0 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/environment': 29.2.0 + '@jest/expect': 29.2.0 + '@jest/test-result': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 - jest-each: 29.1.0 - jest-matcher-utils: 29.1.0 - jest-message-util: 29.1.0 - jest-runtime: 29.1.1 - jest-snapshot: 29.1.0 - jest-util: 29.1.0 + jest-each: 29.2.0 + jest-matcher-utils: 29.2.0 + jest-message-util: 29.2.0 + jest-runtime: 29.2.0 + jest-snapshot: 29.2.0 + jest-util: 29.2.0 p-limit: 3.1.0 - pretty-format: 29.1.0 + pretty-format: 29.2.0 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: @@ -7847,8 +7593,8 @@ packages: - utf-8-validate dev: true - /jest-cli/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: - resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} + /jest-cli/29.2.0_pt3oab7md4pun52yk6ejrzjiwq: + resolution: {integrity: sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -7857,16 +7603,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.1.1_ts-node@10.9.1 - '@jest/test-result': 29.1.0 - '@jest/types': 29.1.0 + '@jest/core': 29.2.0_ts-node@10.9.1 + '@jest/test-result': 29.2.0 + '@jest/types': 29.2.0 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq - jest-util: 29.1.0 - jest-validate: 29.1.0 + jest-config: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq + jest-util: 29.2.0 + jest-validate: 29.2.0 prompts: 2.4.2 yargs: 17.5.1 transitivePeerDependencies: @@ -7902,7 +7648,7 @@ packages: jest-validate: 26.6.2 micromatch: 4.0.5 pretty-format: 26.6.2 - ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a + ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga transitivePeerDependencies: - bufferutil - canvas @@ -7910,8 +7656,8 @@ packages: - utf-8-validate dev: true - /jest-config/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: - resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} + /jest-config/29.2.0_pt3oab7md4pun52yk6ejrzjiwq: + resolution: {integrity: sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -7923,29 +7669,29 @@ packages: optional: true dependencies: '@babel/core': 7.12.3 - '@jest/test-sequencer': 29.1.0 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 - babel-jest: 29.1.0_@babel+core@7.12.3 + '@jest/test-sequencer': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 + babel-jest: 29.2.0_@babel+core@7.12.3 chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.1.1 - jest-environment-node: 29.1.1 - jest-get-type: 29.0.0 - jest-regex-util: 29.0.0 - jest-resolve: 29.1.0 - jest-runner: 29.1.1 - jest-util: 29.1.0 - jest-validate: 29.1.0 + jest-circus: 29.2.0 + jest-environment-node: 29.2.0 + jest-get-type: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.2.0 + jest-runner: 29.2.0 + jest-util: 29.2.0 + jest-validate: 29.2.0 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.1.0 + pretty-format: 29.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_jrs6fgrkrfl5zdawlcdiuhuotq + ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga transitivePeerDependencies: - supports-color dev: true @@ -7960,14 +7706,14 @@ packages: pretty-format: 26.6.2 dev: true - /jest-diff/29.1.0: - resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} + /jest-diff/29.2.0: + resolution: {integrity: sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 29.0.0 - jest-get-type: 29.0.0 - pretty-format: 29.1.0 + diff-sequences: 29.2.0 + jest-get-type: 29.2.0 + pretty-format: 29.2.0 dev: true /jest-docblock/26.0.0: @@ -7977,8 +7723,8 @@ packages: detect-newline: 3.1.0 dev: true - /jest-docblock/29.0.0: - resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} + /jest-docblock/29.2.0: + resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 @@ -7995,15 +7741,15 @@ packages: pretty-format: 26.6.2 dev: true - /jest-each/29.1.0: - resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} + /jest-each/29.2.0: + resolution: {integrity: sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.2.0 chalk: 4.1.2 - jest-get-type: 29.0.0 - jest-util: 29.1.0 - pretty-format: 29.1.0 + jest-get-type: 29.2.0 + jest-util: 29.2.0 + pretty-format: 29.2.0 dev: true /jest-environment-jsdom/26.6.2: @@ -8013,7 +7759,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -8031,21 +7777,21 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true - /jest-environment-node/29.1.1: - resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} + /jest-environment-node/29.2.0: + resolution: {integrity: sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/fake-timers': 29.1.1 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 - jest-mock: 29.1.1 - jest-util: 29.1.0 + '@jest/environment': 29.2.0 + '@jest/fake-timers': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 + jest-mock: 29.2.0 + jest-util: 29.2.0 dev: true /jest-get-type/26.3.0: @@ -8053,8 +7799,8 @@ packages: engines: {node: '>= 10.14.2'} dev: true - /jest-get-type/29.0.0: - resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} + /jest-get-type/29.2.0: + resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -8064,7 +7810,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.5 - '@types/node': 18.8.1 + '@types/node': 18.11.0 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -8081,19 +7827,19 @@ packages: - supports-color dev: true - /jest-haste-map/29.1.0: - resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} + /jest-haste-map/29.2.0: + resolution: {integrity: sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.2.0 '@types/graceful-fs': 4.1.5 - '@types/node': 18.8.1 + '@types/node': 18.11.0 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 - jest-regex-util: 29.0.0 - jest-util: 29.1.0 - jest-worker: 29.1.0 + jest-regex-util: 29.2.0 + jest-util: 29.2.0 + jest-worker: 29.2.0 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: @@ -8118,7 +7864,7 @@ packages: ssim.js: 3.5.0 dev: true - /jest-image-snapshot/4.2.0_jest@29.1.1: + /jest-image-snapshot/4.2.0_jest@29.2.0: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8127,7 +7873,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8145,7 +7891,7 @@ packages: '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -8174,12 +7920,12 @@ packages: pretty-format: 26.6.2 dev: true - /jest-leak-detector/29.1.0: - resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} + /jest-leak-detector/29.2.0: + resolution: {integrity: sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.0.0 - pretty-format: 29.1.0 + jest-get-type: 29.2.0 + pretty-format: 29.2.0 dev: true /jest-matcher-utils/26.6.2: @@ -8192,14 +7938,14 @@ packages: pretty-format: 26.6.2 dev: true - /jest-matcher-utils/29.1.0: - resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} + /jest-matcher-utils/29.2.0: + resolution: {integrity: sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.1.0 - jest-get-type: 29.0.0 - pretty-format: 29.1.0 + jest-diff: 29.2.0 + jest-get-type: 29.2.0 + pretty-format: 29.2.0 dev: true /jest-message-util/26.6.2: @@ -8217,17 +7963,17 @@ packages: stack-utils: 2.0.5 dev: true - /jest-message-util/29.1.0: - resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} + /jest-message-util/29.2.0: + resolution: {integrity: sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 29.1.0 + '@jest/types': 29.2.0 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.1.0 + pretty-format: 29.2.0 slash: 3.0.0 stack-utils: 2.0.5 dev: true @@ -8237,16 +7983,16 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 dev: true - /jest-mock/29.1.1: - resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==} + /jest-mock/29.2.0: + resolution: {integrity: sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 - '@types/node': 18.8.1 - jest-util: 29.1.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 + jest-util: 29.2.0 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: @@ -8261,7 +8007,7 @@ packages: jest-resolve: 26.6.2 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: + /jest-pnp-resolver/1.2.2_jest-resolve@29.2.0: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -8270,7 +8016,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.1.0 + jest-resolve: 29.2.0 dev: true /jest-regex-util/26.0.0: @@ -8278,8 +8024,8 @@ packages: engines: {node: '>= 10.14.2'} dev: true - /jest-regex-util/29.0.0: - resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} + /jest-regex-util/29.2.0: + resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -8294,12 +8040,12 @@ packages: - supports-color dev: true - /jest-resolve-dependencies/29.1.1: - resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} + /jest-resolve-dependencies/29.2.0: + resolution: {integrity: sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-regex-util: 29.0.0 - jest-snapshot: 29.1.0 + jest-regex-util: 29.2.0 + jest-snapshot: 29.2.0 transitivePeerDependencies: - supports-color dev: true @@ -8318,16 +8064,16 @@ packages: slash: 3.0.0 dev: true - /jest-resolve/29.1.0: - resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} + /jest-resolve/29.2.0: + resolution: {integrity: sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 - jest-pnp-resolver: 1.2.2_jest-resolve@29.1.0 - jest-util: 29.1.0 - jest-validate: 29.1.0 + jest-haste-map: 29.2.0 + jest-pnp-resolver: 1.2.2_jest-resolve@29.2.0 + jest-util: 29.2.0 + jest-validate: 29.2.0 resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 @@ -8341,7 +8087,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -8365,29 +8111,29 @@ packages: - utf-8-validate dev: true - /jest-runner/29.1.1: - resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} + /jest-runner/29.2.0: + resolution: {integrity: sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.1.0 - '@jest/environment': 29.1.1 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/console': 29.2.0 + '@jest/environment': 29.2.0 + '@jest/test-result': 29.2.0 + '@jest/transform': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 chalk: 4.1.2 emittery: 0.10.2 graceful-fs: 4.2.10 - jest-docblock: 29.0.0 - jest-environment-node: 29.1.1 - jest-haste-map: 29.1.0 - jest-leak-detector: 29.1.0 - jest-message-util: 29.1.0 - jest-resolve: 29.1.0 - jest-runtime: 29.1.1 - jest-util: 29.1.0 - jest-watcher: 29.1.0 - jest-worker: 29.1.0 + jest-docblock: 29.2.0 + jest-environment-node: 29.2.0 + jest-haste-map: 29.2.0 + jest-leak-detector: 29.2.0 + jest-message-util: 29.2.0 + jest-resolve: 29.2.0 + jest-runtime: 29.2.0 + jest-util: 29.2.0 + jest-watcher: 29.2.0 + jest-worker: 29.2.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: @@ -8434,30 +8180,30 @@ packages: - utf-8-validate dev: true - /jest-runtime/29.1.1: - resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} + /jest-runtime/29.2.0: + resolution: {integrity: sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/fake-timers': 29.1.1 - '@jest/globals': 29.1.1 - '@jest/source-map': 29.0.0 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/environment': 29.2.0 + '@jest/fake-timers': 29.2.0 + '@jest/globals': 29.2.0 + '@jest/source-map': 29.2.0 + '@jest/test-result': 29.2.0 + '@jest/transform': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 - jest-message-util: 29.1.0 - jest-mock: 29.1.1 - jest-regex-util: 29.0.0 - jest-resolve: 29.1.0 - jest-snapshot: 29.1.0 - jest-util: 29.1.0 + jest-haste-map: 29.2.0 + jest-message-util: 29.2.0 + jest-mock: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.2.0 + jest-snapshot: 29.2.0 + jest-util: 29.2.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -8468,7 +8214,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 graceful-fs: 4.2.10 dev: true @@ -8496,8 +8242,8 @@ packages: - supports-color dev: true - /jest-snapshot/29.1.0: - resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} + /jest-snapshot/29.2.0: + resolution: {integrity: sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 @@ -8506,23 +8252,23 @@ packages: '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 - '@jest/expect-utils': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 + '@jest/expect-utils': 29.2.0 + '@jest/transform': 29.2.0 + '@jest/types': 29.2.0 '@types/babel__traverse': 7.18.2 '@types/prettier': 2.7.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 chalk: 4.1.2 - expect: 29.1.0 + expect: 29.2.0 graceful-fs: 4.2.10 - jest-diff: 29.1.0 - jest-get-type: 29.0.0 - jest-haste-map: 29.1.0 - jest-matcher-utils: 29.1.0 - jest-message-util: 29.1.0 - jest-util: 29.1.0 + jest-diff: 29.2.0 + jest-get-type: 29.2.0 + jest-haste-map: 29.2.0 + jest-matcher-utils: 29.2.0 + jest-message-util: 29.2.0 + jest-util: 29.2.0 natural-compare: 1.4.0 - pretty-format: 29.1.0 + pretty-format: 29.2.0 semver: 7.3.7 transitivePeerDependencies: - supports-color @@ -8533,19 +8279,19 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 chalk: 4.1.2 graceful-fs: 4.2.10 is-ci: 2.0.0 micromatch: 4.0.5 dev: true - /jest-util/29.1.0: - resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} + /jest-util/29.2.0: + resolution: {integrity: sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -8564,16 +8310,16 @@ packages: pretty-format: 26.6.2 dev: true - /jest-validate/29.1.0: - resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} + /jest-validate/29.2.0: + resolution: {integrity: sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.2.0 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.0.0 + jest-get-type: 29.2.0 leven: 3.1.0 - pretty-format: 29.1.0 + pretty-format: 29.2.0 dev: true /jest-watcher/26.6.2: @@ -8582,24 +8328,24 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.8.1 + '@types/node': 18.11.0 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 string-length: 4.0.2 dev: true - /jest-watcher/29.1.0: - resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} + /jest-watcher/29.2.0: + resolution: {integrity: sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.1.0 - '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@jest/test-result': 29.2.0 + '@jest/types': 29.2.0 + '@types/node': 18.11.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 - jest-util: 29.1.0 + jest-util: 29.2.0 string-length: 4.0.2 dev: true @@ -8607,16 +8353,17 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true - /jest-worker/29.1.0: - resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} + /jest-worker/29.2.0: + resolution: {integrity: sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.0 + jest-util: 29.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8637,8 +8384,8 @@ packages: - utf-8-validate dev: true - /jest/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: - resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} + /jest/29.2.0_pt3oab7md4pun52yk6ejrzjiwq: + resolution: {integrity: sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8647,10 +8394,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.1.1_ts-node@10.9.1 - '@jest/types': 29.1.0 + '@jest/core': 29.2.0_ts-node@10.9.1 + '@jest/types': 29.2.0 import-local: 3.1.0 - jest-cli: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest-cli: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq transitivePeerDependencies: - '@types/node' - supports-color @@ -8773,48 +8520,6 @@ packages: - utf-8-validate dev: true - /jsdom/20.0.0: - resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.0 - acorn-globals: 6.0.0 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.4.1 - domexception: 4.0.0 - escodegen: 2.0.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 7.1.1 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 3.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.8.1 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsdom/20.0.1: resolution: {integrity: sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A==} engines: {node: '>=14'} @@ -10617,8 +10322,8 @@ packages: engines: {node: '>=12.13.0'} dev: true - /pnpm/7.13.2: - resolution: {integrity: sha512-lOQRBcCWycLK1PB9KptqTd6iyiH7m4GRuS4G2j4b74yDx/XvRXtP/weYz8e0/ia7HX1pMF1vJCF48ssklq0TJQ==} + /pnpm/7.13.5: + resolution: {integrity: sha512-7+xyYPunBiAAJclpmUU2CTqe7uHipDjguUF2qmd9+r8hfZEVj0TnMTfblPnRF9aiVsmE4X3zRPlY3A5zk7r73w==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -10632,6 +10337,10 @@ packages: resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} dev: true + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss/8.4.16: resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} engines: {node: ^10 || ^12 || >=14} @@ -10690,8 +10399,8 @@ packages: react-is: 17.0.2 dev: true - /pretty-format/29.1.0: - resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} + /pretty-format/29.2.0: + resolution: {integrity: sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -10811,13 +10520,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true - /qs/6.10.3: - resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: true - /qs/6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -12110,6 +11812,10 @@ packages: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true + /throat/6.0.1: + resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} + dev: true + /throttleit/1.0.0: resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} dev: true @@ -12297,7 +12003,7 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-node/10.9.1_jrs6fgrkrfl5zdawlcdiuhuotq: + /ts-node/10.9.1_o6ib7qqltxpe7qrskddglns2ga: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12316,7 +12022,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.8.1 + '@types/node': 18.11.0 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -12359,37 +12065,6 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 18.8.1 - acorn: 8.8.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.8.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -12398,16 +12073,6 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true - /tsutils/3.21.0_typescript@4.8.3: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.8.3 - dev: true - /tsutils/3.21.0_typescript@4.8.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -12495,12 +12160,6 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript/4.8.3: - resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - /typescript/4.8.4: resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} @@ -12903,8 +12562,8 @@ packages: - terser dev: true - /vite/3.1.4: - resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==} + /vite/3.1.8: + resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -12922,7 +12581,7 @@ packages: terser: optional: true dependencies: - esbuild: 0.15.10 + esbuild: 0.15.11 postcss: 8.4.16 resolve: 1.22.1 rollup: 2.78.1 @@ -12930,7 +12589,7 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_ml5vzxpqibyfsid5kdls3ch6aa: + /vitepress-plugin-mermaid/2.0.8_orex2agllvbrjwlm6w3vfszwae: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 @@ -12939,10 +12598,10 @@ packages: dependencies: mermaid: 9.1.7 vite-plugin-md: 0.20.4_ddevayggxncg4aofvrlbkut4ha - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vitepress: 1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y: + /vitepress-plugin-search/1.0.4-alpha.11_edcjrozpkfaskrqytnhbwsc3ky: resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -12950,23 +12609,23 @@ packages: vitepress: ^1.0.0-alpha.13 vue: '3' dependencies: - vite: 3.1.4 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vite: 3.1.8 + vitepress: 1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.40 dev: true - /vitepress/1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-0FIUZB6JGXio7SELDDUkyQoMjmO/UAXqDXmznzOsBKsdZ3EHlyb6NaP/V/BMfN5S8+GV88ScbIL0jd/pDzkLBg==} + /vitepress/1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-D/tkoDW16uUZ9pnWd28Kk1vX26zNiTml3m9oGbfx2pAfYg99PHd1GceZyEm4jZsJU0+n9S++1ctFxoQvsq376A==} hasBin: true dependencies: '@docsearch/css': 3.2.1 '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 3.1.2_vite@3.1.4+vue@3.2.40 - '@vue/devtools-api': 6.4.3 + '@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.40 + '@vue/devtools-api': 6.4.4 '@vueuse/core': 9.3.0_vue@3.2.40 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.1.4 + vite: 3.1.8 vue: 3.2.40 transitivePeerDependencies: - '@algolia/client-search' @@ -13007,7 +12666,7 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@vitest/ui': 0.24.3 chai: 4.3.6 debug: 4.3.4 @@ -13016,7 +12675,7 @@ packages: local-pkg: 0.4.2 tinypool: 0.2.4 tinyspy: 1.0.2 - vite: 3.1.4 + vite: 3.1.8 transitivePeerDependencies: - less - sass @@ -13049,7 +12708,7 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.8.1 + '@types/node': 18.11.0 '@vitest/ui': 0.24.3 chai: 4.3.6 debug: 4.3.4 @@ -13060,7 +12719,7 @@ packages: tinybench: 2.3.0 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.1.4 + vite: 3.1.8 transitivePeerDependencies: - less - sass @@ -13148,6 +12807,7 @@ packages: /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. dependencies: browser-process-hrtime: 1.0.0 dev: true @@ -13385,19 +13045,6 @@ packages: optional: true dev: true - /ws/8.8.1: - resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} - 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 - dev: true - /ws/8.9.0: resolution: {integrity: sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==} engines: {node: '>=10.0.0'} From fde3964b5058643295e21c0abe433cdaa0926ee9 Mon Sep 17 00:00:00 2001 From: devcer <viswanathamsantosh@gmail.com> Date: Mon, 17 Oct 2022 09:31:58 +0530 Subject: [PATCH 0413/1038] removed eslint-ignore statements --- packages/mermaid/src/dagre-wrapper/intersect/index.js | 1 - packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts | 1 - packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts | 1 - packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts | 1 - packages/mermaid/src/utils.ts | 1 - 5 files changed, 5 deletions(-) diff --git a/packages/mermaid/src/dagre-wrapper/intersect/index.js b/packages/mermaid/src/dagre-wrapper/intersect/index.js index 4053ea097e..e33b6dd510 100644 --- a/packages/mermaid/src/dagre-wrapper/intersect/index.js +++ b/packages/mermaid/src/dagre-wrapper/intersect/index.js @@ -1,5 +1,4 @@ /* - // eslint-disable-next-line @cspell/spellchecker * Borrowed with love from from dagre-d3. Many thanks to cpettitt! */ diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts index eb8a38f607..09df96f12f 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck TODO: Fix TS import moment from 'moment-mini'; import ganttDb from './ganttDb'; diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index f7de8a1113..31d3d05614 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck TODO: fix file import { select, selectAll } from 'd3'; import svgDraw, { drawText, fixLifeLineHeights } from './svgDraw'; diff --git a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts index da5f44eec5..290b19e303 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck TODO: fix file import { select } from 'd3'; import svgDraw from './svgDraw'; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 78065d6f2a..eecda41e99 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @cspell/spellchecker // @ts-nocheck : TODO Fix ts errors import { sanitizeUrl } from '@braintree/sanitize-url'; import { From 8b64ad971a430862bd4d913bbe5b7248422f7b85 Mon Sep 17 00:00:00 2001 From: devcer <viswanathamsantosh@gmail.com> Date: Mon, 17 Oct 2022 09:41:59 +0530 Subject: [PATCH 0414/1038] configured 3 more words in cspell.json --- applitools.config.js | 1 - cSpell.json | 6 +++++- .../mermaid/src/dagre-wrapper/intersect/intersect-line.js | 1 - packages/mermaid/src/docs.mts | 1 - 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/applitools.config.js b/applitools.config.js index 5c1c4bb49d..1c0607868c 100644 --- a/applitools.config.js +++ b/applitools.config.js @@ -1,4 +1,3 @@ -/* eslint-disable @cspell/spellchecker */ // eslint-disable-next-line @typescript-eslint/no-var-requires const { defineConfig } = require('cypress'); diff --git a/cSpell.json b/cSpell.json index 16cc692c0c..2bf10c53a6 100644 --- a/cSpell.json +++ b/cSpell.json @@ -58,7 +58,11 @@ "cpettitt", "antiscript", "ts-nocheck", - "setupGraphViewbox" + "setupGraphViewbox", + "flatmap", + "Kaufmann", + "viewports", + "edgechromium" ], "patterns": [ { diff --git a/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js b/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js index 0e6750abd9..e97ae6f0dc 100644 --- a/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js +++ b/packages/mermaid/src/dagre-wrapper/intersect/intersect-line.js @@ -7,7 +7,6 @@ * @param q2 */ function intersectLine(p1, p2, q1, q2) { - // eslint-disable-next-line @cspell/spellchecker // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994, // p7 and p473. diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 7c6de2af03..d7d5f23cd6 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -39,7 +39,6 @@ import { posix, dirname } from 'path'; import prettier from 'prettier'; import { remark } from 'remark'; // @ts-ignore No typescript declaration file -// eslint-disable-next-line @cspell/spellchecker import flatmap from 'unist-util-flatmap'; const MERMAID_MAJOR_VERSION = ( From 97a842e651b3569322f837b85aaf98da77bc69d4 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 17 Oct 2022 11:45:19 +0530 Subject: [PATCH 0415/1038] fix: Build types --- package.json | 2 +- packages/mermaid-mindmap/src/mermaidUtils.ts | 2 +- packages/mermaid-mindmap/src/mindmapDb.ts | 2 +- packages/mermaid/src/mermaid.ts | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index dd436e6158..c0c908e8a7 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "scripts": { "build:mermaid": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts --mermaid", "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts", - "build:types": "concurrently \"tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly\" \"tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly\"", + "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts index c3d70be135..51f545c757 100644 --- a/packages/mermaid-mindmap/src/mermaidUtils.ts +++ b/packages/mermaid-mindmap/src/mermaidUtils.ts @@ -1,4 +1,4 @@ -import type { MermaidConfig } from 'mermaid/dist/config.type'; +import type { MermaidConfig } from 'mermaid'; const warning = (s: string) => { // Todo remove debug code diff --git a/packages/mermaid-mindmap/src/mindmapDb.ts b/packages/mermaid-mindmap/src/mindmapDb.ts index 3b07bd8826..890a76b7e0 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.ts +++ b/packages/mermaid-mindmap/src/mindmapDb.ts @@ -1,6 +1,6 @@ /** Created by knut on 23-07-2022. */ import { sanitizeText, getConfig, log } from './mermaidUtils'; -import type { DetailedError } from 'mermaid/dist/utils'; +import type { DetailedError } from 'mermaid'; interface Node { id: number; diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index ae6c62547c..925e1e2db9 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -2,13 +2,14 @@ * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid * functionality and to render the diagrams to svg code! */ -import { MermaidConfig } from './config.type'; +import type { MermaidConfig } from './config.type'; import { log } from './logger'; import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; import { addDetector } from './diagram-api/detectType'; -import { isDetailedError } from './utils'; +import { isDetailedError, DetailedError } from './utils'; +export type { MermaidConfig, DetailedError }; /** * ## init * From 2fd94db686bca543cf990f4d04d4411c60af3255 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 17 Oct 2022 14:01:44 +0530 Subject: [PATCH 0416/1038] chore: Add CORS to vite dev --- .vite/server.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.vite/server.ts b/.vite/server.ts index c62b6236ab..334398dd83 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -1,7 +1,15 @@ -import express from 'express'; +import express, { NextFunction, Request, Response } from 'express'; import { createServer as createViteServer } from 'vite'; // import { getBuildConfig } from './build'; +const cors = (req: Request, res: Response, next: NextFunction) => { + res.header('Access-Control-Allow-Origin', '*'); + res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); + res.header('Access-Control-Allow-Headers', 'Content-Type'); + + next(); +}; + async function createServer() { const app = express(); @@ -12,6 +20,7 @@ async function createServer() { appType: 'custom', // don't include Vite's default HTML handling middlewares }); + app.use(cors); app.use(express.static('./packages/mermaid/dist')); app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(express.static('./packages/mermaid-mindmap/dist')); From 752a6b2cb0950baa4636a3e7f4fa7f7e486934f0 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Mon, 17 Oct 2022 10:46:46 +0200 Subject: [PATCH 0417/1038] #3687 Separating the render specific data from the data related to parsing --- packages/mermaid-mindmap/package.json | 2 +- packages/mermaid-mindmap/src/mindmapDb.js | 10 ++-------- .../mermaid-mindmap/src/mindmapRenderer.js | 5 +++-- packages/mermaid-mindmap/src/svgDraw.js | 18 ++++++++++++++++-- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 847eeffef2..f13ed0cbc4 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.0-rc3", + "version": "9.2.0-rc4", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid-mindmap.core.mjs", "module": "dist/mermaid-mindmap.core.mjs", diff --git a/packages/mermaid-mindmap/src/mindmapDb.js b/packages/mermaid-mindmap/src/mindmapDb.js index 2ae98c223b..4785051a46 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.js +++ b/packages/mermaid-mindmap/src/mindmapDb.js @@ -3,11 +3,10 @@ import { sanitizeText, getConfig, log } from './mermaidUtils'; let nodes = []; let cnt = 0; -let elements = {}; + export const clear = () => { nodes = []; cnt = 0; - elements = {}; }; const getParent = function (level) { @@ -27,7 +26,7 @@ export const addNode = (level, id, descr, type) => { log.info('addNode', level, id, descr, type); const conf = getConfig(); const node = { - id: cnt++, + id: `id-${cnt++}`, nodeId: sanitizeText(id), level, descr: sanitizeText(descr), @@ -99,10 +98,6 @@ export const getType = (startStr, endStr) => { } }; -export const setElementForId = (id, element) => { - elements[id] = element; -}; - export const decorateNode = (decoration) => { const node = nodes[nodes.length - 1]; if (decoration && decoration.icon) { @@ -141,4 +136,3 @@ export const setErrorHandler = (handler) => { export const getLogger = () => log; export const getNodeById = (id) => nodes[id]; -export const getElementById = (id) => elements[id]; diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index f69b0b381a..c2ac075744 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -1,7 +1,7 @@ /** Created by knut on 14-12-11. */ import { select } from 'd3'; import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; -import svgDraw from './svgDraw'; +import svgDraw, { getElementById, clearElementRefs } from './svgDraw'; import cytoscape from 'cytoscape'; import coseBilkent from 'cytoscape-cose-bilkent'; import * as db from './mindmapDb'; @@ -155,7 +155,7 @@ function positionNodes(cy) { data.x = node.position().x; data.y = node.position().y; svgDraw.positionNode(data); - const el = db.getElementById(data.nodeId); + const el = getElementById(data.nodeId); log.info('Id:', id, 'Position: (', node.position().x, ', ', node.position().y, ')', data); el.attr( 'transform', @@ -179,6 +179,7 @@ export const draw = async (text, id, version, diagObj) => { // This is done only for throwing the error if the text is not valid. diagObj.db.clear(); + clearElementRefs(); // Parse the graph definition diagObj.parser.parse(text); diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid-mindmap/src/svgDraw.js index 1246b1cb91..782875a6b2 100644 --- a/packages/mermaid-mindmap/src/svgDraw.js +++ b/packages/mermaid-mindmap/src/svgDraw.js @@ -259,7 +259,7 @@ export const drawNode = function (elem, node, fullSection, conf) { // if (typeof node.x !== 'undefined' && typeof node.y !== 'undefined') { // nodeElem.attr('transform', 'translate(' + node.x + ',' + node.y + ')'); // } - db.setElementForId(node.id, nodeElem); + setElementById(node.id, nodeElem); return node.height; }; @@ -286,7 +286,7 @@ export const drawEdge = function drawEdge(edgesElem, mindmap, parent, depth, ful }; export const positionNode = function (node) { - const nodeElem = db.getElementById(node.id); + const nodeElem = getElementById(node.id); const x = node.x || 0; const y = node.y || 0; @@ -295,3 +295,17 @@ export const positionNode = function (node) { }; export default { drawNode, positionNode, drawEdge }; + +let elements = {}; + +export const setElementById = (id, element) => { + elements[id] = element; +}; + +export const getElementById = (id) => { + return elements[id]; +}; + +export const clearElementRefs = () => { + elements = {}; +}; From e86d7894f525bc4c3989dec8b8a84ec589078120 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Mon, 17 Oct 2022 10:51:41 +0200 Subject: [PATCH 0418/1038] #3680 Add font familiy in a way that does remove other configuration --- packages/mermaid/src/mermaidAPI.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7c967e5fd9..df6ab1a2be 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -455,10 +455,11 @@ const handleDirective = function (p: any, directive: any, type: string): void { /** @param {MermaidConfig} options */ async function initialize(options: MermaidConfig) { // Handle legacy location of font-family configuration - if (options?.fontFamily) { - if (!options.themeVariables?.fontFamily) { - options.themeVariables = { fontFamily: options.fontFamily }; + if (options.fontFamily) { + if (!options.themeVariables) { + options.themeVariables = {}; } + options.themeVariables.fontFamily = options.fontFamily; } // Set default options From 53bc747e9d6284e4982a19b369443939e873070c Mon Sep 17 00:00:00 2001 From: Ivan Sinek <isinek@gmail.com> Date: Mon, 17 Oct 2022 14:29:58 +0200 Subject: [PATCH 0419/1038] fix: gantt demo diagrams (#3655) --- demos/gantt.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/demos/gantt.html b/demos/gantt.html index 749208f995..227fdb1d22 100644 --- a/demos/gantt.html +++ b/demos/gantt.html @@ -74,22 +74,22 @@ <h1>Gantt chart diagram demos</h1> <pre class="mermaid"> gantt title Hide today marker (vertical line should not be visible) - dateFormat YYYY-MM-DD - axisFormat %d + dateFormat Z + axisFormat %d/%m todayMarker off section Section1 - Today: 1, -1h + Today: 1, -01:00, 5min </pre> <hr /> <pre class="mermaid"> gantt title Style today marker (vertical line should be 5px wide and half-transparent blue) - dateFormat YYYY-MM-DD - axisFormat %d + dateFormat Z + axisFormat %d/%m todayMarker stroke-width:5px,stroke:#00f,opacity:0.5 section Section1 - Today: 1, -1h + Today: 1, -01:00, 5min </pre> <hr /> From 5803d0abaff73fe8ed50ced1c05c96d0a42b6bbb Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 17 Oct 2022 09:46:10 -0400 Subject: [PATCH 0420/1038] update docs --- docs/entityRelationshipDiagram.md | 26 +++++++++++++++++++ .../src/docs/entityRelationshipDiagram.md | 25 ++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/docs/entityRelationshipDiagram.md b/docs/entityRelationshipDiagram.md index 78d058e786..97a0a1da31 100644 --- a/docs/entityRelationshipDiagram.md +++ b/docs/entityRelationshipDiagram.md @@ -110,10 +110,34 @@ Cardinality is a property that describes how many elements of another entity can | `}o` | `o{` | Zero or more (no upper limit) | | `}\|` | `\|{` | One or more (no upper limit) | +**Aliases** + +| Value (left) | Value (right) | Alias for | +| :----------: | :-----------: | ------------ | +| one or zero | one or zero | Zero or one | +| zero or one | zero or one | Zero or one | +| one or more | one or more | One or more | +| one or many | one or many | One or more | +| many(1) | many(1) | One or more | +| 1+ | 1+ | One or more | +| zero or more | zero or more | Zero or more | +| zero or many | zero or many | Zero or more | +| many(0) | many(1) | Zero or more | +| 0+ | 0+ | Zero or more | +| only one | only one | Exactly one | +| 1 | 1 | Exactly one | + ### Identification Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line: +**Aliases** + +| Value | Alias for | +| :-----------: | :---------------: | +| to | _identifying_ | +| optionally to | _non-identifying_ | + ```mermaid-example erDiagram CAR ||--o{ NAMED-DRIVER : allows @@ -218,6 +242,7 @@ erDiagram string lastName int age } + MANUFACTURER only one to zero or more CAR ``` ```mermaid @@ -236,6 +261,7 @@ erDiagram string lastName int age } + MANUFACTURER only one to zero or more CAR ``` ### Other Things diff --git a/packages/mermaid/src/docs/entityRelationshipDiagram.md b/packages/mermaid/src/docs/entityRelationshipDiagram.md index 341c9147c4..e52b0df4c1 100644 --- a/packages/mermaid/src/docs/entityRelationshipDiagram.md +++ b/packages/mermaid/src/docs/entityRelationshipDiagram.md @@ -85,10 +85,34 @@ Cardinality is a property that describes how many elements of another entity can | `}o` | `o{` | Zero or more (no upper limit) | | `}\|` | `\|{` | One or more (no upper limit) | +**Aliases** + +| Value (left) | Value (right) | Alias for | +| :----------: | :-----------: | ------------ | +| one or zero | one or zero | Zero or one | +| zero or one | zero or one | Zero or one | +| one or more | one or more | One or more | +| one or many | one or many | One or more | +| many(1) | many(1) | One or more | +| 1+ | 1+ | One or more | +| zero or more | zero or more | Zero or more | +| zero or many | zero or many | Zero or more | +| many(0) | many(1) | Zero or more | +| 0+ | 0+ | Zero or more | +| only one | only one | Exactly one | +| 1 | 1 | Exactly one | + ### Identification Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line: +**Aliases** + +| Value | Alias for | +| :-----------: | :---------------: | +| to | _identifying_ | +| optionally to | _non-identifying_ | + ```mmd erDiagram CAR ||--o{ NAMED-DRIVER : allows @@ -155,6 +179,7 @@ erDiagram string lastName int age } + MANUFACTURER only one to zero or more CAR ``` ### Other Things From d41efa413c65e0db3d9b39d37ec5157dd7f83565 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 17 Oct 2022 09:58:04 -0400 Subject: [PATCH 0421/1038] add more docs --- docs/classDiagram.md | 8 ++++++++ packages/mermaid/src/docs/classDiagram.md | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/docs/classDiagram.md b/docs/classDiagram.md index 60dc6c3906..f89b4b002a 100644 --- a/docs/classDiagram.md +++ b/docs/classDiagram.md @@ -11,7 +11,9 @@ Mermaid can render class diagrams. ```mermaid-example classDiagram + note "From Duck till Zebra" Animal <|-- Duck + note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging" Animal <|-- Fish Animal <|-- Zebra Animal : +int age @@ -35,7 +37,9 @@ classDiagram ```mermaid classDiagram + note "From Duck till Zebra" Animal <|-- Duck + note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging" Animal <|-- Fish Animal <|-- Zebra Animal : +int age @@ -549,6 +553,10 @@ You would define these actions on a separate line after all classes have been de - (_optional_) tooltip is a string to be displayed when hovering over element (note: The styles of the tooltip are set by the class .mermaidTooltip.) - note: callback function will be called with the nodeId as parameter. +## Notes + +It is possible to add notes on digram using `note "line1\nline2"` or note for class using `note for class "line1\nline2"` + ### Examples _URL Link:_ diff --git a/packages/mermaid/src/docs/classDiagram.md b/packages/mermaid/src/docs/classDiagram.md index 362e90bc6c..3ca564e55d 100644 --- a/packages/mermaid/src/docs/classDiagram.md +++ b/packages/mermaid/src/docs/classDiagram.md @@ -9,7 +9,9 @@ Mermaid can render class diagrams. ```mermaid-example classDiagram + note "From Duck till Zebra" Animal <|-- Duck + note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging" Animal <|-- Fish Animal <|-- Zebra Animal : +int age @@ -375,6 +377,10 @@ click className href "url" "tooltip" - (_optional_) tooltip is a string to be displayed when hovering over element (note: The styles of the tooltip are set by the class .mermaidTooltip.) - note: callback function will be called with the nodeId as parameter. +## Notes + +It is possible to add notes on digram using `note "line1\nline2"` or note for class using `note for class "line1\nline2"` + ### Examples _URL Link:_ From 3108e896b6f17854da7e36584469ce066d1338f5 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 17 Oct 2022 12:03:51 -0400 Subject: [PATCH 0422/1038] add renedering (cypress) tests --- .../integration/rendering/erDiagram.spec.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js index 0f9084e7c6..d2daa2cfa7 100644 --- a/cypress/integration/rendering/erDiagram.spec.js +++ b/cypress/integration/rendering/erDiagram.spec.js @@ -255,4 +255,22 @@ describe('Entity Relationship Diagram', () => { ); cy.get('svg'); }); + + it('should render entities with aliases', () => { + renderGraph( + ` + erDiagram + T1 one or zero to one or more T2 : test + T2 one or many optionally to zero or one T3 : test + T3 zero or more to zero or many T4 : test + T4 many(0) to many(1) T5 : test + T5 many optionally to one T6 : test + T6 only one optionally to only one T1 : test + T4 0+ to 1+ T6 : test + T1 1 to 1 T3 : test + `, + { logLevel: 1 } + ); + cy.get('svg'); + }); }); From cead1f36f477aef9a2f003e3671e90b2d11df199 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 17 Oct 2022 12:13:22 -0400 Subject: [PATCH 0423/1038] add basic render (cypress test for notes --- .../integration/rendering/classDiagram.spec.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cypress/integration/rendering/classDiagram.spec.js b/cypress/integration/rendering/classDiagram.spec.js index 8cf410d052..16601652d5 100644 --- a/cypress/integration/rendering/classDiagram.spec.js +++ b/cypress/integration/rendering/classDiagram.spec.js @@ -407,4 +407,21 @@ describe('Class diagram', () => { // // expect(svg).to.not.have.attr('style'); // }); // }); + + it('19: should render a simple class diagram with notes', () => { + imgSnapshotTest( + ` + classDiagram + note "I love this diagram!\nDo you love it?" + class Class10 { + <<service>> + int id + size() + } + note for Class10 "Cool class\nI said it's very cool class!" + `, + { logLevel: 1 } + ); + cy.get('svg'); + }); }); From 75e11b1fdeae1e4aa62fdcd4a6ebc752c3418e73 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 17 Oct 2022 12:33:23 -0400 Subject: [PATCH 0424/1038] add basic render (cypress) test for classDiagram-v2 too --- .../rendering/classDiagram-v2.spec.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cypress/integration/rendering/classDiagram-v2.spec.js b/cypress/integration/rendering/classDiagram-v2.spec.js index d285a92374..e36693a652 100644 --- a/cypress/integration/rendering/classDiagram-v2.spec.js +++ b/cypress/integration/rendering/classDiagram-v2.spec.js @@ -478,4 +478,22 @@ describe('Class diagram V2', () => { ); cy.get('svg'); }); + + it('18: should render a simple class diagram with notes', () => { + imgSnapshotTest( + ` + classDiagram-v2 + note "I love this diagram!\nDo you love it?" + class Class10 { + <<service>> + int id + size() + } + note for Class10 "Cool class\nI said it's very cool class!" + + `, + { logLevel: 1, flowchart: { htmlLabels: false } } + ); + cy.get('svg'); + }); }); From 20751a64966853ce25400414a838a0d440c06ab4 Mon Sep 17 00:00:00 2001 From: Dima Kurilo <dkurilo@gmail.com> Date: Mon, 17 Oct 2022 13:20:17 -0400 Subject: [PATCH 0425/1038] fix cypress tests for erDiagram, add eslint-plugin-no-only-tests plugin because of this comment: https://github.com/mermaid-js/mermaid/pull/3647#issuecomment-1281163858 --- .eslintrc.json | 10 ++++++++-- cypress/integration/rendering/erDiagram.spec.js | 2 +- package.json | 1 + pnpm-lock.yaml | 7 +++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index b8053795ec..6e04d60bb3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -21,7 +21,7 @@ "plugin:markdown/recommended", "prettier" ], - "plugins": ["@typescript-eslint", "html", "jest", "jsdoc", "json"], + "plugins": ["@typescript-eslint", "no-only-tests", "html", "jest", "jsdoc", "json"], "rules": { "no-console": "error", "no-prototype-builtins": "off", @@ -48,7 +48,13 @@ } ], "json/*": ["error", "allowComments"], - "no-empty": ["error", { "allowEmptyCatch": true }] + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], + "no-only-tests/no-only-tests": "error" }, "overrides": [ { diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js index 0f9084e7c6..0637270247 100644 --- a/cypress/integration/rendering/erDiagram.spec.js +++ b/cypress/integration/rendering/erDiagram.spec.js @@ -167,7 +167,7 @@ describe('Entity Relationship Diagram', () => { cy.get('svg'); }); - it.only('should render entities with generic and array attributes', () => { + it('should render entities with generic and array attributes', () => { renderGraph( ` erDiagram diff --git a/package.json b/package.json index a358689f3c..1d2fab0e44 100644 --- a/package.json +++ b/package.json @@ -118,6 +118,7 @@ "eslint-plugin-jsdoc": "39.3.6", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-no-only-tests": "^3.0.0", "express": "4.18.2", "globby": "13.1.2", "husky": "8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f8910113ce..94a088dccb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,6 +44,7 @@ importers: eslint-plugin-jsdoc: 39.3.6 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 + eslint-plugin-no-only-tests: ^3.0.0 express: 4.18.2 fast-clone: 1.5.13 globby: 13.1.2 @@ -125,6 +126,7 @@ importers: eslint-plugin-jsdoc: 39.3.6_eslint@8.25.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 + eslint-plugin-no-only-tests: 3.0.0 express: 4.18.2 globby: 13.1.2 husky: 8.0.1 @@ -5715,6 +5717,11 @@ packages: - supports-color dev: true + /eslint-plugin-no-only-tests/3.0.0: + resolution: {integrity: sha512-I0PeXMs1vu21ap45hey4HQCJRqpcoIvGcNTPJe+UhUm8TwjQ6//mCrDqF8q0WS6LgmRDwQ4ovQej0AQsAHb5yg==} + engines: {node: '>=5.0.0'} + dev: true + /eslint-scope/5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} From c8b377bf74a55b8fdfa3ed2af25987d6301346f9 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Mon, 17 Oct 2022 19:32:47 -0300 Subject: [PATCH 0426/1038] docs: small improvements --- .github/gh-pages-publish.yml | 2 +- .github/workflows/docs.yml | 6 +- .gitignore | 2 +- CONTRIBUTING.md | 12 +- docs/.vitepress/config.ts | 9 +- docs/.vitepress/theme/custom.css | 22 +- docs/.vitepress/theme/index.ts | 1 + docs/CHANGELOG.md | 1050 +++++++++++++++++ docs/community/development.md | 2 +- docs/community/n00b-overview.md | 2 +- docs/community/newDiagram.md | 2 +- docs/community/security.md | 2 +- docs/config/8.6.0_docs.md | 2 +- docs/config/Tutorials.md | 2 +- docs/config/accessibility.md | 2 +- docs/config/configuration.md | 2 +- docs/config/directives.md | 2 +- docs/config/mermaidCLI.md | 2 +- docs/config/n00b-advanced.md | 2 +- docs/config/setup/README.md | 2 +- docs/config/setup/modules/config.md | 24 +- docs/config/setup/modules/defaultConfig.md | 6 +- docs/config/setup/modules/mermaidAPI.md | 8 +- docs/config/theming.md | 2 +- docs/config/usage.md | 2 +- docs/edit.md | 9 - docs/index.md | 5 +- docs/intro/index.md | 2 +- docs/intro/n00b-gettingStarted.md | 2 +- docs/intro/n00b-syntaxReference.md | 2 +- docs/misc/faq.md | 2 +- docs/misc/integrations.md | 2 +- docs/public/android-icon-144x144.png | Bin 0 -> 4524 bytes docs/public/android-icon-192x192.png | Bin 0 -> 5257 bytes docs/public/android-icon-36x36.png | Bin 0 -> 1513 bytes docs/public/android-icon-48x48.png | Bin 0 -> 1791 bytes docs/public/android-icon-72x72.png | Bin 0 -> 2283 bytes docs/public/android-icon-96x96.png | Bin 0 -> 3114 bytes docs/public/apple-icon-114x114.png | Bin 0 -> 3648 bytes docs/public/apple-icon-120x120.png | Bin 0 -> 3781 bytes docs/public/apple-icon-144x144.png | Bin 0 -> 4524 bytes docs/public/apple-icon-152x152.png | Bin 0 -> 4819 bytes docs/public/apple-icon-180x180.png | Bin 0 -> 5852 bytes docs/public/apple-icon-57x57.png | Bin 0 -> 1989 bytes docs/public/apple-icon-60x60.png | Bin 0 -> 2047 bytes docs/public/apple-icon-72x72.png | Bin 0 -> 2283 bytes docs/public/apple-icon-76x76.png | Bin 0 -> 2421 bytes docs/public/apple-icon-precomposed.png | Bin 0 -> 5452 bytes docs/public/apple-icon.png | Bin 0 -> 5452 bytes docs/public/browserconfig.xml | 2 + docs/public/favicon-16x16.png | Bin 0 -> 1038 bytes docs/public/favicon-32x32.png | Bin 0 -> 1332 bytes docs/public/favicon-96x96.png | Bin 0 -> 3114 bytes docs/public/favicon.ico | Bin 0 -> 1150 bytes docs/public/manifest.json | 41 + docs/public/mermaid-logo.svg | 6 + docs/public/ms-icon-144x144.png | Bin 0 -> 4524 bytes docs/public/ms-icon-150x150.png | Bin 0 -> 4761 bytes docs/public/ms-icon-310x310.png | Bin 0 -> 12500 bytes docs/public/ms-icon-70x70.png | Bin 0 -> 2279 bytes docs/syntax/c4c.md | 2 +- docs/syntax/classDiagram.md | 2 +- docs/syntax/entityRelationshipDiagram.md | 2 +- docs/syntax/examples.md | 2 +- docs/syntax/flowchart.md | 16 +- docs/syntax/gantt.md | 4 +- docs/syntax/gitgraph.md | 2 +- docs/syntax/mindmap.md | 2 +- docs/syntax/pie.md | 2 +- docs/syntax/requirementDiagram.md | 2 +- docs/syntax/sequenceDiagram.md | 2 +- docs/syntax/stateDiagram.md | 2 +- .../{user-journey.md => userJourney.md} | 2 +- docs/vite.config.ts | 3 +- packages/mermaid/.lintstagedrc.json | 4 +- .../mermaid/docs/.vitepress/theme/custom.css | 13 - packages/mermaid/docs/edit.md | 7 - packages/mermaid/package.json | 20 +- packages/mermaid/src/docs.mts | 2 +- .../{ => src}/docs/.vitepress/config.ts | 9 +- .../docs/.vitepress/mermaid-markdown-all.ts | 0 .../src/docs/.vitepress/theme/custom.css | 17 + .../{ => src}/docs/.vitepress/theme/index.ts | 1 + packages/mermaid/src/docs/CHANGELOG.md | 4 +- .../{ => src}/docs/community/development.md | 0 .../{ => src}/docs/community/img/er.png | Bin .../{ => src}/docs/community/n00b-overview.md | 0 .../{ => src}/docs/community/newDiagram.md | 0 .../{ => src}/docs/community/security.md | 0 .../{ => src}/docs/config/8.6.0_docs.md | 0 .../{ => src}/docs/config/Tutorials.md | 0 .../{ => src}/docs/config/accessibility.md | 0 .../{ => src}/docs/config/configuration.md | 0 .../{ => src}/docs/config/directives.md | 0 .../img/accessibility-div-example-2.png | Bin .../config/img/accessibility-div-example.png | Bin .../docs/config/img/assignWithDepth.png | Bin .../img/object.assign without depth.png | Bin .../config/img/python-mermaid-integration.png | Bin .../docs/config/img/wrapped text.png | Bin .../{ => src}/docs/config/mermaidCLI.md | 0 .../{ => src}/docs/config/n00b-advanced.md | 0 .../mermaid/{ => src}/docs/config/theming.md | 0 .../mermaid/{ => src}/docs/config/usage.md | 0 packages/mermaid/src/docs/img/er.png | Bin 0 -> 56576 bytes packages/mermaid/{ => src}/docs/index.md | 3 +- .../docs/intro/img/Code-Preview-Config.png | Bin .../docs/intro/img/Live-Editor-Choices.png | Bin .../intro/img/book-banner-post-release.jpg | Bin .../mermaid/{ => src}/docs/intro/index.md | 2 +- .../docs/intro/n00b-gettingStarted.md | 0 .../docs/intro/n00b-syntaxReference.md | 0 packages/mermaid/{ => src}/docs/misc/faq.md | 0 .../{ => src}/docs/misc/integrations.md | 0 .../mermaid/{ => src}/docs/public/.nojekyll | 0 .../src/docs/public/android-icon-144x144.png | Bin 0 -> 4524 bytes .../src/docs/public/android-icon-192x192.png | Bin 0 -> 5257 bytes .../src/docs/public/android-icon-36x36.png | Bin 0 -> 1513 bytes .../src/docs/public/android-icon-48x48.png | Bin 0 -> 1791 bytes .../src/docs/public/android-icon-72x72.png | Bin 0 -> 2283 bytes .../src/docs/public/android-icon-96x96.png | Bin 0 -> 3114 bytes .../src/docs/public/apple-icon-114x114.png | Bin 0 -> 3648 bytes .../src/docs/public/apple-icon-120x120.png | Bin 0 -> 3781 bytes .../src/docs/public/apple-icon-144x144.png | Bin 0 -> 4524 bytes .../src/docs/public/apple-icon-152x152.png | Bin 0 -> 4819 bytes .../src/docs/public/apple-icon-180x180.png | Bin 0 -> 5852 bytes .../src/docs/public/apple-icon-57x57.png | Bin 0 -> 1989 bytes .../src/docs/public/apple-icon-60x60.png | Bin 0 -> 2047 bytes .../src/docs/public/apple-icon-72x72.png | Bin 0 -> 2283 bytes .../src/docs/public/apple-icon-76x76.png | Bin 0 -> 2421 bytes .../docs/public/apple-icon-precomposed.png | Bin 0 -> 5452 bytes .../mermaid/src/docs/public/apple-icon.png | Bin 0 -> 5452 bytes .../mermaid/src/docs/public/browserconfig.xml | 2 + .../mermaid/src/docs/public/favicon-16x16.png | Bin 0 -> 1038 bytes .../mermaid/src/docs/public/favicon-32x32.png | Bin 0 -> 1332 bytes .../mermaid/src/docs/public/favicon-96x96.png | Bin 0 -> 3114 bytes packages/mermaid/src/docs/public/favicon.ico | Bin 0 -> 1150 bytes .../mermaid/{ => src}/docs/public/header.png | Bin .../mermaid/src/docs/public/manifest.json | 41 + .../mermaid/src/docs/public/mermaid-logo.svg | 6 + .../src/docs/public/ms-icon-144x144.png | Bin 0 -> 4524 bytes .../src/docs/public/ms-icon-150x150.png | Bin 0 -> 4761 bytes .../src/docs/public/ms-icon-310x310.png | Bin 0 -> 12500 bytes .../mermaid/src/docs/public/ms-icon-70x70.png | Bin 0 -> 2279 bytes packages/mermaid/{ => src}/docs/syntax/c4c.md | 0 .../{ => src}/docs/syntax/classDiagram.md | 0 .../docs/syntax/entityRelationshipDiagram.md | 0 .../mermaid/{ => src}/docs/syntax/examples.md | 0 .../{ => src}/docs/syntax/flowchart.md | 8 +- .../mermaid/{ => src}/docs/syntax/gantt.md | 2 +- .../mermaid/{ => src}/docs/syntax/gitgraph.md | 0 .../syntax/img/Gantt-excluded-days-within.png | Bin .../syntax/img/Gantt-long-weekend-look.png | Bin .../mermaid/{ => src}/docs/syntax/mindmap.md | 0 packages/mermaid/{ => src}/docs/syntax/pie.md | 0 .../docs/syntax/requirementDiagram.md | 0 .../{ => src}/docs/syntax/sequenceDiagram.md | 0 .../{ => src}/docs/syntax/stateDiagram.md | 0 .../docs/syntax/userJourney.md} | 0 .../mermaid/{ => src}/docs/vite.config.ts | 3 +- 160 files changed, 1292 insertions(+), 140 deletions(-) create mode 100644 docs/CHANGELOG.md delete mode 100644 docs/edit.md create mode 100644 docs/public/android-icon-144x144.png create mode 100644 docs/public/android-icon-192x192.png create mode 100644 docs/public/android-icon-36x36.png create mode 100644 docs/public/android-icon-48x48.png create mode 100644 docs/public/android-icon-72x72.png create mode 100644 docs/public/android-icon-96x96.png create mode 100644 docs/public/apple-icon-114x114.png create mode 100644 docs/public/apple-icon-120x120.png create mode 100644 docs/public/apple-icon-144x144.png create mode 100644 docs/public/apple-icon-152x152.png create mode 100644 docs/public/apple-icon-180x180.png create mode 100644 docs/public/apple-icon-57x57.png create mode 100644 docs/public/apple-icon-60x60.png create mode 100644 docs/public/apple-icon-72x72.png create mode 100644 docs/public/apple-icon-76x76.png create mode 100644 docs/public/apple-icon-precomposed.png create mode 100644 docs/public/apple-icon.png create mode 100644 docs/public/browserconfig.xml create mode 100644 docs/public/favicon-16x16.png create mode 100644 docs/public/favicon-32x32.png create mode 100644 docs/public/favicon-96x96.png create mode 100644 docs/public/favicon.ico create mode 100644 docs/public/manifest.json create mode 100644 docs/public/mermaid-logo.svg create mode 100644 docs/public/ms-icon-144x144.png create mode 100644 docs/public/ms-icon-150x150.png create mode 100644 docs/public/ms-icon-310x310.png create mode 100644 docs/public/ms-icon-70x70.png rename docs/syntax/{user-journey.md => userJourney.md} (97%) delete mode 100644 packages/mermaid/docs/.vitepress/theme/custom.css delete mode 100644 packages/mermaid/docs/edit.md rename packages/mermaid/{ => src}/docs/.vitepress/config.ts (95%) rename packages/mermaid/{ => src}/docs/.vitepress/mermaid-markdown-all.ts (100%) create mode 100644 packages/mermaid/src/docs/.vitepress/theme/custom.css rename packages/mermaid/{ => src}/docs/.vitepress/theme/index.ts (95%) rename packages/mermaid/{ => src}/docs/community/development.md (100%) rename packages/mermaid/{ => src}/docs/community/img/er.png (100%) rename packages/mermaid/{ => src}/docs/community/n00b-overview.md (100%) rename packages/mermaid/{ => src}/docs/community/newDiagram.md (100%) rename packages/mermaid/{ => src}/docs/community/security.md (100%) rename packages/mermaid/{ => src}/docs/config/8.6.0_docs.md (100%) rename packages/mermaid/{ => src}/docs/config/Tutorials.md (100%) rename packages/mermaid/{ => src}/docs/config/accessibility.md (100%) rename packages/mermaid/{ => src}/docs/config/configuration.md (100%) rename packages/mermaid/{ => src}/docs/config/directives.md (100%) rename packages/mermaid/{ => src}/docs/config/img/accessibility-div-example-2.png (100%) rename packages/mermaid/{ => src}/docs/config/img/accessibility-div-example.png (100%) rename packages/mermaid/{ => src}/docs/config/img/assignWithDepth.png (100%) rename packages/mermaid/{ => src}/docs/config/img/object.assign without depth.png (100%) rename packages/mermaid/{ => src}/docs/config/img/python-mermaid-integration.png (100%) rename packages/mermaid/{ => src}/docs/config/img/wrapped text.png (100%) rename packages/mermaid/{ => src}/docs/config/mermaidCLI.md (100%) rename packages/mermaid/{ => src}/docs/config/n00b-advanced.md (100%) rename packages/mermaid/{ => src}/docs/config/theming.md (100%) rename packages/mermaid/{ => src}/docs/config/usage.md (100%) create mode 100644 packages/mermaid/src/docs/img/er.png rename packages/mermaid/{ => src}/docs/index.md (98%) rename packages/mermaid/{ => src}/docs/intro/img/Code-Preview-Config.png (100%) rename packages/mermaid/{ => src}/docs/intro/img/Live-Editor-Choices.png (100%) rename packages/mermaid/{ => src}/docs/intro/img/book-banner-post-release.jpg (100%) rename packages/mermaid/{ => src}/docs/intro/index.md (99%) rename packages/mermaid/{ => src}/docs/intro/n00b-gettingStarted.md (100%) rename packages/mermaid/{ => src}/docs/intro/n00b-syntaxReference.md (100%) rename packages/mermaid/{ => src}/docs/misc/faq.md (100%) rename packages/mermaid/{ => src}/docs/misc/integrations.md (100%) rename packages/mermaid/{ => src}/docs/public/.nojekyll (100%) create mode 100644 packages/mermaid/src/docs/public/android-icon-144x144.png create mode 100644 packages/mermaid/src/docs/public/android-icon-192x192.png create mode 100644 packages/mermaid/src/docs/public/android-icon-36x36.png create mode 100644 packages/mermaid/src/docs/public/android-icon-48x48.png create mode 100644 packages/mermaid/src/docs/public/android-icon-72x72.png create mode 100644 packages/mermaid/src/docs/public/android-icon-96x96.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-114x114.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-120x120.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-144x144.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-152x152.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-180x180.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-57x57.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-60x60.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-72x72.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-76x76.png create mode 100644 packages/mermaid/src/docs/public/apple-icon-precomposed.png create mode 100644 packages/mermaid/src/docs/public/apple-icon.png create mode 100644 packages/mermaid/src/docs/public/browserconfig.xml create mode 100644 packages/mermaid/src/docs/public/favicon-16x16.png create mode 100644 packages/mermaid/src/docs/public/favicon-32x32.png create mode 100644 packages/mermaid/src/docs/public/favicon-96x96.png create mode 100644 packages/mermaid/src/docs/public/favicon.ico rename packages/mermaid/{ => src}/docs/public/header.png (100%) create mode 100644 packages/mermaid/src/docs/public/manifest.json create mode 100644 packages/mermaid/src/docs/public/mermaid-logo.svg create mode 100644 packages/mermaid/src/docs/public/ms-icon-144x144.png create mode 100644 packages/mermaid/src/docs/public/ms-icon-150x150.png create mode 100644 packages/mermaid/src/docs/public/ms-icon-310x310.png create mode 100644 packages/mermaid/src/docs/public/ms-icon-70x70.png rename packages/mermaid/{ => src}/docs/syntax/c4c.md (100%) rename packages/mermaid/{ => src}/docs/syntax/classDiagram.md (100%) rename packages/mermaid/{ => src}/docs/syntax/entityRelationshipDiagram.md (100%) rename packages/mermaid/{ => src}/docs/syntax/examples.md (100%) rename packages/mermaid/{ => src}/docs/syntax/flowchart.md (99%) rename packages/mermaid/{ => src}/docs/syntax/gantt.md (99%) rename packages/mermaid/{ => src}/docs/syntax/gitgraph.md (100%) rename packages/mermaid/{ => src}/docs/syntax/img/Gantt-excluded-days-within.png (100%) rename packages/mermaid/{ => src}/docs/syntax/img/Gantt-long-weekend-look.png (100%) rename packages/mermaid/{ => src}/docs/syntax/mindmap.md (100%) rename packages/mermaid/{ => src}/docs/syntax/pie.md (100%) rename packages/mermaid/{ => src}/docs/syntax/requirementDiagram.md (100%) rename packages/mermaid/{ => src}/docs/syntax/sequenceDiagram.md (100%) rename packages/mermaid/{ => src}/docs/syntax/stateDiagram.md (100%) rename packages/mermaid/{docs/syntax/user-journey.md => src/docs/syntax/userJourney.md} (100%) rename packages/mermaid/{ => src}/docs/vite.config.ts (89%) diff --git a/.github/gh-pages-publish.yml b/.github/gh-pages-publish.yml index de87e6a3b2..4a5fc4d959 100644 --- a/.github/gh-pages-publish.yml +++ b/.github/gh-pages-publish.yml @@ -18,4 +18,4 @@ jobs: uses: JamesIves/github-pages-deploy-action@v4.3.3 with: branch: gh-pages # The branch the action should deploy to. - folder: packages/mermaid/docs/.vitepress/dist # The folder the action should deploy. + folder: packages/mermaid/src/docs/.vitepress/dist # The folder the action should deploy. diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f316c47c70..a7ad03a7a4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -5,12 +5,12 @@ on: branches: - develop paths: - - 'packages/mermaid/docs/**/*' + - 'packages/mermaid/src/docs/**/*' pull_request: branches: - develop paths: - - 'packages/mermaid/docs/**/*' + - 'packages/mermaid/src/docs/**/*' jobs: spellcheck: name: 'Docs: Spellcheck' @@ -24,5 +24,5 @@ jobs: node-version: '16' - run: npm install -g cspell name: Install cSpell - - run: cspell --config ./cSpell.json "packages/mermaid/docs/**/*.md" --no-progress + - run: cspell --config ./cSpell.json "packages/mermaid/src/docs/**/*.md" --no-progress name: Run cSpell diff --git a/.gitignore b/.gitignore index 433a9b05f4..cdd33c2c52 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,4 @@ cypress/snapshots/ tsconfig.tsbuildinfo #docs generate from code -packages/mermaid/docs/config/setup \ No newline at end of file +packages/mermaid/src/docs/config/setup \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 843e19fd9f..cf567a97d3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ We make all changes via pull requests. As we have many pull requests from develo - Large changes reviewed by knsv or other developer asked to review by knsv - Smaller low-risk changes like dependencies, documentation, etc. can be merged by active collaborators -- Documentation (updates to the `package/mermaid/docs` folder is also allowed via direct commits) +- Documentation (updates to the `package/mermaid/src/docs` folder is also allowed via direct commits) To commit code, create a branch, let it start with the type like feature or bug followed by the issue number for reference and some describing text. @@ -50,16 +50,16 @@ Less strict here, it is OK to commit directly in the `develop` branch if you are The documentation is written in **Markdown**. For more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). -### Documentation source files are in [`/packages/mermaid/docs`](packages/mermaid/docs) +### Documentation source files are in [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) -The source files for the project documentation are located in the [`/packages/mermaid/docs`](packages/mermaid/docs) directory. This is where you should make changes. -The files under `/packages/mermaid/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. +The source files for the project documentation are located in the [`/packages/mermaid/src/docs`](packages/mermaid/src/docs) directory. This is where you should make changes. +The files under `/packages/mermaid/src/docs` are processed to generate the published documentation, and the resulting files are put into the `/docs` directory. ```mermaid flowchart LR classDef default fill:#fff,color:black,stroke:black - source["files in /packages/mermaid/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] + source["files in /packages/mermaid/src/docs\n(changes should be done here)"] -- automatic processing\nto generate the final documentation--> published["files in /docs\ndisplayed on the official documentation site"] ``` @@ -148,7 +148,7 @@ it('should render forks and joins', () => { Finally, if it is not in the documentation, no one will know about it and then **no one will use it**. Wouldn't that be sad? With all the effort that was put into the feature? -The source files for documentation are in `/packages/mermaid/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. +The source files for documentation are in `/packages/mermaid/src/docs` and are written in markdown. Just pick the right section and start typing. See the [Committing Documentation](#committing-documentation) section for more about how the documentation is generated. #### Adding to or changing the documentation organization diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 4597de9009..121c4de751 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,4 +1,4 @@ -import { version } from '../../package.json'; +import { version } from '../../../package.json'; import MermaidMarkdown from './mermaid-markdown-all'; import { defineConfig } from 'vitepress'; @@ -8,9 +8,12 @@ export default defineConfig({ description: 'Create diagrams and visualizations using text and code.', base: '/mermaid-docs/', markdown: MermaidMarkdown, - ignoreDeadLinks: true, //TODO: try to fixe those in autogenerated docs themeConfig: { nav: nav(), + editLink: { + pattern: 'https://github.com/mermaid-js/mermaid/edit/develop/docs/:path', + text: 'Edit this page on GitHub', + }, sidebar: { '/': sidebarAll(), @@ -53,7 +56,7 @@ function nav() { }, { text: '💻 Live Editor', - link: '/edit', + link: 'https://mermaid.live', }, ]; } diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css index d42052792b..8d5b71f56a 100644 --- a/docs/.vitepress/theme/custom.css +++ b/docs/.vitepress/theme/custom.css @@ -1,13 +1,17 @@ -@media (min-width: 1440px) { - .VPDoc:not(.has-sidebar) .container[data-v-10119189] { - max-width: 100%; - } - - .VPDoc.has-aside .content-container[data-v-10119189] { - max-width: 100%; - } +:root { + --vp-c-brand: #ff3670; + --vp-c-brand-light: #ff5e8c; + --vp-c-brand-lighter: #ff85a8; + --vp-c-brand-lightest: #ff9bb7; + --vp-c-brand-dark: #bd34fe; + --vp-c-brand-darker: #9339bd; + --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); } :root { - --vp-layout-max-width: 100%; + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #ff3670); + + --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #ff3670 50%); + --vp-home-hero-image-filter: blur(72px); } diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 7093a1643d..bcce341a2b 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,4 +1,5 @@ import DefaultTheme from 'vitepress/theme'; +// @ts-ignore import Mermaid from 'vitepress-plugin-mermaid/Mermaid.vue'; import './custom.css'; diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000000..859ceec23e --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,1050 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. + +# Change Log + +All changes are in descending order, beginning with the newest (latest) version. + +## Unreleased + +[Full Changelog](https://github.com/knsv/mermaid/compare/8.7.0...HEAD) + +## 8.7.0 (2020-08-09) + +🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | +📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) + +This version brings with it a system for [dynamic and integrated configuration of the diagram themes](../config/theming.md). +The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. + +Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md). + +**These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.** + +### Site-wide Themes + +Site-wide themes are still declared via `initialize` by site owners. + +Example of `Initalize` call setting `theme` to `base`: + +```javascript +mermaidAPI.initialize({ + securityLevel: 'loose', + theme: 'base', +}); +``` + +**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. + +### Themes at the Local or Current Level + +When Generating a diagram using on a webpage that supports mermaid. +It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. + +**Following is an example:** + +```mermaid-example +%%{init: {'theme':'base'}}%% + graph TD + a --> b +``` + +```mermaid +%%{init: {'theme':'base'}}%% + graph TD + a --> b +``` + +### Making a Custom Theme with `themeVariables` + +The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. + +| Parameter | Description | Type | Required | Objects contained | +| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | +| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | + +Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. + +```mermaid-example +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +**Notes:** +Leaving it empty will set all variable values to default. + +## 8.6.0 (2020-07-13) + +🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.6.0) + +[Version 8.6.0](../getting-started/8.6.0_docs.md) introduces New Configuration Protocols and Directives and a Beta for the [New Mermaid Live-Editor](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) + +**With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation.** + +Directives allow for a diagram specific overriding of config, as it has been discussed in Configurations. +This allows site users to input modifications to config alongside diagram definitions, when creating diagrams on a private webpage that supports Mermaid. + +## 8.5.0 (2020-04-11) + +🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/untagged-31c93788afe260d914bb) + +This version introduces New diagrams! + +**New diagrams in 8.5** + +With version 8.5 there are some bug fixes and enhancements, plus a new diagram type, entity relationship diagrams. + +![Image showing the new ER diagram type](./img/er.png) + +## 8.2.0 (2019-07-17) + +🏷️ [Tag](https://github.com/mermaid-js/mermaid/tree/8.2.0) + +Version 8.2.0, introduces a security improvement. + +A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. +This was introduced in version 8.2 as a security improvement, aimed at preventing malicious use. + +### securityLevel + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------------------- | ------ | -------- | ------------------------- | +| securitylevel | Level of trust for parsed diagram | String | Required | Strict, Loose, antiscript | + +**Notes:** + +- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **loose**: tags in text are allowed, click functionality is enabled +- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled + +⚠️ **Note**: This changes the default behaviour of mermaid so that after upgrade to 8.2, if the `securityLevel` is not configured, tags in flowcharts are encoded as tags and clicking is prohibited. + +If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing. +By doing this clicks and tags are again allowed. + +### To change `securityLevel` with `mermaidAPI.initialize`: + +```javascript +mermaidAPI.initialize({ + securityLevel: 'loose', +}); +``` + +**Closed issues:** + +- please add tag for 8.0.0 release [#863](https://github.com/knsv/mermaid/issues/863) +- classDiagram breaks on any edit [#858](https://github.com/knsv/mermaid/issues/858) + +## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0) + +**Implemented enhancements:** + +- Theme for dark background [#301](https://github.com/knsv/mermaid/issues/301) +- \[Feature request] gantt diagram axis format [#269](https://github.com/knsv/mermaid/issues/269) +- Implement render function for server side rendering using phantomjs [#169](https://github.com/knsv/mermaid/issues/169) + +**Fixed bugs:** + +- mermaid -v filename.mmd gives You must specify at least one source file. [#328](https://github.com/knsv/mermaid/issues/328) +- Not Able to See Labels even htmlLabels:false added [#268](https://github.com/knsv/mermaid/issues/268) + +**Closed issues:** + +- Gantt and sequence diagram do not render [#853](https://github.com/knsv/mermaid/issues/853) +- margins around flowchart are not balanced [#852](https://github.com/knsv/mermaid/issues/852) +- Smaller bundles [#843](https://github.com/knsv/mermaid/issues/843) +- unicode in labels [#776](https://github.com/knsv/mermaid/issues/776) +- Hard-changing drawing of arrows per edge type [#775](https://github.com/knsv/mermaid/issues/775) +- SequenceDiagram wrong [#773](https://github.com/knsv/mermaid/issues/773) +- Render mermaid on github pages with simple code [#772](https://github.com/knsv/mermaid/issues/772) +- FlowChart - large space between text and the image [#754](https://github.com/knsv/mermaid/issues/754) +- Class Diagram Issues when using Mermaid in Stackedit [#748](https://github.com/knsv/mermaid/issues/748) +- Multi-platform CI [#744](https://github.com/knsv/mermaid/issues/744) +- gantt: sections can't have a colon [#742](https://github.com/knsv/mermaid/issues/742) +- Yarn build does not add mermaid.min.css to dist [#732](https://github.com/knsv/mermaid/issues/732) +- Is there a grammar / keyword / more than just the basic examples? [#718](https://github.com/knsv/mermaid/issues/718) +- Click event and react component [#717](https://github.com/knsv/mermaid/issues/717) +- Long text going outside the box [#706](https://github.com/knsv/mermaid/issues/706) +- How to migrate from yUML to mermaid? [#704](https://github.com/knsv/mermaid/issues/704) +- Issue on Dynamic Creation in PHP [#690](https://github.com/knsv/mermaid/issues/690) +- `click "\#target"` and `click "http://url"` should create regular links [#689](https://github.com/knsv/mermaid/issues/689) +- Support Chinese punctuation [#687](https://github.com/knsv/mermaid/issues/687) +- \[Question] Proper way to install on Mac? [#681](https://github.com/knsv/mermaid/issues/681) +- Has Mermaid a graphical interface to make diagrams? [#668](https://github.com/knsv/mermaid/issues/668) +- mermaid installation on debian [#649](https://github.com/knsv/mermaid/issues/649) +- "Cannot activate" in sequenceDiagram [#647](https://github.com/knsv/mermaid/issues/647) +- Link ("click" statement) in flowchart does not work in exported SVG [#646](https://github.com/knsv/mermaid/issues/646) +- How to pass styling [#639](https://github.com/knsv/mermaid/issues/639) +- The live editor cant show seq diagram with notes for 8.0.0-alpha.3 [#638](https://github.com/knsv/mermaid/issues/638) +- import mermaid.css with ES6 + NPM [#634](https://github.com/knsv/mermaid/issues/634) +- Actor line cuts through other elements [#633](https://github.com/knsv/mermaid/issues/633) +- Graph TD line out of the picture (left side) [#630](https://github.com/knsv/mermaid/issues/630) +- Flowchart labels appear "cutoff" [#628](https://github.com/knsv/mermaid/issues/628) +- Uncaught TypeError: \_.constant is not a function (mermaid.js) [#626](https://github.com/knsv/mermaid/issues/626) +- Missing tags and releases for newer versions [#623](https://github.com/knsv/mermaid/issues/623) +- Mermaid and Leo / Leo Vue [#622](https://github.com/knsv/mermaid/issues/622) +- mermaidAPI gantt Vue.js [#621](https://github.com/knsv/mermaid/issues/621) +- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [#620](https://github.com/knsv/mermaid/issues/620) +- how to get mermaidAPI? [#617](https://github.com/knsv/mermaid/issues/617) +- Error in startOnLoad documentation? [#616](https://github.com/knsv/mermaid/issues/616) +- Example export to SVG generates error [#614](https://github.com/knsv/mermaid/issues/614) +- The new online editor does not support previously generated links [#613](https://github.com/knsv/mermaid/issues/613) +- Grammar / Syntax documentation for flowcharts [#607](https://github.com/knsv/mermaid/issues/607) +- Mermaid does not work with d3.js [#606](https://github.com/knsv/mermaid/issues/606) +- Why does this code's flowchart lines get cut-off on screen? [#604](https://github.com/knsv/mermaid/issues/604) +- click keyword does not fire my callback (on the demo Website too) [#603](https://github.com/knsv/mermaid/issues/603) +- Online Editor fails to show exported SVG [#601](https://github.com/knsv/mermaid/issues/601) +- Just saying thanks! [#597](https://github.com/knsv/mermaid/issues/597) +- stylesheet crashed with other library like abcjs [#596](https://github.com/knsv/mermaid/issues/596) +- Missing connection [#594](https://github.com/knsv/mermaid/issues/594) +- How to use mermaid on node.js restful api? [#593](https://github.com/knsv/mermaid/issues/593) +- Remove status code [#589](https://github.com/knsv/mermaid/issues/589) +- Golang based editor [#588](https://github.com/knsv/mermaid/issues/588) +- sequenceDiagram -> notetext css font is hardcoded [#587](https://github.com/knsv/mermaid/issues/587) +- Multiple graph in the live editor [#586](https://github.com/knsv/mermaid/issues/586) +- All \<svg> elements in page are colored black [#584](https://github.com/knsv/mermaid/issues/584) +- Styling: classes aren't applied to elements. [#582](https://github.com/knsv/mermaid/issues/582) +- Rounded connections [#580](https://github.com/knsv/mermaid/issues/580) +- Arrows are not being shown correctly in the dark theme [#578](https://github.com/knsv/mermaid/issues/578) +- The documentation for CLI seems outdated. [#572](https://github.com/knsv/mermaid/issues/572) +- No effect of click event:can not open link [#571](https://github.com/knsv/mermaid/issues/571) +- Text colors are not correct in VSCODE [#570](https://github.com/knsv/mermaid/issues/570) +- Nodes aren't aligned properly (just need an explanation) [#568](https://github.com/knsv/mermaid/issues/568) +- setting margin around figure in R [#567](https://github.com/knsv/mermaid/issues/567) +- Arrows should Come out in upward and Downward direction from decision Node [#566](https://github.com/knsv/mermaid/issues/566) +- TypeError: Cannot read property 'select' of undefined [#563](https://github.com/knsv/mermaid/issues/563) +- A little bug [#557](https://github.com/knsv/mermaid/issues/557) +- Japanese text appears garbled [#554](https://github.com/knsv/mermaid/issues/554) +- classdiagram not works in mermaid live_editor [#553](https://github.com/knsv/mermaid/issues/553) +- font awesome in link text? [#546](https://github.com/knsv/mermaid/issues/546) +- q: heard of the cosmogol standard? [#545](https://github.com/knsv/mermaid/issues/545) +- Arrow heads missing (cli, 7.0.3) [#544](https://github.com/knsv/mermaid/issues/544) +- No Edge Boxes if useHtmlLabels=false [#541](https://github.com/knsv/mermaid/issues/541) +- how to change mermaid text color or line text block color? [#534](https://github.com/knsv/mermaid/issues/534) +- FlowChart visualization broken when downloading from live editor [#533](https://github.com/knsv/mermaid/issues/533) +- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [#532](https://github.com/knsv/mermaid/issues/532) +- live editor make browser(safari on macOS\&iOS) not longer respond [#531](https://github.com/knsv/mermaid/issues/531) +- css classes need a prefix/namespace [#527](https://github.com/knsv/mermaid/issues/527) +- input activate/deactivate cause safari unresponding [#521](https://github.com/knsv/mermaid/issues/521) +- Cannot Render the Mermaid Graph to PDF ? [#520](https://github.com/knsv/mermaid/issues/520) +- clicking links works from inset in subgraph but not from nodes [#516](https://github.com/knsv/mermaid/issues/516) +- Strange syntax error - when importing mermaid.js [#515](https://github.com/knsv/mermaid/issues/515) +- gantt x-axis display [#510](https://github.com/knsv/mermaid/issues/510) +- phantomjs renamed to phantomjs-prebuilt [#508](https://github.com/knsv/mermaid/issues/508) +- issue when using sphinxcontrib-mermaid extension for sphinx [#507](https://github.com/knsv/mermaid/issues/507) +- layout of docs page looks broken [#504](https://github.com/knsv/mermaid/issues/504) +- Problem showing graph with php on localhost [#502](https://github.com/knsv/mermaid/issues/502) +- logLevel's option doesn't work at 7.0.0 [#501](https://github.com/knsv/mermaid/issues/501) +- How do I get the log for a render or parse attempt? [#500](https://github.com/knsv/mermaid/issues/500) +- Mermaid neutral style style to built in latest release [#499](https://github.com/knsv/mermaid/issues/499) +- Any plans for adding a typescript definition file? [#495](https://github.com/knsv/mermaid/issues/495) +- Gantt diagrams too narrow [#493](https://github.com/knsv/mermaid/issues/493) +- Flowchart edge labels placement [#490](https://github.com/knsv/mermaid/issues/490) +- Very different styles when rendering as png vs. svg [#489](https://github.com/knsv/mermaid/issues/489) +- New editor that supports mermaid: Caret [#488](https://github.com/knsv/mermaid/issues/488) +- Gant PNG margin [#486](https://github.com/knsv/mermaid/issues/486) +- ReferenceError: window is not defined [#485](https://github.com/knsv/mermaid/issues/485) +- Menu and layout bugs in docs [#484](https://github.com/knsv/mermaid/issues/484) +- Mermaid resets some of the page CSS styles [#482](https://github.com/knsv/mermaid/issues/482) +- Arrows rendering incorrectly in online editor [#480](https://github.com/knsv/mermaid/issues/480) +- CSS stroke-dasharray ignored by browsers but not other viewers [#474](https://github.com/knsv/mermaid/issues/474) +- mermaid - Browser Support issue [#472](https://github.com/knsv/mermaid/issues/472) +- Totally love mermaid I might pop! [#471](https://github.com/knsv/mermaid/issues/471) +- Sequence Diagram: Missing x on async arrows (png) [#469](https://github.com/knsv/mermaid/issues/469) +- live editor: the svg file rendered from graph is not supported by browsers [#468](https://github.com/knsv/mermaid/issues/468) +- Not found css [#462](https://github.com/knsv/mermaid/issues/462) +- Phantomjs Dependency [#461](https://github.com/knsv/mermaid/issues/461) +- Mermaid cli not working for subgraphs [#459](https://github.com/knsv/mermaid/issues/459) +- Support for notes across multiple participants? [#458](https://github.com/knsv/mermaid/issues/458) +- Related to Issue #329: Phantomjs issues. [#455](https://github.com/knsv/mermaid/issues/455) +- Add a click style [#426](https://github.com/knsv/mermaid/issues/426) +- Add Parallel block (par) to sequence diagrams [#425](https://github.com/knsv/mermaid/issues/425) +- updating shapes after the flow chart rendering complete [#424](https://github.com/knsv/mermaid/issues/424) +- can't catch parse error Maximum call stack size exceeded on safari [#421](https://github.com/knsv/mermaid/issues/421) +- Arrows endings are missing [#419](https://github.com/knsv/mermaid/issues/419) +- shouldn't mermaid become more like Markdown ? [#417](https://github.com/knsv/mermaid/issues/417) +- Live editor show rendered diagram if syntax invalid [#415](https://github.com/knsv/mermaid/issues/415) +- Linkstyle stroke does not work [#410](https://github.com/knsv/mermaid/issues/410) +- flowchart id's with dots in them .. break links [#408](https://github.com/knsv/mermaid/issues/408) +- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [#407](https://github.com/knsv/mermaid/issues/407) +- Some Chinese character will case Safari no responding. [#405](https://github.com/knsv/mermaid/issues/405) +- Cannot center-justify text in nodes? [#397](https://github.com/knsv/mermaid/issues/397) +- Edge labels should have white background in live editor [#396](https://github.com/knsv/mermaid/issues/396) +- Live editor does not support activate/deactivate [#394](https://github.com/knsv/mermaid/issues/394) +- Styling subgraph? [#391](https://github.com/knsv/mermaid/issues/391) +- Update live editor to version 6.0.0 [#387](https://github.com/knsv/mermaid/issues/387) +- sequence diagram config issue [#385](https://github.com/knsv/mermaid/issues/385) +- How to add newline in the text [#384](https://github.com/knsv/mermaid/issues/384) +- PhantomJS crashes on a large graph [#380](https://github.com/knsv/mermaid/issues/380) +- Finnish support for class diagrams using plantuml syntax [#377](https://github.com/knsv/mermaid/issues/377) +- mermaidAPI.render generated different svg code from mermaid.int() [#374](https://github.com/knsv/mermaid/issues/374) +- Put your own action on the chart [#372](https://github.com/knsv/mermaid/issues/372) +- when declaring participants the elements are generated twice [#370](https://github.com/knsv/mermaid/issues/370) +- Example Flowchart is cut in display (Chrome). [#368](https://github.com/knsv/mermaid/issues/368) +- Add shebang support to diagrams [#365](https://github.com/knsv/mermaid/issues/365) +- Silencing CLI output [#352](https://github.com/knsv/mermaid/issues/352) +- SequenceDiagram: 3+ Alternative Paths [#348](https://github.com/knsv/mermaid/issues/348) +- Smaller height of actor boxes [#342](https://github.com/knsv/mermaid/issues/342) +- Question: lib/phantomscript.js - foreignObjects in SVG - related to #58 [#340](https://github.com/knsv/mermaid/issues/340) +- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [#337](https://github.com/knsv/mermaid/issues/337) +- Tabs & subgraphs cause rendering error [#336](https://github.com/knsv/mermaid/issues/336) +- Display question: right angles [#335](https://github.com/knsv/mermaid/issues/335) +- No Arrows rendered v0.5.8 [#330](https://github.com/knsv/mermaid/issues/330) +- You had errors in your syntax. Use --help for further information. [#327](https://github.com/knsv/mermaid/issues/327) +- Allow alternate arrow syntax that doesn't close html comments [#322](https://github.com/knsv/mermaid/issues/322) +- Comment in subgraph [#319](https://github.com/knsv/mermaid/issues/319) +- Update graph [#311](https://github.com/knsv/mermaid/issues/311) +- css conflicts with boostrap's css [#308](https://github.com/knsv/mermaid/issues/308) +- Can not get click event to fire. [#306](https://github.com/knsv/mermaid/issues/306) +- Fix phantomjs2 compatibility [#304](https://github.com/knsv/mermaid/issues/304) +- Flowcharts do not work in native IE11 [#303](https://github.com/knsv/mermaid/issues/303) +- Integration with remark.js - tutorial added [#302](https://github.com/knsv/mermaid/issues/302) +- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#299](https://github.com/knsv/mermaid/issues/299) +- src/mermaid.js generates bad code [#297](https://github.com/knsv/mermaid/issues/297) +- Fresh fork: jasmine tests fail [#294](https://github.com/knsv/mermaid/issues/294) +- CSS clash [#292](https://github.com/knsv/mermaid/issues/292) +- Mermaid does not work in Chrome 48 [#281](https://github.com/knsv/mermaid/issues/281) +- circle and ellipse cannot change color by classDef [#271](https://github.com/knsv/mermaid/issues/271) +- npm run watch doesn't work due missing dependencies [#266](https://github.com/knsv/mermaid/issues/266) +- label out of node [#262](https://github.com/knsv/mermaid/issues/262) +- IE11 Support issue [#261](https://github.com/knsv/mermaid/issues/261) +- mermaid without browser [#260](https://github.com/knsv/mermaid/issues/260) +- Insufficient capacity of gantt diagrams [#226](https://github.com/knsv/mermaid/issues/226) +- some WARN about installation [#222](https://github.com/knsv/mermaid/issues/222) +- Live editor offline access [#217](https://github.com/knsv/mermaid/issues/217) +- suggest: code highlight mode config for editors [#212](https://github.com/knsv/mermaid/issues/212) +- Uncaught RangeError: Maximum call stack size exceeded [#189](https://github.com/knsv/mermaid/issues/189) +- Styling label texts [#50](https://github.com/knsv/mermaid/issues/50) + +**Merged pull requests:** + +- Remove console.log in classDB. [#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey)) +- Bump sshpk from 1.13.1 to 1.16.1 [#851](https://github.com/knsv/mermaid/pull/851) ([dependabot\[bot\]](https://github.com/apps/dependabot)) +- Significantly smaller bundles [#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato)) +- Support styling of subgraphs [#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-)) +- fix dark theme loop labels not visible [#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn)) +- fix draw function can only call once [#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship)) +- Fix dotted lines not appearing in flowcharts when HTML labels disabled [#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu)) +- Fix issue with XML line breaks inside vertex labels [#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang)) +- fixed diagrams [#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus)) +- Clickable gantt tasks [#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht)) +- linkStyle now supports list of indexes with a few tests [#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov)) +- fix class diagram mermaid [#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai)) +- Added exclude weekdays to definition [#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo)) +- SVG link rendering [#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep)) +- Gantt milestones [#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs)) +- Remove duplicate code [#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030)) +- Render nodes as real links [#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep)) +- Fix issue with marker-end. [#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen)) +- Make Class Diagrams usable in Stackedit and Live Editor [#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe)) +- Adding trapezoid and inverse trapezoid vertex options. [#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf)) +- Add option for right angles [#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland)) +- Add nested activation classes [#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland)) +- wip: class diagram cardinality display [#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz)) +- add comments about CSS in config [#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90)) +- SequenceDiagram: Add support for multiple alt else statements [#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel)) +- fix #426 - add class .clickable on nodes with click function or link [#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil)) +- Spec fix 1 [#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt)) + +## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5) + +**Closed issues:** + +- live editor latin error after update [#560](https://github.com/knsv/mermaid/issues/560) +- Simple full example in online documentation is broken [#558](https://github.com/knsv/mermaid/issues/558) +- Graph No Arrow Head v7.0.3 [#543](https://github.com/knsv/mermaid/issues/543) +- Conflict while using mermaid along with core-js [#512](https://github.com/knsv/mermaid/issues/512) +- Export to pdf on website [#496](https://github.com/knsv/mermaid/issues/496) +- New downstream project: Mermaid Preview for VSCode [#442](https://github.com/knsv/mermaid/issues/442) +- Can't Zoom the flowchart ? [#399](https://github.com/knsv/mermaid/issues/399) +- line labels are not rendered correctly in live editor [#366](https://github.com/knsv/mermaid/issues/366) +- mermaid-loader [#361](https://github.com/knsv/mermaid/issues/361) +- Are there any documentation or examples for classDiagram and gitGraph? [#359](https://github.com/knsv/mermaid/issues/359) +- \# character broken in 0.5.8 [#347](https://github.com/knsv/mermaid/issues/347) +- Documentation issue: CSS example is not visible [#345](https://github.com/knsv/mermaid/issues/345) +- Include documentation for command line usage [#326](https://github.com/knsv/mermaid/issues/326) +- Fresh fork: can't build dist [#296](https://github.com/knsv/mermaid/issues/296) +- Invalid value for \<svg> attribute viewBox="0 0 -Infinity -Infinity" [#291](https://github.com/knsv/mermaid/issues/291) +- Webpack require fails [#277](https://github.com/knsv/mermaid/issues/277) +- New documentation - need improved logo [#216](https://github.com/knsv/mermaid/issues/216) + +## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3) + +**Closed issues:** + +- the documentation website is down [#539](https://github.com/knsv/mermaid/issues/539) +- Good example of interactivity with mermaidAPI [#514](https://github.com/knsv/mermaid/issues/514) + +## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2) + +**Closed issues:** + +- CDN is not working [#511](https://github.com/knsv/mermaid/issues/511) +- A sampe sequenceDiagram crashes mermaid-cli [#492](https://github.com/knsv/mermaid/issues/492) +- Mermaid doesn't delete nodes when called multiple times [#491](https://github.com/knsv/mermaid/issues/491) +- API crashes on 2nd render() call [#478](https://github.com/knsv/mermaid/issues/478) +- sequenceDiagram: dotted line for alt and empty bracket should be hidden [#456](https://github.com/knsv/mermaid/issues/456) +- SVG output (almost) not correct [#434](https://github.com/knsv/mermaid/issues/434) +- How to set axisFormatter of gantt in mermaid CLI? [#428](https://github.com/knsv/mermaid/issues/428) +- customizing link style with any color sets `fill` property to `black` instead of `none` [#416](https://github.com/knsv/mermaid/issues/416) +- New line at the end of SVG file [#400](https://github.com/knsv/mermaid/issues/400) +- CLI doesn't work [#389](https://github.com/knsv/mermaid/issues/389) +- Can't render subgraphs with htmlLabels: false [#367](https://github.com/knsv/mermaid/issues/367) +- Color arrowhead [#362](https://github.com/knsv/mermaid/issues/362) +- CLI: Invisible text, lines in SVG output [#341](https://github.com/knsv/mermaid/issues/341) + +**Merged pull requests:** + +- Support Multi-line Actor Descriptions [#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj)) +- Update Travis config [#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong)) +- Fix spelling of 'you' in sequenceDiagram docs [#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson)) +- Improve CLI output [#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042)) +- Modernize mermaid [#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong)) +- Modernize mermaid [#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong)) +- Update CLI instructions [#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps)) +- Add style for classDiagram to dark/default theme [#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel)) +- Fix documentation for git graph. [#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs)) +- Fix links in documentations [#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71)) +- Update README.md with git graph sample [#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur)) +- Fix misspelling of “another” [#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert)) +- Fixed #456 sequenceDiagram: dotted line for alt and empty bracket sho… [#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong)) +- Add viewbox attr to class diagram [#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm)) +- add par statement to sequenceDiagram [#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor)) + +## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29) + +[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0) + +**Implemented enhancements:** + +- npm install -g mermaid does not install phantomjs [#329](https://github.com/knsv/mermaid/issues/329) +- activation boxes [#313](https://github.com/knsv/mermaid/issues/313) + +**Closed issues:** + +- demos on io site not working [#466](https://github.com/knsv/mermaid/issues/466) +- Can not be generated PNG pictures through CLI with Chinese [#451](https://github.com/knsv/mermaid/issues/451) +- Round nodes cannot be styled with CSS classes [#443](https://github.com/knsv/mermaid/issues/443) +- webpack gulp UglifyJsPlugin error. [#440](https://github.com/knsv/mermaid/issues/440) +- String concatenation isn't working [#432](https://github.com/knsv/mermaid/issues/432) +- text flow/wrap in actor box of sequence diagram [#422](https://github.com/knsv/mermaid/issues/422) +- Online live editor still use old version [#402](https://github.com/knsv/mermaid/issues/402) +- uncaught TypeError: t.getTransformToElement is not a function [#401](https://github.com/knsv/mermaid/issues/401) +- Only works when using browserify'd code [#373](https://github.com/knsv/mermaid/issues/373) +- document the use of shebang line in mmd files [#364](https://github.com/knsv/mermaid/issues/364) +- Diagrams are small and unreadable in IE 11 - since 0.5.1 [#356](https://github.com/knsv/mermaid/issues/356) +- \[Feature Request] ER-Diagram Support [#354](https://github.com/knsv/mermaid/issues/354) +- The need for mermaid.css should be mentioned explicitly in the intro docs... [#273](https://github.com/knsv/mermaid/issues/273) + +**Merged pull requests:** + +- Update index.html [#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight)) +- Fix for #416, customizing link style with any color sets `fill` property to `black` instead of `none` [#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin)) +- Allow .node>circle to receive css styles [#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz)) +- Fix spelling [#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn)) +- added tests and fix cli css style selector lowercase problem [#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev)) +- Update d3.js [#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz)) +- added tests to reproduce #434 in flowchart [#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev)) +- Code Climate config [#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott)) +- fix gantt and sequence digram cli cfg [#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev)) +- fix gantt chart cli configuration broken [#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev)) +- fix gantt chart cli configuration parsing including functions [#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev)) +- Uses an empty text node instead of a string for svg group labels [#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick)) +- use tspan via d3.textwrap to place actor text in sequence diagram [#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev)) +- \#422 use foreignObject/div to place actor label in sequence diagram [#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev)) +- Clarify the need for a CSS stylesheet [#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb)) +- Added hads downstream project [#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied)) +- update usage and fix #273 [#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance)) +- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur)) +- New neutral theme [#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied)) +- fix cli issues [#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page)) +- Add missing space for 'Labels out of bounds' section [#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist)) +- Fix typo: `pats` -> `paths` [#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon)) +- Added class diagram example to README.md [#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion)) +- override normal flowchart arrowhead to allow css styling [#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue)) +- added sphinx extension [#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan)) +- Fix typo in the sequence diagram documentation [#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino)) + +## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0) + +**Closed issues:** + +- Docs css: code hard to read [#324](https://github.com/knsv/mermaid/issues/324) +- About Markpad integration [#323](https://github.com/knsv/mermaid/issues/323) +- How to link backwards in flowchart? [#321](https://github.com/knsv/mermaid/issues/321) +- Help with editor [#310](https://github.com/knsv/mermaid/issues/310) +- \+1 [#293](https://github.com/knsv/mermaid/issues/293) +- Basic chart does not render on Chome, but does in Firefox [#290](https://github.com/knsv/mermaid/issues/290) +- Live editor is broken [#285](https://github.com/knsv/mermaid/issues/285) +- "No such file or directory" trying to run mermaid 0.5.7 on OS X [#284](https://github.com/knsv/mermaid/issues/284) +- participant name as "Long Long Name" [#283](https://github.com/knsv/mermaid/issues/283) +- Windows - cli - could not find phantomjs at the specified path [#236](https://github.com/knsv/mermaid/issues/236) + +**Merged pull requests:** + +- The option of gantt for the spaces for the section names. [#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi)) +- Gitgraph: Make reset work with parent ref carets [#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur)) +- Remove the text-shadows that make the text look blurry [#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers)) +- add line interpolation to linkStyle in flowchart [#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn)) +- Support git graph diagrams in mermaid [#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur)) +- Build and test execution changes [#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea)) +- Reformatting of css files [#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr)) +- (WIP) Sequence Diagram Title Support [#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja)) +- activations doc + few fixes [#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy)) +- Dark theme for better contrast on darker backgrounds [#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a)) +- Activations [#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy)) +- Support leading comments for sequenceDiagrams [#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle)) +- Show a little lenience for white-space around names [#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle)) +- Update list of downstream projects [#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo)) +- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) +- Issue 297 - src/mermaid.js generates bad code [#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) +- Updated instructions for running tests [#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) +- Add Markdown Plus to Downstream projects [#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong)) +- Quote phantomPath so that it doesn't fail on window [#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur)) + +## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8) + +## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7) + +**Closed issues:** + +- Mermaid + LightPaper = ❤️ [#280](https://github.com/knsv/mermaid/issues/280) +- Bower Integration [#278](https://github.com/knsv/mermaid/issues/278) +- Mermaid breaks when variables end in 'v' [#276](https://github.com/knsv/mermaid/issues/276) +- sequence diagrams don't support participant aliasing [#263](https://github.com/knsv/mermaid/issues/263) +- One diagram that fails to render stops further execution on the page [#259](https://github.com/knsv/mermaid/issues/259) +- Where to find line layout algorithm? [#258](https://github.com/knsv/mermaid/issues/258) +- Compatibility with node.js [#257](https://github.com/knsv/mermaid/issues/257) +- Label resizing with dynamically loaded fonts [#255](https://github.com/knsv/mermaid/issues/255) +- SVG arrowheads are broken in the CLI [#249](https://github.com/knsv/mermaid/issues/249) +- Cannot read property 'replace' of undefined [#239](https://github.com/knsv/mermaid/issues/239) + +**Merged pull requests:** + +- gh-50 Allow styling of edge labels in css [#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia)) +- Allow sequenceDiagram participant aliasing [#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042)) + +## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6) + +**Implemented enhancements:** + +- Add download SVG link to the live editor [#144](https://github.com/knsv/mermaid/issues/144) + +**Fixed bugs:** + +- Live Editor: Permalink address not being parsed [#202](https://github.com/knsv/mermaid/issues/202) + +**Closed issues:** + +- title doesn't work in sequenceDiagram [#248](https://github.com/knsv/mermaid/issues/248) +- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [#247](https://github.com/knsv/mermaid/issues/247) +- Broken in firefox? [#245](https://github.com/knsv/mermaid/issues/245) +- When there is a Chinese symbol in the flowchart, it will crash。 [#238](https://github.com/knsv/mermaid/issues/238) +- Non-alpha characters included in ALPHA token (flow graph jison) [#232](https://github.com/knsv/mermaid/issues/232) +- subgraph not rendering with change to sample [#231](https://github.com/knsv/mermaid/issues/231) +- sequence diagram requires a new line at the end? [#229](https://github.com/knsv/mermaid/issues/229) + +**Merged pull requests:** + +- Make sequenceDiagram terminal newline optional [#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042)) +- Support sequenceDiagram "over" notes [#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042)) +- Properly handle "rest of line" statements [#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042)) +- CLI: Propagate exit code from lib (i.e., phantomjs) [#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042)) +- flowRender.js - Fix FontAwesome icon insert [#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal)) +- updated sequence diagram link in live editor [#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) +- updated links in README.md [#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) +- Ellipse syntax [#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88)) +- Allow keywords as suffixes of node ids [#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88)) +- Highlighted the editor in the nav [#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv)) +- Live editor tweaks [#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88)) +- Add a Gitter chat badge to README.md [#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger)) + +## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5) + +**Closed issues:** + +- sequence diagram, arrowhead instead of crosshead [#227](https://github.com/knsv/mermaid/issues/227) + +**Merged pull requests:** + +- Fix a typo: crosshead --> arrowhead [#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong)) + +## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4) + +**Implemented enhancements:** + +- Set log level from mermaid configuration [#220](https://github.com/knsv/mermaid/issues/220) +- Links in sequence diagrams [#159](https://github.com/knsv/mermaid/issues/159) +- Add syntax for double headed arrows [#123](https://github.com/knsv/mermaid/issues/123) + +**Fixed bugs:** + +- comment characters `%%` cause parse error [#141](https://github.com/knsv/mermaid/issues/141) + +**Closed issues:** + +- Marker-end arrow cannot be shown for URL with query parameter [#225](https://github.com/knsv/mermaid/issues/225) +- Please update bower's D3 version [#221](https://github.com/knsv/mermaid/issues/221) +- Width fixed to 400px [#204](https://github.com/knsv/mermaid/issues/204) +- render to png from the cli does not display the marker-end arrow heads [#181](https://github.com/knsv/mermaid/issues/181) + +**Merged pull requests:** + +- Allow `end` as a substring of vertex id [#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88)) +- Remove duplicate npm dependencies: d3 and he [#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88)) + +## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3) + +## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2) + +**Implemented enhancements:** + +- Support for hyperlink and tooltip [#34](https://github.com/knsv/mermaid/issues/34) + +**Closed issues:** + +- Installing “atom-mermaid@0.1.3” failed [#218](https://github.com/knsv/mermaid/issues/218) +- node feature request [#211](https://github.com/knsv/mermaid/issues/211) +- Please add prefix for styles [#208](https://github.com/knsv/mermaid/issues/208) +- Bad handling of block arguments [#207](https://github.com/knsv/mermaid/issues/207) +- please consider port to mac osx [#203](https://github.com/knsv/mermaid/issues/203) +- allow phantomjs >=1.9.x [#201](https://github.com/knsv/mermaid/issues/201) +- syntax for venn diagrams? [#200](https://github.com/knsv/mermaid/issues/200) +- Broken CLI Graphs? (v0.5.1) [#196](https://github.com/knsv/mermaid/issues/196) +- Static site does not render under HTTPS [#194](https://github.com/knsv/mermaid/issues/194) +- Error on simple graph [#192](https://github.com/knsv/mermaid/issues/192) +- Escape "~" [#191](https://github.com/knsv/mermaid/issues/191) +- Trying to add link using 'click' to flowchart [#188](https://github.com/knsv/mermaid/issues/188) +- cli: no lines and arrowheads rendered / only dotted lines [#187](https://github.com/knsv/mermaid/issues/187) +- text of mermaid div displayed on page [#186](https://github.com/knsv/mermaid/issues/186) +- using mermaid with laravel [#185](https://github.com/knsv/mermaid/issues/185) +- Atom editor package [#183](https://github.com/knsv/mermaid/issues/183) +- Auto linewrap for notes in sequence diagrams [#178](https://github.com/knsv/mermaid/issues/178) +- Execute code after initialize [#176](https://github.com/knsv/mermaid/issues/176) +- Autoscaling for all diagram types [#175](https://github.com/knsv/mermaid/issues/175) +- Problem wit click event callback [#174](https://github.com/knsv/mermaid/issues/174) +- How to escape characters? [#170](https://github.com/knsv/mermaid/issues/170) +- it can not work [#167](https://github.com/knsv/mermaid/issues/167) +- Broken subgraph using the CLI [#153](https://github.com/knsv/mermaid/issues/153) +- IE Support issue [#142](https://github.com/knsv/mermaid/issues/142) +- Flowchart truncated [#140](https://github.com/knsv/mermaid/issues/140) +- Double Quote as text is not working [#219](https://github.com/knsv/mermaid/issues/219) +- classDef / class not working with htmlLabels? [#210](https://github.com/knsv/mermaid/issues/210) +- Links in graph missing [#209](https://github.com/knsv/mermaid/issues/209) +- Last word in comment boxes getting cut off by word wrap library : ( [#195](https://github.com/knsv/mermaid/issues/195) +- Escaping characters in sequence diagram [#193](https://github.com/knsv/mermaid/issues/193) +- SVG foreignObject rendering [#180](https://github.com/knsv/mermaid/issues/180) +- IE9 issue [#179](https://github.com/knsv/mermaid/issues/179) +- inoperable in an AMD/requirejs environment: IPython Notebook [#127](https://github.com/knsv/mermaid/issues/127) +- \[Parser] Hyphen in participant name bring TypeError [#74](https://github.com/knsv/mermaid/issues/74) + +**Merged pull requests:** + +- Update flowchart.md [#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro)) +- Default style when using the CLI [#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey)) +- Gantt chart - add minutes and seconds durations [#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans)) +- Using QUnit for AMD testing [#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl)) +- Update phantomscript.js [#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow)) + +## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1) + +**Implemented enhancements:** + +- To SVG Export [#146](https://github.com/knsv/mermaid/issues/146) +- Possibility to set the width of the generated flowchart [#129](https://github.com/knsv/mermaid/issues/129) +- Special characters break parsing [#54](https://github.com/knsv/mermaid/issues/54) +- Responsive graph layout for mobile viewers [#51](https://github.com/knsv/mermaid/issues/51) +- Styling connector lines [#31](https://github.com/knsv/mermaid/issues/31) + +**Fixed bugs:** + +- flowchart - styling of edges via css overrides specific styles set in the graph definition [#128](https://github.com/knsv/mermaid/issues/128) + +**Closed issues:** + +- Live editor is broken [#173](https://github.com/knsv/mermaid/issues/173) +- 0.5.0 no longer respects custom date definitions in Gantt diagrams [#171](https://github.com/knsv/mermaid/issues/171) +- Drop label character restrictions [#162](https://github.com/knsv/mermaid/issues/162) +- can't nest subgraphs in flowchart [#161](https://github.com/knsv/mermaid/issues/161) +- Unable to generate gantt diagram with mermaid CLI [#158](https://github.com/knsv/mermaid/issues/158) +- Inline css by "mermaid" [#157](https://github.com/knsv/mermaid/issues/157) +- Finite State Machine Diagram [#152](https://github.com/knsv/mermaid/issues/152) +- How to center align gantt diagram [#150](https://github.com/knsv/mermaid/issues/150) +- Security concern regarding class definition [#148](https://github.com/knsv/mermaid/issues/148) +- File Extension [#147](https://github.com/knsv/mermaid/issues/147) +- `setTimeout` with clusters problematic with programmatic edits and no callback [#133](https://github.com/knsv/mermaid/issues/133) +- module.exports.cloneCssStyles() in combination with Angularjs breaks display in Chrome and IE [#126](https://github.com/knsv/mermaid/issues/126) +- Gantt - suitable xAxis for longer project [#125](https://github.com/knsv/mermaid/issues/125) +- How to get started with this project ? [#64](https://github.com/knsv/mermaid/issues/64) + +**Merged pull requests:** + +- Remove moot `version` property from bower.json [#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche)) + +## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0) + +**Implemented enhancements:** + +- Add a css file, mermaid.css, with default styling [#122](https://github.com/knsv/mermaid/issues/122) +- software architecture diagram [#36](https://github.com/knsv/mermaid/issues/36) +- Support for bar charts and pie diagrams [#22](https://github.com/knsv/mermaid/issues/22) + +**Closed issues:** + +- uglifyjs wanrings which means we can improve the code [#156](https://github.com/knsv/mermaid/issues/156) +- New(er) features unavailable in downloadable js files? [#151](https://github.com/knsv/mermaid/issues/151) +- Add gh-gapes link to description [#143](https://github.com/knsv/mermaid/issues/143) +- Some examples not displayed on Firefox 36.0.1 [#138](https://github.com/knsv/mermaid/issues/138) +- tags ending in a "v" don't render [#132](https://github.com/knsv/mermaid/issues/132) +- Links in flowchart [#131](https://github.com/knsv/mermaid/issues/131) +- Using the library for iOS development [#130](https://github.com/knsv/mermaid/issues/130) +- Add capability for gantt diagrams [#118](https://github.com/knsv/mermaid/issues/118) +- lower case v causes error in the parser [#108](https://github.com/knsv/mermaid/issues/108) +- Label's css conflict with boostrap's .label [#67](https://github.com/knsv/mermaid/issues/67) +- TypeError: Cannot read property 'layout' of undefined [#37](https://github.com/knsv/mermaid/issues/37) + +**Merged pull requests:** + +- Dev 0.5.0 [#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv)) +- Fix spacing [#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho)) +- Fixing typo: "Think" -> "Thick" [#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a)) +- IE, local html, cssRules access is denied [#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong)) +- Add automatically generated change log file. [#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder)) +- Adding init argument to the global API [#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl)) +- Add description of manual calling of init [#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl)) +- Allow other forms of node selection for init() [#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl)) +- Use a library-level variable for assigning ids [#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl)) + +## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0) + +**Implemented enhancements:** + +- Assymetric shapes not documented [#82](https://github.com/knsv/mermaid/issues/82) +- Improve arrows [#3](https://github.com/knsv/mermaid/issues/3) + +**Fixed bugs:** + +- NoModificationAllowedError [#23](https://github.com/knsv/mermaid/issues/23) + +**Closed issues:** + +- subgraph background is black in rendered flowchart PNG via CLI [#121](https://github.com/knsv/mermaid/issues/121) +- Integrate editor at https://github.com/naseer/mermaid-webapp [#110](https://github.com/knsv/mermaid/issues/110) +- Internet Explorer Support [#99](https://github.com/knsv/mermaid/issues/99) + +## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5) + +## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4) + +**Implemented enhancements:** + +- Apply styling from css when using the CLI utility [#85](https://github.com/knsv/mermaid/issues/85) +- Generated SVG works poorly outside web browsers [#58](https://github.com/knsv/mermaid/issues/58) +- Generating SVG text blob for use in Node [#2](https://github.com/knsv/mermaid/issues/2) + +**Closed issues:** + +- Subgraph syntax bug? [#120](https://github.com/knsv/mermaid/issues/120) +- Live editor [#115](https://github.com/knsv/mermaid/issues/115) +- Error in "Basic Syntax" wiki page [#113](https://github.com/knsv/mermaid/issues/113) +- semicolons, anyone? [#111](https://github.com/knsv/mermaid/issues/111) +- undefined `sequenceConfig` fails [#109](https://github.com/knsv/mermaid/issues/109) +- Sequence Diagrams: Show Actors below as well [#106](https://github.com/knsv/mermaid/issues/106) +- Allow overriding sequence diagram configuration (SVG properties) [#103](https://github.com/knsv/mermaid/issues/103) +- Error when rendering A-- This is the text -- B [#102](https://github.com/knsv/mermaid/issues/102) +- Clipping in documentation [#97](https://github.com/knsv/mermaid/issues/97) +- isolate class styling to the svg container [#92](https://github.com/knsv/mermaid/issues/92) +- Make the new graph declaration more visual [#40](https://github.com/knsv/mermaid/issues/40) + +**Merged pull requests:** + +- Add live editor [#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer)) +- Adds CSS option to the CLI [#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog)) +- Update flowchart.md in response Issue #113 [#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40)) +- Ignore all files except the license and dist/ folder when installing with Bower. [#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy)) + +## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3) + +**Implemented enhancements:** + +- Support for dotted links [#26](https://github.com/knsv/mermaid/issues/26) + +**Closed issues:** + +- Missing arrows in sequence diagram [#98](https://github.com/knsv/mermaid/issues/98) +- Error with >9 linkStyles [#95](https://github.com/knsv/mermaid/issues/95) + +**Merged pull requests:** + +- Require d3 directly to better support Node usage [#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish)) +- update doc with -c option [#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr)) +- Add new parameter to the console client to override the svg configuration in sequence diagrams [#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr)) +- Text based labels, new shape [#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes)) +- fix html tags in example usage [#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin)) + +## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2) + +**Implemented enhancements:** + +- Make link text look like it is on the line [#53](https://github.com/knsv/mermaid/issues/53) + +**Closed issues:** + +- disable auto render [#91](https://github.com/knsv/mermaid/issues/91) +- Tidy breaks mermaid (linebreaks in \<div>) [#87](https://github.com/knsv/mermaid/issues/87) +- Bug: \<br> being rendered as text in node [#73](https://github.com/knsv/mermaid/issues/73) +- Graph edges appear to render outside of the canvas [#70](https://github.com/knsv/mermaid/issues/70) + +**Merged pull requests:** + +- Merge pull request #1 from knsv/master [#96](https://github.com/knsv/mermaid/pull/96) ([gkchic](https://github.com/gkchic)) +- Removed duplicated section in flowchart docs [#94](https://github.com/knsv/mermaid/pull/94) ([kaime](https://github.com/kaime)) +- Grammar changes to sequence page [#93](https://github.com/knsv/mermaid/pull/93) ([gkchic](https://github.com/gkchic)) +- Github buttons [#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic)) +- Template change [#88](https://github.com/knsv/mermaid/pull/88) ([gkchic](https://github.com/gkchic)) + +## [0.3.1](https://github.com/knsv/mermaid/tree/0.3.1) (2015-01-05) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1) + +**Implemented enhancements:** + +- Support for sequence diagrams [#16](https://github.com/knsv/mermaid/issues/16) +- Client utility for mermaid [#6](https://github.com/knsv/mermaid/issues/6) + +**Closed issues:** + +- Non ASCII chars in labels [#84](https://github.com/knsv/mermaid/issues/84) +- 'undefined' titles of Quicklinks on the usage page [#80](https://github.com/knsv/mermaid/issues/80) +- \[cli] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [#71](https://github.com/knsv/mermaid/issues/71) + +**Merged pull requests:** + +- Flowchart doc: Text in the circle now in a circle [#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack)) +- Fix for issue #73 [#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a)) +- Ink template [#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic)) +- Show help and version even if phantom isn't present. Fixes #71 [#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog)) +- Add apostrophe & 'and' [#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki)) + +## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0) + +**Implemented enhancements:** + +- How do I do comments? [#47](https://github.com/knsv/mermaid/issues/47) +- Improve readability with new line as terminator and whitespace [#38](https://github.com/knsv/mermaid/issues/38) + +**Fixed bugs:** + +- This characters failed the lexical parsing [#46](https://github.com/knsv/mermaid/issues/46) + +**Closed issues:** + +- Trailing whitespace at the end of lines is not ignored [#55](https://github.com/knsv/mermaid/issues/55) +- Use classes instead of inline style for easy styling [#24](https://github.com/knsv/mermaid/issues/24) + +**Merged pull requests:** + +- Adds Command Line Interface for generating PNGs from mermaid description files [#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog)) +- Allow special symbols for direction along with acronyms [#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40)) + +## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16) + +**Fixed bugs:** + +- Lines routed outside visible area [#19](https://github.com/knsv/mermaid/issues/19) + +**Closed issues:** + +- Mermaid not rendering properly on Wordpress pages [#59](https://github.com/knsv/mermaid/issues/59) +- Improve example page with live demo [#52](https://github.com/knsv/mermaid/issues/52) +- Does not render upon AngularJS Updates [#45](https://github.com/knsv/mermaid/issues/45) +- Download link in README.MD doesn't work. [#42](https://github.com/knsv/mermaid/issues/42) +- linkStyle usage is not obvious [#41](https://github.com/knsv/mermaid/issues/41) +- Move \*.spec.js in src/ to test/ [#35](https://github.com/knsv/mermaid/issues/35) + +**Merged pull requests:** + +- New grammar will allow statements ending without semicolon as disccused in Issue #38 [#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40)) +- Class based styling [#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes)) +- Fix typos [#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino)) +- Included .DS_Store in gitignore [#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq)) +- Improves readability discussed in issue #38 [#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40)) +- Added a linting task for gulp [#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv)) + +## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15) + +**Fixed bugs:** + +- Error with some characters [#25](https://github.com/knsv/mermaid/issues/25) +- Cap-cased words break parser [#8](https://github.com/knsv/mermaid/issues/8) + +**Closed issues:** + +- Question marks don't render properly with /dist/mermaid.full.min.js [#30](https://github.com/knsv/mermaid/issues/30) +- Provide parse function in browser widthout `require`? [#21](https://github.com/knsv/mermaid/issues/21) +- Better label text support [#18](https://github.com/knsv/mermaid/issues/18) + +**Merged pull requests:** + +- Include bower_components/ to .gitignore [#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv)) +- Fixed reference to Git repo. [#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis)) + +## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14) + +## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13) + +**Implemented enhancements:** + +- Publish to NPM [#7](https://github.com/knsv/mermaid/issues/7) + +**Closed issues:** + +- modified init to be applied more than once [#29](https://github.com/knsv/mermaid/issues/29) +- Wanted to know build process for the project. [#28](https://github.com/knsv/mermaid/issues/28) +- can not support Chinese description [#20](https://github.com/knsv/mermaid/issues/20) +- Support unicode chars in labels [#9](https://github.com/knsv/mermaid/issues/9) + +## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10) + +## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9) + +**Closed issues:** + +- Add link to jsbin playground to README [#11](https://github.com/knsv/mermaid/issues/11) +- What are the requirements ? [#10](https://github.com/knsv/mermaid/issues/10) + +**Merged pull requests:** + +- Allow unicode chars in labels [#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige)) + +## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8) + +## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7) + +**Closed issues:** + +- Provide parser as separate module [#4](https://github.com/knsv/mermaid/issues/4) + +## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6) + +## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5) + +**Merged pull requests:** + +- Added new shapes! [#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes)) + +## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4) + +## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3) + +## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2) + +## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1) + +## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0) + +## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1) + +## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16) diff --git a/docs/community/development.md b/docs/community/development.md index 7ccd31f6ad..3e0a7c8a63 100644 --- a/docs/community/development.md +++ b/docs/community/development.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Development and Contribution 🙌 diff --git a/docs/community/n00b-overview.md b/docs/community/n00b-overview.md index e601432b2a..06bf5fc8aa 100644 --- a/docs/community/n00b-overview.md +++ b/docs/community/n00b-overview.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Overview for Beginners diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index 6d3f811eb8..dc05aa1939 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Adding a New Diagram/Chart 📊 diff --git a/docs/community/security.md b/docs/community/security.md index 62334e0263..ee9033ca21 100644 --- a/docs/community/security.md +++ b/docs/community/security.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Security diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index dddf5979f0..782affe789 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Version 8.6.0 Changes diff --git a/docs/config/Tutorials.md b/docs/config/Tutorials.md index 3894c99f3c..f76124251d 100644 --- a/docs/config/Tutorials.md +++ b/docs/config/Tutorials.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Tutorials diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md index 68e825425a..d699be01ed 100644 --- a/docs/config/accessibility.md +++ b/docs/config/accessibility.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Accessibility Options diff --git a/docs/config/configuration.md b/docs/config/configuration.md index 1c2a5566a5..e764e200a7 100644 --- a/docs/config/configuration.md +++ b/docs/config/configuration.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Configuration diff --git a/docs/config/directives.md b/docs/config/directives.md index 85d678139e..8185af294c 100644 --- a/docs/config/directives.md +++ b/docs/config/directives.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Directives diff --git a/docs/config/mermaidCLI.md b/docs/config/mermaidCLI.md index a2cc8a21a0..0d32c54728 100644 --- a/docs/config/mermaidCLI.md +++ b/docs/config/mermaidCLI.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # mermaid CLI diff --git a/docs/config/n00b-advanced.md b/docs/config/n00b-advanced.md index 2ca0d684fd..b8970142a6 100644 --- a/docs/config/n00b-advanced.md +++ b/docs/config/n00b-advanced.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Advanced n00b mermaid (Coming soon..) diff --git a/docs/config/setup/README.md b/docs/config/setup/README.md index cc2038c200..28a7c2d97c 100644 --- a/docs/config/setup/README.md +++ b/docs/config/setup/README.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # mermaid diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index a24002c136..5171d82379 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Module: config @@ -10,7 +10,7 @@ #### Defined in -[config.ts:7](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L7) +[config.ts:7](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L7) ## Functions @@ -32,7 +32,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L191) +[config.ts:191](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L191) --- @@ -56,7 +56,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:136](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L136) +[config.ts:136](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L136) --- @@ -80,7 +80,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:96](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L96) +[config.ts:96](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L96) --- @@ -114,7 +114,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:222](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L222) +[config.ts:222](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L222) --- @@ -143,7 +143,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L151) +[config.ts:151](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L151) --- @@ -163,7 +163,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L75) +[config.ts:75](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L75) --- @@ -195,7 +195,7 @@ corresponding siteConfig value. #### Defined in -[config.ts:113](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L113) +[config.ts:113](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L113) --- @@ -228,7 +228,7 @@ function _Default value: At default, will mirror Global Config_ #### Defined in -[config.ts:61](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L61) +[config.ts:61](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L61) --- @@ -249,7 +249,7 @@ function _Default value: At default, will mirror Global Config_ #### Defined in -[config.ts:14](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L14) +[config.ts:14](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L14) --- @@ -269,4 +269,4 @@ function _Default value: At default, will mirror Global Config_ #### Defined in -[config.ts:79](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/config.ts#L79) +[config.ts:79](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index 24cd325fb1..adbc05f8ac 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Module: defaultConfig @@ -10,7 +10,7 @@ #### Defined in -[defaultConfig.ts:1855](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/defaultConfig.ts#L1855) +[defaultConfig.ts:1855](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/defaultConfig.ts#L1855) --- @@ -52,4 +52,4 @@ Configuration #### Defined in -[defaultConfig.ts:31](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/defaultConfig.ts#L31) +[defaultConfig.ts:31](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/defaultConfig.ts#L31) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index cbb5d3351f..c729e8af39 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Module: mermaidAPI @@ -16,7 +16,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/mermaidAPI.ts#L483) +[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/mermaidAPI.ts#L483) ## Functions @@ -36,7 +36,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:73](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/mermaidAPI.ts#L73) +[mermaidAPI.ts:73](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/mermaidAPI.ts#L73) --- @@ -56,4 +56,4 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:47](https://github.com/emersonbottero/mermaid/blob/57b883c7/packages/mermaid/src/mermaidAPI.ts#L47) +[mermaidAPI.ts:47](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/mermaidAPI.ts#L47) diff --git a/docs/config/theming.md b/docs/config/theming.md index 32a6244171..107bd4ddc6 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Theme Configuration diff --git a/docs/config/usage.md b/docs/config/usage.md index 35d1ba68f0..2a3ee0a8d2 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Usage diff --git a/docs/edit.md b/docs/edit.md deleted file mode 100644 index 7d3dc338fd..0000000000 --- a/docs/edit.md +++ /dev/null @@ -1,9 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. - ---- - -layout: home - -## title: Live Mermaid - -<iframe id="editor" src="https://mermaid.live" style="position: fixed;left: 0px;bottom: 0px;right: 0px;top: 80px;width: 100%;height: calc(100% - 80px);"></iframe> diff --git a/docs/index.md b/docs/index.md index 282f12f871..0ff0584c19 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. --- @@ -12,7 +12,7 @@ name: Mermaid text: Diagramming and charting tool tagline: JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. image: -src: /header.png +src: /mermaid-logo.svg alt: Mermaid actions: \- theme: brand @@ -110,6 +110,7 @@ const members = [ .image-container .image-src { margin: 1rem auto; max-width: 100%; + width: 100%; } .dark .image-src{ diff --git a/docs/intro/index.md b/docs/intro/index.md index f38d1ab757..9bf4e4b6c3 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # About Mermaid diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 0b85ff1627..48c3312edb 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # A Mermaid User-Guide for Beginners diff --git a/docs/intro/n00b-syntaxReference.md b/docs/intro/n00b-syntaxReference.md index 1169454e2b..ad6d06cba7 100644 --- a/docs/intro/n00b-syntaxReference.md +++ b/docs/intro/n00b-syntaxReference.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Diagram Syntax diff --git a/docs/misc/faq.md b/docs/misc/faq.md index 3d3bcb7c3b..ac5eeeb80b 100644 --- a/docs/misc/faq.md +++ b/docs/misc/faq.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Frequently Asked Questions diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md index d0b3c5bb19..deac1e3b1b 100644 --- a/docs/misc/integrations.md +++ b/docs/misc/integrations.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Integrations diff --git a/docs/public/android-icon-144x144.png b/docs/public/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f24bbae040525bdbe619c81106693f2e39d7a GIT binary patch literal 4524 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 literal 0 HcmV?d00001 diff --git a/docs/public/android-icon-192x192.png b/docs/public/android-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6c40128d6c99c2382b162c034dea1f7e1a0cf3 GIT binary patch literal 5257 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 literal 0 HcmV?d00001 diff --git a/docs/public/android-icon-36x36.png b/docs/public/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..40b1140fa1c1fd11a205c9316a2f517d6263f403 GIT binary patch literal 1513 zcmc(ec~H|w6vr2=g@R&iD{38EL{VEL7ZBiw27-YQfyimA9j1ijmt)KY`6UR!k}Ba) zv17}Cw|G!20vbzd1uLQ$8K^fRP>7(8SDjKtf?(wJN2fET&h+o@?CzVl@AG~8c6YWo zUcj5~_JJEhXgWWdn@HM46T@{1Id|G*)uee#%8BD3Wd7RSA)HG3UZUv4ID~Q*BV^1+ zXpCGkK0-)GN9ai!LfB4(W^48~BrHeB=|p^NawG`=OY^_=Ks5wq05=C#W<#hJ0@UEI zf<O&~5)fs8=9|!U4=!{-#TihPLzo@{R1ls8%5pe-7B1d`?)%Vq1vncZDi?Ym0NI9L zg7r4&_rr1mR_MTR5ZZdc{t|BX16v1e-C!Su<5q~@49Nvxz63AF;M@(swD8?IxN!&8 z6+_x~=(-PkeuA-AaLop*H$jpKZr=k%8Srx9x(#YtAS4rNTj27q5RnaAYv8#ZWTlX~ z2gb*tqz+<@(9sV~*TLEe?L8p*2KpYtm;+up;ENLIybJ5Lz&JqaHi$EVr41afq4py1 zH$rO{FqKg7Jrq{M;1E0>gp>lf+6UMAAS??k?NDb;Gu-`we6x><L_rcl9->Pl_LkIX zi;upj@TsbF6AwRIWBu{B$Mr+MuXaDM&t=d%<<t|4Ym2!zh!i=c$MCq^(fXauq~k*H z<04%ixXtu*_Z<y0`H|sDK9`dm++NusO*$V=dAr|TAIUY3)ESKBUB$CXeijbSH(a9H zZLizCPe*H_pEr-h*zNoIDm}B1a@gI?!^xCiVB*nT89NdVR=m5h{wq$yoNGl4&x^b2 z<8z%?bubZsDR-XF!e_-96{$Ue#jOf+8KrD!$}*~D-DP%udz<ek$EuZV>$5<MZg_f$ z{z~EQ-BUR-xpMuILj$2$W5bHt59e;Ou?LoHA9p(Ly?NyYo3-`m)7TBM6o2+Wf;e*v zwW@fUS?OQDB9zzaa83>OTsyjFZ%jRH+40hvRl_}4*@Cp7BPEw>l`ei+`n98b(ctMt zmOQVNLP3)-$HPFxo)QS;W=)jK^R31M3X0<{`{4l1d0b&X&(k+heHQY<>*~~tv^j>6 z^$yA(WrlYwofOw?{R0VOUGKTCDr(C0yx#7c!0qZ@=3PGDcVUdF$foGcoB5h&3oD%| z1)_0zMxM^-?L1W2H*eliul^H3y&oOP`MikF5%w&dWvY_zdNHkZSEcEsmLj5CkL~Dv zdgj0}Dyzw>`^b#<zdd_m>EWH6JI&R@o1NNrM3HakLqvW?h=l}>i8680ASRv3^kdNd z7(vNQCdOc3{w!ZQ9i!9pZpB~tmq4i&%O%<WE$}FMlt&7@CU(%OB}A4m6Gt+F&}cCl zO|BG5adOB->#6EY>6xqZ_mS+J2{u`#Q>J4WS1r;haTS4K@g%B6j4EiPy}|G&vS3&= zE|<y(#0X)Ar)H#(%<M^d{$@UviwW5Ta<gWED~ZgVgv7~}IFYTv(O*^3G%9J>$u)vE z^28;R6k@PgEP6lyD}*)hC8dx=W=zVHB+tPSJtCs?5c??^S~Dq>lE_CAxdJDTPE)D~ zg<49J2=#K2TBW7^bLF%^9LJd=Mt~%cl^!G!iy0w!x=@rJAY_IF2Qx!(Dyg87^|?m< QGVucuKT^Q0i%8q_CypP#_5c6? literal 0 HcmV?d00001 diff --git a/docs/public/android-icon-48x48.png b/docs/public/android-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..c81790b8448ce6af4a7a307ab7a304e293300186 GIT binary patch literal 1791 zcmd6lc~DbV6vm&Rh!8Yrkr0)FirC8X5<(zP1%V&|ghq^8MVjq}ge@4JR*)hn0iv{m z6;P|VfeIobic{2DK&5O|0i|f!D~O1QvM8IUk4|T5o$3F*bMHNK@A-Y-UFK-`z8(g8 zbUg$?3_N*UKQf||Lsy%eg-tVx$S^g~#m5CfE+5bz7fmDAW)hyC4}wH3L6F#Z1Q{i_ zV!IJ!J1OiDA_#UEL5#zXU0=HbLA0p+H3D}M0CxEQtFx5A3Ils3U@F*<2wV2SIyLaV zffWP@)F4OzM-}j*p}q}X4?#~qG(Urz4<P<LY)*pB8c4{2TeZ;g4BiYw^%HQ71dnKF z?gFw+yocU5aJ32~DS$-)o(k8h;pH26*bc5c!DT1ZwnG0PoVf+wyTK<GvVVrk$FOoc za8z)m65hXu`%Mt=Er<_5T`M?jgO+ZP9fY7X=;(p*3FsdJ|NS8R4%&O*#cSA@2vv{4 zD+ca1fPFaZIt8O+FfjqgisATmcsl}7Ct>w2`1N;q)&~`h5Rw6Tci_TpP#l88*I;ZM z2H(QS7^D|LK{+_>0B#iIm&3bJaNYrju0Zc=I9Lc_hoS8`1gC>TI6Qv^oi9O}3YrTr zG73q#@LLDCMZ))mkbV{H!r<*F3=G4Ie&`#3?pLsOFRV|1rY`V}gXIMH#Xo<X`JAi? zl<@OiN0t{F|74_bkBv4Zv~^;<S)rf&?yY8q)^PBYrDKV;eM2uF#EmvRvKW-Bb%Po# zt@H>ZQaeTL?ZNdm5p8QF7t;w(ANT29dWLiLmyI~9t;xC*cye6?yk8_jp-?K8iEukJ zq_L6XSWGjCjZOU_G2=jrirQvO{X{%9$9S&!YL0HwK8+od*H69JQnJd=>uB7OjGaR| zI=xJa)p(XXB~2o<aQ`VTZiRMfKX;lQB`e2)A0Lden5^>bD%w&_e(9ZuHBDu86}sz+ zQd6_lX-A3-a&;tImhYPGVHs%b&9Yvdo*&j{Ix{n%rTjcSI(j0u#Mum8+DJXsggP!} z)qJ{mj%nOkb7s{nt<w^5J4X4V<K?Nc85(&E&nuzoU3S)4mv5BEGE=qY7}Rj<g-<CN z1JzYJFVK6HYW>b)lheVx>cr|%&RithKz~1V;a!Vvdh#M~!@8Jkr}6|mho{x4F`^l6 z+^kNylwY|f*Zs%ZOZldYIw;BW=&5T$KL1SDt%L1Bm&j2x#O00ptKfOFE%O$b*74|+ zgBWHQwBiP}w=Z*zb_nUZYhb(}_FjXNB#%x>9<vmPa!)kQjXRXQmPMm|addt{eoWOv z?o;W3+|m-qh$n<#$ka}DS~`biP*M<dLY)^gJl{<aNiondibyRBYKb27Ps%B66i;z= zD|am;9gRyLowF*h=-R}xs@$wsUtlGlVMtHbYx9&A7n?Ka{u@hJdH(iXds=?L96m)y zq~9?6OsTLrDtH-M5MUItDp^O{%@H;8)pj~rvC1_~SIdjio2B5(_~to&0$kK4SmeI< zy3XFKCzrnNu`i;T(A0MpYi2GCUBH*P`DbiRr*#%aeTk)XCCA@7c5}~?fRpEQvhpsP zPZ7*QsFz1qsvNVnk|k$BxNjn)A_B)GDx3@m6J;{38K^bGLBM2U3<hS$UWTF=itc{I zzx^*ks8XtsMgF&7W>WWVQeZZDLWELAd@WMph@2q8BQRTAMW`qcCx=23Y@<{K-n_ry zILXo`S%G|es2IbzO3C(6JdD6FK8Z#kjB{|q_9Mn~(gnkKxFS$aAPf$3)z)q6NyhjC zpTC)n3MnC<MC$X*bxFkJ1H?xWiW8CHIP%x6Y{SC>oeMYke&pjLASr~wX0uTii_KxT z$50bVWYz~h>l9Hqg1WjMI_=a;rZ#+#TJPtH$P^(s`E=XRFd{@5Xe$%#P)L+v5w`z) zxvf2p<4g&IC9`LX9b{4|gM*7j5;04}<TyGqIk*j}up#fKySk>7JOS}^_vPlh3itd8 DPk=nf literal 0 HcmV?d00001 diff --git a/docs/public/android-icon-72x72.png b/docs/public/android-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..1866eb50e872df092eef4b880cafaa1d519fd2c5 GIT binary patch literal 2283 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 H?iurMZntb< literal 0 HcmV?d00001 diff --git a/docs/public/android-icon-96x96.png b/docs/public/android-icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4 GIT binary patch literal 3114 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 GDE;5Y#d$9P literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-114x114.png b/docs/public/apple-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..ba11f97b149eebd6f9dd3c57719255481d78d254 GIT binary patch literal 3648 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 Xs;vH?=A%zpI{;Q@cBYLuuf%@?B-v8x literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-120x120.png b/docs/public/apple-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..05f58d8011a163598d6bbdbaaad9f75916dbd9be GIT binary patch literal 3781 zcmZ{nc{tQx`^P_q8OsbBMTB82A<K;2Ok}4K5|b@tnPDc|*v67=>``PZYnDX%QdBgy z3`UX?k!)#DNQwF;3i(aH>-k;3@AF*ObDis)`#R@-z3=-h|J>)2ovkH5-w{3l0Qhky z&FtAW>QCo^uty9*=M~#<`5D_713+^Qbk_^ao=f|jw6_6(n4<uYm;wO5*h`5k01$x& zfK^Wbz!m|(VM<y18GW_`;(f}}4A}qED!c0P*(==PI2&{BB|f+aRK@SyfouSP1>($% z@ln%j<<XS0uO$ZzmygP&NrL2gAfRK4rw$!xvNE=)FF4lND*36hHCwaM!O!i^{)$xj z$BJ^>s<HlQ^6Tca4gJ-ssnse<{Qw7-?0o_UT!^6}ha9|!ieA6*`|CwiDJ}{b8NC&K zLX&r9aV~6q>-X@_z-0?{;CpYKP`4!Sb1so5-M$=7oHuC!M*Q#TX#xS#uyIbmM0-yZ z<-lztcrT<S!TlAtwN(baNdygdhBSbdIP(*$1`z{j&wxr^c!%gD*JqAZ06*A1gs434 z)$aURl!aiyJ>lr*>&p8=)wC>zEsI#mL+UDf8pk)=e_@&9v<xWc+s-k55=*}c5e2`U z__(pniMF`l%ee(Y0b%N6lsj<qhV5n29*5Ob*QH(X=)%GhU}(fFf4@~I`pb;70(i+; zN^?G)+rc~AA1Vcohgfgy@WF5)5>X;>mq_6@Q<j?lmpz8-<qwc6If+uqb5M~x1XbxI z>gKg&<WdlmACby{R(>;%BwdL3$q;2Jv5t0IUZ8tBN)LUy$~>=l##L#=Kk=QXNmXT- zP!!jTpaucxgp;ht1Gw(?A;8}bW*KQaI&>9Qh}>56lt*)$v2sraP1Q(^r4KUr4qZ#d zr;2PF$Ryu%X4q>*i`aiDUD?WjWrwMvHIYrlH^y?@Do0E*H*2q6jeig5x}H=>L+;rz z@KEvt^%{jX5qkrT8igql-#r^Y75|L^bd81uOKX6qY>9x4H*37*umV-?(D*A3^!97x z-!Cs+yjj+T8|G^`1ncIzpT<m`IPjp#05ZCLz41e4LFlfxz0j4}^ps375rQjP?qHhp z0>tH7?9o|Bm5$}<^)kj0(GqaZ-NY#ev!_M;xl|IbsSk8qt0y&!au+eIYh?Pstw8ed ztQBX^!K4eS-U35u&9c(LFl!0uK?~C_Cq=anrTJ#56PQlVB&B-N-iE%D=rx8;e8UeH z!BWR!_D?=fYo(Gd8Mz-U`z?`OL0j~jAA?ew#j2^Z?e6&uNug6?SFJ^Lg=&|3uKc9z z$<clFFN+CarmhxFZ6(Kki_JVedI`Fg1v{mtp>Qs!_wpcR*=A$}R5#pLWu>T;oOyvH zFtm@`B+pLBOs>pR`m~!!kmst2yI;{Vex8f#>vQhNVZMNw`@;fULwQO8pLyuf*oMc# zC$M1iTa-$PRn*|Jz0FEWQ+}w|S8HdiB^N^b`?G;*M1&iG8|)|(MBjTR=;eZrFL2&m z5Tm@;3NYZgn4L9JFMU6I2bv#hKHd?O=C9Cu)+O1Hs`w>GFXMrTL`#2FXwp2!TPzI9 z%zHN_+nqMO8}=kX+=4$@{(;w~w~NmMiS|_2q5FiH>=RFic^eKW+^OnsHU%w^)r$Ea z)G~I`SyKHASLKI4f_ZbIerRpa3DMUqc)81KRFCCa+{2_O54b?H`zu?|qzqHgxZ1>7 z_{Q5AFY1X-53UZw+yl?o$TJh@P{mn;^UN1g>%$n?H6a(0pD@+YvvJ-enc3PW5#Ngp zGIyAt+VOHl1Z*2k_&%x)Xfz+uj$~y16dG$c4-;Kg!<<mYsGupoW!(7MWGPAPBqO0A z;U3ZF7s$E|cbWi1hq#E_^5@Ir;+xmaJky1#)Nw0g8`*K4wu_oZof9308Jb%-{WW}4 zZV@uLi{r*lHnSxt3rcAfDRGrduq&5ryTu%|(lZY7QR1zOkEyVJoBZ0DQ;hH0aB5w* zyo(~LsYNbQCNTT-=&)f)E){2pEjqn+_!g^{yz%}*QK2DS@0E%E4}~u@rSo5XcYzm3 zy)z%8U}bc<^ij&^06)kxWj-iN;ax#ZU!m=rN6!-noO-kuJ0*9DkLbnq2pjfB(+cxA zobVSz{M$9xUAITA>Zf7MBLS-9Cj;FaU_^I|iLBW1>lzVXcxJ~z+{%y}*Ad@eE7Ie1 z^rO<{Wb&E`=lYoH8<TJ3H9u&-Kn{+WSKpNjnhg>3afR$fCwJ)9>1wDtw*Zc6^v<on zT9~bZD#F22g2!I=jJ|Xmde$b}bgQN{dZi{SvQ{c>IfE2d`y;sDs^@-N)2c}QVvNo6 zv;`j_$M%BUFcbr7Ui1FV`0BLMFZl%h*o5K&<i&G2fvQtY+>eifxeWErDT8Ldm`i-& zZ73Lz5Zod3OTWH-JowsVs{+PlW9?q=X8xX7X`_6_?~l=TUj|us8T>CcDw6ZszbBWe z&?Dj2FFpnJyJih^b&hnu@;O_MA8-r3D@3nIR>pAb*wW)mP88qZR$ey!adkM2KH6ut z9U{9Y=AZ?c5ipK!`6O7>0a6BEX|!+X9$~H4|B{n6Rf+h;9DYIvzv=1yv?nHL<RTn^ zk=FLS9`Y`!FsZNbRm|eqU-uRA2QED=zBW!>FHyMBD)lhMYY|bO7~P~FC5^s6+}Yt& zre<ho)s8-zb3Hb~i)Ogkq<tt(Wi%BkS<p3av*Fi2c0J)OQhS#7rU52U_uD{Eo(pBu znYVnm^0P_<DsMs}=Lk>NOl)m|-Z^pV@y7<TO83(k23ckV!`p#LZ>SkQAG{)OKk9(a zR4-6|wjd5$C-VAq8U`zZg4dGVE%i%F4n`?cs*$YMfkN*)?DnlO)72aI;x?$w0W)9e zk7joEdafm{Vz>K5lup)Yj*50}Av@dO7E;Ry8-AR0dwbOHHN#sCD_<Xe;2jkWI1Wpg zm5IA>g7|!QW<FR+&jakQ+dH>-_voxaoho1HR^Pe~?s|RBjQ3t#YO+a8Zv1Ap{u+Wn zb*sa`g7*YHW>pq`byhq}mmvwN$h#MPnkx)nTJ6sZ<da!O^@^J>;9F80yiGgyLCLcj z(-zx*JL2XI=+-7B_(_{0ShHws>=BO{ft~CjWo3K9=XxaiDL?rNqgF^SS^)9*U{FU- zg>4pXMCe-H$}gGi21xXj^@R**y&RgEppzluzx`pxt_81?a=a`5rP75X@_X&|TqPz- z>hfE1EnK#qN-jD356><PXb*je;HhV}#YB;_m~ErZR+-TFi=%tl)`Q=-meh)Wo4~s* z$8mxA%tz-0GwDiNY<UD2(iT#cks`T2w;op!5&SS^ezW{l(7`aO?ql(qR>sJb@VD#b z8(z1%eVSW%cD{IAnsRV+<4IzS6nA@^m&?9#zQAcPAXMoPPY6;GluYOnC^+?GDCZcS zZlm((o7*!iz6&l*E9|T$4{?x1w@PH|=DVf1@1lhyXvSuD^||{kyShemsgv=}b1h<5 z>oLX*E{n`1DT%@@*O>m|BQ6M#Z`T1Wnz735PFIyFWh=wf)n7)9UA#$36jNyIw<*@U z!CYA2nq7=lJim0$LD8BR2S<7Tn=@_!X%2`k{1b4J68fau=l+TDmj~~q^38pR(S-F* z*yu*FNUwE_{q=7Dg5W(<<q(~d*QO_Bz`Kb;)-+>2K@YtX^Q}>)o@g6AI>^6sN)kRs zyPR;4%gOV!w;bx_q5y};<W<<essd5kn1n2)#D~i^>@tI#4cB|24ywa&h&a#V;`KZY zoDFa<x^ROdh}1peH)`~wX;R_pX9?ch!##(bl|C*_Hl2(2t}p$$P$aqHZHflljvzSQ z;@6UktK-ZfVl}@TCzh+2YW!ag4)S-1hN)lxlxN3)FWLX0t5Mgxn`pYl6>!<ti-#ai zO*AX0Vt+&5$CFSB6Z8Xw*tMo64~zr1L@0o!O`WVIO#^zHD{~KVrRU5vZOy10oRVl` zRQ~R!hMonui65)!($BE%wj@$gsGhQR0_C7LoG8xM@j1h2QZ^6_z>kPGvnx%e;USJs zAzh3Ml-#2%d1jAEdDN|Q%}B1!jN&`VR<LdHjmY+g^l<#pW^Y|?Y<j!owgGxz9WI_{ z!MV<H8W48({a_1aztg2p?yyck;_r*&X*E+|{hV9MF~3b8#ZcU$#V29<+!9Auj#rMA zDmDp6LB6L?iiNj$tlX@^p<?;WcF!H~_uwGx#A&Amxq;@m;%TkQb`yu0sqxqeGXi)e zmX*%vW8ke1XS_4ZwOf&AsoHIN-n5E;`zakYlPCIUNrhP=1#$%CC&Ie#eLrP!JkN2C zr&C~6l+>a7*P7KUgSwEablJI0cZNL+D}DH>*wbbh&P!Il`v`OXEk~zd0Y~l-Z>cAv zI^3n=@5EvwBpO--x@_9;HY1KmsuYH|2o-0ZqJ<XR;e0s#h-$>WYq(OnSJ!byXPNyM zkq<X_4kvhp6R|#_M79Am&>9-5>S$GUUA%?{R$U#dsiTZWW6|h@*LHpXCI}2BkbR^7 zyFeggC4nuF{*xgr*f%`VE0hS3!ow+HSQLsJ=;cRbce0PaT5zae=S#_QHY@sv#gife zy|GxcV4sLUVo*31YsW^z0QI{44%B}zxIa;_*po!EA1NGA$7mS2hn!_IhyM}hUyKu( z5Kj7oj5Q#6*ofFa5F2tJF+7?=1paqdC`yo@;eAKj|A=FQXH$T>j*bpmOG^i%Gar8- zos9_oBaQ<(h6tcdObV(`d}g~G|KU1oj{|(k0YvuEQGr3>0l|JKUoR@zCpah!_5W9n z(k2p#8b0b;zS=t8y1oR0I)>=&<>Rg8rGe4Y)4&kb*a|iF{&*~&_pmbnICERGyC$AV F{{!c=pk)96 literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-144x144.png b/docs/public/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f24bbae040525bdbe619c81106693f2e39d7a GIT binary patch literal 4524 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 literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-152x152.png b/docs/public/apple-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a82583c0143bc8358c31426581fc023e9bf8f4 GIT binary patch literal 4819 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 QNgV)4T@#%eElkXR0O$mp_5c6? literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-180x180.png b/docs/public/apple-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..752c4dcf675ec2d88b862862443eaca053fab8c3 GIT binary patch literal 5852 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 literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-57x57.png b/docs/public/apple-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..653687ee2bc48321bb9abb4d39e21b158d3d9c85 GIT binary patch literal 1989 zcmd6lc~Fzr8pc2HA{MGu!76vG7ZAOT8nOt%e1fut)vy^9p{ODG2q}gHNI+Q?kWDsa z5eKmfC@p%mVpU|h5(rSXf-L2V76i&xAP5Q=h`jfs)0x`N^#7hY=Y7xed!Dn*Npf+r zU90g=4Fo~f+S^&X;hDbD)~v!~MSbvNJpF@b!L&e-`{|lWwi-Ux<=D9~5hQFUf}D** zkVSmz>==Sb$O!VwNd!T25oELIYPqW^f~ay`4zU<G05lQM0)LHo=Wkz)g<uo_MnW(a zfpr*oU4Uar;1&lq5kL=uy#as*gIy#Xjswpm@JfcT8!-JA#^lg70N*u1`aL+A1_wjH zJQTPWA+r=7w?NMzj8B974MY||R3W@y2D~gU!_+Lux*@U<EYE;VIK&l0<8yfZ7L@NH zx(FospjZUKW!NtU$yI3Xg+(POmLMn(_*t-^fNSO87!6-b;mtg-)8Xke@Jxor|H1Gi zxW+<9KeW7nqlv&ygYE&S>4F=T@T?Eq<KaXqycmW{rQn|fv-42Z4o%PDm)GE(0`)zx zq=bShFcm}i4H%vRssO&shM76AI1NubprjToPeb_+aK8b#889k`5jiB3!1NpF8-wIK zFf;)X1z;+HtOrnB4f6`fD+4nL<UWG2X-K^b`vRf!6|l~Ov=f-;z#|cQhM@HYILE-m z4Dd4HQ8UcF15O6K9D(*exLXJNg5Zt}avy?8Al#}36A?_#K+<injR01>LD_Enn<1#! z&FL_nRmm~!Z<pWCHiZ#XHiq;nJHK4JwP<l6M|(q-<{amFv%bRr@yMH@Z<n|owKE<c zpI?(XzfN{kZ*IW*9j;dKakRDe&hICy-~)BBJ(Hn6qOsvq%{@G?^=Y_yrM<NU%dTOn zXY@p;`4;up7pUCiWZmo97m0?V1ED<{G=0y_j<<`hf4#{yKC$fI>#Q07(OlS;xJr6H z{9bfZy+fYAo84@0f5l6){sTS!9c^lQab@SCmQ~Khnloc!tSoD5=mzmat8G92$gS=R z9du97yAw?eMtb`znM_tsCzwz@e?qT3DjcM1Z@clZaEp~{g3@N<ERw{@c$(8XV?fYR z8;d~*pSu(vV)UB)m~B*~6(ikF(bHZymO{|;FigF5h5qD0iz#K-uI&T7(bmSV{4Y61 zU8|!;OKTVxG__HVrw8kcQtmf(<tg6}&$>x<ypAc7vt<=0>Pou(PYr$-NhDp)4v}U{ zhTVPnUgc3%lGdkBdQr6}_m7XIVu#h{s^eQz<yY#7v)z{>ZigTLR@gdqQ~V+%kLT0i zv@5gB=dy02-0ZH}P}NdV?UH5+^`mwJ;)ZowwGZZRLt9d46(-L5itWTh&s?=uzZ9kD z?C*2fWMF72W##W#U8u-P)!7~R`A?DN&OLiEo@d*&2h{DOw-XCwg3Y<;z~Ig1$?8qc zjy9@K!cqy9QA0a}BX=h(W+0ER%=J!ZIgq^M4%2&%42Cm}WA1hJo5VVgD@ (Wa- zmQeP|xRSpun^4o>ymhj6l&BJV#4LNimt@0fvzgTjSU+Bp(<tZ3Dh^qwo>{KZ{BOjL z*yN3NJHpi$Dn~5xjnF=FX_Xes;nhT+!}Yn(T#12w;YrH&cy~vU*zxBE=j+EqqH?|` zdBiFgnfiI-(S+uOw9;#R%6H!|YVP%W%X7^y$hx%d*w6oKRYz#X#<rbO6hk$h5%#)_ zd3cj|YMoE*+|gjGXGpbCze>Jn^|HugYJ%C+^lAD~U}mx3RIYLNoW}aEGIEQs;9JbL zkg5>ffa;W=v$~9|P6DOqCXZ_qsIOeLR>R?{K2dfW|Jpmm3=c7vEyhqz5QZm&N~ThY z6f%)w!lF`93I*Lu+f62;WO8)3OYI*70wI_0d*-hN>k`MJae?m24#7fSaVR?oL;S>I zQ7}p(@da!ihBrRP-%uFDt8Du$A7{6$uq;1`zz0RGg&c_h3lO8I3yuaOlwznL{fV(( zaY0c#jL-8EBNRH-+&j=6XEuM}^BZ%N&lUTvAf0#g*5HWF2MCidz{F=n81n0>NTLAV z!O|m6fAV3na0;Q&Xf(2s5sgk8h+3b3BcFWWbC@57A!JL-tbzlR_|lONmfYR!5nui( z48J-_5FkD!<dJ;YA$*Q7Aei*~laq`w45M-=M!v>09}{0LmqN#U*c=}tHkH0_AC-<7 Z;tE6jd~0l4r1%bqJ;TZRuI0&?{{u}q)T{si literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-60x60.png b/docs/public/apple-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..e27a4529bd3d898bd69fc0476a80a1d16c1d61de GIT binary patch literal 2047 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 R$M?w$1k1$ISiIXc>JMR<`dt73 literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-72x72.png b/docs/public/apple-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..4c05a3c1bc9d842a37d121e169bb9406d300c200 GIT binary patch literal 2283 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 G?7sn-6KmK2 literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-76x76.png b/docs/public/apple-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..4dae6668d49d8dd866a4fc30f807bf70f5dcd607 GIT binary patch literal 2421 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 O84wGaHMPjZHS8bSzsFDj literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon-precomposed.png b/docs/public/apple-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..620c2b691ddb8dd383b9642ad23c437ae9d683b9 GIT binary patch literal 5452 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 literal 0 HcmV?d00001 diff --git a/docs/public/apple-icon.png b/docs/public/apple-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..620c2b691ddb8dd383b9642ad23c437ae9d683b9 GIT binary patch literal 5452 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 literal 0 HcmV?d00001 diff --git a/docs/public/browserconfig.xml b/docs/public/browserconfig.xml new file mode 100644 index 0000000000..c554148223 --- /dev/null +++ b/docs/public/browserconfig.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig> \ No newline at end of file diff --git a/docs/public/favicon-16x16.png b/docs/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..238b81faf7fd711edb00319fc8f16625dfe3f03b GIT binary patch literal 1038 zcmbV|drVVT7{CuO6j2mo6dzI1fR7;Dhvh<V>I5v%E3_-6MU7MG<F?$5_Lg$M`2;}} z=Y$yF2L9QyEym3RqA`F9!s07nF=QjeCB|3N$<#zGkw^GEH726T{@Ka-&X@1|e&6dH z((AILBIidUgrWqE+CX%4P$I&}yCQK$K2cvd(zWRbHPufYGlvs9)~YdR5!$&7q00RT zjSyF*AE7cDp=X5%@uv}raW}N)sYu|VKG&EDocsUWWEobwK;eSCYS{A=Y&!xf3<??6 zltEz~d{qS{XJL30UJXH;7d9P&&ELb-UU)qOZ%4p+3XC=2e+lFaJOR@I*jNkqeem=- zq?W+BPPpQQ_IvPiJEW9=wi0d+z~~s<=!cvN$gP0ZyD$!Lxf|B+1${L<8iWUa(Cq`I z2Ri#8)dMX(ARULQU%+t;SZDgz(-dUcnb@GqPq;MFwEW_Q;WwjiUyq+33dG%9dNe?S zA(otM^~yV!YvPD884KFX$-c;$bEd9xY>uuYt|md9Zk*d^^7c>fq^E`VrVZ#jrX&=v z7;MfS*i{b@8#+7uMRok*oRdALyM*$Fvxi&$p%(e#lPm?ZW;N{o;XBpQTw&>%yK&8b zdo@p9)mVf(&3Whk+8??}Mm+^>Vfe8jBrt*|tutjUyP8(FyaPve`^KW;VsetV{+{wp zV1cH1d&hXJKMbovvg)t7xyr-CVZK0l+p+MF!DlzSTG!sX*!xmm(%7Ohw>Q=<+7r69 ze%^`uE&YFx;p1`UMr<=<k+*t8q7X~7Y$8J^GATxu<r#)w%_Yz@Ptz5D>bpKkaLP8x zzT>|Wrq}u_NJ4C|L#b@X+sz&k6=Ccy<ta*XnjIn$$@*=Q>~UQ2E^H+1+#qW#Dsx(R zUM*Y8oT3Z!yq=(?i1`)TsLvQ7ScT^`qU0#Th*7d>TS`oXiJ4I61G7Q0;i4eY_uG;P zg3OzMXeFnJceq9Lek#iCa;$AG(0x`%Ya|q6IF6$g3QoyA+#7w6ATuV^$(MGDh|b73 z{^OVbl2E~fkjWq*yHqTa)hVY77t0RHZZ4Osva6K(_~lfxD2l9=QP`6?ON!lQW0a!B iY_%xNtTHu~Rf<U@BZ<rxk=1>jbU;F;PJJPxu<9Mpo~<GP literal 0 HcmV?d00001 diff --git a/docs/public/favicon-32x32.png b/docs/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..7df5e64fcb52963a16f91ff447b374779ec4bb39 GIT binary patch literal 1332 zcmcJLc~I147{^}(k{}J^&>U^RsF*nRV0T%5O0c*Ktgu9|vQ1F1yZm-pU=P?IcLFAt z+zlAa08SWX5F(-w3djHxn#4eIN|SMnT#_6@#F0-wnr0$r`m=Z5=Y8gVzn|xLpYy&x z9{UUr8zO}E@jbbIq_@~H16}guR%LgSPEXDea1gpyV6-jP-w~yregcFN-$W=i4WUi) zDRma17%D>ZAqZim2p!av-+J!^LOTAw-a;O*H2=$HM*&j}4k}=%fE^7fRnXc8Rqb&8 z8;}+PriJWU__7_^`XQql%9?>(OKWiB9>|NpQ3H+lV0jH{x`3gE+$-?w3KZ6Za}2n| zLh*HY@)Sy&Af^H~w_$S&DqG=13@|lNbsM&}VSNKsrNB>y(J9#2g1kET^cwv55V(m@ z)BrP2AUF>s1+cIT@1BK$acH;;SG(a<GCW>_)pc0=9cC9HsS@TEL0JNW6A<|s1Y|=0 z&mc?(x)LHwVC6SZT!5RskY5Mo&5%_C;TNE(2O4|8F)DW`XM~*l5yH>MA30UbJbP5` z{nG<4Y;2hM`Sj@1wLeD61|3cft-k%sbR5a)NW46_cD-X9XY#U_;0t(rrwtF78`;VO zjq^$Q13s4{WcM@{iA0^$Lm9ezvUSt4vy%n$dqk!lM^jDA%%apBU+#BjpMi~+-&k~7 z{3C4<WpQh@oN<|F@L)l(|Lb#Ia}Abx)8=7WEoPNXvBv!q9DCzQUWKG1^N6IQVDwl| zsr7J>WxQ+MORtzLjrT8kT6@<pU(9sB)BRSxrFBv9{pvY`kgxi<vY8tpA2IbBTy1Ra z?IK>t@1Bfoxm4OYe>i8@k!8ZZ)!55A&X-&i#}(j&OZr6WI^#^(MV;c;U%Nk5G~jS1 zw|Y7-H8HvJPKju<@OHPkj^|3o%(rnL_gZbV3H3cg7pv2~%}-uI>=MVV?Q;(U^(+d~ z!-M1L_Cv>9mp9VamqlM(Jzx<u>Bi64+><cXd0b&(>e5`e>B8BtO;HqU!*zAW%fte! z!L<>O$EHR)gLdXYcg>C0oZAfa_1%N(SCW!iRqcad^!?)Xh(18YV>zOmt+iI<;NKv4 z?-QY70>`A$IO!0bN~hb=sCG0*A)SuVXqW@bhDyb#)RZCLu73q6)u9Sm!hZ+s&zemk z11xqbXw@<zP8^M+FoMu%F$zVY6w7ha6w(NLb+o*-?`Q?d9@=4rVKGVxhH=%>7$vSE zFwB=kwTN~ZS}4yk{GBWq=7}rhVFaQ%(Oo}`I!!VMcjft;5h+56upMNe*3y7PUfqQV z6iS>((BSB=t|%In+@&GF=eaxrAxR+`i^ZZc7%V5&M6z)viM+fkkG~=jM^rbr;!E!= zkW#=d>9ijo$rO<|`E`m?MMSFQ6qz_yAyuoilz&D}Vd6MWm(mzACQITd3k{_?;S#Y_ i!VuG)*lfBJZcj$oll>XE|Ik5JKzyDLx6Uo(lRp8<VOuQ# literal 0 HcmV?d00001 diff --git a/docs/public/favicon-96x96.png b/docs/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4 GIT binary patch literal 3114 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 GDE;5Y#d$9P literal 0 HcmV?d00001 diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d41818c5b6e0250d7c8083ee5b19a02cdd6a4302 GIT binary patch literal 1150 zcmb7^OG_L<6opI34{+t$ML;1tA5lU7Kzs%aL|o`jUHBN$rEe09pc?~1wn0GzK~TgO zf(t=VM{yy83qe!{L<C0%XGZ+Iw;QWxCLNin=5$xzI_Ff^sqQu=M~>WFBj<e6{=t|$ zV@#nyN>Xv_axq56(p%4G3IvOSs34Ic9)-6c_$XKsya>n=s!@+8KV4S|bQZbLz8^<w z5x;t%41RaO+^CD`w*TsNz5jUkmc!8&wjHd2dirqv^%ZckW95!lKs+<icNN1}1KeDA z`tUi7)Patrd8EwWEjbO<z~Q>5b$TzbzY2q2KsiYsR<HHpS_tiV+UEo)-rDJ|_*aWZ zsr9gWUEj|98`Hf8H{p0YwYEK*lBJ{9xqmdmUD)GZhT!Kn82=8}XI}mGO7i(?*Wu_j zmp=hW#2|VP!43G;<Z{$|qS@WgXawR<Fw<$Xbmy1#sOR4Sm~4T*O6%`rr5^oNFxBdE zM(b?`s*h=&nu$KgJMXG9rktew9z?sGv>(ZPlSyB{+fRZOK|Bi|<?44^kp4f&_Wl(K CP2hn5 literal 0 HcmV?d00001 diff --git a/docs/public/manifest.json b/docs/public/manifest.json new file mode 100644 index 0000000000..3b557aab8c --- /dev/null +++ b/docs/public/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "/android-icon-36x36.png", + "sizes": "36x36", + "type": "image/png", + "density": "0.75" + }, + { + "src": "/android-icon-48x48.png", + "sizes": "48x48", + "type": "image/png", + "density": "1.0" + }, + { + "src": "/android-icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "density": "1.5" + }, + { + "src": "/android-icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "density": "2.0" + }, + { + "src": "/android-icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "density": "3.0" + }, + { + "src": "/android-icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "density": "4.0" + } + ] +} diff --git a/docs/public/mermaid-logo.svg b/docs/public/mermaid-logo.svg new file mode 100644 index 0000000000..5ac259968e --- /dev/null +++ b/docs/public/mermaid-logo.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 491 491" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <!-- <path d="M490.16,84.61C490.16,37.912 452.248,0 405.55,0L84.61,0C37.912,0 0,37.912 0,84.61L0,405.55C0,452.248 37.912,490.16 84.61,490.16L405.55,490.16C452.248,490.16 490.16,452.248 490.16,405.55L490.16,84.61Z" style="fill:rgb(255,54,112);"/> --> + <path d="M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z" style="fill:white;fill-rule:nonzero;"/> +</svg> diff --git a/docs/public/ms-icon-144x144.png b/docs/public/ms-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f24bbae040525bdbe619c81106693f2e39d7a GIT binary patch literal 4524 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 literal 0 HcmV?d00001 diff --git a/docs/public/ms-icon-150x150.png b/docs/public/ms-icon-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..1785c0f1a0d6b338b8378493a819f5e6cc89abe2 GIT binary patch literal 4761 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 PD*}MFus5$W^GyB^7T$89 literal 0 HcmV?d00001 diff --git a/docs/public/ms-icon-310x310.png b/docs/public/ms-icon-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0051005cfe054935d8c1e105c5e59013ff6e06 GIT binary patch literal 12500 zcmbt)1yCG8)aIhWoy7tKf(2iKOORlTJ1i1d92R$Xw;(}+LvUDp7Yh;+EI=T*dvJ*0 z61dG@cXj{$byrtcS6frF)9>piJ^kKHPk-@R8cKwCw0HmjfDo)KuLA&}3I98Auu&~X zAA71%Crmq8by)zQ=`H>}6bp6z%t~2D9RLVm0|3IJ0DxOmQ`kNL;LQ&J99jSX;yC~S zm0NzNwj@e`ZK<jx4|x3dEAFn$K(##a0;?-L*~KFT;&a=XkfZ<ryg^`jSv|j{lL94A z7XOgKqA^atVl=_9%eCaTu4M_BebzfUJTOx<(Jhg9+}5A6$WuIp{XV7(+;cQ9a@J@L zUIh=|p`XWN-@GQ&0$n%M(Kxb0>DScsyfuA^ov1jEf|+aZIVdLIL*BbS+)G<#lYV=I zT-s3aV?xnIF`uHPlutYf16j!bgaY<4I>XUPFtls026BX-p&iOlRslx)$oPrJ0L0;e zed-%PH@bG>G4vnjSMjfc+Gg*5<M4D}f4(UaaaBsfbfk`-!)zp8D0-y{*zSA7VjHPE z7BHnm^)?|ldOYVR+ayUFEm^xjV}!g5Y0hhAk@%=n+1ng7^CB!@nEnDi^OY&zgWH4V zv=ud)dsI|a9Ht`$#I`cbv(I6JgA4&JW`tOe_s@R(3ly+ID*E-$zyCFxy1@gO9!}^Y zGDYLX5J_b<R9QFF3>E1+qw3n@#a1^k=4<W~V3K(9RB20C<MmiTnh;R>r?b$Yq?`=8 zp)AnMc3hnq+C>ml@M>L=*)TF6&m<$qo5|OcVBqUFKm&k}DSY|uidte0=tNdVP9$>6 z%^ZU&ydhP=mvP{z5GLs|6a@#5J&TIt;AB=kCU9f8W*}=-8+&>!QXz#aNJe6_Q}gCY z2!2rht93M$FD&CkuIHb+B${Oh=+`!JILH*phi8Kb{V@DUI|{Zrez`KetO)+@y%v{E zT*|VJW<C57F9<sb+|T3EH0+>r=e#Fuzl^i@$b*-7^5m2<ZP}j$cS$p~{1Uw}wt!0C zO6>@Oeac*WVmKVp6=CTqv0LcU(ryiU$RqVielB~5!D4TxHKNGqA(jlfsiYd1zA9FU z6-n*;i#M>NBJsP(C2`==NNVYs$IEr}5X^fLR_vI@Vw&j@y|jx<F)}2vb~+TV%B6A^ z$qEf*k$v`^Rz7P{8a)L2V|*t@XWMNkjnz_NUA;4|H|U=JS7=(`Z5T;S(6!66+06Y9 zy$k1|t!DN1RCvG#!1e2mp}xg)p==jwt72_E>8OwGE)<30fP32OgwWqbU!xjt9!n0S zmnf<cKqhU8xVo0m1WQMDE$(q@t3pK?mwonOk2@?k!r5-;YAfjH{>z-Z#c1?MX{-mz zU&4n^8;=~4AjCrNWZD7uJiiP%u-nvhWrr29T)67(8OabuXrW2zn0KjFG*)8)9Ho~d z*=Z%1Q(5c9>8a{B<wwXGhL)Mmw62@y8|%d$DcYuawn>YUwN<P~u3?WU#x1*xQ9qD0 zOowPhA6P#1%G=OukWpJ9RYYoPhS?I%QA%ut?K|MANx5WL3hy|sUvM5=qj^Z<i&mi2 z&@QSCzU26L@p2|b=w0_FXySLZ<g{hr@!K!<oI`mW+HMRGM<3~A(DDf2kbPpeljnon z8ZAlli{<aJp${|CjilPN^1vl&+0(rT!iOHvU|lQ@!m>L|ky)Kdy9;xskky_>ld=Mp zLH2&xP@MO%p@92W9!gz3XAN{#W4m!$a)0z$oK)>GZ>&Wh&%`Aq(tZ&naw!Ja>XLfV zD}fM2#R;2*20sy?is#gF<<_e9Pj6gPC#5p%ScsV|dhk1mirbeMnQP%x?089_iCEql zj|-p*TRxjJz|Vkr(**ruAum=teZ#!+ZE$<tXX>+ih>W-MBcV6@$`elc^v3;2rEQl9 zvg*1gf_as~2@2!X)3nW^k8i_&Vqio8wB^}c#wB?MfhF~K^Qlz@10(3D2_2XE<c6(z zj+az{HNEUlnMeb!$u+bSJy1EU9k9u*0?b!{U|J<Puwrena7x@!T%@mI%Uy3ygb!}< z6V3}@O2s9Ru!YS}OY_eic7q0~tr3L9uP%JUTI9Xp@K0+yX@h{xf}+|ULjq>56GFXb z^Xva$Ic&`($OaPXa+&ZbC4=tt0iYJTzH^1u0bh4qka2^qMbe`B`G@AW^I<KR*o>jC zUoRZW%byq1z+5qg+(zGlY_GIs^lA6B1fYEJZwP<hKlN)3`Ve+F^R2YRl^nhnV3p*L zr_f5fb`>5;@gkkX=5zAa(3&5aAC~^@B{E<%8MI5IR-C%{f@~1y3#@-`#$hs6t&7Sb zH`F=_)b$Qc@ci;AUI{$<n?NFb(M~El(LEV-@`<EoO;lZ;3a$U=-!362oqU2X`Z&as zZH9W9==_=0v0ylp%BmJ`J?^sG?dR83qkU2(gE>CMaVy_5`a~l$8Nx)JpRFd+stsKm z5H^4YkBu!U6eW^Aeq-vUmZRcN;TFD%qP1Fzr`C5<EB^CVYBBLON4*b$4NVfLVwGC) zbRS1~fi1Q1<TC;`m~&~3Lt_^hE|)}xeV4k`G4`2yI^~>+hYkbVlEN)dCb|4u3`$oT z1B>H!-x~FM*KPZrSkPeWbF<;275pR{;PM+MII5UrGpmH8pl^d5{TTcILu~~e#F-rQ zNA*clBTAgdTw|3Nr@gAg2o$zb3nYL3+?kte^2Ff+h)Qf=yq5QnauT}BKUo(!%6LK= z-BPrfww2o5G~qebG@t1qG-(7wp|~q9MrFzP<zTA>slZf%!avJ@USodwAAjVLb4j3% z&;7PZBlQ1toi?Iud&EYMQ)ftUI}PTnK%p-OcZl%wKy1E73;!FaQqwG5BOLP?rqtZ) z^LJFa=5HmR_Z`bMd)}w%O6}jpvELuRkl%kgvFKmO2TcqUE&V+r9BTA7`0Mz(Fh11& z!Rm-Y*~(ZBQ`_(OZhxfmkv#S~YNc@Nh72k7mmfs%`S0X%@+*4=#7;Wq;lT%k`47gC z9_kab0k>7MaBReRcgX>Zeb1<kIb93AU{NhoFjGr^sj|qa99ja_z6#?&gzcaYWl2}< zZ(~r59D#e?It)1`7sk@JB_Np}8%<Vc;OWV`r?kLq;YIRBil~yPZy4})r92(L6dqt7 z2SH%}sA1rulros!%M{?QT+go6suq@Sc$2-rsvbeb(Cdl34a-4pfcMnd<lQ;dP!Dh2 z8TGCPy4!&B{NVMxo;fq8kG-|Os@ey%xAWD}S8}7)-$d6Q2&HCtib(fklOd_z_QTk% zJERz3Fks2CHgPppwy|rbF{ev)W2S+(VIJQn(`l<7%tWq6)2#hjoir0q;y+Yv{L8}` zTc4tp<z|)%F}nFBi-(2*Nd$-f?dH-)KfixyqYLO{u^cd(Gi92p8n_0%-2(4z8%F+e zBRbWn%z}ER)(4NgZB$5mwXunYyE5Fj`=EhCXxN%=?8Ws%Z^OXCUElW36n8fZWo{0Z z$Q7`zqR?y7Akxv`V<M3|b}<@f1<~&|BdhxKDq1JzjxIu2948R_{8p=BZF;?S-2wR( z&xFH;nttZdoI}uMOzfF-KXMTGp+tKo&g}f65x8yia-AG^-H|5CfYnL&%q^7YbfPa( zEGIv9ku~15gHx4%M??!YCrdF>n(#bcJG4z6=7e+kw(nE7n+3%s;phF-FLez{B1dwv z(GXaCxUH{yqTI|=k#D3o<VbruOH5eB-IBCAg;(>%)&7^K>ljLdHnTkNuL=baC$cU` z{OVY#>5_-~mhue6r1ORB%jK`erJVZ7ma<uM`(bh{cZw{QcS>FlNkm_1>Gt*O>e$r* zU!wOsU3MlDhl?7e_(nNWXixhr%(oxw*~vOO(wo(<Y&X6MuH?DktjGcLR99#9_WqEy zpD6cREsmZtpL>0_Xy|9&{@nbP=<R_RIYR0$S@UY+i5RnaKhXZ<357y}FTpuymBcFo zJ0g`YyDH6VF0Z0s#2bUJ{rK_mM-%pJs)M;q?#N0edfVs*byOdALPVR)BeHNI2I<;y zZ9v9lA`cG7RCeg-mIVY?v3A%odW*U<6$X+71jg<}Jf)9qiM1J7Ep#;U%)lq>P~r6O z(e)L1UrQ5VY4KMoA^C(cEsmaM{w!QO-qgSZ!rdA$TGYtM(_`xsc8^1+KG4?n`}N_$ zl$DdR?=Kx1w!Mu(7SkSl!&C5n1r^j^A2(sOol)_NLwa?Ws=>koDa6i>=+i-@n|*_d zU}s|I$caIEYyHcS`Hn0`D88ULp3hyZ9(SKsQ3B7<<*-?>=o1n4%{&RWAFoyl^=QC| zU7fU5IoomtQiAhgbZLJXIiK4wOS`~W3d18Xyk+$v4Nijru5Gh68HsJQagPXKW?DGu z$L`#|s+isS5ZS3rlspnF)}skrfrAG&cc*-^cb#hdUkMHscjA%3cdr*wo(1)qe*3hx zy5|@|b-|);`Gcz`j~I$k5C++knTqi(TH`f)x*bRn8OV>nz7oUd+CSg6xmNcTyyU*V z^uA8IrM8N{|99}AlmG8HIlSkQx5r!Uf4L7yW<a{t;Eg4xvm%9_DEQhr6M{~=%pgZD zANZsa9Q&O7S3hY-RrV?8BEPwcro4%(M1Srm?)hca<uU4h`WgY3nsB>?XXZnIOV97( zlfpd^QVs9zQW>Eb!OFE_*Qs0W-|^dB<*BB=yF<LFT&wl017zVQ2uz$4JDy|3W@~i{ zS@T>9(N;s;a6`?$#n*UL=e|Erqxw28DIt$1$3G+^gK$j{^;-+Z-Lodm!4y_lWlsWZ zy1Tt7cvm7O>icK!_z{yF5{>Q7$#r8D4Rl0rkBoZVbs~_i@<p<SAa(-}-F-H4q~x)I z3M#xTJQE?MexSmE6MROB{#f7C&eCXZS;SY5O~8EWVOeUG8b&UxBfBg@P)X#dq6So= zqtjVbEOdFwBvZadJ(3A=5?dVl4~K3WRS+nLUVdrXa>3|MK0eq4UGJpVwY@KI?GxEK zJni~mEt1m1KtG!O_7m~9Px!Gm<=&JYo=wtn5%n3FUTYRo=D^U9D4qnpLv3Sqy7AW` zJlS<br(>T4Kk;Mtb`cesMII5`bPHYa<ho`+I945mZwH?L8hjzeNULg6^vBabD3OG= z<;i^dlN&KZk3S>jXT30Q{gZ62Tk!^86Xitt>B5=sUL>1^Xw)4Q=<C&3^iPJ?7+6(F zC=xrxp3-D2-^`(OQLE#_JVVChQmbq}Q!kZVdSdLzFHFYg3@kJg*V1$Lwy7}9Vcl+} zDe@h%XJ537eCTjjv@SJJCKs?H>X+c_KVtV<xedH%`ItyMY-#pll%#5A#((nk{TkaJ zCa1*+o(uWykJ+Qm2DejKW`8vDHQp^qGjn-YX;Piq8E#I|=ctq8yRVSOZpT|A95AH5 z`t<}nU6X_xErn}m&Ur-?+px%z7iAkT7M$mkqZAh7BMUjGJKueiSe{<LZQ`HEkgIb# zuqYDn54_c*d>l9Hs95wXBkBy9AC#rET$tt>JszL_^|wWZ!fQz^J&mQh5#AcQx<@{o z)~IkB_EjIQs>Qj->(b~F&_x0Gc@p#Y!>=_%R2kDaytW>yCC33D)?d|99^Tn)j_ZoQ zitH|U;aCi_fkL(nCf2>v8KIGi6?RaFRlBDjyD^pal0~RRD+t4>k?OXg3I^?&X)QIV z74eB3-f~zqbF+|-4`<BJXs4%f{X4T{pbI~cG%_ApwI&|UYYgAQTIAFz;B=yKuWOod zEttbhD|zMj$VGXP^;O)ULm#P}b<{%&vG2WV{^A@YYAE|hom6Ysw!Vzo<bePwiDyzO z@%>mQVADs`y^iJU?_d?~^DB<}^F<+eZ|XSJXkw3zRm^SRjMd$@#9x;V2n9l7pZcRk zHF!Psc@WsUNQ@izYf)qLGea*QaCE2Q`IS9~rLVS&5t$&7gJTH@-nOcFN<xc)sd1WJ ze!HD5m}XVg@b}8Kt4fd3B+p#KFqB<d1o;k?74n=;T+NCq2lveyzET2PMzUw86$$~; zJ($yH3F^qZXhtoup@Ya@(}o-O_>LL0$Ig$z%Nkju$v>XWFA<-42YIkLrD>f0(1$oB zay2jAcA9kCbVcH@k_}$k6KKw{-yGPC`;S(Xw&vkjpLl-2pq;we&bEfrud^Suu3p-) z<8sssBZ}!lHIC@cSe<CNG6(wyxNPv3x4kI!#!S?xLhCCN{UviUe$2U8uTt$1eI_=K zV(hIGb1W#l31XJbTH49yZey{}yva}FgN~k#Av)_2BmPoviGG}>wDKeoaOhG;RG8c! zqD$sGx0iRVPK_uMB@=;XLM}VG5f~pl+Q!?!5iYmHyMph8DtA;D1P<fJj-Pm{uy~nv z{1tyu_Tw2J<1~{oyejqTTPxey>28!<x(_+QWev|^LAKtUyA$)tmD2_Gsm@pZ<hI;= z&289?q}B}uvQA^~A<5A@z4!uitnI~@8u!2(qYo6NrqlbsRh+L1uSiuW@}<hsQ;K?4 z+#1F+MkL=KV8P8z;Cnu;hOeS|61?m>rRR<4EQ)=v-ju=F5?Xa`P~`}rKpJ!{v{JMh zOpmw7%oQ2@HRRy|_Un=cks?-c=~N>$P*4fn8QF2Nsj>a@!pU8{-#$Q=?W(_7<Cb@Q zyhx>~IR04!!~7LQb?LnSltwNG4xU_wiz9v(=>Obn3O?9BHE`YFwL{d{&{t071*adc zX?+HcR5scW{>C3ALst7kSb#`7as^H-{~II64m3uy^t)!dEoUa>8KRSD#vXvQzd~)p z)y|pVnvVfjLXifa49|MTn?L@F^7}5W#%YbK1==OMGOo34PFER((4Z4}adbz0db}3Z z)-l%cl}$_8QlE#XAHA_Pj&+6S>)sAf^4!1ddZ*DdQeBf~2#p-HY}CbfgOR-v!?uF2 zRSB1LRndLQtMu|T0yAa?z<>$3!%GZw=|VRd*_+3*>s52AI3BMnsk}1Gja<4fx<BtU z3i7e$)kt))K=aJf18F@(zgn=zS#|iYOV@7P$NweE-s^63VJmwbY@EGOK(%?!B=jfm zB5k&QwJ76Biz%DgLFKFo(rU+WL8fSVE5Y_rI$zUH6S6R;9!mVQAhogE9gppDI5+Uk z5dU51<@x6W3>Dx<54GPqSC92YENR87;Q1nW#VYH~EaGWbDP(=$5vu~Yc`B&Jn0mJb zv;2GR^+{F93#3*){wL#Xg8e;-Lc$IGdS&|(jD4f;P2!SbHLHiLtA_AW)t|s082-Iq zo}ZWS*4uj=che9Tt#CxQLqXkVrN-IK(V9L}9<}Tq!Nkd*j@UN??exNq>LZd#BP27I zbvrxupb4Ym!)=XdB(0XS@E5`DwV4L4T6bxg;UB%l>ETi(&4~r)%G*Y;@*WRUaMJV> z)+$>o>r6D?3W}8Ky*3~C`+T~xvVqR{Iz(PZ&BxQDkt@!130ckTn!9yTR(wBy{R~}X z7d5A+`;&m3hzAY?SzwpMR>X=A(7<bLJ<s_|j^~o%tlC4vDTmH4FBfpdHT(rNgBCn% zky^^EhMo&vHR<WE56fa(_G^j)m?^|B(Xr3&3iS-RBgRQ4lkfj@D+aZ`R{XFR%Gc6$ z@2D{Ss(wX1QGGlnev)wW7#jaA9%C7H69b5jU`zQJAh);>{G3d@1tdos(IJhW{nL>e zbH`&di#;tAI*Nm4OSO3<aoflxlpW#}!=ZD0G_L#W78jyx77cIMq@7$}nC9CI`Wr<C z>}DYAe36?t?W*~LF8AjYLTUdgG?5wcWYsSRc+4yQx)TzhWB5CBo2+CLt-A-}JlgNI zs(?`I_Q(77bOta&<X(U*@X+78NsjeUsx3$(9N*7xVN0PCGMZ=Lm^1kH6Z1PgYYMbj zlU%qb)BvBvmy&jsfsWP0%+X6LKB7%?6iX=2u9_hGwErUZfaR?j|CbH1DY1TR6=v@2 z&0CCiFC}39;!{$O*XC07fJfA`$1u;K15fryCtr%2>(_qNos5X8!Mg_wAn&TKkW9)D zxm5BuGT|wAMc<0eysoblnYHxfTB|;{fvj?Tj2TDmiwd62*jMwKefUZrvG)ydWT)L5 zq{H%v^$7v=<R+v0+|bdbI$KqN?+t77U<;dN$@k?Kw_s{Ijh8t`l7)+w+|MzL$8O3$ z<Z^CJrHp5=r~pkrR`19n4~=41ImC|$zBbGKNXTOB@>6A(MXVk2z|8TQ&>#4oY6CsJ zv^tS%NuEuB*r6X&4DVABb7)v)5^_@7kRim~ALT3q<8B3>4=qvf_XCu;%b9`6pat7) z`Lr#l68i>XTZN_0PBxPp%D?c$j;LB6=2bi!IK9T5or&A+WjK-PIJCwhuDh_M%y?Vi zK*{$eH0N8DK%Q;8c@uK_i3JBe*Ex4B54gBZb@WGpM430fB%v>CjQ10j2!*+c@j*_{ zB>VUG{YWI69Jrj3%B5y*$f<D6C4Tz-Yd32(R2{Jw;W`igU9|=KfKd-w<_2r6pB6Y= z|A`SOL3|@>@Vb1jN9^WG`>Km=y1TXW0`FF%oTOIkY6cDB@?6uM>m^rxr3ra}xpc{Q zc@1i(!T__gxt<Pq&tyls%TszsxGX!q$va*(fnI|7pS81x-@Jy_50LUq^z09RK%)Fh z_OXsW;Fbe2@<6?fKmm2pobeXZxd;g=7hxW+)s9l^0&b^b;$9tH<NJQXf~TxhCob{d zWydungwX<@uv(5Qy2-FIL7be|8<muuqdoLL)AxL=E|cw;au<SWmbOF_($)@|_u%(- z6{c*vGef7(y{ez1^36siF*;@d7*W^BO&)NYnzz#Sbtj0^(f8cDyT!P&FeaKu&K)s= zwfdWPWs-if2{}H!{^5AP+9^4{T{~%cnMdSe290vNzEbc@P#y{GNqCXjETKPZ0g*Gb zr4e3$Ih)%IW;Bbby%LoFzJ(M^P=LTHiTke`>)Kg{3F*P)1WJP!hz#t!52mv>0l%|U zBzMnx4fYj(L1xFc64Y+_T&f7Z96fhRku(14Zf#2L8+%I&jtqXDy8(K|t$l`Q7u(I= zJcDum%*prd-vDu=-sre%ojo)b%O@IMe73H2M$IhR<tsw2EMcS)@19J<QiBHLdBjj2 zE2esRhZt_rn{ckH9}%|rs&vKVbCL@j2zmF!@HYct*a0@dUiPrBSqm?V$M&*CTGzf@ zGh9S6Ff8A*q-wB(1rghAh8wlZoi~aL#(@MTPUF_>L#AMN<hrT$C#yx?gNps1X%YeU zYPgZ)cdU+||7y@W#Tc7`>-k*zTpNT<wa$2)nxx`cv=e75vnd&uq)YKzDr;v==H7Tw zA+ATiyN_c@Ac=`m<l5eDSLAS2r`}I<)pVG`7c%_tfJpW<%G0&nh=~TS$>4|lI>HuE zK-a9<q`uac#d_mvMRGc(jVvnPuXxL*iwvg_%t72mQPC%0`817+shSvVqKj&9V6jpL z*GgS?2wv05_sx(2uB&s2;cjhC{ejsKUo$W~*7IP8$S$)eCi=v|+PD9`LV*@)as4vj zNBiDy*C>vuCOVqbWxY6O8>c9i@1mueyq}e_XO4S}z5lNJT0jGV+L(ykFDEUv9<?#I zh;!3kyI6Q$J^F_ArwTvO2D&3xUKq!rN_mrMi9aV0`I9-}U2^Ax*7)*v;CWC`Ki9jw zg6Fte#@{(giF*v1Eqt{1K9FOt$2W}qWcJMaN;&Ry7t6P!adBmTo-#0gj9E@OTOIr> zxw*JS6*(gu*6{U$EMiXadbd6u_pj8iIfu-McA;S>Dv0MD;z{$&t6uCYyB|W=PfbLC z$P2O|4`N`J{xh10FYwB$ktSYIp=H@}Y!L=d2x@iWSWv?%V+~yf0Fi{GvdXQ%1H(3G zqq*hPr9<XRQC%BkzY2|u=I1+e@XV=3EsjWYl`{qYvSQp+XpIn}<^B?n!fLjyKnnB2 zYog=aWbz1Z#PamlkPt7hLObki*0?+TBsSU^wW!5o`8mEXPau1t*ii6pc+uk}U5Sov z@X}EBhO6{^#L)Yy8^w+n+)jB+67!rwSU%F-r9HzeWn6;(v~du2E=u*@zxyy&{Q9+N z(>|8#r%UKSBwQ<Q_Oq{@F}n?dH(bI~85gVV&HKu<jw0U*%Bkx+z8@jH^@1@Tx$0KX zWg<uKc9CT_RaG0m?RR8&K#?;R15UR<6>!8=Zv>YwUFmM|QdU!=b7ozbFQQZwEWFIP zG4MQ>K*uYz3=GZ%LT|=xt~a=@53}B=k`39l;o>j*Xvf)ftQLeXiO_QC!e5l|zuF<f z`arj)0-0NkUGI|)dQr<`a{9d#>3r?Dtby*BTa+KmM;6@MNZ?xZ9q)i4c6Cv$QdKhK z7b1ppC4a`z-Xbw159I<oX>OW6+=27;O|!-diFF4(eRliJw-tz<WA3w{-^k`7M)N6> zX-6~Zwkl@{AhO_DLKpy_6@F)Atl!p8{H;25o=eah8!eihVeAuoww~YJ5AOneSa%T+ zQP9_qB)8sklnTEgGp#>7`q6CZYDfI(i?Vp-*iL#tDc#aI_yQPupFGFqCtArOOR=c4 zEX(aA0e)JEwq0Y%<;f}qG}I#!c!epoS`Yb3&ctyhX0G${?n(8L|A}m;hO8UMmY4-} z*@2mMASdHY<@ZFk*Ivj`D^Q%~(6ig*&9J~WmCMNAkAAA-$6S=Y<dRC<P7{&by9V%2 zk&yCxs;nP1-1YW0=S@<RM>YpbSplW~!M=91M<F5Z^c6ra-9)LIOMgpf;2Z1T?>Kbq z`ZEJ_69Qm(A=l_1L&#Fpt5`>yvM)=GU0D)d_0;L4m}DeW&ykyK^Yr!4;ib#hk3>RN z$FoN}TY5v#zcIvomo+Cikr6(*JWZ-=nP{jk+kQxLd9wj=<mpG@n=`r#l_!B&P+Qqr zXeP|<ls}1ZF<^Pz8Ztpg%xeGBENZlxl0nXRdViu`-)O;Dg*I^1pnxwEY76$(+?(h} z^W{1=w$0wilOSuIsDB}=rIOh6sdUbg+X>FXHAyfm)Gb{LQqHU~ZdsGW8oGMj+ePU^ zIGbB{j4z_^cDF28Xi$B)_mJ;{1w^jO$Um<T&a0P{?k$UFLKE#+ubpVi4YT|(ok+`l zyQXkGPMO0~{pE86vbM4DM3}6#VkbG4#7xVr^A;~(91w{8G|q*R={rlxMExhe-kGYB z_X_Z5Kjx~;P>I<_s+0`PM172V$V!$J_ocoKFeSeDSUqFm_@?yo2*0_ilIr|rD6oqR zf7yivU(&F~%?|J30l#W~)+FFh*y_|C7>8e~!TVL{P4pLMcLizB2#a}3=<+z`PQqGl zlxC-O$3WA{R3Wdqk%YRGHr>ikm%awxDuAyKxG0eaVU`^2ERxYt{)5xBqXFN!O0(3* z+H}I!4o5a?alqujVi=ZC9j*W;M1|#3s<&eB74OaCZD}3yfnh;pizvFl5(;_#alNaG zd;h*UZ($h+-$a5$fm4VBUc=Ga`-Clq)sg(U#;`Lx6TN{OOlLc$=VM89)6u7)j^xHh z1pcB^TL)QCFkQ?ot6Ly;@etf_SrM@oSKIyQ-6^VRP`PWh!fUj!lpKJr>p=Rm2P!ni zxV$%4dtwQtdDXktx}dTsk}UkCf6nELdhNvHDfTh_RLvQxERo7tk#1}9j&i;+b~lBq zH#H*Y9M&agb8R~bFZ;ja&LRmfmpT`?!S+dvoqoEtNmxOW%M_I}OKBX=`9+X-?ZNJ5 zS&C8)7g-2)CJvD2L5d=YR8EHe)6GWXJWD7{sTsfCV7@FKbvH%Y80qt@<|Z5!-cR6* z2yslgBalP=bKm4Sc)czdg1k)(mOVOVO=d$-Z;06<n}5t8pDs`i@1ml5&!IznaL#Pn z-4J$VT8+ZIvKE3}O)V@HICK<$5`vwiM8gY4>Jpqr+9nzt)<O_2*<MmJ(>IRu4Eq)Q zU1bDS@c*!NS%%iuk$wwqke<24)nEw{na$l@GwZD7w(oG%9>oPBeb`L|tr4Y8YqNI= z2z?lQt$9_mx~_c*b*avV^f-%%<{`GO9p}sTPJ7cq%r$G^I(u4S8a*PGIlA)Rr~jFq z(ZU}&g9mqCW6+01g<#jhu^=#yZd>IAf*iY}zdwtr`L|+=YHnwsZzt$rR#FA0=CLcl z{CUr4wKpu0N912`AMJVr!Gf*9*AVC3Wxb<hzn%W(m&0OT`m;n1<9X*$Uqv%TC2lz` z<g-vq)qyz!F64|yTr`iXyx<(zkH4s1-7(QRS*3I1_g_dy$!u<=?+yvR$yyvU+(k&N zp>Dmud9FvW)HD-u>88<*05=X~z2<iEf1bc%ea0HUd|nD$%7wtIRIMCIIla}v|F#&j zL`sznhE?>bT!kZs;-+f2ksYjE`(lHUY-cL)`l+{1T7bf-aW?UhBVy`9LLCGBS%z|9 z(dhxt47uQIxpU-Uvo)3}FI5{&-DO=;nz(Z9RB9dLCL(qUj{R+PJ?yfrQ3LHK?-J6~ z_#^E&zzlAGI5brwP+m~y#5DXj-(+fQ8q)RNn<pDJIBH_v-B|{Dy|bS>6=jB?J!RYJ z?IMB`D2ejBTqlIQ!SYm%Vw|rBkl#}QRiI;h{xt0aP~oxRYSoYEKn{K(NSd28RBK&c z9{p=(mFqWvkLVnDCBh4p7gVYn7YWCOfJjO5h=`rhAA`)S1u9Z$?Y^CTzBs7X49fC) zgG|YN>vZ|8LRKQD<{z}Efdxm%!<RN8-;YK0K7M?|ZUG$?V)9mk75+*qbMc?uo{~Vr zH>n2?MbAf?Hff~rM9aH$7?vL5a61*qr0;*Pj%qF7E(3D=D4eB4^Zdk|di9;CO;14k z=-21T7e))>=;o6^#5Yul$Mw3!T0OX14@Whk4P~gs{@?a@{~xx3|G%In>?FqBXoHgG z|01H0ojFXl|NSu3^!D`=ZPdrS9C{XXIrMUUKT%>4202#|7O<U>yY{Un4u3bmQ&kJ@ zJJ{nZ`ftRQv}!*Wyzu+UY#Is}h~V`ae#Bz1*@cAt5HRhi+?%|AnSpxz`m-ezGg#Q- zqF#nzHSV%|W;1gsvYjm#m{|rTI+=|o3m(bQJQMQObV%dyOpn?&TdECelS&Kd5vJUk zXR%eoX;tJ^_vgk&Z*&NWl=0nQj_I}s@&EhY`5#5=f1B$mIp1h3tdb50<k*~mB35b) zI5K1y-p?E^=BTa4gi`?*)K$#xFHvj;wr4!GgEBN#P+t`5;XyBamf8rL6TU`km9&Wc zwNHoCs6WFCMU~J57=%Yt8!7iTaXBVA*pU@uj(zDP@K8zyRTNZXB=+eMNUHTV4cMY& zHGPu&G#FQ5Vy2_0OLH;{EQdvFf))8wd-$x0Z4xN2EJkvIM#u0R$R9sdHi+Umyi2Q6 z&tM}yeFin@Gspu~NI?{CB3?{+yuCZHqBU_wkt515R}>9Q#JH~f!qRb2nJbQR4^y>| z@SP+MNMMsK9L8~t(tIK}cm0acRH+{+Z0|wap5ASr1ag*(AZQM(>bD}Lg)xkwXQ!$f z4-RyqR2HXr9kG$M+1TSOTi!<I4F{YBp{NQHS_(~wvF$pHFPO#I`egxzT4pAwy(Cx? z=*R-AJ*gEY6sQf%OORCQo9`28KmJVJa#vmQWzUeqT?-@bRZzC*?fxovsex>bFB)aX zBE8Vyv8`>Yt(hF69hN)$vEH7rql8NPU?`}zZ3)H8l9L&Um<Y?0e}}^YS$Y|AoQywQ zcISMnI!N8JjKgu~Pjii#!wevmXY9r=>jws3yIk&~;x8)eZB0^@M)6t_1>C5j$9v?l z7oUI8ye=2BZu(0kG%S(!k8Hz@R+QnOSKWGhO;^|&r&<wHgtiw3EpD3)v`jkiYrd?O z=)2>f>m2Ko+4Zj14*JTMof_{;EsCF1@iW=D+iox?g;n-LJTE$9Nxvze|LRc+@O>y0 zR}j~v!f*3_LUzkX;_r|7v_^U?Jows6E43jVS?qZ}?e{}V#yszfZ6uwgzNbD+>2J*U ziITN#8vJ~ZB1pY>PIdnI9E1@yWHy=f)0o4b0e6|&4R0U))}%WYWzdRDANDcU5>`7A zaMl)e0?KYpx?dm;w~`S_=n$K;P4Z{3PJCt#c%U7a@9}i8zHenLL(eWYMmB`^%Gx~3 z@N>qr8asp1Tr~8?ejGv!hF5l!{93KIAEZ!WImW;aFWT_S1KHYDGcn!4HmIt8c$$q; z1;sWJR!k)7$1%$I5mN&c!wkcu7I=gPous{I)^4~qex`DD5=<ax1bSXCs2q4=M$vkJ z@j2d4VttHB^hJ@*R4HwwqyZ1?zi7;UQ)F7NhFX}-8RRMtQ=`4XexUg^5&lw8O#(Gp zIeoR@OOG;hOBi~ek-RX%!Zb<y-6m;d*llY_I2m4cnnPQNn9yL3tFFRHJ|o5>onKMF zrm%LE7MGlJ_lxigcH-O-f%2kKnK$XL-k{$a2cu|B&S3hEqF&4gs$ckVr=-yU(l2x^ zdBRVxT|HEv?_~Ah-ZTAr8&0Ji8-XIdWz*JV{{_S^-PuE{zXq613@s)NWRYsw^~VlV z!k<fD3t8Z>QYC?Q9jw>ZgWvtV=h_JVD%JL42E$!W^wAC=&-ic?^YE)eRfwTwB_?dU zPcvK^dku|fqr%^6ECbiReo3TC<K*XLRjY$=4u>C^NsVkEx5-lSEqDSW6!T;B7Z(!z zd{BifjW@rU3_Vt_3|wbgrkPT9bRmIj>D(|ut5zR(Q$SlVQGm`jyr{$@m6XMWcUP$5 zCGPM=9g0z?8TN>=Ip60Tr<#gcioW?I6kX>0d+6$UC=xE0VeF>BVqF>57S8zm=!7Mg zz|#F?#aY#}#AAGl>`=ybz=)LfCsq_2up?Ufkz<)x0MbZY%7Amn6hwSY`U_(N^U!#I z=(HN-&;Cr-MBZRY;T_9$Du-#Akx8k+Oz|-BgQdyi_KCYfks6kb!~>)8<hd>_x^M1a zyStUz15VX9Art8z!Gg-$oXsl+G)6ew$7<dSDV@>kBhd^N=;I!Nl$lZauScSBk4tGY zo}kx&^OPcdXjpMVV(Soef-0Yp?=J3nebm%)O{cu1OL0nhaXu(-tYP-VCIk?F05eGq zCnQ4by0SqPHrBY|;$*Ehf?LO&%~P)wVH7J05x{47Q34b(Ofzw>uK6UIp%Vitczchp zZ)ce&b;I~^juj9tm8ln(a<>;H=XTu_u)8D>9h(VWLzIe$OL6M-!1)c(SlbaTx*S=a zWYsO{yNToaXlkB>@sc8b5&x;Idz&stU;ri|;;G_5Z}4#LQNO#GRiOxO^Drle3o;24 zhCT4zm5J*_<<?Keu|!G}1lzqyl+VI1Kx01SNELl++fB$cB9XA=%KqILKUPcFo0_om zxMH(eQIc~K`6p>nbhD}9B~?qp7bjdZ1o7llzR2XW;XLJ)-KneD^FXG)P?r4pqU2XA zYju0RO<eLDO_y~pGjRSSfyxicGtEj!f{nuS;J?GUFrb9h*zL&5SI(LjCJMlLW&!ct z)GGDLw=@>Q!NF;wZ+1ULiYvWEC;9s~)aBygm<Sq3ws~J<Yfi~@7|TK4j=NK#G1<5k zV~>+B@iYk{9j@5D$k{w5AmWKPFu@l70{vwldbj`#pR#xP@FbM^k@5aHxmM^0vvw3U zoz+Xh$jch)Wg~9oVS_pW1o#C6ctHF-AQ3$Q0dWvW{G~7#KfgFXf9R~%=l`XHv#Yg( zt^fbI15w<5D5}G=e-=DlZM}S<9yS1bFE2MwaXvl=XQ-VG>Ts}v@w$50eVm{#Kw+u> zVfF02oh`-1<z213oo!sa#KpBxP)`7;^0ABWzhJ=sw1|r<+c?<SdjUXV0y1Xq`X~(5 zf70{cF@_G-UiSYW({)TZC<x7ef~Y$<+j#lA*#Q2-D?T?DJLzTvjsK!YT@Qr<fP{sG z`2_`q#e_FQNMcbC;{T*a*CD_Lz%M8FuJqM0N@Vb#MEW{lfUSd*4Jvd#XBRIgS35pi zsE>n{tBWV!{~U5YAsZVT0V|N8t&p&#h^@6XNX*6(YGo-16%Z2@6%e!GMfKoC`G=!8 R_6cPH09MeDua~ok_-~E6)8GIA literal 0 HcmV?d00001 diff --git a/docs/public/ms-icon-70x70.png b/docs/public/ms-icon-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..26f1b1fa54d8f8a3f5d0817c1a87ca996e51b0e5 GIT binary patch literal 2279 zcmchWdpMN)7RO&C*EHSLwhO0psvR?f!5D<dgf`<^ZDowt7`I^z8zqjAJ2`0FwjIJ2 zy3llTpDiW#ZYo<va?M>Sw^`@4pYuGYv!Cbux%cl`zjr<FTA%e@zxVz9ez8_3j%|?M zC5<4+2CCUn8s<&crli=~b7nIibL*IfmWBv&D_LfRE{?q`GR$a}2oj=#AmNb+vV?`g zM-e0dk09gD2twu|$PV9}YHJFDhzhJMY)vo#NWMT~gO(p?`T+?uuiqnB@Gm#5KeMAI z8`OP312Z;g`hrm~xFiE31)So+`XZQw0NEdOxnO!8Y@*;y0=TAta}wwWf=4=hn1%TT zn4X8BNq9B@_d4O9w}F)gCg;E`6uhrMCLij$;l(=`nS$w$F#j0_KfviYSXcyX2mzkF z1s)$x#eudT{9FSs24Ud~OwGd&@qng+Pzc41a58pn7j8a;i8&ab0sBjkd=rdAfEo%} zcVTQA-j0DqIGBgQ>k(L5friJ>`U+N7p|cMRgFrt3ntPyk2)r^NC=YJ8fHnuN)&e&N zB8p&g4id_Nn+so-V0aSPJh)H*v!B2+9QuaADFHk)U~~#P`oK6Cj-7{R{os}gW%prd z0vs*@g$w*P@Xv;VdO$D3#4Oxtg@-R-U>s&Xg6m}n%!SWOu)G3E70~bm>L0_WFYtL0 z&gDZ?35-rd;7<@%2>oNg$%55Yu(}AhT3~S*3hUwc1uzJN_;S$ohrDV?x&al<pcepd zN5L){t~Y^aI`q7QJ8h6#4YAi@RS1`FL1+QQl(Nq!24jcVl1n>bgZZ@~sT1{JVr6Np zF_a)Kg3o-v`X)hT{n_7y-QSD(O^=)r9X9W6Rg&O^i;$mxVU;``AL?qjdVYcax<hfD zf89=s#qs6(&z;=udv+hf#6(=oj~xvpFdkvo43XecElnhbr8jMt`Hp!SmxLf<KGdUz zwvJ7cFUO2!=?W4v%)T+jeaDr^E#)aOR#PLH1*y{3%I`}wsGC@?aL4zV3|T1Arj{j5 zls|{&g+)z1>72FDtgM?4U8FROR95QNbg>sij%<l=e`|Q7pkBnwUN(^&K$<cNU&5&r zIdxQPc9kR={^&20FQ**hc<K?s<4L6h+cV#O?5P7kKQ^&E_kq%>lLu*vRnx`6XCql* zsC1;9m?Yjeg(kkBKv^fNY17_F-+tu#p4?%#fBkK=<cEKBOO1Yr*eQ~=D1%GZ>y8pV z#z!uirRH1PWGH1RA27|KQ|fA&i|q^7s8s38Re6weZ(ej*Jzw^oBHo=oli#dlo}s+! zl9lht(YbAh9HOF*l@;C3>^9?*tp_~wUp$C0N@E|HsQ#pB=he4fwvv!jZoX1#DP=X& zlXB2`K4WRKeXdzN(bmX#!#CS*1$;9dF*-@r-6j1pw<hK97gKGjN?*SIMM^;;xcHi9 z*YqPClUJAd-TsryyQahodiMx&J32Qt4B&=1GOzl@K;gN-xbI#`)7EIEWQ8G};D_UC z6oVu!yZ%H*_w1J1Q=}o+juGP>KfUY9Q8kiZUrL&df7Py@<<VQrGuXW?e>Jq9XiJrE zpy*M>cQ#at3j2b0wKdA@5dY-Cj;r3fSH8Y1A}G3=V|TMZD{mw~(7&OxS#lve=Vg#E zF8i*}+kxctH|Wn>jrZqmujMT03A$I6_dYsOy_eTeRF-3qn%=m4PfE*r*ihj&vpJ*1 znwXX|Wg+q^<+c<T=Rw&mHYb&?Q7$MuMvTcuHP31n9z2X_reDp|Kc`xeRu^=DU*od0 zb@ku@n#F;jRnscZ{@!n^XZW@yX$|q4ruAM{#KzI0+Lt%-<f7U2X;-ptoL`CbJiA$s zGNPUr`ykLpDtcver`@wt-nYkO=b#lOj;IsmdGm>F@89L&3gwq{uPhq2y0qYu<|=6_ z^YKlEAndBb+oY={Ulpz^y+iXmy<3dApOY$RVc<Gq??2_3Qzj14Wdj5WqNdf(IRbYl zysC48obXLzfcS&KH1)yPjqCiI;{^A6!f*Q8w_0%aBZeRO)<urNwtEI}f&7KIv`5|^ z8+|8=v|IG)JaR{YQ2Q5e-MfOO=r+TmF5cK1(+}LX-d`WHB3E17(6q|<>)F)9b35c7 zGqQiZtN#wWjQhAIj$Btd7bP<|DCQ6%o=7}Qz#k@P*%FCl0)ebfI)ulQ@%XUkR!#p? z;LUbrxds3K0=bycFswjvt%E<?jr${=gCg!+uCG5?O^xMEXQJ3-F+5e-9A<6Tx49TA zzsB0S2Y9=X$w%3Y0B_WXOD0=ks6Rp|h8nd$Fw`{_GT97eG2OWcL5Fz6$<GdBc6_Dt zAI5>@%5`5uo|Y*|V#v;~5KERf$_@5Kk>6LP=Ig^WxNU#p4?32%7=;i>BobajgQP<m zxPZHaAsfHav0;Uv2;RsjEnj~EOWA*wvZGNEH<lNQeY%>r57&#$RCA*TvKVY1f3^Sq zay3m9MTrc8hMOkIMa#|Am7s&V&>1cobfS*7Hc<yv#VS;>^+}qx3$P9d)#Sv{3M1!; Fe*;wrd07Ae literal 0 HcmV?d00001 diff --git a/docs/syntax/c4c.md b/docs/syntax/c4c.md index ebc735f3e0..2d4efdd2c6 100644 --- a/docs/syntax/c4c.md +++ b/docs/syntax/c4c.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # C4 Diagrams diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index 02119be7ec..878d9a8bda 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Class diagrams diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md index 8ee1956e64..f6a3bb1433 100644 --- a/docs/syntax/entityRelationshipDiagram.md +++ b/docs/syntax/entityRelationshipDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Entity Relationship Diagrams diff --git a/docs/syntax/examples.md b/docs/syntax/examples.md index e0638c117a..9872cd43b1 100644 --- a/docs/syntax/examples.md +++ b/docs/syntax/examples.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Examples diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md index 857791a625..166a5fcc84 100644 --- a/docs/syntax/flowchart.md +++ b/docs/syntax/flowchart.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Flowcharts - Basic Syntax @@ -329,12 +329,12 @@ flowchart LR ### Dotted link ```mermaid-example -flowchart LR; +flowchart LR A-.->B; ``` ```mermaid -flowchart LR; +flowchart LR A-.->B; ``` @@ -707,7 +707,7 @@ Examples of tooltip usage below: ```html <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; </script> @@ -907,14 +907,14 @@ below: **Example definition** ```mermaid-example -flowchart LR; +flowchart LR A-->B[AAA<span>BBB</span>] B-->D class A cssClass ``` ```mermaid -flowchart LR; +flowchart LR A-->B[AAA<span>BBB</span>] B-->D class A cssClass @@ -936,7 +936,7 @@ The icons are accessed via the syntax fa:#icon class name#. flowchart TD B["fab:fa-twitter for peace"] B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); + B-->D(fa:fa-spinner) B-->E(A fa:fa-camera-retro perhaps?) ``` @@ -944,7 +944,7 @@ flowchart TD flowchart TD B["fab:fa-twitter for peace"] B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); + B-->D(fa:fa-spinner) B-->E(A fa:fa-camera-retro perhaps?) ``` diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md index ae40160f15..7e493888e7 100644 --- a/docs/syntax/gantt.md +++ b/docs/syntax/gantt.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Gantt diagrams @@ -341,7 +341,7 @@ To hide the marker, set `todayMarker` to `off`. It is possible to adjust the margins for rendering the gantt diagram. This is done by defining the `ganttConfig` part of the configuration object. -How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.html) page. +How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI) page. mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object. diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md index 0b7fcf6073..68852cf421 100644 --- a/docs/syntax/gitgraph.md +++ b/docs/syntax/gitgraph.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Gitgraph Diagrams diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 22c41e6605..00fe3b74ea 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Mindmap diff --git a/docs/syntax/pie.md b/docs/syntax/pie.md index cd057b5e35..79dcbfee53 100644 --- a/docs/syntax/pie.md +++ b/docs/syntax/pie.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Pie chart diagrams diff --git a/docs/syntax/requirementDiagram.md b/docs/syntax/requirementDiagram.md index b5e9a35973..d319678716 100644 --- a/docs/syntax/requirementDiagram.md +++ b/docs/syntax/requirementDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Requirement Diagram diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index 513f3819d1..73f341347c 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # Sequence diagrams diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md index 6306767509..3d0c07c8a4 100644 --- a/docs/syntax/stateDiagram.md +++ b/docs/syntax/stateDiagram.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # State diagrams diff --git a/docs/syntax/user-journey.md b/docs/syntax/userJourney.md similarity index 97% rename from docs/syntax/user-journey.md rename to docs/syntax/userJourney.md index 1b73bcb4ca..e0d924f85f 100644 --- a/docs/syntax/user-journey.md +++ b/docs/syntax/userJourney.md @@ -1,4 +1,4 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in docs. +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. # User Journey Diagram diff --git a/docs/vite.config.ts b/docs/vite.config.ts index 759e437d62..bea6fe26d7 100644 --- a/docs/vite.config.ts +++ b/docs/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig, searchForWorkspaceRoot } from 'vite'; import path from 'path'; +// @ts-ignore: still in alpha import { SearchPlugin } from 'vitepress-plugin-search'; const virtualModuleId = 'virtual:mermaid-config'; @@ -29,7 +30,7 @@ export default defineConfig({ ], resolve: { alias: { - mermaid: path.join(__dirname, '../dist/mermaid.esm.min.mjs'), // Use this one to build + mermaid: path.join(__dirname, '../../dist/mermaid.esm.min.mjs'), // Use this one to build }, }, server: { diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index d199320ef9..be6e927702 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -1,6 +1,6 @@ { - "packages/mermaid/docs/**": ["pnpm run docs:build --git"], - "packages/mermaid/docs.mts": ["pnpm run docs:build --git"], + "packages/mermaid/src/docs/**": ["pnpm run docs:build --git"], + "packages/mermaid/src/docs.mts": ["pnpm run docs:build --git"], "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], "*.jison": ["pnpm run lint:jison"] } diff --git a/packages/mermaid/docs/.vitepress/theme/custom.css b/packages/mermaid/docs/.vitepress/theme/custom.css deleted file mode 100644 index d42052792b..0000000000 --- a/packages/mermaid/docs/.vitepress/theme/custom.css +++ /dev/null @@ -1,13 +0,0 @@ -@media (min-width: 1440px) { - .VPDoc:not(.has-sidebar) .container[data-v-10119189] { - max-width: 100%; - } - - .VPDoc.has-aside .content-container[data-v-10119189] { - max-width: 100%; - } -} - -:root { - --vp-layout-max-width: 100%; -} diff --git a/packages/mermaid/docs/edit.md b/packages/mermaid/docs/edit.md deleted file mode 100644 index 5c623db4d2..0000000000 --- a/packages/mermaid/docs/edit.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: home - -title: Live Mermaid ---- - -<iframe id="editor" src="https://mermaid.live" style="position: fixed;left: 0px;bottom: 0px;right: 0px;top: 80px;width: 100%;height: calc(100% - 80px);"></iframe> diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 95a9b53f1a..3cad6af988 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -34,12 +34,12 @@ "predocs:build": "rimraf docs/.vitepress/dist", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:build --verify", - "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --hideInPageTOC --namedAnchors --out docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", + "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", "predocs:dev": "pnpm docs:code", - "docs:dev": "vitepress dev docs", + "docs:dev": "vitepress dev src/docs", "predocs:bundle": "pnpm docs:code", - "docs:bundle": "vitepress build docs", - "docs:serve": "vitepress serve docs", + "docs:bundle": "vitepress build src/docs", + "docs:serve": "vitepress serve src/docs", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", @@ -77,11 +77,7 @@ "khroma": "^2.0.0", "lodash": "^4.17.21", "moment-mini": "^2.24.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "shiki": "^0.11.1", - "stylis": "^4.1.2", - "typedoc": "^0.23.16", - "typedoc-plugin-markdown": "^3.13.6" + "non-layered-tidy-tree-layout": "^2.0.2" }, "devDependencies": { "@applitools/eyes-cypress": "^3.25.7", @@ -130,7 +126,11 @@ "unist-util-flatmap": "^1.0.0", "vitepress": "^1.0.0-alpha.19", "vitepress-plugin-mermaid": "^2.0.8", - "vitepress-plugin-search": "^1.0.4-alpha.11" + "vitepress-plugin-search": "^1.0.4-alpha.11", + "shiki": "^0.11.1", + "stylis": "^4.1.2", + "typedoc": "^0.23.16", + "typedoc-plugin-markdown": "^3.13.6" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index d350d99701..780e1d33b9 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -47,7 +47,7 @@ const MERMAID_MAJOR_VERSION = ( // These paths are from the root of the mono-repo, not from the // mermaid sub-directory -const SOURCE_DOCS_DIR = 'docs'; +const SOURCE_DOCS_DIR = 'src/docs'; const FINAL_DOCS_DIR = '../../docs'; const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; diff --git a/packages/mermaid/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts similarity index 95% rename from packages/mermaid/docs/.vitepress/config.ts rename to packages/mermaid/src/docs/.vitepress/config.ts index 4597de9009..121c4de751 100644 --- a/packages/mermaid/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -1,4 +1,4 @@ -import { version } from '../../package.json'; +import { version } from '../../../package.json'; import MermaidMarkdown from './mermaid-markdown-all'; import { defineConfig } from 'vitepress'; @@ -8,9 +8,12 @@ export default defineConfig({ description: 'Create diagrams and visualizations using text and code.', base: '/mermaid-docs/', markdown: MermaidMarkdown, - ignoreDeadLinks: true, //TODO: try to fixe those in autogenerated docs themeConfig: { nav: nav(), + editLink: { + pattern: 'https://github.com/mermaid-js/mermaid/edit/develop/docs/:path', + text: 'Edit this page on GitHub', + }, sidebar: { '/': sidebarAll(), @@ -53,7 +56,7 @@ function nav() { }, { text: '💻 Live Editor', - link: '/edit', + link: 'https://mermaid.live', }, ]; } diff --git a/packages/mermaid/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts similarity index 100% rename from packages/mermaid/docs/.vitepress/mermaid-markdown-all.ts rename to packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts diff --git a/packages/mermaid/src/docs/.vitepress/theme/custom.css b/packages/mermaid/src/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000000..8d5b71f56a --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/theme/custom.css @@ -0,0 +1,17 @@ +:root { + --vp-c-brand: #ff3670; + --vp-c-brand-light: #ff5e8c; + --vp-c-brand-lighter: #ff85a8; + --vp-c-brand-lightest: #ff9bb7; + --vp-c-brand-dark: #bd34fe; + --vp-c-brand-darker: #9339bd; + --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); +} + +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #ff3670); + + --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #ff3670 50%); + --vp-home-hero-image-filter: blur(72px); +} diff --git a/packages/mermaid/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts similarity index 95% rename from packages/mermaid/docs/.vitepress/theme/index.ts rename to packages/mermaid/src/docs/.vitepress/theme/index.ts index 7093a1643d..bcce341a2b 100644 --- a/packages/mermaid/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -1,4 +1,5 @@ import DefaultTheme from 'vitepress/theme'; +// @ts-ignore import Mermaid from 'vitepress-plugin-mermaid/Mermaid.vue'; import './custom.css'; diff --git a/packages/mermaid/src/docs/CHANGELOG.md b/packages/mermaid/src/docs/CHANGELOG.md index 7a75ad4e28..cc725bf005 100644 --- a/packages/mermaid/src/docs/CHANGELOG.md +++ b/packages/mermaid/src/docs/CHANGELOG.md @@ -11,10 +11,10 @@ All changes are in descending order, beginning with the newest (latest) version. 🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | 📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) -This version brings with it a system for [dynamic and integrated configuration of the diagram themes](../config/theming.md). +This version brings with it a system for [dynamic and integrated configuration of the diagram themes](config/theming.md). The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. -Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md). +Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](config/8.6.0_docs.md). **These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.** diff --git a/packages/mermaid/docs/community/development.md b/packages/mermaid/src/docs/community/development.md similarity index 100% rename from packages/mermaid/docs/community/development.md rename to packages/mermaid/src/docs/community/development.md diff --git a/packages/mermaid/docs/community/img/er.png b/packages/mermaid/src/docs/community/img/er.png similarity index 100% rename from packages/mermaid/docs/community/img/er.png rename to packages/mermaid/src/docs/community/img/er.png diff --git a/packages/mermaid/docs/community/n00b-overview.md b/packages/mermaid/src/docs/community/n00b-overview.md similarity index 100% rename from packages/mermaid/docs/community/n00b-overview.md rename to packages/mermaid/src/docs/community/n00b-overview.md diff --git a/packages/mermaid/docs/community/newDiagram.md b/packages/mermaid/src/docs/community/newDiagram.md similarity index 100% rename from packages/mermaid/docs/community/newDiagram.md rename to packages/mermaid/src/docs/community/newDiagram.md diff --git a/packages/mermaid/docs/community/security.md b/packages/mermaid/src/docs/community/security.md similarity index 100% rename from packages/mermaid/docs/community/security.md rename to packages/mermaid/src/docs/community/security.md diff --git a/packages/mermaid/docs/config/8.6.0_docs.md b/packages/mermaid/src/docs/config/8.6.0_docs.md similarity index 100% rename from packages/mermaid/docs/config/8.6.0_docs.md rename to packages/mermaid/src/docs/config/8.6.0_docs.md diff --git a/packages/mermaid/docs/config/Tutorials.md b/packages/mermaid/src/docs/config/Tutorials.md similarity index 100% rename from packages/mermaid/docs/config/Tutorials.md rename to packages/mermaid/src/docs/config/Tutorials.md diff --git a/packages/mermaid/docs/config/accessibility.md b/packages/mermaid/src/docs/config/accessibility.md similarity index 100% rename from packages/mermaid/docs/config/accessibility.md rename to packages/mermaid/src/docs/config/accessibility.md diff --git a/packages/mermaid/docs/config/configuration.md b/packages/mermaid/src/docs/config/configuration.md similarity index 100% rename from packages/mermaid/docs/config/configuration.md rename to packages/mermaid/src/docs/config/configuration.md diff --git a/packages/mermaid/docs/config/directives.md b/packages/mermaid/src/docs/config/directives.md similarity index 100% rename from packages/mermaid/docs/config/directives.md rename to packages/mermaid/src/docs/config/directives.md diff --git a/packages/mermaid/docs/config/img/accessibility-div-example-2.png b/packages/mermaid/src/docs/config/img/accessibility-div-example-2.png similarity index 100% rename from packages/mermaid/docs/config/img/accessibility-div-example-2.png rename to packages/mermaid/src/docs/config/img/accessibility-div-example-2.png diff --git a/packages/mermaid/docs/config/img/accessibility-div-example.png b/packages/mermaid/src/docs/config/img/accessibility-div-example.png similarity index 100% rename from packages/mermaid/docs/config/img/accessibility-div-example.png rename to packages/mermaid/src/docs/config/img/accessibility-div-example.png diff --git a/packages/mermaid/docs/config/img/assignWithDepth.png b/packages/mermaid/src/docs/config/img/assignWithDepth.png similarity index 100% rename from packages/mermaid/docs/config/img/assignWithDepth.png rename to packages/mermaid/src/docs/config/img/assignWithDepth.png diff --git a/packages/mermaid/docs/config/img/object.assign without depth.png b/packages/mermaid/src/docs/config/img/object.assign without depth.png similarity index 100% rename from packages/mermaid/docs/config/img/object.assign without depth.png rename to packages/mermaid/src/docs/config/img/object.assign without depth.png diff --git a/packages/mermaid/docs/config/img/python-mermaid-integration.png b/packages/mermaid/src/docs/config/img/python-mermaid-integration.png similarity index 100% rename from packages/mermaid/docs/config/img/python-mermaid-integration.png rename to packages/mermaid/src/docs/config/img/python-mermaid-integration.png diff --git a/packages/mermaid/docs/config/img/wrapped text.png b/packages/mermaid/src/docs/config/img/wrapped text.png similarity index 100% rename from packages/mermaid/docs/config/img/wrapped text.png rename to packages/mermaid/src/docs/config/img/wrapped text.png diff --git a/packages/mermaid/docs/config/mermaidCLI.md b/packages/mermaid/src/docs/config/mermaidCLI.md similarity index 100% rename from packages/mermaid/docs/config/mermaidCLI.md rename to packages/mermaid/src/docs/config/mermaidCLI.md diff --git a/packages/mermaid/docs/config/n00b-advanced.md b/packages/mermaid/src/docs/config/n00b-advanced.md similarity index 100% rename from packages/mermaid/docs/config/n00b-advanced.md rename to packages/mermaid/src/docs/config/n00b-advanced.md diff --git a/packages/mermaid/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md similarity index 100% rename from packages/mermaid/docs/config/theming.md rename to packages/mermaid/src/docs/config/theming.md diff --git a/packages/mermaid/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md similarity index 100% rename from packages/mermaid/docs/config/usage.md rename to packages/mermaid/src/docs/config/usage.md diff --git a/packages/mermaid/src/docs/img/er.png b/packages/mermaid/src/docs/img/er.png new file mode 100644 index 0000000000000000000000000000000000000000..21c44c257a3e0ee3e782dd5b6696602f6d9f5172 GIT binary patch literal 56576 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�nL`H^G>D(hhq6Ir;VMoOl|y^hQ1BW~YHy(6MphYiV6r?%I~30!raO3niP~bm zWFS2aPAmKttN-VBadEj$sh@L!)gKzyOG`Jvu0oPgvx|fkIP_mZH#j&OOX(i0<+nJ4 zqNHf?a007ggs5Nt6%Px7RkzU<v{<44se_KIK`NS78ma_4Mv=m*N=mqxZwc9Si=958 zyMVccp7L-?VfW*mMRf#0CfmO|@Pb1J>gOo=;^vE!Rj|z#6p|j%v}wW~sstUS@$eY) z-N9)fy+|eO&dtN)H238#Xi{o+T_OH~asnQ+feNq(+#Hzm%CZ;%O0K%fpKS5+Wh`xh z2ZbVXI8XjoU>h)8B?~$gO4Q*!_ww=r0$U>^BWdYwJMXb8dsKOw;J0tW?8?zUXD4Q1 zV;d6;H3g~Xsnz8Oa7-p9CXSY*UjS$G{{DViS{g(j?$GqF)YXRgLYIX==qJiZOKa4; zB*FFC?jQ;lb}DA`(%BKde;=0M{R=ldMM+7?SFcb#gm86t8xTvZBHx+QL<NoF8r}eB z2{9#RZ*LEyfsS)s9i0-Vc-Nl({$^0tOj{4h0(bIKD415Wy|%g<2v;Eb%gNCnWNY<8 zor8$O_?Q?YZc;X#`YIqE8y!_GS!loAWe=WiH0{3mB}}TF{ZzVf*@!WBQkbb)5aaI} zVtLcbA>&;p>inVk=fP4Aq<y+7C&Qw}-Upi*m)psGk~C3@y6%?iqD^aCRE|mE^p)er z6{mMgsBX~SNmEGpiS}~qCb-roR-gT@f%lo=bubQ^VIWtT=akBiD{c=<0q8iu3&Cn* z3~|`{_4zKdDnw?M6xMb(1$F-KgQ!p745w+HBWXJ9d2HI15yqnfW8urvOCqbzrskzS zw{WWBYR^G)YL$=fYmJjR|N8{Gfu#d(FU*7oi1*5BX=%aK9(MjGnoZL@WO(i0j0R3k zP4QTb0>$uAC|ff-F%~%RnhYTVX$prR8V+_PgWo<2W)nn0id0L!yxVxxUGcyU*&b}F zu+2~Wnt>*MX~dUBz2jDkzzd#*(BdVZe5)g!zOnuUJ$mK4o$9h!3|q+Jaf64IDaf~6 zkF@=2Zled3+VP(qFJ(YDW?`X3kSpmW3gS#pq~6t%fWL(JWDDI^b)Lr+vzu&;jKuT{ zav`Cil@%4BXv$|hBUDm}rA#iVt3mf<yY8xAYk^3xl+R*Vte}af(aij@+4QA7)2osc zFWS~!`jjr#cQn%N*Upj19GSxA-UTD$grSvc*S@11^xHIabS5AfJgsG{QTpM7dc9+T zYLp?i5o)tO0gWl=kwTR@yQ8AAW>9mi7`2}VBS_bquv4B{JO0&xljNbzyui@KZ6ZG5 z(=WH!E-b!ZZo4c<hPxY%?1@ow24h8;*S>j)S`zl?Bc&e9-VNQxyjot3;z)|yX!H;l zJ$xt+wl8PZ>2*46sQGz=p`NP<4t7@t;xrL2K~d3`GSSt42EXIBThNv9?m-6_EKm)Z zn3|#{qMUgeq5%+;eW?BE+3G!i2udX39n<1TgE;S6EjpI>Kg0Mb1@<NAN7$3sI<1aA zW6W_%B`z#0OEBr}ZcI5iH~?!4|E{X40xr$0i0ge!A<;k8Uj5rKXueDEj(l`gM!?Oa zGj7t-)6-K?fvCc9Z&?Xmf*=TUivnW<kiUYNkBN>3aT7>lRO4KG3`2lc6%YyrN%ME3 z8viXdEaE0zwh%)`f|HZgG8L7kLyCYPI1E6)w?9MF2k88xq<+Kx&}1NG0YiCI+j4FV zI|OC)RErZuyxhx(x~>Ja*zq@d9B#mI;sEldz_4<5ak^QpK!A@jk^1*waze7ypFR6^ zc#5Bg<^fXAI!4y}?oBK`39LHbd87Y8v<>8d-aEg$rDN!YPuD8_?$Oe{|KR(?7znm? z^4DPiDapw&pfc+m^;QiyTF@X>Hek*T6NS=C0rU7>uwM)%uMTcGNdU-h4_P|F28Th7 z2qy57l97RM>)N(!sZK+U>$ag1!S2pZ70$K6VVK}fP_niB!I-8%M6pq=|Je_`EGK7Y z*zdmYA!PJbXL|79q@m@s0e%bQ%}0OyFsE30^0k6I7)dXmj6_0wsd*io{CNmKL_Lo_ zj{cpOiC-*hKCy(c!&Gpm^uc=Q`}Xa-Ai-lcIDO$svWQ+oJP*j0iDvVmtadW)NLeJ1 znqmEQtcTXx8-8|>!h(Y%J~lRtj89?p+2I`UnuE=7sZmVj--g-v&#u1M25(jqP6G`M z0pLpk-o^+jQQcJ};_#WS?#ycLDkbPwpjvpFJ>B3K+*Z7MAN4}+{Q;F(6uaTc$%#HY zKSU=M!+9oVW`{rN$#M92c}>mCRvrBpzoUzS;>}l>p>WcXk?&qk9Uv47VI=Jq=Pm#} zKynPsCyer9DAN1QaWOmXkC73ebtyFz21OhL8y&}&D?bWAMC&}7PL^ASZ|mP_mkO-8 ze}EWC1hg}OZBZjW4W#?v+RFoN9F&wbtgH$a#WX>u?fH%giSWXLf+SvR&BJ)u52cqG z>;_-pDPO3p>oU^%+VN|HnTEv=^0?~iNA38E=4m&6iTwES0~t7qgm>tyCm*`-=^3LV zXuZB6p$veW24emJtQ?Rd25-o_1+~6`MMel@fFvY3fpwp18YO=V!N@5@i^c09jF1(9 zr*vU6uB@y?iCIxdXCUBc)rLujzz;YkAzj5FSAy2|4bBi0k!Hh7cK5wy5W8mRog_oq za&vv)V1{WcE-k$P!YmMcA8guv#Ku-uUTzO7B#Y6K=pBT88v@0m3=B(<oe^t_-CSD> zQ{9S^GKL*-i;!hd5VsX=WdMk`Q#|1R050JO8N!1KMl+LO!>rG?_`q)nPh5KftUbtA zuPOr;D#1y6<>0W<+y@k%fy>{7l!k0vrK9tJzy%VHZ!*5zy15C$?1wBUqSk4zoT+Dl zsM+Bj{_!I=E^cI1eHUn>f!(u7G}n_BuMRXXea#wR=eWDOA6k9WZuUHeZ%=E1ZvnfK zDs;6!44AH*sZePVm>RfbWH9UJo-mj5+k@HoX*2-7M|gPnG-xYJg(*ye`71pZwfFz` zn=w&Q!0|siG!zy6eRnn+c8l=-kLTy((m+$hkm0S&-(;s>>9j03p*6`|_@G{shCrGm z>3jBDiY{kck~?ZEWpe54ZW~i|F0;kpQv<16bHJHyy(5!gyeZ5UY@6kP>)2j<+mhmy z7_PChjyI1f87u@-W)^7s+*r(76(_CK$`-@=H5wUbo*yWIPv&b1(ps+Ru$#AFH8j*_ zJaS=$j8|i0<EKyj?zx?e;!5CxJDi_@9{C?&SfC+=WQdH+xBCK-y&ev_jl*5NN#D5U ztmZsyc%f_rRs)vIS^9`490jm*zz!=be+NT_jnRgnyXI<_-4&*gGkh>#7n+bGyDiF! zI&KHQLz?me*f&*FRd<A_bgIu`6@eO-+wo!oNYII#EN8<`$ji^y`vfoN?JYR7!HWjt z-UnLWy}d6~s_W|Nnwy(TO5|6&-iO211qXN9q$vU<<6o$$jg5@RCvz9T5pzm<jChAY zZBE}#NSUBKp7YZ~&}Y`Ia{vKzpN^2bNMJpNs|w-(h%yEeITpsvGS;i{K#Y2rBBN7y zKa<^hqAC)`)DH#y{Z+_8!Nt;}kj!l{lqH_rj^?ZW@9>&P5rut!yn9!?ySI0Z!^Rs% z4r_(H>(~<|eQ`kSz}3rv#RawuPSKnA^hm9KU|WC>f%~ioHv`Wb?85{-x^E&XuZZv$ z*Q;a)$##gtZm~5E^8BWsyLA!}5CBT+a0En2fyg>6|E@5S;njF}d|{`R7pkhG&<9^w zSctNXOwaRT<KsI8*b(MeQF|53+3()V+2*F499qHOru+nZuxjB4>r(*BQ>I<V3EWBG zn8CLk`(B0rOUQzKYbq>+%n<}m5&e9C?f9P?fx`xZ;rWUg>6|8*)8t~aDua?__;P#6 z^1`HKq@?g%4WN?-^AEP6uuxM+N7&+f4m7D&vP_<b)FIgAXe}rp+w*INkX0LX>XvxO zLiGop@?CN=c<&h!G`J;x9mDW=W{|o9*9>AGcsY<2PU-st`s=IvCt#Z`({K>nzNlRm z;G2_^1A^CZy6u~T6gg*-Trx6*OCuf<V29ld8Qgq)z=`%A22?~Q0-giZOx)9C5yYyf zmC-r~YD7@+W$AI5$r=7TpTQuKoRZSh(^G3RO^W#z;^~i&@q*E-y?C)l?2WIZuUqsE zk$D$oqS%dDbn5qjfGUC2!cMy52x=bNr{@_y7XrBF%aWpa;vAx)89`Y@pV!Ncmq1tt zVmACHOJM{S)j#KfQKQLyACxFy%~#>zX+f6w5?HO!pQtyvJ3-hXAt6z9K2dFT_wHSk zd%DZ22(}}RS#6#SAHn_4;0Gjvqt#t;1{oRpt(Rk9rcsGa@~(aJ*>WSvJ>^d>$-wKO zprEjpeWmrDABX@V^p`cj@1&K^@IJACv&r$NwBKK+CeMrkHBHUrq$H9{Ap|@BKj(lt zc*!k&X#j?d`Syj%h@e6*N@)ZlT6p)G*RS|KK}UND5!MZ6Mn-UDncCPjuLr-6kB<j^ zj~$^%K}v-CV^oQ%_1@iJBo3vJx{l8IkLQYu|AKJ@Mw*E1@y^cXLJ}I{o(T9z)e#6g zTa>VU84yjKyBiqH)jO?LMW7-4Uu@=j!fd3zf+h1f0nSPo#nR#;-PTAM;@6ykFLYA0 zW^w`dWf!G~9Kadae;PpH0It?|Z&0fP#whg#0hMjyKc$ooHfMFU5kWyr+MDiH4}Df1 zw(U}tzg-B@j4K-d)7MgK(n4Xaq@|VgWxv1A>e`=o)-$3fuNXcekrrQyTAZ}c3$|2? zyq}U**F3P`>Y15-**kjh`U-7G>GO*HLctA&QWw4Xi^hY9;gV6c1Fo)GH4+-0Q~Oi4 zp0K*Wm%A4n?C;-MTQ`mGRGW-YpVow5#T_DwSLs@x<lV`?c<FUMpv+ugnS3!)n>xOk zoH|=r-6h8T{Hr`y^Y(kM^wHawHvbmv$Gj6=AK|0#ffpv@0M}e!dT2YaCo12Y#pl_g zBY|8Y61^)bXrnbdk`*xHHGXm+cPWuI6<2DVg3afWbC!ffcKO?jDJ96yB$OiX#X<#A zcZ2d?dc8tx>uOP|Ud!*y^!$|O4KtGx-pd*{tSI+or)@Kz(aVB&4r+p;Q!no+M<$T? zoRnU)6}YS&xsEG}ayK^g3BQ&SUUc?+7#DXOA9c2&X?2j%Xm$OPDeT|=tX^n-zFXXr zb-om~H6`1t*rJk7zrUJ6Hr8CCTcT8<Cg}Yrveet_m4}4uU%G?ivc+(&0_O(nb*A{B zMD1O&79QMdGZ(?zV#<~)iQ>FtS)ZY$2TP!2N5!x**gf5b;K-t+TZGMhlw)@^#ggJm z^~Y74-rkHvExp4cm)IR1z3UEo4^r+-n-}J;^=taP`)9A)(h6sW2-dH@XqhpeYF6&0 ztDjh}QO)9}$tuNZVO-SWY&<DF%w7AXRYd+g;pT_mS1=UzhIw$yL%(Tr1xFkTP3KU$ z=)3EpYvytX1ideEN#7JB$!od_NI~9V{{2rL9uEOI^gdD~Coc47N-akyZ?b}bQ1x`J znwZZ;WyMR}u|vvzwi2~jZ$5(TMnoH4<udkcAk~S;*<j`ND2Yt10-r<+=h*2C_1mDJ zA7VZSCZg8MHA(KvI<^O#Xj~Eb-=00hjdDM;vY0}*`9fo~?os;u0sN0|)!QYlcZ&9g zAP<UYBQ=_86sX#!>Zlziw#-c`tLIhBe6CZg@Ub!3%8`<@Y;%R+W$w+@X<K<ZK}RcJ zY~0G?-f5n09+zCNKZO<RqT9vojcUHctAf*`7vJsA%<@zo#EcelMkbs)JoH$lwN^<2 zDqYXu`xVXQUw0ylrYtNT$bW3Ej;E_QKcHJ3P$da6V4T!H&2<X$%E${v(rB6iV-z_A znV<BXQws`D{zfP!lxdVg3I0{yj@*%^E4VsfTY><vbG%Twnm!`f;algrF;DmR`@DGQ zg6GtX$0C^Kg;X?zKKtXlI0%H8R0d={Hc1dze9IkBOn-lESQik+a468CEHqqVcqpF( z{)+l0>Ky!k*oA*5E!c5dl*NOKI2yIX;KGtdS!lTa|J_FT1=D7&gW%}e^9Irv8A&7C zHLYS@^=SiNv^;C8r4;=2Z_PBv;W=uFzed^CYeOqH3x4Po&gQ`%kKayyp!%?9`E?Z= zH%iF&6dKtOh~?-VI~OzhiYEzb94KT-$0}w8e$wl&PGs3yoHJHr-6ov%dp3GszjEcs z=oTqeu~SC|uMb?I&B!R$ZIRDR&$vyg{Z;1=N21(Svu*63BL5z#UT6(L)}(}0C&Y=1 z+pSw`%)T>3_9L^0g%p`>&Q84UofLGYs$2Cl3?qh_0ARp`4Sj|jBzqEpU3bq#hj5<- zOYNv*x%+?493$)9xPu!t)}Gvir1dDlc)~_1PiU4Ync&g-_gx=rew0~I5b?}!OmrRk zc&UT&a14J&(mjkAE<m@B^^#cQ6m=MKE@ShyJiQV)f*(DlTDf{F;j0!JlE5Kl-%pny zT(v>N)=nnJJ#4Da7Q@rD|F@E~bFg2xB`@(y5f$uuIliZ%s%3HncIwlT=Oz*jo4@<K z4(<bJ7tV<m;XQS?A;ait%HSZ{NLgOZy&;8T{iKc(muqJtKCMPr>fg?gSYl5)e%*8} zx!MM88P2tntGqoX3KezJx@F<o8;B?trT|X8dv|V}uvARXwK#ovoYcqWe$_i;?7dpf zq@^1j!3%Vy*^;*g0`XG&<0anN48IPqU&ZM+ae5O(tSm+=IBiqb61L0lRrq;>`<CCx zdO4xwW|4c(TEz&_-f5F5-JO+%C@!q~(#67e>_|y8ROJ<X;Md&4t~78-VKnIU^2Q#M zcdn70t|>+bdU2p0OP|>7>lI#P*o>i4UuovZ{HvIb`|P|lGy->SNLO_HqNAaCJ4c&@ zZiqf)XViMDZ511;G2~r;ucZg^$3G{C3tFgq*T*7A67c)om)VuVcz@~<{V^_NI|(v9 z>NH9L6N6-^6CalYBl}*RA7(kyU1{JBZkt0`;f%&(+1GchKJFshg9z`Nt-d-ezUb__ z9$|#$9FsyEV64Hh_q}CifEG<u@Zap?{SZsoLHdn<A)dAw8Axurx)90B*&d|O()F{1 z8~YANZ^>)}wqeW2hv>B$bvmm-+doqKiTsL}oFCnV)&AW2K)?N``NuoaR$_jd`lc6V z?&KA<>06T%?#!jOHg>z)Z&KqqM{xJZG@^B~-j|hcA7=d9E17I)&%WW?*4Vi>NZO$v zr^u(yw8pueg$#X-UaNjYlCqGFua-@qVc?p6pQd}^<_F`yg?0i@?j?vyNeD}O>q)JP zqz3HqlG%RL3>QfVHj~13E2e)W;Lqy+r26z}4v`f0(bL8cW>WQsXy123m>FZzpPy4^ z$f?p8YN*8DrHS{u0F~KEF<DH88!S<zd#-+#W5a_bT^T-^v<QTqVt049wdEwB;SIeq z?f9q0#|0pIQl|<EBJ9<=6PS%KXAF*>x0`^#9*BJ*C);`Q7|GpW>`Wf<z3p-APJ0r| z31{SZFYYwCW)|D-&xfi*&pJOmxGyL~zF%o~x7XQ!D2vEVmtCs|Su{OAl#<OC?3_Pi zOn62<K;|m^%7c&BcK?L9p^s5rg~o8-G_a-jE9Y;!lwQK7NCSen+B)l}J`NxAI2$He zR;Go@#>iZ0Xe6pMC{(k%+3d)f?SwZnYbVqzhkh*xG>zCSmGGtv*m9BjIs0pzUm`;` zem#i>vnmX=@A*Y1wywFyJUl#5zt(~p33<e|cU!uehsxv;H2(|ivtY*}|9{k%I<^(L z)ES?YWguhH>Bfz?T}!AVZ~Fhdf;a1X_LpqKM--n_#?6<SVNUk=%HKFeeynU)7DEz_ z98UK@GN*qQ9ZQ69(WC7Kp<-(msu2KeeS_;V3R?l!<6HmIlFQ<>c%WqLau^Sx2@J2g zs>;ze6+$-P_?{=jMx5+{6YYGt4<Q~lHnuP+r0mbX-j8etG!6<~fmog{)~Kw%)Ko)V zV@8^<AY0%mcBOTCkKY=?ryWp6+A{|nRM`LELJ)(uAR`|WGu)I5wT6O%0?GRbtOvsV zgW$lz$IwNrIaI+p&D4X&4G0LUpe^R`eRZ|U>W%WZx^Q0k>OznQEWs|eN-Fyh1J8OL z>Kt}LdL%3?>_`I5S7e`G46r<qq;TgZBqTI7G3of<L)D2qE{5z}aY4b~p~ToXo3&Rk zqA1PGp}GRAE3z{-ww=ire<=zk2kTy%0w0jWQ-(vz3xZs8n!Y47DRyCnNyzft@@utE zRdqAO_CoFI^A7veEJgr|_+D6AS;;0kF?hU1Id_>Y5}=6MgK9m=)FUM&{TG@7Y~jE9 z$zz{zD$!;jAOy#Jkgb9R9CwQ}nwk@GW<6b9$^mk?vHvXO;Yb1s%F3v?Ov6Ss5WgtB z0Z-$$`{&;$Sr$FC`*0BV=HA~zJMmvS2I*}$*!{J=yo7O~Vx<W+#J5*?;Xa23kP#tb z)5QvGLxm>|AQ#sB3b(NRUn1t$1u#|Lot;BqnL-jd!6a$Pt;D~b9OW7Ko<4^JfR4`e z(9nCQJMf~n7rJC+WT4V_`=1Z6F$wv!mh%HGKwChPb7cioEJX~ypu_jk{`-FCuBWW* zt<l8m#BV?YTc4d6zRU3MyOfZ)6T-cLj(WYdH!=JnPzT6V&gheQbd)dB>MtcP?*$r+ zmj|^i78K|Rn@@n@0-VLalFhp#6xaj7ohY(~K#<EyBcHt3@}=}x<A^swRXK64A_#B- z{XhSL93+H~YXAM<6mYAVXg~_G5zrt34ZyAqQr)=#@ZkIB4&63^+#|ee$XCH65jR6B zy%thm0S0gfTc+FgvtNC4iEm(Ihm7I^dI17|oMu^DBo37bDn9_(M_pS=E>pQww9i}A zA@lI%49}fz$fjAOUDN-G+Fthd+goS%FWGa?GP&Hji=5DX=jNfHLF$<+6i&)x2^n;+ zxE%yXHS`OC>^P+Me?vS7UnU-}d$k0>4@lw{Io+|QeZi!NByc3{^Ld7qB4oo==0xa= zZpxVy^Z^o81qIS7BVWEe6<1P^w>CFteDFX<K>_fku$fVTB0F&^pKZEA{&Rxd=4KHt zu1ZL3NfbB=rYYph%6u7oGS~@)YDg4nC@X)lPlfds@D^$>L0O6E>7`D0`mp?bwiG-~ zG><op=+95BBr){OqA$HVPV5m*LXWkPErX4o$2(9EJq69q4N#(d$jS;pwuqTM_;b_g zMgwe|%MLd0ZKx994*{6UP^}9M3u8cNSB{ZD(Bq&OUJIVKq-2*Ql~)yHx8}6FhBKGr z29kDKE;ZHnXJ-UN9-op0a8V-W%K(n(F24rpEx0!LoWk#3B={UBEMK0TjI~6(5<*}H zXC1+>j*N{Bp!%p-5WxjCH3zVpplA!-R>Oj!ofuEbJQZf<yEV{Wcoiv28EC*N;Bfi< z^|5Cp#=A@?&pv{B3RJEEk%YL(NPy{ed44F7jq4<Y9ir^rO70RQPM=}UWw68ixVJ>N zNptlE!hfR5Vi*8ZO;FuIfj%n{v=LAw0%sngdkYHVk5W0x-g(nL?bcfjo`s{*urtje zL62gAcXK<2Y)5tfRZ#vI8S#P&IEYe=t?onV9*I{F%Rr+#SXmKv?GI!ro<XaY`$|DR zK#*M4e*VM3E&zb)v;N1%#xuZQc&wFoRrPaz!t%2yL&JOyF2DXqC}xm~dY?f_-oe4a zv_G}LiQM-+GJX+8cbAaR@R@uW%*I(TTYUd)Bh%oPWKWCY<<i3K@$7!~Fq&>Od@OLV zd_S_B!gBzu(5-0((uw92*Y$6h+uA}J+J}(<H6rvUgM$6{cy72a=Ce({vKxQA9>!&j z_ppqVrECsQ31W$#kh3y^;wA9mLtZ>x)JLRL4r?$0we=r4znp1wgM|4H!JbUs8#2eQ zhX*sCCC`OFd=wN!8jDe~i=h1oQ)ESPMPEurQBkkLxcfF#Dj+9DNJONV!YdC25Pw-O zuXE6uf#ND;n%tl+b|v`vx1ODjtSlNZQBbqi0%)|i_XSipM4;XT2{Vw=Qbm39%X_gv z0&xvEmYtnzMl}Kg+L=&?WI#NmR3HcW7naU_i7-YcCP-oa0Gc|}2M-=VHt!MC0{)p} z6GjsBVcmruGuG<sVmNK2ieoFg6|;-jPS$rm-c4#kv%A;P^wd%MidMnMrQLQG$uu*T zLcu^oH)UnB)L_B{+W8~7uO^(me}3NGm^3Ak6-g*N<v78FfD4W8(IYK_j<Yk*mRX<W z!S^V*ApVthEftlKE-Ig?i3zBP?m%wRoWd+<s4;eve|z6-p!qm`?$Ud6{Pu$Z3%n;Y zD~^Eyj^%|%mv=aAZeDA#Cq8kx{&@xaW%;(SrWoats)cVh=rA?OC$bwrp%qYsUu&!< zLBxVI7+Ix&e&;qg1yCF*Dl5~gbI8>#Q<VAM$V%Z}<@4=(XP@h-*(%y){pk0j{Y$4R zp3y)f^>{i%4c>Z$S8Mqf{cWj>F>&b3Jd~`BYAOr);;Nv&8O~}|aJ1ez?)QwAc+`V7 zt5u@OyWlk&r{*Zh5lyHfH4V=)_uo+T_fo*0SMF<|5fEh1z~)5d*kXA&V_niqxy|^S zclDO5K|$ZEU0vZX@7Bs$cqY)O2i*NXeZjp4JqCJ(L?L@$UJm_<2@ZOS(-w~7nvwf; zesl3t;ic2i#~}u{k^tqQ-&hBv7%1R4oQ)t}rwv)-(@j)K<z~qOqWzh*^*WdUfUjOx zA}CKD77O0{103f~HM6C!^nIFVxAm+p^Mtmh6;qEcu55bzuC^!=wX8c{<tvj<J^Hp0 zAhipB(%LzAE0yEc#Z1TM?MaRI_vQGuOm}ETwP&TlL?{){nw!b|iYTAw?t~w9!~LkX z6hfihnWTQHoa3)~*9ID0-bWho_%sSy&*!zB_dA>PtOOU;Y6l|=XLX}>c2u3%3~17# zq|Dkp23UT2X01kG6O|!1FJ`#tQX(8BXc&0eT>mr$z};STF%RpG;{zM&pJ=jhJ|7Ve zlZgOfwDXF2274cj_x<0#$*8DM9YI}gm?$z00n!<JWj^PtkeLVk4tpyUF;G=r$TE+O zjajA9;bJ9Ql&$Yb=6{b*s;ugN0x_4delYG{BVKf{vCm`7fKg&{WKQ7}-dp1M1^7oj z-ryC9I5pGq?YC!tl!<T)Fx$Q%waYws-L&Kmqi6|k+@!xR+fFL)&WEeC9Kqg1E`9TC zYW~JoWC$&pT@wo=C(K8SHJ}Xwl?2}DVPlX_2GD7y6OC`+$l%~J6%_!nkIc`{Pfcl; zEYJo$QT|p-`SZZ3qnK_p0<dVfxE$@sOZ?pE&l{5l2DUTgKV7ZFvdH|`-eRZwrcrI( z)4A-L;#VGEcTsNQZFqUp)5x&fjLGh>(Md`X9A;ulKyaGbX}*ODts|I*>T1{wxp{fc z*iYYScXG}w@g6wOz8hZtajI=dzVK!1RfcUPR47k9hDFWlga=liD=SMmOlo7~-zBo6 zKuko&F=Q2@HF&@8w+|7pNG4D3HX+dXyKDN{{N2>hm90YZ8waC3eW6)9&CHp2xZR&K ze=Id`2>Md0%6?^CCFbS5)w73zfkOaTC{cI%PCnpFIP6a^^r<8q8zczD*Mi)hOG^ zD{b$xGJjl043gXaEp&jI7I6SbO&ddvz{u!+{HNFNQEoSsiBOLs!1R_RDLVS8<K!c9 z%IJfpoiT-DK8m!hKPS=xnsj&MR87M_T%wsxt+@obO!X3{*<SCnLMMVi_>@qQZBy7Q z$;^LTxxEM(rvGYl@X(u9Wv5>F3r1kU*c_jWp?riqWsmax9!^WgjlUEIdoF7sJmcZ3 z#hpClZJeHay2ah5clvUvo6-&HP3IiwQ}nqBKOJM+v`jyS9&dGTo1p>ct+G#^H6oPI zHrlQ``2T{H^0GcNwSOb{=+V-IPfKZb3=KBru=|c{pIocyo|c#DxG8Il!0RXi2}N2r z7T((&g{a{0tHu9Dq8dF!TfRPSRsHF1Ji+LigFVjBdk4R6jZVS(rat40z7=I+W&WZb zrW5(Bzy)m6d=6vgT`mjkhqw4H4}2bea7<pm-gPV0Q?+_#%FTAuF81K|hcVne`_zNN z#?zEb#s{b8etKu#pV_=yoE6v6Hdj99H_cxcJ#u@O@#My^F0~T*_+GEothT2|H<ztm z7*bQjdpoI?P1o}@iAdBY7)jbZUa`>IeR(t_OEr47R5@@_SI32S{HNNCSB?9n2F0{H zSQWAZ<iShziobwvv-nxzzV9J9>u$Oq9~vdqlN7@BP*aqbm^9+0W`%*GEbaFSv$kk? z$%B`SZYJ=b4yTiAU-Rh7*35&En$C?oy;^r4QkAieJECs2^JV99=`=6zPsnBS8C6Z~ znyX3opAacp2jl16E0J3D2i{$ew0o{U%CVSX&Zxe~zpT<-y@QHZZnptVMItMm^n-k} zAY%V<sc2>kWG5qq((3+diL^Ct$U7S5)K*+vHalbpi?ny(xLnSIFpiOV_Bf4j*0@^1 zwB^$`7w=5w1p<Qj(~Xme6@C%Z9M{w)vB*A2=vbpymMXi$p>3e+F??KUCN}AF5#ukY zW5pcfqpC_Aai4~@zG2eQC$Q^yn+~T>7M0oj#E@=AD@~1dtRvDdg={xArDbADk{(;> z*RxO??ljgbjt^F6qK$gJ=sIJ(`}3MIZLqoqUYhQ$YwKBD`ki6w%hx0BORGxXV?w4z z*~l>&YpBN8&zO?`2ZOEB7J9WFH9Ac(CuL^Vd35udIGez1twW9!XWKO|%dJk~AKnpc z0jIA~p`iZOLa+1Zm%MHOrMAJu!_DU7P%V1cUL+s6#UwCrPJ3B*`B$>xt)B#IuvC@S zlxj>8U0n4i^5QO27xu71(wEKvWW&OCPYEwi?qgLJNRd@E8B!fJUX-WL*86ogLdv#M zg17PLi!IGV3(=Xg4OuxE2P;iYyoOGjD)rtgsw%E2lhm5nIH4SjTMt4@57h_7-5UfQ zp<D$~Nz+DXj|>`?nP3Up6qCb=qYA2hYyzz`V5CLVYy0QTR{xuUZGecFv-@=VEe=sW z2r?+6qlCdo@Ie2eT2tq4HK7v9H)#NXDJ(1u@O`i?ycd`2(^}77xcGH#`|vp)Ua6~^ zo_c!cZx1e`_+txml4$kde#6gsQ;#i+d&S6?3?%hNkBrj;N|KnSiFz1f5>#q=yZMtD zNBwF_IbMur-f!o)pJdKQ{y5uVh>)OKYdO`+T&%JEk=;q_;cn;LUW-ru!(zS5RiBHc zfNo>Xls*X~xtBuW7DkSadvK6TWDmXMot@Ukn;5znIHh`c>V2F~F(bNuv?S`{7~cF< zD!*2hjfwHNk85ob2hmz(1dvKXS-{?Y)+Z(*sRNJx=g-8^_n97rg#m4Ia6zk)bTl3w z-tu<&<5M5Bv3b3Vf$tiGxEHgcmy3};2`((&8%xNz;zJ6y<Fth~{P%Ip<J?3D_F)Yc z!q5%}sBS;LcLyiXM8mmZS~Jk^0t*KR<Lc{+iwg+f5_&ouk`uGM;%aFJ@Sfh_Af&{9 z8g_I0X{2WyZLr4!IF<MS6M&-Q$Hu;P^)(#LJryiH4$8{Wqji~R&=m9f@jVd{-FOfN zkttdDWoE9o`1X#E)k#lsi*7l;?y2isF%kK<<h#>!Otv%*Af_g-UZNV=RS6OH<9k~j zM0!v({#ucmmR91#+MbodXNz(5O3Q3ULV}u-5(h|Mm*CGu8D@P;7`<4ry>x8)J3Qc` z`|k3W=X;G~zmZGJhfELow_n?i6*k@sxsGVv)8{7L{dWQ2li&ur0;C(#a+XHbkx*xc z;X~F5)Uedl05qNNL?iS>?u8rm8}?ilJ@ey*F)tsxey=D4chbuu+kGN4z67}!z$lrQ z0Z<aSqN1W;zz_p`s}OS8&`#;gb7D1zE+O=*uOZk>=`+=c*YiF$f$>^c=q|SDEZOER z^()}=wVZXu?fs4=A}`&1sh6G*sEmf#GM1K>2Gj^#)6>%cMFr}PX`6(eTqjn!G>97E z@Ynrh_j%o!O{0QVKtN*^>B^g|c3i%B;qD5oN|=$s1WQ?$AJT$4)Yo*Ob`D+u5Tf5F z#)8BWcnx*aHX8BJZ&ls@wmYlP5)NZCv;1yjhdOQDGBvoD0^CcZ+V-;0`HRG@{r$Ja zcsi5_Uo+FnaR4C*Q!2v8t*opZXQNSli?0l5uK9m1EoBu~nzC^*F`?7@xu>xEK=ieO zZHaD!>`CqI1WQPnAf`Eqv4%VhvSrz_V)j@QnCTY9i9SEof-MRuNG@V5o7%~RZHVLW zjRaMWqxYK^R;zI!5ZHSMwd(kI!n7Pw`}sFR=8kpRIDulT+OE86WxC-CZA1hFu0oVH zHtD8$&ryJHd=^$#)_R}CU%xW57@<iBKF^vE+SF;JO^XMJ(xM{f6N=)-M(tH(BEbtV z%Ui~Pu7Ha&GQX&36%a8`gUs{!h_Pa}odFNn3`ij3F!KB99#JRD%OARp-Ft8P`}@PH zhDN?f5L&I)%-9Uiy!G!+RbdiFj&xpo8{M!8AcIz?jRIHXyB!Y>4no=lg0ytkKkwTD zX#%7?&-PdzH0d<0j+T1l6+Ktk2X`K30^a)e_BO<`z1`h)hi@POJvq4wh($cSpRuNY z64QOC!Fnr?zvKmg#kMPfxBzrrK^;F88qVfEs#6~RIEaXdfXrjQXQ&>_srXaFFUU9H z0@n}8J@a+}270(TySeR3_)rt@<?O^St*v?Bm6!?WG`cD&#eV+$89?e|x*p+8b7lmE zkoI!*RzSh~bz8i3lwtv9w72J&KYaY5>+Q+;1)x`$6!@_LeXkFQm<1~bXf1zM!I zI5{z{Utf1_82;<I7^hZ+eN+A!M6a!(0PzNND_qBrbIA_<3yGedMQDW}746zQ97y3) zY<nl@bi89yIexY^;U3ww3k_gp>g7-8g9W*WRp8u`Lv{GU^^EZc?24Hg%3x&HE!#JD zyjw1rYPr-@oT807??Ck6vuejq+}q#pee`L>vRa*G?}#Mg0c7at6KSOZCIc558XDXI zR)^=`+yuxIrY9vGw<fi<wLvo!ss)st_=O704Jj4|SVynl_4M8O5{%@~Aqt68WfdN3 z>d)rf6Yz-B>FMbgTNAX>(P!R1aC)J21qKF&ODwz)mk7&(3Z-v%G+2eGC?#Fpjoo7` zj5f#zP~b>9-U4)bKNt(hMk8zMSQr^UPOd+_fx@g!H`tbqjx$6t%|NQtnm6U`9f|C1 z(2a)0j*a0DO9a$@ZECgRO;Y-t|9+<vR{{W~%}gUnFcPAU4T_wW7Ev}f#gto*do%z2 zz6m?A-)DVDDKio%6POI73&W#dyLJt*Dz|OT@pY_sj!K62VaKqFh<JM{2*a5P*F+EG zXV2DaXL)&fp?wo_3Ib{U@W%Doq0_R_up?wUGPk;V<R$OY(vp?a%^+OV@@KDe_wWEP zHtIw%1Q4^%NBz%m*1_6^ehnSggtoa)hZ{eWiu3a&m14DOZT_$3t}LjjD-37Aj-rBw zML<N22$d=hD4{jQU|Gtp1tbu`LKzkzN=heD2uqkYP(c9!1tSV1Ach@jAcZ7=1*C$Q z$dW2yEeZkxvL%s#^uIoK`qGEaG*6ky&AsRR_dnm6^PTTI|I1k!faZeVHprZikk>$Y zeC_C{rKJU@tpQ3AiOl+N^fnGm<$*r{F2~BNESPS9hbGyjFnT>eGnLcUW}n-I1*lcG zi#VjW{j*f|A(zO=IS_ZjLI+4sd5hU^ph*Mq<fFjvDHKcSnT3T%IrpmR$M&Y!vcxSd zEwv$Cb0>WXgnE!AK@5S05rOJBFmQik(tT(P?w(bidpXxDoI>I9`F<YSMbF<*a5FPA zMXr(Hl#p@s<@$?HMyEWG96z{qlZp+$m|t7F2wux;yUa9gh7Ao;?6n=jNhB|CthR=G zOiyW188GuREiH+?Q_D0Vp`5zr19nwVum`IqSQ{fF@3uWGF>PW6g@vP_t^!5j_)G+} zEf@}WeGf{b&2gJc%*W5d4MDC6`n-6B5146T0`uCZhHJlE47(`?)y*GP;TN5)C!uH{ z*p7%PzgVVNVgaHcM6Dh1cto<@9>iRA5}P8A6hDQ64MTl>pjzW<u!T^~uoh09dOWPW zHfe|8>KzC_QbGXuP|IV-*wkHSh9_x#kvy9<j?d_VFCt^$23zGJ`yU0OFrKulvy+{1 z_09>{e*tRB&)4_&IO}{>WEfwlZfsly`uoevZ#f)}6GDJKE9OUyKL$d*8JO9&wl-te z9K`Q%Z%d;+@@xwhT*%?Pfr5_VP{=uYfh~zLc@C5~D5~#fXOFMYdV728(p3$Mket`^ z^hZ8|>Zk(AS0<SUovGyh_71PsckEvgbAH?1DPd3oEx@ou6KM@f{4wIFLf0cbu(E6H zn<u@fX^8jLJaF?|eUz&mHB?Fyk<Yy9Bw%b?$11RXmxagU<W672&7Ux1HV`n38tsZ9 z8EY+tmr(8fZ07-M%e##cz4R)%)0GicOn1+cdS1Iyy}LF3!*SLiyP}VsCLLKc<C7WP ztuwWF4sM-3ud@YX>qsygys@${!lQ9lea(vy#7xv!iLYg01Wos!7^$HnV(C-KXI$_( z4x!x=kyT96&enp;3KCv<x?hngW+qQlrLOqHnoR6It4oXNJ6`E}_Rq&lbJXD060@P$ zP~l|L?z!{Ihvdo&{$A2Q#LIktjD6nx2Xrz%)8$Cm?)9K?Ycx(Wm}?s5-v4u=eg=Y= z%b!yIblT`lyD}*<7Lf@uG9I1fKwnzLHDj&CTAk;IYAR1DIs*3VR1$R(nvKs=<a;oT zn+?-)DPbELC!6o5?qej2cHEa-9F}SKPRTQBJbkxLr#`b%whIPxL=MzjmX@Zu+pVu7 z52HBI-i0}5wGEw6j7@kq%c?7A?@C=U-(@ls;S>1j4&r<9LwQ*qDJL|wX+rKpALTXG zh5Jkx4J)A&14%bXg4nz>J48#w2*QK87g&tX7HfSTD1A`tnJy8>46bk;CY$Xp6(~GM z6s7kbNG={x3Rp3UVO_>R{pTe|m+%Vp(R_6IupgZ8TOJVHe{m5TUr*{5ggwdT*G{ih z&2|*uDRXRAH6Oc;<RtE<H!oy~seYJbmu0*st8;gKAJIXoAiGMMjxS4R!$@Tb{@b-Q zoI?zFf^6e~gmZh17~BfhLfV4v>#A?_h{C!{{U#!<X~nwHTQ?nBCn7nTmM|Nzk$*7V zT~Vi!5%i7s%2*NDfIxg5-9w^JB%wmD>%}#t47_}a1z+>E_QkkrdgI1wNzhJIn$ken zB~(jMJGYss4by$aMlLO1ma5yK0(v@7;~_ALN<4~S6bf}7nVBHdKMpMvB?XB+>doH< z1A>tM@gF?}5~MkMLF`Qp-auD+x$XMNTrbV-L68cP{->TU5Tb=Th<W;9I++1i{@*(A zFG8kW4Zi8ykvJTVn+{*l@IuTpL5E*R-Gpj!d-RX5X_fv-Lq46i9(D`*j&gQ5ZC_;@ G_~T!k%VIVF literal 0 HcmV?d00001 diff --git a/packages/mermaid/docs/index.md b/packages/mermaid/src/docs/index.md similarity index 98% rename from packages/mermaid/docs/index.md rename to packages/mermaid/src/docs/index.md index bc3d4b741c..be85bc242e 100644 --- a/packages/mermaid/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -9,7 +9,7 @@ hero: text: Diagramming and charting tool tagline: JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. image: - src: /header.png + src: /mermaid-logo.svg alt: Mermaid actions: - theme: brand @@ -105,6 +105,7 @@ const members = [ .image-container .image-src { margin: 1rem auto; max-width: 100%; + width: 100%; } .dark .image-src{ diff --git a/packages/mermaid/docs/intro/img/Code-Preview-Config.png b/packages/mermaid/src/docs/intro/img/Code-Preview-Config.png similarity index 100% rename from packages/mermaid/docs/intro/img/Code-Preview-Config.png rename to packages/mermaid/src/docs/intro/img/Code-Preview-Config.png diff --git a/packages/mermaid/docs/intro/img/Live-Editor-Choices.png b/packages/mermaid/src/docs/intro/img/Live-Editor-Choices.png similarity index 100% rename from packages/mermaid/docs/intro/img/Live-Editor-Choices.png rename to packages/mermaid/src/docs/intro/img/Live-Editor-Choices.png diff --git a/packages/mermaid/docs/intro/img/book-banner-post-release.jpg b/packages/mermaid/src/docs/intro/img/book-banner-post-release.jpg similarity index 100% rename from packages/mermaid/docs/intro/img/book-banner-post-release.jpg rename to packages/mermaid/src/docs/intro/img/book-banner-post-release.jpg diff --git a/packages/mermaid/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md similarity index 99% rename from packages/mermaid/docs/intro/index.md rename to packages/mermaid/src/docs/intro/index.md index 063ee9ef9a..c65ed18306 100644 --- a/packages/mermaid/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -131,7 +131,7 @@ erDiagram ``` -### [User Journey Diagram](../syntax/user-journey.md) +### [User Journey Diagram](../syntax/userJourney.md) ```mermaid-example journey diff --git a/packages/mermaid/docs/intro/n00b-gettingStarted.md b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md similarity index 100% rename from packages/mermaid/docs/intro/n00b-gettingStarted.md rename to packages/mermaid/src/docs/intro/n00b-gettingStarted.md diff --git a/packages/mermaid/docs/intro/n00b-syntaxReference.md b/packages/mermaid/src/docs/intro/n00b-syntaxReference.md similarity index 100% rename from packages/mermaid/docs/intro/n00b-syntaxReference.md rename to packages/mermaid/src/docs/intro/n00b-syntaxReference.md diff --git a/packages/mermaid/docs/misc/faq.md b/packages/mermaid/src/docs/misc/faq.md similarity index 100% rename from packages/mermaid/docs/misc/faq.md rename to packages/mermaid/src/docs/misc/faq.md diff --git a/packages/mermaid/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md similarity index 100% rename from packages/mermaid/docs/misc/integrations.md rename to packages/mermaid/src/docs/misc/integrations.md diff --git a/packages/mermaid/docs/public/.nojekyll b/packages/mermaid/src/docs/public/.nojekyll similarity index 100% rename from packages/mermaid/docs/public/.nojekyll rename to packages/mermaid/src/docs/public/.nojekyll diff --git a/packages/mermaid/src/docs/public/android-icon-144x144.png b/packages/mermaid/src/docs/public/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f24bbae040525bdbe619c81106693f2e39d7a GIT binary patch literal 4524 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/android-icon-192x192.png b/packages/mermaid/src/docs/public/android-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6c40128d6c99c2382b162c034dea1f7e1a0cf3 GIT binary patch literal 5257 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/android-icon-36x36.png b/packages/mermaid/src/docs/public/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..40b1140fa1c1fd11a205c9316a2f517d6263f403 GIT binary patch literal 1513 zcmc(ec~H|w6vr2=g@R&iD{38EL{VEL7ZBiw27-YQfyimA9j1ijmt)KY`6UR!k}Ba) zv17}Cw|G!20vbzd1uLQ$8K^fRP>7(8SDjKtf?(wJN2fET&h+o@?CzVl@AG~8c6YWo zUcj5~_JJEhXgWWdn@HM46T@{1Id|G*)uee#%8BD3Wd7RSA)HG3UZUv4ID~Q*BV^1+ zXpCGkK0-)GN9ai!LfB4(W^48~BrHeB=|p^NawG`=OY^_=Ks5wq05=C#W<#hJ0@UEI zf<O&~5)fs8=9|!U4=!{-#TihPLzo@{R1ls8%5pe-7B1d`?)%Vq1vncZDi?Ym0NI9L zg7r4&_rr1mR_MTR5ZZdc{t|BX16v1e-C!Su<5q~@49Nvxz63AF;M@(swD8?IxN!&8 z6+_x~=(-PkeuA-AaLop*H$jpKZr=k%8Srx9x(#YtAS4rNTj27q5RnaAYv8#ZWTlX~ z2gb*tqz+<@(9sV~*TLEe?L8p*2KpYtm;+up;ENLIybJ5Lz&JqaHi$EVr41afq4py1 zH$rO{FqKg7Jrq{M;1E0>gp>lf+6UMAAS??k?NDb;Gu-`we6x><L_rcl9->Pl_LkIX zi;upj@TsbF6AwRIWBu{B$Mr+MuXaDM&t=d%<<t|4Ym2!zh!i=c$MCq^(fXauq~k*H z<04%ixXtu*_Z<y0`H|sDK9`dm++NusO*$V=dAr|TAIUY3)ESKBUB$CXeijbSH(a9H zZLizCPe*H_pEr-h*zNoIDm}B1a@gI?!^xCiVB*nT89NdVR=m5h{wq$yoNGl4&x^b2 z<8z%?bubZsDR-XF!e_-96{$Ue#jOf+8KrD!$}*~D-DP%udz<ek$EuZV>$5<MZg_f$ z{z~EQ-BUR-xpMuILj$2$W5bHt59e;Ou?LoHA9p(Ly?NyYo3-`m)7TBM6o2+Wf;e*v zwW@fUS?OQDB9zzaa83>OTsyjFZ%jRH+40hvRl_}4*@Cp7BPEw>l`ei+`n98b(ctMt zmOQVNLP3)-$HPFxo)QS;W=)jK^R31M3X0<{`{4l1d0b&X&(k+heHQY<>*~~tv^j>6 z^$yA(WrlYwofOw?{R0VOUGKTCDr(C0yx#7c!0qZ@=3PGDcVUdF$foGcoB5h&3oD%| z1)_0zMxM^-?L1W2H*eliul^H3y&oOP`MikF5%w&dWvY_zdNHkZSEcEsmLj5CkL~Dv zdgj0}Dyzw>`^b#<zdd_m>EWH6JI&R@o1NNrM3HakLqvW?h=l}>i8680ASRv3^kdNd z7(vNQCdOc3{w!ZQ9i!9pZpB~tmq4i&%O%<WE$}FMlt&7@CU(%OB}A4m6Gt+F&}cCl zO|BG5adOB->#6EY>6xqZ_mS+J2{u`#Q>J4WS1r;haTS4K@g%B6j4EiPy}|G&vS3&= zE|<y(#0X)Ar)H#(%<M^d{$@UviwW5Ta<gWED~ZgVgv7~}IFYTv(O*^3G%9J>$u)vE z^28;R6k@PgEP6lyD}*)hC8dx=W=zVHB+tPSJtCs?5c??^S~Dq>lE_CAxdJDTPE)D~ zg<49J2=#K2TBW7^bLF%^9LJd=Mt~%cl^!G!iy0w!x=@rJAY_IF2Qx!(Dyg87^|?m< QGVucuKT^Q0i%8q_CypP#_5c6? literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/android-icon-48x48.png b/packages/mermaid/src/docs/public/android-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..c81790b8448ce6af4a7a307ab7a304e293300186 GIT binary patch literal 1791 zcmd6lc~DbV6vm&Rh!8Yrkr0)FirC8X5<(zP1%V&|ghq^8MVjq}ge@4JR*)hn0iv{m z6;P|VfeIobic{2DK&5O|0i|f!D~O1QvM8IUk4|T5o$3F*bMHNK@A-Y-UFK-`z8(g8 zbUg$?3_N*UKQf||Lsy%eg-tVx$S^g~#m5CfE+5bz7fmDAW)hyC4}wH3L6F#Z1Q{i_ zV!IJ!J1OiDA_#UEL5#zXU0=HbLA0p+H3D}M0CxEQtFx5A3Ils3U@F*<2wV2SIyLaV zffWP@)F4OzM-}j*p}q}X4?#~qG(Urz4<P<LY)*pB8c4{2TeZ;g4BiYw^%HQ71dnKF z?gFw+yocU5aJ32~DS$-)o(k8h;pH26*bc5c!DT1ZwnG0PoVf+wyTK<GvVVrk$FOoc za8z)m65hXu`%Mt=Er<_5T`M?jgO+ZP9fY7X=;(p*3FsdJ|NS8R4%&O*#cSA@2vv{4 zD+ca1fPFaZIt8O+FfjqgisATmcsl}7Ct>w2`1N;q)&~`h5Rw6Tci_TpP#l88*I;ZM z2H(QS7^D|LK{+_>0B#iIm&3bJaNYrju0Zc=I9Lc_hoS8`1gC>TI6Qv^oi9O}3YrTr zG73q#@LLDCMZ))mkbV{H!r<*F3=G4Ie&`#3?pLsOFRV|1rY`V}gXIMH#Xo<X`JAi? zl<@OiN0t{F|74_bkBv4Zv~^;<S)rf&?yY8q)^PBYrDKV;eM2uF#EmvRvKW-Bb%Po# zt@H>ZQaeTL?ZNdm5p8QF7t;w(ANT29dWLiLmyI~9t;xC*cye6?yk8_jp-?K8iEukJ zq_L6XSWGjCjZOU_G2=jrirQvO{X{%9$9S&!YL0HwK8+od*H69JQnJd=>uB7OjGaR| zI=xJa)p(XXB~2o<aQ`VTZiRMfKX;lQB`e2)A0Lden5^>bD%w&_e(9ZuHBDu86}sz+ zQd6_lX-A3-a&;tImhYPGVHs%b&9Yvdo*&j{Ix{n%rTjcSI(j0u#Mum8+DJXsggP!} z)qJ{mj%nOkb7s{nt<w^5J4X4V<K?Nc85(&E&nuzoU3S)4mv5BEGE=qY7}Rj<g-<CN z1JzYJFVK6HYW>b)lheVx>cr|%&RithKz~1V;a!Vvdh#M~!@8Jkr}6|mho{x4F`^l6 z+^kNylwY|f*Zs%ZOZldYIw;BW=&5T$KL1SDt%L1Bm&j2x#O00ptKfOFE%O$b*74|+ zgBWHQwBiP}w=Z*zb_nUZYhb(}_FjXNB#%x>9<vmPa!)kQjXRXQmPMm|addt{eoWOv z?o;W3+|m-qh$n<#$ka}DS~`biP*M<dLY)^gJl{<aNiondibyRBYKb27Ps%B66i;z= zD|am;9gRyLowF*h=-R}xs@$wsUtlGlVMtHbYx9&A7n?Ka{u@hJdH(iXds=?L96m)y zq~9?6OsTLrDtH-M5MUItDp^O{%@H;8)pj~rvC1_~SIdjio2B5(_~to&0$kK4SmeI< zy3XFKCzrnNu`i;T(A0MpYi2GCUBH*P`DbiRr*#%aeTk)XCCA@7c5}~?fRpEQvhpsP zPZ7*QsFz1qsvNVnk|k$BxNjn)A_B)GDx3@m6J;{38K^bGLBM2U3<hS$UWTF=itc{I zzx^*ks8XtsMgF&7W>WWVQeZZDLWELAd@WMph@2q8BQRTAMW`qcCx=23Y@<{K-n_ry zILXo`S%G|es2IbzO3C(6JdD6FK8Z#kjB{|q_9Mn~(gnkKxFS$aAPf$3)z)q6NyhjC zpTC)n3MnC<MC$X*bxFkJ1H?xWiW8CHIP%x6Y{SC>oeMYke&pjLASr~wX0uTii_KxT z$50bVWYz~h>l9Hqg1WjMI_=a;rZ#+#TJPtH$P^(s`E=XRFd{@5Xe$%#P)L+v5w`z) zxvf2p<4g&IC9`LX9b{4|gM*7j5;04}<TyGqIk*j}up#fKySk>7JOS}^_vPlh3itd8 DPk=nf literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/android-icon-72x72.png b/packages/mermaid/src/docs/public/android-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..1866eb50e872df092eef4b880cafaa1d519fd2c5 GIT binary patch literal 2283 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 H?iurMZntb< literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/android-icon-96x96.png b/packages/mermaid/src/docs/public/android-icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4 GIT binary patch literal 3114 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 GDE;5Y#d$9P literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-114x114.png b/packages/mermaid/src/docs/public/apple-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..ba11f97b149eebd6f9dd3c57719255481d78d254 GIT binary patch literal 3648 zcmZ{nc{J4D|Ht3M7&FE;6xj_zS!Tv=?2|QXsBDR02H6H9OJar*D*IZ9$}Ve&22HjU zN|Y@z^vUv3mbR}C$#?pl?>WDI-*bNFp4WYy`+7Z|ulu_9uY1!R>@0Y=M7aO};IXna zb!7SQ-v))S=FIoWS6L41XJTst04<sDpWYm-wX~0=qb&f$$^!s}1^|1k5M>PjBGCZw zw-*3livU2FRPy+YJ}UviTU(d{hrdU8PjxOU!b!HWHRD|2LI}Z?{oMI8006#bWoqIa zJ@>iPopkoC$g_mNRbCKGxCPWLoflYBL&F0I^xN#$Zf)8PvKfZE%+%m&)K!0}z41MV zu%PNlx8RM+4y+qW(OEW;E02VcPNeC9ak$}w*qn#wrFtK-cV(5x1#Vsa@%-0V2@R<i z*wpjuO2hZ7i+fYoW$eE7DLm~kURU<QHuJlH{{rPwF~*ScWtE5`ANB@gO_G2jsDq78 z5j3Ws^c0TrKG1sn@}d~MI-gw`vIz+RRROa*c?bdFGv$&xyg`r!Gt*$UHTyS)X8eff zYz06jXoT7lZ?uCpX8*{z!hkb`jV&(Xf1LESF{XGh!@PLV&$p_@uFWvKnYzrQ<-D<5 zr3SQ{X*HBCMicd{@#95%jnM$WlPw;eXJU_`Lu0J$J)rvOqiF?;_6Rm(&TaW^Yo;Rk z=tHMrYtxbx^2f^fY5fY$Gt5ZlD#Nu?v5KSotDmm$3fmLh&El*9Sq>MTpWHjguxUKS zi=bgs?qWLh!gW)535?+ur?Q`1`?tR85_rLo>hLzb3VD#jt`8#fRtmZ48Aa!f4?+dL zQaCB((kC60G8ecXY}1KI_P$#vKk8_<E5m?>D3%U4a2T$E3JCxg|B6b-LCm<C6R&-P z2`&G$-=Ui$lZaaA5nQa#4}Lg&Co_x@2Y0pSJ{V%=aE!KRnJr~8?@?-nT3e+Af`;5_ z*(JWx{W2v|xuBzsn)0x_Synhj-<+&VZ5r-^?zRZ$Pu7K7{ZNVhiI4P2EiUB<9=zSK zGrZ~}&aMM0nvM(9(`Ywws*iJ%9Y^Gs)fY9Nw0iTlrO<`FfFs~URz65p-OINsZo&zv zY1W8py5_V>@7+DcxS8eFpK9ac1l6_|yep1*H+Q$?Xq}kqxnI#7C5C*f8>Swgp<?JW z5<7Xvakk>@(;l#CJK70BW}SFUi-nGioA8xox*jug<Kv(frAsp4#IbyiS=Xx<{Q}oZ z^V>;n;y)x)u0Atku5@^PbF3Cl7X?k*(!{Fzx;IQ2JNJ=FJ%@hBZUwZRUZJ&VntuM( z6akjX=a^1lFG#R9eSbx~Ly}@(aktJ>bc896|0Lq1JS+kKN4?xjX!Nn@P)5$76!eU` z!Rx2xSz2vT-1i_Svh?f>tylZ*s_oW*JK{N3Fa0I@<VuY!^G#Z_GGD=1Qtf#Y^Eu{7 z&<0w|C=r7^+GauU7w3{yUm6NPuZnhlm5**ZW_TcQN%R0Q8L&FvLfVh({2(u4D3L@^ z)My{lP8>`VK^}Fi-6N{Ezp%{J_1lwk(HC3T74OyI%I4j==I-8~%I%`hxv50yn!bMg z5?ghHxa=!n<=Rw+qDPJPIdN(8{t5jeU5<qX)v~(Ss6ldEZ(t)$N}1Xxwsbw4xP@4! zz<I(^r!w(VGqp9zmU<O@-kWO~xY0e$NBuXgw*Mug6FuiIOTO36UHp$ab16S7>N6v~ zDB3?DsSaynNP9Y*A!O82JN6)pcfFPrC}|_gm+&517Js~;thUQ3FpPO#g;Mr_Uus<C z@7v5c1NlYMB;3gswLsB9*k$%guUJ+6$R_S6sZTiwuNwR%6~m>>kmM~C^|kDL?UPe6 z>0#_I=R5D_nTFbxMm<6p$Bul6N<-w_GSpD_42;>4RH1PebfIJz*$>AjE|D*x73IbS z5JuxASI9BptxMUsT~De@R}#W0aD6tA%R7?F-4HS<N^Ke`?=RT^RTZ|}(~67a66Nkf z9$;d@`rT}s-7!q_G<Ahv(IWHo;nJ8M?UR?5)?7ctx40tn6Ma6CS|^IlLB|9)ZdtDk z9qNf%S|@L*ChiOKso>Ndc<%_g_cad&pR=@1Lv^jDzTS3v;*rmu`5yGJNl3fK=t#3K zuYR=qp-FshTYLXYNB<1D=u9w-`;(5`xm$%cuZ}K;_O0~}wzY#dqQjoTd=)i3)O zd>W4gds<d9$3<Mnwr{%=pOa#`9Bxmcv2e*w9%6L&`@yN^gFqek&!>G~NFc>-dpo6p zul2~O9Nqk<1H5oWY)%D!ZXS5_F{bRY;~BX7kLSyY@Xo@x_OIwqM(b`ng#>)YF|_XN zg~2wToyoTxt@tg?cYL^Yk?G}uP3St9({N_}Y7=<)u!{CoJP9X@?4=7?dS*|T)Kk;x z11V%!)Fkqe1Z~;zeCTT>SCQtE7azE~Cv|wQ_`2vWmP$uooY6Xx&!9Rrt|ZaVw>mn! z1BV7Dzraq1M7R>|sEM;`!d2DJ`$&y^^bNkU<nMZNvW&r)+4s{<ClqxdTf$-^LN|)P zIb(vt&7arBKMe}q;>$7E9a<&boA}NVR+wyB!aNL0dT-&;bGB);h#OvYBem;8ch94# z?J!u-oKk=NNYR+a7Eh(`?242bI;P}-Laf<k`S~7x^UQDYAwR!>yZ2xkZP7V*md7St zPltzi{u=P`wC|qRvAt*L>FCLWiiawk)E~io+0;y*YxXW26;au|wPavvyVIdPrExt~ z@3g_#&##-X{2Y(`X|4V%dXPf);x&y9#z?VOf5->e@WImOfxCI!4GH_ug~eMQc&+xn z`r@Ur2I7Q0Bz1qtE-Ei4Z)jE9az5;AZ-oKm)|@;hXkpjJTtX_RwntcC03Z!K2u<8K zu#67B5uvHp7uW3Mp;FeNy(=r1TJ+s^d*WG+=<ay<*43W7<?YJTJ=+&&<KB4hKeiY& zLL!NP8ME}zWHu(+zp@iv3+t8b)ns%3(XUkOYu2CcyAE1z%96&<brfw>*E3VBz2D+y zFBhgdPxU=9%1^Irw^eJEV{957CX<`<9^5f{0(zmkn|uAW)Uy{$|D<ov#-~XrjQ<)N zKnPTL-+m{j^=?MSYB;27laDr`-n<!{CKC8_@!@RxK=IAIoJR-!2CdKfH{==@bX;Mt zdf;^4XMe9nCCBDO;}TOv+PyzW?u^aN9n@O~-|rM2T(~w5IgRInP55VDjt(p?`d9oo zBKiAZ>yeLyJDbv$9!Qgc?s4F7j?E7hop8ur%^V9}mN`xerJ4S|vbh9D-qciu8}mmR z5U|a%+S7^~-@@g3v!tJXzlUPpOzHW;2(Xg0{)A}H^@7$a>%{Y3mi)33FL7q(OC^n$ zeOwHQ#>o_H{AlWVp4(89{66J)x|%fjlqHZ?Ayja-E1`ZuUG1hqCpF^4Q-mXOcEe)i zeNSfaNX9ZTVd^NSHHGG^)-BmY((Y+KE@R~+S%JPSr-SPod>A+9VS@+=$o*i!Zr)6L z<Ax(5w3BZRyflWsZ00f%6!^=TsIC4+Mxt?Rl9c2HtIg^fu~q2V@A?Eny5KG^6Hf&e zjzpzUxI`vO9fswQN7SsK$u<HwWG?NGCELl08$0Ti^D2wS1(YVcFXB(+tkw~%M#zd| zj;)WEcS3w*RqlVChA2tqXG6|sgl&0HEU(y%8aG%JKpt4g7`*;0c$+<k6nWyQpa9$K zc!;2bk3xmse;x;3AgbCcT<l;6AeEuRi?O-E;k<w0Mi$b^8)R4_ErsV7)4_v|8*k$s zk-WAHL--8Wv0ufHk&=$EJQs#4BgLp#5TDv(T${WCZl2wmqj6u?VxB60iF?i4&0exY zKZj%|8aaT4W%cOP?_kVe?Cu1l+dRmv&3OmQKeEcfxNp0MgzR!hOEjO|d92zpWx$Yv zs?11}M5E<@NTl*Kw0Meec!E6H;`G&(E2Kmze$>ozC%R<4R3u}I@(7v)PP0_sR$!ux z_bYX+FBHs0{&HI_bD}N+^;Alkc$tO<kN~*@sVlj&HZJS8EP#oima%05uyFssn=83p zQoarBZOZf!1a!V9DwN*0YNhT|6euxZ&1VXoZ8FF=i%F_%GIhJNo~TdiH>_f-Ta90V zB~7o*)zT6l+k(S>9KyPJ>$uxC8x*kLiZiOdCQx_poRlcyIKnnU)n({NE8Pjl?G2c7 z-{SI;61c2{D>?AL$cE*%q|E%R<p=q(f2Ha(v0nQ4W6Af1QXp>pI~mff2XJLY#T)N; zH4?7|F3cQ)u1xoCxaE!+u)YDu$!0EOUvDx2>l033IY14qrlx{Ht6;R9)zq*U3|3uB z35~|0(Ft!I`u~q0IMg?Q81w%NcvIIBSOV$aJ4A#M$x+_n1i+t6CPiRTsDNN^KLX1F zd;(QN!~MEnNtCkKW4~Ev|HxoG7Hb;n6B$ehA!D%)EHnbZR3Fk&|HWASu7br{5(51E z$pA)I&G<stSr#MwN1gvL=L3An{=bpQ2S_Lj5%~kL4G1QXV@L$xf4V}ELi~(c&)NM~ z9b0D>1z@zaw9pzFTDn?G@%$+)gzt|!P64q50FA@t-81~eN}c;7b=J`eAO-{xSVu<% zhmeCp{ZK^j%K<*2ArYwmy>gT$fk066!DtXQweZ?RUtf$a0q^aD*YH-;)zMMYC8)9# Xs;vH?=A%zpI{;Q@cBYLuuf%@?B-v8x literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-120x120.png b/packages/mermaid/src/docs/public/apple-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..05f58d8011a163598d6bbdbaaad9f75916dbd9be GIT binary patch literal 3781 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 F{{!c=pk)96 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-144x144.png b/packages/mermaid/src/docs/public/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f24bbae040525bdbe619c81106693f2e39d7a GIT binary patch literal 4524 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-152x152.png b/packages/mermaid/src/docs/public/apple-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a82583c0143bc8358c31426581fc023e9bf8f4 GIT binary patch literal 4819 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 QNgV)4T@#%eElkXR0O$mp_5c6? literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-180x180.png b/packages/mermaid/src/docs/public/apple-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..752c4dcf675ec2d88b862862443eaca053fab8c3 GIT binary patch literal 5852 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-57x57.png b/packages/mermaid/src/docs/public/apple-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..653687ee2bc48321bb9abb4d39e21b158d3d9c85 GIT binary patch literal 1989 zcmd6lc~Fzr8pc2HA{MGu!76vG7ZAOT8nOt%e1fut)vy^9p{ODG2q}gHNI+Q?kWDsa z5eKmfC@p%mVpU|h5(rSXf-L2V76i&xAP5Q=h`jfs)0x`N^#7hY=Y7xed!Dn*Npf+r zU90g=4Fo~f+S^&X;hDbD)~v!~MSbvNJpF@b!L&e-`{|lWwi-Ux<=D9~5hQFUf}D** zkVSmz>==Sb$O!VwNd!T25oELIYPqW^f~ay`4zU<G05lQM0)LHo=Wkz)g<uo_MnW(a zfpr*oU4Uar;1&lq5kL=uy#as*gIy#Xjswpm@JfcT8!-JA#^lg70N*u1`aL+A1_wjH zJQTPWA+r=7w?NMzj8B974MY||R3W@y2D~gU!_+Lux*@U<EYE;VIK&l0<8yfZ7L@NH zx(FospjZUKW!NtU$yI3Xg+(POmLMn(_*t-^fNSO87!6-b;mtg-)8Xke@Jxor|H1Gi zxW+<9KeW7nqlv&ygYE&S>4F=T@T?Eq<KaXqycmW{rQn|fv-42Z4o%PDm)GE(0`)zx zq=bShFcm}i4H%vRssO&shM76AI1NubprjToPeb_+aK8b#889k`5jiB3!1NpF8-wIK zFf;)X1z;+HtOrnB4f6`fD+4nL<UWG2X-K^b`vRf!6|l~Ov=f-;z#|cQhM@HYILE-m z4Dd4HQ8UcF15O6K9D(*exLXJNg5Zt}avy?8Al#}36A?_#K+<injR01>LD_Enn<1#! z&FL_nRmm~!Z<pWCHiZ#XHiq;nJHK4JwP<l6M|(q-<{amFv%bRr@yMH@Z<n|owKE<c zpI?(XzfN{kZ*IW*9j;dKakRDe&hICy-~)BBJ(Hn6qOsvq%{@G?^=Y_yrM<NU%dTOn zXY@p;`4;up7pUCiWZmo97m0?V1ED<{G=0y_j<<`hf4#{yKC$fI>#Q07(OlS;xJr6H z{9bfZy+fYAo84@0f5l6){sTS!9c^lQab@SCmQ~Khnloc!tSoD5=mzmat8G92$gS=R z9du97yAw?eMtb`znM_tsCzwz@e?qT3DjcM1Z@clZaEp~{g3@N<ERw{@c$(8XV?fYR z8;d~*pSu(vV)UB)m~B*~6(ikF(bHZymO{|;FigF5h5qD0iz#K-uI&T7(bmSV{4Y61 zU8|!;OKTVxG__HVrw8kcQtmf(<tg6}&$>x<ypAc7vt<=0>Pou(PYr$-NhDp)4v}U{ zhTVPnUgc3%lGdkBdQr6}_m7XIVu#h{s^eQz<yY#7v)z{>ZigTLR@gdqQ~V+%kLT0i zv@5gB=dy02-0ZH}P}NdV?UH5+^`mwJ;)ZowwGZZRLt9d46(-L5itWTh&s?=uzZ9kD z?C*2fWMF72W##W#U8u-P)!7~R`A?DN&OLiEo@d*&2h{DOw-XCwg3Y<;z~Ig1$?8qc zjy9@K!cqy9QA0a}BX=h(W+0ER%=J!ZIgq^M4%2&%42Cm}WA1hJo5VVgD@ (Wa- zmQeP|xRSpun^4o>ymhj6l&BJV#4LNimt@0fvzgTjSU+Bp(<tZ3Dh^qwo>{KZ{BOjL z*yN3NJHpi$Dn~5xjnF=FX_Xes;nhT+!}Yn(T#12w;YrH&cy~vU*zxBE=j+EqqH?|` zdBiFgnfiI-(S+uOw9;#R%6H!|YVP%W%X7^y$hx%d*w6oKRYz#X#<rbO6hk$h5%#)_ zd3cj|YMoE*+|gjGXGpbCze>Jn^|HugYJ%C+^lAD~U}mx3RIYLNoW}aEGIEQs;9JbL zkg5>ffa;W=v$~9|P6DOqCXZ_qsIOeLR>R?{K2dfW|Jpmm3=c7vEyhqz5QZm&N~ThY z6f%)w!lF`93I*Lu+f62;WO8)3OYI*70wI_0d*-hN>k`MJae?m24#7fSaVR?oL;S>I zQ7}p(@da!ihBrRP-%uFDt8Du$A7{6$uq;1`zz0RGg&c_h3lO8I3yuaOlwznL{fV(( zaY0c#jL-8EBNRH-+&j=6XEuM}^BZ%N&lUTvAf0#g*5HWF2MCidz{F=n81n0>NTLAV z!O|m6fAV3na0;Q&Xf(2s5sgk8h+3b3BcFWWbC@57A!JL-tbzlR_|lONmfYR!5nui( z48J-_5FkD!<dJ;YA$*Q7Aei*~laq`w45M-=M!v>09}{0LmqN#U*c=}tHkH0_AC-<7 Z;tE6jd~0l4r1%bqJ;TZRuI0&?{{u}q)T{si literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-60x60.png b/packages/mermaid/src/docs/public/apple-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..e27a4529bd3d898bd69fc0476a80a1d16c1d61de GIT binary patch literal 2047 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 R$M?w$1k1$ISiIXc>JMR<`dt73 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-72x72.png b/packages/mermaid/src/docs/public/apple-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..4c05a3c1bc9d842a37d121e169bb9406d300c200 GIT binary patch literal 2283 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 G?7sn-6KmK2 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-76x76.png b/packages/mermaid/src/docs/public/apple-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..4dae6668d49d8dd866a4fc30f807bf70f5dcd607 GIT binary patch literal 2421 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 O84wGaHMPjZHS8bSzsFDj literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon-precomposed.png b/packages/mermaid/src/docs/public/apple-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..620c2b691ddb8dd383b9642ad23c437ae9d683b9 GIT binary patch literal 5452 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/apple-icon.png b/packages/mermaid/src/docs/public/apple-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..620c2b691ddb8dd383b9642ad23c437ae9d683b9 GIT binary patch literal 5452 zcmbVQc{tSH_kYh~hGFbm$i8n4LKr(?ijXE-nlwoE?1ULvBKsB<Aqt@(ge)^iSt`lC zWJWSV86SzV{d~Uv{hr_R`~C5I?sD#VoqNu6&v~AE?{iLyt&If|A%p+`0BL1uW`9h{ z{|;u@@oYcm3qK}MFJo(C0BFc$-M_|k%!^;Qw6_L;C|Lj?BmltQV~DT<0HG)VSj7Q= zZXo~&1U_oFLmvxZ?&mDbfTMp~Y3H-tV+0;zWo-^$MsV@7DtozbW&i-Mt(BRvL&VIF z;>fH^<Hc_c>0w)rLU=wXG}|0%H{qYgD#RO<MrnOBEL~LCH`dq4E3NiKL-V1{O~uM5 zrJk<+V})t04)H-uLAIzytwF`tBkLoz*5RMmqIZVHx+h1Bv=7?%LLWyj9K_VP@mY7r zZiH{>F9gTZ!;d?gO2YexFe>podl+*d6N+1q?H8yWLI<gdKd)T31zT&{f<)l#;MYWJ z@=dBzDe#yl0{4$s(_N5kv6$!E3rw|?D1D+U^(+;G6CYu^@mcb68J?TJ3W^}6lO=Hy z1)6;``Sxz9PJeFCbSbNVNo^M?Be3B>stpy3lOHK--YCflax7(j2ls>oQ)cgN);SqG znHKw^44Rs&2Al*n5W5N}rl5dP-9~v#&KVLY0vVAz*ypd?^hP<RW<YGJBI)LqXnd`& z<t~KK4LRiZ-c219k|t=9w*)<}EA(%nhD!W@!8M%$tpG(MwqahX8ZP9bfrZ_u5fcN% z@L}^IP4(LpT=Z|%3ec5Ae`ej~3l!siW5+w`3lW8X>9L(IY%|6jAKMUq3hwKEh9QkQ zfxMzfDTnT=OdP_lr`n%n5#lABJmQp|A>4086tbiR$5f`;a|Ge|8S({?KJ@Tn@JH5; z;DgbOhp=f_N8dJC>BiT~@zz@0S&{6fS8EPnN2Oo5$Qh3jUGRQ4<i0j)czav{lj=y# zB;O%Zg4;~p=Hv8{wV>;#Oy@-X_A!Mh@)a_V(KEcWP4U<d@Hfy1>n;*Cu{|!2;b9P> ziEs*jwj+5h=CiluqlJEg1)=*^3}5Ofn>#s#^va!_(SB5`{YVz@-WSFBn=bCVDK3=D zgP!U!E;#Dlb)0<}8`(&l{gf$QpL-HOBSOOb+R7_Z)X1mPQi^rN&W!iIUBsa|27a9Q zI^%9`rLpjKCZJ~^M6|R8sAXEq1jVk**qeKU+QA&S6$ib)8^*VG3M7PgSw<$CD^o{J z&iARaC~Iv9kiDe<sjS<v<^vA52+?Y?7TkK2Tq`0|E9A#P{xIEHxovdmLI$u5#tT0w z$Ln4pC^TgXM}KqZSV|D*XdP?zNFBw@8JUL#+`g0i7)3TK?euxhTbVByzmD(g-HH;g zJjW}e*aWXHx8@fuPa@W<*ymwo@2{F=Bs=)7EzSs;dwamZ2j~jdGOX{#^0ODHk{s3J z)$(>v^id<Gtj-Fbq*(>25`RWhxi#5FhD`6dD154Xnd~ckF;9MU!c?h4;gig{oqfgZ zvrMICLVN^nZwCNVVF!}`@4!HqAAxtN@sT1H|8X~_E>2h~KqE@_s(1so<bK`uh)uLZ za~x@a{{6R8J0HP|n)E5qDUOkI$F3(i0zCM<v=)pRq&X^xoVv59ekK+?s92^8>WW(p zcHphEu$Fq^y)x~@Ih2&~qbwMH<^?3=15x#4*>$~@5&oH$>>ZC23>AkrwA^u0(5ug0 zbS&T`>Key1cc$iWXBR6J<q>KRcm!54hlwT>C*v$6*7d;Va-}uSq8SLugWUnx#tH9{ zd0pe9l0dtE#y4)SOxOv<z6~3Z-JAPJc}1e5Y8Pb60~1_8f}aDmlDx=6IbWono&5C^ zcHfP8Qc}C27R)Z191mfP+f0$pnFZ}b`(pS^gR8uMHTbT~Gr@L}hTvpU>?rkhSVBv~ z(_(HvW;5B0JsqRqnWtX(sUK6KFgHLuEuM#uw8vSiK-gCy1qp~Ka7_+w{j%IhB4LGM zm4*L?Cfh--t>XlPxLijrMg3;$`7!Re<oPW3QCOh2VdQ+6%(^c0&qLbQHYqZbSsKWF zL8iHU7ikZT|8xh}!z>u7_G@)UT|e|3dQX<>2w-Jjs+hkPbRE6y_9_N4@gpl`ve9}` zi<l;9*S{m7#0uNa`7^bBf9Qsg4^5Y4!X$KVdt8s7urbuvthq8KS}z2Pyiaa9Kn2L$ zZa*tK!r941*?CiZB8Y1a&0gQh78UB<xreKRYKeTs0xVZe9@Is>aYFqv5gZlhDuxGl zbE>WD38ibo7E;e?xD#6M@|?Xp`?V*7r*40Jjl9W>D{Ja`A07=;?E+#CRa(8-Iy#}t zFOsgyJe!bKPkB&yKxVC=T@XUj_0TX?nyGi&+G}otyscgJ`Ma*69VJ9c4DRm_RFHJX zX3;QL&0>*;AtPpGhQ(i$HT;UoX7r?k!@$bMF8^x*@+W&s=|0V%D7i-59A}E?`#t*v z(iXM)*FBVbU7Ba4Da}F~b4CMb2sgs+`bgel4?0EYeJjJg<P2zr_`<_oRW>&+(|hBa z)ty*pZ&3F}o@mU)Am?K9m7SSV78@(}ggrolQmVGzI!zq5q5KfGRb*z&Wp`Tl5tLm7 z`F4&hn>&1#Bk8eqft%soFfoOsf2v*^!Q>V1JdyF2!*72oQ<;m@Wcv;|+LoxDi5>hY z?p`NdJfFjA*k;x9z}RDhtB6^z-)|C^_Ukawynds%%}+#!Q}hUQ{sf0#qs@gKB%<pS zZ5aNH+`GUM_7!e*Ii&+I!a~A%+gr-7MTO>Deu~MJ*^vi^cI7rz*w&Fp5gc=&>9quS zQ6pw5W~!Nw;3L4iMDsHg*LUQM8J`Kc!D{%3S^opi{guFmy@7@Rj}rBRFu^Yi+b1#U zU*-Ck5ajYF(ICOnQqI(&vU3?eK0>m3tp4wFt;ICHB<d&6u}nI*MhT*Czg}8OPP~$g zr>Ftoz=dx@kiE=7C1pX#<Q4YJFDl57`FbJq-xxdL$<H?-zVpI&%~8y$0A>(3<ThDw zx@6Oo_Gv@bd?b}e*GDFJ>vH%2tPI6<;hidpFkCjr3g9Jt=QGH2d1ux9nbEi8Tq9!F zrUF!4^-Lu7joD6W_tD&Uqpph2i5=Ta%dShaIOpmzdb*z@-|EK44=PIF1(TmLjC*?c zaID~Ty8ydLuo&8sn++6kwjAtYx&j*yd><G=#a5?|aIZnT5@`qco>@7({{=s+f38_8 zfs+kHIG>934fQkstOk?K%&&Oq_}l4Q`h&!PvVicy-zTRFMX?$AJvDyyb!XD4%mC|E zf8+~cXpVQ}q$cBs(q{o032RcnvmhBA+B^JIzj4Jo{_}eL^^{G#KJGyE*#FGmYP;X9 z8@JU@W|t{*bZLY9MSlDpe2~mk;A{ER=(W}|FNhmhgvA_QT1(<}i5I0)4i<7|blw;7 z?hORecVwY*ncdaAqPgmt#y1b3R)BbH$YB9_DdqG%+5zotZmDUlcdq-w;O{qkvZl}2 z>t8(mQ#&Qe5(r8;9OG05MGRb`nXg@O$r1GzlH&Q=@2;}c#0NqmHY;8wHDY%0>Ao6B zK?*l;cTXcOv{kNGv&m0tAo$MS=`VZ_(EPG)w7-ba-u9EE7V*GNL#Q24BInIDq}A3U zt^Z3;ES6ziB=W4BC^ShAs1NwF=ul@I3O4v_-(m#AZ@<!_@Br^b=Qu9E>;HZpw`ghQ z`cmQi&sopjt5?Okps)T;wXzoYvf(#4jQI$3%FIbp$P=G)qo%I~=QKc3Vfs4>Q#+OM zy?xpBDmEOO(A!z3e)<B@am+OUo2?y7oSWi9Id$UD-`={mZEdJeWy_&HPes~wS&~2e zc8ltb?2n(Bp911K2wqF4obzPCY0HZXhajJ8J>O8WOV2ws9k9LYZ-_q+B;J7mg-3eP zL9JRtkM70N?=gRH9c#qi+@0G@AFl514v|ux;autGFcvVfHd~qZpv@`S3gn*cebZ^v zEz0Vu4NgkLUkET2QOO>Rk{i4Pyzh682slxz6zFFawK8wb|L$hF<OD`1*X364<Da&{ z`Wtk)uZNWG5~|A$HW6L+xLpVLfg&>UNohdl5{STGFQQ2I_W%orQP$0G8MrVrcL7FG zIhDe+gKrdN%(&y<?JS5wZN76wZa+S0<Ep*tw!;qG>+NOJ1XDm<?VGkiZtq4<hFV~+ zB}+8>+Nsc(o{VP32Ybg3iPPy~J<`B+>B`^V+7`JJi_iVVFs=HW8cJ)8JLHduDGPCs zkVJ!lpv10y=VeG;Xp7^yPpYz&LoZJJoXJ^!Nk?^@w!qB8(W}9-G;ZLX?cPuOl+y_@ z23gt;6R@81-Z~xo*&_C$@l_v-5<a?LFYQ3Y?x-mvBl~YmU1-RZ>-$mEt=KflWdI_a zeq?ISSdTvb{C#}NQ<`&De)oHoZSDE+*nkLZuV#Pu#&xN9MJm({#Wyn+MRb<sD>@Am zoB(kt$^&r3a`Eth00J_kMHvpKSz1+@l!S8mg9vDXj4<`PVJ}5;asqE~)i+VjYlyNa z5wOphumu_=s^x^U)9N3d2>Is~IX5o;3f%O>X7#;cPT&!@F&gxFBP#?Vqwk2@j5^^F zu7~EVV0tG4BHYD&g0bY<bYH=`<S%D4Xh&Ge*2d7aq!VMi5<JU**Olz-@x{1e8Pl*S zfgx9WJ7mCtxujpB`3c(AW2<ErV9D5Tp7lb9YQyR(l@E_VTb!f4+UR8!8|+$V^WD$# zR<-p*bFlNKEVO?u9b5iB^Qrj~?fA)zxRy~-x))pZbsw4C1_r)2+c=PGnMg5)`|F-o zh9BnW)99M7jPK67^Jw`q;>DIQ?bvrA#}P2{@wnCTg!5-HR68@jF>z3VouA^vivMiq zZQgGkwkEa3WP8U8_mQh;#BYwtu!|)sG{`SMx;B6Omw-XS`0O`2+xE_yq%IhUB=L<i zesfPnGK)UQ(TNUvXo3cby@(eu%yY<LZbf@>rw7$*!6M&X^(DqVlnGsXVtGmA%RXDl zgW|bf;m)Uk9WQx6>4InO;orJpolNmdiqB~rkKdgw82!hx?O6NDzmeUzRwS?#5awsS zW_vPOo4;p+J`_~R6&(3NdIk(|QA&ClW3%?3Wpg*{9H#dk|4~Pnb!^^27%|W((I0PX zzue(dcH?+4oGW#&X%nJIxEN6)vbaBpwt6~r8o~Z<^=I~?<=(zmIrt0`vW4w=#8;2B zIwhxAahE(1lb!y1Ecr|Nj9{O3NwZPTclE@~%RN2KtG~yH2<myX6rH!b%eId*EKD?S z5SbtJo>&9nGrA&(qqQ?m<^1UyTbr}1ijC8+0#<tjt3%My4Z9z&d2G1_#pOlWfyR>Q zltDjxCW*9Ntn3!N_wtLEn*XB4QAe3wc^yThhL@a&|K$59fin?Q*NC&nH%E}mxe3Ic zKrcmHt^z(Js@<Z_=473mx?-=&5}Ohza&d{9&&bqKX<Vi!#9(?NhOuq%<KUtZ(+Fq3 zr4S{<WU`>*Lye!U$i5Wj4gpark(S-xWFTEs&UcCApFClT;o>t=-0iBs>`5@HGxOfv zsO*fxQ~~xBaRsKgrYMf780L)p8o=I+DGSkWIh}RAvR=iza6UOluhUhSo819W$VT5+ zW}|bg8`jW1o-GAiGTo_#!4GaPMwr-(<>lFdDlllSeI28o`z9@z!DGvBW~g3CvbPm{ zsw&bDrD{-pg%3L(6{9SH$3h`fNh+Q87wh)#P9f8g%a`x?Uj_b0Zu0*EP9x@h3cc~K zwZt99*4vPh{YG<>SFWWWJEmBY{a`OT<DC&_Q<x`VwUxJDU6=GM6(N2pjo4|i#5^wk zHFC9D6U=9H9R+J_3iaUD#r_}ZlSi5bW8ySlWiv^XlTp5tI_mBaO%PQmH_N}pA%Dv+ zvHZ+p6<p*$3o`t7B-wwmKt2_+Xhekjnn)RAe#wJcqRBT)N1HWMM+es-VNv9$(vkl# zzEFfdF8Uw1c?$OsQIX>@51C$HXP1Xvk|*(!&v`;rEDxWRn-Mkdu4N`ODX$Uu>g$ek zM|bu@cVC?nCp8FLCE54%Da(P|Vc=l0JGLXlS@)MKRcUfU0mHf_YVhzTwkrpW!X4<7 zmGLQ#cIw$N<fBE}Lp}{c1#tdQLvy_E3l!VdVsGbs*Kl!9$>)A1`WtwAj$>jLf=+&F zsZ{jVlPZHgWj8yZqX2ACTyVDuuZTOYF3;t?E4T|;Qqlp>H^FjoK{F+|TtkSo)rujZ zuD%YNcY2eZAtd|!Y5L=e4C_t)^Ak6z3q<$H0ws)w6Dt~&XKUfH_Y!(sx{2QgZOJmw z?OLS?_aS6M>h$(5uB$L;LU>jAp8G$KLB4zpX@*eyRU;O$x5T*qSHV_=y26H!o~znA ziQu~#*U67<x#VeOyb)j@w>Mih{rhX>6!#si03jnWsyEfYsjz_CH<kF7f`&V!XkRo$ zYA>fk1z&PRFh`uIx)qanTpCFvpW5v7YCvko-srogs}(LJs0-o%x}oi_yPVCd-{?}+ zeBD+1cV&;J^A4-*=m%3B)wqHFLKi|D=&bf{4PKe|4&V(!%%k-_SdDw(sS=w%nZolC zKU%+MU1a&zK*T)*Ex_B`x>zyN)8OI0sYx>L!*3cw2O#U8oqk_>0X5Pjhy%<+6qyV+ zOM$`(uLuHaep;qI5586J{B8Cw*mHktoxBd+b(16I62w3}1l9VDtm7h8#obvr`MIUe z<5i7|!b0bq_ro7**LmiP!+X!*5bBby;E=#uuk+56C4KDHvXCwt#CdR^_2F>SZQ~g^ zlGe^OR6k*XRgl${X$cG=mKa5gKbPrpVbL_m3A+ehx4>*GLkir7VdodmOyCNhJ)=#I zl&6m@+c5bcOTGikCO81a+{(O?*otW=Xfb6`Hn2@{ke-I~0<#V4P{d|U4auo+pZ;L$ zBz@@!wEjReLpXV_|G3;J6JqWdg1;8xp?m$7$1wraQR?a{YA6*oZ3lIAT{Sgb4J{=U mN*9HS8@KKKZwh_^cyG_h|6PIo?n>OT0$^osV^(j1i~lcY8`gUO literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/browserconfig.xml b/packages/mermaid/src/docs/public/browserconfig.xml new file mode 100644 index 0000000000..c554148223 --- /dev/null +++ b/packages/mermaid/src/docs/public/browserconfig.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig> \ No newline at end of file diff --git a/packages/mermaid/src/docs/public/favicon-16x16.png b/packages/mermaid/src/docs/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..238b81faf7fd711edb00319fc8f16625dfe3f03b GIT binary patch literal 1038 zcmbV|drVVT7{CuO6j2mo6dzI1fR7;Dhvh<V>I5v%E3_-6MU7MG<F?$5_Lg$M`2;}} z=Y$yF2L9QyEym3RqA`F9!s07nF=QjeCB|3N$<#zGkw^GEH726T{@Ka-&X@1|e&6dH z((AILBIidUgrWqE+CX%4P$I&}yCQK$K2cvd(zWRbHPufYGlvs9)~YdR5!$&7q00RT zjSyF*AE7cDp=X5%@uv}raW}N)sYu|VKG&EDocsUWWEobwK;eSCYS{A=Y&!xf3<??6 zltEz~d{qS{XJL30UJXH;7d9P&&ELb-UU)qOZ%4p+3XC=2e+lFaJOR@I*jNkqeem=- zq?W+BPPpQQ_IvPiJEW9=wi0d+z~~s<=!cvN$gP0ZyD$!Lxf|B+1${L<8iWUa(Cq`I z2Ri#8)dMX(ARULQU%+t;SZDgz(-dUcnb@GqPq;MFwEW_Q;WwjiUyq+33dG%9dNe?S zA(otM^~yV!YvPD884KFX$-c;$bEd9xY>uuYt|md9Zk*d^^7c>fq^E`VrVZ#jrX&=v z7;MfS*i{b@8#+7uMRok*oRdALyM*$Fvxi&$p%(e#lPm?ZW;N{o;XBpQTw&>%yK&8b zdo@p9)mVf(&3Whk+8??}Mm+^>Vfe8jBrt*|tutjUyP8(FyaPve`^KW;VsetV{+{wp zV1cH1d&hXJKMbovvg)t7xyr-CVZK0l+p+MF!DlzSTG!sX*!xmm(%7Ohw>Q=<+7r69 ze%^`uE&YFx;p1`UMr<=<k+*t8q7X~7Y$8J^GATxu<r#)w%_Yz@Ptz5D>bpKkaLP8x zzT>|Wrq}u_NJ4C|L#b@X+sz&k6=Ccy<ta*XnjIn$$@*=Q>~UQ2E^H+1+#qW#Dsx(R zUM*Y8oT3Z!yq=(?i1`)TsLvQ7ScT^`qU0#Th*7d>TS`oXiJ4I61G7Q0;i4eY_uG;P zg3OzMXeFnJceq9Lek#iCa;$AG(0x`%Ya|q6IF6$g3QoyA+#7w6ATuV^$(MGDh|b73 z{^OVbl2E~fkjWq*yHqTa)hVY77t0RHZZ4Osva6K(_~lfxD2l9=QP`6?ON!lQW0a!B iY_%xNtTHu~Rf<U@BZ<rxk=1>jbU;F;PJJPxu<9Mpo~<GP literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/favicon-32x32.png b/packages/mermaid/src/docs/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..7df5e64fcb52963a16f91ff447b374779ec4bb39 GIT binary patch literal 1332 zcmcJLc~I147{^}(k{}J^&>U^RsF*nRV0T%5O0c*Ktgu9|vQ1F1yZm-pU=P?IcLFAt z+zlAa08SWX5F(-w3djHxn#4eIN|SMnT#_6@#F0-wnr0$r`m=Z5=Y8gVzn|xLpYy&x z9{UUr8zO}E@jbbIq_@~H16}guR%LgSPEXDea1gpyV6-jP-w~yregcFN-$W=i4WUi) zDRma17%D>ZAqZim2p!av-+J!^LOTAw-a;O*H2=$HM*&j}4k}=%fE^7fRnXc8Rqb&8 z8;}+PriJWU__7_^`XQql%9?>(OKWiB9>|NpQ3H+lV0jH{x`3gE+$-?w3KZ6Za}2n| zLh*HY@)Sy&Af^H~w_$S&DqG=13@|lNbsM&}VSNKsrNB>y(J9#2g1kET^cwv55V(m@ z)BrP2AUF>s1+cIT@1BK$acH;;SG(a<GCW>_)pc0=9cC9HsS@TEL0JNW6A<|s1Y|=0 z&mc?(x)LHwVC6SZT!5RskY5Mo&5%_C;TNE(2O4|8F)DW`XM~*l5yH>MA30UbJbP5` z{nG<4Y;2hM`Sj@1wLeD61|3cft-k%sbR5a)NW46_cD-X9XY#U_;0t(rrwtF78`;VO zjq^$Q13s4{WcM@{iA0^$Lm9ezvUSt4vy%n$dqk!lM^jDA%%apBU+#BjpMi~+-&k~7 z{3C4<WpQh@oN<|F@L)l(|Lb#Ia}Abx)8=7WEoPNXvBv!q9DCzQUWKG1^N6IQVDwl| zsr7J>WxQ+MORtzLjrT8kT6@<pU(9sB)BRSxrFBv9{pvY`kgxi<vY8tpA2IbBTy1Ra z?IK>t@1Bfoxm4OYe>i8@k!8ZZ)!55A&X-&i#}(j&OZr6WI^#^(MV;c;U%Nk5G~jS1 zw|Y7-H8HvJPKju<@OHPkj^|3o%(rnL_gZbV3H3cg7pv2~%}-uI>=MVV?Q;(U^(+d~ z!-M1L_Cv>9mp9VamqlM(Jzx<u>Bi64+><cXd0b&(>e5`e>B8BtO;HqU!*zAW%fte! z!L<>O$EHR)gLdXYcg>C0oZAfa_1%N(SCW!iRqcad^!?)Xh(18YV>zOmt+iI<;NKv4 z?-QY70>`A$IO!0bN~hb=sCG0*A)SuVXqW@bhDyb#)RZCLu73q6)u9Sm!hZ+s&zemk z11xqbXw@<zP8^M+FoMu%F$zVY6w7ha6w(NLb+o*-?`Q?d9@=4rVKGVxhH=%>7$vSE zFwB=kwTN~ZS}4yk{GBWq=7}rhVFaQ%(Oo}`I!!VMcjft;5h+56upMNe*3y7PUfqQV z6iS>((BSB=t|%In+@&GF=eaxrAxR+`i^ZZc7%V5&M6z)viM+fkkG~=jM^rbr;!E!= zkW#=d>9ijo$rO<|`E`m?MMSFQ6qz_yAyuoilz&D}Vd6MWm(mzACQITd3k{_?;S#Y_ i!VuG)*lfBJZcj$oll>XE|Ik5JKzyDLx6Uo(lRp8<VOuQ# literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/favicon-96x96.png b/packages/mermaid/src/docs/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4 GIT binary patch literal 3114 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 GDE;5Y#d$9P literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/favicon.ico b/packages/mermaid/src/docs/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d41818c5b6e0250d7c8083ee5b19a02cdd6a4302 GIT binary patch literal 1150 zcmb7^OG_L<6opI34{+t$ML;1tA5lU7Kzs%aL|o`jUHBN$rEe09pc?~1wn0GzK~TgO zf(t=VM{yy83qe!{L<C0%XGZ+Iw;QWxCLNin=5$xzI_Ff^sqQu=M~>WFBj<e6{=t|$ zV@#nyN>Xv_axq56(p%4G3IvOSs34Ic9)-6c_$XKsya>n=s!@+8KV4S|bQZbLz8^<w z5x;t%41RaO+^CD`w*TsNz5jUkmc!8&wjHd2dirqv^%ZckW95!lKs+<icNN1}1KeDA z`tUi7)Patrd8EwWEjbO<z~Q>5b$TzbzY2q2KsiYsR<HHpS_tiV+UEo)-rDJ|_*aWZ zsr9gWUEj|98`Hf8H{p0YwYEK*lBJ{9xqmdmUD)GZhT!Kn82=8}XI}mGO7i(?*Wu_j zmp=hW#2|VP!43G;<Z{$|qS@WgXawR<Fw<$Xbmy1#sOR4Sm~4T*O6%`rr5^oNFxBdE zM(b?`s*h=&nu$KgJMXG9rktew9z?sGv>(ZPlSyB{+fRZOK|Bi|<?44^kp4f&_Wl(K CP2hn5 literal 0 HcmV?d00001 diff --git a/packages/mermaid/docs/public/header.png b/packages/mermaid/src/docs/public/header.png similarity index 100% rename from packages/mermaid/docs/public/header.png rename to packages/mermaid/src/docs/public/header.png diff --git a/packages/mermaid/src/docs/public/manifest.json b/packages/mermaid/src/docs/public/manifest.json new file mode 100644 index 0000000000..3b557aab8c --- /dev/null +++ b/packages/mermaid/src/docs/public/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "/android-icon-36x36.png", + "sizes": "36x36", + "type": "image/png", + "density": "0.75" + }, + { + "src": "/android-icon-48x48.png", + "sizes": "48x48", + "type": "image/png", + "density": "1.0" + }, + { + "src": "/android-icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "density": "1.5" + }, + { + "src": "/android-icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "density": "2.0" + }, + { + "src": "/android-icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "density": "3.0" + }, + { + "src": "/android-icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "density": "4.0" + } + ] +} diff --git a/packages/mermaid/src/docs/public/mermaid-logo.svg b/packages/mermaid/src/docs/public/mermaid-logo.svg new file mode 100644 index 0000000000..5ac259968e --- /dev/null +++ b/packages/mermaid/src/docs/public/mermaid-logo.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 491 491" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <!-- <path d="M490.16,84.61C490.16,37.912 452.248,0 405.55,0L84.61,0C37.912,0 0,37.912 0,84.61L0,405.55C0,452.248 37.912,490.16 84.61,490.16L405.55,490.16C452.248,490.16 490.16,452.248 490.16,405.55L490.16,84.61Z" style="fill:rgb(255,54,112);"/> --> + <path d="M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z" style="fill:white;fill-rule:nonzero;"/> +</svg> diff --git a/packages/mermaid/src/docs/public/ms-icon-144x144.png b/packages/mermaid/src/docs/public/ms-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2f24bbae040525bdbe619c81106693f2e39d7a GIT binary patch literal 4524 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/ms-icon-150x150.png b/packages/mermaid/src/docs/public/ms-icon-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..1785c0f1a0d6b338b8378493a819f5e6cc89abe2 GIT binary patch literal 4761 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 PD*}MFus5$W^GyB^7T$89 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/ms-icon-310x310.png b/packages/mermaid/src/docs/public/ms-icon-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0051005cfe054935d8c1e105c5e59013ff6e06 GIT binary patch literal 12500 zcmbt)1yCG8)aIhWoy7tKf(2iKOORlTJ1i1d92R$Xw;(}+LvUDp7Yh;+EI=T*dvJ*0 z61dG@cXj{$byrtcS6frF)9>piJ^kKHPk-@R8cKwCw0HmjfDo)KuLA&}3I98Auu&~X zAA71%Crmq8by)zQ=`H>}6bp6z%t~2D9RLVm0|3IJ0DxOmQ`kNL;LQ&J99jSX;yC~S zm0NzNwj@e`ZK<jx4|x3dEAFn$K(##a0;?-L*~KFT;&a=XkfZ<ryg^`jSv|j{lL94A z7XOgKqA^atVl=_9%eCaTu4M_BebzfUJTOx<(Jhg9+}5A6$WuIp{XV7(+;cQ9a@J@L zUIh=|p`XWN-@GQ&0$n%M(Kxb0>DScsyfuA^ov1jEf|+aZIVdLIL*BbS+)G<#lYV=I zT-s3aV?xnIF`uHPlutYf16j!bgaY<4I>XUPFtls026BX-p&iOlRslx)$oPrJ0L0;e zed-%PH@bG>G4vnjSMjfc+Gg*5<M4D}f4(UaaaBsfbfk`-!)zp8D0-y{*zSA7VjHPE z7BHnm^)?|ldOYVR+ayUFEm^xjV}!g5Y0hhAk@%=n+1ng7^CB!@nEnDi^OY&zgWH4V zv=ud)dsI|a9Ht`$#I`cbv(I6JgA4&JW`tOe_s@R(3ly+ID*E-$zyCFxy1@gO9!}^Y zGDYLX5J_b<R9QFF3>E1+qw3n@#a1^k=4<W~V3K(9RB20C<MmiTnh;R>r?b$Yq?`=8 zp)AnMc3hnq+C>ml@M>L=*)TF6&m<$qo5|OcVBqUFKm&k}DSY|uidte0=tNdVP9$>6 z%^ZU&ydhP=mvP{z5GLs|6a@#5J&TIt;AB=kCU9f8W*}=-8+&>!QXz#aNJe6_Q}gCY z2!2rht93M$FD&CkuIHb+B${Oh=+`!JILH*phi8Kb{V@DUI|{Zrez`KetO)+@y%v{E zT*|VJW<C57F9<sb+|T3EH0+>r=e#Fuzl^i@$b*-7^5m2<ZP}j$cS$p~{1Uw}wt!0C zO6>@Oeac*WVmKVp6=CTqv0LcU(ryiU$RqVielB~5!D4TxHKNGqA(jlfsiYd1zA9FU z6-n*;i#M>NBJsP(C2`==NNVYs$IEr}5X^fLR_vI@Vw&j@y|jx<F)}2vb~+TV%B6A^ z$qEf*k$v`^Rz7P{8a)L2V|*t@XWMNkjnz_NUA;4|H|U=JS7=(`Z5T;S(6!66+06Y9 zy$k1|t!DN1RCvG#!1e2mp}xg)p==jwt72_E>8OwGE)<30fP32OgwWqbU!xjt9!n0S zmnf<cKqhU8xVo0m1WQMDE$(q@t3pK?mwonOk2@?k!r5-;YAfjH{>z-Z#c1?MX{-mz zU&4n^8;=~4AjCrNWZD7uJiiP%u-nvhWrr29T)67(8OabuXrW2zn0KjFG*)8)9Ho~d z*=Z%1Q(5c9>8a{B<wwXGhL)Mmw62@y8|%d$DcYuawn>YUwN<P~u3?WU#x1*xQ9qD0 zOowPhA6P#1%G=OukWpJ9RYYoPhS?I%QA%ut?K|MANx5WL3hy|sUvM5=qj^Z<i&mi2 z&@QSCzU26L@p2|b=w0_FXySLZ<g{hr@!K!<oI`mW+HMRGM<3~A(DDf2kbPpeljnon z8ZAlli{<aJp${|CjilPN^1vl&+0(rT!iOHvU|lQ@!m>L|ky)Kdy9;xskky_>ld=Mp zLH2&xP@MO%p@92W9!gz3XAN{#W4m!$a)0z$oK)>GZ>&Wh&%`Aq(tZ&naw!Ja>XLfV zD}fM2#R;2*20sy?is#gF<<_e9Pj6gPC#5p%ScsV|dhk1mirbeMnQP%x?089_iCEql zj|-p*TRxjJz|Vkr(**ruAum=teZ#!+ZE$<tXX>+ih>W-MBcV6@$`elc^v3;2rEQl9 zvg*1gf_as~2@2!X)3nW^k8i_&Vqio8wB^}c#wB?MfhF~K^Qlz@10(3D2_2XE<c6(z zj+az{HNEUlnMeb!$u+bSJy1EU9k9u*0?b!{U|J<Puwrena7x@!T%@mI%Uy3ygb!}< z6V3}@O2s9Ru!YS}OY_eic7q0~tr3L9uP%JUTI9Xp@K0+yX@h{xf}+|ULjq>56GFXb z^Xva$Ic&`($OaPXa+&ZbC4=tt0iYJTzH^1u0bh4qka2^qMbe`B`G@AW^I<KR*o>jC zUoRZW%byq1z+5qg+(zGlY_GIs^lA6B1fYEJZwP<hKlN)3`Ve+F^R2YRl^nhnV3p*L zr_f5fb`>5;@gkkX=5zAa(3&5aAC~^@B{E<%8MI5IR-C%{f@~1y3#@-`#$hs6t&7Sb zH`F=_)b$Qc@ci;AUI{$<n?NFb(M~El(LEV-@`<EoO;lZ;3a$U=-!362oqU2X`Z&as zZH9W9==_=0v0ylp%BmJ`J?^sG?dR83qkU2(gE>CMaVy_5`a~l$8Nx)JpRFd+stsKm z5H^4YkBu!U6eW^Aeq-vUmZRcN;TFD%qP1Fzr`C5<EB^CVYBBLON4*b$4NVfLVwGC) zbRS1~fi1Q1<TC;`m~&~3Lt_^hE|)}xeV4k`G4`2yI^~>+hYkbVlEN)dCb|4u3`$oT z1B>H!-x~FM*KPZrSkPeWbF<;275pR{;PM+MII5UrGpmH8pl^d5{TTcILu~~e#F-rQ zNA*clBTAgdTw|3Nr@gAg2o$zb3nYL3+?kte^2Ff+h)Qf=yq5QnauT}BKUo(!%6LK= z-BPrfww2o5G~qebG@t1qG-(7wp|~q9MrFzP<zTA>slZf%!avJ@USodwAAjVLb4j3% z&;7PZBlQ1toi?Iud&EYMQ)ftUI}PTnK%p-OcZl%wKy1E73;!FaQqwG5BOLP?rqtZ) z^LJFa=5HmR_Z`bMd)}w%O6}jpvELuRkl%kgvFKmO2TcqUE&V+r9BTA7`0Mz(Fh11& z!Rm-Y*~(ZBQ`_(OZhxfmkv#S~YNc@Nh72k7mmfs%`S0X%@+*4=#7;Wq;lT%k`47gC z9_kab0k>7MaBReRcgX>Zeb1<kIb93AU{NhoFjGr^sj|qa99ja_z6#?&gzcaYWl2}< zZ(~r59D#e?It)1`7sk@JB_Np}8%<Vc;OWV`r?kLq;YIRBil~yPZy4})r92(L6dqt7 z2SH%}sA1rulros!%M{?QT+go6suq@Sc$2-rsvbeb(Cdl34a-4pfcMnd<lQ;dP!Dh2 z8TGCPy4!&B{NVMxo;fq8kG-|Os@ey%xAWD}S8}7)-$d6Q2&HCtib(fklOd_z_QTk% zJERz3Fks2CHgPppwy|rbF{ev)W2S+(VIJQn(`l<7%tWq6)2#hjoir0q;y+Yv{L8}` zTc4tp<z|)%F}nFBi-(2*Nd$-f?dH-)KfixyqYLO{u^cd(Gi92p8n_0%-2(4z8%F+e zBRbWn%z}ER)(4NgZB$5mwXunYyE5Fj`=EhCXxN%=?8Ws%Z^OXCUElW36n8fZWo{0Z z$Q7`zqR?y7Akxv`V<M3|b}<@f1<~&|BdhxKDq1JzjxIu2948R_{8p=BZF;?S-2wR( z&xFH;nttZdoI}uMOzfF-KXMTGp+tKo&g}f65x8yia-AG^-H|5CfYnL&%q^7YbfPa( zEGIv9ku~15gHx4%M??!YCrdF>n(#bcJG4z6=7e+kw(nE7n+3%s;phF-FLez{B1dwv z(GXaCxUH{yqTI|=k#D3o<VbruOH5eB-IBCAg;(>%)&7^K>ljLdHnTkNuL=baC$cU` z{OVY#>5_-~mhue6r1ORB%jK`erJVZ7ma<uM`(bh{cZw{QcS>FlNkm_1>Gt*O>e$r* zU!wOsU3MlDhl?7e_(nNWXixhr%(oxw*~vOO(wo(<Y&X6MuH?DktjGcLR99#9_WqEy zpD6cREsmZtpL>0_Xy|9&{@nbP=<R_RIYR0$S@UY+i5RnaKhXZ<357y}FTpuymBcFo zJ0g`YyDH6VF0Z0s#2bUJ{rK_mM-%pJs)M;q?#N0edfVs*byOdALPVR)BeHNI2I<;y zZ9v9lA`cG7RCeg-mIVY?v3A%odW*U<6$X+71jg<}Jf)9qiM1J7Ep#;U%)lq>P~r6O z(e)L1UrQ5VY4KMoA^C(cEsmaM{w!QO-qgSZ!rdA$TGYtM(_`xsc8^1+KG4?n`}N_$ zl$DdR?=Kx1w!Mu(7SkSl!&C5n1r^j^A2(sOol)_NLwa?Ws=>koDa6i>=+i-@n|*_d zU}s|I$caIEYyHcS`Hn0`D88ULp3hyZ9(SKsQ3B7<<*-?>=o1n4%{&RWAFoyl^=QC| zU7fU5IoomtQiAhgbZLJXIiK4wOS`~W3d18Xyk+$v4Nijru5Gh68HsJQagPXKW?DGu z$L`#|s+isS5ZS3rlspnF)}skrfrAG&cc*-^cb#hdUkMHscjA%3cdr*wo(1)qe*3hx zy5|@|b-|);`Gcz`j~I$k5C++knTqi(TH`f)x*bRn8OV>nz7oUd+CSg6xmNcTyyU*V z^uA8IrM8N{|99}AlmG8HIlSkQx5r!Uf4L7yW<a{t;Eg4xvm%9_DEQhr6M{~=%pgZD zANZsa9Q&O7S3hY-RrV?8BEPwcro4%(M1Srm?)hca<uU4h`WgY3nsB>?XXZnIOV97( zlfpd^QVs9zQW>Eb!OFE_*Qs0W-|^dB<*BB=yF<LFT&wl017zVQ2uz$4JDy|3W@~i{ zS@T>9(N;s;a6`?$#n*UL=e|Erqxw28DIt$1$3G+^gK$j{^;-+Z-Lodm!4y_lWlsWZ zy1Tt7cvm7O>icK!_z{yF5{>Q7$#r8D4Rl0rkBoZVbs~_i@<p<SAa(-}-F-H4q~x)I z3M#xTJQE?MexSmE6MROB{#f7C&eCXZS;SY5O~8EWVOeUG8b&UxBfBg@P)X#dq6So= zqtjVbEOdFwBvZadJ(3A=5?dVl4~K3WRS+nLUVdrXa>3|MK0eq4UGJpVwY@KI?GxEK zJni~mEt1m1KtG!O_7m~9Px!Gm<=&JYo=wtn5%n3FUTYRo=D^U9D4qnpLv3Sqy7AW` zJlS<br(>T4Kk;Mtb`cesMII5`bPHYa<ho`+I945mZwH?L8hjzeNULg6^vBabD3OG= z<;i^dlN&KZk3S>jXT30Q{gZ62Tk!^86Xitt>B5=sUL>1^Xw)4Q=<C&3^iPJ?7+6(F zC=xrxp3-D2-^`(OQLE#_JVVChQmbq}Q!kZVdSdLzFHFYg3@kJg*V1$Lwy7}9Vcl+} zDe@h%XJ537eCTjjv@SJJCKs?H>X+c_KVtV<xedH%`ItyMY-#pll%#5A#((nk{TkaJ zCa1*+o(uWykJ+Qm2DejKW`8vDHQp^qGjn-YX;Piq8E#I|=ctq8yRVSOZpT|A95AH5 z`t<}nU6X_xErn}m&Ur-?+px%z7iAkT7M$mkqZAh7BMUjGJKueiSe{<LZQ`HEkgIb# zuqYDn54_c*d>l9Hs95wXBkBy9AC#rET$tt>JszL_^|wWZ!fQz^J&mQh5#AcQx<@{o z)~IkB_EjIQs>Qj->(b~F&_x0Gc@p#Y!>=_%R2kDaytW>yCC33D)?d|99^Tn)j_ZoQ zitH|U;aCi_fkL(nCf2>v8KIGi6?RaFRlBDjyD^pal0~RRD+t4>k?OXg3I^?&X)QIV z74eB3-f~zqbF+|-4`<BJXs4%f{X4T{pbI~cG%_ApwI&|UYYgAQTIAFz;B=yKuWOod zEttbhD|zMj$VGXP^;O)ULm#P}b<{%&vG2WV{^A@YYAE|hom6Ysw!Vzo<bePwiDyzO z@%>mQVADs`y^iJU?_d?~^DB<}^F<+eZ|XSJXkw3zRm^SRjMd$@#9x;V2n9l7pZcRk zHF!Psc@WsUNQ@izYf)qLGea*QaCE2Q`IS9~rLVS&5t$&7gJTH@-nOcFN<xc)sd1WJ ze!HD5m}XVg@b}8Kt4fd3B+p#KFqB<d1o;k?74n=;T+NCq2lveyzET2PMzUw86$$~; zJ($yH3F^qZXhtoup@Ya@(}o-O_>LL0$Ig$z%Nkju$v>XWFA<-42YIkLrD>f0(1$oB zay2jAcA9kCbVcH@k_}$k6KKw{-yGPC`;S(Xw&vkjpLl-2pq;we&bEfrud^Suu3p-) z<8sssBZ}!lHIC@cSe<CNG6(wyxNPv3x4kI!#!S?xLhCCN{UviUe$2U8uTt$1eI_=K zV(hIGb1W#l31XJbTH49yZey{}yva}FgN~k#Av)_2BmPoviGG}>wDKeoaOhG;RG8c! zqD$sGx0iRVPK_uMB@=;XLM}VG5f~pl+Q!?!5iYmHyMph8DtA;D1P<fJj-Pm{uy~nv z{1tyu_Tw2J<1~{oyejqTTPxey>28!<x(_+QWev|^LAKtUyA$)tmD2_Gsm@pZ<hI;= z&289?q}B}uvQA^~A<5A@z4!uitnI~@8u!2(qYo6NrqlbsRh+L1uSiuW@}<hsQ;K?4 z+#1F+MkL=KV8P8z;Cnu;hOeS|61?m>rRR<4EQ)=v-ju=F5?Xa`P~`}rKpJ!{v{JMh zOpmw7%oQ2@HRRy|_Un=cks?-c=~N>$P*4fn8QF2Nsj>a@!pU8{-#$Q=?W(_7<Cb@Q zyhx>~IR04!!~7LQb?LnSltwNG4xU_wiz9v(=>Obn3O?9BHE`YFwL{d{&{t071*adc zX?+HcR5scW{>C3ALst7kSb#`7as^H-{~II64m3uy^t)!dEoUa>8KRSD#vXvQzd~)p z)y|pVnvVfjLXifa49|MTn?L@F^7}5W#%YbK1==OMGOo34PFER((4Z4}adbz0db}3Z z)-l%cl}$_8QlE#XAHA_Pj&+6S>)sAf^4!1ddZ*DdQeBf~2#p-HY}CbfgOR-v!?uF2 zRSB1LRndLQtMu|T0yAa?z<>$3!%GZw=|VRd*_+3*>s52AI3BMnsk}1Gja<4fx<BtU z3i7e$)kt))K=aJf18F@(zgn=zS#|iYOV@7P$NweE-s^63VJmwbY@EGOK(%?!B=jfm zB5k&QwJ76Biz%DgLFKFo(rU+WL8fSVE5Y_rI$zUH6S6R;9!mVQAhogE9gppDI5+Uk z5dU51<@x6W3>Dx<54GPqSC92YENR87;Q1nW#VYH~EaGWbDP(=$5vu~Yc`B&Jn0mJb zv;2GR^+{F93#3*){wL#Xg8e;-Lc$IGdS&|(jD4f;P2!SbHLHiLtA_AW)t|s082-Iq zo}ZWS*4uj=che9Tt#CxQLqXkVrN-IK(V9L}9<}Tq!Nkd*j@UN??exNq>LZd#BP27I zbvrxupb4Ym!)=XdB(0XS@E5`DwV4L4T6bxg;UB%l>ETi(&4~r)%G*Y;@*WRUaMJV> z)+$>o>r6D?3W}8Ky*3~C`+T~xvVqR{Iz(PZ&BxQDkt@!130ckTn!9yTR(wBy{R~}X z7d5A+`;&m3hzAY?SzwpMR>X=A(7<bLJ<s_|j^~o%tlC4vDTmH4FBfpdHT(rNgBCn% zky^^EhMo&vHR<WE56fa(_G^j)m?^|B(Xr3&3iS-RBgRQ4lkfj@D+aZ`R{XFR%Gc6$ z@2D{Ss(wX1QGGlnev)wW7#jaA9%C7H69b5jU`zQJAh);>{G3d@1tdos(IJhW{nL>e zbH`&di#;tAI*Nm4OSO3<aoflxlpW#}!=ZD0G_L#W78jyx77cIMq@7$}nC9CI`Wr<C z>}DYAe36?t?W*~LF8AjYLTUdgG?5wcWYsSRc+4yQx)TzhWB5CBo2+CLt-A-}JlgNI zs(?`I_Q(77bOta&<X(U*@X+78NsjeUsx3$(9N*7xVN0PCGMZ=Lm^1kH6Z1PgYYMbj zlU%qb)BvBvmy&jsfsWP0%+X6LKB7%?6iX=2u9_hGwErUZfaR?j|CbH1DY1TR6=v@2 z&0CCiFC}39;!{$O*XC07fJfA`$1u;K15fryCtr%2>(_qNos5X8!Mg_wAn&TKkW9)D zxm5BuGT|wAMc<0eysoblnYHxfTB|;{fvj?Tj2TDmiwd62*jMwKefUZrvG)ydWT)L5 zq{H%v^$7v=<R+v0+|bdbI$KqN?+t77U<;dN$@k?Kw_s{Ijh8t`l7)+w+|MzL$8O3$ z<Z^CJrHp5=r~pkrR`19n4~=41ImC|$zBbGKNXTOB@>6A(MXVk2z|8TQ&>#4oY6CsJ zv^tS%NuEuB*r6X&4DVABb7)v)5^_@7kRim~ALT3q<8B3>4=qvf_XCu;%b9`6pat7) z`Lr#l68i>XTZN_0PBxPp%D?c$j;LB6=2bi!IK9T5or&A+WjK-PIJCwhuDh_M%y?Vi zK*{$eH0N8DK%Q;8c@uK_i3JBe*Ex4B54gBZb@WGpM430fB%v>CjQ10j2!*+c@j*_{ zB>VUG{YWI69Jrj3%B5y*$f<D6C4Tz-Yd32(R2{Jw;W`igU9|=KfKd-w<_2r6pB6Y= z|A`SOL3|@>@Vb1jN9^WG`>Km=y1TXW0`FF%oTOIkY6cDB@?6uM>m^rxr3ra}xpc{Q zc@1i(!T__gxt<Pq&tyls%TszsxGX!q$va*(fnI|7pS81x-@Jy_50LUq^z09RK%)Fh z_OXsW;Fbe2@<6?fKmm2pobeXZxd;g=7hxW+)s9l^0&b^b;$9tH<NJQXf~TxhCob{d zWydungwX<@uv(5Qy2-FIL7be|8<muuqdoLL)AxL=E|cw;au<SWmbOF_($)@|_u%(- z6{c*vGef7(y{ez1^36siF*;@d7*W^BO&)NYnzz#Sbtj0^(f8cDyT!P&FeaKu&K)s= zwfdWPWs-if2{}H!{^5AP+9^4{T{~%cnMdSe290vNzEbc@P#y{GNqCXjETKPZ0g*Gb zr4e3$Ih)%IW;Bbby%LoFzJ(M^P=LTHiTke`>)Kg{3F*P)1WJP!hz#t!52mv>0l%|U zBzMnx4fYj(L1xFc64Y+_T&f7Z96fhRku(14Zf#2L8+%I&jtqXDy8(K|t$l`Q7u(I= zJcDum%*prd-vDu=-sre%ojo)b%O@IMe73H2M$IhR<tsw2EMcS)@19J<QiBHLdBjj2 zE2esRhZt_rn{ckH9}%|rs&vKVbCL@j2zmF!@HYct*a0@dUiPrBSqm?V$M&*CTGzf@ zGh9S6Ff8A*q-wB(1rghAh8wlZoi~aL#(@MTPUF_>L#AMN<hrT$C#yx?gNps1X%YeU zYPgZ)cdU+||7y@W#Tc7`>-k*zTpNT<wa$2)nxx`cv=e75vnd&uq)YKzDr;v==H7Tw zA+ATiyN_c@Ac=`m<l5eDSLAS2r`}I<)pVG`7c%_tfJpW<%G0&nh=~TS$>4|lI>HuE zK-a9<q`uac#d_mvMRGc(jVvnPuXxL*iwvg_%t72mQPC%0`817+shSvVqKj&9V6jpL z*GgS?2wv05_sx(2uB&s2;cjhC{ejsKUo$W~*7IP8$S$)eCi=v|+PD9`LV*@)as4vj zNBiDy*C>vuCOVqbWxY6O8>c9i@1mueyq}e_XO4S}z5lNJT0jGV+L(ykFDEUv9<?#I zh;!3kyI6Q$J^F_ArwTvO2D&3xUKq!rN_mrMi9aV0`I9-}U2^Ax*7)*v;CWC`Ki9jw zg6Fte#@{(giF*v1Eqt{1K9FOt$2W}qWcJMaN;&Ry7t6P!adBmTo-#0gj9E@OTOIr> zxw*JS6*(gu*6{U$EMiXadbd6u_pj8iIfu-McA;S>Dv0MD;z{$&t6uCYyB|W=PfbLC z$P2O|4`N`J{xh10FYwB$ktSYIp=H@}Y!L=d2x@iWSWv?%V+~yf0Fi{GvdXQ%1H(3G zqq*hPr9<XRQC%BkzY2|u=I1+e@XV=3EsjWYl`{qYvSQp+XpIn}<^B?n!fLjyKnnB2 zYog=aWbz1Z#PamlkPt7hLObki*0?+TBsSU^wW!5o`8mEXPau1t*ii6pc+uk}U5Sov z@X}EBhO6{^#L)Yy8^w+n+)jB+67!rwSU%F-r9HzeWn6;(v~du2E=u*@zxyy&{Q9+N z(>|8#r%UKSBwQ<Q_Oq{@F}n?dH(bI~85gVV&HKu<jw0U*%Bkx+z8@jH^@1@Tx$0KX zWg<uKc9CT_RaG0m?RR8&K#?;R15UR<6>!8=Zv>YwUFmM|QdU!=b7ozbFQQZwEWFIP zG4MQ>K*uYz3=GZ%LT|=xt~a=@53}B=k`39l;o>j*Xvf)ftQLeXiO_QC!e5l|zuF<f z`arj)0-0NkUGI|)dQr<`a{9d#>3r?Dtby*BTa+KmM;6@MNZ?xZ9q)i4c6Cv$QdKhK z7b1ppC4a`z-Xbw159I<oX>OW6+=27;O|!-diFF4(eRliJw-tz<WA3w{-^k`7M)N6> zX-6~Zwkl@{AhO_DLKpy_6@F)Atl!p8{H;25o=eah8!eihVeAuoww~YJ5AOneSa%T+ zQP9_qB)8sklnTEgGp#>7`q6CZYDfI(i?Vp-*iL#tDc#aI_yQPupFGFqCtArOOR=c4 zEX(aA0e)JEwq0Y%<;f}qG}I#!c!epoS`Yb3&ctyhX0G${?n(8L|A}m;hO8UMmY4-} z*@2mMASdHY<@ZFk*Ivj`D^Q%~(6ig*&9J~WmCMNAkAAA-$6S=Y<dRC<P7{&by9V%2 zk&yCxs;nP1-1YW0=S@<RM>YpbSplW~!M=91M<F5Z^c6ra-9)LIOMgpf;2Z1T?>Kbq z`ZEJ_69Qm(A=l_1L&#Fpt5`>yvM)=GU0D)d_0;L4m}DeW&ykyK^Yr!4;ib#hk3>RN z$FoN}TY5v#zcIvomo+Cikr6(*JWZ-=nP{jk+kQxLd9wj=<mpG@n=`r#l_!B&P+Qqr zXeP|<ls}1ZF<^Pz8Ztpg%xeGBENZlxl0nXRdViu`-)O;Dg*I^1pnxwEY76$(+?(h} z^W{1=w$0wilOSuIsDB}=rIOh6sdUbg+X>FXHAyfm)Gb{LQqHU~ZdsGW8oGMj+ePU^ zIGbB{j4z_^cDF28Xi$B)_mJ;{1w^jO$Um<T&a0P{?k$UFLKE#+ubpVi4YT|(ok+`l zyQXkGPMO0~{pE86vbM4DM3}6#VkbG4#7xVr^A;~(91w{8G|q*R={rlxMExhe-kGYB z_X_Z5Kjx~;P>I<_s+0`PM172V$V!$J_ocoKFeSeDSUqFm_@?yo2*0_ilIr|rD6oqR zf7yivU(&F~%?|J30l#W~)+FFh*y_|C7>8e~!TVL{P4pLMcLizB2#a}3=<+z`PQqGl zlxC-O$3WA{R3Wdqk%YRGHr>ikm%awxDuAyKxG0eaVU`^2ERxYt{)5xBqXFN!O0(3* z+H}I!4o5a?alqujVi=ZC9j*W;M1|#3s<&eB74OaCZD}3yfnh;pizvFl5(;_#alNaG zd;h*UZ($h+-$a5$fm4VBUc=Ga`-Clq)sg(U#;`Lx6TN{OOlLc$=VM89)6u7)j^xHh z1pcB^TL)QCFkQ?ot6Ly;@etf_SrM@oSKIyQ-6^VRP`PWh!fUj!lpKJr>p=Rm2P!ni zxV$%4dtwQtdDXktx}dTsk}UkCf6nELdhNvHDfTh_RLvQxERo7tk#1}9j&i;+b~lBq zH#H*Y9M&agb8R~bFZ;ja&LRmfmpT`?!S+dvoqoEtNmxOW%M_I}OKBX=`9+X-?ZNJ5 zS&C8)7g-2)CJvD2L5d=YR8EHe)6GWXJWD7{sTsfCV7@FKbvH%Y80qt@<|Z5!-cR6* z2yslgBalP=bKm4Sc)czdg1k)(mOVOVO=d$-Z;06<n}5t8pDs`i@1ml5&!IznaL#Pn z-4J$VT8+ZIvKE3}O)V@HICK<$5`vwiM8gY4>Jpqr+9nzt)<O_2*<MmJ(>IRu4Eq)Q zU1bDS@c*!NS%%iuk$wwqke<24)nEw{na$l@GwZD7w(oG%9>oPBeb`L|tr4Y8YqNI= z2z?lQt$9_mx~_c*b*avV^f-%%<{`GO9p}sTPJ7cq%r$G^I(u4S8a*PGIlA)Rr~jFq z(ZU}&g9mqCW6+01g<#jhu^=#yZd>IAf*iY}zdwtr`L|+=YHnwsZzt$rR#FA0=CLcl z{CUr4wKpu0N912`AMJVr!Gf*9*AVC3Wxb<hzn%W(m&0OT`m;n1<9X*$Uqv%TC2lz` z<g-vq)qyz!F64|yTr`iXyx<(zkH4s1-7(QRS*3I1_g_dy$!u<=?+yvR$yyvU+(k&N zp>Dmud9FvW)HD-u>88<*05=X~z2<iEf1bc%ea0HUd|nD$%7wtIRIMCIIla}v|F#&j zL`sznhE?>bT!kZs;-+f2ksYjE`(lHUY-cL)`l+{1T7bf-aW?UhBVy`9LLCGBS%z|9 z(dhxt47uQIxpU-Uvo)3}FI5{&-DO=;nz(Z9RB9dLCL(qUj{R+PJ?yfrQ3LHK?-J6~ z_#^E&zzlAGI5brwP+m~y#5DXj-(+fQ8q)RNn<pDJIBH_v-B|{Dy|bS>6=jB?J!RYJ z?IMB`D2ejBTqlIQ!SYm%Vw|rBkl#}QRiI;h{xt0aP~oxRYSoYEKn{K(NSd28RBK&c z9{p=(mFqWvkLVnDCBh4p7gVYn7YWCOfJjO5h=`rhAA`)S1u9Z$?Y^CTzBs7X49fC) zgG|YN>vZ|8LRKQD<{z}Efdxm%!<RN8-;YK0K7M?|ZUG$?V)9mk75+*qbMc?uo{~Vr zH>n2?MbAf?Hff~rM9aH$7?vL5a61*qr0;*Pj%qF7E(3D=D4eB4^Zdk|di9;CO;14k z=-21T7e))>=;o6^#5Yul$Mw3!T0OX14@Whk4P~gs{@?a@{~xx3|G%In>?FqBXoHgG z|01H0ojFXl|NSu3^!D`=ZPdrS9C{XXIrMUUKT%>4202#|7O<U>yY{Un4u3bmQ&kJ@ zJJ{nZ`ftRQv}!*Wyzu+UY#Is}h~V`ae#Bz1*@cAt5HRhi+?%|AnSpxz`m-ezGg#Q- zqF#nzHSV%|W;1gsvYjm#m{|rTI+=|o3m(bQJQMQObV%dyOpn?&TdECelS&Kd5vJUk zXR%eoX;tJ^_vgk&Z*&NWl=0nQj_I}s@&EhY`5#5=f1B$mIp1h3tdb50<k*~mB35b) zI5K1y-p?E^=BTa4gi`?*)K$#xFHvj;wr4!GgEBN#P+t`5;XyBamf8rL6TU`km9&Wc zwNHoCs6WFCMU~J57=%Yt8!7iTaXBVA*pU@uj(zDP@K8zyRTNZXB=+eMNUHTV4cMY& zHGPu&G#FQ5Vy2_0OLH;{EQdvFf))8wd-$x0Z4xN2EJkvIM#u0R$R9sdHi+Umyi2Q6 z&tM}yeFin@Gspu~NI?{CB3?{+yuCZHqBU_wkt515R}>9Q#JH~f!qRb2nJbQR4^y>| z@SP+MNMMsK9L8~t(tIK}cm0acRH+{+Z0|wap5ASr1ag*(AZQM(>bD}Lg)xkwXQ!$f z4-RyqR2HXr9kG$M+1TSOTi!<I4F{YBp{NQHS_(~wvF$pHFPO#I`egxzT4pAwy(Cx? z=*R-AJ*gEY6sQf%OORCQo9`28KmJVJa#vmQWzUeqT?-@bRZzC*?fxovsex>bFB)aX zBE8Vyv8`>Yt(hF69hN)$vEH7rql8NPU?`}zZ3)H8l9L&Um<Y?0e}}^YS$Y|AoQywQ zcISMnI!N8JjKgu~Pjii#!wevmXY9r=>jws3yIk&~;x8)eZB0^@M)6t_1>C5j$9v?l z7oUI8ye=2BZu(0kG%S(!k8Hz@R+QnOSKWGhO;^|&r&<wHgtiw3EpD3)v`jkiYrd?O z=)2>f>m2Ko+4Zj14*JTMof_{;EsCF1@iW=D+iox?g;n-LJTE$9Nxvze|LRc+@O>y0 zR}j~v!f*3_LUzkX;_r|7v_^U?Jows6E43jVS?qZ}?e{}V#yszfZ6uwgzNbD+>2J*U ziITN#8vJ~ZB1pY>PIdnI9E1@yWHy=f)0o4b0e6|&4R0U))}%WYWzdRDANDcU5>`7A zaMl)e0?KYpx?dm;w~`S_=n$K;P4Z{3PJCt#c%U7a@9}i8zHenLL(eWYMmB`^%Gx~3 z@N>qr8asp1Tr~8?ejGv!hF5l!{93KIAEZ!WImW;aFWT_S1KHYDGcn!4HmIt8c$$q; z1;sWJR!k)7$1%$I5mN&c!wkcu7I=gPous{I)^4~qex`DD5=<ax1bSXCs2q4=M$vkJ z@j2d4VttHB^hJ@*R4HwwqyZ1?zi7;UQ)F7NhFX}-8RRMtQ=`4XexUg^5&lw8O#(Gp zIeoR@OOG;hOBi~ek-RX%!Zb<y-6m;d*llY_I2m4cnnPQNn9yL3tFFRHJ|o5>onKMF zrm%LE7MGlJ_lxigcH-O-f%2kKnK$XL-k{$a2cu|B&S3hEqF&4gs$ckVr=-yU(l2x^ zdBRVxT|HEv?_~Ah-ZTAr8&0Ji8-XIdWz*JV{{_S^-PuE{zXq613@s)NWRYsw^~VlV z!k<fD3t8Z>QYC?Q9jw>ZgWvtV=h_JVD%JL42E$!W^wAC=&-ic?^YE)eRfwTwB_?dU zPcvK^dku|fqr%^6ECbiReo3TC<K*XLRjY$=4u>C^NsVkEx5-lSEqDSW6!T;B7Z(!z zd{BifjW@rU3_Vt_3|wbgrkPT9bRmIj>D(|ut5zR(Q$SlVQGm`jyr{$@m6XMWcUP$5 zCGPM=9g0z?8TN>=Ip60Tr<#gcioW?I6kX>0d+6$UC=xE0VeF>BVqF>57S8zm=!7Mg zz|#F?#aY#}#AAGl>`=ybz=)LfCsq_2up?Ufkz<)x0MbZY%7Amn6hwSY`U_(N^U!#I z=(HN-&;Cr-MBZRY;T_9$Du-#Akx8k+Oz|-BgQdyi_KCYfks6kb!~>)8<hd>_x^M1a zyStUz15VX9Art8z!Gg-$oXsl+G)6ew$7<dSDV@>kBhd^N=;I!Nl$lZauScSBk4tGY zo}kx&^OPcdXjpMVV(Soef-0Yp?=J3nebm%)O{cu1OL0nhaXu(-tYP-VCIk?F05eGq zCnQ4by0SqPHrBY|;$*Ehf?LO&%~P)wVH7J05x{47Q34b(Ofzw>uK6UIp%Vitczchp zZ)ce&b;I~^juj9tm8ln(a<>;H=XTu_u)8D>9h(VWLzIe$OL6M-!1)c(SlbaTx*S=a zWYsO{yNToaXlkB>@sc8b5&x;Idz&stU;ri|;;G_5Z}4#LQNO#GRiOxO^Drle3o;24 zhCT4zm5J*_<<?Keu|!G}1lzqyl+VI1Kx01SNELl++fB$cB9XA=%KqILKUPcFo0_om zxMH(eQIc~K`6p>nbhD}9B~?qp7bjdZ1o7llzR2XW;XLJ)-KneD^FXG)P?r4pqU2XA zYju0RO<eLDO_y~pGjRSSfyxicGtEj!f{nuS;J?GUFrb9h*zL&5SI(LjCJMlLW&!ct z)GGDLw=@>Q!NF;wZ+1ULiYvWEC;9s~)aBygm<Sq3ws~J<Yfi~@7|TK4j=NK#G1<5k zV~>+B@iYk{9j@5D$k{w5AmWKPFu@l70{vwldbj`#pR#xP@FbM^k@5aHxmM^0vvw3U zoz+Xh$jch)Wg~9oVS_pW1o#C6ctHF-AQ3$Q0dWvW{G~7#KfgFXf9R~%=l`XHv#Yg( zt^fbI15w<5D5}G=e-=DlZM}S<9yS1bFE2MwaXvl=XQ-VG>Ts}v@w$50eVm{#Kw+u> zVfF02oh`-1<z213oo!sa#KpBxP)`7;^0ABWzhJ=sw1|r<+c?<SdjUXV0y1Xq`X~(5 zf70{cF@_G-UiSYW({)TZC<x7ef~Y$<+j#lA*#Q2-D?T?DJLzTvjsK!YT@Qr<fP{sG z`2_`q#e_FQNMcbC;{T*a*CD_Lz%M8FuJqM0N@Vb#MEW{lfUSd*4Jvd#XBRIgS35pi zsE>n{tBWV!{~U5YAsZVT0V|N8t&p&#h^@6XNX*6(YGo-16%Z2@6%e!GMfKoC`G=!8 R_6cPH09MeDua~ok_-~E6)8GIA literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/ms-icon-70x70.png b/packages/mermaid/src/docs/public/ms-icon-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..26f1b1fa54d8f8a3f5d0817c1a87ca996e51b0e5 GIT binary patch literal 2279 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 Fe*;wrd07Ae literal 0 HcmV?d00001 diff --git a/packages/mermaid/docs/syntax/c4c.md b/packages/mermaid/src/docs/syntax/c4c.md similarity index 100% rename from packages/mermaid/docs/syntax/c4c.md rename to packages/mermaid/src/docs/syntax/c4c.md diff --git a/packages/mermaid/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md similarity index 100% rename from packages/mermaid/docs/syntax/classDiagram.md rename to packages/mermaid/src/docs/syntax/classDiagram.md diff --git a/packages/mermaid/docs/syntax/entityRelationshipDiagram.md b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md similarity index 100% rename from packages/mermaid/docs/syntax/entityRelationshipDiagram.md rename to packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md diff --git a/packages/mermaid/docs/syntax/examples.md b/packages/mermaid/src/docs/syntax/examples.md similarity index 100% rename from packages/mermaid/docs/syntax/examples.md rename to packages/mermaid/src/docs/syntax/examples.md diff --git a/packages/mermaid/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md similarity index 99% rename from packages/mermaid/docs/syntax/flowchart.md rename to packages/mermaid/src/docs/syntax/flowchart.md index 41ed2500ab..09960a9279 100644 --- a/packages/mermaid/docs/syntax/flowchart.md +++ b/packages/mermaid/src/docs/syntax/flowchart.md @@ -207,7 +207,7 @@ flowchart LR ### Dotted link ```mermaid-example -flowchart LR; +flowchart LR A-.->B; ``` @@ -449,7 +449,7 @@ Examples of tooltip usage below: ```html <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; </script> @@ -617,7 +617,7 @@ below: **Example definition** ```mermaid-example -flowchart LR; +flowchart LR A-->B[AAA<span>BBB</span>] B-->D class A cssClass @@ -641,7 +641,7 @@ The icons are accessed via the syntax fa:#icon class name#. flowchart TD B["fab:fa-twitter for peace"] B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); + B-->D(fa:fa-spinner) B-->E(A fa:fa-camera-retro perhaps?) ``` diff --git a/packages/mermaid/docs/syntax/gantt.md b/packages/mermaid/src/docs/syntax/gantt.md similarity index 99% rename from packages/mermaid/docs/syntax/gantt.md rename to packages/mermaid/src/docs/syntax/gantt.md index 435d892c61..755f50b1e1 100644 --- a/packages/mermaid/docs/syntax/gantt.md +++ b/packages/mermaid/src/docs/syntax/gantt.md @@ -275,7 +275,7 @@ todayMarker off It is possible to adjust the margins for rendering the gantt diagram. This is done by defining the `ganttConfig` part of the configuration object. -How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.html) page. +How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI) page. mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object. diff --git a/packages/mermaid/docs/syntax/gitgraph.md b/packages/mermaid/src/docs/syntax/gitgraph.md similarity index 100% rename from packages/mermaid/docs/syntax/gitgraph.md rename to packages/mermaid/src/docs/syntax/gitgraph.md diff --git a/packages/mermaid/docs/syntax/img/Gantt-excluded-days-within.png b/packages/mermaid/src/docs/syntax/img/Gantt-excluded-days-within.png similarity index 100% rename from packages/mermaid/docs/syntax/img/Gantt-excluded-days-within.png rename to packages/mermaid/src/docs/syntax/img/Gantt-excluded-days-within.png diff --git a/packages/mermaid/docs/syntax/img/Gantt-long-weekend-look.png b/packages/mermaid/src/docs/syntax/img/Gantt-long-weekend-look.png similarity index 100% rename from packages/mermaid/docs/syntax/img/Gantt-long-weekend-look.png rename to packages/mermaid/src/docs/syntax/img/Gantt-long-weekend-look.png diff --git a/packages/mermaid/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md similarity index 100% rename from packages/mermaid/docs/syntax/mindmap.md rename to packages/mermaid/src/docs/syntax/mindmap.md diff --git a/packages/mermaid/docs/syntax/pie.md b/packages/mermaid/src/docs/syntax/pie.md similarity index 100% rename from packages/mermaid/docs/syntax/pie.md rename to packages/mermaid/src/docs/syntax/pie.md diff --git a/packages/mermaid/docs/syntax/requirementDiagram.md b/packages/mermaid/src/docs/syntax/requirementDiagram.md similarity index 100% rename from packages/mermaid/docs/syntax/requirementDiagram.md rename to packages/mermaid/src/docs/syntax/requirementDiagram.md diff --git a/packages/mermaid/docs/syntax/sequenceDiagram.md b/packages/mermaid/src/docs/syntax/sequenceDiagram.md similarity index 100% rename from packages/mermaid/docs/syntax/sequenceDiagram.md rename to packages/mermaid/src/docs/syntax/sequenceDiagram.md diff --git a/packages/mermaid/docs/syntax/stateDiagram.md b/packages/mermaid/src/docs/syntax/stateDiagram.md similarity index 100% rename from packages/mermaid/docs/syntax/stateDiagram.md rename to packages/mermaid/src/docs/syntax/stateDiagram.md diff --git a/packages/mermaid/docs/syntax/user-journey.md b/packages/mermaid/src/docs/syntax/userJourney.md similarity index 100% rename from packages/mermaid/docs/syntax/user-journey.md rename to packages/mermaid/src/docs/syntax/userJourney.md diff --git a/packages/mermaid/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts similarity index 89% rename from packages/mermaid/docs/vite.config.ts rename to packages/mermaid/src/docs/vite.config.ts index 759e437d62..bea6fe26d7 100644 --- a/packages/mermaid/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig, searchForWorkspaceRoot } from 'vite'; import path from 'path'; +// @ts-ignore: still in alpha import { SearchPlugin } from 'vitepress-plugin-search'; const virtualModuleId = 'virtual:mermaid-config'; @@ -29,7 +30,7 @@ export default defineConfig({ ], resolve: { alias: { - mermaid: path.join(__dirname, '../dist/mermaid.esm.min.mjs'), // Use this one to build + mermaid: path.join(__dirname, '../../dist/mermaid.esm.min.mjs'), // Use this one to build }, }, server: { From c45bf055b663caa0b4ac3b839d1b88ff43cc9b99 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Mon, 17 Oct 2022 23:58:51 -0300 Subject: [PATCH 0427/1038] docs: added warning and notes --- docs/CHANGELOG.md | 10 ++- docs/community/development.md | 6 +- docs/community/n00b-overview.md | 6 +- docs/community/newDiagram.md | 11 ++-- docs/community/security.md | 6 +- docs/config/8.6.0_docs.md | 70 ++++++++++----------- docs/config/Tutorials.md | 6 +- docs/config/accessibility.md | 6 +- docs/config/configuration.md | 6 +- docs/config/directives.md | 6 +- docs/config/mermaidCLI.md | 6 +- docs/config/n00b-advanced.md | 6 +- docs/config/setup/README.md | 6 +- docs/config/setup/modules/config.md | 28 +++++---- docs/config/setup/modules/defaultConfig.md | 10 ++- docs/config/setup/modules/mermaidAPI.md | 12 ++-- docs/config/theming.md | 11 ++-- docs/config/usage.md | 38 ++++++----- docs/img/er.png | Bin 0 -> 56576 bytes docs/index.md | 6 +- docs/intro/index.md | 8 ++- docs/intro/n00b-gettingStarted.md | 6 +- docs/intro/n00b-syntaxReference.md | 6 +- docs/misc/faq.md | 6 +- docs/misc/integrations.md | 6 +- docs/syntax/c4c.md | 6 +- docs/syntax/classDiagram.md | 6 +- docs/syntax/entityRelationshipDiagram.md | 6 +- docs/syntax/examples.md | 6 +- docs/syntax/flowchart.md | 6 +- docs/syntax/gantt.md | 6 +- docs/syntax/gitgraph.md | 6 +- docs/syntax/mindmap.md | 6 +- docs/syntax/pie.md | 6 +- docs/syntax/requirementDiagram.md | 6 +- docs/syntax/sequenceDiagram.md | 13 ++-- docs/syntax/stateDiagram.md | 6 +- docs/syntax/userJourney.md | 6 +- packages/mermaid/package.json | 2 +- packages/mermaid/src/docs.mts | 46 +++++++++++++- 40 files changed, 300 insertions(+), 121 deletions(-) create mode 100644 docs/img/er.png diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 859ceec23e..8f3add9c52 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Change Log @@ -13,10 +17,10 @@ All changes are in descending order, beginning with the newest (latest) version. 🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | 📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) -This version brings with it a system for [dynamic and integrated configuration of the diagram themes](../config/theming.md). +This version brings with it a system for [dynamic and integrated configuration of the diagram themes](config/theming.md). The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. -Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](../getting-started/8.6.0_docs.md). +Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](config/8.6.0_docs.md). **These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.** diff --git a/docs/community/development.md b/docs/community/development.md index 3e0a7c8a63..29fbdf5cde 100644 --- a/docs/community/development.md +++ b/docs/community/development.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Development and Contribution 🙌 diff --git a/docs/community/n00b-overview.md b/docs/community/n00b-overview.md index 06bf5fc8aa..fb6ada2ec7 100644 --- a/docs/community/n00b-overview.md +++ b/docs/community/n00b-overview.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Overview for Beginners diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index dc05aa1939..06ae5fe0aa 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Adding a New Diagram/Chart 📊 @@ -26,9 +30,8 @@ There are some jison specific sub steps here where the parser stores the data en In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -::: tip -Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. -::: +> Note +> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. For more info look in the example diagram type: diff --git a/docs/community/security.md b/docs/community/security.md index ee9033ca21..868f2d3721 100644 --- a/docs/community/security.md +++ b/docs/community/security.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Security diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index 782affe789..2b375e27d1 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Version 8.6.0 Changes @@ -48,9 +52,8 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -::: note -All directives are enclosed in `%%{ }%%` -::: +> Note +> All directives are enclosed in `%%{ }%%` Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -62,8 +65,8 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -::: note -init would be an argument-directive: `%%{init: { **insert argument here**}}%%` +> Note +> init would be an argument-directive: `%%{init: { **insert argument here**}}%%` The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. **for example**: @@ -73,7 +76,8 @@ The json object that is passed as {**argument** } must be valid, quoted json or Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. When deployed within code, init is called before the graph/diagram description. -::: + +> **for example**: @@ -107,15 +111,16 @@ When deployed within code, init is called before the graph/diagram description. | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -::: note -Wrap is a function that is currently only deployable for sequence diagrams. +> Note +> Wrap is a function that is currently only deployable for sequence diagrams. Wrap respects a manually added \<br>, so if the user wants to break up their text, they have full control over line breaks by adding \<br> tags. It is a non-argument directive and can be executed thusly: `%%{wrap}%%` . -::: + +> **An example of text wrapping in a sequence diagram**: @@ -157,13 +162,12 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -::: note -Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset -the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig -to the defaultConfig -Note: currentConfig is set in this function。 -Default value: will mirror Global Config -::: +> Note +> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset +> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig +> to the defaultConfig +> Note: currentConfig is set in this function。 +> Default value: will mirror Global Config ## getSiteConfig @@ -171,9 +175,8 @@ Default value: will mirror Global Config | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -::: note -Returns any values in siteConfig. -::: +> Note +> Returns any values in siteConfig. ## setConfig @@ -181,11 +184,10 @@ Returns any values in siteConfig. | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -::: note -Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any -values found in conf with key found in siteConfig.secure will be replaced with the corresponding -siteConfig value. -::: +> Note +> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any +> values found in conf with key found in siteConfig.secure will be replaced with the corresponding +> siteConfig value. ## getConfig @@ -193,9 +195,8 @@ siteConfig value. | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -::: note -Returns any values in currentConfig. -::: +> Note +> Returns any values in currentConfig. ## sanitize @@ -203,10 +204,9 @@ Returns any values in currentConfig. | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -::: note -modifies options in-place -Ensures options parameter does not attempt to override siteConfig secure keys. -::: +> Note +> modifies options in-place +> Ensures options parameter does not attempt to override siteConfig secure keys. ## reset @@ -220,8 +220,8 @@ Ensures options parameter does not attempt to override siteConfig secure keys. | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -::: note -default: current siteConfig (optional, default `getSiteConfig()`) -::: s +> Note +> default: current siteConfig (optional, default `getSiteConfig()`) +> s ## For more information, read [Setup](setup/README). diff --git a/docs/config/Tutorials.md b/docs/config/Tutorials.md index f76124251d..b54238e050 100644 --- a/docs/config/Tutorials.md +++ b/docs/config/Tutorials.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Tutorials diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md index d699be01ed..8e9e087925 100644 --- a/docs/config/accessibility.md +++ b/docs/config/accessibility.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Accessibility Options diff --git a/docs/config/configuration.md b/docs/config/configuration.md index e764e200a7..546d873fdf 100644 --- a/docs/config/configuration.md +++ b/docs/config/configuration.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Configuration diff --git a/docs/config/directives.md b/docs/config/directives.md index 8185af294c..0b4252bbac 100644 --- a/docs/config/directives.md +++ b/docs/config/directives.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Directives diff --git a/docs/config/mermaidCLI.md b/docs/config/mermaidCLI.md index 0d32c54728..e414266f1a 100644 --- a/docs/config/mermaidCLI.md +++ b/docs/config/mermaidCLI.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # mermaid CLI diff --git a/docs/config/n00b-advanced.md b/docs/config/n00b-advanced.md index b8970142a6..6d8e86f1aa 100644 --- a/docs/config/n00b-advanced.md +++ b/docs/config/n00b-advanced.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Advanced n00b mermaid (Coming soon..) diff --git a/docs/config/setup/README.md b/docs/config/setup/README.md index 28a7c2d97c..d143b213c9 100644 --- a/docs/config/setup/README.md +++ b/docs/config/setup/README.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # mermaid diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 5171d82379..635bc32982 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Module: config @@ -10,7 +14,7 @@ #### Defined in -[config.ts:7](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L7) +[config.ts:7](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L7) ## Functions @@ -32,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L191) +[config.ts:191](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L191) --- @@ -56,7 +60,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:136](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L136) +[config.ts:136](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L136) --- @@ -80,7 +84,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:96](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L96) +[config.ts:96](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L96) --- @@ -114,7 +118,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:222](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L222) +[config.ts:222](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L222) --- @@ -143,7 +147,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L151) +[config.ts:151](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L151) --- @@ -163,7 +167,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L75) +[config.ts:75](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L75) --- @@ -195,7 +199,7 @@ corresponding siteConfig value. #### Defined in -[config.ts:113](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L113) +[config.ts:113](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L113) --- @@ -228,7 +232,7 @@ function _Default value: At default, will mirror Global Config_ #### Defined in -[config.ts:61](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L61) +[config.ts:61](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L61) --- @@ -249,7 +253,7 @@ function _Default value: At default, will mirror Global Config_ #### Defined in -[config.ts:14](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L14) +[config.ts:14](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L14) --- @@ -269,4 +273,4 @@ function _Default value: At default, will mirror Global Config_ #### Defined in -[config.ts:79](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/config.ts#L79) +[config.ts:79](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index adbc05f8ac..31a6d958ed 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Module: defaultConfig @@ -10,7 +14,7 @@ #### Defined in -[defaultConfig.ts:1855](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/defaultConfig.ts#L1855) +[defaultConfig.ts:1855](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/defaultConfig.ts#L1855) --- @@ -52,4 +56,4 @@ Configuration #### Defined in -[defaultConfig.ts:31](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/defaultConfig.ts#L31) +[defaultConfig.ts:31](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/defaultConfig.ts#L31) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index c729e8af39..43ead91938 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Module: mermaidAPI @@ -16,7 +20,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/mermaidAPI.ts#L483) +[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/mermaidAPI.ts#L483) ## Functions @@ -36,7 +40,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:73](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/mermaidAPI.ts#L73) +[mermaidAPI.ts:73](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/mermaidAPI.ts#L73) --- @@ -56,4 +60,4 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:47](https://github.com/emersonbottero/mermaid/blob/0da56a12/packages/mermaid/src/mermaidAPI.ts#L47) +[mermaidAPI.ts:47](https://github.com/emersonbottero/mermaid/blob/c8b377bf/packages/mermaid/src/mermaidAPI.ts#L47) diff --git a/docs/config/theming.md b/docs/config/theming.md index 107bd4ddc6..aba6d98326 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Theme Configuration @@ -152,9 +156,8 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -::: note -Variables that are unique to some diagrams can be affected by changes in Theme Variables -::: +> Note +> Variables that are unique to some diagrams can be affected by changes in Theme Variables | Variable | Default/Base/Factor value | Calc | Description | | -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | diff --git a/docs/config/usage.md b/docs/config/usage.md index 2a3ee0a8d2..dcb88d3753 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Usage @@ -115,10 +119,9 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -::: note -This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. -**sandbox** security level is still in the beta version. -::: +> Note +> This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. +> **sandbox** security level is still in the beta version. **If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** @@ -183,9 +186,8 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -::: warning -This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. -::: +> Warning +> This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. ## Usage with webpack @@ -339,9 +341,8 @@ on what kind of integration you use. </script> ``` -::: tip -This is the preferred way of configuring mermaid. -::: +> Note +> This is the preferred way of configuring mermaid. ### The following methods are deprecated and are kept only for backwards compatibility. @@ -357,9 +358,8 @@ approach are: mermaid.startOnLoad = true; ``` -::: warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: +> Warning +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. ## Using the mermaid_config @@ -373,9 +373,8 @@ approach are: mermaid_config.startOnLoad = true; ``` -::: warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: +> Warning +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. ## Using the mermaid.init call @@ -388,6 +387,5 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -::: warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: +> Warning +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. diff --git a/docs/img/er.png b/docs/img/er.png new file mode 100644 index 0000000000000000000000000000000000000000..21c44c257a3e0ee3e782dd5b6696602f6d9f5172 GIT binary patch literal 56576 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�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 G_~T!k%VIVF literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 0ff0584c19..3c95860056 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. --- diff --git a/docs/intro/index.md b/docs/intro/index.md index 9bf4e4b6c3..bf23520c3d 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # About Mermaid @@ -205,7 +209,7 @@ erDiagram ``` -### [User Journey Diagram](../syntax/user-journey.md) +### [User Journey Diagram](../syntax/userJourney.md) ```mermaid-example journey diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 48c3312edb..7f42810cef 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # A Mermaid User-Guide for Beginners diff --git a/docs/intro/n00b-syntaxReference.md b/docs/intro/n00b-syntaxReference.md index ad6d06cba7..1afdb5c7de 100644 --- a/docs/intro/n00b-syntaxReference.md +++ b/docs/intro/n00b-syntaxReference.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Diagram Syntax diff --git a/docs/misc/faq.md b/docs/misc/faq.md index ac5eeeb80b..80bfb8f9e8 100644 --- a/docs/misc/faq.md +++ b/docs/misc/faq.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Frequently Asked Questions diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md index deac1e3b1b..b0e23b514b 100644 --- a/docs/misc/integrations.md +++ b/docs/misc/integrations.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Integrations diff --git a/docs/syntax/c4c.md b/docs/syntax/c4c.md index 2d4efdd2c6..3022ce73e7 100644 --- a/docs/syntax/c4c.md +++ b/docs/syntax/c4c.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # C4 Diagrams diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index 878d9a8bda..db3944dac5 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Class diagrams diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md index f6a3bb1433..1e1a6baabd 100644 --- a/docs/syntax/entityRelationshipDiagram.md +++ b/docs/syntax/entityRelationshipDiagram.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Entity Relationship Diagrams diff --git a/docs/syntax/examples.md b/docs/syntax/examples.md index 9872cd43b1..172051f27f 100644 --- a/docs/syntax/examples.md +++ b/docs/syntax/examples.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Examples diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md index 166a5fcc84..32de0db6fe 100644 --- a/docs/syntax/flowchart.md +++ b/docs/syntax/flowchart.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Flowcharts - Basic Syntax diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md index 7e493888e7..ad274a95fe 100644 --- a/docs/syntax/gantt.md +++ b/docs/syntax/gantt.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Gantt diagrams diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md index 68852cf421..2e5a3e634e 100644 --- a/docs/syntax/gitgraph.md +++ b/docs/syntax/gitgraph.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Gitgraph Diagrams diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 00fe3b74ea..21ea9107e7 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Mindmap diff --git a/docs/syntax/pie.md b/docs/syntax/pie.md index 79dcbfee53..05ac8e8967 100644 --- a/docs/syntax/pie.md +++ b/docs/syntax/pie.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Pie chart diagrams diff --git a/docs/syntax/requirementDiagram.md b/docs/syntax/requirementDiagram.md index d319678716..b1a70c3568 100644 --- a/docs/syntax/requirementDiagram.md +++ b/docs/syntax/requirementDiagram.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Requirement Diagram diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index 73f341347c..29d1bf568d 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # Sequence diagrams @@ -20,11 +24,12 @@ sequenceDiagram Alice-)John: See you later! ``` -::: note -A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. +> Note +> A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. -::: + +> ## Syntax diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md index 3d0c07c8a4..d398418932 100644 --- a/docs/syntax/stateDiagram.md +++ b/docs/syntax/stateDiagram.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # State diagrams diff --git a/docs/syntax/userJourney.md b/docs/syntax/userJourney.md index e0d924f85f..fbe82bc648 100644 --- a/docs/syntax/userJourney.md +++ b/docs/syntax/userJourney.md @@ -1,4 +1,8 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in package/mermaid/src/docs. # User Journey Diagram diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 3cad6af988..6da628724d 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -31,7 +31,7 @@ "build:esbuild": "concurrently \"pnpm build:code\" \"pnpm build:types\"", "build": "pnpm clean; pnpm build:esbuild", "dev": "node .esbuild/serve.cjs", - "predocs:build": "rimraf docs/.vitepress/dist", + "predocs:build": "rimraf docs", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:build --verify", "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 780e1d33b9..b4de8bab1e 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -50,7 +50,9 @@ const MERMAID_MAJOR_VERSION = ( const SOURCE_DOCS_DIR = 'src/docs'; const FINAL_DOCS_DIR = '../../docs'; -const AUTOGENERATED_TEXT = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in ${SOURCE_DOCS_DIR}.`; +const AUTOGENERATED_TEXT = `> **Warning** +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> ## Please edit the corresponding file in package/mermaid/src/docs.`; const LOGMSG_TRANSFORMED = 'transformed'; const LOGMSG_TO_BE_TRANSFORMED = 'to be transformed'; @@ -131,6 +133,41 @@ const copyTransformedContents = (filename: string, doCopy = false, transformedCo logWasOrShouldBeTransformed(fileInFinalDocDir, doCopy); }; +const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') => { + let transformed = content; + let regex = /::: note\n[\s\S]+?:::/gm; + let text = 'Note'; + + switch (type) { + case 'note': + regex = /::: note\s?\n[\s\S]+?:::/gm; + break; + case 'tip': + regex = /::: tip\s?\n[\s\S]+?:::/gm; + text = 'Note'; + break; + case 'warning': + regex = /::: warning\s?\n[\s\S]+?:::/gm; + text = 'Warning'; + break; + default: + break; + } + + const matches = content.match(regex); + if (matches) { + console.log(`found ${matches.length} of ${type}`); + + const formatted = matches.map((element) => + element.replace(`::: ${type}`, `> ${text}`).replace(':::', '>').replace('\n', '\n> ') + ); + let n = 0; + for (const match of matches) { + transformed = transformed.replace(match, formatted[n++]); + } + } + return transformed; +}; const readSyncedUTF8file = (filename: string): string => { return readFileSync(filename, 'utf8'); }; @@ -148,7 +185,12 @@ const readSyncedUTF8file = (filename: string): string => { * @param file {string} name of the file that will be verified */ const transformMarkdown = (file: string) => { - const doc = readSyncedUTF8file(file).replace(/<MERMAID_VERSION>/g, MERMAID_MAJOR_VERSION); + let doc = readSyncedUTF8file(file).replace(/<MERMAID_VERSION>/g, MERMAID_MAJOR_VERSION); + + doc = transformAnnotation(doc, 'warning'); + doc = transformAnnotation(doc, 'tip'); + doc = transformAnnotation(doc, 'note'); + const ast: Root = remark.parse(doc); const out = flatmap(ast, (c: Code) => { if (c.type !== 'code') { From d296049d198925544fbc649d0a24310e64dafdc8 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Tue, 18 Oct 2022 00:05:27 -0300 Subject: [PATCH 0428/1038] docs: added warning and notes --- docs/community/newDiagram.md | 2 +- docs/config/8.6.0_docs.md | 18 +++++++++--------- docs/config/theming.md | 2 +- docs/config/usage.md | 12 ++++++------ docs/syntax/sequenceDiagram.md | 2 +- packages/mermaid/src/docs.mts | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index 06ae5fe0aa..cf31441287 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -30,7 +30,7 @@ There are some jison specific sub steps here where the parser stores the data en In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -> Note +> **Note** > Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. For more info look in the example diagram type: diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index 2b375e27d1..031f7d65cc 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -52,7 +52,7 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -> Note +> **Note** > All directives are enclosed in `%%{ }%%` Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -65,7 +65,7 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -> Note +> **Note** > init would be an argument-directive: `%%{init: { **insert argument here**}}%%` The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. @@ -111,7 +111,7 @@ When deployed within code, init is called before the graph/diagram description. | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -> Note +> **Note** > Wrap is a function that is currently only deployable for sequence diagrams. Wrap respects a manually added \<br>, so if the user wants to break up their text, they have full control over line breaks by adding \<br> tags. @@ -162,7 +162,7 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -> Note +> **Note** > Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset > the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig > to the defaultConfig @@ -175,7 +175,7 @@ Example of **object.Assign**: | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -> Note +> **Note** > Returns any values in siteConfig. ## setConfig @@ -184,7 +184,7 @@ Example of **object.Assign**: | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -> Note +> **Note** > Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any > values found in conf with key found in siteConfig.secure will be replaced with the corresponding > siteConfig value. @@ -195,7 +195,7 @@ Example of **object.Assign**: | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -> Note +> **Note** > Returns any values in currentConfig. ## sanitize @@ -204,7 +204,7 @@ Example of **object.Assign**: | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -> Note +> **Note** > modifies options in-place > Ensures options parameter does not attempt to override siteConfig secure keys. @@ -220,7 +220,7 @@ Example of **object.Assign**: | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -> Note +> **Note** > default: current siteConfig (optional, default `getSiteConfig()`) > s diff --git a/docs/config/theming.md b/docs/config/theming.md index aba6d98326..6ec46f5bb1 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -156,7 +156,7 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -> Note +> **Note** > Variables that are unique to some diagrams can be affected by changes in Theme Variables | Variable | Default/Base/Factor value | Calc | Description | diff --git a/docs/config/usage.md b/docs/config/usage.md index dcb88d3753..36e2506f7f 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -119,7 +119,7 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -> Note +> **Note** > This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. > **sandbox** security level is still in the beta version. @@ -186,7 +186,7 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -> Warning +> **Warning** > This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. ## Usage with webpack @@ -341,7 +341,7 @@ on what kind of integration you use. </script> ``` -> Note +> **Note** > This is the preferred way of configuring mermaid. ### The following methods are deprecated and are kept only for backwards compatibility. @@ -358,7 +358,7 @@ approach are: mermaid.startOnLoad = true; ``` -> Warning +> **Warning** > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. ## Using the mermaid_config @@ -373,7 +373,7 @@ approach are: mermaid_config.startOnLoad = true; ``` -> Warning +> **Warning** > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. ## Using the mermaid.init call @@ -387,5 +387,5 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -> Warning +> **Warning** > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index 29d1bf568d..1581cad453 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -24,7 +24,7 @@ sequenceDiagram Alice-)John: See you later! ``` -> Note +> **Note** > A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index b4de8bab1e..33ba55012f 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -159,7 +159,7 @@ const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') console.log(`found ${matches.length} of ${type}`); const formatted = matches.map((element) => - element.replace(`::: ${type}`, `> ${text}`).replace(':::', '>').replace('\n', '\n> ') + element.replace(`::: ${type}`, `> **${text}**`).replace(':::', '>').replace('\n', '\n> ') ); let n = 0; for (const match of matches) { From e95eaddf8aab3b5427d3769e6fa6b8a1ef191e35 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Tue, 18 Oct 2022 00:07:14 -0300 Subject: [PATCH 0429/1038] docs: added warning and notes --- docs/community/newDiagram.md | 2 +- docs/config/8.6.0_docs.md | 18 +++++++++--------- docs/config/theming.md | 2 +- docs/config/usage.md | 12 ++++++------ docs/syntax/sequenceDiagram.md | 2 +- packages/mermaid/src/docs.mts | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index cf31441287..bf45973831 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -30,7 +30,7 @@ There are some jison specific sub steps here where the parser stores the data en In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -> **Note** +> **Note**\ > Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. For more info look in the example diagram type: diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index 031f7d65cc..f051be1776 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -52,7 +52,7 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -> **Note** +> **Note**\ > All directives are enclosed in `%%{ }%%` Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -65,7 +65,7 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -> **Note** +> **Note**\ > init would be an argument-directive: `%%{init: { **insert argument here**}}%%` The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. @@ -111,7 +111,7 @@ When deployed within code, init is called before the graph/diagram description. | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -> **Note** +> **Note**\ > Wrap is a function that is currently only deployable for sequence diagrams. Wrap respects a manually added \<br>, so if the user wants to break up their text, they have full control over line breaks by adding \<br> tags. @@ -162,7 +162,7 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -> **Note** +> **Note**\ > Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset > the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig > to the defaultConfig @@ -175,7 +175,7 @@ Example of **object.Assign**: | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -> **Note** +> **Note**\ > Returns any values in siteConfig. ## setConfig @@ -184,7 +184,7 @@ Example of **object.Assign**: | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -> **Note** +> **Note**\ > Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any > values found in conf with key found in siteConfig.secure will be replaced with the corresponding > siteConfig value. @@ -195,7 +195,7 @@ Example of **object.Assign**: | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -> **Note** +> **Note**\ > Returns any values in currentConfig. ## sanitize @@ -204,7 +204,7 @@ Example of **object.Assign**: | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -> **Note** +> **Note**\ > modifies options in-place > Ensures options parameter does not attempt to override siteConfig secure keys. @@ -220,7 +220,7 @@ Example of **object.Assign**: | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -> **Note** +> **Note**\ > default: current siteConfig (optional, default `getSiteConfig()`) > s diff --git a/docs/config/theming.md b/docs/config/theming.md index 6ec46f5bb1..7c27806df9 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -156,7 +156,7 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -> **Note** +> **Note**\ > Variables that are unique to some diagrams can be affected by changes in Theme Variables | Variable | Default/Base/Factor value | Calc | Description | diff --git a/docs/config/usage.md b/docs/config/usage.md index 36e2506f7f..a749ebefb1 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -119,7 +119,7 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -> **Note** +> **Note**\ > This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. > **sandbox** security level is still in the beta version. @@ -186,7 +186,7 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -> **Warning** +> **Warning**\ > This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. ## Usage with webpack @@ -341,7 +341,7 @@ on what kind of integration you use. </script> ``` -> **Note** +> **Note**\ > This is the preferred way of configuring mermaid. ### The following methods are deprecated and are kept only for backwards compatibility. @@ -358,7 +358,7 @@ approach are: mermaid.startOnLoad = true; ``` -> **Warning** +> **Warning**\ > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. ## Using the mermaid_config @@ -373,7 +373,7 @@ approach are: mermaid_config.startOnLoad = true; ``` -> **Warning** +> **Warning**\ > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. ## Using the mermaid.init call @@ -387,5 +387,5 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -> **Warning** +> **Warning**\ > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index 1581cad453..8005db5bbf 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -24,7 +24,7 @@ sequenceDiagram Alice-)John: See you later! ``` -> **Note** +> **Note**\ > A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 33ba55012f..bff380c9d4 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -159,7 +159,7 @@ const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') console.log(`found ${matches.length} of ${type}`); const formatted = matches.map((element) => - element.replace(`::: ${type}`, `> **${text}**`).replace(':::', '>').replace('\n', '\n> ') + element.replace(`::: ${type}`, `> **${text}** `).replace(':::', '>').replace('\n', '\n> ') ); let n = 0; for (const match of matches) { From 66ea491affe2817de86061281e9340a91093bb83 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Tue, 18 Oct 2022 00:26:36 -0300 Subject: [PATCH 0430/1038] docs: fix layout problem --- docs/.vitepress/theme/custom.css | 4 ++++ packages/mermaid/src/docs/.vitepress/theme/custom.css | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css index 8d5b71f56a..24d1fa7dda 100644 --- a/docs/.vitepress/theme/custom.css +++ b/docs/.vitepress/theme/custom.css @@ -15,3 +15,7 @@ --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #ff3670 50%); --vp-home-hero-image-filter: blur(72px); } + +.vp-doc > div { + width: 100%; +} diff --git a/packages/mermaid/src/docs/.vitepress/theme/custom.css b/packages/mermaid/src/docs/.vitepress/theme/custom.css index 8d5b71f56a..24d1fa7dda 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/custom.css +++ b/packages/mermaid/src/docs/.vitepress/theme/custom.css @@ -15,3 +15,7 @@ --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #ff3670 50%); --vp-home-hero-image-filter: blur(72px); } + +.vp-doc > div { + width: 100%; +} From f2571e993022cfe591873bc490c3b499f96a0b58 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 18 Oct 2022 12:28:48 +0530 Subject: [PATCH 0431/1038] fix: Live editor links --- docs/config/Tutorials.md | 2 +- docs/intro/n00b-syntaxReference.md | 6 +- packages/mermaid/docs/config/Tutorials.md | 2 +- .../docs/intro/n00b-syntaxReference.md | 6 +- packages/mermaid/package.json | 1 + pnpm-lock.yaml | 2148 +---------------- 6 files changed, 86 insertions(+), 2079 deletions(-) diff --git a/docs/config/Tutorials.md b/docs/config/Tutorials.md index 3894c99f3c..4c58c225ab 100644 --- a/docs/config/Tutorials.md +++ b/docs/config/Tutorials.md @@ -6,7 +6,7 @@ This is list of publicly available Tutorials for using Mermaid.JS . This is inte **Note that these tutorials might display an older interface, but the usage of the live-editor will largely be the same.** -For most purposes, you can use the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor), to quickly and easily render a diagram. +For most purposes, you can use the [Live Editor](https://mermaid.live), to quickly and easily render a diagram. ## Live-Editor Tutorials diff --git a/docs/intro/n00b-syntaxReference.md b/docs/intro/n00b-syntaxReference.md index 1169454e2b..31326faf6d 100644 --- a/docs/intro/n00b-syntaxReference.md +++ b/docs/intro/n00b-syntaxReference.md @@ -6,7 +6,7 @@ Mermaid's syntax is used to create diagrams. You'll find that it is not too tric Syntax, together with Deployment and Configuration constitute the whole of Mermaid. -Diagram Examples can be found in the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor), it is also a great practice area. +Diagram Examples can be found in the [Mermaid Live Editor](https://mermaid.live), it is also a great practice area. ## Syntax Structure @@ -54,7 +54,7 @@ One should **beware the use of some words or symbols** that can break diagrams. ### Mermaid Live Editor -Now, that you've seen what you should not add to your diagrams, you can play around with them in the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor). +Now, that you've seen what you should not add to your diagrams, you can play around with them in the [Mermaid Live Editor](https://mermaid.live). # Configuration @@ -64,7 +64,7 @@ If you are interested in altering and customizing your Mermaid Diagrams, you wil This section will introduce the different methods of configuring the behaviors and appearances of Mermaid Diagrams. The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](n00b-gettingStarted) methods. -### Configuration Section in the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor). +### Configuration Section in the [Live Editor](https://mermaid.live). Here you can edit certain values to change the behavior and appearance of the diagram. diff --git a/packages/mermaid/docs/config/Tutorials.md b/packages/mermaid/docs/config/Tutorials.md index bfaa4facf9..54c6a845ab 100644 --- a/packages/mermaid/docs/config/Tutorials.md +++ b/packages/mermaid/docs/config/Tutorials.md @@ -4,7 +4,7 @@ This is list of publicly available Tutorials for using Mermaid.JS . This is inte **Note that these tutorials might display an older interface, but the usage of the live-editor will largely be the same.** -For most purposes, you can use the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor), to quickly and easily render a diagram. +For most purposes, you can use the [Live Editor](https://mermaid.live), to quickly and easily render a diagram. ## Live-Editor Tutorials diff --git a/packages/mermaid/docs/intro/n00b-syntaxReference.md b/packages/mermaid/docs/intro/n00b-syntaxReference.md index f88075ce44..b3611db155 100644 --- a/packages/mermaid/docs/intro/n00b-syntaxReference.md +++ b/packages/mermaid/docs/intro/n00b-syntaxReference.md @@ -4,7 +4,7 @@ Mermaid's syntax is used to create diagrams. You'll find that it is not too tric Syntax, together with Deployment and Configuration constitute the whole of Mermaid. -Diagram Examples can be found in the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor), it is also a great practice area. +Diagram Examples can be found in the [Mermaid Live Editor](https://mermaid.live), it is also a great practice area. ## Syntax Structure @@ -40,7 +40,7 @@ One should **beware the use of some words or symbols** that can break diagrams. ### Mermaid Live Editor -Now, that you've seen what you should not add to your diagrams, you can play around with them in the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor). +Now, that you've seen what you should not add to your diagrams, you can play around with them in the [Mermaid Live Editor](https://mermaid.live). # Configuration @@ -50,7 +50,7 @@ If you are interested in altering and customizing your Mermaid Diagrams, you wil This section will introduce the different methods of configuring the behaviors and appearances of Mermaid Diagrams. The following are the most commonly used methods, and they are all tied to Mermaid [Deployment](n00b-gettingStarted) methods. -### Configuration Section in the [Live Editor](https://mermaid-js.github.io/mermaid-live-editor). +### Configuration Section in the [Live Editor](https://mermaid.live). Here you can edit certain values to change the behavior and appearance of the diagram. diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 95a9b53f1a..dd0f1c9b28 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -128,6 +128,7 @@ "ts-node": "^10.9.1", "typescript": "^4.8.3", "unist-util-flatmap": "^1.0.0", + "vite": "^3.1.4", "vitepress": "^1.0.0-alpha.19", "vitepress-plugin-mermaid": "^2.0.8", "vitepress-plugin-search": "^1.0.4-alpha.11" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7f5103b7c..3784a0b08a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -203,6 +203,7 @@ importers: typedoc-plugin-markdown: ^3.13.6 typescript: ^4.8.3 unist-util-flatmap: ^1.0.0 + vite: ^3.1.4 vitepress: ^1.0.0-alpha.19 vitepress-plugin-mermaid: ^2.0.8 vitepress-plugin-search: ^1.0.4-alpha.11 @@ -239,13 +240,13 @@ importers: concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 + cypress-image-snapshot: 4.0.1_cypress@10.8.0 esbuild: 0.15.8 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm + eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 @@ -264,12 +265,13 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a + ts-node: 10.9.1_typescript@4.8.3 typescript: 4.8.3 unist-util-flatmap: 1.0.0 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_ml5vzxpqibyfsid5kdls3ch6aa - vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y + vite: 3.1.4 + vitepress: 1.0.0-alpha.19 + vitepress-plugin-mermaid: 2.0.8_vitepress@1.0.0-alpha.19 + vitepress-plugin-search: 1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4 packages/mermaid-example-diagram: specifiers: @@ -308,14 +310,13 @@ packages: '@algolia/autocomplete-shared': 1.7.1 dev: true - /@algolia/autocomplete-preset-algolia/1.7.1_qs6lk5nhygj2o3hj4sf6xnr724: + /@algolia/autocomplete-preset-algolia/1.7.1_algoliasearch@4.14.2: resolution: {integrity: sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==} peerDependencies: '@algolia/client-search': ^4.9.1 algoliasearch: ^4.9.1 dependencies: '@algolia/autocomplete-shared': 1.7.1 - '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true @@ -986,15 +987,7 @@ packages: /@braintree/sanitize-url/6.0.0: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} - - /@cnakazawa/watch/1.0.4: - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} - hasBin: true - dependencies: - exec-sh: 0.3.6 - minimist: 1.2.6 - dev: true + dev: false /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -1209,10 +1202,10 @@ packages: resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} dev: true - /@docsearch/js/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: + /@docsearch/js/3.2.1: resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} dependencies: - '@docsearch/react': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y + '@docsearch/react': 3.2.1 preact: 10.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -1221,7 +1214,7 @@ packages: - react-dom dev: true - /@docsearch/react/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: + /@docsearch/react/3.2.1: resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -1236,7 +1229,7 @@ packages: optional: true dependencies: '@algolia/autocomplete-core': 1.7.1 - '@algolia/autocomplete-preset-algolia': 1.7.1_qs6lk5nhygj2o3hj4sf6xnr724 + '@algolia/autocomplete-preset-algolia': 1.7.1_algoliasearch@4.14.2 '@docsearch/css': 3.2.1 algoliasearch: 4.14.2 transitivePeerDependencies: @@ -1357,18 +1350,6 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console/26.6.2: - resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - jest-message-util: 26.6.2 - jest-util: 26.6.2 - slash: 3.0.0 - dev: true - /@jest/console/29.1.0: resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1381,46 +1362,6 @@ packages: slash: 3.0.0 dev: true - /@jest/core/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/reporters': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 26.6.2 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - jest-watcher: 26.6.2 - micromatch: 4.0.5 - p-each-series: 2.2.0 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/core/29.1.1_ts-node@10.9.1: resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1463,16 +1404,6 @@ packages: - ts-node dev: true - /@jest/environment/26.6.2: - resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - jest-mock: 26.6.2 - dev: true - /@jest/environment/29.1.1: resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1500,18 +1431,6 @@ packages: - supports-color dev: true - /@jest/fake-timers/26.6.2: - resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@sinonjs/fake-timers': 6.0.1 - '@types/node': 18.8.1 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - /@jest/fake-timers/29.1.1: resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1524,15 +1443,6 @@ packages: jest-util: 29.1.0 dev: true - /@jest/globals/26.6.2: - resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/types': 26.6.2 - expect: 26.6.2 - dev: true - /@jest/globals/29.1.1: resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1545,40 +1455,6 @@ packages: - supports-color dev: true - /@jest/reporters/26.6.2: - resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-haste-map: 26.6.2 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 7.1.2 - optionalDependencies: - node-notifier: 8.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/reporters/29.1.0: resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1624,15 +1500,6 @@ packages: '@sinclair/typebox': 0.24.43 dev: true - /@jest/source-map/26.6.2: - resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} - engines: {node: '>= 10.14.2'} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.10 - source-map: 0.6.1 - dev: true - /@jest/source-map/29.0.0: resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1642,16 +1509,6 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/test-result/26.6.2: - resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/types': 26.6.2 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - /@jest/test-result/29.1.0: resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1662,23 +1519,6 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/test-sequencer/29.1.0: resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1689,29 +1529,6 @@ packages: slash: 3.0.0 dev: true - /@jest/transform/26.6.2: - resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/core': 7.12.3 - '@jest/types': 26.6.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-regex-util: 26.0.0 - jest-util: 26.6.2 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/transform/29.1.0: resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1735,17 +1552,6 @@ packages: - supports-color dev: true - /@jest/types/26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.8.1 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - dev: true - /@jest/types/29.1.0: resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1820,14 +1626,6 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/pluginutils/4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -1857,12 +1655,6 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/6.0.1: - resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: @@ -1957,12 +1749,6 @@ packages: resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true - /@types/concat-stream/1.6.1: - resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} - dependencies: - '@types/node': 18.8.1 - dev: true - /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -2188,12 +1974,6 @@ packages: '@types/serve-static': 1.15.0 dev: true - /@types/form-data/0.0.33: - resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} - dependencies: - '@types/node': 18.8.1 - dev: true - /@types/geojson/7946.0.10: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true @@ -2268,10 +2048,6 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node/10.17.60: - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - dev: true - /@types/node/14.18.29: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true @@ -2287,10 +2063,6 @@ packages: /@types/node/18.8.1: resolution: {integrity: sha512-vuYaNuEIbOYLTLUAJh50ezEbvxrD43iby+lpUA2aa148Nh5kX/AVO/9m1Ahmbux2iU5uxJTNF9g2Y+31uml7RQ==} - /@types/node/8.10.66: - resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} - dev: true - /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -2368,12 +2140,6 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - /@types/yargs/17.0.13: resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} dependencies: @@ -2829,53 +2595,6 @@ packages: p-iteration: 1.1.8 dev: true - /@yankeeinlondon/builder-api/0.4.1_66sppty6vuastmeigevztjtyii: - resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} - peerDependencies: - fp-ts: ^2.12.1 - inferred-types: ^0.22.0 - markdown-it: ^13.0.1 - vite-plugin-md: '*' - dependencies: - '@yankeeinlondon/happy-wrapper': 2.6.0_e3y3tk5wocdgktiwrgnxpnd3nq - fp-ts: 2.12.3 - inferred-types: 0.22.0 - markdown-it: 13.0.1 - vite-plugin-md: 0.20.4_una3iegy3mpnzqsvaavhifvkiy - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - supports-color - - terser - dev: true - - /@yankeeinlondon/happy-wrapper/2.6.0_e3y3tk5wocdgktiwrgnxpnd3nq: - resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} - peerDependencies: - happy-dom: ^6.0.4 - dependencies: - happy-dom: 6.0.4 - native-dash: 1.23.2_e3y3tk5wocdgktiwrgnxpnd3nq - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - jsdom - - less - - sass - - stylus - - supports-color - - terser - dev: true - /JSONSelect/0.4.0: resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} engines: {node: '>=0.4.7'} @@ -3083,15 +2802,6 @@ packages: engines: {node: '>=12'} dev: true - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -3125,21 +2835,6 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /arr-diff/4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-flatten/1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-union/3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: true - /array-flatten/1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true @@ -3153,20 +2848,11 @@ packages: engines: {node: '>=8'} dev: true - /array-unique/0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true - /arrify/1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true - /asap/2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: true - /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -3182,11 +2868,6 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /assign-symbols/1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: true - /ast-types/0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -3212,12 +2893,6 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /atob/2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - dev: true - /aws-sign2/0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true @@ -3242,25 +2917,6 @@ packages: - debug dev: true - /babel-jest/26.6.3_@babel+core@7.12.3: - resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2_@babel+core@7.12.3 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-jest/29.1.0_@babel+core@7.12.3: resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3292,16 +2948,6 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/26.6.2: - resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.19.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.18.2 - dev: true - /babel-plugin-jest-hoist/29.0.2: resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3332,17 +2978,6 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 dev: true - /babel-preset-jest/26.6.2_@babel+core@7.12.3: - resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 - dev: true - /babel-preset-jest/29.0.2_@babel+core@7.12.3: resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3361,19 +2996,6 @@ packages: /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base/0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.0 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: true - /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true @@ -3433,24 +3055,6 @@ packages: balanced-match: 1.0.2 dev: false - /braces/2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - 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.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -3458,28 +3062,6 @@ packages: fill-range: 7.0.1 dev: true - /brilliant-errors/0.6.0_e3y3tk5wocdgktiwrgnxpnd3nq: - resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} - engines: {node: '>=12.0.0'} - dependencies: - callsites: 3.1.0 - common-types: 1.31.1 - inferred-types: 0.22.0 - vitest: 0.19.1_e3y3tk5wocdgktiwrgnxpnd3nq - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - supports-color - - terser - dev: true - /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true @@ -3529,21 +3111,6 @@ packages: yargs-parser: 20.2.9 dev: true - /cache-base/1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.0 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: true - /cacheable-lookup/5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -3598,13 +3165,6 @@ packages: engines: {node: '>=10'} dev: true - /capture-exit/2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} - dependencies: - rsvp: 4.8.5 - dev: true - /caseless/0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true @@ -3688,18 +3248,10 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true - /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true - /cjs-module-lexer/0.6.0: - resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} - dev: true - /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -3711,16 +3263,6 @@ packages: jsonlint: 1.6.0 dev: true - /class-utils/0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: true - /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -3758,14 +3300,6 @@ packages: string-width: 5.1.2 dev: true - /cliui/6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: true - /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -3789,14 +3323,6 @@ packages: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} dev: true - /collection-visit/1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: true - /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -3842,6 +3368,7 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -3858,10 +3385,6 @@ packages: engines: {node: '>=4.0.0'} dev: true - /common-types/1.31.1: - resolution: {integrity: sha512-eixAd22Gmek1dgsPgyqCSjzMAlp8rpSLkb44iEMfOzR9fwGFYEkH+AWOHmwSFxWmO8MvMND/m1jpZX0Wk4+yJA==} - dev: true - /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -3869,24 +3392,10 @@ packages: dot-prop: 5.3.0 dev: true - /component-emitter/1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} - dev: true - /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concat-stream/1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.7 - typedarray: 0.0.6 - dev: true - /concurrently/7.4.0: resolution: {integrity: sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==} engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} @@ -3937,8 +3446,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -3960,11 +3469,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /copy-descriptor/0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true - /core-util-is/1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true @@ -4055,18 +3559,10 @@ packages: source-map: 0.6.1 dev: true - /css.escape/1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - dev: true - /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -4082,7 +3578,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: + /cypress-image-snapshot/4.0.1_cypress@10.8.0: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -4092,7 +3588,7 @@ packages: cypress: 10.8.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 + jest-image-snapshot: 4.2.0 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -4197,10 +3693,12 @@ packages: engines: {node: '>=12'} dependencies: internmap: 2.0.3 + dev: false /d3-axis/3.0.0: resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} engines: {node: '>=12'} + dev: false /d3-brush/3.0.0: resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} @@ -4211,32 +3709,38 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false /d3-chord/3.0.1: resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 + dev: false /d3-color/3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} + dev: false /d3-contour/4.0.0: resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-delaunay/6.0.2: resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} engines: {node: '>=12'} dependencies: delaunator: 5.0.0 + dev: false /d3-dispatch/3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} + dev: false /d3-drag/3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} @@ -4244,6 +3748,7 @@ packages: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 + dev: false /d3-dsv/3.0.1: resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} @@ -4253,16 +3758,19 @@ packages: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 + dev: false /d3-ease/3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} + dev: false /d3-fetch/3.0.1: resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} engines: {node: '>=12'} dependencies: d3-dsv: 3.0.1 + dev: false /d3-force/3.0.0: resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} @@ -4271,42 +3779,51 @@ packages: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 + dev: false /d3-format/3.1.0: resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} engines: {node: '>=12'} + dev: false /d3-geo/3.0.1: resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-hierarchy/3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} engines: {node: '>=12'} + dev: false /d3-interpolate/3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 + dev: false /d3-path/3.0.1: resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} engines: {node: '>=12'} + dev: false /d3-polygon/3.0.1: resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} engines: {node: '>=12'} + dev: false /d3-quadtree/3.0.1: resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} engines: {node: '>=12'} + dev: false /d3-random/3.0.1: resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} engines: {node: '>=12'} + dev: false /d3-scale-chromatic/3.0.0: resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} @@ -4314,6 +3831,7 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 + dev: false /d3-scale/4.0.2: resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} @@ -4324,32 +3842,38 @@ packages: d3-interpolate: 3.0.1 d3-time: 3.0.0 d3-time-format: 4.1.0 + dev: false /d3-selection/3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} + dev: false /d3-shape/3.1.0: resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 + dev: false /d3-time-format/4.1.0: resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} engines: {node: '>=12'} dependencies: d3-time: 3.0.0 + dev: false /d3-time/3.0.0: resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-timer/3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} + dev: false /d3-transition/3.0.1_d3-selection@3.0.0: resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} @@ -4363,6 +3887,7 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 + dev: false /d3-zoom/3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} @@ -4373,6 +3898,7 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false /d3/7.6.1: resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} @@ -4408,6 +3934,7 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1_d3-selection@3.0.0 d3-zoom: 3.0.0 + dev: false /dagre-d3/0.6.4: resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} @@ -4416,12 +3943,14 @@ packages: dagre: 0.8.5 graphlib: 2.1.8 lodash: 4.17.21 + dev: false /dagre/0.8.5: resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} dependencies: graphlib: 2.1.8 lodash: 4.17.21 + dev: false /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} @@ -4440,15 +3969,6 @@ packages: engines: {node: '>= 6'} dev: true - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -4550,11 +4070,6 @@ packages: character-entities: 2.0.2 dev: true - /decode-uri-component/0.2.0: - resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} - engines: {node: '>=0.10'} - dev: true - /decompress-response/6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -4587,28 +4102,6 @@ packages: engines: {node: '>=10'} dev: true - /define-property/0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 0.1.6 - dev: true - - /define-property/1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.2 - dev: true - - /define-property/2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.2 - isobject: 3.0.1 - dev: true - /degenerator/3.0.2: resolution: {integrity: sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==} engines: {node: '>= 6'} @@ -4623,6 +4116,7 @@ packages: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: robust-predicates: 3.0.1 + dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -4654,11 +4148,6 @@ packages: engines: {node: '>=8'} dev: true - /diff-sequences/26.6.2: - resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} - engines: {node: '>= 10.14.2'} - dev: true - /diff-sequences/29.0.0: resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4700,13 +4189,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -4723,6 +4205,7 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} + dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -4767,11 +4250,6 @@ packages: engines: {node: '>=12'} dev: true - /emittery/0.7.2: - resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} - engines: {node: '>=10'} - dev: true - /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -5348,7 +4826,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: + /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5364,7 +4842,6 @@ packages: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha eslint: 8.23.1 - jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -5692,10 +5169,6 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true - /exec-sh/0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} - dev: true - /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -5766,33 +5239,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expand-brackets/2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /expect/26.6.2: - resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - ansi-styles: 4.3.0 - jest-get-type: 26.3.0 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - dev: true - /expect/29.1.0: resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5843,41 +5289,10 @@ packages: - supports-color dev: true - /extend-shallow/2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - dev: true - - /extend-shallow/3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: true - /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true - /extglob/2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - 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.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /extract-zip/2.0.1_supports-color@8.1.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -5961,16 +5376,6 @@ packages: engines: {node: '>= 6'} dev: true - /fill-range/4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: true - /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -6040,11 +5445,6 @@ packages: debug: 4.3.2 dev: true - /for-in/1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: true - /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -6066,15 +5466,6 @@ packages: mime-types: 2.1.35 dev: true - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -6089,17 +5480,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /fp-ts/2.12.3: - resolution: {integrity: sha512-8m0XvW8kZbfnJOA4NvSVXu95mLbPf4LQGwQyqVukIYS4KzSNJiyKSmuZUmbVHteUi6MGkAJGPb0goPZqI+Tsqg==} - dev: true - - /fragment-cache/0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: true - /fresh/0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -6196,11 +5576,6 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-port/3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} - dev: true - /get-stdin/5.0.1: resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==} engines: {node: '>=0.12.0'} @@ -6239,11 +5614,6 @@ packages: - supports-color dev: true - /get-value/2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: true - /getos/3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: @@ -6375,21 +5745,7 @@ packages: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 - - /gray-matter/4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - dev: true - - /growly/1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} - dev: true - optional: true + dev: false /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} @@ -6404,20 +5760,6 @@ packages: uglify-js: 3.17.3 dev: false - /happy-dom/6.0.4: - resolution: {integrity: sha512-b+ID23Ms0BY08UNLymsOMG7EI2jSlwEt4cbJs938GZfeNAg+fqgkSO3TokQMgSOFoHznpjWmpVjBUL5boJ9PWw==} - dependencies: - css.escape: 1.5.1 - he: 1.2.0 - node-fetch: 2.6.7 - sync-request: 6.1.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - transitivePeerDependencies: - - encoding - dev: true - /har-schema/2.0.0: resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} @@ -6463,37 +5805,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-value/0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: true - - /has-value/1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: true - - /has-values/0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: true - - /has-values/1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: true - /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -6501,11 +5812,6 @@ packages: function-bind: 1.1.1 dev: true - /he/1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - /heap/0.2.7: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false @@ -6521,13 +5827,6 @@ packages: lru-cache: 6.0.0 dev: true - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -6548,16 +5847,6 @@ packages: entities: 4.4.0 dev: true - /http-basic/8.1.3: - resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} - engines: {node: '>=6.0.0'} - dependencies: - caseless: 0.12.0 - concat-stream: 1.6.2 - http-response-object: 3.0.2 - parse-cache-control: 1.0.1 - dev: true - /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -6595,12 +5884,6 @@ packages: - supports-color dev: true - /http-response-object/3.0.2: - resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} - dependencies: - '@types/node': 10.17.60 - dev: true - /http-signature/1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -6720,12 +6003,6 @@ packages: engines: {node: '>=8'} dev: true - /inferred-types/0.22.0: - resolution: {integrity: sha512-7JF/huiuS1ANuQisfRigytz4IdYbmQVXOW+Jt6IL4k3TQxsCxAz72rWccBKTomnmGzBRcd3ki8gyrESYY/2bYw==} - dependencies: - common-types: 1.31.1 - dev: true - /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6749,6 +6026,7 @@ packages: /internmap/2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} + dev: false /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} @@ -6763,20 +6041,6 @@ packages: engines: {node: '>= 0.10'} dev: true - /is-accessor-descriptor/0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-accessor-descriptor/1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: true - /is-alphabetical/1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} dev: true @@ -6792,22 +6056,11 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-buffer/1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: true - /is-buffer/2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} dev: true - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: true - /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -6821,74 +6074,23 @@ packages: has: 1.0.3 dev: true - /is-data-descriptor/0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-data-descriptor/1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: true - /is-decimal/1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} dev: true - /is-descriptor/0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} - dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 - dev: true - - /is-descriptor/1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 dev: true - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - hasBin: true dev: true - optional: true - /is-extendable/0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: true - - /is-extendable/1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: 2.0.4 - dev: true - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-fullwidth-code-point/4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} dev: true /is-generator-fn/2.1.0: @@ -6915,13 +6117,6 @@ packages: is-path-inside: 3.0.3 dev: true - /is-number/3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -6947,13 +6142,6 @@ packages: engines: {node: '>=12'} dev: true - /is-plain-object/2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true @@ -6989,43 +6177,14 @@ packages: engines: {node: '>=10'} dev: true - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - optional: true - /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /isobject/2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - dependencies: - isarray: 1.0.0 - dev: true - - /isobject/3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true - /isstream/0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true @@ -7035,18 +6194,6 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.12.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-instrument/5.2.0: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} @@ -7096,15 +6243,6 @@ packages: plist: 3.0.6 dev: true - /jest-changed-files/26.6.2: - resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - execa: 4.1.0 - throat: 5.0.0 - dev: true - /jest-changed-files/29.0.0: resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7140,32 +6278,6 @@ packages: - supports-color dev: true - /jest-cli/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - is-ci: 2.0.0 - jest-config: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-validate: 26.6.2 - prompts: 2.4.2 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-cli/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7194,41 +6306,6 @@ packages: - ts-node dev: true - /jest-config/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} - engines: {node: '>= 10.14.2'} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.12.3 - '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 - '@jest/types': 26.6.2 - babel-jest: 26.6.3_@babel+core@7.12.3 - chalk: 4.1.2 - deepmerge: 4.2.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-environment-jsdom: 26.6.2 - jest-environment-node: 26.6.2 - jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3_ts-node@10.9.1 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - micromatch: 4.0.5 - pretty-format: 26.6.2 - ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - /jest-config/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7269,16 +6346,6 @@ packages: - supports-color dev: true - /jest-diff/26.6.2: - resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - diff-sequences: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-diff/29.1.0: resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7289,13 +6356,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-docblock/26.0.0: - resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} - engines: {node: '>= 10.14.2'} - dependencies: - detect-newline: 3.1.0 - dev: true - /jest-docblock/29.0.0: resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7303,17 +6363,6 @@ packages: detect-newline: 3.1.0 dev: true - /jest-each/26.6.2: - resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - jest-get-type: 26.3.0 - jest-util: 26.6.2 - pretty-format: 26.6.2 - dev: true - /jest-each/29.1.0: resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7325,36 +6374,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-environment-jsdom/26.6.2: - resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - jest-mock: 26.6.2 - jest-util: 26.6.2 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/26.6.2: - resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - /jest-environment-node/29.1.1: resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7367,39 +6386,11 @@ packages: jest-util: 29.1.0 dev: true - /jest-get-type/26.3.0: - resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-get-type/29.0.0: resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map/26.6.2: - resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.5 - '@types/node': 18.8.1 - anymatch: 3.1.2 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 26.0.0 - jest-serializer: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - micromatch: 4.0.5 - sane: 4.1.0 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-haste-map/29.1.0: resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7419,7 +6410,7 @@ packages: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0_jest@26.6.3: + /jest-image-snapshot/4.2.0: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -7428,7 +6419,6 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 26.6.3_ts-node@10.9.1 lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -7455,44 +6445,6 @@ packages: ssim.js: 3.5.0 dev: true - /jest-jasmine2/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/traverse': 7.19.1 - '@jest/environment': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - co: 4.6.0 - expect: 26.6.2 - is-generator-fn: 2.1.0 - jest-each: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - pretty-format: 26.6.2 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-leak-detector/26.6.2: - resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} - engines: {node: '>= 10.14.2'} - dependencies: - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-leak-detector/29.1.0: resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7501,16 +6453,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-matcher-utils/26.6.2: - resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-matcher-utils/29.1.0: resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7521,21 +6463,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-message-util/26.6.2: - resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 26.6.2 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 26.6.2 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util/29.1.0: resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7551,14 +6478,6 @@ packages: stack-utils: 2.0.5 dev: true - /jest-mock/26.6.2: - resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - dev: true - /jest-mock/29.1.1: resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7568,18 +6487,6 @@ packages: jest-util: 29.1.0 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 26.6.2 - dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} @@ -7592,27 +6499,11 @@ packages: jest-resolve: 29.1.0 dev: true - /jest-regex-util/26.0.0: - resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-regex-util/29.0.0: resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies/26.6.3: - resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - jest-regex-util: 26.0.0 - jest-snapshot: 26.6.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-resolve-dependencies/29.1.1: resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7623,20 +6514,6 @@ packages: - supports-color dev: true - /jest-resolve/26.6.2: - resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 - jest-util: 26.6.2 - read-pkg-up: 7.0.1 - resolve: 1.22.1 - slash: 3.0.0 - dev: true - /jest-resolve/29.1.0: resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7652,38 +6529,6 @@ packages: slash: 3.0.0 dev: true - /jest-runner/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - emittery: 0.7.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-docblock: 26.0.0 - jest-haste-map: 26.6.2 - jest-leak-detector: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-worker: 26.6.2 - source-map-support: 0.5.13 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-runner/29.1.1: resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7713,46 +6558,6 @@ packages: - supports-color dev: true - /jest-runtime/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/globals': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - cjs-module-lexer: 0.6.0 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - slash: 3.0.0 - strip-bom: 4.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-runtime/29.1.1: resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7783,38 +6588,6 @@ packages: - supports-color dev: true - /jest-serializer/26.6.2: - resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/node': 18.8.1 - graceful-fs: 4.2.10 - dev: true - - /jest-snapshot/26.6.2: - resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/types': 7.19.0 - '@jest/types': 26.6.2 - '@types/babel__traverse': 7.18.2 - '@types/prettier': 2.7.1 - chalk: 4.1.2 - expect: 26.6.2 - graceful-fs: 4.2.10 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - jest-haste-map: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - natural-compare: 1.4.0 - pretty-format: 26.6.2 - semver: 7.3.7 - transitivePeerDependencies: - - supports-color - dev: true - /jest-snapshot/29.1.0: resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7847,18 +6620,6 @@ packages: - supports-color dev: true - /jest-util/26.6.2: - resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - is-ci: 2.0.0 - micromatch: 4.0.5 - dev: true - /jest-util/29.1.0: resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7871,18 +6632,6 @@ packages: picomatch: 2.3.1 dev: true - /jest-validate/26.6.2: - resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 26.3.0 - leven: 3.1.0 - pretty-format: 26.6.2 - dev: true - /jest-validate/29.1.0: resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7895,19 +6644,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-watcher/26.6.2: - resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 26.6.2 - string-length: 4.0.2 - dev: true - /jest-watcher/29.1.0: resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7922,15 +6658,6 @@ packages: string-length: 4.0.2 dev: true - /jest-worker/26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 18.8.1 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - /jest-worker/29.1.0: resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7940,22 +6667,6 @@ packages: supports-color: 8.1.1 dev: true - /jest/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - import-local: 3.1.0 - jest-cli: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7990,12 +6701,12 @@ packages: engines: {node: '>=0.4'} hasBin: true dependencies: + JSONSelect: 0.4.0 cjson: 0.3.0 ebnf-parser: 0.1.10 escodegen: 1.3.3 esprima: 1.1.1 jison-lex: 0.3.4 - JSONSelect: 0.4.0 lex-parser: 0.1.4 nomnom: 1.5.2 dev: true @@ -8050,48 +6761,6 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.4.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.4.6 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsdom/20.0.0: resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} engines: {node: '>=14'} @@ -8274,25 +6943,7 @@ packages: /khroma/2.0.0: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} - - /kind-of/3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of/4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of/5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true + dev: false /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -8559,11 +7210,6 @@ packages: tmpl: 1.0.5 dev: true - /map-cache/0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: true - /map-obj/1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -8578,13 +7224,6 @@ packages: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: true - /map-visit/1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: true - /markdown-it/13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} hasBin: true @@ -8696,20 +7335,6 @@ packages: engines: {node: '>= 8'} dev: true - /mermaid/9.1.7: - resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} - dependencies: - '@braintree/sanitize-url': 6.0.0 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.0 - graphlib: 2.1.8 - khroma: 2.0.0 - moment-mini: 2.24.0 - stylis: 4.1.2 - dev: true - /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -8900,27 +7525,6 @@ packages: - supports-color dev: true - /micromatch/3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -8997,14 +7601,6 @@ packages: /minimist/1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - /mixin-deep/1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: true - /mkdirp/0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -9012,10 +7608,6 @@ packages: minimist: 1.2.6 dev: true - /moment-mini/2.24.0: - resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==} - dev: true - /moment-mini/2.29.4: resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} dev: false @@ -9052,44 +7644,6 @@ packages: hasBin: true dev: true - /nanomatch/1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - 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.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /native-dash/1.23.2_e3y3tk5wocdgktiwrgnxpnd3nq: - resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} - dependencies: - brilliant-errors: 0.6.0_e3y3tk5wocdgktiwrgnxpnd3nq - inferred-types: 0.22.0 - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - supports-color - - terser - dev: true - /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -9128,19 +7682,6 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-notifier/8.0.2: - resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - requiresBuild: true - dependencies: - growly: 1.3.0 - is-wsl: 2.2.0 - semver: 7.3.7 - shellwords: 0.1.1 - uuid: 8.3.2 - which: 2.0.2 - dev: true - optional: true - /nomnom/1.5.2: resolution: {integrity: sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==} deprecated: Package no longer supported. Contact support@npmjs.com for more info. @@ -9172,13 +7713,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path/2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: true - /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -9218,33 +7752,10 @@ packages: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true - /object-copy/0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: true - /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true - /object-visit/1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /object.pick/1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -9305,11 +7816,6 @@ packages: engines: {node: '>=8'} dev: true - /p-each-series/2.2.0: - resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} - engines: {node: '>=8'} - dev: true - /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -9404,10 +7910,6 @@ packages: callsites: 3.1.0 dev: true - /parse-cache-control/1.0.1: - resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} - dev: true - /parse-entities/2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} dependencies: @@ -9444,11 +7946,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /pascalcase/0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true - /path-browserify/1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true @@ -9588,11 +8085,6 @@ packages: hasBin: true dev: true - /posix-character-classes/0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: true - /postcss-value-parser/4.1.0: resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} dev: true @@ -9645,16 +8137,6 @@ packages: engines: {node: '>=6'} dev: true - /pretty-format/26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: true - /pretty-format/29.1.0: resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9664,16 +8146,6 @@ packages: react-is: 18.2.0 dev: true - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true - - /promise/8.2.0: - resolution: {integrity: sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==} - dependencies: - asap: 2.0.6 - dev: true - /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -9750,13 +8222,6 @@ packages: side-channel: 1.0.4 dev: true - /qs/6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: true - /qs/6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} @@ -9795,10 +8260,6 @@ packages: unpipe: 1.0.0 dev: true - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -9831,18 +8292,6 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream/2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: true - /readable-stream/3.6.0: resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} engines: {node: '>= 6'} @@ -9860,14 +8309,6 @@ packages: strip-indent: 3.0.0 dev: true - /regex-not/1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: true - /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -9902,20 +8343,6 @@ packages: - supports-color dev: true - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: true - - /repeat-element/1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: true - - /repeat-string/1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true - /request-progress/3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} dependencies: @@ -9959,10 +8386,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-main-filename/2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true - /requires-port/1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true @@ -9995,11 +8418,6 @@ packages: global-dirs: 0.1.1 dev: true - /resolve-url/0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true - /resolve.exports/1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} engines: {node: '>=10'} @@ -10028,11 +8446,6 @@ packages: signal-exit: 3.0.7 dev: true - /ret/0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true - /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -10058,6 +8471,7 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} + dev: false /rollup/2.78.1: resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} @@ -10073,11 +8487,7 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - - /rsvp/4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} - dev: true + dev: false /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -10087,6 +8497,7 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + dev: false /rxjs/7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} @@ -10109,34 +8520,9 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex/1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: true - /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sane/4.1.0: - resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} - engines: {node: 6.* || 8.* || >= 10.*} - deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added - hasBin: true - dependencies: - '@cnakazawa/watch': 1.0.4 - anymatch: 2.0.0 - capture-exit: 2.0.0 - exec-sh: 0.3.6 - execa: 1.0.0 - fb-watchman: 2.0.2 - micromatch: 3.1.10 - minimist: 1.2.6 - walker: 1.0.8 - transitivePeerDependencies: - - supports-color - dev: true - /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -10151,14 +8537,6 @@ packages: xmlchars: 2.2.0 dev: true - /section-matter/1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - dev: true - /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -10210,20 +8588,6 @@ packages: - supports-color dev: true - /set-blocking/2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true - - /set-value/2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: true - /setprototypeof/1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true @@ -10256,11 +8620,6 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true - /shellwords/0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - dev: true - optional: true - /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -10334,38 +8693,6 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: true - /snapdragon-node/2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: true - - /snapdragon-util/3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /snapdragon/0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /socks-proxy-agent/5.0.1: resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} engines: {node: '>= 6'} @@ -10390,17 +8717,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map-resolve/0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.0 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: true - /source-map-support/0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: @@ -10408,11 +8724,6 @@ packages: source-map: 0.6.1 dev: true - /source-map-url/0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true - /source-map/0.1.43: resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} engines: {node: '>=0.8.0'} @@ -10431,11 +8742,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: true - /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true @@ -10466,13 +8772,6 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true - /split-string/3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - dev: true - /split/0.3.3: resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} dependencies: @@ -10532,14 +8831,6 @@ packages: - supports-color dev: true - /static-extend/0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: true - /statuses/2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -10586,12 +8877,6 @@ packages: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} dev: true - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: true - /string_decoder/1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: @@ -10619,11 +8904,6 @@ packages: ansi-regex: 6.0.1 dev: true - /strip-bom-string/1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: true - /strip-bom/4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} @@ -10664,6 +8944,7 @@ packages: /stylis/4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} + dev: false /supports-color/2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} @@ -10708,21 +8989,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /sync-request/6.1.0: - resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} - engines: {node: '>=8.0.0'} - dependencies: - http-response-object: 3.0.2 - sync-rpc: 1.3.6 - then-request: 6.0.2 - dev: true - - /sync-rpc/1.3.6: - resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} - dependencies: - get-port: 3.2.0 - dev: true - /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -10757,23 +9023,6 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /then-request/6.0.2: - resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} - engines: {node: '>=6.0.0'} - dependencies: - '@types/concat-stream': 1.6.1 - '@types/form-data': 0.0.33 - '@types/node': 8.10.66 - '@types/qs': 6.9.7 - caseless: 0.12.0 - concat-stream: 1.6.2 - form-data: 2.3.3 - http-basic: 8.1.3 - http-response-object: 3.0.2 - promise: 8.2.0 - qs: 6.11.0 - dev: true - /throat/5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true @@ -10796,11 +9045,6 @@ packages: resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} dev: true - /tinypool/0.2.4: - resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} - engines: {node: '>=14.0.0'} - dev: true - /tinypool/0.3.0: resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} @@ -10827,21 +9071,6 @@ packages: engines: {node: '>=4'} dev: true - /to-object-path/0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /to-regex-range/2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: true - /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -10849,16 +9078,6 @@ packages: is-number: 7.0.0 dev: true - /to-regex/3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: true - /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -10891,13 +9110,6 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -10981,7 +9193,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a: + /ts-node/10.9.1_typescript@4.8.3: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -11000,7 +9212,6 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.8.1 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -11107,16 +9318,6 @@ packages: mime-types: 2.1.35 dev: true - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - - /typedarray/0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: true - /typedoc-plugin-markdown/3.13.6_typedoc@0.23.16: resolution: {integrity: sha512-ISSc9v3BK7HkokxSBuJPttXox4tJ6hP0N9wfSIk0fmLN67+eqtAxbk97gs2nDiuha+RTO5eW9gdeAb+RPP0mgg==} peerDependencies: @@ -11179,16 +9380,6 @@ packages: vfile: 5.3.5 dev: true - /union-value/1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: true - /unist-util-flatmap/1.0.0: resolution: {integrity: sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ==} dev: true @@ -11244,14 +9435,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /unset-value/1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: true - /untildify/4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -11263,11 +9446,6 @@ packages: punycode: 2.1.1 dev: true - /urix/0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true - /url-parse/1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: @@ -11275,11 +9453,6 @@ packages: requires-port: 1.0.0 dev: true - /use/3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true - /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -11320,15 +9493,6 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul/7.1.2: - resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} - engines: {node: '>=10.10.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - source-map: 0.7.4 - dev: true - /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -11375,35 +9539,6 @@ packages: vfile-message: 3.1.2 dev: true - /vite-plugin-md/0.20.4_una3iegy3mpnzqsvaavhifvkiy: - resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} - peerDependencies: - '@rollup/pluginutils': ^4.2.1 - rollup: ^2.77.0 - dependencies: - '@rollup/pluginutils': 4.2.1 - '@yankeeinlondon/builder-api': 0.4.1_66sppty6vuastmeigevztjtyii - '@yankeeinlondon/happy-wrapper': 2.6.0_e3y3tk5wocdgktiwrgnxpnd3nq - gray-matter: 4.0.3 - markdown-it: 13.0.1 - rollup: 2.79.1 - source-map-js: 1.0.2 - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - fp-ts - - happy-dom - - inferred-types - - jsdom - - less - - sass - - stylus - - supports-color - - terser - dev: true - /vite/3.1.3: resolution: {integrity: sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -11458,19 +9593,17 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_ml5vzxpqibyfsid5kdls3ch6aa: + /vitepress-plugin-mermaid/2.0.8_vitepress@1.0.0-alpha.19: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 vite-plugin-md: ^0.20.4 vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: - mermaid: 9.1.7 - vite-plugin-md: 0.20.4_una3iegy3mpnzqsvaavhifvkiy - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vitepress: 1.0.0-alpha.19 dev: true - /vitepress-plugin-search/1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y: + /vitepress-plugin-search/1.0.4-alpha.11_yafhezb4qji4flzzwo3ufrgyx4: resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -11479,16 +9612,15 @@ packages: vue: '3' dependencies: vite: 3.1.4 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y - vue: 3.2.40 + vitepress: 1.0.0-alpha.19 dev: true - /vitepress/1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y: + /vitepress/1.0.0-alpha.19: resolution: {integrity: sha512-0FIUZB6JGXio7SELDDUkyQoMjmO/UAXqDXmznzOsBKsdZ3EHlyb6NaP/V/BMfN5S8+GV88ScbIL0jd/pDzkLBg==} hasBin: true dependencies: '@docsearch/css': 3.2.1 - '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y + '@docsearch/js': 3.2.1 '@vitejs/plugin-vue': 3.1.2_vite@3.1.4+vue@3.2.40 '@vue/devtools-api': 6.4.3 '@vueuse/core': 9.3.0_vue@3.2.40 @@ -11508,50 +9640,6 @@ packages: - terser dev: true - /vitest/0.19.1_e3y3tk5wocdgktiwrgnxpnd3nq: - resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} - engines: {node: '>=v14.16.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - c8: '*' - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - c8: - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@types/chai': 4.3.3 - '@types/chai-subset': 1.3.3 - '@types/node': 18.8.1 - chai: 4.3.6 - debug: 4.3.4 - happy-dom: 6.0.4 - jsdom: 20.0.0 - local-pkg: 0.4.2 - tinypool: 0.2.4 - tinyspy: 1.0.2 - vite: 3.1.4 - transitivePeerDependencies: - - less - - sass - - stylus - - supports-color - - terser - dev: true - /vitest/0.23.4_gkhtrnfwk72a2xpsvrk7h3dcna: resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} engines: {node: '>=v14.16.0'} @@ -11667,13 +9755,6 @@ packages: browser-process-hrtime: 1.0.0 dev: true - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -11720,27 +9801,11 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} dev: true - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: true - /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -11752,10 +9817,6 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -11784,19 +9845,6 @@ packages: webidl-conversions: 3.0.1 dev: true - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - - /which-module/2.0.0: - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: true - /which/1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -11843,15 +9891,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - /write-file-atomic/4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -11912,10 +9951,6 @@ packages: optional: true dev: true - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} @@ -11934,10 +9969,6 @@ packages: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: true - /y18n/4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true - /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -11961,14 +9992,6 @@ packages: engines: {node: '>= 14'} dev: true - /yargs-parser/18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: true - /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -11979,23 +10002,6 @@ packages: engines: {node: '>=12'} dev: true - /yargs/15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.0 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: true - /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} From 2ae8bf29877a447aa0e62c845446681369525391 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Tue, 18 Oct 2022 16:04:14 +0200 Subject: [PATCH 0432/1038] Color fix for default nodes in mindmap, line uses inv color --- packages/mermaid-mindmap/src/styles.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mermaid-mindmap/src/styles.js b/packages/mermaid-mindmap/src/styles.js index 95674e8f81..241938b628 100644 --- a/packages/mermaid-mindmap/src/styles.js +++ b/packages/mermaid-mindmap/src/styles.js @@ -27,6 +27,7 @@ const genSections = (options) => { .node-icon-${i - 1} { font-size: 40px; color: ${options['cScaleLabel' + i]}; + // fill: ${options['cScaleLabel' + i]}; // color: ${options['gitInv' + i]}; } .section-edge-${i - 1}{ @@ -36,7 +37,7 @@ const genSections = (options) => { stroke-width: ${sw}; } .section-${i - 1} line { - stroke: ${options['lineColor' + i]} ; + stroke: ${options['cScaleInv' + i]} ; stroke-width: 3; } From c230ff04cbb1c99705bf85ec3491b02cb40265cf Mon Sep 17 00:00:00 2001 From: Santosh Viswanatham <viswanathamsantosh@gmail.com> Date: Tue, 18 Oct 2022 21:03:18 +0530 Subject: [PATCH 0433/1038] Update .eslintrc.json --- .eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index a360f8822d..2064f16f75 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -56,7 +56,7 @@ "checkStrings": false, "checkStringTemplates": false } - ] + ], "no-empty": [ "error", { From 6f19af23715ef72c06a06947cacf2274791f3a7c Mon Sep 17 00:00:00 2001 From: devcer <viswanathamsantosh@gmail.com> Date: Tue, 18 Oct 2022 23:38:30 +0530 Subject: [PATCH 0434/1038] changed cspell config in eslint from warn to error --- .eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index 2064f16f75..7b95ac6da2 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -50,7 +50,7 @@ ], "json/*": ["error", "allowComments"], "@cspell/spellchecker": [ - "warn", + "error", { "checkIdentifiers": false, "checkStrings": false, From c1f51175a1adbfd910d3b72d7c69524be1bf9a35 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 19 Oct 2022 00:21:52 +0530 Subject: [PATCH 0435/1038] Delete dependabot.yml --- .github/dependabot.yml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 5add84f225..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: 2 -updates: - - package-ecosystem: npm - open-pull-requests-limit: 10 - directory: / - target-branch: develop - versioning-strategy: increase - schedule: - interval: weekly - day: monday - time: '07:00' - - package-ecosystem: github-actions - directory: / - target-branch: develop - schedule: - interval: weekly - day: monday - time: '07:00' From ea314cd24a164a037f8b828e9664da942965cd2c Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Wed, 19 Oct 2022 08:01:21 +0200 Subject: [PATCH 0436/1038] Setting version to rc7 --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 86d5593b49..975a79cf3c 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.2.0-rc6", + "version": "9.2.0-rc7", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.core.mjs", "module": "./dist/mermaid.core.mjs", From 125312c114f7c0b3c85af00689b0dde914c62aa3 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 17 Oct 2022 14:01:44 +0530 Subject: [PATCH 0437/1038] chore: Add CORS to vite dev --- .vite/server.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.vite/server.ts b/.vite/server.ts index c62b6236ab..334398dd83 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -1,7 +1,15 @@ -import express from 'express'; +import express, { NextFunction, Request, Response } from 'express'; import { createServer as createViteServer } from 'vite'; // import { getBuildConfig } from './build'; +const cors = (req: Request, res: Response, next: NextFunction) => { + res.header('Access-Control-Allow-Origin', '*'); + res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); + res.header('Access-Control-Allow-Headers', 'Content-Type'); + + next(); +}; + async function createServer() { const app = express(); @@ -12,6 +20,7 @@ async function createServer() { appType: 'custom', // don't include Vite's default HTML handling middlewares }); + app.use(cors); app.use(express.static('./packages/mermaid/dist')); app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(express.static('./packages/mermaid-mindmap/dist')); From 1388e201e5fb3766251e9ef4efcd0ec34168a53a Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Wed, 19 Oct 2022 14:30:36 +0200 Subject: [PATCH 0438/1038] Adding queue for async calls in mermaidts and fixing icon color --- packages/mermaid-mindmap/src/styles.js | 3 - packages/mermaid/src/mermaid.ts | 122 ++++++++++++++++++- packages/mermaid/src/themes/theme-default.js | 17 ++- packages/mermaid/src/themes/theme-forest.js | 5 +- 4 files changed, 135 insertions(+), 12 deletions(-) diff --git a/packages/mermaid-mindmap/src/styles.js b/packages/mermaid-mindmap/src/styles.js index 241938b628..a409aa4e54 100644 --- a/packages/mermaid-mindmap/src/styles.js +++ b/packages/mermaid-mindmap/src/styles.js @@ -22,13 +22,10 @@ const genSections = (options) => { } .section-${i - 1} text { fill: ${options['cScaleLabel' + i]}; - // fill: ${options['gitInv' + i]}; } .node-icon-${i - 1} { font-size: 40px; color: ${options['cScaleLabel' + i]}; - // fill: ${options['cScaleLabel' + i]}; - // color: ${options['gitInv' + i]}; } .section-edge-${i - 1}{ stroke: ${options['cScale' + i]}; diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index a630016dc0..b7eaf8c36d 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -72,7 +72,6 @@ const initThrowsErrors = function ( callback?: Function ) { const conf = mermaidAPI.getConfig(); - // console.log('Starting rendering diagrams (init) - mermaid.init', conf); if (config) { // This is a legacy way of setting config. It is not documented and should be removed in the future. // @ts-ignore: TODO Fix ts errors @@ -210,7 +209,6 @@ const initThrowsErrorsAsync = async function ( callback?: Function ) { const conf = mermaidAPI.getConfig(); - // console.log('Starting rendering diagrams (init) - mermaid.init', conf); if (config) { // This is a legacy way of setting config. It is not documented and should be removed in the future. // @ts-ignore: TODO Fix ts errors @@ -357,12 +355,124 @@ const parse = (txt: string) => { return mermaidAPI.parse(txt, mermaid.parseError); }; +// @ts-ignore: TODO Fix ts errors +const executionQueue = []; +let executionQueueRunning = false; +const executeQueue = async () => { + if (executionQueueRunning) { + return; + } + executionQueueRunning = true; + // @ts-ignore: TODO Fix ts errors + while (executionQueue.length > 0) { + // @ts-ignore: TODO Fix ts errors + const f = executionQueue.shift(); + try { + await f(); + } catch (e) { + log.error('Error executing queue', e); + } + } + executionQueueRunning = false; +}; + /** * @param txt * @deprecated This is an internal function and should not be used. Will be removed in v10. */ const parseAsync = (txt: string) => { - return mermaidAPI.parseAsync(txt, mermaid.parseError); + return new Promise((resolve, reject) => { + // This promise will resolve when the mermaidAPI.render call is done. + // It will be queued first and will be executed when it is first in line + const performCall = () => + new Promise((res, rej) => { + mermaidAPI.parseAsync(txt, mermaid.parseError).then( + (r) => { + // This resolves for the promise for the queue handling + res(r); + // This fullfills the promise sent to the value back to the original caller + resolve(r); + }, + (e) => { + log.error('Error parsing', e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue(); + }); +}; + +// const asynco = (id: string, delay: number) => +// new Promise((res) => { +// setTimeout(() => { +// // This resolves for the promise for the queue handling +// res(id); +// }, delay); +// }); + +/** + * @param txt + * @param id + * @param delay + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +// const test1 = (id: string, delay: number) => { +// const p = new Promise((resolve, reject) => { +// // This promise will resolve when the mermaidAPI.render call is done. +// // It will be queued first and will be executed when it is first in line +// const performCall = () => +// new Promise((res) => { +// asynco(id, delay).then((r) => { +// // This resolves for the promise for the queue handling +// res(r); +// // This fullfills the promise sent to the value back to the original caller +// resolve(r + ' result to caller'); +// }); +// }); +// executionQueue.push(performCall); +// }); +// return p; +// }; + +/** + * @param txt + * @param id + * @param text + * @param cb + * @param container + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +const renderAsync = ( + id: string, + text: string, + cb: (svgCode: string, bindFunctions?: (element: Element) => void) => void, + container?: Element +): Promise<void> => { + return new Promise((resolve, reject) => { + // This promise will resolve when the mermaidAPI.render call is done. + // It will be queued first and will be executed when it is first in line + const performCall = () => + new Promise((res, rej) => { + mermaidAPI.renderAsync(id, text, cb, container).then( + (r) => { + // This resolves for the promise for the queue handling + res(r); + // This fullfills the promise sent to the value back to the original caller + resolve(r); + }, + (e) => { + log.error('Error parsing', e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue(); + }); }; const mermaid: { @@ -374,6 +484,7 @@ const mermaid: { parse: typeof parse; parseAsync: typeof parseAsync; render: typeof mermaidAPI.render; + renderAsync: typeof renderAsync; init: typeof init; initThrowsErrors: typeof initThrowsErrors; initialize: typeof initialize; @@ -386,7 +497,10 @@ const mermaid: { mermaidAPI, parse, parseAsync, + // parseAsync: mermaidAPI.parseAsync, render: mermaidAPI.render, + renderAsync, + // renderAsync: mermaidAPI.renderAsync, init, initThrowsErrors, initialize, @@ -394,6 +508,8 @@ const mermaid: { parseError: undefined, contentLoaded, setParseErrorHandler, + // test1, + // executeQueue, }; export default mermaid; diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js index 54f0ad8a28..a79a855a57 100644 --- a/packages/mermaid/src/themes/theme-default.js +++ b/packages/mermaid/src/themes/theme-default.js @@ -147,11 +147,18 @@ class Theme { this['cScaleInv' + i] = this['cScaleInv' + i] || adjust(this['cScale' + i], { h: 180 }); } - // Setup teh label color for the set - this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? 'black' : this.labelTextColor); - - for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { - this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; + // Setup the label color for the set + this.scaleLabelColor = + this.scaleLabelColor !== 'calculated' && this.scaleLabelColor + ? this.scaleLabelColor + : this.labelTextColor; + + if (this.labelTextColor !== 'calculated') { + this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor); + this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.labelTextColor; + } } /* Flowchart variables */ diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js index ee086ad109..aa30f0dafc 100644 --- a/packages/mermaid/src/themes/theme-forest.js +++ b/packages/mermaid/src/themes/theme-forest.js @@ -121,7 +121,10 @@ class Theme { } // Setup teh label color for the set - this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? 'black' : this.labelTextColor); + this.scaleLabelColor = + this.scaleLabelColor !== 'calculated' && this.scaleLabelColor + ? this.scaleLabelColor + : this.labelTextColor; for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; From 352dd5dcf7e9437e6c0e55d753ac51cd46a2a63d Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Wed, 19 Oct 2022 14:32:28 +0200 Subject: [PATCH 0439/1038] testcode --- cypress/platform/knsv2.html | 49 ++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 506ac51aea..ef44ed6174 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -72,31 +72,26 @@ Student "1" --o "1" IdCard : carries Student "1" --o "1" Bike : rides </pre> - <pre id="diagram" class="mermaid2"> + <pre id="diagram" class="mermaid"> mindmap - root - A - B - C - D - E - A2 - B2 - C2 - D2 - E2 - child1((Circle)) - grandchild 1 - grandchild 2 - child2(Round rectangle) - grandchild 3 - grandchild 4 - child3[Square] - grandchild 5 - ::icon(mdi mdi-fire) - gc6((grand<br/>child 6)) - ::icon(mdi mdi-fire) - gc7((grand<br/>grand<br/>child 8)) + root((mindmap)) + Origins + Long history + ::icon(fa fa-book) + Popularisation + ::icon(fa fa-book) + British popular psychology author Tony Buzan + Research + ::icon(fa fa-book) + On effectivness<br/>and features + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid </pre> <pre id="diagram" class="mermaid2"> example-diagram @@ -113,7 +108,7 @@ // console.error('Mermaid error: ', err); }; mermaid.initialize({ - theme: 'forest', + theme: 'base', startOnLoad: true, logLevel: 0, // basePath: './packages/', @@ -131,6 +126,10 @@ console.error('In parse error:'); console.error(err); }; + // mermaid.test1('first_slow', 1200).then((r) => console.info(r)); + // mermaid.test1('second_fast', 200).then((r) => console.info(r)); + // mermaid.test1('third_fast', 200).then((r) => console.info(r)); + // mermaid.test1('forth_slow', 1200).then((r) => console.info(r)); </script> </body> </html> From 4838d6345593e09fb227839675caebde86dba8b4 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Wed, 19 Oct 2022 14:37:48 +0200 Subject: [PATCH 0440/1038] Theme update from release 9.2 --- packages/mermaid-mindmap/src/styles.js | 4 +--- packages/mermaid/src/themes/theme-default.js | 17 ++++++++++++----- packages/mermaid/src/themes/theme-forest.js | 5 ++++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/mermaid-mindmap/src/styles.js b/packages/mermaid-mindmap/src/styles.js index 95674e8f81..a409aa4e54 100644 --- a/packages/mermaid-mindmap/src/styles.js +++ b/packages/mermaid-mindmap/src/styles.js @@ -22,12 +22,10 @@ const genSections = (options) => { } .section-${i - 1} text { fill: ${options['cScaleLabel' + i]}; - // fill: ${options['gitInv' + i]}; } .node-icon-${i - 1} { font-size: 40px; color: ${options['cScaleLabel' + i]}; - // color: ${options['gitInv' + i]}; } .section-edge-${i - 1}{ stroke: ${options['cScale' + i]}; @@ -36,7 +34,7 @@ const genSections = (options) => { stroke-width: ${sw}; } .section-${i - 1} line { - stroke: ${options['lineColor' + i]} ; + stroke: ${options['cScaleInv' + i]} ; stroke-width: 3; } diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js index 1cd2f505c6..95710629bd 100644 --- a/packages/mermaid/src/themes/theme-default.js +++ b/packages/mermaid/src/themes/theme-default.js @@ -147,11 +147,18 @@ class Theme { this['cScaleInv' + i] = this['cScaleInv' + i] || adjust(this['cScale' + i], { h: 180 }); } - // Setup teh label color for the set - this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? 'black' : this.labelTextColor); - - for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { - this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; + // Setup the label color for the set + this.scaleLabelColor = + this.scaleLabelColor !== 'calculated' && this.scaleLabelColor + ? this.scaleLabelColor + : this.labelTextColor; + + if (this.labelTextColor !== 'calculated') { + this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor); + this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.labelTextColor; + } } /* Flowchart variables */ diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js index bacdd5bd03..860326dea4 100644 --- a/packages/mermaid/src/themes/theme-forest.js +++ b/packages/mermaid/src/themes/theme-forest.js @@ -121,7 +121,10 @@ class Theme { } // Setup teh label color for the set - this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? 'black' : this.labelTextColor); + this.scaleLabelColor = + this.scaleLabelColor !== 'calculated' && this.scaleLabelColor + ? this.scaleLabelColor + : this.labelTextColor; for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; From 4c311ea4b1a34db0a3d15eaa52e04242c7ba70b6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 19 Oct 2022 19:03:29 +0530 Subject: [PATCH 0441/1038] fix: TS errors --- packages/mermaid/src/mermaid.ts | 41 ++++++++++++++++++--------------- packages/mermaid/src/utils.ts | 2 ++ 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index b7eaf8c36d..58aaa9025a 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -7,7 +7,7 @@ import { log } from './logger'; import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; import { addDetector } from './diagram-api/detectType'; -import { isDetailedError } from './utils'; +import { isDetailedError, DetailedError } from './utils'; import { registerDiagram } from './diagram-api/diagramAPI'; /** @@ -103,7 +103,7 @@ const initThrowsErrors = function ( const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); let txt: string; - const errors = []; + const errors: DetailedError[] = []; // element is the current div with mermaid class for (const element of Array.from(nodesToProcess)) { @@ -144,8 +144,12 @@ const initThrowsErrors = function ( ); } catch (error) { log.warn('Catching Error (bootstrap)', error); - // @ts-ignore: TODO Fix ts errors - const mermaidError = { error, str: error.str, hash: error.hash, message: error.str }; + const mermaidError: DetailedError = { + error, + str: error.str, + hash: error.hash, + message: error.str, + }; if (typeof mermaid.parseError === 'function') { mermaid.parseError(mermaidError); } @@ -240,7 +244,7 @@ const initThrowsErrorsAsync = async function ( const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); let txt: string; - const errors = []; + const errors: DetailedError[] = []; // element is the current div with mermaid class for (const element of Array.from(nodesToProcess)) { @@ -281,8 +285,12 @@ const initThrowsErrorsAsync = async function ( ); } catch (error) { log.warn('Catching Error (bootstrap)', error); - // @ts-ignore: TODO Fix ts errors - const mermaidError = { error, str: error.str, hash: error.hash, message: error.str }; + const mermaidError: DetailedError = { + error, + str: error.str, + hash: error.hash, + message: error.str, + }; if (typeof mermaid.parseError === 'function') { mermaid.parseError(mermaidError); } @@ -355,22 +363,21 @@ const parse = (txt: string) => { return mermaidAPI.parse(txt, mermaid.parseError); }; -// @ts-ignore: TODO Fix ts errors -const executionQueue = []; +const executionQueue: (() => Promise<unknown>)[] = []; let executionQueueRunning = false; const executeQueue = async () => { if (executionQueueRunning) { return; } executionQueueRunning = true; - // @ts-ignore: TODO Fix ts errors while (executionQueue.length > 0) { - // @ts-ignore: TODO Fix ts errors const f = executionQueue.shift(); - try { - await f(); - } catch (e) { - log.error('Error executing queue', e); + if (f) { + try { + await f(); + } catch (e) { + log.error('Error executing queue', e); + } } } executionQueueRunning = false; @@ -497,10 +504,8 @@ const mermaid: { mermaidAPI, parse, parseAsync, - // parseAsync: mermaidAPI.parseAsync, render: mermaidAPI.render, renderAsync, - // renderAsync: mermaidAPI.renderAsync, init, initThrowsErrors, initialize, @@ -508,8 +513,6 @@ const mermaid: { parseError: undefined, contentLoaded, setParseErrorHandler, - // test1, - // executeQueue, }; export default mermaid; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 395e6fe2a5..e9d790df3a 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -825,6 +825,8 @@ export const sanitizeCss = (str) => { export interface DetailedError { str: string; hash: any; + error?: Error; + message?: string; } /** @param error */ From 77f5e0d5f3fa50f71dd79eadda2068ca4720a6e6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 19 Oct 2022 19:13:05 +0530 Subject: [PATCH 0442/1038] fix: Add default arg to options --- packages/mermaid/src/mermaidAPI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index df6ab1a2be..13366f41d7 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -453,7 +453,7 @@ const handleDirective = function (p: any, directive: any, type: string): void { }; /** @param {MermaidConfig} options */ -async function initialize(options: MermaidConfig) { +async function initialize(options: MermaidConfig = {}) { // Handle legacy location of font-family configuration if (options.fontFamily) { if (!options.themeVariables) { From 56a8068a7f0cc9784f875a6d385bf9414eeab98b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 19 Oct 2022 20:30:07 +0530 Subject: [PATCH 0443/1038] fix: Error handling --- packages/mermaid/src/mermaid.ts | 49 ++++++++++++++++++--------------- packages/mermaid/src/utils.ts | 2 +- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index fa6458e91f..b1700253b7 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -65,6 +65,31 @@ const init = async function ( } }; +// eslint-disable-next-line @typescript-eslint/ban-types +const handleError = (error: unknown, errors: DetailedError[], parseError?: Function) => { + log.warn(error); + if (isDetailedError(error)) { + // handle case where error string and hash were + // wrapped in object like`const error = { str, hash };` + if (parseError) { + parseError(error.str, error.hash); + } + errors.push({ ...error, message: error.str, error }); + } else { + // assume it is just error string and pass it on + if (parseError) { + parseError(error); + } + if (error instanceof Error) { + errors.push({ + str: error.message, + message: error.message, + hash: error.name, + error, + }); + } + } +}; const initThrowsErrors = function ( config?: MermaidConfig, // eslint-disable-next-line no-undef @@ -144,17 +169,7 @@ const initThrowsErrors = function ( element ); } catch (error) { - log.warn('Catching Error (bootstrap)', error); - const mermaidError: DetailedError = { - error, - str: error.str, - hash: error.hash, - message: error.str, - }; - if (typeof mermaid.parseError === 'function') { - mermaid.parseError(mermaidError); - } - errors.push(mermaidError); + handleError(error, errors, mermaid.parseError); } } if (errors.length > 0) { @@ -285,17 +300,7 @@ const initThrowsErrorsAsync = async function ( element ); } catch (error) { - log.warn('Catching Error (bootstrap)', error); - const mermaidError: DetailedError = { - error, - str: error.str, - hash: error.hash, - message: error.str, - }; - if (typeof mermaid.parseError === 'function') { - mermaid.parseError(mermaidError); - } - errors.push(mermaidError); + handleError(error, errors, mermaid.parseError); } } if (errors.length > 0) { diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index e9d790df3a..f969ecc623 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -825,7 +825,7 @@ export const sanitizeCss = (str) => { export interface DetailedError { str: string; hash: any; - error?: Error; + error?: any; message?: string; } From 377b22e82bbea7fee6f9188c734dd83a1e57ff56 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 19 Oct 2022 22:31:37 +0530 Subject: [PATCH 0444/1038] fix: Type of DiagramStyleClassDef, general cleanup --- packages/mermaid/src/defaultConfig.ts | 6 +- .../mermaid/src/diagrams/flowchart/flowDb.js | 2 +- .../src/diagrams/flowchart/flowRenderer.js | 3 +- packages/mermaid/src/mermaidAPI.spec.ts | 12 +-- packages/mermaid/src/mermaidAPI.ts | 97 +++++++++++-------- packages/mermaid/src/utils.ts | 4 + 6 files changed, 70 insertions(+), 54 deletions(-) diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 710557bd98..61322da5f3 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -22,7 +22,7 @@ import { MermaidConfig } from './config.type'; * * @name Configuration */ -const config: Partial<MermaidConfig> = { +const config: MermaidConfig = { /** * Theme , the CSS style sheet * @@ -1069,6 +1069,7 @@ const config: Partial<MermaidConfig> = { showCommitLabel: true, showBranches: true, rotateCommitLabel: true, + arrowMarkerAbsolute: false, }, /** The object containing configurations specific for c4 diagrams */ @@ -1833,9 +1834,6 @@ const config: Partial<MermaidConfig> = { fontSize: 16, }; -if (config.class) config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute; -if (config.gitGraph) config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute; - const keyify = (obj: any, prefix = ''): string[] => Object.keys(obj).reduce((res: string[], el): string[] => { if (Array.isArray(obj[el])) { diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 5aa2032257..9e8f25524e 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -17,7 +17,7 @@ let vertexCounter = 0; let config = configApi.getConfig(); let vertices = {}; let edges = []; -let classes = []; +let classes = {}; let subGraphs = []; let subGraphLookup = {}; let tooltips = {}; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index 0c3aa3623e..c403b7fe32 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -279,7 +279,8 @@ export const getClasses = function (text, diagObj) { diagObj.parse(text); return diagObj.db.getClasses(); } catch (e) { - return; + log.error(e); + return {}; } }; diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 8206499f97..af50a6cc4a 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -256,11 +256,11 @@ describe('mermaidAPI', function () { expect(styles).toMatch(/^\ndefault(.*)/); }); it('gets the fontFamily from the config', () => { - const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', null); + const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', {}); expect(styles).toMatch(/(.*)\n:root \{ --mermaid-font-family: serif(.*)/); }); it('gets the alt fontFamily from the config', () => { - const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', null); + const styles = createCssStyles(mocked_config_with_htmlLabels, 'graphType', undefined); expect(styles).toMatch(/(.*)\n:root \{ --mermaid-alt-font-family: sans-serif(.*)/); }); @@ -268,7 +268,7 @@ describe('mermaidAPI', function () { const classDef1 = { id: 'classDef1', styles: ['style1-1', 'style1-2'], textStyles: [] }; const classDef2 = { id: 'classDef2', styles: [], textStyles: ['textStyle2-1'] }; const classDef3 = { id: 'classDef3', textStyles: ['textStyle3-1', 'textStyle3-2'] }; - const classDefs = [classDef1, classDef2, classDef3]; + const classDefs = { classDef1, classDef2, classDef3 }; describe('the graph supports classDefs', () => { const graphType = 'flowchart-v2'; @@ -431,7 +431,7 @@ describe('mermaidAPI', function () { it('gets the css styles created', () => { // @todo TODO if a single function in the module can be mocked, do it for createCssStyles and mock the results. - createUserStyles(mockConfig, 'flowchart-v2', [classDef1], 'someId'); + createUserStyles(mockConfig, 'flowchart-v2', { classDef1 }, 'someId'); const expectedStyles = '\ndefault' + '\n.classDef1 > * { style1-1 !important; }' + @@ -442,12 +442,12 @@ describe('mermaidAPI', function () { }); it('calls getStyles to get css for all graph, user css styles, and config theme variables', () => { - createUserStyles(mockConfig, 'someDiagram', null, 'someId'); + createUserStyles(mockConfig, 'someDiagram', {}, 'someId'); expect(getStyles).toHaveBeenCalled(); }); it('returns the result of compiling, stringifying, and serializing the css code with stylis', () => { - const result = createUserStyles(mockConfig, 'someDiagram', null, 'someId'); + const result = createUserStyles(mockConfig, 'someDiagram', {}, 'someId'); expect(compile).toHaveBeenCalled(); expect(serialize).toHaveBeenCalled(); expect(result).toEqual('stylis serialized css'); diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 54e1758fb5..8f3dcebf7d 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -28,7 +28,7 @@ import { attachFunctions } from './interactionDb'; import { log, setLogLevel } from './logger'; import getStyles from './styles'; import theme from './themes'; -import utils, { directiveSanitizer } from './utils'; +import utils, { directiveSanitizer, isNonEmptyArray } from './utils'; import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; @@ -59,8 +59,11 @@ const DOMPURE_ATTR = ['dominant-baseline']; // This is what is returned from getClasses(...) methods. // It is slightly renamed to ..StyleClassDef instead of just ClassDef because "class" is a greatly ambiguous and overloaded word. // It makes it clear we're working with a style class definition, even though defining the type is currently difficult. -// @ts-ignore This is an alias for a js construct used in diagrams. -type DiagramStyleClassDef = any; +interface DiagramStyleClassDef { + id: string; + styles?: string[]; + textStyles?: string[]; +} // This makes it clear that we're working with a d3 selected element of some kind, even though it's hard to specify the exact type. // @ts-ignore Could replicate the type definition in d3. This also makes it possible to use the untyped info from the js diagram files. @@ -151,29 +154,32 @@ export const cssImportantStyles = ( * * @param {MermaidConfig} config * @param {string} graphType - * @param {null | DiagramStyleClassDef[]} classDefs - the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) + * @param {Record<string, DiagramStyleClassDef> | null | undefined} classDefs - the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) * @returns {string} the string with all the user styles */ export const createCssStyles = ( config: MermaidConfig, graphType: string, - classDefs: DiagramStyleClassDef[] | null | undefined + classDefs: Record<string, DiagramStyleClassDef> | null | undefined = {} ): string => { let cssStyles = ''; // user provided theme CSS info // If you add more configuration driven data into the user styles make sure that the value is // sanitized by the santizeCSS function @todo TODO where is this method? what should be used to replace it? refactor so that it's always sanitized - if (config.themeCSS !== undefined) cssStyles += `\n${config.themeCSS}`; + if (config.themeCSS !== undefined) { + cssStyles += `\n${config.themeCSS}`; + } - if (config.fontFamily !== undefined) + if (config.fontFamily !== undefined) { cssStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`; - - if (config.altFontFamily !== undefined) + } + if (config.altFontFamily !== undefined) { cssStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`; + } // classDefs defined in the diagram text - if (classDefs !== undefined && classDefs !== null && classDefs.length > 0) { + if (classDefs && Object.keys(classDefs).length > 0) { if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; @@ -186,22 +192,14 @@ export const createCssStyles = ( for (const classId in classDefs) { const styleClassDef = classDefs[classId]; // create the css styles for each cssElement and the styles (only if there are styles) - if (styleClassDef['styles'] && styleClassDef['styles'].length > 0) { + if (isNonEmptyArray(styleClassDef.styles)) { cssElements.forEach((cssElement) => { - cssStyles += cssImportantStyles( - styleClassDef['id'], - cssElement, - styleClassDef['styles'] - ); + cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles); }); } // create the css styles for the tspan element and the text styles (only if there are textStyles) - if (styleClassDef['textStyles'] && styleClassDef['textStyles'].length > 0) { - cssStyles += cssImportantStyles( - styleClassDef['id'], - 'tspan', - styleClassDef['textStyles'] - ); + if (isNonEmptyArray(styleClassDef.textStyles)) { + cssStyles += cssImportantStyles(styleClassDef.id, 'tspan', styleClassDef.textStyles); } } } @@ -212,7 +210,7 @@ export const createCssStyles = ( export const createUserStyles = ( config: MermaidConfig, graphType: string, - classDefs: null | DiagramStyleClassDef, + classDefs: Record<string, DiagramStyleClassDef>, svgId: string ): string => { const userCSSstyles = createCssStyles(config, graphType, classDefs); @@ -261,8 +259,7 @@ export const cleanUpSvgCode = ( * @todo TODO replace btoa(). Replace with buf.toString('base64')? */ export const putIntoIFrame = (svgCode = '', svgElement?: D3Element): string => { - let height = IFRAME_HEIGHT; // default iFrame height - if (svgElement) height = svgElement.viewBox.baseVal.height + 'px'; + const height = svgElement ? svgElement.viewBox.baseVal.height + 'px' : IFRAME_HEIGHT; const base64encodedSrc = btoa('<body style="' + IFRAME_BODY_STYLE + '">' + svgCode + '</body>'); return `<iframe style="width:${IFRAME_WIDTH};height:${height};${IFRAME_STYLES}" src="data:text/html;base64,${base64encodedSrc}" sandbox="${IFRAME_SANDBOX_OPTS}"> ${IFRAME_NOT_SUPPORTED_MSG} @@ -291,14 +288,18 @@ export const appendDivSvgG = ( ): D3Element => { const enclosingDiv = parentRoot.append('div'); enclosingDiv.attr('id', enclosingDivId); - if (divStyle) enclosingDiv.attr('style', divStyle); + if (divStyle) { + enclosingDiv.attr('style', divStyle); + } const svgNode = enclosingDiv .append('svg') .attr('id', id) .attr('width', '100%') .attr('xmlns', XMLNS_SVG_STD); - if (svgXlink) svgNode.attr('xmlns:xlink', svgXlink); + if (svgXlink) { + svgNode.attr('xmlns:xlink', svgXlink); + } svgNode.append('g'); return parentRoot; @@ -337,11 +338,15 @@ export const removeExistingElements = ( ) => { // Remove existing SVG element if it exists const existingSvg = doc.getElementById(id); - if (existingSvg) existingSvg.remove(); + if (existingSvg) { + existingSvg.remove(); + } // Remove previous temporary element if it exists const element = isSandboxed ? doc.querySelector(iFrameSelector) : doc.querySelector(divSelector); - if (element) element.remove(); + if (element) { + element.remove(); + } }; /** @@ -389,7 +394,10 @@ const render = async function ( log.debug(config); // Check the maximum allowed text size - if (text.length > config.maxTextSize!) text = MAX_TEXTLENGTH_EXCEEDED_MSG; + // TODO: Remove magic number + if (text.length > (config?.maxTextSize ?? 50000)) { + text = MAX_TEXTLENGTH_EXCEEDED_MSG; + } // clean up text CRLFs text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; @@ -472,6 +480,7 @@ const render = async function ( const rules = createUserStyles( config, graphType, + // @ts-ignore convert flowRender to TS. flowRenderer.getClasses(text, diag), idSelector ); @@ -485,7 +494,7 @@ const render = async function ( try { await diag.renderer.draw(text, id, pkg.version, diag); } catch (e) { - await errorRenderer.draw(text, id, pkg.version); + errorRenderer.draw(text, id, pkg.version); throw e; } @@ -502,14 +511,12 @@ const render = async function ( if (isSandboxed) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); svgCode = putIntoIFrame(svgCode, svgEl); - } else { - if (isLooseSecurityLevel) { - // Sanitize the svgCode using DOMPurify - svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: DOMPURE_TAGS, - ADD_ATTR: DOMPURE_ATTR, - }); - } + } else if (isLooseSecurityLevel) { + // Sanitize the svgCode using DOMPurify + svgCode = DOMPurify.sanitize(svgCode, { + ADD_TAGS: DOMPURE_TAGS, + ADD_ATTR: DOMPURE_ATTR, + }); } // ------------------------------------------------------------------------------- @@ -530,7 +537,9 @@ const render = async function ( default: cb(svgCode); } - } else log.debug('CB = undefined!'); + } else { + log.debug('CB = undefined!'); + } attachFunctions(); @@ -538,9 +547,13 @@ const render = async function ( // Remove the temporary element if appropriate const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; const node = select(tmpElementSelector).node(); - if (node && 'remove' in node) node.remove(); + if (node && 'remove' in node) { + node.remove(); + } - if (parseEncounteredException) throw parseEncounteredException; + if (parseEncounteredException) { + throw parseEncounteredException; + } return svgCode; }; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 395e6fe2a5..8781f5cace 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -838,6 +838,10 @@ export function getErrorMessage(error: unknown): string { return String(error); } +export const isNonEmptyArray = (array: unknown[] | undefined): array is unknown[] => { + return array && array.length > 0; +}; + export default { assignWithDepth, wrapLabel, From 3e76edcbac7659181a66be1a4a537a5d076dc5e7 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 19 Oct 2022 22:55:19 +0530 Subject: [PATCH 0445/1038] chore: Fix cspell --- cSpell.json | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/cSpell.json b/cSpell.json index 719c09d149..c17b9d65fe 100644 --- a/cSpell.json +++ b/cSpell.json @@ -2,70 +2,71 @@ "version": "0.2", "language": "en", "words": [ - "gantt", - "mindmaps", - "visio", + "antiscript", + "applitools", "colour", "customizability", + "cytoscape", + "dagre", + "docsify", + "dompurify", "flatmap", + "gantt", + "gitea", + "gitgraph", "jison", "mermiad", "mindmap", + "mindmaps", "mitigations", + "phpbb", "sandboxed", "santize", "stylis", "verdana", + "visio", + "vitepress", "xlink" ], "ignoreWords": [ + "acyclicer", "adamiecki", "asciidoctor", "ashish", "astah", + "bbox", "bilkent", "bisheng", + "codedoc", + "cpettitt", + "descr", "docsy", "doku", - "gitea", - "gitgraph", + "edgechromium", + "graphlib", "grav", "inkdrop", "jaoude", "kaufmann", + "knsv", "knut", "lucida", - "plantuml", - "playfair's", - "podlite", - "sveidqvist", - "tuleap", - "acyclicer", - "antiscript", - "applitools", - "bbox", - "codedoc", - "cpettitt", - "cytoscape", - "dagre", - "descr", - "docsify", - "edgechromium", - "graphlib", - "knsv", "mdbook", "mermerd", "mkdocs", - "phpbb", + "plantuml", + "playfair's", + "podlite", "ranksep", "redmine", "setupgraphviewbox", "sphinxcontrib", "substate", + "sveidqvist", "techn", "ts-nocheck", - "viewports", - "vitepress" + "tuleap", + "viewports" ], "patterns": [ { From 3d140a7411fb290951ac4ea9cd7d610e5c418ff6 Mon Sep 17 00:00:00 2001 From: Jeroen Ekkelkamp <j.ekkelkamp@arcady.nl> Date: Wed, 19 Oct 2022 20:04:45 +0200 Subject: [PATCH 0446/1038] added curly rule to eslintrc --- .eslintrc.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.json b/.eslintrc.json index 7b95ac6da2..133ab42cdc 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -24,6 +24,7 @@ ], "plugins": ["@typescript-eslint", "no-only-tests", "html", "jest", "jsdoc", "json", "@cspell"], "rules": { + "curly": "error", "no-console": "error", "no-prototype-builtins": "off", "no-unused-vars": "off", From 0c4edd332cd3f88ce3f2e66bd0c9879508419117 Mon Sep 17 00:00:00 2001 From: Jeroen Ekkelkamp <j.ekkelkamp@arcady.nl> Date: Wed, 19 Oct 2022 20:06:54 +0200 Subject: [PATCH 0447/1038] Ran linter (npm run lint:fix) --- cypress/helpers/util.js | 8 +++- cypress/platform/viewer.js | 4 +- .../mermaid/src/dagre-wrapper/createLabel.js | 4 +- packages/mermaid/src/dagre-wrapper/edges.js | 4 +- .../src/dagre-wrapper/mermaid-graphlib.js | 40 ++++++++++++---- packages/mermaid/src/dagre-wrapper/nodes.js | 8 +++- packages/mermaid/src/defaultConfig.ts | 8 +++- packages/mermaid/src/diagrams/c4/c4Db.js | 48 ++++++++++++++----- .../mermaid/src/diagrams/c4/c4Renderer.js | 8 +++- packages/mermaid/src/diagrams/c4/svgDraw.js | 22 ++++++--- .../mermaid/src/diagrams/class/classDb.js | 12 +++-- .../src/diagrams/class/classDetector-V2.ts | 6 ++- .../src/diagrams/class/classDetector.ts | 4 +- .../mermaid/src/diagrams/class/svgDraw.js | 8 +++- .../mermaid/src/diagrams/common/common.ts | 12 +++-- .../src/diagrams/flowchart/flowChartShapes.js | 8 +++- .../mermaid/src/diagrams/flowchart/flowDb.js | 4 +- .../src/diagrams/flowchart/flowDetector-v2.ts | 3 +- .../src/diagrams/flowchart/flowDetector.ts | 4 +- .../mermaid/src/diagrams/gantt/ganttDb.js | 4 +- .../src/diagrams/gantt/ganttRenderer.js | 8 +++- .../mermaid/src/diagrams/git/gitGraphAst.js | 12 +++-- .../src/diagrams/git/gitGraphRenderer-old.js | 4 +- .../src/diagrams/sequence/sequenceDb.js | 4 +- .../src/diagrams/sequence/sequenceRenderer.ts | 7 ++- .../mermaid/src/diagrams/sequence/svgDraw.js | 8 +++- packages/mermaid/src/diagrams/state/shapes.js | 31 ++++++++---- .../mermaid/src/diagrams/state/stateDb.js | 4 +- .../src/diagrams/state/stateDetector-V2.ts | 7 ++- .../src/diagrams/state/stateDetector.ts | 4 +- .../src/diagrams/state/stateRenderer.js | 8 ++-- .../diagrams/user-journey/journeyRenderer.ts | 4 +- packages/mermaid/src/mermaid.ts | 4 +- packages/mermaid/src/mermaidAPI.ts | 8 +++- packages/mermaid/src/utils.ts | 40 ++++++++++++---- 35 files changed, 276 insertions(+), 96 deletions(-) diff --git a/cypress/helpers/util.js b/cypress/helpers/util.js index 33632b28a0..bc5282e110 100644 --- a/cypress/helpers/util.js +++ b/cypress/helpers/util.js @@ -58,7 +58,9 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) => const url = mermaidUrl(graphStr, options, api); cy.visit(url); - if (validation) cy.get('svg').should(validation); + if (validation) { + cy.get('svg').should(validation); + } cy.get('svg'); // Default name to test title @@ -106,7 +108,9 @@ export const urlSnapshotTest = (url, _options, api = false, validation) => { } cy.visit(url); - if (validation) cy.get('svg').should(validation); + if (validation) { + cy.get('svg').should(validation); + } cy.get('body'); // Default name to test title diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index f0426dc096..1333d7ec06 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -120,7 +120,9 @@ const contentLoadedApi = function () { (svgCode, bindFunctions) => { div.innerHTML = svgCode; - if (bindFunctions) bindFunctions(div); + if (bindFunctions) { + bindFunctions(div); + } }, div ); diff --git a/packages/mermaid/src/dagre-wrapper/createLabel.js b/packages/mermaid/src/dagre-wrapper/createLabel.js index ba0ce4a5d1..9d79517981 100644 --- a/packages/mermaid/src/dagre-wrapper/createLabel.js +++ b/packages/mermaid/src/dagre-wrapper/createLabel.js @@ -44,7 +44,9 @@ function addHtmlLabel(node) { const createLabel = (_vertexText, style, isTitle, isNode) => { let vertexText = _vertexText || ''; - if (typeof vertexText === 'object') vertexText = vertexText[0]; + if (typeof vertexText === 'object') { + vertexText = vertexText[0]; + } if (evaluate(getConfig().flowchart.htmlLabels)) { // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that? vertexText = vertexText.replace(/\\n|\n/g, '<br />'); diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index 606c0ca8ae..4d23ca3eaa 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -336,7 +336,9 @@ const cutPathAtIntersect = (_points, boundryNode) => { log.warn('abc88 outside', point, lastPointOutside); lastPointOutside = point; // points.push(point); - if (!isInside) points.push(point); + if (!isInside) { + points.push(point); + } } }); log.warn('abc88 returning points', points); diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 950a8b02b4..502c039ff3 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -23,7 +23,9 @@ const isDecendant = (id, ancenstorId) => { ' = ', decendants[ancenstorId].indexOf(id) >= 0 ); - if (decendants[ancenstorId].indexOf(id) >= 0) return true; + if (decendants[ancenstorId].indexOf(id) >= 0) { + return true; + } return false; }; @@ -32,17 +34,29 @@ const edgeInCluster = (edge, clusterId) => { log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]); log.info('Edge is ', edge); // Edges to/from the cluster is not in the cluster, they are in the parent - if (edge.v === clusterId) return false; - if (edge.w === clusterId) return false; + if (edge.v === clusterId) { + return false; + } + if (edge.w === clusterId) { + return false; + } if (!decendants[clusterId]) { log.debug('Tilt, ', clusterId, ',not in decendants'); return false; } - if (decendants[clusterId].indexOf(edge.v) >= 0) return true; - if (isDecendant(edge.v, clusterId)) return true; - if (isDecendant(edge.w, clusterId)) return true; - if (decendants[clusterId].indexOf(edge.w) >= 0) return true; + if (decendants[clusterId].indexOf(edge.v) >= 0) { + return true; + } + if (isDecendant(edge.v, clusterId)) { + return true; + } + if (isDecendant(edge.w, clusterId)) { + return true; + } + if (decendants[clusterId].indexOf(edge.w) >= 0) { + return true; + } return false; }; @@ -306,8 +320,12 @@ export const adjustClustersAndEdges = (graph, depth) => { v = getAnchorId(e.v); w = getAnchorId(e.w); graph.removeEdge(e.v, e.w, e.name); - if (v !== e.v) edge.fromCluster = e.v; - if (w !== e.w) edge.toCluster = e.w; + if (v !== e.v) { + edge.fromCluster = e.v; + } + if (w !== e.w) { + edge.toCluster = e.w; + } log.warn('Fix Replacing with XXX', v, w, e.name); graph.setEdge(v, w, edge, e.name); } @@ -446,7 +464,9 @@ export const extractor = (graph, depth) => { }; const sorter = (graph, nodes) => { - if (nodes.length === 0) return []; + if (nodes.length === 0) { + return []; + } let result = Object.assign(nodes); nodes.forEach((node) => { const children = graph.children(node); diff --git a/packages/mermaid/src/dagre-wrapper/nodes.js b/packages/mermaid/src/dagre-wrapper/nodes.js index 5d5bd2f2c5..316432b95e 100644 --- a/packages/mermaid/src/dagre-wrapper/nodes.js +++ b/packages/mermaid/src/dagre-wrapper/nodes.js @@ -293,9 +293,13 @@ const cylinder = (parent, node) => { // ellipsis equation: x*x / a*a + y*y / b*b = 1 // solve for y to get adjusted value for pos.y let y = ry * ry * (1 - (x * x) / (rx * rx)); - if (y != 0) y = Math.sqrt(y); + if (y != 0) { + y = Math.sqrt(y); + } y = ry - y; - if (point.y - node.y > 0) y = -y; + if (point.y - node.y > 0) { + y = -y; + } pos.y += y; } diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 38b910ffb3..3a9bd18416 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -1833,8 +1833,12 @@ const config: Partial<MermaidConfig> = { fontSize: 16, }; -if (config.class) config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute; -if (config.gitGraph) config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute; +if (config.class) { + config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute; +} +if (config.gitGraph) { + config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute; +} const keyify = (obj: any, prefix = ''): string[] => Object.keys(obj).reduce((res: string[], el): string[] => { diff --git a/packages/mermaid/src/diagrams/c4/c4Db.js b/packages/mermaid/src/diagrams/c4/c4Db.js index 79028a0c5c..d337b15c0d 100644 --- a/packages/mermaid/src/diagrams/c4/c4Db.js +++ b/packages/mermaid/src/diagrams/c4/c4Db.js @@ -49,8 +49,9 @@ export const addRel = function (type, from, to, label, techn, descr, sprite, tag to === null || label === undefined || label === null - ) + ) { return; + } let rel = {}; const old = rels.find((rel) => rel.from === from && rel.to === to); @@ -111,7 +112,9 @@ export const addRel = function (type, from, to, label, techn, descr, sprite, tag //type, alias, label, ?descr, ?sprite, ?tags, $link export const addPersonOrSystem = function (typeC4Shape, alias, label, descr, sprite, tags, link) { // Don't allow label nulling - if (alias === null || label === null) return; + if (alias === null || label === null) { + return; + } let personOrSystem = {}; const old = c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias); @@ -166,7 +169,9 @@ export const addPersonOrSystem = function (typeC4Shape, alias, label, descr, spr //type, alias, label, ?techn, ?descr ?sprite, ?tags, $link export const addContainer = function (typeC4Shape, alias, label, techn, descr, sprite, tags, link) { // Don't allow label nulling - if (alias === null || label === null) return; + if (alias === null || label === null) { + return; + } let container = {}; const old = c4ShapeArray.find((container) => container.alias === alias); @@ -232,7 +237,9 @@ export const addContainer = function (typeC4Shape, alias, label, techn, descr, s //type, alias, label, ?techn, ?descr ?sprite, ?tags, $link export const addComponent = function (typeC4Shape, alias, label, techn, descr, sprite, tags, link) { // Don't allow label nulling - if (alias === null || label === null) return; + if (alias === null || label === null) { + return; + } let component = {}; const old = c4ShapeArray.find((component) => component.alias === alias); @@ -300,7 +307,9 @@ export const addPersonOrSystemBoundary = function (alias, label, type, tags, lin // if (parentBoundary === null) return; // Don't allow label nulling - if (alias === null || label === null) return; + if (alias === null || label === null) { + return; + } let boundary = {}; const old = boundarys.find((boundary) => boundary.alias === alias); @@ -354,7 +363,9 @@ export const addContainerBoundary = function (alias, label, type, tags, link) { // if (parentBoundary === null) return; // Don't allow label nulling - if (alias === null || label === null) return; + if (alias === null || label === null) { + return; + } let boundary = {}; const old = boundarys.find((boundary) => boundary.alias === alias); @@ -417,7 +428,9 @@ export const addDeploymentNode = function ( // if (parentBoundary === null) return; // Don't allow label nulling - if (alias === null || label === null) return; + if (alias === null || label === null) { + return; + } let boundary = {}; const old = boundarys.find((boundary) => boundary.alias === alias); @@ -646,8 +659,12 @@ export const updateLayoutConfig = function (typeC4Shape, c4ShapeInRowParam, c4Bo c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam); } - if (c4ShapeInRowValue >= 1) c4ShapeInRow = c4ShapeInRowValue; - if (c4BoundaryInRowValue >= 1) c4BoundaryInRow = c4BoundaryInRowValue; + if (c4ShapeInRowValue >= 1) { + c4ShapeInRow = c4ShapeInRowValue; + } + if (c4BoundaryInRowValue >= 1) { + c4BoundaryInRow = c4BoundaryInRowValue; + } }; export const getC4ShapeInRow = function () { @@ -665,11 +682,13 @@ export const getParentBoundaryParse = function () { }; export const getC4ShapeArray = function (parentBoundary) { - if (parentBoundary === undefined || parentBoundary === null) return c4ShapeArray; - else + if (parentBoundary === undefined || parentBoundary === null) { + return c4ShapeArray; + } else { return c4ShapeArray.filter((personOrSystem) => { return personOrSystem.parentBoundary === parentBoundary; }); + } }; export const getC4Shape = function (alias) { return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias); @@ -679,8 +698,11 @@ export const getC4ShapeKeys = function (parentBoundary) { }; export const getBoundarys = function (parentBoundary) { - if (parentBoundary === undefined || parentBoundary === null) return boundarys; - else return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary); + if (parentBoundary === undefined || parentBoundary === null) { + return boundarys; + } else { + return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary); + } }; export const getRels = function () { diff --git a/packages/mermaid/src/diagrams/c4/c4Renderer.js b/packages/mermaid/src/diagrams/c4/c4Renderer.js index c4f40b0bc5..a9072346a8 100644 --- a/packages/mermaid/src/diagrams/c4/c4Renderer.js +++ b/packages/mermaid/src/diagrams/c4/c4Renderer.js @@ -414,7 +414,9 @@ export const drawRels = function (diagram, rels, getC4ShapeObj, diagObj) { let relTextWrap = rel.wrap && conf.wrap; let relConf = messageFont(conf); let diagramType = diagObj.db.getC4Type(); - if (diagramType === 'C4Dynamic') rel.label.text = i + ': ' + rel.label.text; + if (diagramType === 'C4Dynamic') { + rel.label.text = i + ': ' + rel.label.text; + } let textLimitWidth = calculateTextWidth(rel.label.text, relConf); calcC4ShapeTextWH('label', rel, relTextWrap, relConf, textLimitWidth); @@ -555,7 +557,9 @@ function drawInsideBoundary( ); } // draw boundary - if (currentBoundary.alias !== 'global') drawBoundary(diagram, currentBoundary, currentBounds); + if (currentBoundary.alias !== 'global') { + drawBoundary(diagram, currentBoundary, currentBounds); + } parentBounds.data.stopy = Math.max( currentBounds.data.stopy + conf.c4ShapeMargin, parentBounds.data.stopy diff --git a/packages/mermaid/src/diagrams/c4/svgDraw.js b/packages/mermaid/src/diagrams/c4/svgDraw.js index 5666d9f844..437a24bcb8 100644 --- a/packages/mermaid/src/diagrams/c4/svgDraw.js +++ b/packages/mermaid/src/diagrams/c4/svgDraw.js @@ -13,7 +13,9 @@ export const drawRect = function (elem, rectData) { rectElem.attr('ry', rectData.ry); if (rectData.attrs !== 'undefined' && rectData.attrs !== null) { - for (let attrKey in rectData.attrs) rectElem.attr(attrKey, rectData.attrs[attrKey]); + for (let attrKey in rectData.attrs) { + rectElem.attr(attrKey, rectData.attrs[attrKey]); + } } if (rectData.class !== 'undefined') { @@ -231,9 +233,12 @@ export const drawRels = (elem, rels, conf) => { line.attr('stroke-width', '1'); line.attr('stroke', strokeColor); line.style('fill', 'none'); - if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)'); - if (rel.type === 'birel' || rel.type === 'rel_b') + if (rel.type !== 'rel_b') { + line.attr('marker-end', 'url(' + url + '#arrowhead)'); + } + if (rel.type === 'birel' || rel.type === 'rel_b') { line.attr('marker-start', 'url(' + url + '#arrowend)'); + } i = -1; } else { let line = relsElem.append('path'); @@ -256,9 +261,12 @@ export const drawRels = (elem, rels, conf) => { .replaceAll('stopx', rel.endPoint.x) .replaceAll('stopy', rel.endPoint.y) ); - if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)'); - if (rel.type === 'birel' || rel.type === 'rel_b') + if (rel.type !== 'rel_b') { + line.attr('marker-end', 'url(' + url + '#arrowhead)'); + } + if (rel.type === 'birel' || rel.type === 'rel_b') { line.attr('marker-start', 'url(' + url + '#arrowend)'); + } } let messageConf = conf.messageFont(); @@ -314,7 +322,9 @@ const drawBoundary = function (elem, boundary, conf) { let fontColor = boundary.fontColor ? boundary.fontColor : 'black'; let attrsValue = { 'stroke-width': 1.0, 'stroke-dasharray': '7.0,7.0' }; - if (boundary.nodeType) attrsValue = { 'stroke-width': 1.0 }; + if (boundary.nodeType) { + attrsValue = { 'stroke-width': 1.0 }; + } let rectData = { x: boundary.x, y: boundary.y, diff --git a/packages/mermaid/src/diagrams/class/classDb.js b/packages/mermaid/src/diagrams/class/classDb.js index 223bfe067a..6c49381c44 100644 --- a/packages/mermaid/src/diagrams/class/classDb.js +++ b/packages/mermaid/src/diagrams/class/classDb.js @@ -49,7 +49,9 @@ const splitClassNameAndType = function (id) { export const addClass = function (id) { let classId = splitClassNameAndType(id); // Only add class if not exists - if (typeof classes[classId.className] !== 'undefined') return; + if (typeof classes[classId.className] !== 'undefined') { + return; + } classes[classId.className] = { id: classId.className, @@ -185,7 +187,9 @@ export const cleanupLabel = function (label) { export const setCssClass = function (ids, className) { ids.split(',').forEach(function (_id) { let id = _id; - if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id; + if (_id[0].match(/\d/)) { + id = MERMAID_DOM_ID_PREFIX + id; + } if (typeof classes[id] !== 'undefined') { classes[id].cssClasses.push(className); } @@ -220,7 +224,9 @@ export const setLink = function (ids, linkStr, target) { const config = configApi.getConfig(); ids.split(',').forEach(function (_id) { let id = _id; - if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id; + if (_id[0].match(/\d/)) { + id = MERMAID_DOM_ID_PREFIX + id; + } if (typeof classes[id] !== 'undefined') { classes[id].link = utils.formatUrl(linkStr, config); if (config.securityLevel === 'sandbox') { diff --git a/packages/mermaid/src/diagrams/class/classDetector-V2.ts b/packages/mermaid/src/diagrams/class/classDetector-V2.ts index 35614b64fd..7100f6c665 100644 --- a/packages/mermaid/src/diagrams/class/classDetector-V2.ts +++ b/packages/mermaid/src/diagrams/class/classDetector-V2.ts @@ -2,8 +2,12 @@ import type { DiagramDetector } from '../../diagram-api/types'; export const classDetectorV2: DiagramDetector = (txt, config) => { // If we have configured to use dagre-wrapper then we should return true in this function for classDiagram code thus making it use the new class diagram - if (txt.match(/^\s*classDiagram/) !== null && config?.class?.defaultRenderer === 'dagre-wrapper') + if ( + txt.match(/^\s*classDiagram/) !== null && + config?.class?.defaultRenderer === 'dagre-wrapper' + ) { return true; + } // We have not opted to use the new renderer so we should return true if we detect a class diagram return txt.match(/^\s*classDiagram-v2/) !== null; }; diff --git a/packages/mermaid/src/diagrams/class/classDetector.ts b/packages/mermaid/src/diagrams/class/classDetector.ts index 93c6a863b8..c3833ed28c 100644 --- a/packages/mermaid/src/diagrams/class/classDetector.ts +++ b/packages/mermaid/src/diagrams/class/classDetector.ts @@ -2,7 +2,9 @@ import type { DiagramDetector } from '../../diagram-api/types'; export const classDetector: DiagramDetector = (txt, config) => { // If we have configured to use dagre-wrapper then we should never return true in this function - if (config?.class?.defaultRenderer === 'dagre-wrapper') return false; + if (config?.class?.defaultRenderer === 'dagre-wrapper') { + return false; + } // We have not opted to use the new renderer so we should return true if we detect a class diagram return txt.match(/^\s*classDiagram/) !== null; }; diff --git a/packages/mermaid/src/diagrams/class/svgDraw.js b/packages/mermaid/src/diagrams/class/svgDraw.js index 443765b485..4be4ff2e56 100644 --- a/packages/mermaid/src/diagrams/class/svgDraw.js +++ b/packages/mermaid/src/diagrams/class/svgDraw.js @@ -190,7 +190,9 @@ export const drawClass = function (elem, classDef, conf, diagObj) { let isFirst = true; classDef.annotations.forEach(function (member) { const titleText2 = title.append('tspan').text('«' + member + '»'); - if (!isFirst) titleText2.attr('dy', conf.textHeight); + if (!isFirst) { + titleText2.attr('dy', conf.textHeight); + } isFirst = false; }); @@ -203,7 +205,9 @@ export const drawClass = function (elem, classDef, conf, diagObj) { const classTitle = title.append('tspan').text(classTitleString).attr('class', 'title'); // If class has annotations the title needs to have an offset of the text height - if (!isFirst) classTitle.attr('dy', conf.textHeight); + if (!isFirst) { + classTitle.attr('dy', conf.textHeight); + } const titleHeight = title.node().getBBox().height; diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index 8caa4c7a61..e7fb395de1 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -8,7 +8,9 @@ import { MermaidConfig } from '../../config.type'; * @returns {string[]} The rows in that string */ export const getRows = (s?: string): string[] => { - if (!s) return ['']; + if (!s) { + return ['']; + } const str = breakToPlaceholder(s).replace(/\\n/g, '#br#'); return str.split('#br#'); }; @@ -39,7 +41,9 @@ const sanitizeMore = (text: string, config: MermaidConfig) => { }; export const sanitizeText = (text: string, config: MermaidConfig): string => { - if (!text) return text; + if (!text) { + return text; + } if (config.dompurifyConfig) { text = DOMPurify.sanitize(sanitizeMore(text, config), config.dompurifyConfig).toString(); } else { @@ -52,7 +56,9 @@ export const sanitizeTextOrArray = ( a: string | string[] | string[][], config: MermaidConfig ): string | string[] => { - if (typeof a === 'string') return sanitizeText(a, config); + if (typeof a === 'string') { + return sanitizeText(a, config); + } // TODO: Refactor to avoid flat. return a.flat().map((x: string) => sanitizeText(x, config)); }; diff --git a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js index 32a26720fd..b66bfe730f 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js +++ b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js @@ -281,9 +281,13 @@ function cylinder(parent, bbox, node) { // ellipsis equation: x*x / a*a + y*y / b*b = 1 // solve for y to get adjusted value for pos.y let y = ry * ry * (1 - (x * x) / (rx * rx)); - if (y != 0) y = Math.sqrt(y); + if (y != 0) { + y = Math.sqrt(y); + } y = ry - y; - if (point.y - node.y > 0) y = -y; + if (point.y - node.y > 0) { + y = -y; + } pos.y += y; } diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 5aa2032257..225aee180e 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -699,7 +699,9 @@ const destructLink = (_str, _startStr) => { startInfo.type = info.type; } else { // x-- xyz --> - not supported - if (startInfo.type !== info.type) return { type: 'INVALID', stroke: 'INVALID' }; + if (startInfo.type !== info.type) { + return { type: 'INVALID', stroke: 'INVALID' }; + } startInfo.type = 'double_' + startInfo.type; } diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts index 7ef39e4215..c88a63fa68 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts @@ -2,7 +2,8 @@ import type { DiagramDetector } from '../../diagram-api/types'; export const flowDetectorV2: DiagramDetector = (txt, config) => { // If we have configured to use dagre-wrapper then we should return true in this function for graph code thus making it use the new flowchart diagram - if (config?.flowchart?.defaultRenderer === 'dagre-wrapper' && txt.match(/^\s*graph/) !== null) + if (config?.flowchart?.defaultRenderer === 'dagre-wrapper' && txt.match(/^\s*graph/) !== null) { return true; + } return txt.match(/^\s*flowchart/) !== null; }; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts index 0cf54c7d50..02ef63f994 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts @@ -3,6 +3,8 @@ import type { DiagramDetector } from '../../diagram-api/types'; export const flowDetector: DiagramDetector = (txt, config) => { // If we have conferred to only use new flow charts this function should always return false // as in not signalling true for a legacy flowchart - if (config?.flowchart?.defaultRenderer === 'dagre-wrapper') return false; + if (config?.flowchart?.defaultRenderer === 'dagre-wrapper') { + return false; + } return txt.match(/^\s*graph/) !== null; }; diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index 096b5a4104..99c93ea043 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -153,7 +153,9 @@ export const isInvalidDate = function (date, dateFormat, excludes, includes) { }; const checkTaskDates = function (task, dateFormat, excludes, includes) { - if (!excludes.length || task.manualEndTime) return; + if (!excludes.length || task.manualEndTime) { + return; + } let startTime = moment(task.startTime, dateFormat, true); startTime.add(1, 'd'); let endTime = moment(task.endTime, dateFormat, true); diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index 8ad9ca0371..c9f6836a51 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -427,7 +427,9 @@ export const draw = function (text, id, version, diagObj) { ); const maxTime = tasks.reduce((max, { endTime }) => (max ? Math.max(max, endTime) : endTime), 0); const dateFormat = diagObj.db.getDateFormat(); - if (!minTime || !maxTime) return; + if (!minTime || !maxTime) { + return; + } const excludeRanges = []; let range = null; @@ -552,7 +554,9 @@ export const draw = function (text, id, version, diagObj) { const tspan = doc.createElementNS('http://www.w3.org/2000/svg', 'tspan'); tspan.setAttribute('alignment-baseline', 'central'); tspan.setAttribute('x', '10'); - if (j > 0) tspan.setAttribute('dy', '1em'); + if (j > 0) { + tspan.setAttribute('dy', '1em'); + } tspan.textContent = rows[j]; svgLabel.appendChild(tspan); } diff --git a/packages/mermaid/src/diagrams/git/gitGraphAst.js b/packages/mermaid/src/diagrams/git/gitGraphAst.js index c5674f39de..496e578b71 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphAst.js +++ b/packages/mermaid/src/diagrams/git/gitGraphAst.js @@ -399,7 +399,9 @@ function upsert(arr, key, newVal) { /** @param commitArr */ function prettyPrintCommitHistory(commitArr) { const commit = commitArr.reduce((out, commit) => { - if (out.seq > commit.seq) return out; + if (out.seq > commit.seq) { + return out; + } return commit; }, commitArr[0]); let line = ''; @@ -412,7 +414,9 @@ function prettyPrintCommitHistory(commitArr) { }); const label = [line, commit.id, commit.seq]; for (let branch in branches) { - if (branches[branch] === commit.id) label.push(branch); + if (branches[branch] === commit.id) { + label.push(branch); + } } log.debug(label.join(' ')); if (commit.parents && commit.parents.length == 2) { @@ -452,7 +456,9 @@ export const clear = function () { export const getBranchesAsObjArray = function () { const branchesArray = Object.values(branchesConfig) .map((branchConfig, i) => { - if (branchConfig.order !== null) return branchConfig; + if (branchConfig.order !== null) { + return branchConfig; + } return { ...branchConfig, order: parseFloat(`0.${i}`, 10), diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js index fa46dfde9a..bfb0ea71c7 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js @@ -357,7 +357,9 @@ export const draw = function (txt, id, ver) { branchNum++; } svg.attr('height', function () { - if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing; + if (direction === 'BT') { + return Object.keys(allCommitsDict).length * config.nodeSpacing; + } return (branches.length + 1) * config.branchOffset; }); } catch (e) { diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDb.js b/packages/mermaid/src/diagrams/sequence/sequenceDb.js index 6c863e204e..ba9d0549bd 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDb.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDb.js @@ -26,7 +26,9 @@ export const parseDirective = function (statement, context, type) { export const addActor = function (id, name, description, type) { // Don't allow description nulling const old = actors[id]; - if (old && name === old.name && description == null) return; + if (old && name === old.name && description == null) { + return; + } // Don't allow null descriptions, either if (description == null || description.text == null) { diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index 054de3d9a6..22fa5da8cf 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -762,8 +762,11 @@ export const draw = function (_text, id, _version, diagObj) { case diagObj.db.LINETYPE.AUTONUMBER: sequenceIndex = msg.message.start || sequenceIndex; sequenceIndexStep = msg.message.step || sequenceIndexStep; - if (msg.message.visible) diagObj.db.enableSequenceNumbers(); - else diagObj.db.disableSequenceNumbers(); + if (msg.message.visible) { + diagObj.db.enableSequenceNumbers(); + } else { + diagObj.db.disableSequenceNumbers(); + } break; case diagObj.db.LINETYPE.CRITICAL_START: adjustLoopHeightForWrap( diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index c2a007edce..0dc4377214 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -31,7 +31,9 @@ const addPopupInteraction = (id, actorCnt) => { addFunction(() => { const arr = document.querySelectorAll(id); // This will be the case when running in sandboxed mode - if (arr.length === 0) return; + if (arr.length === 0) { + return; + } arr[0].addEventListener('mouseover', function () { popupMenuUpFunc('actor' + actorCnt + '_popup'); }); @@ -322,7 +324,9 @@ export const drawLabel = function (elem, txtObject) { let actorCnt = -1; export const fixLifeLineHeights = (diagram, bounds) => { - if (!diagram.selectAll) return; + if (!diagram.selectAll) { + return; + } diagram .selectAll('.actor-line') .attr('class', '200') diff --git a/packages/mermaid/src/diagrams/state/shapes.js b/packages/mermaid/src/diagrams/state/shapes.js index cb73b63d2c..aa99ff862f 100644 --- a/packages/mermaid/src/diagrams/state/shapes.js +++ b/packages/mermaid/src/diagrams/state/shapes.js @@ -217,7 +217,9 @@ export const addTitleAndBox = (g, stateDef, altBkg) => { .attr('rx', '0'); title.attr('x', startX + pad); - if (titleWidth <= orgWidth) title.attr('x', orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); + if (titleWidth <= orgWidth) { + title.attr('x', orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); + } // Title background g.insert('rect', ':first-child') @@ -379,14 +381,27 @@ export const drawState = function (elem, stateDef) { const g = elem.append('g').attr('id', id).attr('class', 'stateGroup'); - if (stateDef.type === 'start') drawStartState(g); - if (stateDef.type === 'end') drawEndState(g); - if (stateDef.type === 'fork' || stateDef.type === 'join') drawForkJoinState(g, stateDef); - if (stateDef.type === 'note') drawNote(stateDef.note.text, g); - if (stateDef.type === 'divider') drawDivider(g); - if (stateDef.type === 'default' && stateDef.descriptions.length === 0) + if (stateDef.type === 'start') { + drawStartState(g); + } + if (stateDef.type === 'end') { + drawEndState(g); + } + if (stateDef.type === 'fork' || stateDef.type === 'join') { + drawForkJoinState(g, stateDef); + } + if (stateDef.type === 'note') { + drawNote(stateDef.note.text, g); + } + if (stateDef.type === 'divider') { + drawDivider(g); + } + if (stateDef.type === 'default' && stateDef.descriptions.length === 0) { drawSimpleState(g, stateDef); - if (stateDef.type === 'default' && stateDef.descriptions.length > 0) drawDescrState(g, stateDef); + } + if (stateDef.type === 'default' && stateDef.descriptions.length > 0) { + drawDescrState(g, stateDef); + } const stateBox = g.node().getBBox(); stateInfo.width = stateBox.width + 2 * getConfig().state.padding; diff --git a/packages/mermaid/src/diagrams/state/stateDb.js b/packages/mermaid/src/diagrams/state/stateDb.js index 96f92af8a8..ace6decb45 100644 --- a/packages/mermaid/src/diagrams/state/stateDb.js +++ b/packages/mermaid/src/diagrams/state/stateDb.js @@ -148,7 +148,9 @@ export const addState = function (id, type, doc, descr, note) { } if (descr) { log.info('Adding state ', id, descr); - if (typeof descr === 'string') addDescription(id, descr.trim()); + if (typeof descr === 'string') { + addDescription(id, descr.trim()); + } if (typeof descr === 'object') { descr.forEach((des) => addDescription(id, des.trim())); diff --git a/packages/mermaid/src/diagrams/state/stateDetector-V2.ts b/packages/mermaid/src/diagrams/state/stateDetector-V2.ts index 7fd9633c6b..9e59c4a04d 100644 --- a/packages/mermaid/src/diagrams/state/stateDetector-V2.ts +++ b/packages/mermaid/src/diagrams/state/stateDetector-V2.ts @@ -1,8 +1,11 @@ import type { DiagramDetector } from '../../diagram-api/types'; export const stateDetectorV2: DiagramDetector = (text, config) => { - if (text.match(/^\s*stateDiagram-v2/) !== null) return true; - if (text.match(/^\s*stateDiagram/) && config?.state?.defaultRenderer === 'dagre-wrapper') + if (text.match(/^\s*stateDiagram-v2/) !== null) { return true; + } + if (text.match(/^\s*stateDiagram/) && config?.state?.defaultRenderer === 'dagre-wrapper') { + return true; + } return false; }; diff --git a/packages/mermaid/src/diagrams/state/stateDetector.ts b/packages/mermaid/src/diagrams/state/stateDetector.ts index ca07eccd51..85338c6df9 100644 --- a/packages/mermaid/src/diagrams/state/stateDetector.ts +++ b/packages/mermaid/src/diagrams/state/stateDetector.ts @@ -3,6 +3,8 @@ import type { DiagramDetector } from '../../diagram-api/types'; export const stateDetector: DiagramDetector = (txt, config) => { // If we have confirmed to only use new state diagrams this function should always return false // as in not signalling true for a legacy state diagram - if (config?.state?.defaultRenderer === 'dagre-wrapper') return false; + if (config?.state?.defaultRenderer === 'dagre-wrapper') { + return false; + } return txt.match(/^\s*stateDiagram/) !== null; }; diff --git a/packages/mermaid/src/diagrams/state/stateRenderer.js b/packages/mermaid/src/diagrams/state/stateRenderer.js index 1c218a8705..73717a645c 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer.js @@ -120,7 +120,7 @@ const renderDoc = (doc, diagram, parentId, altBkg, root, domDocument, diagObj) = } // Set an object for the graph label - if (parentId) + if (parentId) { graph.setGraph({ rankdir: 'LR', multigraph: true, @@ -133,7 +133,7 @@ const renderDoc = (doc, diagram, parentId, altBkg, root, domDocument, diagObj) = // ranksep: 5, // nodesep: 1 }); - else { + } else { graph.setGraph({ rankdir: 'TB', multigraph: true, @@ -268,7 +268,9 @@ const renderDoc = (doc, diagram, parentId, altBkg, root, domDocument, diagObj) = let pWidth = 0; let pShift = 0; if (parent) { - if (parent.parentElement) pWidth = parent.parentElement.getBBox().width; + if (parent.parentElement) { + pWidth = parent.parentElement.getBBox().width; + } pShift = parseInt(parent.getAttribute('data-x-shift'), 10); if (Number.isNaN(pShift)) { pShift = 0; diff --git a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts index 290b19e303..208391ab39 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts @@ -74,7 +74,9 @@ export const draw = function (text, id, version, diagObj) { const title = diagObj.db.getDiagramTitle(); const actorNames = diagObj.db.getActors(); - for (const member in actors) delete actors[member]; + for (const member in actors) { + delete actors[member]; + } let actorPos = 0; actorNames.forEach((actorName) => { actors[actorName] = { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 09842c4265..3996910832 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -143,7 +143,9 @@ const initThrowsErrors = async function ( if (typeof callback !== 'undefined') { callback(id); } - if (bindFunctions) bindFunctions(element); + if (bindFunctions) { + bindFunctions(element); + } }, element ); diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index a5605150ae..d2c48361af 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -389,11 +389,15 @@ const parseDirective = function (p: any, statement: string, context: string, typ currentDirective = {}; break; case 'type_directive': - if (!currentDirective) throw new Error('currentDirective is undefined'); + if (!currentDirective) { + throw new Error('currentDirective is undefined'); + } currentDirective.type = statement.toLowerCase(); break; case 'arg_directive': - if (!currentDirective) throw new Error('currentDirective is undefined'); + if (!currentDirective) { + throw new Error('currentDirective is undefined'); + } currentDirective.args = JSON.parse(statement); break; case 'close_directive': diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index eecda41e99..ba46011ddd 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -173,7 +173,9 @@ export const detectDirective = function (text, type = null) { */ export const isSubstringInArray = function (str, arr) { for (let i = 0; i < arr.length; i++) { - if (arr[i].match(str)) return i; + if (arr[i].match(str)) { + return i; + } } return -1; }; @@ -227,7 +229,9 @@ export const runFunc = (functionName, ...params) => { let obj = window; for (let i = 0; i < len; i++) { obj = obj[arrPaths[i]]; - if (!obj) return; + if (!obj) { + return; + } } obj[fnName](...params); @@ -276,8 +280,12 @@ const traverseEdge = (points) => { // The point is remainingDistance from prevPoint in the vector between prevPoint and point // Calculate the coordinates const distanceRatio = remainingDistance / vectorDistance; - if (distanceRatio <= 0) center = prevPoint; - if (distanceRatio >= 1) center = { x: point.x, y: point.y }; + if (distanceRatio <= 0) { + center = prevPoint; + } + if (distanceRatio >= 1) { + center = { x: point.x, y: point.y }; + } if (distanceRatio > 0 && distanceRatio < 1) { center = { x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, @@ -330,8 +338,12 @@ const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) // The point is remainingDistance from prevPoint in the vector between prevPoint and point // Calculate the coordinates const distanceRatio = remainingDistance / vectorDistance; - if (distanceRatio <= 0) center = prevPoint; - if (distanceRatio >= 1) center = { x: point.x, y: point.y }; + if (distanceRatio <= 0) { + center = prevPoint; + } + if (distanceRatio >= 1) { + center = { x: point.x, y: point.y }; + } if (distanceRatio > 0 && distanceRatio < 1) { center = { x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, @@ -389,8 +401,12 @@ const calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => { // The point is remainingDistance from prevPoint in the vector between prevPoint and point // Calculate the coordinates const distanceRatio = remainingDistance / vectorDistance; - if (distanceRatio <= 0) center = prevPoint; - if (distanceRatio >= 1) center = { x: point.x, y: point.y }; + if (distanceRatio <= 0) { + center = prevPoint; + } + if (distanceRatio >= 1) { + center = { x: point.x, y: point.y }; + } if (distanceRatio > 0 && distanceRatio < 1) { center = { x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, @@ -712,7 +728,9 @@ export const initIdGenerator = class iterator { } next() { - if (!this.deterministic) return Date.now(); + if (!this.deterministic) { + return Date.now(); + } return this.count++; } @@ -834,7 +852,9 @@ export function isDetailedError(error: unknown): error is DetailedError { /** @param error */ export function getErrorMessage(error: unknown): string { - if (error instanceof Error) return error.message; + if (error instanceof Error) { + return error.message; + } return String(error); } From 55d2c928ee7ab774a391383f270e6843a9db41c5 Mon Sep 17 00:00:00 2001 From: Jeroen Ekkelkamp <58693851+jeroenekkelkamp@users.noreply.github.com> Date: Wed, 19 Oct 2022 21:00:40 +0200 Subject: [PATCH 0448/1038] Update packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com> --- .../mermaid/src/dagre-wrapper/mermaid-graphlib.js | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 502c039ff3..6a70264d83 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -45,20 +45,7 @@ const edgeInCluster = (edge, clusterId) => { log.debug('Tilt, ', clusterId, ',not in decendants'); return false; } - if (decendants[clusterId].indexOf(edge.v) >= 0) { - return true; - } - if (isDecendant(edge.v, clusterId)) { - return true; - } - if (isDecendant(edge.w, clusterId)) { - return true; - } - if (decendants[clusterId].indexOf(edge.w) >= 0) { - return true; - } - - return false; +return decendants[clusterId].indexOf(edge.v) >= 0 || isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId) || decendants[clusterId].indexOf(edge.w) >= 0; }; const copy = (clusterId, graph, newGraph, rootId) => { From 4cd1e9a4625f629e682866bb8b9bf5a803894049 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Thu, 20 Oct 2022 00:06:46 -0300 Subject: [PATCH 0449/1038] docs: contribute with vitepress --- CONTRIBUTING.md | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cf567a97d3..49a9fb3515 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,31 +67,23 @@ flowchart LR ### The official documentation site -**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Docsify](https://docsify.js.org), a simple documentation site generator.** +**[The mermaid documentation site](https://mermaid-js.github.io/mermaid/) is powered by [Vitepress](https://vitepress.vuejs.org/), a simple documentation site generator.** -If you want to preview the whole documentation site on your machine, you need to install `docsify-cli`: +If you want to preview the whole documentation site on your machine: ```sh -$ npm i docsify-cli -g +$ cd mermaid +$ pnpm i +$ pnpm docs:dev ``` -If you are more familiar with Yarn, you can use the following command: +You can now build and serve the documentation site: ```sh -$ yarn global add docsify-cli +$ pnpm docs:bundle +$ pnpm docs:serve ``` -The above command will install `docsify-cli` globally. -If the installation is successful, the command `docsify` will be available in your `PATH`. - -You can now run the following command to serve the documentation site: - -```sh -$ docsify serve docs -``` - -Once the local HTTP server is listening, you can point your browser at http://localhost:3000. - ## Branching Going forward we will use a git flow inspired approach to branching. So development is done in develop, to do the development in the develop. @@ -152,7 +144,7 @@ The source files for documentation are in `/packages/mermaid/src/docs` and are w #### Adding to or changing the documentation organization -If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `docs/_sidebar.md`. +If you want to add a new section or change the organization (structure), then you need to make sure to **change the side navigation** in `mermaid/src/docs/.vitepress/config.js`. When changes are committed and then released, they become part of the `master` branch and become part of the published documentation on https://mermaid-js.github.io/mermaid/ From 4b64775fde24cd357580cf52c091c69a1ca2750f Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Thu, 20 Oct 2022 00:13:46 -0300 Subject: [PATCH 0450/1038] docs: small fixes --- .../mermaid/src/docs/.vitepress/config.ts | 2 +- .../docs/.vitepress/mermaid-markdown-all.ts | 26 ++++++++++++++++++- .../src/docs/.vitepress/theme/custom.css | 6 +++++ packages/mermaid/src/docs/syntax/flowchart.md | 6 ++--- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 121c4de751..e15be5ece0 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -11,7 +11,7 @@ export default defineConfig({ themeConfig: { nav: nav(), editLink: { - pattern: 'https://github.com/mermaid-js/mermaid/edit/develop/docs/:path', + pattern: 'https://github.com/mermaid-js/mermaid/edit/develop/packages/mermaid/src/docs/:path', text: 'Edit this page on GitHub', }, diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index fb699e27fa..a7848fce7c 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -1,6 +1,23 @@ import { MermaidMarkdown } from 'vitepress-plugin-mermaid'; +// import { deflate } from 'pako'; +// import { fromUint8Array } from 'js-base64'; import shiki from 'shiki'; +// const serializeState = (state: State, serde: SerdeType = 'pako'): string => { +// if (serdes[serde] === undefined) { +// throw new Error(`Unknown serde type: ${serde}`); +// } +// const json = JSON.stringify(state); +// const serialized = serdes[serde].serialize(json); +// return `${serde}:${serialized}`; +// }; + +// const serialize = (state: string): string => { +// const data = new TextEncoder().encode(state); +// const compressed = deflate(data, { level: 9 }); +// return fromUint8Array(compressed, true); +// }; + export default { config: async (md) => { MermaidMarkdown(md); @@ -15,9 +32,16 @@ export default { let code = highlighter.codeToHtml(token.content, { lang: 'mermaid' }); code = code.replace('#2e3440ff', 'transparent'); code = code.replace('#292D3E', 'transparent'); + console.log(token.content); + code = '<h5>Code:</h5>' + - '<div class="language-mermaid"><button class="copy"></button><span class="lang">mermaid</span>' + + `<div class="language-mermaid">` + + // tODO: compute edit link! + // `<a class="edit" href="https://mermaid.live/edit#pako:${serialize( + // token.content + // )}" target=”_blank”>✒️</a>` + + `<button class="copy"></button><span class="lang">mermaid</span>` + code + '</div>'; diff --git a/packages/mermaid/src/docs/.vitepress/theme/custom.css b/packages/mermaid/src/docs/.vitepress/theme/custom.css index 24d1fa7dda..e1ef049cdf 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/custom.css +++ b/packages/mermaid/src/docs/.vitepress/theme/custom.css @@ -19,3 +19,9 @@ .vp-doc > div { width: 100%; } + +a.edit { + margin: 12px; + position: relative; + top: 10px; +} diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md index 09960a9279..478e76ef3d 100644 --- a/packages/mermaid/src/docs/syntax/flowchart.md +++ b/packages/mermaid/src/docs/syntax/flowchart.md @@ -502,10 +502,10 @@ Beginner's tip—a full example using interactive links in a html context: </pre> <script> - var callback = function () { + const callback = function () { alert('A callback was triggered'); }; - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, securityLevel: 'loose', @@ -594,7 +594,7 @@ A shorter form of adding a class is to attach the classname to the node using th ```mermaid-example flowchart LR A:::someclass --> B - classDef someclass fill:#f96; + classDef someclass fill:#f96 ``` ### Css classes From 870cfdc44ce387805fb685a0fc23e0dacf75ec99 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Thu, 20 Oct 2022 02:13:18 -0300 Subject: [PATCH 0451/1038] docs: transform custom blocks, warning notes jison --- README.md | 2 +- .../src/docs/.vitepress/blocks-markdown.ts | 25 +++++++ .../mermaid/src/docs/.vitepress/config.ts | 17 ++++- .../docs/.vitepress/mermaid-markdown-all.ts | 66 +++++++++---------- .../mermaid/src/docs/community/newDiagram.md | 13 ++-- .../mermaid/src/docs/config/8.6.0_docs.md | 38 +++++------ packages/mermaid/src/docs/config/theming.md | 4 +- packages/mermaid/src/docs/config/usage.md | 24 +++---- packages/mermaid/src/docs/intro/index.md | 2 +- packages/mermaid/src/docs/syntax/flowchart.md | 2 +- .../src/docs/syntax/sequenceDiagram.md | 4 +- 11 files changed, 116 insertions(+), 81 deletions(-) create mode 100644 packages/mermaid/src/docs/.vitepress/blocks-markdown.ts diff --git a/README.md b/README.md index 90ae1ad4cd..97ad1f6c4e 100644 --- a/README.md +++ b/README.md @@ -354,7 +354,7 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio A quick note from Knut Sveidqvist: -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ > _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ > > _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ diff --git a/packages/mermaid/src/docs/.vitepress/blocks-markdown.ts b/packages/mermaid/src/docs/.vitepress/blocks-markdown.ts new file mode 100644 index 0000000000..870f1582ce --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/blocks-markdown.ts @@ -0,0 +1,25 @@ +const CustomMarkdown = (md) => { + const fence = md.renderer.rules.fence.bind(md.renderer.rules); + + md.renderer.rules.fence = (tokens, index, options, env, slf) => { + const token = tokens[index]; + + if (token.info.trim() === 'warning') { + return `<div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>${token.content}}</p></div>`; + } + + if (token.info.trim() === 'note') { + return `<div class="tip custom-block"><p class="custom-block-title">NOTE</p><p>${token.content}}</p></div>`; + } + + if (token.info.trim() === 'jison') { + return `<div class="language-"><button class="copy"></button><span class="lang">jison</span><pre><code>${token.content + .replace(/</g, '<') + .replace(/>/g, '>')}}</code></pre></div>`; + } + + return fence(tokens, index, options, env, slf); + }; +}; + +export default CustomMarkdown; diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index e15be5ece0..23b5d6a851 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -1,13 +1,24 @@ import { version } from '../../../package.json'; -import MermaidMarkdown from './mermaid-markdown-all'; +import MermaidExample from './mermaid-markdown-all'; +import { MermaidMarkdown } from 'vitepress-plugin-mermaid'; +import CustomMarkdown from './blocks-markdown'; import { defineConfig } from 'vitepress'; +const allMarkdownTransformers = { + config: async (md) => { + MermaidMarkdown(md); + await MermaidExample(md); + CustomMarkdown(md); + }, +}; + export default defineConfig({ lang: 'en-US', title: 'Mermaid', description: 'Create diagrams and visualizations using text and code.', - base: '/mermaid-docs/', - markdown: MermaidMarkdown, + base: '/mermaid-js/', + markdown: allMarkdownTransformers, + head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/mermaid-js/favicon.ico' }]], themeConfig: { nav: nav(), editLink: { diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index a7848fce7c..4d2b855a80 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -1,4 +1,3 @@ -import { MermaidMarkdown } from 'vitepress-plugin-mermaid'; // import { deflate } from 'pako'; // import { fromUint8Array } from 'js-base64'; import shiki from 'shiki'; @@ -18,39 +17,38 @@ import shiki from 'shiki'; // return fromUint8Array(compressed, true); // }; -export default { - config: async (md) => { - MermaidMarkdown(md); - const fence = md.renderer.rules.fence.bind(md.renderer.rules); - - const highlighter = await shiki.getHighlighter({ theme: 'material-palenight' }); - - md.renderer.rules.fence = (tokens, index, options, env, slf) => { - const token = tokens[index]; - - if (token.info.trim() === 'mermaid-example') { - let code = highlighter.codeToHtml(token.content, { lang: 'mermaid' }); - code = code.replace('#2e3440ff', 'transparent'); - code = code.replace('#292D3E', 'transparent'); - console.log(token.content); - - code = - '<h5>Code:</h5>' + - `<div class="language-mermaid">` + - // tODO: compute edit link! - // `<a class="edit" href="https://mermaid.live/edit#pako:${serialize( - // token.content - // )}" target=”_blank”>✒️</a>` + - `<button class="copy"></button><span class="lang">mermaid</span>` + - code + - '</div>'; - - // return code; - return `${code} +const MermaidExample = async (md) => { + const fence = md.renderer.rules.fence.bind(md.renderer.rules); + + const highlighter = await shiki.getHighlighter({ theme: 'material-palenight' }); + + md.renderer.rules.fence = (tokens, index, options, env, slf) => { + const token = tokens[index]; + // console.log("==>",token.info); + + if (token.info.trim() === 'mermaid-example') { + let code = highlighter.codeToHtml(token.content, { lang: 'mermaid' }); + code = code.replace('#2e3440ff', 'transparent'); + code = code.replace('#292D3E', 'transparent'); + + code = + '<h5>Code:</h5>' + + `<div class="language-mermaid">` + + // TODO: compute edit link! + // `<a class="edit" href="https://mermaid.live/edit#pako:${serialize( + // token.content + // )}" target=”_blank”>✒️</a>` + + `<button class="copy"></button><span class="lang">mermaid</span>` + + code + + '</div>'; + + // return code; + return `${code} <h5>Render:</h5> <Mermaid id="me${index}" graph="${encodeURIComponent(token.content)}"></Mermaid>`; - } - return fence(tokens, index, options, env, slf); - }; - }, + } + return fence(tokens, index, options, env, slf); + }; }; + +export default MermaidExample; diff --git a/packages/mermaid/src/docs/community/newDiagram.md b/packages/mermaid/src/docs/community/newDiagram.md index 96ec9d75d8..a902f19614 100644 --- a/packages/mermaid/src/docs/community/newDiagram.md +++ b/packages/mermaid/src/docs/community/newDiagram.md @@ -15,7 +15,7 @@ For instance: There are some jison specific sub steps here where the parser stores the data encountered when parsing the diagram, this data is later used by the renderer. You can during the parsing call a object provided to the parser by the user of the parser. This object can be called during parsing for storing data. -``` +```jison statement : 'participant' actor { $$='actor'; } | signal { $$='signal'; } @@ -26,9 +26,9 @@ statement In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -::: tip +```note Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. -::: +``` For more info look in the example diagram type: @@ -120,8 +120,7 @@ Here some pointers on how to handle these different areas. Here is example handling from flowcharts: Jison: -``` - +```jison /* lexical grammar */ %lex %x open_directive @@ -179,7 +178,8 @@ accDescr { In a similar way to the directives the jison syntax are quite similar between the diagrams. -``` +```jison + * lexical grammar */ %lex %x acc_title @@ -199,6 +199,7 @@ statement : acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); } | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } + ``` The functions for setting title and description are provided by a common module. This is the import from flowDb.js: diff --git a/packages/mermaid/src/docs/config/8.6.0_docs.md b/packages/mermaid/src/docs/config/8.6.0_docs.md index 5b2f03caf2..40d1cc946b 100644 --- a/packages/mermaid/src/docs/config/8.6.0_docs.md +++ b/packages/mermaid/src/docs/config/8.6.0_docs.md @@ -46,9 +46,9 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -::: note +```note All directives are enclosed in `%%{ }%%` -::: +``` Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -60,7 +60,7 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -::: note +```note init would be an argument-directive: `%%{init: { **insert argument here**}}%%` The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. @@ -71,7 +71,7 @@ The json object that is passed as {**argument** } must be valid, quoted json or Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. When deployed within code, init is called before the graph/diagram description. -::: +``` **for example**: @@ -93,15 +93,15 @@ When deployed within code, init is called before the graph/diagram description. | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -::: note +```note Wrap is a function that is currently only deployable for sequence diagrams. -Wrap respects a manually added <br\>, so if the user wants to break up their text, they have full control over line breaks by adding <br\> tags. +`Wrap respects a manually added <br>, so if the user wants to break up their text, they have full control over line breaks by adding <br> tags.` It is a non-argument directive and can be executed thusly: `%%{wrap}%%` . -::: +``` **An example of text wrapping in a sequence diagram**: @@ -143,13 +143,13 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -::: note +```note Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this function。 Default value: will mirror Global Config -::: +``` ## getSiteConfig @@ -157,9 +157,9 @@ Default value: will mirror Global Config | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -::: note +```note Returns any values in siteConfig. -::: +``` ## setConfig @@ -167,11 +167,11 @@ Returns any values in siteConfig. | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -::: note +```note Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any values found in conf with key found in siteConfig.secure will be replaced with the corresponding siteConfig value. -::: +``` ## getConfig @@ -179,9 +179,9 @@ siteConfig value. | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -::: note +```note Returns any values in currentConfig. -::: +``` ## sanitize @@ -189,10 +189,10 @@ Returns any values in currentConfig. | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -::: note +```note modifies options in-place Ensures options parameter does not attempt to override siteConfig secure keys. -::: +``` ## reset @@ -206,8 +206,8 @@ Ensures options parameter does not attempt to override siteConfig secure keys. | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -::: note +```note default: current siteConfig (optional, default `getSiteConfig()`) -::: s +``` ## For more information, read [Setup](setup/README). diff --git a/packages/mermaid/src/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md index f68288ca73..78f3546cc0 100644 --- a/packages/mermaid/src/docs/config/theming.md +++ b/packages/mermaid/src/docs/config/theming.md @@ -108,9 +108,9 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -::: note +```note Variables that are unique to some diagrams can be affected by changes in Theme Variables -::: +``` | Variable | Default/Base/Factor value | Calc | Description | | -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md index 50b1a13eaa..e7c745f78b 100644 --- a/packages/mermaid/src/docs/config/usage.md +++ b/packages/mermaid/src/docs/config/usage.md @@ -115,10 +115,10 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -::: note +```note This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. **sandbox** security level is still in the beta version. -::: +``` **If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** @@ -183,9 +183,9 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -::: warning +```warning This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. -::: +``` ## Usage with webpack @@ -339,9 +339,9 @@ on what kind of integration you use. </script> ``` -::: tip +```note This is the preferred way of configuring mermaid. -::: +``` ### The following methods are deprecated and are kept only for backwards compatibility. @@ -357,9 +357,9 @@ approach are: mermaid.startOnLoad = true; ``` -::: warning +```warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: +``` ## Using the mermaid_config @@ -373,9 +373,9 @@ approach are: mermaid_config.startOnLoad = true; ``` -::: warning +```warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: +``` ## Using the mermaid.init call @@ -388,6 +388,6 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -::: warning +```warning This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -::: +``` diff --git a/packages/mermaid/src/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md index c65ed18306..68a5e3f5a0 100644 --- a/packages/mermaid/src/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -281,7 +281,7 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio A quick note from Knut Sveidqvist: -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ > _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ > > _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md index 478e76ef3d..25252e54d7 100644 --- a/packages/mermaid/src/docs/syntax/flowchart.md +++ b/packages/mermaid/src/docs/syntax/flowchart.md @@ -4,7 +4,7 @@ All Flowcharts are composed of **nodes**, the geometric shapes and **edges**, th It can also accommodate different arrow types, multi directional arrows, and linking to and from subgraphs. -> **Important note**: Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897).\*\* +> **Important note**: Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897). ### A node (default) diff --git a/packages/mermaid/src/docs/syntax/sequenceDiagram.md b/packages/mermaid/src/docs/syntax/sequenceDiagram.md index 98deaca372..35c3cc9a1e 100644 --- a/packages/mermaid/src/docs/syntax/sequenceDiagram.md +++ b/packages/mermaid/src/docs/syntax/sequenceDiagram.md @@ -11,11 +11,11 @@ sequenceDiagram Alice-)John: See you later! ``` -::: note +```note A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. If unavoidable, one must use parentheses(), quotation marks "", or brackets {},[], to enclose the word "end". i.e : (end), [end], {end}. -::: +``` ## Syntax From 52c5ae6d8e1142ef18db18014e5f09a17b0782a7 Mon Sep 17 00:00:00 2001 From: Jeroen Ekkelkamp <j.ekkelkamp@arcady.nl> Date: Thu, 20 Oct 2022 09:14:38 +0200 Subject: [PATCH 0452/1038] ran linter --- packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 6a70264d83..56f6564300 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -45,7 +45,12 @@ const edgeInCluster = (edge, clusterId) => { log.debug('Tilt, ', clusterId, ',not in decendants'); return false; } -return decendants[clusterId].indexOf(edge.v) >= 0 || isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId) || decendants[clusterId].indexOf(edge.w) >= 0; + return ( + decendants[clusterId].indexOf(edge.v) >= 0 || + isDecendant(edge.v, clusterId) || + isDecendant(edge.w, clusterId) || + decendants[clusterId].indexOf(edge.w) >= 0 + ); }; const copy = (clusterId, graph, newGraph, rootId) => { From 8ad8d39fe483754dace7a81a8e01015d8fb670a2 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Thu, 20 Oct 2022 12:57:29 +0200 Subject: [PATCH 0453/1038] Versions for latest rcs --- packages/mermaid-mindmap/package.json | 2 +- packages/mermaid/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 7c1f5967db..88b1a7acd5 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.0-rc4", + "version": "9.2.0-rc5", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid-mindmap.core.mjs", "module": "dist/mermaid-mindmap.core.mjs", diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 975a79cf3c..c92b44c40e 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.2.0-rc7", + "version": "9.2.0-rc8", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.core.mjs", "module": "./dist/mermaid.core.mjs", From e6f19ff46149695bb4720319abb158103e696454 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 20 Oct 2022 20:23:28 +0100 Subject: [PATCH 0454/1038] style: lint typescript with eslint-plugin-tsdoc --- .eslintrc.json | 34 +++++++++++++++++++++++----------- package.json | 1 + pnpm-lock.yaml | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 11 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 133ab42cdc..d83222f3ac 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -16,7 +16,6 @@ "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", - "plugin:jsdoc/recommended", "plugin:json/recommended", "plugin:markdown/recommended", "plugin:@cspell/recommended", @@ -28,16 +27,6 @@ "no-console": "error", "no-prototype-builtins": "off", "no-unused-vars": "off", - "jsdoc/check-indentation": "off", - "jsdoc/check-alignment": "off", - "jsdoc/check-line-alignment": "off", - "jsdoc/multiline-blocks": "off", - "jsdoc/newline-after-description": "off", - "jsdoc/tag-lines": "off", - "jsdoc/require-param-description": "off", - "jsdoc/require-param-type": "off", - "jsdoc/require-returns": "off", - "jsdoc/require-returns-description": "off", "cypress/no-async-tests": "off", "@typescript-eslint/ban-ts-comment": [ "error", @@ -73,6 +62,29 @@ "no-console": "off" } }, + { + "files": ["*.{js,jsx,mjs,cjs}"], + "extends": ["plugin:jsdoc/recommended"], + "rules": { + "jsdoc/check-indentation": "off", + "jsdoc/check-alignment": "off", + "jsdoc/check-line-alignment": "off", + "jsdoc/multiline-blocks": "off", + "jsdoc/newline-after-description": "off", + "jsdoc/tag-lines": "off", + "jsdoc/require-param-description": "off", + "jsdoc/require-param-type": "off", + "jsdoc/require-returns": "off", + "jsdoc/require-returns-description": "off" + } + }, + { + "files": ["*.{ts,tsx}"], + "plugins": ["tsdoc"], + "rules": { + "tsdoc/syntax": "error" + } + }, { "files": ["*.spec.{ts,js}", "cypress/**", "demos/**", "**/docs/**"], "rules": { diff --git a/package.json b/package.json index 6097998559..ad80859b10 100644 --- a/package.json +++ b/package.json @@ -120,6 +120,7 @@ "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "eslint-plugin-no-only-tests": "^3.0.0", + "eslint-plugin-tsdoc": "^0.2.17", "express": "4.18.2", "globby": "13.1.2", "husky": "8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed0da3b698..db4590ed3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,6 +46,7 @@ importers: eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 eslint-plugin-no-only-tests: ^3.0.0 + eslint-plugin-tsdoc: ^0.2.17 express: 4.18.2 fast-clone: 1.5.13 globby: 13.1.2 @@ -129,6 +130,7 @@ importers: eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 eslint-plugin-no-only-tests: 3.0.0 + eslint-plugin-tsdoc: 0.2.17 express: 4.18.2 globby: 13.1.2 husky: 8.0.1 @@ -2261,6 +2263,19 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@microsoft/tsdoc-config/0.16.2: + resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + dev: true + + /@microsoft/tsdoc/0.14.2: + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -6080,6 +6095,13 @@ packages: engines: {node: '>=5.0.0'} dev: true + /eslint-plugin-tsdoc/0.2.17: + resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + dev: true + /eslint-scope/5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -8807,6 +8829,10 @@ packages: nomnom: 1.5.2 dev: true + /jju/1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: true + /joi/17.6.0: resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} dependencies: @@ -11321,6 +11347,13 @@ packages: resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} dev: true + /resolve/1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + dependencies: + is-core-module: 2.10.0 + path-parse: 1.0.7 + dev: true + /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true From 563aff2d723e8103c088752d48be45ada9c1ff41 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Thu, 20 Oct 2022 23:03:17 -0300 Subject: [PATCH 0455/1038] fix: gh pages workflow --- .github/gh-pages-publish.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/gh-pages-publish.yml b/.github/gh-pages-publish.yml index 4a5fc4d959..75ea8b6665 100644 --- a/.github/gh-pages-publish.yml +++ b/.github/gh-pages-publish.yml @@ -9,9 +9,14 @@ jobs: - name: Checkout 🛎️ uses: actions/checkout@v3 + - name: Install pnpm + uses: pnpm/action-setup@v2.2.4 + + - name: Install deps + run: pnpm install + - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. run: | - pnpm install cd ./packages/mermaid pnpm docs:bundle - name: Deploy 🚀📕 From 7e5689d0b9521ea4500be9284a16c3563039e5ba Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sat, 22 Oct 2022 13:30:50 +0100 Subject: [PATCH 0456/1038] style: fix eslint-plugin-tsdoc linting issues Mostly, fixing these eslint-plugin-tsdoc style issues involved: - Moving types from JSDoc to TypeScript types - Making sure that all `@param paramName - description` had both a `-` and a description. Occasionally, for some functions, if the JSDoc was completely empty, I just deleted it, since there was no point in keeping it. --- .../mermaid-example-diagram/src/detector.ts | 2 +- .../src/mermaidUtils.ts | 19 +- packages/mermaid/src/__mocks__/mermaidAPI.ts | 5 +- packages/mermaid/src/config.ts | 17 +- packages/mermaid/src/defaultConfig.ts | 34 ++- .../mermaid/src/diagram-api/detectType.ts | 19 +- .../mermaid/src/diagrams/common/common.ts | 45 ++-- .../src/diagrams/error/errorRenderer.ts | 10 +- .../src/diagrams/sequence/sequenceRenderer.ts | 98 ++++--- .../diagrams/user-journey/journeyRenderer.ts | 6 +- packages/mermaid/src/logger.ts | 8 +- packages/mermaid/src/mermaid.ts | 17 +- packages/mermaid/src/mermaidAPI.ts | 19 +- .../themes/erDiagram-oldHardcodedValues.ts | 2 +- packages/mermaid/src/utils.ts | 252 ++++++++++-------- 15 files changed, 303 insertions(+), 250 deletions(-) diff --git a/packages/mermaid-example-diagram/src/detector.ts b/packages/mermaid-example-diagram/src/detector.ts index 29f6d2a6dc..d30b99fba2 100644 --- a/packages/mermaid-example-diagram/src/detector.ts +++ b/packages/mermaid-example-diagram/src/detector.ts @@ -4,7 +4,7 @@ export const id = 'example-diagram'; /** * Detector function that will be called by mermaid to determine if the diagram is this type of diagram. * - * @param txt The diagram text will be passed to the detector + * @param txt - The diagram text will be passed to the detector * @returns True if the diagram text matches a diagram of this type */ diff --git a/packages/mermaid-example-diagram/src/mermaidUtils.ts b/packages/mermaid-example-diagram/src/mermaidUtils.ts index 03de59ef97..8894abdff5 100644 --- a/packages/mermaid-example-diagram/src/mermaidUtils.ts +++ b/packages/mermaid-example-diagram/src/mermaidUtils.ts @@ -35,18 +35,19 @@ export let setupGraphViewbox: ( /** * Function called by mermaid that injects utility functions that help the diagram to be a good citizen. - * @param _log - * @param _setLogLevel - * @param _getConfig - * @param _sanitizeText - * @param _setupGraphViewbox + * + * @param _log - log from mermaid/src/diagramAPI.ts + * @param _setLogLevel - setLogLevel from mermaid/src/diagramAPI.ts + * @param _getConfig - getConfig from mermaid/src/diagramAPI.ts + * @param _sanitizeText - sanitizeText from mermaid/src/diagramAPI.ts + * @param _setupGraphViewbox - setupGraphViewbox from mermaid/src/diagramAPI.ts */ export const injectUtils = ( _log: Record<keyof typeof LEVELS, typeof console.log>, - _setLogLevel: any, - _getConfig: any, - _sanitizeText: any, - _setupGraphViewbox: any + _setLogLevel: typeof setLogLevel, + _getConfig: typeof getConfig, + _sanitizeText: typeof sanitizeText, + _setupGraphViewbox: typeof setupGraphViewbox ) => { _log.debug('Mermaid utils injected into example-diagram'); log.trace = _log.trace; diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 3102095b9f..50018bcadf 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -11,10 +11,7 @@ import Diagram, { type ParseErrorFunction } from '../Diagram'; // Normally, we could just do the following to get the original `parse()` // implementation, however, requireActual returns a promise and it's not documented how to use withing mock file. -/** - * @param text - * @param parseError - */ +/** {@inheritDoc mermaidAPI.parse} */ function parse(text: string, parseError?: ParseErrorFunction): boolean { addDiagrams(); const diagram = new Diagram(text, parseError); diff --git a/packages/mermaid/src/config.ts b/packages/mermaid/src/config.ts index 8dfeeafca8..884a9931b0 100644 --- a/packages/mermaid/src/config.ts +++ b/packages/mermaid/src/config.ts @@ -56,7 +56,7 @@ export const updateCurrentConfig = (siteCfg: MermaidConfig, _directives: any[]) * function _Default value: At default, will mirror Global Config_ * * @param conf - The base currentConfig to use as siteConfig - * @returns {object} - The siteConfig + * @returns The new siteConfig */ export const setSiteConfig = (conf: MermaidConfig): MermaidConfig => { siteConfig = assignWithDepth({}, defaultConfig); @@ -91,7 +91,7 @@ export const updateSiteConfig = (conf: MermaidConfig): MermaidConfig => { * * **Notes**: Returns **any** values in siteConfig. * - * @returns {object} - The siteConfig + * @returns The siteConfig */ export const getSiteConfig = (): MermaidConfig => { return assignWithDepth({}, siteConfig); @@ -107,8 +107,8 @@ export const getSiteConfig = (): MermaidConfig => { * keys. Any values found in conf with key found in siteConfig.secure will be replaced with the * corresponding siteConfig value. * - * @param {any} conf - The potential currentConfig - * @returns {any} - The currentConfig merged with the sanitized conf + * @param conf - The potential currentConfig + * @returns The currentConfig merged with the sanitized conf */ export const setConfig = (conf: MermaidConfig): MermaidConfig => { // sanitize(conf); @@ -131,7 +131,7 @@ export const setConfig = (conf: MermaidConfig): MermaidConfig => { * * **Notes**: Returns **any** the currentConfig * - * @returns {any} - The currentConfig + * @returns The currentConfig */ export const getConfig = (): MermaidConfig => { return assignWithDepth({}, currentConfig); @@ -146,7 +146,7 @@ export const getConfig = (): MermaidConfig => { * Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies * options in-place * - * @param {any} options - The potential setConfig parameter + * @param options - The potential setConfig parameter */ export const sanitize = (options: any) => { // Checking that options are not in the list of excluded options @@ -186,7 +186,7 @@ export const sanitize = (options: any) => { /** * Pushes in a directive to the configuration * - * @param {object} directive The directive to push in + * @param directive - The directive to push in */ export const addDirective = (directive: any) => { if (directive.fontFamily) { @@ -217,7 +217,8 @@ export const addDirective = (directive: any) => { * * **Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) * - * @param config + * @param config - base set of values, which currentConfig could be **reset** to. + * Defaults to the current siteConfig (e.g returned by {@link getSiteConfig}). */ export const reset = (config = siteConfig): void => { // Replace current config with siteConfig diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 3a9bd18416..570dc2da3a 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -8,19 +8,27 @@ import { MermaidConfig } from './config.type'; * * These are the default options which can be overridden with the initialization call like so: * - * **Example 1:**<pre> mermaid.initialize({ flowchart:{ htmlLabels: false } }); </pre> + * **Example 1:** * - * **Example 2:**<pre> <script> var config = { startOnLoad:true, flowchart:{ useMaxWidth:true, - * htmlLabels:true, curve:'cardinal', }, + * ```js + * mermaid.initialize({ flowchart:{ htmlLabels: false } }); + * ``` * - * securityLevel:'loose', + * **Example 2:** * - * }; mermaid.initialize(config); </script> </pre> + * ```html + * <script> + * var config = { + * startOnLoad:true, + * flowchart:{ useMaxWidth:true, htmlLabels:true, curve:'cardinal'}, + * securityLevel:'loose', + * }; + * mermaid.initialize(config); + * </script> + * ``` * * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). * A description of each option follows below. - * - * @name Configuration */ const config: Partial<MermaidConfig> = { /** @@ -30,8 +38,16 @@ const config: Partial<MermaidConfig> = { * | --------- | --------------- | ------ | -------- | ---------------------------------------------- | * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | * - * **Notes:** To disable any pre-defined mermaid theme, use "null".<pre> "theme": "forest", - * "themeCSS": ".node rect { fill: red; }" </pre> + * **Notes:** To disable any pre-defined mermaid theme, use "null". + * + * @example + * + * ```js + * { + * "theme": "forest", + * "themeCSS": ".node rect { fill: red; }" + * } + * ``` */ theme: 'default', themeVariables: theme['default'].getThemeVariables(), diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts index 9536fded21..1c1abc51c9 100644 --- a/packages/mermaid/src/diagram-api/detectType.ts +++ b/packages/mermaid/src/diagram-api/detectType.ts @@ -9,10 +9,13 @@ const anyComment = /\s*%%.*\n/gm; const detectors: Record<string, DetectorRecord> = {}; /** - * @function detectType Detects the type of the graph text. Takes into consideration the possible - * existence of an %%init directive + * Detects the type of the graph text. * - * ```mermaid + * Takes into consideration the possible existence of an `%%init` directive + * + * @param text - The text defining the graph. For example: + * + * ```mermaid * %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%% * graph LR * a-->b @@ -23,13 +26,9 @@ const detectors: Record<string, DetectorRecord> = {}; * f-->g * g-->h * ``` - * @param {string} text The text defining the graph - * @param {{ - * class: { defaultRenderer: string } | undefined; - * state: { defaultRenderer: string } | undefined; - * flowchart: { defaultRenderer: string } | undefined; - * }} [config] - * @returns {string} A graph definition key + * + * @param config - The mermaid config. + * @returns A graph definition key */ export const detectType = function (text: string, config?: MermaidConfig): string { text = text.replace(directive, '').replace(anyComment, '\n'); diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index e7fb395de1..782915cc15 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -4,8 +4,8 @@ import { MermaidConfig } from '../../config.type'; /** * Gets the rows of lines in a string * - * @param {string | undefined} s The string to check the lines for - * @returns {string[]} The rows in that string + * @param s - The string to check the lines for + * @returns The rows in that string */ export const getRows = (s?: string): string[] => { if (!s) { @@ -18,8 +18,8 @@ export const getRows = (s?: string): string[] => { /** * Removes script tags from a text * - * @param {string} txt The text to sanitize - * @returns {string} The safer text + * @param txt - The text to sanitize + * @returns The safer text */ export const removeScript = (txt: string): string => { return DOMPurify.sanitize(txt); @@ -68,8 +68,8 @@ export const lineBreakRegex = /<br\s*\/?>/gi; /** * Whether or not a text has any line breaks * - * @param {string} text The text to test - * @returns {boolean} Whether or not the text has breaks + * @param text - The text to test + * @returns Whether or not the text has breaks */ export const hasBreaks = (text: string): boolean => { return lineBreakRegex.test(text); @@ -78,8 +78,8 @@ export const hasBreaks = (text: string): boolean => { /** * Splits on <br> tags * - * @param {string} text Text to split - * @returns {string[]} List of lines as strings + * @param text - Text to split + * @returns List of lines as strings */ export const splitBreaks = (text: string): string[] => { return text.split(lineBreakRegex); @@ -88,8 +88,8 @@ export const splitBreaks = (text: string): string[] => { /** * Converts placeholders to line breaks in HTML * - * @param {string} s HTML with placeholders - * @returns {string} HTML with breaks instead of placeholders + * @param s - HTML with placeholders + * @returns HTML with breaks instead of placeholders */ const placeholderToBreak = (s: string): string => { return s.replace(/#br#/g, '<br/>'); @@ -98,8 +98,8 @@ const placeholderToBreak = (s: string): string => { /** * Opposite of `placeholderToBreak`, converts breaks to placeholders * - * @param {string} s HTML string - * @returns {string} String with placeholders + * @param s - HTML string + * @returns String with placeholders */ const breakToPlaceholder = (s: string): string => { return s.replace(lineBreakRegex, '#br#'); @@ -108,8 +108,8 @@ const breakToPlaceholder = (s: string): string => { /** * Gets the current URL * - * @param {boolean} useAbsolute Whether to return the absolute URL or not - * @returns {string} The current URL + * @param useAbsolute - Whether to return the absolute URL or not + * @returns The current URL */ const getUrl = (useAbsolute: boolean): string => { let url = ''; @@ -130,8 +130,8 @@ const getUrl = (useAbsolute: boolean): string => { /** * Converts a string/boolean into a boolean * - * @param {string | boolean} val String or boolean to convert - * @returns {boolean} The result from the input + * @param val - String or boolean to convert + * @returns The result from the input */ export const evaluate = (val?: string | boolean): boolean => val === false || ['false', 'null', '0'].includes(String(val).trim().toLowerCase()) ? false : true; @@ -139,12 +139,15 @@ export const evaluate = (val?: string | boolean): boolean => /** * Makes generics in typescript syntax * - * @example <caption>Array of array of strings in typescript syntax</caption> - * // returns "Array<Array<string>>" - * parseGenericTypes('Array~Array~string~~'); + * @example + * Array of array of strings in typescript syntax * - * @param {string} text The text to convert - * @returns {string} The converted string + * ```js + * // returns "Array<Array<string>>" + * parseGenericTypes('Array~Array~string~~'); + * ``` + * @param text - The text to convert + * @returns The converted string */ export const parseGenericTypes = function (text: string): string { let cleanedText = text; diff --git a/packages/mermaid/src/diagrams/error/errorRenderer.ts b/packages/mermaid/src/diagrams/error/errorRenderer.ts index df9ce2c6e6..b4e267684d 100644 --- a/packages/mermaid/src/diagrams/error/errorRenderer.ts +++ b/packages/mermaid/src/diagrams/error/errorRenderer.ts @@ -8,7 +8,7 @@ let conf = {}; /** * Merges the value of `conf` with the passed `cnf` * - * @param {object} cnf Config to merge + * @param cnf - Config to merge */ export const setConf = function (cnf: any) { conf = { ...conf, ...cnf }; @@ -17,11 +17,11 @@ export const setConf = function (cnf: any) { /** * Draws a an info picture in the tag with id: id based on the graph definition in text. * - * @param text - * @param {string} id The text for the error - * @param {string} mermaidVersion The version + * @param _text - Mermaid graph definition. + * @param id - The text for the error + * @param mermaidVersion - The version */ -export const draw = (text: string, id: string, mermaidVersion: string) => { +export const draw = (_text: string, id: string, mermaidVersion: string) => { try { log.debug('Renering svg for syntax error\n'); diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index 22fa5da8cf..fa943d6585 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -10,6 +10,7 @@ import assignWithDepth from '../../assignWithDepth'; import utils from '../../utils'; import { configureSvgSize } from '../../setupGraphViewbox'; import addSVGAccessibilityFields from '../../accessibility'; +import Diagram from '../../Diagram'; let conf = {}; @@ -100,8 +101,8 @@ export const bounds = { // eslint-disable-next-line @typescript-eslint/no-this-alias const _self = this; let cnt = 0; - /** @param {any} type */ - function updateFn(type) { + /** @param type - Either `activation` or `undefined` */ + function updateFn(type?: 'activation') { return function updateItemBounds(item) { cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems @@ -200,15 +201,25 @@ export const bounds = { }, }; +/** Options for drawing a note in {@link drawNote} */ +interface NoteModel { + /** x axis start position */ + startx: number; + /** y axis position */ + starty: number; + /** the message to be shown */ + message: string; + /** Set this with a custom width to override the default configured width. */ + width: number; +} + /** * Draws an note in the diagram with the attached line * - * @param {any} elem - The diagram to draw to. - * @param {{ x: number; y: number; message: string; width: number }} noteModel - startX: x axis - * start position, verticalPos: y axis position, message: the message to be shown, width: Set - * this with a custom width to override the default configured width. + * @param elem - The diagram to draw to. + * @param noteModel - Note model options. */ -const drawNote = function (elem, noteModel) { +const drawNote = function (elem: any, noteModel: NoteModel) { bounds.bumpVerticalPos(conf.boxMargin); noteModel.height = conf.boxMargin; noteModel.starty = bounds.getVerticalPos(); @@ -278,11 +289,11 @@ const actorFont = (cnf) => { * message so it can be drawn later. We do not draw the message at this point so the arrowhead can * be on top of the activation box. * - * @param {any} diagram - The parent of the message element - * @param {any} msgModel - The model containing fields describing a message - * @returns {number} lineStartY - The Y coordinate at which the message line starts + * @param _diagram - The parent of the message element. + * @param msgModel - The model containing fields describing a message + * @returns `lineStartY` - The Y coordinate at which the message line starts */ -const boundMessage = function (diagram, msgModel) { +function boundMessage(_diagram, msgModel): number { bounds.bumpVerticalPos(10); const { startx, stopx, message } = msgModel; const lines = common.splitBreaks(message).length; @@ -321,17 +332,17 @@ const boundMessage = function (diagram, msgModel) { bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy); return lineStartY; -}; +} /** * Draws a message. Note that the bounds have previously been updated by boundMessage. * - * @param {any} diagram - The parent of the message element - * @param {any} msgModel - The model containing fields describing a message - * @param {number} lineStartY - The Y coordinate at which the message line starts - * @param diagObj + * @param diagram - The parent of the message element + * @param msgModel - The model containing fields describing a message + * @param lineStartY - The Y coordinate at which the message line starts + * @param diagObj - The diagram object. */ -const drawMessage = function (diagram, msgModel, lineStartY, diagObj) { +const drawMessage = function (diagram, msgModel, lineStartY: number, diagObj: Diagram) { const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel; const textDims = utils.calculateTextDimensions(message, messageFont(conf)); const textObj = svgDraw.getTextObj(); @@ -554,13 +565,6 @@ const activationBounds = function (actor, actors) { return [left, right]; }; -/** - * @param {any} loopWidths - * @param {any} msg - * @param {any} preMargin - * @param {any} postMargin - * @param {any} addLoopFn - */ function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) { bounds.bumpVerticalPos(preMargin); let heightAdjust = postMargin; @@ -584,12 +588,12 @@ function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoop /** * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text. * - * @param {any} _text The text of the diagram - * @param {any} id The id of the diagram which will be used as a DOM element id¨ - * @param {any} _version Mermaid version from package.json - * @param {any} diagObj A standard diagram containing the db and the text and type etc of the diagram + * @param _text - The text of the diagram + * @param id - The id of the diagram which will be used as a DOM element id¨ + * @param _version - Mermaid version from package.json + * @param diagObj - A standard diagram containing the db and the text and type etc of the diagram */ -export const draw = function (_text, id, _version, diagObj) { +export const draw = function (_text: string, id: string, _version: string, diagObj: Diagram) { const { securityLevel, sequence } = configApi.getConfig(); conf = sequence; // Handle root and Document for when rendering in sandbox mode @@ -632,10 +636,10 @@ export const draw = function (_text, id, _version, diagObj) { svgDraw.insertSequenceNumber(diagram); /** - * @param {any} msg - * @param {any} verticalPos + * @param msg - The message to draw. + * @param verticalPos - The vertical position of the message. */ - function activeEnd(msg, verticalPos) { + function activeEnd(msg: any, verticalPos: number) { const activationData = bounds.endActivation(msg); if (activationData.starty + 18 > verticalPos) { activationData.starty = verticalPos - 6; @@ -910,12 +914,16 @@ export const draw = function (_text, id, _version, diagObj) { * It will enumerate each given message, and will determine its text width, in relation to the actor * it originates from, and destined to. * - * @param {any} actors - The actors map - * @param {Array} messages - A list of message objects to iterate - * @param diagObj - * @returns {any} + * @param actors - The actors map + * @param messages - A list of message objects to iterate + * @param diagObj - The diagram object. + * @returns The max message width of each actor. */ -const getMaxMessageWidthPerActor = function (actors, messages, diagObj) { +function getMaxMessageWidthPerActor( + actors: { [id: string]: any }, + messages: any[], + diagObj: Diagram +): { [id: string]: number } { const maxMessageWidthPerActor = {}; messages.forEach(function (msg) { @@ -1008,7 +1016,7 @@ const getMaxMessageWidthPerActor = function (actors, messages, diagObj) { log.debug('maxMessageWidthPerActor:', maxMessageWidthPerActor); return maxMessageWidthPerActor; -}; +} const getRequiredPopupWidth = function (actor) { let requiredPopupWidth = 0; @@ -1025,15 +1033,19 @@ const getRequiredPopupWidth = function (actor) { }; /** - * This will calculate the optimal margin for each given actor, for a given actor->messageWidth map. + * This will calculate the optimal margin for each given actor, + * for a given actor → messageWidth map. * * An actor's margin is determined by the width of the actor, the width of the largest message that * originates from it, and the configured conf.actorMargin. * - * @param {any} actors - The actors map to calculate margins for - * @param {any} actorToMessageWidth - A map of actor key -> max message width it holds + * @param actors - The actors map to calculate margins for + * @param actorToMessageWidth - A map of actor key → max message width it holds */ -const calculateActorMargins = function (actors, actorToMessageWidth) { +function calculateActorMargins( + actors: { [id: string]: any }, + actorToMessageWidth: ReturnType<typeof getMaxMessageWidthPerActor> +) { let maxHeight = 0; Object.keys(actors).forEach((prop) => { const actor = actors[prop]; @@ -1074,7 +1086,7 @@ const calculateActorMargins = function (actors, actorToMessageWidth) { } return Math.max(maxHeight, conf.height); -}; +} const buildNoteModel = function (msg, actors, diagObj) { const startx = actors[msg.from].x; diff --git a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts index 208391ab39..3880a243ab 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts @@ -15,7 +15,7 @@ export const setConf = function (cnf) { const actors = {}; -/** @param {any} diagram */ +/** @param diagram - The diagram to draw to. */ function drawActorLegend(diagram) { const conf = getConfig().journey; // Draw the actors @@ -157,8 +157,8 @@ export const bounds = { // eslint-disable-next-line @typescript-eslint/no-this-alias const _self = this; let cnt = 0; - /** @param {any} type */ - function updateFn(type) { + /** @param type - Set to `activation` if activation */ + function updateFn(type?: 'activation') { return function updateItemBounds(item) { cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index b01934e88b..e38bf93fe7 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -27,7 +27,7 @@ export const log: Record<keyof typeof LEVELS, typeof console.log> = { /** * Sets a log level * - * @param {LogLevel} [level="fatal"] The level to set the logging to. Default is `"fatal"` + * @param level - The level to set the logging to. Default is `"fatal"` */ export const setLogLevel = function (level: keyof typeof LEVELS | number | string = 'fatal') { let numericLevel: number = LEVELS.fatal; @@ -80,10 +80,10 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin /** * Returns a format with the timestamp and the log level * - * @param {LogLevel} level The level for the log format - * @returns {string} The format with the timestamp and log level + * @param level - The level for the log format + * @returns The format with the timestamp and log level */ -const format = (level: string): string => { +const format = (level: Uppercase<LogLevel>): string => { const time = moment().format('ss.SSS'); return `%c${time} : ${level} : `; }; diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 3996910832..c8edb3a065 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -19,12 +19,6 @@ import type { ParseErrorFunction } from './Diagram'; * elements with the attribute already set. This way the init function can be triggered several * times. * - * Optionally, `init` can accept in the second argument one of the following: - * - * - A DOM Node - * - An array of DOM nodes (as would come from a jQuery selector) - * - A W3C selector, a la `.mermaid` - * * ```mermaid * graph LR; * a(Find elements)-->b{Processed} @@ -34,9 +28,12 @@ import type { ParseErrorFunction } from './Diagram'; * * Renders the mermaid diagrams * - * @param config - * @param nodes - * @param callback + * @param config - **Deprecated**, please set configuration in {@link initialize}. + * @param nodes - **Default**: `.mermaid`. One of the following: + * - A DOM Node + * - An array of DOM nodes (as would come from a jQuery selector) + * - A W3C selector, a la `.mermaid` + * @param callback - Called once for each rendered diagram's id. */ const init = async function ( config?: MermaidConfig, @@ -202,7 +199,7 @@ if (typeof document !== 'undefined') { * This is provided for environments where the mermaid object can't directly have a new member added * to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid). * - * @param {function (err, hash)} newParseErrorHandler New parseError() callback. + * @param newParseErrorHandler - New parseError() callback. */ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: any) => void) { mermaid.parseError = newParseErrorHandler; diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index d2c48361af..3a53bd5848 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -9,8 +9,6 @@ * page or do something completely different. * * In addition to the render function, a number of behavioral configuration options are available. - * - * @name mermaidAPI */ import { select } from 'd3'; import { compile, serialize, stringify } from 'stylis'; @@ -34,8 +32,8 @@ import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; /** - * @param text - * @param parseError + * @param text - The mermaid diagram definition. + * @param parseError - If set, handles errors. */ function parse(text: string, parseError?: ParseErrorFunction): boolean { addDiagrams(); @@ -100,14 +98,13 @@ export const decodeEntities = function (text: string): string { * }); * ``` * - * @param {string} id The id of the element to be rendered - * @param {string} text The graph definition - * @param {(svgCode: string, bindFunctions?: (element: Element) => void) => void} cb Callback which - * is called after rendering is finished with the svg code as param. - * @param {Element} container Selector to element in which a div with the graph temporarily will be + * @param id - The id of the element to be rendered + * @param text - The graph definition + * @param cb - Callback which is called after rendering is finished with the svg code as param. + * @param container - Selector to element in which a div with the graph temporarily will be * inserted. If one is provided a hidden div will be inserted in the body of the page instead. The * element will be removed when rendering is completed. - * @returns {void} + * @returns - Resolves when finished rendering. */ const render = async function ( id: string, @@ -455,7 +452,7 @@ const handleDirective = function (p: any, directive: any, type: string): void { } }; -/** @param {MermaidConfig} options */ +/** @param options - Initial Mermaid options */ async function initialize(options: MermaidConfig) { // Handle legacy location of font-family configuration if (options?.fontFamily) { diff --git a/packages/mermaid/src/themes/erDiagram-oldHardcodedValues.ts b/packages/mermaid/src/themes/erDiagram-oldHardcodedValues.ts index 8f88a70cd7..95ce40e79b 100644 --- a/packages/mermaid/src/themes/erDiagram-oldHardcodedValues.ts +++ b/packages/mermaid/src/themes/erDiagram-oldHardcodedValues.ts @@ -1,5 +1,5 @@ /** - * @file Values that have been hardcoded in src/diagrams/er/styles.js. These can be used by + * Values that have been hardcoded in src/diagrams/er/styles.js. These can be used by * theme-_._ files to maintain display styles until themes, styles, renderers are revised. -- * 2022-09-22 */ diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index ba46011ddd..a38044bd6c 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -4,6 +4,7 @@ import { curveBasis, curveBasisClosed, curveBasisOpen, + CurveFactory, curveLinear, curveLinearClosed, curveMonotoneX, @@ -42,13 +43,13 @@ const directiveWithoutOpen = /\s*(?:(?:(\w+)(?=:):|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi; /** - * @function detectInit Detects the init config object from the text - * @param config + * Detects the init config object from the text * - * ```mermaid + * @param text - The text defining the graph. For example: * - * %%{init: {"theme": "debug", "logLevel": 1 }}%% - * graph LR + * ```mermaid + * %%{init: {"theme": "debug", "logLevel": 1 }}%% + * graph LR * a-->b * b-->c * c-->d @@ -58,11 +59,11 @@ const directiveWithoutOpen = * g-->h * ``` * - * Or + * Or * - * ```mermaid - * %%{initialize: {"theme": "dark", logLevel: "debug" }}%% - * graph LR + * ```mermaid + * %%{initialize: {"theme": "dark", logLevel: "debug" }}%% + * graph LR * a-->b * b-->c * c-->d @@ -71,8 +72,9 @@ const directiveWithoutOpen = * f-->g * g-->h * ``` - * @param {string} text The text defining the graph - * @returns {object} The json object representing the init passed to mermaid.initialize() + * + * @param config - Optional mermaid configuration object. + * @returns The json object representing the init passed to mermaid.initialize() */ export const detectInit = function (text: string, config?: MermaidConfig): MermaidConfig { const inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/); @@ -104,12 +106,14 @@ export const detectInit = function (text: string, config?: MermaidConfig): Merma }; /** - * @function detectDirective Detects the directive from the text. Text can be single line or - * multiline. If type is null or omitted the first directive encountered in text will be returned + * Detects the directive from the text. + * + * Text can be single line or multiline. If type is null or omitted, + * the first directive encountered in text will be returned * - * ```mermaid - * graph LR - * %%{someDirective}%% + * ```mermaid + * graph LR + * %%{someDirective}%% * a-->b * b-->c * c-->d @@ -118,13 +122,16 @@ export const detectInit = function (text: string, config?: MermaidConfig): Merma * f-->g * g-->h * ``` - * @param {string} text The text defining the graph - * @param {string | RegExp} type The directive to return (default: null) - * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: - * object|null } matched by the input type if a single directive was found, that directive object - * will be returned. + * + * @param text - The text defining the graph + * @param type - The directive to return (default: `null`) + * @returns An object or Array representing the directive(s) matched by the input type. + * If a single directive was found, that directive object will be returned. */ -export const detectDirective = function (text, type = null) { +export const detectDirective = function ( + text: string, + type: string | RegExp = null +): { type?: string; args?: any } | { type?: string; args?: any }[] { try { const commentWithoutDirectives = new RegExp( `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`, @@ -166,12 +173,13 @@ export const detectDirective = function (text, type = null) { }; /** - * @function isSubstringInArray Detects whether a substring in present in a given array - * @param {string} str The substring to detect - * @param {Array} arr The array to search - * @returns {number} The array index containing the substring or -1 if not present + * Detects whether a substring in present in a given array + * + * @param str - The substring to detect + * @param arr - The array to search + * @returns The array index containing the substring or -1 if not present */ -export const isSubstringInArray = function (str, arr) { +export const isSubstringInArray = function (str: string, arr: string[]): number { for (let i = 0; i < arr.length; i++) { if (arr[i].match(str)) { return i; @@ -183,26 +191,26 @@ export const isSubstringInArray = function (str, arr) { /** * Returns a d3 curve given a curve name * - * @param {string | undefined} interpolate The interpolation name - * @param {any} defaultCurve The default curve to return - * @returns {import('d3-shape').CurveFactory} The curve factory to use + * @param interpolate - The interpolation name + * @param defaultCurve - The default curve to return + * @returns The curve factory to use */ -export const interpolateToCurve = (interpolate, defaultCurve) => { +export function interpolateToCurve(interpolate?: string, defaultCurve: CurveFactory): CurveFactory { if (!interpolate) { return defaultCurve; } const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`; return d3CurveTypes[curveName] || defaultCurve; -}; +} /** * Formats a URL string * - * @param {string} linkStr String of the URL - * @param {{ securityLevel: string }} config Configuration passed to MermaidJS - * @returns {string | undefined} The formatted URL + * @param linkStr - String of the URL + * @param config - Configuration passed to MermaidJS + * @returns The formatted URL or `undefined`. */ -export const formatUrl = (linkStr, config) => { +export function formatUrl(linkStr: string, config: { securityLevel: string }): string | undefined { const url = linkStr.trim(); if (url) { @@ -212,15 +220,15 @@ export const formatUrl = (linkStr, config) => { return url; } -}; +} /** * Runs a function * - * @param {string} functionName A dot separated path to the function relative to the `window` - * @param {...any} params Parameters to pass to the function + * @param functionName - A dot separated path to the function relative to the `window` + * @param params - Parameters to pass to the function */ -export const runFunc = (functionName, ...params) => { +export const runFunc = (functionName: string, ...params) => { const arrPaths = functionName.split('.'); const len = arrPaths.length - 1; @@ -237,28 +245,31 @@ export const runFunc = (functionName, ...params) => { obj[fnName](...params); }; -/** - * @typedef {object} Point A (x, y) point - * @property {number} x The x value - * @property {number} y The y value - */ +/** A (x, y) point */ +interface Point { + /** The x value */ + x: number; + /** The y value */ + y: number; +} /** * Finds the distance between two points using the Distance Formula * - * @param {Point} p1 The first point - * @param {Point} p2 The second point - * @returns {number} The distance + * @param p1 - The first point + * @param p2 - The second point + * @returns The distance between the two points. */ -const distance = (p1, p2) => - p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0; +function distance(p1: Point, p2: Point): number { + return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0; +} /** - * @param {Point[]} points List of points - * @returns {Point} - * @todo Give this a description + * TODO: Give this a description + * + * @param points - List of points */ -const traverseEdge = (points) => { +function traverseEdge(points: Point[]): Point { let prevPoint; let totalDistance = 0; @@ -297,20 +308,17 @@ const traverseEdge = (points) => { prevPoint = point; }); return center; -}; +} /** - * Alias for `traverseEdge` - * - * @param {Point[]} points List of points - * @returns {Point} Return result of `transverseEdge` + * {@inheritdoc traverseEdge} */ -const calcLabelPosition = (points) => { +function calcLabelPosition(points: Point[]): Point { if (points.length === 1) { return points[0]; } return traverseEdge(points); -}; +} const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => { let prevPoint; @@ -366,14 +374,18 @@ const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) }; /** - * Position ['start_left', 'start_right', 'end_left', 'end_right'] + * Calculates the terminal label position. * - * @param {any} terminalMarkerSize - * @param {any} position - * @param {any} _points - * @returns {any} + * @param terminalMarkerSize - Terminal marker size. + * @param position - Position of label relative to points. + * @param _points - Array of points. + * @returns - The `cardinalityPosition`. */ -const calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => { +function calcTerminalLabelPosition( + terminalMarkerSize: number, + position: 'start_left' | 'start_right' | 'end_left' | 'end_right', + _points: Point[] +): Point { // Todo looking to faster cloning method let points = JSON.parse(JSON.stringify(_points)); let prevPoint; @@ -441,15 +453,15 @@ const calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => { cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5; } return cardinalityPosition; -}; +} /** * Gets styles from an array of declarations * - * @param {string[]} arr Declarations - * @returns {{ style: string; labelStyle: string }} The styles grouped as strings + * @param arr - Declarations + * @returns The styles grouped as strings */ -export const getStylesFromArray = (arr) => { +export function getStylesFromArray(arr: string[]): { style: string; labelStyle: string } { let style = ''; let labelStyle = ''; @@ -465,7 +477,7 @@ export const getStylesFromArray = (arr) => { } return { style: style, labelStyle: labelStyle }; -}; +} let cnt = 0; export const generateId = () => { @@ -474,10 +486,12 @@ export const generateId = () => { }; /** - * @param {any} length - * @returns {any} + * Generates a random hexadecimal id of the given length. + * + * @param length - Length of ID. + * @returns The generated ID. */ -function makeid(length) { +function makeid(length: number): string { let result = ''; const characters = '0123456789abcdef'; const charactersLength = characters.length; @@ -510,22 +524,25 @@ export const getTextObj = function () { /** * Adds text to an element * - * @param {SVGElement} elem Element to add text to - * @param {{ - * text: string; - * x: number; - * y: number; - * anchor: 'start' | 'middle' | 'end'; - * fontFamily: string; - * fontSize: string | number; - * fontWeight: string | number; - * fill: string; - * class: string | undefined; - * textMargin: number; - * }} textData - * @returns {SVGTextElement} Text element with given styling and content + * @param elem - SVG Element to add text to + * @param textData - Text options. + * @returns Text element with given styling and content */ -export const drawSimpleText = function (elem, textData) { +export const drawSimpleText = function ( + elem: SVGElement, + textData: { + text: string; + x: number; + y: number; + anchor: 'start' | 'middle' | 'end'; + fontFamily: string; + fontSize: string | number; + fontWeight: string | number; + fill: string; + class: string | undefined; + textMargin: number; + } +): SVGTextElement { // Remove and ignore br:s const nText = textData.text.replace(common.lineBreakRegex, ' '); @@ -623,43 +640,56 @@ const breakString = memoize( * * If the wrapped text text has greater height, we extend the height, so it's value won't overflow. * - * @param {any} text The text to measure - * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the + * @param text - The text to measure + * @param config - The config for fontSize, fontFamily, and fontWeight all impacting the * resulting size - * @returns {any} - The height for the given text + * @returns The height for the given text */ -export const calculateTextHeight = function (text, config) { +export function calculateTextHeight( + text: Parameters<typeof calculateTextDimensions>[0], + config: Parameters<typeof calculateTextDimensions>[1] +): ReturnType<typeof calculateTextDimensions>['height'] { config = Object.assign( { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 15 }, config ); return calculateTextDimensions(text, config).height; -}; +} /** * This calculates the width of the given text, font size and family. * - * @param {any} text - The text to calculate the width of - * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the + * @param text - The text to calculate the width of + * @param config - The config for fontSize, fontFamily, and fontWeight all impacting the * resulting size - * @returns {any} - The width for the given text + * @returns The width for the given text */ -export const calculateTextWidth = function (text, config) { +export function calculateTextWidth( + text: Parameters<typeof calculateTextDimensions>[0], + config: Parameters<typeof calculateTextDimensions>[1] +): ReturnType<typeof calculateTextDimensions>['width'] { config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config); return calculateTextDimensions(text, config).width; -}; +} /** * This calculates the dimensions of the given text, font size, font family, font weight, and * margins. * - * @param {any} text - The text to calculate the width of - * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting + * @param text - The text to calculate the width of + * @param config - The config for fontSize, fontFamily, fontWeight, and margin all impacting * the resulting size - * @returns - The width for the given text + * @returns The dimensions for the given text */ export const calculateTextDimensions = memoize( - function (text, config) { + function ( + text: string, + config: { + fontSize?: number; + fontWeight?: number; + fontFamily?: string; + } + ) { config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config); const { fontSize, fontFamily, fontWeight } = config; if (!text) { @@ -741,10 +771,10 @@ let decoder; /** * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js} * - * @param {string} html HTML as a string - * @returns {string} Unescaped HTML + * @param html - HTML as a string + * @returns Unescaped HTML */ -export const entityDecode = function (html) { +export const entityDecode = function (html: string): string { decoder = decoder || document.createElement('div'); // Escape HTML before decoding for HTML Entities html = escape(html).replace(/%26/g, '&').replace(/%23/g, '#').replace(/%3B/g, ';'); @@ -756,9 +786,9 @@ export const entityDecode = function (html) { /** * Sanitizes directive objects * - * @param {object} args Directive's JSON + * @param args - Directive's JSON */ -export const directiveSanitizer = (args) => { +export const directiveSanitizer = (args: any) => { log.debug('directiveSanitizer called with', args); if (typeof args === 'object') { // check for array @@ -845,12 +875,12 @@ export interface DetailedError { hash: any; } -/** @param error */ +/** @param error - The error to check */ export function isDetailedError(error: unknown): error is DetailedError { return 'str' in error; } -/** @param error */ +/** @param error - The error to convert to an error message */ export function getErrorMessage(error: unknown): string { if (error instanceof Error) { return error.message; From a1c6d76a15083a389f065447ff5fb6046a13552d Mon Sep 17 00:00:00 2001 From: IMGSS <838632526@qq.com> Date: Sat, 22 Oct 2022 22:43:53 +0800 Subject: [PATCH 0457/1038] Update sequenceDiagram.md --- docs/sequenceDiagram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sequenceDiagram.md b/docs/sequenceDiagram.md index 619f33243e..a570f660af 100644 --- a/docs/sequenceDiagram.md +++ b/docs/sequenceDiagram.md @@ -97,7 +97,7 @@ Messages can be of two displayed either solid or with a dotted line. [Actor][Arrow][Actor]:Message text -There are six types of arrows currently supported: +There are eight types of arrows currently supported: | Type | Description | | ---- | ------------------------------------------------ | From f788ab54f33590c7cb78dc220ba1ad454bb5d58e Mon Sep 17 00:00:00 2001 From: shuaisguo <shuaisguo@tencent.com> Date: Sun, 23 Oct 2022 10:34:26 +0800 Subject: [PATCH 0458/1038] fix typo --- packages/mermaid/src/docs/sequenceDiagram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/sequenceDiagram.md b/packages/mermaid/src/docs/sequenceDiagram.md index 434e9572fd..582bbe1743 100644 --- a/packages/mermaid/src/docs/sequenceDiagram.md +++ b/packages/mermaid/src/docs/sequenceDiagram.md @@ -66,7 +66,7 @@ Messages can be of two displayed either solid or with a dotted line. [Actor][Arrow][Actor]:Message text ``` -There are six types of arrows currently supported: +There are eight types of arrows currently supported: | Type | Description | | ---- | ------------------------------------------------ | From 4601c90904fb57f54ed91e31ea235b24de5add45 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 20 Oct 2022 10:20:18 +0100 Subject: [PATCH 0459/1038] fix: load lazyLoadedDiagrams in initThrowsErrors Previously, calling initThrowsErrors would not load any of the lazyLoadedDiagrams entries. --- packages/mermaid/src/mermaid.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index ae6c62547c..51af1a8279 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -45,16 +45,6 @@ const init = async function ( callback?: Function ) { try { - const conf = mermaidAPI.getConfig(); - if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { - // Load all lazy loaded diagrams in parallel - await Promise.allSettled( - conf.lazyLoadedDiagrams.map(async (diagram: string) => { - const { id, detector, loadDiagram } = await import(diagram); - addDetector(id, detector, loadDiagram); - }) - ); - } await initThrowsErrors(config, nodes, callback); } catch (e) { log.warn('Syntax Error rendering'); @@ -82,6 +72,16 @@ const initThrowsErrors = async function ( mermaid.sequenceConfig = config; } + if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { + // Load all lazy loaded diagrams in parallel + await Promise.allSettled( + conf.lazyLoadedDiagrams.map(async (diagram: string) => { + const { id, detector, loadDiagram } = await import(diagram); + addDetector(id, detector, loadDiagram); + }) + ); + } + // if last argument is a function this is the callback function log.debug(`${!callback ? 'No ' : ''}Callback function found`); let nodesToProcess: ArrayLike<HTMLElement>; From 895a5eb78a1b57dc49a0c73af129e9e923953170 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 20 Oct 2022 10:53:08 +0100 Subject: [PATCH 0460/1038] docs(mermaid): document initThrowsErrors Add some basic tsdoc for initThrowsErrors --- packages/mermaid/src/mermaid.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 51af1a8279..e7d9da84d9 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -57,6 +57,18 @@ const init = async function ( } }; +/** + * Equivalent to {@link init()}, except an error will be thrown on error. + * + * @param config - **Deprecated** Mermaid sequenceConfig. + * @param nodes - One of: + * - A DOM Node + * - An array of DOM nodes (as would come from a jQuery selector) + * - A W3C selector, a la `.mermaid` (default) + * @param callback - Function that is called with the id of each generated mermaid diagram. + * + * @returns Resolves on success, otherwise the {@link Promise} will be rejected with an Error. + */ const initThrowsErrors = async function ( config?: MermaidConfig, // eslint-disable-next-line no-undef From 3a2669e63403a2e612187529f807a65d63a031aa Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 20 Oct 2022 11:10:58 +0100 Subject: [PATCH 0461/1038] fix(mermaid): error if lazyLoadedDiagrams fails Throw an error if lazyLoadedDiagrams fails to load properly. Rendering is still performed, even on a lazyLoadedDiagrams failure. --- packages/mermaid/src/mermaid.spec.ts | 23 ++++++++++++++++++++++- packages/mermaid/src/mermaid.ts | 11 +++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index 8cf180ae79..e3bc69448a 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -48,11 +48,32 @@ describe('when using mermaid and ', function () { const node = document.createElement('div'); node.appendChild(document.createTextNode('graph TD;\na;')); - mermaid.initThrowsErrors(undefined, node); + await mermaid.initThrowsErrors(undefined, node); // mermaidAPI.render function has been mocked, since it doesn't yet work // in Node.JS (only works in browser) expect(mermaidAPI.render).toHaveBeenCalled(); }); + it('should throw error (but still render) if lazyLoadedDiagram fails', async () => { + const node = document.createElement('div'); + node.appendChild(document.createTextNode('graph TD;\na;')); + + mermaidAPI.setConfig({ + lazyLoadedDiagrams: ['this-file-does-not-exist.mjs'], + }); + await expect(mermaid.initThrowsErrors(undefined, node)).rejects.toThrowError( + // this error message is probably different on every platform + // this one is just for vite-note (node/jest/browser may be different) + 'Failed to load this-file-does-not-exist.mjs' + ); + + // should still render, even if lazyLoadedDiagrams fails + expect(mermaidAPI.render).toHaveBeenCalled(); + }); + + afterEach(() => { + // we modify mermaid config in some tests, so we need to make sure to reset them + mermaidAPI.reset(); + }); }); describe('checking validity of input ', function () { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index e7d9da84d9..9e91ec79df 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -84,14 +84,22 @@ const initThrowsErrors = async function ( mermaid.sequenceConfig = config; } + const errors = []; + if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { // Load all lazy loaded diagrams in parallel - await Promise.allSettled( + const results = await Promise.allSettled( conf.lazyLoadedDiagrams.map(async (diagram: string) => { const { id, detector, loadDiagram } = await import(diagram); addDetector(id, detector, loadDiagram); }) ); + for (const result of results) { + if (result.status == 'rejected') { + log.warn(`Failed to lazyLoadedDiagram due to `, result.reason); + errors.push(result.reason); + } + } } // if last argument is a function this is the callback function @@ -119,7 +127,6 @@ const initThrowsErrors = async function ( const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); let txt: string; - const errors = []; // element is the current div with mermaid class for (const element of Array.from(nodesToProcess)) { From 41249fd06456a15069a5ede49946bf04faed53d9 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sun, 23 Oct 2022 14:23:30 +0100 Subject: [PATCH 0462/1038] fix(mermaid): fix DiagramDefinition types The `injectUtils` function takes the utils as multiple parameters, not an object. --- packages/mermaid/src/diagram-api/types.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts index 30ff259696..10aac48cff 100644 --- a/packages/mermaid/src/diagram-api/types.ts +++ b/packages/mermaid/src/diagram-api/types.ts @@ -14,7 +14,13 @@ export interface DiagramDefinition { parser: any; styles: any; init?: (config: MermaidConfig) => void; - injectUtils?: (utils: InjectUtils) => void; + injectUtils?: ( + _log: InjectUtils['_log'], + _setLogLevel: InjectUtils['_setLogLevel'], + _getConfig: InjectUtils['_getConfig'], + _sanitizeText: InjectUtils['_sanitizeText'], + _setupGraphViewbox: InjectUtils['_setupGraphViewbox'] + ) => void; } export interface DetectorRecord { From 89d3d297b7caafe8d2652a58e4e1490182dcc0d6 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sun, 23 Oct 2022 14:49:50 +0100 Subject: [PATCH 0463/1038] refactor(mermaid): remove registerDiagram cb func Remove the callback function parameter from registerDiagram. Instead, we can just load the callback function from the `injectUtils` diagram definition, if it exists. --- packages/mermaid/src/Diagram.ts | 2 +- .../mermaid/src/diagram-api/diagramAPI.ts | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 0aa7419948..533c77350e 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -94,7 +94,7 @@ export const getDiagramFromText = async (txt: string, parseError?: Function): Pr } // Diagram not available, loading it const { diagram } = await loader(); - registerDiagram(type, diagram, undefined, diagram.injectUtils); + registerDiagram(type, diagram, undefined); // new diagram will try getDiagram again and if fails then it is a valid throw } // If either of the above worked, we have the diagram diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 2bc8091ec9..bb05090e3d 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -22,17 +22,16 @@ export interface Detectors { [key: string]: DiagramDetector; } +/** + * + * @param id + * @param diagram + * @param detector + */ export const registerDiagram = ( id: string, diagram: DiagramDefinition, - detector?: DiagramDetector, - callback?: ( - _log: any, - _setLogLevel: any, - _getConfig: any, - _sanitizeText: any, - _setupGraphViewbox: any - ) => void + detector?: DiagramDetector ) => { if (diagrams[id]) { throw new Error(`Diagram ${id} already registered.`); @@ -42,8 +41,9 @@ export const registerDiagram = ( addDetector(id, detector); } addStylesForDiagram(id, diagram.styles); - if (typeof callback !== 'undefined') { - callback(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); + + if (diagram.injectUtils) { + diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); } }; From f41e34e61a50548af789ca467e86fca6d5a86afa Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Sun, 23 Oct 2022 15:45:55 +0100 Subject: [PATCH 0464/1038] feat: add `mermaidAPI.registerDiagram()` Exposes the registerDiagram() function publically as `mermaid.mermaidAPI.registerDiagram` so that users can add their own diagrams at bundle-time. This is instead of using the lazyLoadedDiagrams config setting. --- .../other/external-diagrams.spec.js | 13 +++++ .../platform/external-diagrams-mindmap.html | 58 +++++++++++++++++++ .../src/diagram-definition.ts | 2 + .../mermaid-mindmap/src/diagram-definition.ts | 2 + .../mermaid/src/diagram-api/diagramAPI.ts | 24 +++++++- packages/mermaid/src/mermaidAPI.ts | 4 ++ 6 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 cypress/integration/other/external-diagrams.spec.js create mode 100644 cypress/platform/external-diagrams-mindmap.html diff --git a/cypress/integration/other/external-diagrams.spec.js b/cypress/integration/other/external-diagrams.spec.js new file mode 100644 index 0000000000..3a6c37e881 --- /dev/null +++ b/cypress/integration/other/external-diagrams.spec.js @@ -0,0 +1,13 @@ +describe('mermaid', () => { + describe('registerDiagram', () => { + it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => { + const url = 'http://localhost:9000/external-diagrams-mindmap.html'; + cy.visit(url); + + cy.get('svg', { + // may be a bit slower than normal, since vite might need to re-compile mermaid/mermaid-mindmap/mermaid-example-diagram + timeout: 10000, + }).matchImageSnapshot(); + }); + }); +}); diff --git a/cypress/platform/external-diagrams-mindmap.html b/cypress/platform/external-diagrams-mindmap.html new file mode 100644 index 0000000000..2d18532da4 --- /dev/null +++ b/cypress/platform/external-diagrams-mindmap.html @@ -0,0 +1,58 @@ +<html> + <body> + <h1>Should correctly load a third-party diagram using registerDiagram</h1> + <pre id="diagram" class="mermaid"> +mindmap + root + A + B + C + D + E + A2 + B2 + C2 + D2 + E2 + child1((Circle)) + grandchild 1 + grandchild 2 + child2(Round rectangle) + grandchild 3 + grandchild 4 + child3[Square] + grandchild 5 + ::icon(mdi mdi-fire) + gc6((grand<br/>child 6)) + ::icon(mdi mdi-fire) + gc7((grand<br/>grand<br/>child 8)) + </pre> + <pre id="diagram" class="mermaid2"> + example-diagram + </pre> + + <!-- <div id="cy"></div> --> + <!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> --> + <!-- <script src="./mermaid-example-diagram-detector.js"></script> --> + <!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> --> + <!-- <script type="module" src="./external-diagrams-mindmap.mjs" /> --> + <script type="module"> + import { + diagram as mindmap, + detector as mindmapDetector, + id as mindmapId, + } from '../../packages/mermaid-mindmap/src/diagram-definition'; + import { + diagram as exampleDiagram, + detector as exampleDiagramDetector, + id as exampleDiagramId, + } from '../../packages/mermaid-example-diagram/src/diagram-definition'; + import mermaid from '../../packages/mermaid/src/mermaid'; + + mermaid.mermaidAPI.registerDiagram(mindmapId, mindmap, mindmapDetector); + mermaid.mermaidAPI.registerDiagram(exampleDiagramId, exampleDiagram, exampleDiagramDetector); + await mermaid.initialize({ logLevel: 0 }); + await mermaid.initThrowsErrors(); + </script> + </body> +</html> diff --git a/packages/mermaid-example-diagram/src/diagram-definition.ts b/packages/mermaid-example-diagram/src/diagram-definition.ts index c31b3d6e71..95f7cc11d2 100644 --- a/packages/mermaid-example-diagram/src/diagram-definition.ts +++ b/packages/mermaid-example-diagram/src/diagram-definition.ts @@ -12,3 +12,5 @@ export const diagram = { styles, injectUtils, }; + +export { detector, id } from './detector'; diff --git a/packages/mermaid-mindmap/src/diagram-definition.ts b/packages/mermaid-mindmap/src/diagram-definition.ts index e7856289d8..400cf9e7e7 100644 --- a/packages/mermaid-mindmap/src/diagram-definition.ts +++ b/packages/mermaid-mindmap/src/diagram-definition.ts @@ -12,3 +12,5 @@ export const diagram = { styles: mindmapStyles, injectUtils, }; + +export { detector, id } from './detector'; diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index bb05090e3d..b2f2b7a456 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -23,10 +23,28 @@ export interface Detectors { } /** + * Registers the given diagram with Mermaid. * - * @param id - * @param diagram - * @param detector + * Can be used for third-party custom diagrams. + * + * For third-party diagrams that are rarely used, we recommend instead setting + * the `lazyLoadedDiagrams` param in the Mermaid config, as that will instead + * only load the diagram when needed. + * + * @param id - A unique ID for the given diagram. + * @param diagram - The diagram definition. + * @param detector - Function that returns `true` if a given mermaid text is this diagram definition. + * + * @example How to add `@mermaid-js/mermaid-mindmap` to mermaid + * + * ```js + * import { + * diagram as mindmap, detector as mindmapDetector, id as mindmapId + * } from "@mermaid-js/mermaid-mindmap"; + * import mermaid from "mermaid"; + * + * mermaid.mermaidAPI.registerDiagram(mindmapId, mindmap, mindmapDetector); + * ``` */ export const registerDiagram = ( id: string, diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7c967e5fd9..5a3f5c5b1e 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -18,6 +18,7 @@ import { compile, serialize, stringify } from 'stylis'; import pkg from '../package.json'; import * as configApi from './config'; import { addDiagrams } from './diagram-api/diagram-orchestration'; +import { registerDiagram } from './diagram-api/diagramAPI'; import classDb from './diagrams/class/classDb'; import flowDb from './diagrams/flowchart/flowDb'; import flowRenderer from './diagrams/flowchart/flowRenderer'; @@ -480,11 +481,14 @@ async function initialize(options: MermaidConfig) { addDiagrams(); } +export { registerDiagram }; + export const mermaidAPI = Object.freeze({ render, parse, parseDirective, initialize, + registerDiagram, getConfig: configApi.getConfig, setConfig: configApi.setConfig, getSiteConfig: configApi.getSiteConfig, From 663edabb14850d68f90da455ca69bff5b2c5ca34 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Oct 2022 01:14:45 +0000 Subject: [PATCH 0465/1038] chore(deps): pin dependencies --- package.json | 6 +++--- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index ad80859b10..ee8c688b49 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "@applitools/eyes-cypress": "3.27.2", "@commitlint/cli": "17.1.2", "@commitlint/config-conventional": "17.1.0", - "@cspell/eslint-plugin": "^6.12.0", + "@cspell/eslint-plugin": "6.12.0", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", "@types/eslint": "8.4.6", @@ -119,8 +119,8 @@ "eslint-plugin-jsdoc": "39.3.6", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", - "eslint-plugin-no-only-tests": "^3.0.0", - "eslint-plugin-tsdoc": "^0.2.17", + "eslint-plugin-no-only-tests": "3.1.0", + "eslint-plugin-tsdoc": "0.2.17", "express": "4.18.2", "globby": "13.1.2", "husky": "8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db4590ed3d..1c21d581cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ importers: '@braintree/sanitize-url': 6.0.0 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 - '@cspell/eslint-plugin': ^6.12.0 + '@cspell/eslint-plugin': 6.12.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 '@types/eslint': 8.4.6 @@ -45,8 +45,8 @@ importers: eslint-plugin-jsdoc: 39.3.6 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 - eslint-plugin-no-only-tests: ^3.0.0 - eslint-plugin-tsdoc: ^0.2.17 + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-tsdoc: 0.2.17 express: 4.18.2 fast-clone: 1.5.13 globby: 13.1.2 @@ -129,7 +129,7 @@ importers: eslint-plugin-jsdoc: 39.3.6_eslint@8.25.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 - eslint-plugin-no-only-tests: 3.0.0 + eslint-plugin-no-only-tests: 3.1.0 eslint-plugin-tsdoc: 0.2.17 express: 4.18.2 globby: 13.1.2 @@ -6090,8 +6090,8 @@ packages: - supports-color dev: true - /eslint-plugin-no-only-tests/3.0.0: - resolution: {integrity: sha512-I0PeXMs1vu21ap45hey4HQCJRqpcoIvGcNTPJe+UhUm8TwjQ6//mCrDqF8q0WS6LgmRDwQ4ovQej0AQsAHb5yg==} + /eslint-plugin-no-only-tests/3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} engines: {node: '>=5.0.0'} dev: true From 728d022f528fee1cc35c8a41555c332e06e2ccb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Oct 2022 04:35:20 +0000 Subject: [PATCH 0466/1038] chore(deps): update all non-major dependencies --- docs/index.html | 8 +- package.json | 24 +- packages/mermaid/package.json | 14 +- packages/mermaid/src/docs/index.html | 8 +- pnpm-lock.yaml | 1250 +++++++++++--------------- 5 files changed, 569 insertions(+), 735 deletions(-) diff --git a/docs/index.html b/docs/index.html index 6f3f0f27b1..094a6183af 100644 --- a/docs/index.html +++ b/docs/index.html @@ -40,20 +40,20 @@ }; </script> <script - src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/loader.min.js" + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.1/min/vs/loader.min.js" integrity="sha512-6bIYsGqvLpAiEBXPdRQeFf5cueeBECtAKJjIHer3BhBZNTV3WLcLA8Tm3pDfxUwTMIS+kAZwTUvJ1IrMdX8C5w==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> <script - src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.nls.min.js" + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.1/min/vs/editor/editor.main.nls.min.js" integrity="sha512-CCv+DKWw+yZhxf4Z+ExT6HC5G+3S45TeMTYcJyYbdrv4BpK2vyALJ4FoVR/KGWDIPu7w4tNCOC9MJQIkYPR5FA==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> <script - src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.min.js" - integrity="sha512-iVHvVf6TQEoF5oQrocjP88wstImQHQZCxGsa5nKYOs6gXWzsV7QZHyk80HrXhrEWRJ1ADoIV6Uji3UUXtCmBMg==" + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.1/min/vs/editor/editor.main.min.js" + integrity="sha512-u4eMtetNbBJvHXdLXs2kWZvJiVlg3cmkVcxrLzSPa1eNFuHygPYvyMWyK9PsD6Eq2MZSo+mTyjds8uuhPzVxHA==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> diff --git a/package.json b/package.json index ee8c688b49..1ec95e84f6 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", "type": "module", - "packageManager": "pnpm@7.13.5", + "packageManager": "pnpm@7.13.6", "exports": { ".": { "require": "./dist/mermaid.min.js", @@ -70,7 +70,7 @@ ] }, "dependencies": { - "@braintree/sanitize-url": "6.0.0", + "@braintree/sanitize-url": "6.0.1", "@types/node": "18.11.0", "@types/uuid": "8.3.4", "d3": "7.6.1", @@ -88,21 +88,21 @@ "uuid": "9.0.0" }, "devDependencies": { - "@applitools/eyes-cypress": "3.27.2", + "@applitools/eyes-cypress": "3.27.5", "@commitlint/cli": "17.1.2", "@commitlint/config-conventional": "17.1.0", "@cspell/eslint-plugin": "6.12.0", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", - "@types/eslint": "8.4.6", + "@types/eslint": "8.4.7", "@types/express": "4.17.14", "@types/jsdom": "20.0.0", "@types/lodash": "4.14.186", "@types/mdast": "3.0.10", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@typescript-eslint/eslint-plugin": "5.40.0", - "@typescript-eslint/parser": "5.40.0", + "@typescript-eslint/eslint-plugin": "5.40.1", + "@typescript-eslint/parser": "5.40.1", "@vitest/coverage-c8": "0.24.3", "@vitest/ui": "0.24.3", "concurrently": "7.4.0", @@ -110,13 +110,13 @@ "cypress": "10.10.0", "cypress-image-snapshot": "4.0.1", "documentation": "13.2.5", - "esbuild": "0.15.11", + "esbuild": "0.15.12", "eslint": "8.25.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", - "eslint-plugin-jest": "27.1.2", - "eslint-plugin-jsdoc": "39.3.6", + "eslint-plugin-jest": "27.1.3", + "eslint-plugin-jsdoc": "39.3.23", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "eslint-plugin-no-only-tests": "3.1.0", @@ -125,13 +125,13 @@ "globby": "13.1.2", "husky": "8.0.1", "identity-obj-proxy": "3.0.0", - "jest": "29.2.0", + "jest": "29.2.1", "jison": "0.4.18", "jsdom": "20.0.1", "lint-staged": "13.0.3", "markdown-it": "13.0.1", "path-browserify": "1.0.1", - "pnpm": "7.13.5", + "pnpm": "7.13.6", "prettier": "2.7.1", "prettier-plugin-jsdoc": "0.4.2", "remark": "14.0.2", @@ -141,7 +141,7 @@ "typescript": "4.8.4", "unist-util-flatmap": "1.0.0", "vite": "3.1.8", - "vitepress": "1.0.0-alpha.21", + "vitepress": "1.0.0-alpha.22", "vitepress-plugin-mermaid": "2.0.8", "vitepress-plugin-search": "1.0.4-alpha.11", "vitest": "0.24.3" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index b943eb432b..9bda9088a2 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -75,31 +75,31 @@ "stylis": "^4.1.2" }, "devDependencies": { - "@applitools/eyes-cypress": "3.27.2", + "@applitools/eyes-cypress": "3.27.5", "@commitlint/cli": "17.1.2", "@commitlint/config-conventional": "17.1.0", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", - "@types/eslint": "8.4.6", + "@types/eslint": "8.4.7", "@types/express": "4.17.14", "@types/jsdom": "20.0.0", "@types/lodash": "4.14.186", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@typescript-eslint/eslint-plugin": "5.40.0", - "@typescript-eslint/parser": "5.40.0", + "@typescript-eslint/eslint-plugin": "5.40.1", + "@typescript-eslint/parser": "5.40.1", "concurrently": "7.4.0", "coveralls": "3.1.1", "cypress": "10.10.0", "cypress-image-snapshot": "4.0.1", "documentation": "13.2.5", - "esbuild": "0.15.11", + "esbuild": "0.15.12", "eslint": "8.25.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", - "eslint-plugin-jest": "27.1.2", - "eslint-plugin-jsdoc": "39.3.6", + "eslint-plugin-jest": "27.1.3", + "eslint-plugin-jsdoc": "39.3.23", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "express": "4.18.2", diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index 5022e6dc9a..6854962619 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -40,20 +40,20 @@ }; </script> <script - src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/loader.min.js" + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.1/min/vs/loader.min.js" integrity="sha512-6bIYsGqvLpAiEBXPdRQeFf5cueeBECtAKJjIHer3BhBZNTV3WLcLA8Tm3pDfxUwTMIS+kAZwTUvJ1IrMdX8C5w==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> <script - src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.nls.min.js" + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.1/min/vs/editor/editor.main.nls.min.js" integrity="sha512-CCv+DKWw+yZhxf4Z+ExT6HC5G+3S45TeMTYcJyYbdrv4BpK2vyALJ4FoVR/KGWDIPu7w4tNCOC9MJQIkYPR5FA==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> <script - src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs/editor/editor.main.min.js" - integrity="sha512-iVHvVf6TQEoF5oQrocjP88wstImQHQZCxGsa5nKYOs6gXWzsV7QZHyk80HrXhrEWRJ1ADoIV6Uji3UUXtCmBMg==" + src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.1/min/vs/editor/editor.main.min.js" + integrity="sha512-u4eMtetNbBJvHXdLXs2kWZvJiVlg3cmkVcxrLzSPa1eNFuHygPYvyMWyK9PsD6Eq2MZSo+mTyjds8uuhPzVxHA==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c21d581cf..407176c990 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,14 +7,14 @@ importers: .: specifiers: - '@applitools/eyes-cypress': 3.27.2 - '@braintree/sanitize-url': 6.0.0 + '@applitools/eyes-cypress': 3.27.5 + '@braintree/sanitize-url': 6.0.1 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@cspell/eslint-plugin': 6.12.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.6 + '@types/eslint': 8.4.7 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 @@ -23,8 +23,8 @@ importers: '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.40.0 - '@typescript-eslint/parser': 5.40.0 + '@typescript-eslint/eslint-plugin': 5.40.1 + '@typescript-eslint/parser': 5.40.1 '@vitest/coverage-c8': 0.24.3 '@vitest/ui': 0.24.3 concurrently: 7.4.0 @@ -36,13 +36,13 @@ importers: dagre-d3: 0.6.4 documentation: 13.2.5 dompurify: 2.4.0 - esbuild: 0.15.11 + esbuild: 0.15.12 eslint: 8.25.0 eslint-config-prettier: 8.5.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.2 - eslint-plugin-jsdoc: 39.3.6 + eslint-plugin-jest: 27.1.3 + eslint-plugin-jsdoc: 39.3.23 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 eslint-plugin-no-only-tests: 3.1.0 @@ -53,7 +53,7 @@ importers: graphlib: 2.1.8 husky: 8.0.1 identity-obj-proxy: 3.0.0 - jest: 29.2.0 + jest: 29.2.1 jison: 0.4.18 jsdom: 20.0.1 khroma: 2.0.0 @@ -63,7 +63,7 @@ importers: moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 path-browserify: 1.0.1 - pnpm: 7.13.5 + pnpm: 7.13.6 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2 remark: 14.0.2 @@ -76,12 +76,12 @@ importers: unist-util-flatmap: 1.0.0 uuid: 9.0.0 vite: 3.1.8 - vitepress: 1.0.0-alpha.21 + vitepress: 1.0.0-alpha.22 vitepress-plugin-mermaid: 2.0.8 vitepress-plugin-search: 1.0.4-alpha.11 vitest: 0.24.3 dependencies: - '@braintree/sanitize-url': 6.0.0 + '@braintree/sanitize-url': 6.0.1 '@types/node': 18.11.0 '@types/uuid': 8.3.4 d3: 7.6.1 @@ -98,35 +98,35 @@ importers: stylis: 4.1.2 uuid: 9.0.0 devDependencies: - '@applitools/eyes-cypress': 3.27.2 + '@applitools/eyes-cypress': 3.27.5 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@cspell/eslint-plugin': 6.12.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.6 + '@types/eslint': 8.4.7 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 '@types/mdast': 3.0.10 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y + '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q '@vitest/coverage-c8': 0.24.3_ff3ihdoybm7ovley6q4itwsswa '@vitest/ui': 0.24.3 concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.10.0 - cypress-image-snapshot: 4.0.1_sldctbhq72okzn4urvbivac6lq + cypress-image-snapshot: 4.0.1_i53o2fh6a5o5tv3qlenzwcubc4 documentation: 13.2.5 - esbuild: 0.15.11 + esbuild: 0.15.12 eslint: 8.25.0 eslint-config-prettier: 8.5.0_eslint@8.25.0 eslint-plugin-cypress: 2.12.1_eslint@8.25.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.2_nc3c3bdiyy2hxtl32wv7esmvmq - eslint-plugin-jsdoc: 39.3.6_eslint@8.25.0 + eslint-plugin-jest: 27.1.3_ktuq5bhtjfperqqn2aknj5bg6m + eslint-plugin-jsdoc: 39.3.23_eslint@8.25.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 eslint-plugin-no-only-tests: 3.1.0 @@ -135,13 +135,13 @@ importers: globby: 13.1.2 husky: 8.0.1 identity-obj-proxy: 3.0.0 - jest: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq + jest: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq jison: 0.4.18 jsdom: 20.0.1 lint-staged: 13.0.3 markdown-it: 13.0.1 path-browserify: 1.0.1 - pnpm: 7.13.5 + pnpm: 7.13.6 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 @@ -151,27 +151,27 @@ importers: typescript: 4.8.4 unist-util-flatmap: 1.0.0 vite: 3.1.8 - vitepress: 1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_orex2agllvbrjwlm6w3vfszwae - vitepress-plugin-search: 1.0.4-alpha.11_edcjrozpkfaskrqytnhbwsc3ky + vitepress: 1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-mermaid: 2.0.8_m5gk66we2y6xlan2yvhce6nu2a + vitepress-plugin-search: 1.0.4-alpha.11_eny7drxhzzrhshlyu255qt5dum vitest: 0.24.3_ff3ihdoybm7ovley6q4itwsswa packages/mermaid: specifiers: - '@applitools/eyes-cypress': 3.27.2 + '@applitools/eyes-cypress': 3.27.5 '@braintree/sanitize-url': ^6.0.0 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.6 + '@types/eslint': 8.4.7 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.40.0 - '@typescript-eslint/parser': 5.40.0 + '@typescript-eslint/eslint-plugin': 5.40.1 + '@typescript-eslint/parser': 5.40.1 concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.10.0 @@ -181,13 +181,13 @@ importers: dagre-d3: ^0.6.4 documentation: 13.2.5 dompurify: 2.4.0 - esbuild: 0.15.11 + esbuild: 0.15.12 eslint: 8.25.0 eslint-config-prettier: 8.5.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.2 - eslint-plugin-jsdoc: 39.3.6 + eslint-plugin-jest: 27.1.3 + eslint-plugin-jsdoc: 39.3.23 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 express: 4.18.2 @@ -229,31 +229,31 @@ importers: non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.2 devDependencies: - '@applitools/eyes-cypress': 3.27.2 + '@applitools/eyes-cypress': 3.27.5 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.6 + '@types/eslint': 8.4.7 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y + '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.10.0 cypress-image-snapshot: 4.0.1_wsmbrbtpfgb2tvmlrj7mjfruri documentation: 13.2.5 - esbuild: 0.15.11 + esbuild: 0.15.12 eslint: 8.25.0 eslint-config-prettier: 8.5.0_eslint@8.25.0 eslint-plugin-cypress: 2.12.1_eslint@8.25.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.2_37sgn6sqs6ms4ljiz35av2ikje - eslint-plugin-jsdoc: 39.3.6_eslint@8.25.0 + eslint-plugin-jest: 27.1.3_pubrigz2e5aqv2qdhrj3u7msey + eslint-plugin-jsdoc: 39.3.23_eslint@8.25.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 express: 4.18.2 @@ -417,37 +417,48 @@ packages: '@algolia/requester-common': 4.14.2 dev: true - /@applitools/core-base/1.1.0: - resolution: {integrity: sha512-YcMF3a3tW7oDtxN7pQM8vUmezqMNcK+pgyYHKyjpRt/m2BUuNrymx+7CToR8n5sBDmfG6TWanufFkjocOtKq6g==} + /@applitools/core-base/1.1.4: + resolution: {integrity: sha512-dV5mOG59Yh1G2ZYZb1tU1HgXPU1mPp7x+IVtwp2eBrikkTzhIp4feCVj4LNPJZF8Hq7YfoxHYtF6EpBg/P7trw==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.4 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.11 + '@applitools/utils': 1.3.13 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/core-base/1.1.5: + resolution: {integrity: sha512-OvJZIEwJs8L/Kl8+6jjHZ0c4RizemXVCBzBnNu/JhzS54cwhp7wLTowN/ZI6w4WwRgwLrUF2FNQhd4ydiomNvg==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/image': 1.0.2 - '@applitools/logger': 1.1.26 - '@applitools/req': 1.1.10 - '@applitools/types': 1.5.19 - '@applitools/utils': 1.3.12 + '@applitools/image': 1.0.4 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.11 + '@applitools/utils': 1.3.13 transitivePeerDependencies: - encoding - supports-color dev: true - /@applitools/core/1.1.5: - resolution: {integrity: sha512-CroUu72ducqxEQSTBfNPyDCq3699A7r9zpp6fh5WP65WiaTzkf8WNviR3Ir/fDVteYr4wCGxGN6WfUIJ3Gh1IA==} + /@applitools/core/1.2.0: + resolution: {integrity: sha512-KwqZYkkXHVbvXgpTdV9L0RiHmxGqTrrlhn6MsEI1XpaEQ432dJAlQqH2n2H3g8y8Q8aU5AwZ6IvtOtXhEkxbbw==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/core-base': 1.1.0 + '@applitools/core-base': 1.1.4 '@applitools/dom-capture': 11.2.0 '@applitools/dom-snapshot': 4.7.0 - '@applitools/driver': 1.10.5 - '@applitools/logger': 1.1.26 - '@applitools/nml-client': 1.3.3 - '@applitools/req': 1.1.10 - '@applitools/screenshoter': 3.6.3 + '@applitools/driver': 1.10.6 + '@applitools/logger': 1.1.27 + '@applitools/nml-client': 1.3.4 + '@applitools/req': 1.1.11 + '@applitools/screenshoter': 3.6.5 '@applitools/snippets': 2.4.5 - '@applitools/types': 1.5.19 - '@applitools/ufg-client': 1.0.9 - '@applitools/utils': 1.3.12 + '@applitools/ufg-client': 1.1.0 + '@applitools/utils': 1.3.13 abort-controller: 3.0.0 throat: 6.0.1 transitivePeerDependencies: @@ -457,12 +468,29 @@ packages: - utf-8-validate dev: true - /@applitools/dom-capture/11.1.2: - resolution: {integrity: sha512-LRs3yWiS7NQpDrNTx77zO7U/nldrzq5B5HnEmM/ZJM6xThOPZdTJNYEcdzQV8yfZVawX/pq/imyejcVIvhmFzA==} - engines: {node: '>=8.9.0'} + /@applitools/core/1.2.1: + resolution: {integrity: sha512-fVOSJJXF8rrOXoJ1b+fYsCq5Y50B6U3MYaAy1trQeOiKaZ5VLBb4Zv20bOAfijYIyYpwO/oaIE7i5xghXg8+Dw==} + engines: {node: '>=12.13.0'} + hasBin: true dependencies: - '@applitools/dom-shared': 1.0.5 - '@applitools/functional-commons': 1.6.0 + '@applitools/core-base': 1.1.5 + '@applitools/dom-capture': 11.2.0 + '@applitools/dom-snapshot': 4.7.0 + '@applitools/driver': 1.10.7 + '@applitools/logger': 1.1.27 + '@applitools/nml-client': 1.3.4 + '@applitools/req': 1.1.11 + '@applitools/screenshoter': 3.7.0 + '@applitools/snippets': 2.4.5 + '@applitools/ufg-client': 1.1.0 + '@applitools/utils': 1.3.13 + abort-controller: 3.0.0 + throat: 6.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate dev: true /@applitools/dom-capture/11.2.0: @@ -478,26 +506,11 @@ packages: engines: {node: '>=8.9.0'} dev: true - /@applitools/dom-shared/1.0.8: - resolution: {integrity: sha512-HQtYfFvtlPuE9ZShBamtW1LGW2Qq4HxjQx5nF7KiNvrRTlf5/e+AWpZhXCTVEhVkAcSNs/7xR2WvumOUd+usxg==} - engines: {node: '>=8.9.0'} - dev: true - /@applitools/dom-shared/1.0.9: resolution: {integrity: sha512-u6nRHBklRAaODILm0HRluE0IAwrnjs8AMNRBFxHThKGt4qpbkhnwazGMr4zDu3WCBjr/sA31kekUqNl0Jx3YeQ==} engines: {node: '>=8.9.0'} dev: true - /@applitools/dom-snapshot/4.6.2: - resolution: {integrity: sha512-8XFbsIl154VK3rqNhHbSzcYDNLJ8QEgHzWht5cM0WhScWVokXUfL+kDmqjLIMZ47VgP3XXxk0rgX5QOs2TZx8Q==} - engines: {node: '>=8.9.0'} - dependencies: - '@applitools/dom-shared': 1.0.8 - '@applitools/functional-commons': 1.6.0 - css-tree: 1.0.0-alpha.39 - pako: 1.0.11 - dev: true - /@applitools/dom-snapshot/4.7.0: resolution: {integrity: sha512-exLRB2dTLiqD8i5oOK/QyfNMSLramVF5CFYNI29WWQjbXkIpCGOomGA8/xL+sYiC53jjx3Y9u6jHtlkb5ASJAQ==} engines: {node: '>=8.9.0'} @@ -508,34 +521,33 @@ packages: pako: 1.0.11 dev: true - /@applitools/driver/1.10.5: - resolution: {integrity: sha512-I2KSRM2ZIo5AJh2ylLB/WECExmKVpx7GJCnsOHcriLh+E8XDhZkZtCQ9GEIM/aVRO0yLm70H24r0/qxNyikt1A==} + /@applitools/driver/1.10.6: + resolution: {integrity: sha512-fZgnDTCSd8CaiXXYyWGIaIAZisEw9Waj+SPoAi6osypvFkVQ71mynC+fkfI/B5JOEnoHYEpj4AXfiukEvq88zA==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/logger': 1.1.26 + '@applitools/logger': 1.1.27 '@applitools/snippets': 2.4.5 - '@applitools/utils': 1.3.12 + '@applitools/utils': 1.3.13 semver: 7.3.7 dev: true - /@applitools/driver/1.9.26: - resolution: {integrity: sha512-owkCcmklmvDBu6uabewHQJTX5sLFj/ULccpXPEW8Z/UB+Nd/ttWwUz92OxLJFrYq1F4Nd8X1WIyrVYnuqYAE1g==} + /@applitools/driver/1.10.7: + resolution: {integrity: sha512-HaKnZ98y1PUnnT2tsHar5smPekNtxwWuEfwQFSWRp1OK5lgi+leUXtcXRROzsD1Z7kRGDuyMbqSDYINFDgWDlQ==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/logger': 1.1.16 + '@applitools/logger': 1.1.27 '@applitools/snippets': 2.4.5 - '@applitools/types': 1.5.9 - '@applitools/utils': 1.3.10 + '@applitools/utils': 1.3.13 semver: 7.3.7 dev: true - /@applitools/execution-grid-client/1.1.24: - resolution: {integrity: sha512-SA6pl54KwkExr30lPRrEGfP3Ypfyfw8LLhVk7XWMLp4D7JgBPNyzAbY+KHLE4bVXRUBiXDzQGcf8scLVycajxg==} + /@applitools/execution-grid-client/1.1.30: + resolution: {integrity: sha512-LoX0ZcNDZZV4aD6bpldfOTk94tNznRcIZPAVRRrKiqQJWJnDPP661EGxykXsfVnluCHaOGmbDPH6bfJGdDfUuQ==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/logger': 1.1.16 - '@applitools/utils': 1.3.10 + '@applitools/logger': 1.1.27 + '@applitools/utils': 1.3.13 abort-controller: 3.0.0 node-fetch: 2.6.7 proxy-agent: 5.0.0 @@ -546,62 +558,49 @@ packages: - supports-color dev: true - /@applitools/execution-grid-client/1.1.29: - resolution: {integrity: sha512-iI7oFmzM9G6Qmgmt1JsYJ2Qhs0C5hgrwxoehANa7d62HlGpppvKlv5gOAkkQphsyvLSrPTlfqKPRyh9/W6ZeZQ==} + /@applitools/eyes-api/1.9.0: + resolution: {integrity: sha512-XOmVb3SZGk3ae5Et72GR4C09xciAtzyfzVEaxAEbwB+ccI2QCkCbjN/GL6lVo0unc0urPhKSzIfxGu3z5mcZQA==} engines: {node: '>=12.13.0'} - hasBin: true dependencies: - '@applitools/logger': 1.1.26 - '@applitools/utils': 1.3.12 - abort-controller: 3.0.0 - node-fetch: 2.6.7 - proxy-agent: 5.0.0 - raw-body: 2.5.1 - yargs: 17.4.1 + '@applitools/core': 1.2.0 + '@applitools/logger': 1.1.27 + '@applitools/utils': 1.3.13 transitivePeerDependencies: + - bufferutil - encoding - supports-color + - utf-8-validate dev: true - /@applitools/eyes-api/1.8.5: - resolution: {integrity: sha512-pZK5RBvnG9/IiXDQFuErcUngbGNDcPLIhl1YydbfEDDtT+vo/mOd8Zq1VGZfHHSiLFr0gBnHAISS3d8n0J1/4w==} - engines: {node: '>=12.13.0'} - dependencies: - '@applitools/logger': 1.1.26 - '@applitools/types': 1.5.19 - '@applitools/utils': 1.3.12 - dev: true - - /@applitools/eyes-cypress/3.27.2: - resolution: {integrity: sha512-nk7j9FQFQ7F4OE2lFOFjuquEXR6b4Z9IKwM7MtCNoOpnvpb15WS7JQX9GAGkv4t9Gst500a7d8gndLmgYwOgKg==} + /@applitools/eyes-cypress/3.27.5: + resolution: {integrity: sha512-s/oavveA1x+oMLFp6AdzTdAVv7RgncnrE12/gBE2HuK17g6NL02tVky5fa2vF3OmFJefOE5ZpVQXsYCLIrgwlg==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/eyes-api': 1.8.5 - '@applitools/eyes-universal': 2.16.3 + '@applitools/core': 1.2.1 + '@applitools/eyes-api': 1.9.0 + '@applitools/eyes-universal': 2.16.6 '@applitools/functional-commons': 1.6.0 - '@applitools/logger': 1.1.26 - '@applitools/visual-grid-client': 15.14.1 + '@applitools/logger': 1.1.27 chalk: 3.0.0 semver: 7.3.7 uuid: 8.3.2 ws: 8.5.0 transitivePeerDependencies: - bufferutil - - debug - encoding - supports-color - utf-8-validate dev: true - /@applitools/eyes-sdk-core/13.11.6: - resolution: {integrity: sha512-p7rf1A3pRF3CUxmYbOpHm0FjaWzGKy95eFHPvi1IcGdICQ0bZ7y9OyCEddXjPplqo+olHt2ZVXB5zzh70UO3iw==} + /@applitools/eyes-sdk-core/13.11.10: + resolution: {integrity: sha512-IxEH5KDoX3nInyKqYXWJQM1cqMrsCV7o3uhnjrCLaj4SWnT1eImmX+sIDFegnmSB5UvwhhozGqU/quymhhoJLQ==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/core': 1.1.5 - '@applitools/driver': 1.10.5 - '@applitools/execution-grid-client': 1.1.29 - '@applitools/utils': 1.3.12 + '@applitools/core': 1.2.1 + '@applitools/driver': 1.10.7 + '@applitools/execution-grid-client': 1.1.30 + '@applitools/utils': 1.3.13 transitivePeerDependencies: - bufferutil - encoding @@ -609,41 +608,17 @@ packages: - utf-8-validate dev: true - /@applitools/eyes-sdk-core/13.9.1: - resolution: {integrity: sha512-4WNfdUAqi5rXSAKWMOZHJOG7LfHLJ0+k3ZXR1RuN9D2SnhQ1CA+JtfXYLZuBqqKl8GUSb/XizYpojOqJpFoAfw==} - engines: {node: '>=12.13.0'} - hasBin: true - dependencies: - '@applitools/dom-capture': 11.1.2 - '@applitools/dom-snapshot': 4.6.2 - '@applitools/driver': 1.9.26 - '@applitools/execution-grid-client': 1.1.24 - '@applitools/isomorphic-fetch': 3.0.0 - '@applitools/logger': 1.1.16 - '@applitools/nml-client': 1.1.1 - '@applitools/screenshoter': 3.5.1 - '@applitools/snippets': 2.4.5 - '@applitools/types': 1.5.9 - '@applitools/utils': 1.3.10 - axios: 0.26.0 - chalk: 3.0.0 - tunnel: 0.0.6 - transitivePeerDependencies: - - debug - - encoding - - supports-color - dev: true - - /@applitools/eyes-universal/2.16.3: - resolution: {integrity: sha512-AYbr1eJS8cwWb08YtoSTn+KKjihKKe12HPYCZ7N3HKeHZD96DKunyG8ERop6YvuH7CrPJtfyZawgPGUdyjqPJw==} + /@applitools/eyes-universal/2.16.6: + resolution: {integrity: sha512-T4Q8fFOjXKofsAImpFC2UqnceGlWCgAiGKgKKoDtXCZCOxAPM5wE/vM4GZMVXLhWDZhpgXtQaqa6+sa5QLMyNg==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/core': 1.1.5 - '@applitools/execution-grid-client': 1.1.29 - '@applitools/eyes-sdk-core': 13.11.6 - '@applitools/logger': 1.1.26 - '@applitools/utils': 1.3.12 + '@applitools/core': 1.2.1 + '@applitools/driver': 1.10.7 + '@applitools/execution-grid-client': 1.1.30 + '@applitools/eyes-sdk-core': 13.11.10 + '@applitools/logger': 1.1.27 + '@applitools/utils': 1.3.13 proxy-agent: 5.0.0 webdriver: 7.16.11 ws: 7.4.6 @@ -660,48 +635,15 @@ packages: engines: {node: '>=8.0.0'} dev: true - /@applitools/http-commons/2.4.7: - resolution: {integrity: sha512-fsq8ULh70/htb9oHSMTkibMR7AiB+ScraYfQw4H7Sq7JfbFnlefSK0c6ZGfSrjJQx79GRfjrqQYtz59s5lxkcw==} - engines: {node: '>=8.0.0'} - dependencies: - '@applitools/functional-commons': 1.6.0 - '@applitools/monitoring-commons': 1.0.19 - agentkeepalive: 4.2.1 - debug: 4.3.4 - lodash.merge: 4.6.2 - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@applitools/image/1.0.1: - resolution: {integrity: sha512-Z9SEOFcQnnPbIIbagN2RTqgKF1NuYEZnlPNVB4suxnSRxrrjvoVudnysMI2uqKbWjeL5fIxpKgZDNP5sibSuCQ==} + /@applitools/image/1.0.4: + resolution: {integrity: sha512-eNr/fa+loGz1hrgwv/NKuVP13uRyfRUPFyCU8EtTdSWuGFJXIqwhtQWCFCokX1EXnhoCyGfFBAzWgW9StqTGfQ==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/utils': 1.3.10 + '@applitools/utils': 1.3.13 jpeg-js: 0.4.4 png-async: 0.9.4 dev: true - /@applitools/image/1.0.2: - resolution: {integrity: sha512-6paeiEsyHGg48zfPlL6Zw43VKNfKHbW+ynTTxTomceZot11OrC46kmy5MdyvMrHDG0ytb+CsMHPgqNJhNE0HLQ==} - engines: {node: '>=12.13.0'} - dependencies: - '@applitools/utils': 1.3.12 - jpeg-js: 0.4.4 - png-async: 0.9.4 - dev: true - - /@applitools/isomorphic-fetch/3.0.0: - resolution: {integrity: sha512-7rutaN/2M5wYjOIOTKS/Zuc1Na90fJNEAqvo/jCxt7nSD1kYscHV3aCk9t7RD59gmzLMvUTIxFbjl4RUMV8qfg==} - dependencies: - node-fetch: 2.6.7 - whatwg-fetch: 3.6.2 - transitivePeerDependencies: - - encoding - dev: true - /@applitools/jsdom/1.0.4: resolution: {integrity: sha512-JtjNfTJtphJYHEkicW4xlwtYuRP3TRvjoszfkrcpxTNMCbGkbop8ed9MuUfR83dAZj5NY9begbmEqJohLJco6w==} engines: {node: '>=12'} @@ -739,75 +681,31 @@ packages: - utf-8-validate dev: true - /@applitools/logger/1.1.16: - resolution: {integrity: sha512-AA18naLM/v+2k4YwUJ9ayuSUSQBRRlS7hZLQfHEFS9XZMcflSU8a5H0G2cl8AiZMj1hXK6bCIyH3x41x8aFtYQ==} + /@applitools/logger/1.1.27: + resolution: {integrity: sha512-lwKCNhuMfLkqxfwYhLalDg2JZNgNj6rEgD8LnozsQdfxqVXThrJb/fkdSaSeUwnF+ljJyR7fnPy+p742p66U0Q==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/utils': 1.3.10 + '@applitools/utils': 1.3.13 chalk: 4.1.2 dev: true - /@applitools/logger/1.1.26: - resolution: {integrity: sha512-zrwucuOzMLXAyPudCwHiTs8RueTl1CPrQdvz5LHkcNvuhCzCTBOksAYlU8U7TdA/xfxGALLBfGZRbVRd/VF5sQ==} + /@applitools/nml-client/1.3.4: + resolution: {integrity: sha512-CKW/QKtxL3Ijk4FMNAtRNVrqFA5D6GMcD4bRuAeSPYkWBDHplxNgSIM2auBNGF8YVbWX7qu/pDs3iyvN/BfeSQ==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/types': 1.5.19 - '@applitools/utils': 1.3.12 - chalk: 4.1.2 - dev: true - - /@applitools/monitoring-commons/1.0.19: - resolution: {integrity: sha512-rzEOvGoiEF4KnK0PJ9I0btdwnaNlIPLYhjF1vTEG15PoucbbKpix9fYusxWlDG7kMiZya8ZycVPc0woVlNaHRQ==} - engines: {node: '>=8.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@applitools/nml-client/1.1.1: - resolution: {integrity: sha512-5SGbk0LdznYiUp2yxT0z8eCFC115oA1ywJ+eDkpccNgLZlQrmUKo7MKtnKlnewn3n3eTYoGJpU4mn4jiy2tefQ==} - engines: {node: '>=12.13.0'} - dependencies: - '@applitools/req': 1.1.0 - '@applitools/utils': 1.3.10 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@applitools/nml-client/1.3.3: - resolution: {integrity: sha512-5buXrh/7YX+vuDGItu8K1mVervRMxZ92rTfr8KxSGsesKGf/QUhTTAgTdte9EE8sS7xvWIGDV8fwlXwfJk/n0A==} - engines: {node: '>=12.13.0'} - dependencies: - '@applitools/logger': 1.1.26 - '@applitools/req': 1.1.10 - '@applitools/types': 1.5.19 - '@applitools/utils': 1.3.12 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.11 + '@applitools/utils': 1.3.13 transitivePeerDependencies: - encoding - supports-color dev: true - /@applitools/req/1.1.0: - resolution: {integrity: sha512-3NaS3F5vBJKvsxwI1bXI9ObDfuy8gfydLOVU4ZE+cKPICzIje5ZSGQjrlIsRt3ayfkJCqK+7r9l8Xyln+wZYig==} + /@applitools/req/1.1.11: + resolution: {integrity: sha512-pgSH3UAWsQx9tqPuA1GB2Gv8A6jSF227v3BfLwavEnTYw1DIV6iKa7P7H5LNRD/iqsi7wiVK9v6eoOEj4tQzDQ==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/utils': 1.3.10 - abort-controller: 3.0.0 - node-fetch: 2.6.7 - proxy-agent: 5.0.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@applitools/req/1.1.10: - resolution: {integrity: sha512-PRGcqojWqCxoKAS7iDs1FWg8Kia6AP5xTDYMxoAWZoPQ+WVyk0vZUTa5I0T+0xBkVL1AKxE98FIoHqI8iWqmmQ==} - engines: {node: '>=12.13.0'} - dependencies: - '@applitools/types': 1.5.19 - '@applitools/utils': 1.3.12 + '@applitools/utils': 1.3.13 '@types/node-fetch': 2.6.2 abort-controller: 3.0.0 node-fetch: 2.6.7 @@ -817,26 +715,26 @@ packages: - supports-color dev: true - /@applitools/screenshoter/3.5.1: - resolution: {integrity: sha512-MueuoxNg2atSbeTZcc47HnBCkxubsDg7nAr0s5d/qTmVlEFxv618Sq6pCcZH7eK3S8W36CeXUd1GYfy8lUDg6w==} + /@applitools/screenshoter/3.6.5: + resolution: {integrity: sha512-mPhn6LsGs8Aj0lcxMDh72EEySgqT4x5iM5Tjsr1czQ4WVmPM/xC2TN7N1CwxmS0WFgEcVpjHj9Plfr4lQqNgfg==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/image': 1.0.1 - '@applitools/logger': 1.1.16 + '@applitools/image': 1.0.4 + '@applitools/logger': 1.1.27 '@applitools/snippets': 2.4.5 - '@applitools/utils': 1.3.10 + '@applitools/utils': 1.3.13 jpeg-js: 0.4.4 png-async: 0.9.4 dev: true - /@applitools/screenshoter/3.6.3: - resolution: {integrity: sha512-xg62cKkU5qU6sfTsitg2QVEpVu1mVGqvLQcMY3anj0qmKSVeWPbcPA5MRs7bz0/qBDaEB202oYQinWOQmDWLjQ==} + /@applitools/screenshoter/3.7.0: + resolution: {integrity: sha512-d723TI4InLQi06TpVj4rP+V5OrNL9mFQr+cWv2MOMfQbuAnZETTRzvDyk97e3qoDJHAPjyQuxi81qEaxsFxhOA==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/image': 1.0.2 - '@applitools/logger': 1.1.26 + '@applitools/image': 1.0.4 + '@applitools/logger': 1.1.27 '@applitools/snippets': 2.4.5 - '@applitools/utils': 1.3.12 + '@applitools/utils': 1.3.13 jpeg-js: 0.4.4 png-async: 0.9.4 dev: true @@ -846,25 +744,14 @@ packages: engines: {node: '>=12.13.0'} dev: true - /@applitools/types/1.5.19: - resolution: {integrity: sha512-0KYkVDOSQQRv3UtFfwq0cYerUo9SPkSO0KWsuwI1keO7ctnlyasXjKFRxx/bqrN2CklRSIEiXrvxOM6KAm6KRw==} - engines: {node: '>=12.13.0'} - dev: true - - /@applitools/types/1.5.9: - resolution: {integrity: sha512-8lBeXQ3dRRcIRREisGj9kxFXRNoctMbeAQHWfiSDe/6CS/qO2cGArWRPhOusFsZiYE1NEahgIM6exufztgkfKA==} - engines: {node: '>=12.13.0'} - dev: true - - /@applitools/ufg-client/1.0.9: - resolution: {integrity: sha512-n0asPit711UeTQlTxg4vW+8ER/WWgvbLK7LldGtMGvbdrwh+0L/h/AJeG0U/xBCwJ0s+734j5vY3msySSxjH4g==} + /@applitools/ufg-client/1.1.0: + resolution: {integrity: sha512-wVzKLarbAGKlyNSbxIzj6+k62PFkUaoQGKg2dovHWvHQGEy+5Su8EpT7mOQY2fYYoompw6L05v8gq0W8R/T2bg==} engines: {node: '>=12.13.0'} dependencies: '@applitools/jsdom': 1.0.4 - '@applitools/logger': 1.1.26 - '@applitools/req': 1.1.10 - '@applitools/types': 1.5.19 - '@applitools/utils': 1.3.12 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.11 + '@applitools/utils': 1.3.13 abort-controller: 3.0.0 postcss-value-parser: 4.2.0 throat: 6.0.1 @@ -875,38 +762,11 @@ packages: - utf-8-validate dev: true - /@applitools/utils/1.3.10: - resolution: {integrity: sha512-CI/5BLB0D/aZn6uL8JJmsErI+TOHCa4Gz5Wi8sJknuPz/V9Ws6jIh9ZCTzvOCDUIp99qLJwD6TSA2BY9aMhCNw==} - engines: {node: '>=12.13.0'} - dev: true - - /@applitools/utils/1.3.12: - resolution: {integrity: sha512-aWIMcq6wqzIVVIcbe1Q5f2g7PJeyLq17S0hH5xhqOArzJz/urAbLl98jHMOOkIBZVfuIAX0cIgaMPfuUpky96g==} + /@applitools/utils/1.3.13: + resolution: {integrity: sha512-UwA1skl9kzK+WrXu7WyX6A4K4TdIFZbDAcFJq2PA5fhmbviAlk4iFJtQjyopYTdY0sSh3VRSsCPr3DsbFa79AA==} engines: {node: '>=12.13.0'} dev: true - /@applitools/visual-grid-client/15.14.1: - resolution: {integrity: sha512-Gy7S3miR+q8zcKEpH4RSnnZRlcEMN2bxgZ3RafkiCsr7FWIsGeKf0dqAJYljIXB+xU9cVla6Z5cnts/jsu7f4w==} - engines: {node: '>=12.13.0'} - dependencies: - '@applitools/eyes-sdk-core': 13.9.1 - '@applitools/functional-commons': 1.6.0 - '@applitools/http-commons': 2.4.7 - '@applitools/isomorphic-fetch': 3.0.0 - '@applitools/jsdom': 1.0.4 - '@applitools/logger': 1.1.16 - abort-controller: 3.0.0 - chalk: 3.0.0 - postcss-value-parser: 4.1.0 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - supports-color - - utf-8-validate - dev: true - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -1234,6 +1094,10 @@ packages: /@braintree/sanitize-url/6.0.0: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} + dev: false + + /@braintree/sanitize-url/6.0.1: + resolution: {integrity: sha512-zr9Qs9KFQiEvMWdZesjcmRJlUck5NR+eKGS1uyKk+oYTWwlYrsoPEi6VmG6/TzBD1hKCGEimrhTgGS6hvn/xIQ==} /@cnakazawa/watch/1.0.4: resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} @@ -1731,17 +1595,17 @@ packages: - '@algolia/client-search' dev: true - /@es-joy/jsdoccomment/0.31.0: - resolution: {integrity: sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==} - engines: {node: ^14 || ^16 || ^17 || ^18} + /@es-joy/jsdoccomment/0.33.0: + resolution: {integrity: sha512-bkxMGTlHPE4vfarXt1L1fOm81O18jTRFNgh3Fm4iPKctfWxcpJw4cpth5BhLkGZy4HFzGn/KfD/zGks/J+ZIIw==} + engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} dependencies: comment-parser: 1.3.1 esquery: 1.4.0 jsdoc-type-pratt-parser: 3.1.0 dev: true - /@esbuild/android-arm/0.15.11: - resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==} + /@esbuild/android-arm/0.15.12: + resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1749,8 +1613,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.11: - resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==} + /@esbuild/linux-loong64/0.15.12: + resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1838,15 +1702,15 @@ packages: slash: 3.0.0 dev: true - /@jest/console/29.2.0: - resolution: {integrity: sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow==} + /@jest/console/29.2.1: + resolution: {integrity: sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@types/node': 18.11.0 chalk: 4.1.2 - jest-message-util: 29.2.0 - jest-util: 29.2.0 + jest-message-util: 29.2.1 + jest-util: 29.2.1 slash: 3.0.0 dev: true @@ -1890,8 +1754,8 @@ packages: - utf-8-validate dev: true - /@jest/core/29.2.0_ts-node@10.9.1: - resolution: {integrity: sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ==} + /@jest/core/29.2.1_ts-node@10.9.1: + resolution: {integrity: sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1899,11 +1763,11 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.2.0 - '@jest/reporters': 29.2.0 - '@jest/test-result': 29.2.0 - '@jest/transform': 29.2.0 - '@jest/types': 29.2.0 + '@jest/console': 29.2.1 + '@jest/reporters': 29.2.1 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -1911,20 +1775,20 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.2.0 - jest-config: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq - jest-haste-map: 29.2.0 - jest-message-util: 29.2.0 + jest-config: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest-haste-map: 29.2.1 + jest-message-util: 29.2.1 jest-regex-util: 29.2.0 - jest-resolve: 29.2.0 - jest-resolve-dependencies: 29.2.0 - jest-runner: 29.2.0 - jest-runtime: 29.2.0 - jest-snapshot: 29.2.0 - jest-util: 29.2.0 - jest-validate: 29.2.0 - jest-watcher: 29.2.0 + jest-resolve: 29.2.1 + jest-resolve-dependencies: 29.2.1 + jest-runner: 29.2.1 + jest-runtime: 29.2.1 + jest-snapshot: 29.2.1 + jest-util: 29.2.1 + jest-validate: 29.2.1 + jest-watcher: 29.2.1 micromatch: 4.0.5 - pretty-format: 29.2.0 + pretty-format: 29.2.1 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -1942,29 +1806,29 @@ packages: jest-mock: 26.6.2 dev: true - /@jest/environment/29.2.0: - resolution: {integrity: sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q==} + /@jest/environment/29.2.1: + resolution: {integrity: sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.2.0 - '@jest/types': 29.2.0 + '@jest/fake-timers': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 - jest-mock: 29.2.0 + jest-mock: 29.2.1 dev: true - /@jest/expect-utils/29.2.0: - resolution: {integrity: sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg==} + /@jest/expect-utils/29.2.1: + resolution: {integrity: sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 dev: true - /@jest/expect/29.2.0: - resolution: {integrity: sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw==} + /@jest/expect/29.2.1: + resolution: {integrity: sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.2.0 - jest-snapshot: 29.2.0 + expect: 29.2.1 + jest-snapshot: 29.2.1 transitivePeerDependencies: - supports-color dev: true @@ -1981,16 +1845,16 @@ packages: jest-util: 26.6.2 dev: true - /@jest/fake-timers/29.2.0: - resolution: {integrity: sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw==} + /@jest/fake-timers/29.2.1: + resolution: {integrity: sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@sinonjs/fake-timers': 9.1.2 '@types/node': 18.11.0 - jest-message-util: 29.2.0 - jest-mock: 29.2.0 - jest-util: 29.2.0 + jest-message-util: 29.2.1 + jest-mock: 29.2.1 + jest-util: 29.2.1 dev: true /@jest/globals/26.6.2: @@ -2002,14 +1866,14 @@ packages: expect: 26.6.2 dev: true - /@jest/globals/29.2.0: - resolution: {integrity: sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA==} + /@jest/globals/29.2.1: + resolution: {integrity: sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.0 - '@jest/expect': 29.2.0 - '@jest/types': 29.2.0 - jest-mock: 29.2.0 + '@jest/environment': 29.2.1 + '@jest/expect': 29.2.1 + '@jest/types': 29.2.1 + jest-mock: 29.2.1 transitivePeerDependencies: - supports-color dev: true @@ -2048,8 +1912,8 @@ packages: - supports-color dev: true - /@jest/reporters/29.2.0: - resolution: {integrity: sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw==} + /@jest/reporters/29.2.1: + resolution: {integrity: sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -2058,10 +1922,10 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.2.0 - '@jest/test-result': 29.2.0 - '@jest/transform': 29.2.0 - '@jest/types': 29.2.0 + '@jest/console': 29.2.1 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.2.1 + '@jest/types': 29.2.1 '@jridgewell/trace-mapping': 0.3.15 '@types/node': 18.11.0 chalk: 4.1.2 @@ -2074,9 +1938,9 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.2.0 - jest-util: 29.2.0 - jest-worker: 29.2.0 + jest-message-util: 29.2.1 + jest-util: 29.2.1 + jest-worker: 29.2.1 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -2120,12 +1984,12 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-result/29.2.0: - resolution: {integrity: sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw==} + /@jest/test-result/29.2.1: + resolution: {integrity: sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.2.0 - '@jest/types': 29.2.0 + '@jest/console': 29.2.1 + '@jest/types': 29.2.1 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -2147,13 +2011,13 @@ packages: - utf-8-validate dev: true - /@jest/test-sequencer/29.2.0: - resolution: {integrity: sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ==} + /@jest/test-sequencer/29.2.1: + resolution: {integrity: sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.2.0 + '@jest/test-result': 29.2.1 graceful-fs: 4.2.10 - jest-haste-map: 29.2.0 + jest-haste-map: 29.2.1 slash: 3.0.0 dev: true @@ -2180,21 +2044,21 @@ packages: - supports-color dev: true - /@jest/transform/29.2.0: - resolution: {integrity: sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw==} + /@jest/transform/29.2.1: + resolution: {integrity: sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@jridgewell/trace-mapping': 0.3.15 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 1.8.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.2.0 + jest-haste-map: 29.2.1 jest-regex-util: 29.2.0 - jest-util: 29.2.0 + jest-util: 29.2.1 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -2214,8 +2078,8 @@ packages: chalk: 4.1.2 dev: true - /@jest/types/29.2.0: - resolution: {integrity: sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q==} + /@jest/types/29.2.1: + resolution: {integrity: sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -2641,8 +2505,8 @@ packages: '@types/trusted-types': 2.0.2 dev: true - /@types/eslint/8.4.6: - resolution: {integrity: sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==} + /@types/eslint/8.4.7: + resolution: {integrity: sha512-ehM7cCt2RSFs42mb+lcmhFT9ouIlV92PuaeRGn8N8c98oMjG4Z5pJHA9b1QiCcuqnbPSHcyfiD3mlhqMaHsQIw==} dependencies: '@types/estree': 1.0.0 '@types/json-schema': 7.0.11 @@ -2797,6 +2661,10 @@ packages: '@types/node': 18.11.0 dev: true + /@types/semver/7.3.12: + resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} + dev: true + /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: @@ -2864,8 +2732,8 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.40.0_25sstg4uu2sk4pm7xcyzuov7xq: - resolution: {integrity: sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==} + /@typescript-eslint/eslint-plugin/5.40.1_ukgdydjtebaxmxfqp5v5ulh64y: + resolution: {integrity: sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2875,10 +2743,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q - '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/type-utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q - '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/scope-manager': 5.40.1 + '@typescript-eslint/type-utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q debug: 4.3.4 eslint: 8.25.0 ignore: 5.2.0 @@ -2890,8 +2758,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==} + /@typescript-eslint/parser/5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2900,9 +2768,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.40.1 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 debug: 4.3.4 eslint: 8.25.0 typescript: 4.8.4 @@ -2910,16 +2778,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.40.0: - resolution: {integrity: sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==} + /@typescript-eslint/scope-manager/5.40.1: + resolution: {integrity: sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/visitor-keys': 5.40.0 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/visitor-keys': 5.40.1 dev: true - /@typescript-eslint/type-utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==} + /@typescript-eslint/type-utils/5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2928,8 +2796,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 - '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q debug: 4.3.4 eslint: 8.25.0 tsutils: 3.21.0_typescript@4.8.4 @@ -2938,13 +2806,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.40.0: - resolution: {integrity: sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==} + /@typescript-eslint/types/5.40.1: + resolution: {integrity: sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.40.0_typescript@4.8.4: - resolution: {integrity: sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==} + /@typescript-eslint/typescript-estree/5.40.1_typescript@4.8.4: + resolution: {integrity: sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2952,42 +2820,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/visitor-keys': 5.40.0 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/visitor-keys': 5.40.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==} + /@typescript-eslint/utils/5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + '@types/semver': 7.3.12 + '@typescript-eslint/scope-manager': 5.40.1 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 eslint: 8.25.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.25.0 - semver: 7.3.7 + semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.40.0: - resolution: {integrity: sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==} + /@typescript-eslint/visitor-keys/5.40.1: + resolution: {integrity: sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/types': 5.40.1 eslint-visitor-keys: 3.3.0 dev: true @@ -3328,17 +3197,6 @@ packages: - supports-color dev: true - /agentkeepalive/4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} - dependencies: - debug: 4.3.4 - depd: 1.1.2 - humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color - dev: true - /aggregate-error/3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -3614,14 +3472,6 @@ packages: - debug dev: true - /axios/0.26.0: - resolution: {integrity: sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==} - dependencies: - follow-redirects: 1.15.2_debug@4.3.2 - transitivePeerDependencies: - - debug - dev: true - /babel-jest/26.6.3_@babel+core@7.12.3: resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} engines: {node: '>= 10.14.2'} @@ -3641,14 +3491,14 @@ packages: - supports-color dev: true - /babel-jest/29.2.0_@babel+core@7.12.3: - resolution: {integrity: sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw==} + /babel-jest/29.2.1_@babel+core@7.12.3: + resolution: {integrity: sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.12.3 - '@jest/transform': 29.2.0 + '@jest/transform': 29.2.1 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.2.0_@babel+core@7.12.3 @@ -4835,7 +4685,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_sldctbhq72okzn4urvbivac6lq: + /cypress-image-snapshot/4.0.1_i53o2fh6a5o5tv3qlenzwcubc4: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -4845,7 +4695,7 @@ packages: cypress: 10.10.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@29.2.0 + jest-image-snapshot: 4.2.0_jest@29.2.1 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5414,11 +5264,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /depd/1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: true - /depd/2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5712,8 +5557,8 @@ packages: string-template: 0.2.1 dev: true - /esbuild-android-64/0.15.11: - resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==} + /esbuild-android-64/0.15.12: + resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -5721,8 +5566,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.11: - resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==} + /esbuild-android-arm64/0.15.12: + resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -5730,8 +5575,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.11: - resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==} + /esbuild-darwin-64/0.15.12: + resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -5739,8 +5584,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.11: - resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==} + /esbuild-darwin-arm64/0.15.12: + resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -5748,8 +5593,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.11: - resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==} + /esbuild-freebsd-64/0.15.12: + resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -5757,8 +5602,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.11: - resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==} + /esbuild-freebsd-arm64/0.15.12: + resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -5766,8 +5611,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.11: - resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==} + /esbuild-linux-32/0.15.12: + resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -5775,8 +5620,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.11: - resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==} + /esbuild-linux-64/0.15.12: + resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -5784,8 +5629,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.11: - resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==} + /esbuild-linux-arm/0.15.12: + resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -5793,8 +5638,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.11: - resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==} + /esbuild-linux-arm64/0.15.12: + resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -5802,8 +5647,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.11: - resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==} + /esbuild-linux-mips64le/0.15.12: + resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -5811,8 +5656,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.11: - resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==} + /esbuild-linux-ppc64le/0.15.12: + resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -5820,8 +5665,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.11: - resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==} + /esbuild-linux-riscv64/0.15.12: + resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -5829,8 +5674,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.11: - resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==} + /esbuild-linux-s390x/0.15.12: + resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -5838,8 +5683,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.11: - resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==} + /esbuild-netbsd-64/0.15.12: + resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -5847,8 +5692,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.11: - resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==} + /esbuild-openbsd-64/0.15.12: + resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -5856,8 +5701,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.11: - resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==} + /esbuild-sunos-64/0.15.12: + resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -5865,8 +5710,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.11: - resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==} + /esbuild-windows-32/0.15.12: + resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -5874,8 +5719,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.11: - resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==} + /esbuild-windows-64/0.15.12: + resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -5883,8 +5728,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.11: - resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==} + /esbuild-windows-arm64/0.15.12: + resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -5892,34 +5737,34 @@ packages: dev: true optional: true - /esbuild/0.15.11: - resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} + /esbuild/0.15.12: + resolution: {integrity: sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.11 - '@esbuild/linux-loong64': 0.15.11 - esbuild-android-64: 0.15.11 - esbuild-android-arm64: 0.15.11 - esbuild-darwin-64: 0.15.11 - esbuild-darwin-arm64: 0.15.11 - esbuild-freebsd-64: 0.15.11 - esbuild-freebsd-arm64: 0.15.11 - esbuild-linux-32: 0.15.11 - esbuild-linux-64: 0.15.11 - esbuild-linux-arm: 0.15.11 - esbuild-linux-arm64: 0.15.11 - esbuild-linux-mips64le: 0.15.11 - esbuild-linux-ppc64le: 0.15.11 - esbuild-linux-riscv64: 0.15.11 - esbuild-linux-s390x: 0.15.11 - esbuild-netbsd-64: 0.15.11 - esbuild-openbsd-64: 0.15.11 - esbuild-sunos-64: 0.15.11 - esbuild-windows-32: 0.15.11 - esbuild-windows-64: 0.15.11 - esbuild-windows-arm64: 0.15.11 + '@esbuild/android-arm': 0.15.12 + '@esbuild/linux-loong64': 0.15.12 + esbuild-android-64: 0.15.12 + esbuild-android-arm64: 0.15.12 + esbuild-darwin-64: 0.15.12 + esbuild-darwin-arm64: 0.15.12 + esbuild-freebsd-64: 0.15.12 + esbuild-freebsd-arm64: 0.15.12 + esbuild-linux-32: 0.15.12 + esbuild-linux-64: 0.15.12 + esbuild-linux-arm: 0.15.12 + esbuild-linux-arm64: 0.15.12 + esbuild-linux-mips64le: 0.15.12 + esbuild-linux-ppc64le: 0.15.12 + esbuild-linux-riscv64: 0.15.12 + esbuild-linux-s390x: 0.15.12 + esbuild-netbsd-64: 0.15.12 + esbuild-openbsd-64: 0.15.12 + esbuild-sunos-64: 0.15.12 + esbuild-windows-32: 0.15.12 + esbuild-windows-64: 0.15.12 + esbuild-windows-arm64: 0.15.12 dev: true /escalade/3.1.1: @@ -6008,8 +5853,8 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.2_37sgn6sqs6ms4ljiz35av2ikje: - resolution: {integrity: sha512-+nLOn5jvQKLUywXxXKsLuuENsB/FhygXOLI+l5QlF+ACGe0DM14FlpYrGZ4nEiTo0BGlL5MymG73XA/tC3v3fA==} + /eslint-plugin-jest/27.1.3_ktuq5bhtjfperqqn2aknj5bg6m: + resolution: {integrity: sha512-7DrIfYRQPa7JQd1Le8G/BJsfYHVUKQdJQ/6vULSp/4NjKZmSMJ/605G2hhScEra++SiH68zPEjLnrO74nHrMLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -6021,17 +5866,17 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq - '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y + '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q eslint: 8.25.0 - jest: 26.6.3_ts-node@10.9.1 + jest: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jest/27.1.2_nc3c3bdiyy2hxtl32wv7esmvmq: - resolution: {integrity: sha512-+nLOn5jvQKLUywXxXKsLuuENsB/FhygXOLI+l5QlF+ACGe0DM14FlpYrGZ4nEiTo0BGlL5MymG73XA/tC3v3fA==} + /eslint-plugin-jest/27.1.3_pubrigz2e5aqv2qdhrj3u7msey: + resolution: {integrity: sha512-7DrIfYRQPa7JQd1Le8G/BJsfYHVUKQdJQ/6vULSp/4NjKZmSMJ/605G2hhScEra++SiH68zPEjLnrO74nHrMLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -6043,28 +5888,28 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq - '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y + '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q eslint: 8.25.0 - jest: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq + jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc/39.3.6_eslint@8.25.0: - resolution: {integrity: sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==} - engines: {node: ^14 || ^16 || ^17 || ^18} + /eslint-plugin-jsdoc/39.3.23_eslint@8.25.0: + resolution: {integrity: sha512-ZwutuEmsdz8sj9fCXz4r/4x3uZ4qrB6+ca3rIyH3HHEEj5t6xgOSBWIj8IkxZkBUKvoadWHM6iCPzkmXgPHpsA==} + engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.31.0 + '@es-joy/jsdoccomment': 0.33.0 comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 eslint: 8.25.0 esquery: 1.4.0 - semver: 7.3.7 + semver: 7.3.8 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -6376,15 +6221,15 @@ packages: jest-regex-util: 26.0.0 dev: true - /expect/29.2.0: - resolution: {integrity: sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg==} + /expect/29.2.1: + resolution: {integrity: sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.2.0 + '@jest/expect-utils': 29.2.1 jest-get-type: 29.2.0 - jest-matcher-utils: 29.2.0 - jest-message-util: 29.2.0 - jest-util: 29.2.0 + jest-matcher-utils: 29.2.1 + jest-message-util: 29.2.1 + jest-util: 29.2.1 dev: true /express/4.18.2: @@ -7419,12 +7264,6 @@ packages: engines: {node: '>=12.20.0'} dev: true - /humanize-ms/1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - dependencies: - ms: 2.1.3 - dev: true - /husky/8.0.1: resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} engines: {node: '>=14'} @@ -7941,27 +7780,27 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus/29.2.0: - resolution: {integrity: sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A==} + /jest-circus/29.2.1: + resolution: {integrity: sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.0 - '@jest/expect': 29.2.0 - '@jest/test-result': 29.2.0 - '@jest/types': 29.2.0 + '@jest/environment': 29.2.1 + '@jest/expect': 29.2.1 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 - jest-each: 29.2.0 - jest-matcher-utils: 29.2.0 - jest-message-util: 29.2.0 - jest-runtime: 29.2.0 - jest-snapshot: 29.2.0 - jest-util: 29.2.0 + jest-each: 29.2.1 + jest-matcher-utils: 29.2.1 + jest-message-util: 29.2.1 + jest-runtime: 29.2.1 + jest-snapshot: 29.2.1 + jest-util: 29.2.1 p-limit: 3.1.0 - pretty-format: 29.2.0 + pretty-format: 29.2.1 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: @@ -7994,8 +7833,8 @@ packages: - utf-8-validate dev: true - /jest-cli/29.2.0_pt3oab7md4pun52yk6ejrzjiwq: - resolution: {integrity: sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg==} + /jest-cli/29.2.1_pt3oab7md4pun52yk6ejrzjiwq: + resolution: {integrity: sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8004,16 +7843,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.2.0_ts-node@10.9.1 - '@jest/test-result': 29.2.0 - '@jest/types': 29.2.0 + '@jest/core': 29.2.1_ts-node@10.9.1 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq - jest-util: 29.2.0 - jest-validate: 29.2.0 + jest-config: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest-util: 29.2.1 + jest-validate: 29.2.1 prompts: 2.4.2 yargs: 17.5.1 transitivePeerDependencies: @@ -8057,8 +7896,8 @@ packages: - utf-8-validate dev: true - /jest-config/29.2.0_pt3oab7md4pun52yk6ejrzjiwq: - resolution: {integrity: sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q==} + /jest-config/29.2.1_pt3oab7md4pun52yk6ejrzjiwq: + resolution: {integrity: sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -8070,26 +7909,26 @@ packages: optional: true dependencies: '@babel/core': 7.12.3 - '@jest/test-sequencer': 29.2.0 - '@jest/types': 29.2.0 + '@jest/test-sequencer': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 - babel-jest: 29.2.0_@babel+core@7.12.3 + babel-jest: 29.2.1_@babel+core@7.12.3 chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.2.0 - jest-environment-node: 29.2.0 + jest-circus: 29.2.1 + jest-environment-node: 29.2.1 jest-get-type: 29.2.0 jest-regex-util: 29.2.0 - jest-resolve: 29.2.0 - jest-runner: 29.2.0 - jest-util: 29.2.0 - jest-validate: 29.2.0 + jest-resolve: 29.2.1 + jest-runner: 29.2.1 + jest-util: 29.2.1 + jest-validate: 29.2.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.2.0 + pretty-format: 29.2.1 slash: 3.0.0 strip-json-comments: 3.1.1 ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga @@ -8107,14 +7946,14 @@ packages: pretty-format: 26.6.2 dev: true - /jest-diff/29.2.0: - resolution: {integrity: sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw==} + /jest-diff/29.2.1: + resolution: {integrity: sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.2.0 jest-get-type: 29.2.0 - pretty-format: 29.2.0 + pretty-format: 29.2.1 dev: true /jest-docblock/26.0.0: @@ -8142,15 +7981,15 @@ packages: pretty-format: 26.6.2 dev: true - /jest-each/29.2.0: - resolution: {integrity: sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg==} + /jest-each/29.2.1: + resolution: {integrity: sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 chalk: 4.1.2 jest-get-type: 29.2.0 - jest-util: 29.2.0 - pretty-format: 29.2.0 + jest-util: 29.2.1 + pretty-format: 29.2.1 dev: true /jest-environment-jsdom/26.6.2: @@ -8183,16 +8022,16 @@ packages: jest-util: 26.6.2 dev: true - /jest-environment-node/29.2.0: - resolution: {integrity: sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g==} + /jest-environment-node/29.2.1: + resolution: {integrity: sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.0 - '@jest/fake-timers': 29.2.0 - '@jest/types': 29.2.0 + '@jest/environment': 29.2.1 + '@jest/fake-timers': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 - jest-mock: 29.2.0 - jest-util: 29.2.0 + jest-mock: 29.2.1 + jest-util: 29.2.1 dev: true /jest-get-type/26.3.0: @@ -8228,19 +8067,19 @@ packages: - supports-color dev: true - /jest-haste-map/29.2.0: - resolution: {integrity: sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg==} + /jest-haste-map/29.2.1: + resolution: {integrity: sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@types/graceful-fs': 4.1.5 '@types/node': 18.11.0 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 jest-regex-util: 29.2.0 - jest-util: 29.2.0 - jest-worker: 29.2.0 + jest-util: 29.2.1 + jest-worker: 29.2.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: @@ -8265,7 +8104,7 @@ packages: ssim.js: 3.5.0 dev: true - /jest-image-snapshot/4.2.0_jest@29.2.0: + /jest-image-snapshot/4.2.0_jest@29.2.1: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8274,7 +8113,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq + jest: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8321,12 +8160,12 @@ packages: pretty-format: 26.6.2 dev: true - /jest-leak-detector/29.2.0: - resolution: {integrity: sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg==} + /jest-leak-detector/29.2.1: + resolution: {integrity: sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 - pretty-format: 29.2.0 + pretty-format: 29.2.1 dev: true /jest-matcher-utils/26.6.2: @@ -8339,14 +8178,14 @@ packages: pretty-format: 26.6.2 dev: true - /jest-matcher-utils/29.2.0: - resolution: {integrity: sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw==} + /jest-matcher-utils/29.2.1: + resolution: {integrity: sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.2.0 + jest-diff: 29.2.1 jest-get-type: 29.2.0 - pretty-format: 29.2.0 + pretty-format: 29.2.1 dev: true /jest-message-util/26.6.2: @@ -8364,17 +8203,17 @@ packages: stack-utils: 2.0.5 dev: true - /jest-message-util/29.2.0: - resolution: {integrity: sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg==} + /jest-message-util/29.2.1: + resolution: {integrity: sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.2.0 + pretty-format: 29.2.1 slash: 3.0.0 stack-utils: 2.0.5 dev: true @@ -8387,13 +8226,13 @@ packages: '@types/node': 18.11.0 dev: true - /jest-mock/29.2.0: - resolution: {integrity: sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg==} + /jest-mock/29.2.1: + resolution: {integrity: sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@types/node': 18.11.0 - jest-util: 29.2.0 + jest-util: 29.2.1 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: @@ -8408,7 +8247,7 @@ packages: jest-resolve: 26.6.2 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.2.0: + /jest-pnp-resolver/1.2.2_jest-resolve@29.2.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -8417,7 +8256,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.2.0 + jest-resolve: 29.2.1 dev: true /jest-regex-util/26.0.0: @@ -8441,12 +8280,12 @@ packages: - supports-color dev: true - /jest-resolve-dependencies/29.2.0: - resolution: {integrity: sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ==} + /jest-resolve-dependencies/29.2.1: + resolution: {integrity: sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.2.0 - jest-snapshot: 29.2.0 + jest-snapshot: 29.2.1 transitivePeerDependencies: - supports-color dev: true @@ -8465,16 +8304,16 @@ packages: slash: 3.0.0 dev: true - /jest-resolve/29.2.0: - resolution: {integrity: sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA==} + /jest-resolve/29.2.1: + resolution: {integrity: sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.2.0 - jest-pnp-resolver: 1.2.2_jest-resolve@29.2.0 - jest-util: 29.2.0 - jest-validate: 29.2.0 + jest-haste-map: 29.2.1 + jest-pnp-resolver: 1.2.2_jest-resolve@29.2.1 + jest-util: 29.2.1 + jest-validate: 29.2.1 resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 @@ -8512,29 +8351,29 @@ packages: - utf-8-validate dev: true - /jest-runner/29.2.0: - resolution: {integrity: sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g==} + /jest-runner/29.2.1: + resolution: {integrity: sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.2.0 - '@jest/environment': 29.2.0 - '@jest/test-result': 29.2.0 - '@jest/transform': 29.2.0 - '@jest/types': 29.2.0 + '@jest/console': 29.2.1 + '@jest/environment': 29.2.1 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 chalk: 4.1.2 emittery: 0.10.2 graceful-fs: 4.2.10 jest-docblock: 29.2.0 - jest-environment-node: 29.2.0 - jest-haste-map: 29.2.0 - jest-leak-detector: 29.2.0 - jest-message-util: 29.2.0 - jest-resolve: 29.2.0 - jest-runtime: 29.2.0 - jest-util: 29.2.0 - jest-watcher: 29.2.0 - jest-worker: 29.2.0 + jest-environment-node: 29.2.1 + jest-haste-map: 29.2.1 + jest-leak-detector: 29.2.1 + jest-message-util: 29.2.1 + jest-resolve: 29.2.1 + jest-runtime: 29.2.1 + jest-util: 29.2.1 + jest-watcher: 29.2.1 + jest-worker: 29.2.1 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: @@ -8581,30 +8420,30 @@ packages: - utf-8-validate dev: true - /jest-runtime/29.2.0: - resolution: {integrity: sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg==} + /jest-runtime/29.2.1: + resolution: {integrity: sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.0 - '@jest/fake-timers': 29.2.0 - '@jest/globals': 29.2.0 + '@jest/environment': 29.2.1 + '@jest/fake-timers': 29.2.1 + '@jest/globals': 29.2.1 '@jest/source-map': 29.2.0 - '@jest/test-result': 29.2.0 - '@jest/transform': 29.2.0 - '@jest/types': 29.2.0 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.2.0 - jest-message-util: 29.2.0 - jest-mock: 29.2.0 + jest-haste-map: 29.2.1 + jest-message-util: 29.2.1 + jest-mock: 29.2.1 jest-regex-util: 29.2.0 - jest-resolve: 29.2.0 - jest-snapshot: 29.2.0 - jest-util: 29.2.0 + jest-resolve: 29.2.1 + jest-snapshot: 29.2.1 + jest-util: 29.2.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -8638,13 +8477,13 @@ packages: jest-resolve: 26.6.2 natural-compare: 1.4.0 pretty-format: 26.6.2 - semver: 7.3.7 + semver: 7.3.8 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot/29.2.0: - resolution: {integrity: sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w==} + /jest-snapshot/29.2.1: + resolution: {integrity: sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 @@ -8653,24 +8492,24 @@ packages: '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 - '@jest/expect-utils': 29.2.0 - '@jest/transform': 29.2.0 - '@jest/types': 29.2.0 + '@jest/expect-utils': 29.2.1 + '@jest/transform': 29.2.1 + '@jest/types': 29.2.1 '@types/babel__traverse': 7.18.2 '@types/prettier': 2.7.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 chalk: 4.1.2 - expect: 29.2.0 + expect: 29.2.1 graceful-fs: 4.2.10 - jest-diff: 29.2.0 + jest-diff: 29.2.1 jest-get-type: 29.2.0 - jest-haste-map: 29.2.0 - jest-matcher-utils: 29.2.0 - jest-message-util: 29.2.0 - jest-util: 29.2.0 + jest-haste-map: 29.2.1 + jest-matcher-utils: 29.2.1 + jest-message-util: 29.2.1 + jest-util: 29.2.1 natural-compare: 1.4.0 - pretty-format: 29.2.0 - semver: 7.3.7 + pretty-format: 29.2.1 + semver: 7.3.8 transitivePeerDependencies: - supports-color dev: true @@ -8687,11 +8526,11 @@ packages: micromatch: 4.0.5 dev: true - /jest-util/29.2.0: - resolution: {integrity: sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw==} + /jest-util/29.2.1: + resolution: {integrity: sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 '@types/node': 18.11.0 chalk: 4.1.2 ci-info: 3.4.0 @@ -8711,16 +8550,16 @@ packages: pretty-format: 26.6.2 dev: true - /jest-validate/29.2.0: - resolution: {integrity: sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g==} + /jest-validate/29.2.1: + resolution: {integrity: sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.0 + '@jest/types': 29.2.1 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.2.0 leven: 3.1.0 - pretty-format: 29.2.0 + pretty-format: 29.2.1 dev: true /jest-watcher/26.6.2: @@ -8736,17 +8575,17 @@ packages: string-length: 4.0.2 dev: true - /jest-watcher/29.2.0: - resolution: {integrity: sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA==} + /jest-watcher/29.2.1: + resolution: {integrity: sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.2.0 - '@jest/types': 29.2.0 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 '@types/node': 18.11.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 - jest-util: 29.2.0 + jest-util: 29.2.1 string-length: 4.0.2 dev: true @@ -8759,12 +8598,12 @@ packages: supports-color: 7.2.0 dev: true - /jest-worker/29.2.0: - resolution: {integrity: sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A==} + /jest-worker/29.2.1: + resolution: {integrity: sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.11.0 - jest-util: 29.2.0 + jest-util: 29.2.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8785,8 +8624,8 @@ packages: - utf-8-validate dev: true - /jest/29.2.0_pt3oab7md4pun52yk6ejrzjiwq: - resolution: {integrity: sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg==} + /jest/29.2.1_pt3oab7md4pun52yk6ejrzjiwq: + resolution: {integrity: sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8795,10 +8634,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.2.0_ts-node@10.9.1 - '@jest/types': 29.2.0 + '@jest/core': 29.2.1_ts-node@10.9.1 + '@jest/types': 29.2.1 import-local: 3.1.0 - jest-cli: 29.2.0_pt3oab7md4pun52yk6ejrzjiwq + jest-cli: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq transitivePeerDependencies: - '@types/node' - supports-color @@ -9645,7 +9484,7 @@ packages: /mermaid/9.1.7: resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} dependencies: - '@braintree/sanitize-url': 6.0.0 + '@braintree/sanitize-url': 6.0.1 d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 @@ -10159,7 +9998,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.3.7 + semver: 7.3.8 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -10193,7 +10032,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.10.0 - semver: 7.3.7 + semver: 7.3.8 validate-npm-package-license: 3.0.4 dev: true @@ -10734,8 +10573,8 @@ packages: engines: {node: '>=12.13.0'} dev: true - /pnpm/7.13.5: - resolution: {integrity: sha512-7+xyYPunBiAAJclpmUU2CTqe7uHipDjguUF2qmd9+r8hfZEVj0TnMTfblPnRF9aiVsmE4X3zRPlY3A5zk7r73w==} + /pnpm/7.13.6: + resolution: {integrity: sha512-KIGf//0cojjX3cUL63gvAk8d5t9tg+5h6AxLGyxQwoCPtpsjXafm/auIJyDUUh9RVmcPusJxdiONkgxPnbW1YA==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -10745,10 +10584,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss-value-parser/4.1.0: - resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} - dev: true - /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true @@ -10811,8 +10646,8 @@ packages: react-is: 17.0.2 dev: true - /pretty-format/29.2.0: - resolution: {integrity: sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw==} + /pretty-format/29.2.1: + resolution: {integrity: sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -11530,6 +11365,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -11902,7 +11745,7 @@ packages: figures: 3.2.0 find-up: 5.0.0 git-semver-tags: 4.1.1 - semver: 7.3.7 + semver: 7.3.8 stringify-package: 1.0.1 yargs: 16.2.0 dev: true @@ -12508,11 +12351,6 @@ packages: safe-buffer: 5.2.1 dev: true - /tunnel/0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - dev: true - /tweetnacl/0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true @@ -13007,7 +12845,7 @@ packages: terser: optional: true dependencies: - esbuild: 0.15.11 + esbuild: 0.15.12 postcss: 8.4.16 resolve: 1.22.1 rollup: 2.78.1 @@ -13015,7 +12853,7 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_orex2agllvbrjwlm6w3vfszwae: + /vitepress-plugin-mermaid/2.0.8_m5gk66we2y6xlan2yvhce6nu2a: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 @@ -13024,10 +12862,10 @@ packages: dependencies: mermaid: 9.1.7 vite-plugin-md: 0.20.4_ddevayggxncg4aofvrlbkut4ha - vitepress: 1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y + vitepress: 1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.11_edcjrozpkfaskrqytnhbwsc3ky: + /vitepress-plugin-search/1.0.4-alpha.11_eny7drxhzzrhshlyu255qt5dum: resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -13036,12 +12874,12 @@ packages: vue: '3' dependencies: vite: 3.1.8 - vitepress: 1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y + vitepress: 1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.40 dev: true - /vitepress/1.0.0-alpha.21_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-D/tkoDW16uUZ9pnWd28Kk1vX26zNiTml3m9oGbfx2pAfYg99PHd1GceZyEm4jZsJU0+n9S++1ctFxoQvsq376A==} + /vitepress/1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-IWqnAxMDNaiyl6Bz+/79l40Ho6xsjrqxRp/WZw0+5BXR0BTZbmHyhGtI3XrH6oSn8MisLPjCccikaj3mcmCoWg==} hasBin: true dependencies: '@docsearch/css': 3.2.1 @@ -13333,10 +13171,6 @@ packages: iconv-lite: 0.6.3 dev: true - /whatwg-fetch/3.6.2: - resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} - dev: true - /whatwg-mimetype/2.3.0: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} dev: true From fc24373667ce5fdf73d5199129db6fb8da3f4053 Mon Sep 17 00:00:00 2001 From: Caleb Usadi <calebusadi1@gmail.com> Date: Mon, 24 Oct 2022 23:41:34 -0400 Subject: [PATCH 0467/1038] Change fill attribute to style. --- packages/mermaid/src/diagrams/er/erRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 3e6384e6a6..a4d5c8bd1c 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -357,7 +357,7 @@ const drawEntities = function (svgNode, entities, graph) { const rectNode = groupNode .insert('rect', '#' + textId) .attr('class', 'er entityBox') - .attr('fill', conf.fill) + .style('fill', conf.fill) .attr('fill-opacity', '100%') .attr('stroke', conf.stroke) .attr('x', 0) From 6eb2ce2706d5eed18693517e1467fa31981bcc93 Mon Sep 17 00:00:00 2001 From: Marc Jansen <jansen@terrestris.de> Date: Tue, 25 Oct 2022 21:14:13 +0200 Subject: [PATCH 0468/1038] Ensure example code and rendered output are synced --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 6d5d26463d..90ae1ad4cd 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,6 @@ Class01 <|-- AveryLongClass : Cool Class09 --> C2 : Where am I? Class09 --* C3 Class09 --|> Class07 -note "I love this diagram!\nDo you love it?" Class07 : equals() Class07 : Object[] elementData Class01 : size() @@ -175,7 +174,6 @@ class Class10 { int id size() } -note for Class10 "Cool class\nI said it's very cool class!" ``` ### State diagram [<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkEFvgzAMhf8K8nEqpYSNthx22Xbcqcexg0sCiZQQlDhIFeK_L8A6TfXp6fOz9ewJGssFVOAJSbwr7ByadGR1n8T6evpO0vQ1uZDSekOrXGFsPqJPO6q-2-imH8f_0TeHXm50lfelsAMjnEHFY6xpMdRAUhhRQxUlFy0GTTXU_RytYeAx-AdXZB1ULWovdoCB7OXWN1CRC-Ju-r3uz6UtchGHJqDbsPygU57iysb2reoWHpyOWBINvsqypb3vFMlw3TfWZF5xiY7keC6zkpUnZIUojwW-FAVvrvn51LLnvOXHQ84Q5nn-AVtLcwk">live editor</a>] From 58d692e6f5e365707143a531a7ccfdc2c21afc16 Mon Sep 17 00:00:00 2001 From: Caleb Usadi <calebusadi1@gmail.com> Date: Wed, 26 Oct 2022 00:16:43 -0400 Subject: [PATCH 0469/1038] Convert attr to style --- .../mermaid/src/diagrams/er/erRenderer.js | 96 ++++++++----------- 1 file changed, 42 insertions(+), 54 deletions(-) diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index a4d5c8bd1c..582a63cea1 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -81,12 +81,10 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { .attr('id', `${attrPrefix}-type`) .attr('x', 0) .attr('y', 0) - .attr('dominant-baseline', 'middle') - .attr('text-anchor', 'left') - .attr( - 'style', - 'font-family: ' + getConfig().fontFamily + '; font-size: ' + attrFontSize + 'px' - ) + .style('dominant-baseline', 'middle') + .style('text-anchor', 'left') + .style('font-family', getConfig().fontFamily) + .style('font-size', attrFontSize + 'px') .text(attributeType); // Add a text node for the attribute name @@ -96,12 +94,10 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { .attr('id', `${attrPrefix}-name`) .attr('x', 0) .attr('y', 0) - .attr('dominant-baseline', 'middle') - .attr('text-anchor', 'left') - .attr( - 'style', - 'font-family: ' + getConfig().fontFamily + '; font-size: ' + attrFontSize + 'px' - ) + .style('dominant-baseline', 'middle') + .style('text-anchor', 'left') + .style('font-family', getConfig().fontFamily) + .style('font-size', attrFontSize + 'px') .text(item.attributeName); const attributeNode = {}; @@ -122,12 +118,10 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { .attr('id', `${attrPrefix}-key`) .attr('x', 0) .attr('y', 0) - .attr('dominant-baseline', 'middle') - .attr('text-anchor', 'left') - .attr( - 'style', - 'font-family: ' + getConfig().fontFamily + '; font-size: ' + attrFontSize + 'px' - ) + .style('dominant-baseline', 'middle') + .style('text-anchor', 'left') + .style('font-family', getConfig().fontFamily) + .style('font-size', attrFontSize + 'px') .text(item.attributeKeyType || ''); attributeNode.kn = keyTypeNode; @@ -143,12 +137,10 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { .attr('id', `${attrPrefix}-comment`) .attr('x', 0) .attr('y', 0) - .attr('dominant-baseline', 'middle') - .attr('text-anchor', 'left') - .attr( - 'style', - 'font-family: ' + getConfig().fontFamily + '; font-size: ' + attrFontSize + 'px' - ) + .style('dominant-baseline', 'middle') + .style('text-anchor', 'left') + .style('font-family', getConfig().fontFamily) + .style('font-size', attrFontSize + 'px') .text(item.attributeComment || ''); attributeNode.cn = commentNode; @@ -218,9 +210,9 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { const typeRect = groupNode .insert('rect', '#' + attributeNode.tn.node().id) .attr('class', `er ${attribStyle}`) - .attr('fill', conf.fill) - .attr('fill-opacity', '100%') - .attr('stroke', conf.stroke) + .style('fill', conf.fill) + .style('fill-opacity', '100%') + .style('stroke', conf.stroke) .attr('x', 0) .attr('y', heightOffset) .attr('width', maxTypeWidth + widthPadding * 2 + spareColumnWidth) @@ -238,9 +230,9 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { const nameRect = groupNode .insert('rect', '#' + attributeNode.nn.node().id) .attr('class', `er ${attribStyle}`) - .attr('fill', conf.fill) - .attr('fill-opacity', '100%') - .attr('stroke', conf.stroke) + .style('fill', conf.fill) + .style('fill-opacity', '100%') + .style('stroke', conf.stroke) .attr('x', nameXOffset) .attr('y', heightOffset) .attr('width', maxNameWidth + widthPadding * 2 + spareColumnWidth) @@ -260,9 +252,9 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { const keyTypeRect = groupNode .insert('rect', '#' + attributeNode.kn.node().id) .attr('class', `er ${attribStyle}`) - .attr('fill', conf.fill) - .attr('fill-opacity', '100%') - .attr('stroke', conf.stroke) + .style('fill', conf.fill) + .style('fill-opacity', '100%') + .style('stroke', conf.stroke) .attr('x', keyTypeAndCommentXOffset) .attr('y', heightOffset) .attr('width', maxKeyWidth + widthPadding * 2 + spareColumnWidth) @@ -283,9 +275,9 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { groupNode .insert('rect', '#' + attributeNode.cn.node().id) .attr('class', `er ${attribStyle}`) - .attr('fill', conf.fill) - .attr('fill-opacity', '100%') - .attr('stroke', conf.stroke) + .style('fill', conf.fill) + .style('fill-opacity', '100%') + .style('stroke', conf.stroke) .attr('x', keyTypeAndCommentXOffset) .attr('y', heightOffset) .attr('width', maxCommentWidth + widthPadding * 2 + spareColumnWidth) @@ -339,12 +331,10 @@ const drawEntities = function (svgNode, entities, graph) { .attr('id', textId) .attr('x', 0) .attr('y', 0) - .attr('dominant-baseline', 'middle') - .attr('text-anchor', 'middle') - .attr( - 'style', - 'font-family: ' + getConfig().fontFamily + '; font-size: ' + conf.fontSize + 'px' - ) + .style('dominant-baseline', 'middle') + .style('text-anchor', 'middle') + .style('font-family', getConfig().fontFamily) + .style('font-size', conf.fontSize + 'px') .text(entityName); const { width: entityWidth, height: entityHeight } = drawAttributes( @@ -358,8 +348,8 @@ const drawEntities = function (svgNode, entities, graph) { .insert('rect', '#' + textId) .attr('class', 'er entityBox') .style('fill', conf.fill) - .attr('fill-opacity', '100%') - .attr('stroke', conf.stroke) + .style('fill-opacity', '100%') + .style('stroke', conf.stroke) .attr('x', 0) .attr('y', 0) .attr('width', entityWidth) @@ -462,8 +452,8 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { .insert('path', '#' + insert) .attr('class', 'er relationshipLine') .attr('d', lineFunction(edge.points)) - .attr('stroke', conf.stroke) - .attr('fill', 'none'); + .style('stroke', conf.stroke) + .style('fill', 'none'); // ...and with dashes if necessary if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) { @@ -541,12 +531,10 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { .attr('id', labelId) .attr('x', labelPoint.x) .attr('y', labelPoint.y) - .attr('text-anchor', 'middle') - .attr('dominant-baseline', 'middle') - .attr( - 'style', - 'font-family: ' + getConfig().fontFamily + '; font-size: ' + conf.fontSize + 'px' - ) + .style('text-anchor', 'middle') + .style('dominant-baseline', 'middle') + .style('font-family', getConfig().fontFamily) + .style('font-size', conf.fontSize + 'px') .text(rel.roleA); // Figure out how big the opaque 'container' rectangle needs to be @@ -560,8 +548,8 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { .attr('y', labelPoint.y - labelBBox.height / 2) .attr('width', labelBBox.width) .attr('height', labelBBox.height) - .attr('fill', 'white') - .attr('fill-opacity', '85%'); + .style('fill', 'white') + .style('fill-opacity', '85%'); }; /** From a59f49c04f65ba283a7e1e0acfcae16d0723381e Mon Sep 17 00:00:00 2001 From: Caleb Usadi <calebusadi1@gmail.com> Date: Wed, 26 Oct 2022 00:17:20 -0400 Subject: [PATCH 0470/1038] Convert attr to classed --- .../mermaid/src/diagrams/er/erRenderer.js | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 582a63cea1..323bb4607c 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -77,7 +77,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { // Add a text node for the attribute type const typeNode = groupNode .append('text') - .attr('class', 'er entityLabel') + .classed('er entityLabel', true) .attr('id', `${attrPrefix}-type`) .attr('x', 0) .attr('y', 0) @@ -90,7 +90,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { // Add a text node for the attribute name const nameNode = groupNode .append('text') - .attr('class', 'er entityLabel') + .classed('er entityLabel', true) .attr('id', `${attrPrefix}-name`) .attr('x', 0) .attr('y', 0) @@ -114,7 +114,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { if (hasKeyType) { const keyTypeNode = groupNode .append('text') - .attr('class', 'er entityLabel') + .classed('er entityLabel', true) .attr('id', `${attrPrefix}-key`) .attr('x', 0) .attr('y', 0) @@ -133,7 +133,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { if (hasComment) { const commentNode = groupNode .append('text') - .attr('class', 'er entityLabel') + .classed('er entityLabel', true) .attr('id', `${attrPrefix}-comment`) .attr('x', 0) .attr('y', 0) @@ -209,7 +209,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { // Insert a rectangle for the type const typeRect = groupNode .insert('rect', '#' + attributeNode.tn.node().id) - .attr('class', `er ${attribStyle}`) + .classed(`er ${attribStyle}`, true) .style('fill', conf.fill) .style('fill-opacity', '100%') .style('stroke', conf.stroke) @@ -229,7 +229,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { // Insert a rectangle for the name const nameRect = groupNode .insert('rect', '#' + attributeNode.nn.node().id) - .attr('class', `er ${attribStyle}`) + .classed(`er ${attribStyle}`, true) .style('fill', conf.fill) .style('fill-opacity', '100%') .style('stroke', conf.stroke) @@ -251,7 +251,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { // Insert a rectangle for the key type const keyTypeRect = groupNode .insert('rect', '#' + attributeNode.kn.node().id) - .attr('class', `er ${attribStyle}`) + .classed(`er ${attribStyle}`, true) .style('fill', conf.fill) .style('fill-opacity', '100%') .style('stroke', conf.stroke) @@ -274,7 +274,7 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => { // Insert a rectangle for the comment groupNode .insert('rect', '#' + attributeNode.cn.node().id) - .attr('class', `er ${attribStyle}`) + .classed(`er ${attribStyle}`, 'true') .style('fill', conf.fill) .style('fill-opacity', '100%') .style('stroke', conf.stroke) @@ -327,7 +327,7 @@ const drawEntities = function (svgNode, entities, graph) { const textId = 'text-' + entityId; const textNode = groupNode .append('text') - .attr('class', 'er entityLabel') + .classed('er entityLabel', true) .attr('id', textId) .attr('x', 0) .attr('y', 0) @@ -346,7 +346,7 @@ const drawEntities = function (svgNode, entities, graph) { // Draw the rectangle - insert it before the text so that the text is not obscured const rectNode = groupNode .insert('rect', '#' + textId) - .attr('class', 'er entityBox') + .classed('er entityBox', true) .style('fill', conf.fill) .style('fill-opacity', '100%') .style('stroke', conf.stroke) @@ -450,7 +450,7 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { // Insert the line at the right place const svgPath = svg .insert('path', '#' + insert) - .attr('class', 'er relationshipLine') + .classed('er relationshipLine', true) .attr('d', lineFunction(edge.points)) .style('stroke', conf.stroke) .style('fill', 'none'); @@ -527,7 +527,7 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { const labelNode = svg .append('text') - .attr('class', 'er relationshipLabel') + .classed('er relationshipLabel', true) .attr('id', labelId) .attr('x', labelPoint.x) .attr('y', labelPoint.y) @@ -543,7 +543,7 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { // Insert the opaque rectangle before the text label svg .insert('rect', '#' + labelId) - .attr('class', 'er relationshipLabelBox') + .classed('er relationshipLabelBox', true) .attr('x', labelPoint.x - labelBBox.width / 2) .attr('y', labelPoint.y - labelBBox.height / 2) .attr('width', labelBBox.width) From 47e1f611d89882be8eb9e0c6d428fc6c4557f2ae Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Wed, 26 Oct 2022 16:24:06 -0300 Subject: [PATCH 0471/1038] fix: lint and spell errors --- .github/workflows/lint.yml | 2 +- cSpell.json | 7 +++++++ docs/config/setup/modules/config.md | 22 +++++++++++----------- docs/config/setup/modules/defaultConfig.md | 4 ++-- docs/config/setup/modules/mermaidAPI.md | 6 +++--- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 204350dd15..2d50e97bac 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -39,4 +39,4 @@ jobs: run: pnpm run lint - name: Verify Docs - run: cd .\packages\mermaid\ && pnpm run docs:verify + run: cd packages/mermaid && pnpm docs:verify diff --git a/cSpell.json b/cSpell.json index 2bf10c53a6..0b30ece3bd 100644 --- a/cSpell.json +++ b/cSpell.json @@ -17,6 +17,13 @@ "mermiad" ], "ignoreWords": [ + "Faber", + "Orlandoni", + "Klemm", + "Mindaugas", + "Laganeckas", + "Cuzon", + "Yash", "Adamiecki", "applitools", "Asciidoctor", diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 5f04b91edf..4300ab5fa9 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -14,7 +14,7 @@ #### Defined in -[config.ts:7](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L7) +[config.ts:7](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L7) ## Functions @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L191) +[config.ts:191](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L191) --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:136](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L136) +[config.ts:136](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L136) --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:96](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L96) +[config.ts:96](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L96) --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:223](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L223) +[config.ts:223](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L223) --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L151) +[config.ts:151](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L151) --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L75) +[config.ts:75](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L75) --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:113](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L113) +[config.ts:113](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L113) --- @@ -232,7 +232,7 @@ The new siteConfig #### Defined in -[config.ts:61](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L61) +[config.ts:61](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L61) --- @@ -253,7 +253,7 @@ The new siteConfig #### Defined in -[config.ts:14](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L14) +[config.ts:14](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L14) --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:79](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/config.ts#L79) +[config.ts:79](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index 97ce43c583..e4cafec004 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -14,7 +14,7 @@ #### Defined in -[defaultConfig.ts:1884](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/defaultConfig.ts#L1884) +[defaultConfig.ts:1869](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/defaultConfig.ts#L1869) --- @@ -53,4 +53,4 @@ A description of each option follows below. #### Defined in -[defaultConfig.ts:48](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/defaultConfig.ts#L48) +[defaultConfig.ts:33](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 046bec26ec..853bedb3fc 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -20,7 +20,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/mermaidAPI.ts#L483) +[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/mermaidAPI.ts#L483) ## Functions @@ -40,7 +40,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:70](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/mermaidAPI.ts#L70) +[mermaidAPI.ts:70](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/mermaidAPI.ts#L70) --- @@ -60,4 +60,4 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:44](https://github.com/emersonbottero/mermaid/blob/563aff2d/packages/mermaid/src/mermaidAPI.ts#L44) +[mermaidAPI.ts:44](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/mermaidAPI.ts#L44) From 289ac52900dd7e28895029eb3397b436571cce9e Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Wed, 26 Oct 2022 17:51:54 -0300 Subject: [PATCH 0472/1038] fix : CQ --- docs/config/setup/modules/config.md | 22 +++++++++++----------- docs/config/setup/modules/defaultConfig.md | 4 ++-- docs/config/setup/modules/mermaidAPI.md | 6 +++--- packages/mermaid/src/docs.mts | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 4300ab5fa9..e5399dc0e1 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -14,7 +14,7 @@ #### Defined in -[config.ts:7](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L7) +[config.ts:7](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L7) ## Functions @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L191) +[config.ts:191](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L191) --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:136](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L136) +[config.ts:136](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L136) --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:96](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L96) +[config.ts:96](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L96) --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:223](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L223) +[config.ts:223](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L223) --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L151) +[config.ts:151](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L151) --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L75) +[config.ts:75](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L75) --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:113](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L113) +[config.ts:113](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L113) --- @@ -232,7 +232,7 @@ The new siteConfig #### Defined in -[config.ts:61](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L61) +[config.ts:61](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L61) --- @@ -253,7 +253,7 @@ The new siteConfig #### Defined in -[config.ts:14](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L14) +[config.ts:14](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L14) --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:79](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/config.ts#L79) +[config.ts:79](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index e4cafec004..fec6a390cc 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -14,7 +14,7 @@ #### Defined in -[defaultConfig.ts:1869](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/defaultConfig.ts#L1869) +[defaultConfig.ts:1869](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/defaultConfig.ts#L1869) --- @@ -53,4 +53,4 @@ A description of each option follows below. #### Defined in -[defaultConfig.ts:33](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/defaultConfig.ts#L33) +[defaultConfig.ts:33](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 853bedb3fc..c9bd788050 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -20,7 +20,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:483](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/mermaidAPI.ts#L483) +[mermaidAPI.ts:485](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/mermaidAPI.ts#L485) ## Functions @@ -40,7 +40,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:70](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/mermaidAPI.ts#L70) +[mermaidAPI.ts:72](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/mermaidAPI.ts#L72) --- @@ -60,4 +60,4 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:44](https://github.com/emersonbottero/mermaid/blob/b62873a1/packages/mermaid/src/mermaidAPI.ts#L44) +[mermaidAPI.ts:46](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/mermaidAPI.ts#L46) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index bff380c9d4..d633b18e51 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -159,7 +159,7 @@ const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') console.log(`found ${matches.length} of ${type}`); const formatted = matches.map((element) => - element.replace(`::: ${type}`, `> **${text}** `).replace(':::', '>').replace('\n', '\n> ') + element.replace(`::: ${type}`, `> **${text}** `).replace(':::', '>').split('\n').join('\n> ') ); let n = 0; for (const match of matches) { From caf95dec86bf1434fe70d3985bf95e59f4ad5bed Mon Sep 17 00:00:00 2001 From: Richard Gibson <richard.gibson@gmail.com> Date: Wed, 26 Oct 2022 16:57:19 -0400 Subject: [PATCH 0473/1038] fix(git): Support quoted branch names Fixes #3725 --- docs/gitgraph.md | 2 +- .../src/diagrams/git/gitGraphParserV2.spec.js | 25 +++++++++++ .../src/diagrams/git/parser/gitGraph.jison | 43 +++++++++++-------- packages/mermaid/src/docs/gitgraph.md | 2 +- 4 files changed, 51 insertions(+), 21 deletions(-) diff --git a/docs/gitgraph.md b/docs/gitgraph.md index 8efbf9fa5c..878d1b3c13 100644 --- a/docs/gitgraph.md +++ b/docs/gitgraph.md @@ -165,7 +165,7 @@ In this example, we have given custom tags to the commits. Also, see how we have ### Create a new branch -In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. Usage example: `branch develop` +In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage example: `branch develop` When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. diff --git a/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js b/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js index 7aab8fc7ce..cad44ea1fd 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js +++ b/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js @@ -334,6 +334,31 @@ describe('when parsing a gitGraph', function () { expect(Object.keys(parser.yy.getBranches()).length).toBe(2); }); + it('should allow quoted branch names', function () { + const str = `gitGraph: + commit + branch "branch" + checkout "branch" + commit + checkout main + merge "branch" + `; + + parser.parse(str); + const commits = parser.yy.getCommits(); + expect(Object.keys(commits).length).toBe(3); + expect(parser.yy.getCurrentBranch()).toBe('main'); + expect(parser.yy.getDirection()).toBe('LR'); + expect(Object.keys(parser.yy.getBranches()).length).toBe(2); + const commit1 = Object.keys(commits)[0]; + const commit2 = Object.keys(commits)[1]; + const commit3 = Object.keys(commits)[2]; + expect(commits[commit1].branch).toBe('main'); + expect(commits[commit2].branch).toBe('branch'); + expect(commits[commit3].branch).toBe('main'); + expect(parser.yy.getBranchesAsObjArray()).toStrictEqual([{ name: 'main' }, { name: 'branch' }]); + }); + it('should allow _-./ characters in branch names', function () { const str = `gitGraph: commit diff --git a/packages/mermaid/src/diagrams/git/parser/gitGraph.jison b/packages/mermaid/src/diagrams/git/parser/gitGraph.jison index dbe220e151..1c87f3bf35 100644 --- a/packages/mermaid/src/diagrams/git/parser/gitGraph.jison +++ b/packages/mermaid/src/diagrams/git/parser/gitGraph.jison @@ -109,12 +109,12 @@ statement | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } | section {yy.addSection($1.substr(8));$$=$1.substr(8);} | branchStatement - | CHECKOUT ID {yy.checkout($2)} + | CHECKOUT ref {yy.checkout($2)} // | RESET reset_arg {yy.reset($2)} ; branchStatement - : BRANCH ID {yy.branch($2)} - | BRANCH ID ORDER NUM {yy.branch($2, $4)} + : BRANCH ref {yy.branch($2)} + | BRANCH ref ORDER NUM {yy.branch($2, $4)} ; cherryPickStatement @@ -126,22 +126,22 @@ cherryPickStatement ; mergeStatement - : MERGE ID {yy.merge($2,'','','')} - | MERGE ID COMMIT_ID STR {yy.merge($2, $4,'','')} - | MERGE ID COMMIT_TYPE commitType {yy.merge($2,'', $4,'')} - | MERGE ID COMMIT_TAG STR {yy.merge($2, '','',$4)} - | MERGE ID COMMIT_TAG STR COMMIT_ID STR {yy.merge($2, $6,'', $4)} - | MERGE ID COMMIT_TAG STR COMMIT_TYPE commitType {yy.merge($2, '',$6, $4)} - | MERGE ID COMMIT_TYPE commitType COMMIT_TAG STR {yy.merge($2, '',$4, $6)} - | MERGE ID COMMIT_ID STR COMMIT_TYPE commitType {yy.merge($2, $4, $6, '')} - | MERGE ID COMMIT_ID STR COMMIT_TAG STR {yy.merge($2, $4, '', $6)} - | MERGE ID COMMIT_TYPE commitType COMMIT_ID STR {yy.merge($2, $6,$4, '')} - | MERGE ID COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.merge($2, $4, $6, $8)} - | MERGE ID COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_ID STR {yy.merge($2, $8, $4, $6)} - | MERGE ID COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.merge($2, $4, $8, $6)} - | MERGE ID COMMIT_TYPE commitType COMMIT_ID STR COMMIT_TAG STR {yy.merge($2, $6, $4, $8)} - | MERGE ID COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.merge($2, $8, $6, $4)} - | MERGE ID COMMIT_TAG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.merge($2, $6, $8, $4)} + : MERGE ref {yy.merge($2,'','','')} + | MERGE ref COMMIT_ID STR {yy.merge($2, $4,'','')} + | MERGE ref COMMIT_TYPE commitType {yy.merge($2,'', $4,'')} + | MERGE ref COMMIT_TAG STR {yy.merge($2, '','',$4)} + | MERGE ref COMMIT_TAG STR COMMIT_ID STR {yy.merge($2, $6,'', $4)} + | MERGE ref COMMIT_TAG STR COMMIT_TYPE commitType {yy.merge($2, '',$6, $4)} + | MERGE ref COMMIT_TYPE commitType COMMIT_TAG STR {yy.merge($2, '',$4, $6)} + | MERGE ref COMMIT_ID STR COMMIT_TYPE commitType {yy.merge($2, $4, $6, '')} + | MERGE ref COMMIT_ID STR COMMIT_TAG STR {yy.merge($2, $4, '', $6)} + | MERGE ref COMMIT_TYPE commitType COMMIT_ID STR {yy.merge($2, $6,$4, '')} + | MERGE ref COMMIT_ID STR COMMIT_TYPE commitType COMMIT_TAG STR {yy.merge($2, $4, $6, $8)} + | MERGE ref COMMIT_TYPE commitType COMMIT_TAG STR COMMIT_ID STR {yy.merge($2, $8, $4, $6)} + | MERGE ref COMMIT_ID STR COMMIT_TAG STR COMMIT_TYPE commitType {yy.merge($2, $4, $8, $6)} + | MERGE ref COMMIT_TYPE commitType COMMIT_ID STR COMMIT_TAG STR {yy.merge($2, $6, $4, $8)} + | MERGE ref COMMIT_TAG STR COMMIT_TYPE commitType COMMIT_ID STR {yy.merge($2, $8, $6, $4)} + | MERGE ref COMMIT_TAG STR COMMIT_ID STR COMMIT_TYPE commitType {yy.merge($2, $6, $8, $4)} ; commitStatement @@ -261,6 +261,11 @@ closeDirective : close_directive { yy.parseDirective('}%%', 'close_directive', 'gitGraph'); } ; +ref + : ID + | STR + ; + eol : NL | ';' diff --git a/packages/mermaid/src/docs/gitgraph.md b/packages/mermaid/src/docs/gitgraph.md index f82b88ca1c..a7033adb8b 100644 --- a/packages/mermaid/src/docs/gitgraph.md +++ b/packages/mermaid/src/docs/gitgraph.md @@ -114,7 +114,7 @@ In this example, we have given custom tags to the commits. Also, see how we have ### Create a new branch -In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. Usage example: `branch develop` +In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage example: `branch develop` When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. From 5d048ce21ee055ab095a7e8a57caf9b9bd33401d Mon Sep 17 00:00:00 2001 From: Richard Gibson <richard.gibson@gmail.com> Date: Wed, 26 Oct 2022 23:17:15 -0400 Subject: [PATCH 0474/1038] chore: Update bug report template Add common pattern for reproduction with https://mermaid.live/ --- .github/ISSUE_TEMPLATE/bug_report.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f8e453bd3a..52efaaaa51 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -12,30 +12,32 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error +1. Go to the [live editor](https://mermaid.live). +2. Enter the below code sample. -**Expected behavior** -A clear and concise description of what you expected to happen. +**Code Sample** +Live version: A link to https://mermaid.live/edit#… +``` +graph TD; +… +``` **Screenshots** If applicable, add screenshots to help explain your problem. -**Code Sample** -If applicable, add the code sample or a link to the [live editor](https://mermaid.live). +**Expected behavior** +A clear and concise description of what you expected to happen. **Desktop (please complete the following information):** - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] + - Browser: [e.g. chrome, safari] + - Version: [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] + - Browser: [e.g. stock browser, safari] + - Version: [e.g. 22] **Additional context** Add any other context about the problem here. From 3166f689f969947c4bc0f822f273b8b8a0a10687 Mon Sep 17 00:00:00 2001 From: DarkNami <DarkNami@users.noreply.github.com> Date: Thu, 27 Oct 2022 16:43:44 +0800 Subject: [PATCH 0475/1038] feat(gantt): Add option 'tickInterval' for custom tick interval See issue #1598 --- cypress/integration/rendering/gantt.spec.js | 126 ++++++++++++++++++ docs/gantt.md | 12 ++ packages/mermaid/src/config.type.ts | 1 + packages/mermaid/src/defaultConfig.ts | 13 ++ .../mermaid/src/diagrams/gantt/ganttDb.js | 12 ++ .../src/diagrams/gantt/ganttRenderer.js | 54 ++++++++ .../src/diagrams/gantt/parser/gantt.jison | 2 + packages/mermaid/src/docs/gantt.md | 16 +++ 8 files changed, 236 insertions(+) diff --git a/cypress/integration/rendering/gantt.spec.js b/cypress/integration/rendering/gantt.spec.js index 16a70ece0f..b75e682c67 100644 --- a/cypress/integration/rendering/gantt.spec.js +++ b/cypress/integration/rendering/gantt.spec.js @@ -341,4 +341,130 @@ describe('Gantt diagram', () => { expect(descriptionEl.textContent).to.equal(expectedAccDescription); }); }); + + it('should render a gantt diagram with tick is 15 minutes', () => { + imgSnapshotTest( + ` + gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + axisFormat %H:%M + tickInterval 15minute + excludes weekends + + section Section + A task : a1, 2022-10-03, 6h + Another task : after a1, 6h + section Another + Task in sec : 2022-10-03, 3h + another task : 3h + `, + {} + ); + }); + + it('should render a gantt diagram with tick is 6 hours', () => { + imgSnapshotTest( + ` + gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + axisFormat %d %H:%M + tickInterval 6hour + excludes weekends + + section Section + A task : a1, 2022-10-03, 1d + Another task : after a1, 2d + section Another + Task in sec : 2022-10-04, 2d + another task : 2d + `, + {} + ); + }); + + it('should render a gantt diagram with tick is 1 day', () => { + imgSnapshotTest( + ` + gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + axisFormat %m-%d + tickInterval 1day + excludes weekends + + section Section + A task : a1, 2022-10-01, 30d + Another task : after a1, 20d + section Another + Task in sec : 2022-10-20, 12d + another task : 24d + `, + {} + ); + }); + + it('should render a gantt diagram with tick is 1 week', () => { + imgSnapshotTest( + ` + gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + axisFormat %m-%d + tickInterval 1week + excludes weekends + + section Section + A task : a1, 2022-10-01, 30d + Another task : after a1, 20d + section Another + Task in sec : 2022-10-20, 12d + another task : 24d + `, + {} + ); + }); + + it('should render a gantt diagram with tick is 1 month', () => { + imgSnapshotTest( + ` + gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + axisFormat %m-%d + tickInterval 1month + excludes weekends + + section Section + A task : a1, 2022-10-01, 30d + Another task : after a1, 20d + section Another + Task in sec : 2022-10-20, 12d + another task : 24d + `, + {} + ); + }); + + it('should render a gantt diagram with tick is 1 day and topAxis is true', () => { + imgSnapshotTest( + ` + gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + axisFormat %m-%d + tickInterval 1day + excludes weekends + + section Section + A task : a1, 2022-10-01, 30d + Another task : after a1, 20d + section Another + Task in sec : 2022-10-20, 12d + another task : 24d + `, + { gantt: { topAxis: true } } + ); + }); }); diff --git a/docs/gantt.md b/docs/gantt.md index 9d4fe8a096..c452c43282 100644 --- a/docs/gantt.md +++ b/docs/gantt.md @@ -230,6 +230,18 @@ The following formatting strings are supported: More info in: https://github.com/mbostock/d3/wiki/Time-Formatting +### Axis ticks + +The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`. + + tickInterval 1day + +The pattern is: + + /^([1-9][0-9]*)(minute|hour|day|week|month)$/ + +More info in: <https://github.com/d3/d3-time#interval_every> + ## Comments Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts index 2343bdd34f..540fc67608 100644 --- a/packages/mermaid/src/config.type.ts +++ b/packages/mermaid/src/config.type.ts @@ -297,6 +297,7 @@ export interface GanttDiagramConfig extends BaseDiagramConfig { sectionFontSize?: string | number; numberSectionStyles?: number; axisFormat?: string; + tickInterval?: string; topAxis?: boolean; } diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 570dc2da3a..fdb5200915 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -661,6 +661,19 @@ const config: Partial<MermaidConfig> = { */ axisFormat: '%Y-%m-%d', + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | ------------| ------ | -------- | ------- | + * | tickInterval | axis ticks | string | Optional | string | + * + * **Notes:** + * + * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/ + * + * Default value: undefined + */ + tickInterval: undefined, + /** * | Parameter | Description | Type | Required | Values | * | ----------- | ----------- | ------- | -------- | ----------- | diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index 99c93ea043..a0f18c3b83 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -17,6 +17,7 @@ import { let dateFormat = ''; let axisFormat = ''; +let tickInterval = undefined; let todayMarker = ''; let includes = []; let excludes = []; @@ -47,6 +48,7 @@ export const clear = function () { rawTasks = []; dateFormat = ''; axisFormat = ''; + tickInterval = undefined; todayMarker = ''; includes = []; excludes = []; @@ -65,6 +67,14 @@ export const getAxisFormat = function () { return axisFormat; }; +export const setTickInterval = function (txt) { + tickInterval = txt; +}; + +export const getTickInterval = function () { + return tickInterval; +}; + export const setTodayMarker = function (txt) { todayMarker = txt; }; @@ -647,6 +657,8 @@ export default { topAxisEnabled, setAxisFormat, getAxisFormat, + setTickInterval, + getTickInterval, setTodayMarker, getTodayMarker, setAccTitle, diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index c9f6836a51..9501dd024b 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -10,6 +10,11 @@ import { axisBottom, axisTop, timeFormat, + timeMinute, + timeHour, + timeDay, + timeWeek, + timeMonth, } from 'd3'; import common from '../common/common'; import { getConfig } from '../../config'; @@ -495,6 +500,33 @@ export const draw = function (text, id, version, diagObj) { .tickSize(-h + theTopPad + conf.gridLineStartPadding) .tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || '%Y-%m-%d')); + const reTickInterval = /^([1-9][0-9]*)(minute|hour|day|week|month)$/; + const resultTickInterval = reTickInterval.exec( + diagObj.db.getTickInterval() || conf.tickInterval + ); + + if (resultTickInterval !== null) { + const every = resultTickInterval[1]; + const interval = resultTickInterval[2]; + switch (interval) { + case 'minute': + bottomXAxis.ticks(timeMinute.every(every)); + break; + case 'hour': + bottomXAxis.ticks(timeHour.every(every)); + break; + case 'day': + bottomXAxis.ticks(timeDay.every(every)); + break; + case 'week': + bottomXAxis.ticks(timeWeek.every(every)); + break; + case 'month': + bottomXAxis.ticks(timeMonth.every(every)); + break; + } + } + svg .append('g') .attr('class', 'grid') @@ -512,6 +544,28 @@ export const draw = function (text, id, version, diagObj) { .tickSize(-h + theTopPad + conf.gridLineStartPadding) .tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || '%Y-%m-%d')); + if (resultTickInterval !== null) { + const every = resultTickInterval[1]; + const interval = resultTickInterval[2]; + switch (interval) { + case 'minute': + topXAxis.ticks(timeMinute.every(every)); + break; + case 'hour': + topXAxis.ticks(timeHour.every(every)); + break; + case 'day': + topXAxis.ticks(timeDay.every(every)); + break; + case 'week': + topXAxis.ticks(timeWeek.every(every)); + break; + case 'month': + topXAxis.ticks(timeMonth.every(every)); + break; + } + } + svg .append('g') .attr('class', 'grid') diff --git a/packages/mermaid/src/diagrams/gantt/parser/gantt.jison b/packages/mermaid/src/diagrams/gantt/parser/gantt.jison index f256564531..2223aa3789 100644 --- a/packages/mermaid/src/diagrams/gantt/parser/gantt.jison +++ b/packages/mermaid/src/diagrams/gantt/parser/gantt.jison @@ -82,6 +82,7 @@ that id. "inclusiveEndDates" return 'inclusiveEndDates'; "topAxis" return 'topAxis'; "axisFormat"\s[^#\n;]+ return 'axisFormat'; +"tickInterval"\s[^#\n;]+ return 'tickInterval'; "includes"\s[^#\n;]+ return 'includes'; "excludes"\s[^#\n;]+ return 'excludes'; "todayMarker"\s[^\n;]+ return 'todayMarker'; @@ -125,6 +126,7 @@ statement | inclusiveEndDates {yy.enableInclusiveEndDates();$$=$1.substr(18);} | topAxis {yy.TopAxis();$$=$1.substr(8);} | axisFormat {yy.setAxisFormat($1.substr(11));$$=$1.substr(11);} + | tickInterval {yy.setTickInterval($1.substr(13));$$=$1.substr(13);} | excludes {yy.setExcludes($1.substr(9));$$=$1.substr(9);} | includes {yy.setIncludes($1.substr(9));$$=$1.substr(9);} | todayMarker {yy.setTodayMarker($1.substr(12));$$=$1.substr(12);} diff --git a/packages/mermaid/src/docs/gantt.md b/packages/mermaid/src/docs/gantt.md index ad6573db66..d1fbe28bd6 100644 --- a/packages/mermaid/src/docs/gantt.md +++ b/packages/mermaid/src/docs/gantt.md @@ -174,6 +174,22 @@ The following formatting strings are supported: More info in: https://github.com/mbostock/d3/wiki/Time-Formatting +### Axis ticks + +The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`. + +``` +tickInterval 1day +``` + +The pattern is: + +``` +/^([1-9][0-9]*)(minute|hour|day|week|month)$/ +``` + +More info in: [https://github.com/d3/d3-time#interval_every](https://github.com/d3/d3-time#interval_every) + ## Comments Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax From 81924f72c8b2ee4dd2079d0d3d74f46830bc352a Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 27 Oct 2022 16:43:09 +0100 Subject: [PATCH 0476/1038] Revert "Merge branch 'release_9.2.0_buggfixes'" This reverts commit 1a0309fb8758518b9f99dbdc406094db85e3885a, reversing changes made to 56a8068a7f0cc9784f875a6d385bf9414eeab98b. This is because the PR https://github.com/mermaid-js/mermaid/pull/3702 worked fine on the `develop` and `release_9.2.0_buggfixes` branches, but had a bunch of git merge conflicts on the `release/9.2.0` branch. --- cypress/platform/knsv2.html | 2 +- packages/mermaid/src/mermaid.spec.ts | 23 +--------------- packages/mermaid/src/mermaid.ts | 41 ++++++---------------------- 3 files changed, 11 insertions(+), 55 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 968d04f72c..de9780185d 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -72,7 +72,7 @@ Student "1" --o "1" IdCard : carries Student "1" --o "1" Bike : rides </pre> - <pre id="diagram" class="mermaid"> + <pre id="diagram" class="mermaid2"> mindmap root child1((Circle)) diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index e3bc69448a..8cf180ae79 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -48,32 +48,11 @@ describe('when using mermaid and ', function () { const node = document.createElement('div'); node.appendChild(document.createTextNode('graph TD;\na;')); - await mermaid.initThrowsErrors(undefined, node); + mermaid.initThrowsErrors(undefined, node); // mermaidAPI.render function has been mocked, since it doesn't yet work // in Node.JS (only works in browser) expect(mermaidAPI.render).toHaveBeenCalled(); }); - it('should throw error (but still render) if lazyLoadedDiagram fails', async () => { - const node = document.createElement('div'); - node.appendChild(document.createTextNode('graph TD;\na;')); - - mermaidAPI.setConfig({ - lazyLoadedDiagrams: ['this-file-does-not-exist.mjs'], - }); - await expect(mermaid.initThrowsErrors(undefined, node)).rejects.toThrowError( - // this error message is probably different on every platform - // this one is just for vite-note (node/jest/browser may be different) - 'Failed to load this-file-does-not-exist.mjs' - ); - - // should still render, even if lazyLoadedDiagrams fails - expect(mermaidAPI.render).toHaveBeenCalled(); - }); - - afterEach(() => { - // we modify mermaid config in some tests, so we need to make sure to reset them - mermaidAPI.reset(); - }); }); describe('checking validity of input ', function () { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 5867dc3b23..b1700253b7 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -47,7 +47,13 @@ const init = async function ( callback?: Function ) { try { - await initThrowsErrors(config, nodes, callback); + const conf = mermaidAPI.getConfig(); + if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { + await registerLazyLoadedDiagrams(conf); + await initThrowsErrorsAsync(config, nodes, callback); + } else { + initThrowsErrors(config, nodes, callback); + } } catch (e) { log.warn('Syntax Error rendering'); if (isDetailedError(e)) { @@ -84,19 +90,7 @@ const handleError = (error: unknown, errors: DetailedError[], parseError?: Funct } } }; -/** - * Equivalent to {@link init()}, except an error will be thrown on error. - * - * @param config - **Deprecated** Mermaid sequenceConfig. - * @param nodes - One of: - * - A DOM Node - * - An array of DOM nodes (as would come from a jQuery selector) - * - A W3C selector, a la `.mermaid` (default) - * @param callback - Function that is called with the id of each generated mermaid diagram. - * - * @returns Resolves on success, otherwise the {@link Promise} will be rejected with an Error. - */ -const initThrowsErrors = async function ( +const initThrowsErrors = function ( config?: MermaidConfig, // eslint-disable-next-line no-undef nodes?: string | HTMLElement | NodeListOf<HTMLElement>, @@ -110,24 +104,6 @@ const initThrowsErrors = async function ( mermaid.sequenceConfig = config; } - const errors = []; - - if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { - // Load all lazy loaded diagrams in parallel - const results = await Promise.allSettled( - conf.lazyLoadedDiagrams.map(async (diagram: string) => { - const { id, detector, loadDiagram } = await import(diagram); - addDetector(id, detector, loadDiagram); - }) - ); - for (const result of results) { - if (result.status == 'rejected') { - log.warn(`Failed to lazyLoadedDiagram due to `, result.reason); - errors.push(result.reason); - } - } - } - // if last argument is a function this is the callback function log.debug(`${!callback ? 'No ' : ''}Callback function found`); let nodesToProcess: ArrayLike<HTMLElement>; @@ -153,6 +129,7 @@ const initThrowsErrors = async function ( const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); let txt: string; + const errors: DetailedError[] = []; // element is the current div with mermaid class for (const element of Array.from(nodesToProcess)) { From 327fcbf902581e7e6d519803ba62f3658166dc9d Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 27 Oct 2022 16:50:57 +0100 Subject: [PATCH 0477/1038] fix: lazy load diagrams in initThrowsErrorsAsync Previously, calling initThrowsErrorsAsync would not load any of the lazyLoadedDiagrams entries. Adaptated from reverted commit 4601c90904fb57f54ed91e31ea235b24de5add45 --- packages/mermaid/src/mermaid.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index b1700253b7..c1b164b675 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -49,7 +49,6 @@ const init = async function ( try { const conf = mermaidAPI.getConfig(); if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { - await registerLazyLoadedDiagrams(conf); await initThrowsErrorsAsync(config, nodes, callback); } else { initThrowsErrors(config, nodes, callback); @@ -229,6 +228,9 @@ const initThrowsErrorsAsync = async function ( callback?: Function ) { const conf = mermaidAPI.getConfig(); + + await registerLazyLoadedDiagrams(conf); + if (config) { // This is a legacy way of setting config. It is not documented and should be removed in the future. // @ts-ignore: TODO Fix ts errors From 13110c4ed9c431a7dadd82c6179796ee8071eba7 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 20 Oct 2022 10:53:08 +0100 Subject: [PATCH 0478/1038] docs(mermaid): document initThrowsErrorsAsync Add some basic tsdoc for initThrowsErrorsAsync. --- packages/mermaid/src/mermaid.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index c1b164b675..a49e4b7003 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -217,9 +217,20 @@ const loadExternalDiagrams = async (conf: MermaidConfig) => { }; /** - * @deprecated This is an internal function and should not be used. Will be removed in v10. + * Equivalent to {@link init()}, except an error will be thrown on error. + * + * @alpha + * @deprecated This is an internal function and will very likely be modified in v10, or earlier. + * We recommend staying with {@link initThrowsErrors} if you don't need `lazyLoadedDiagrams`. + * + * @param config - **Deprecated** Mermaid sequenceConfig. + * @param nodes - One of: + * - A DOM Node + * - An array of DOM nodes (as would come from a jQuery selector) + * - A W3C selector, a la `.mermaid` (default) + * @param callback - Function that is called with the id of each generated mermaid diagram. + * @returns Resolves on success, otherwise the {@link Promise} will be rejected with an Error. */ - const initThrowsErrorsAsync = async function ( config?: MermaidConfig, // eslint-disable-next-line no-undef From e62dd255bc27d9a3e2e051698742437769cde95e Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 27 Oct 2022 17:18:41 +0100 Subject: [PATCH 0479/1038] feat: expose initThrowsErrorsAsync publicly Expose the function `initThrowsErrorsAsync()` publicly as `mermaid.initThrowsErrorsAsync()`. It has the TSDoc `@alpha` and `@deprecated` tags, so people should be warned that it might be modified in Mermaid v10 or earlier. Needed for `mermaid-cli` to handle `lazyLoadedDiagrams`. --- packages/mermaid/src/mermaid.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index a49e4b7003..98111886e3 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -513,6 +513,7 @@ const mermaid: { renderAsync: typeof renderAsync; init: typeof init; initThrowsErrors: typeof initThrowsErrors; + initThrowsErrorsAsync: typeof initThrowsErrorsAsync; initialize: typeof initialize; initializeAsync: typeof initializeAsync; contentLoaded: typeof contentLoaded; @@ -527,6 +528,7 @@ const mermaid: { renderAsync, init, initThrowsErrors, + initThrowsErrorsAsync, initialize, initializeAsync, parseError: undefined, From 48b1f489fc022438672090c75d13af067605a186 Mon Sep 17 00:00:00 2001 From: Alois Klink <alois@aloisklink.com> Date: Thu, 27 Oct 2022 17:30:11 +0100 Subject: [PATCH 0480/1038] fix(mermaid): error if lazyLoadedDiagrams fails Throws and logs a warning if lazyLoadedDiagrams fails to load properly. Rendering is still performed, even on a lazyLoadedDiagrams failure. --- packages/mermaid/src/__mocks__/mermaidAPI.ts | 1 + packages/mermaid/src/mermaid.spec.ts | 23 +++++++++++++++++++ packages/mermaid/src/mermaid.ts | 24 +++++++++++++------- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 08c5b7eea2..6eccaac488 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -25,6 +25,7 @@ function parse(text: string, parseError?: Function): boolean { // original version cannot be modified since it was frozen with `Object.freeze()` export const mermaidAPI = { render: vi.fn(), + renderAsync: vi.fn(), parse, parseDirective: vi.fn(), initialize: vi.fn(), diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index 8cf180ae79..534b3e9640 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -54,6 +54,29 @@ describe('when using mermaid and ', function () { expect(mermaidAPI.render).toHaveBeenCalled(); }); }); + describe('when using #initThrowsErrorsAsync', function () { + it('should throw error (but still render) if lazyLoadedDiagram fails', async () => { + const node = document.createElement('div'); + node.appendChild(document.createTextNode('graph TD;\na;')); + + mermaidAPI.setConfig({ + lazyLoadedDiagrams: ['this-file-does-not-exist.mjs'], + }); + await expect(mermaid.initThrowsErrorsAsync(undefined, node)).rejects.toThrowError( + // this error message is probably different on every platform + // this one is just for vite-note (node/jest/browser may be different) + 'Failed to load this-file-does-not-exist.mjs' + ); + + // should still render, even if lazyLoadedDiagrams fails + expect(mermaidAPI.renderAsync).toHaveBeenCalled(); + }); + + afterEach(() => { + // we modify mermaid config in some tests, so we need to make sure to reset them + mermaidAPI.reset(); + }); + }); describe('checking validity of input ', function () { it('should throw for an invalid definition', function () { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 98111886e3..2a11088e68 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -177,10 +177,12 @@ const initThrowsErrors = function ( } }; -let lazyLoadingPromise: Promise<unknown> | undefined = undefined; +let lazyLoadingPromise: Promise<PromiseSettledResult<void>[]> | undefined = undefined; /** - * @param conf - * @deprecated This is an internal function and should not be used. Will be removed in v10. + * This is an internal function and should not be made public, as it will likely change. + * @internal + * @param conf - Mermaid config. + * @returns An array of {@link PromiseSettledResult}, showing the status of imports. */ const registerLazyLoadedDiagrams = async (conf: MermaidConfig) => { // Only lazy load once @@ -194,7 +196,7 @@ const registerLazyLoadedDiagrams = async (conf: MermaidConfig) => { }) ); } - await lazyLoadingPromise; + return await lazyLoadingPromise; }; let loadingPromise: Promise<unknown> | undefined = undefined; @@ -229,7 +231,7 @@ const loadExternalDiagrams = async (conf: MermaidConfig) => { * - An array of DOM nodes (as would come from a jQuery selector) * - A W3C selector, a la `.mermaid` (default) * @param callback - Function that is called with the id of each generated mermaid diagram. - * @returns Resolves on success, otherwise the {@link Promise} will be rejected with an Error. + * @returns Resolves on success, otherwise the {@link Promise} will be rejected. */ const initThrowsErrorsAsync = async function ( config?: MermaidConfig, @@ -240,7 +242,12 @@ const initThrowsErrorsAsync = async function ( ) { const conf = mermaidAPI.getConfig(); - await registerLazyLoadedDiagrams(conf); + const registerLazyLoadedDiagramsErrors: Error[] = []; + for (const registerResult of await registerLazyLoadedDiagrams(conf)) { + if (registerResult.status == 'rejected') { + registerLazyLoadedDiagramsErrors.push(registerResult.reason); + } + } if (config) { // This is a legacy way of setting config. It is not documented and should be removed in the future. @@ -316,9 +323,10 @@ const initThrowsErrorsAsync = async function ( handleError(error, errors, mermaid.parseError); } } - if (errors.length > 0) { + const allErrors = [...registerLazyLoadedDiagramsErrors, ...errors]; + if (allErrors.length > 0) { // TODO: We should be throwing an error object. - throw errors[0]; + throw allErrors[0]; } }; From ec5568b943b18652f3aa9334e29cd9b6478f50c6 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Thu, 27 Oct 2022 19:58:39 -0300 Subject: [PATCH 0481/1038] chore: more revision fixes --- .github/dependabot.yml | 18 --- .github/gh-pages-publish.yml | 5 +- docs/.vitepress/mermaid-markdown-all.ts | 21 ---- docs/community/newDiagram.md | 7 +- docs/config/8.6.0_docs.md | 107 ++++++++++-------- docs/config/setup/modules/config.md | 22 ++-- docs/config/setup/modules/defaultConfig.md | 6 +- docs/config/setup/modules/mermaidAPI.md | 6 +- docs/config/theming.md | 7 +- docs/config/usage.md | 44 +++---- docs/syntax/sequenceDiagram.md | 11 +- packages/mermaid/package.json | 5 +- packages/mermaid/src/defaultConfig.ts | 2 +- packages/mermaid/src/docs.mts | 14 ++- .../docs/.vitepress/mermaid-markdown-all.ts | 21 ---- pnpm-lock.yaml | 2 + 16 files changed, 133 insertions(+), 165 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 5add84f225..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: 2 -updates: - - package-ecosystem: npm - open-pull-requests-limit: 10 - directory: / - target-branch: develop - versioning-strategy: increase - schedule: - interval: weekly - day: monday - time: '07:00' - - package-ecosystem: github-actions - directory: / - target-branch: develop - schedule: - interval: weekly - day: monday - time: '07:00' diff --git a/.github/gh-pages-publish.yml b/.github/gh-pages-publish.yml index 75ea8b6665..be79022e93 100644 --- a/.github/gh-pages-publish.yml +++ b/.github/gh-pages-publish.yml @@ -1,5 +1,8 @@ name: Build and Deploy Docs -on: [push] +on: + push: + branches: + - master permissions: contents: write jobs: diff --git a/docs/.vitepress/mermaid-markdown-all.ts b/docs/.vitepress/mermaid-markdown-all.ts index 4d2b855a80..937e12fc37 100644 --- a/docs/.vitepress/mermaid-markdown-all.ts +++ b/docs/.vitepress/mermaid-markdown-all.ts @@ -1,22 +1,5 @@ -// import { deflate } from 'pako'; -// import { fromUint8Array } from 'js-base64'; import shiki from 'shiki'; -// const serializeState = (state: State, serde: SerdeType = 'pako'): string => { -// if (serdes[serde] === undefined) { -// throw new Error(`Unknown serde type: ${serde}`); -// } -// const json = JSON.stringify(state); -// const serialized = serdes[serde].serialize(json); -// return `${serde}:${serialized}`; -// }; - -// const serialize = (state: string): string => { -// const data = new TextEncoder().encode(state); -// const compressed = deflate(data, { level: 9 }); -// return fromUint8Array(compressed, true); -// }; - const MermaidExample = async (md) => { const fence = md.renderer.rules.fence.bind(md.renderer.rules); @@ -34,10 +17,6 @@ const MermaidExample = async (md) => { code = '<h5>Code:</h5>' + `<div class="language-mermaid">` + - // TODO: compute edit link! - // `<a class="edit" href="https://mermaid.live/edit#pako:${serialize( - // token.content - // )}" target=”_blank”>✒️</a>` + `<button class="copy"></button><span class="lang">mermaid</span>` + code + '</div>'; diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index 371f3b508f..82243f81ff 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -32,9 +32,10 @@ statement In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -```note -Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. -``` +> **Note**\ +> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. +> +> > For more info look in the example diagram type: diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index 3c78ce2b5a..8fb8d0b6aa 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -52,9 +52,10 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -```note -All directives are enclosed in `%%{ }%%` -``` +> **Note**\ +> All directives are enclosed in `%%{ }%%` +> +> > Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -66,18 +67,19 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -```note -init would be an argument-directive: `%%{init: { **insert argument here**}}%%` - -The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. -**for example**: - -`%%{init: {"theme": "default", "logLevel": 1 }}%%` - -Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. - -When deployed within code, init is called before the graph/diagram description. -``` +> **Note**\ +> init would be an argument-directive: `%%{init: { **insert argument here**}}%%` +> +> The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. +> **for example**: +> +> `%%{init: {"theme": "default", "logLevel": 1 }}%%` +> +> Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. +> +> When deployed within code, init is called before the graph/diagram description. +> +> > **for example**: @@ -111,15 +113,16 @@ When deployed within code, init is called before the graph/diagram description. | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -```note -Wrap is a function that is currently only deployable for sequence diagrams. - -`Wrap respects a manually added <br>, so if the user wants to break up their text, they have full control over line breaks by adding <br> tags.` - -It is a non-argument directive and can be executed thusly: - -`%%{wrap}%%` . -``` +> **Note**\ +> Wrap is a function that is currently only deployable for sequence diagrams. +> +> `Wrap respects a manually added <br>, so if the user wants to break up their text, they have full control over line breaks by adding <br> tags.` +> +> It is a non-argument directive and can be executed thusly: +> +> `%%{wrap}%%` . +> +> > **An example of text wrapping in a sequence diagram**: @@ -161,13 +164,14 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -```note -Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset -the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig -to the defaultConfig -Note: currentConfig is set in this function。 -Default value: will mirror Global Config -``` +> **Note**\ +> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset +> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig +> to the defaultConfig +> Note: currentConfig is set in this function。 +> Default value: will mirror Global Config +> +> > ## getSiteConfig @@ -175,9 +179,10 @@ Default value: will mirror Global Config | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -```note -Returns any values in siteConfig. -``` +> **Note**\ +> Returns any values in siteConfig. +> +> > ## setConfig @@ -185,11 +190,12 @@ Returns any values in siteConfig. | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -```note -Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any -values found in conf with key found in siteConfig.secure will be replaced with the corresponding -siteConfig value. -``` +> **Note**\ +> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any +> values found in conf with key found in siteConfig.secure will be replaced with the corresponding +> siteConfig value. +> +> > ## getConfig @@ -197,9 +203,10 @@ siteConfig value. | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -```note -Returns any values in currentConfig. -``` +> **Note**\ +> Returns any values in currentConfig. +> +> > ## sanitize @@ -207,10 +214,11 @@ Returns any values in currentConfig. | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -```note -modifies options in-place -Ensures options parameter does not attempt to override siteConfig secure keys. -``` +> **Note**\ +> modifies options in-place +> Ensures options parameter does not attempt to override siteConfig secure keys. +> +> > ## reset @@ -224,8 +232,9 @@ Ensures options parameter does not attempt to override siteConfig secure keys. | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -```note -default: current siteConfig (optional, default `getSiteConfig()`) -``` +> **Note**\ +> default: current siteConfig (optional, default `getSiteConfig()`) +> +> > ## For more information, read [Setup](setup/README). diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index e5399dc0e1..b3b4e024d3 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -14,7 +14,7 @@ #### Defined in -[config.ts:7](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L7) +config.ts:7 ## Functions @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L191) +config.ts:191 --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:136](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L136) +config.ts:136 --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:96](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L96) +config.ts:96 --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:223](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L223) +config.ts:223 --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L151) +config.ts:151 --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L75) +config.ts:75 --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:113](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L113) +config.ts:113 --- @@ -232,7 +232,7 @@ The new siteConfig #### Defined in -[config.ts:61](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L61) +config.ts:61 --- @@ -253,7 +253,7 @@ The new siteConfig #### Defined in -[config.ts:14](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L14) +config.ts:14 --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:79](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/config.ts#L79) +config.ts:79 diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index fec6a390cc..e29e454906 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -14,7 +14,7 @@ #### Defined in -[defaultConfig.ts:1869](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/defaultConfig.ts#L1869) +defaultConfig.ts:1869 --- @@ -39,7 +39,7 @@ mermaid.initialize({ flowchart: { htmlLabels: false } }); ```html <script> - var config = { + const config = { startOnLoad: true, flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, securityLevel: 'loose', @@ -53,4 +53,4 @@ A description of each option follows below. #### Defined in -[defaultConfig.ts:33](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/defaultConfig.ts#L33) +defaultConfig.ts:33 diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index c9bd788050..110747a970 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -20,7 +20,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:485](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/mermaidAPI.ts#L485) +mermaidAPI.ts:485 ## Functions @@ -40,7 +40,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:72](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/mermaidAPI.ts#L72) +mermaidAPI.ts:72 --- @@ -60,4 +60,4 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:46](https://github.com/emersonbottero/mermaid/blob/455839c0/packages/mermaid/src/mermaidAPI.ts#L46) +mermaidAPI.ts:46 diff --git a/docs/config/theming.md b/docs/config/theming.md index 4c3d702636..5e81c91f98 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -156,9 +156,10 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -```note -Variables that are unique to some diagrams can be affected by changes in Theme Variables -``` +> **Note**\ +> Variables that are unique to some diagrams can be affected by changes in Theme Variables +> +> > | Variable | Default/Base/Factor value | Calc | Description | | -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | diff --git a/docs/config/usage.md b/docs/config/usage.md index b1243ada51..0a348ff714 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -119,10 +119,11 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -```note -This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. -**sandbox** security level is still in the beta version. -``` +> **Note**\ +> This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. +> **sandbox** security level is still in the beta version. +> +> > **If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** @@ -187,9 +188,10 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -```warning -This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. -``` +> **Warning**\ +> This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. +> +> > ## Usage with webpack @@ -343,9 +345,10 @@ on what kind of integration you use. </script> ``` -```note -This is the preferred way of configuring mermaid. -``` +> **Note**\ +> This is the preferred way of configuring mermaid. +> +> > ### The following methods are deprecated and are kept only for backwards compatibility. @@ -361,9 +364,10 @@ approach are: mermaid.startOnLoad = true; ``` -```warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +> **Warning**\ +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. +> +> > ## Using the mermaid_config @@ -377,9 +381,10 @@ approach are: mermaid_config.startOnLoad = true; ``` -```warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +> **Warning**\ +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. +> +> > ## Using the mermaid.init call @@ -392,6 +397,7 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -```warning -This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -``` +> **Warning**\ +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. +> +> > diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index 4220cffe0b..da33b8ff62 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -24,11 +24,12 @@ sequenceDiagram Alice-)John: See you later! ``` -```note -A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. - -If unavoidable, one must use parentheses(), quotation marks "", or brackets {},[], to enclose the word "end". i.e : (end), [end], {end}. -``` +> **Note**\ +> A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. +> +> If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. +> +> > ## Syntax diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 4b6d3ed918..9f36744548 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -34,7 +34,7 @@ "predocs:build": "rimraf docs && pnpm docs:code", "docs:build": "ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:build --verify", - "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", + "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", "predocs:dev": "pnpm docs:code", "docs:dev": "vitepress dev src/docs", "predocs:bundle": "pnpm docs:code", @@ -77,7 +77,8 @@ "khroma": "^2.0.0", "lodash": "^4.17.21", "moment-mini": "^2.24.0", - "non-layered-tidy-tree-layout": "^2.0.2" + "non-layered-tidy-tree-layout": "^2.0.2", + "stylis": "^4.1.2" }, "devDependencies": { "@applitools/eyes-cypress": "3.27.5", diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 570dc2da3a..8b09eed1a0 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -18,7 +18,7 @@ import { MermaidConfig } from './config.type'; * * ```html * <script> - * var config = { + * const config = { * startOnLoad:true, * flowchart:{ useMaxWidth:true, htmlLabels:true, curve:'cardinal'}, * securityLevel:'loose', diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index d633b18e51..2c62c9ea82 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -135,19 +135,19 @@ const copyTransformedContents = (filename: string, doCopy = false, transformedCo const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') => { let transformed = content; - let regex = /::: note\n[\s\S]+?:::/gm; + let regex = /```note\n[\s\S]+?```/gm; let text = 'Note'; switch (type) { case 'note': - regex = /::: note\s?\n[\s\S]+?:::/gm; + regex = /```note\s?\n[\s\S]+?```/gm; break; case 'tip': - regex = /::: tip\s?\n[\s\S]+?:::/gm; + regex = /```tip\s?\n[\s\S]+?```/gm; text = 'Note'; break; case 'warning': - regex = /::: warning\s?\n[\s\S]+?:::/gm; + regex = /```warning\s?\n[\s\S]+?```/gm; text = 'Warning'; break; default: @@ -159,7 +159,11 @@ const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') console.log(`found ${matches.length} of ${type}`); const formatted = matches.map((element) => - element.replace(`::: ${type}`, `> **${text}** `).replace(':::', '>').split('\n').join('\n> ') + element + .replace(`\`\`\`${type}`, `> **${text}** `) + .replace('```', '>') + .split('\n') + .join('\n> ') ); let n = 0; for (const match of matches) { diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index 4d2b855a80..937e12fc37 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -1,22 +1,5 @@ -// import { deflate } from 'pako'; -// import { fromUint8Array } from 'js-base64'; import shiki from 'shiki'; -// const serializeState = (state: State, serde: SerdeType = 'pako'): string => { -// if (serdes[serde] === undefined) { -// throw new Error(`Unknown serde type: ${serde}`); -// } -// const json = JSON.stringify(state); -// const serialized = serdes[serde].serialize(json); -// return `${serde}:${serialized}`; -// }; - -// const serialize = (state: string): string => { -// const data = new TextEncoder().encode(state); -// const compressed = deflate(data, { level: 9 }); -// return fromUint8Array(compressed, true); -// }; - const MermaidExample = async (md) => { const fence = md.renderer.rules.fence.bind(md.renderer.rules); @@ -34,10 +17,6 @@ const MermaidExample = async (md) => { code = '<h5>Code:</h5>' + `<div class="language-mermaid">` + - // TODO: compute edit link! - // `<a class="edit" href="https://mermaid.live/edit#pako:${serialize( - // token.content - // )}" target=”_blank”>✒️</a>` + `<button class="copy"></button><span class="lang">mermaid</span>` + code + '</div>'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11a0726dfd..ed23652b04 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -212,6 +212,7 @@ importers: rimraf: 3.0.2 shiki: ^0.11.1 start-server-and-test: 1.14.0 + stylis: ^4.1.2 ts-node: 10.9.1 typedoc: ^0.23.18 typedoc-plugin-markdown: ^3.13.6 @@ -229,6 +230,7 @@ importers: lodash: 4.17.21 moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.1.2 devDependencies: '@applitools/eyes-cypress': 3.27.5 '@commitlint/cli': 17.1.2 From 6293a583a4f490fd24259b75643bf73ad09a2df0 Mon Sep 17 00:00:00 2001 From: Richard Gibson <richard.gibson@gmail.com> Date: Thu, 27 Oct 2022 23:35:25 -0400 Subject: [PATCH 0482/1038] docs(git): Add a quoted branch name example --- packages/mermaid/src/docs/gitgraph.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/gitgraph.md b/packages/mermaid/src/docs/gitgraph.md index a7033adb8b..b8e399e098 100644 --- a/packages/mermaid/src/docs/gitgraph.md +++ b/packages/mermaid/src/docs/gitgraph.md @@ -114,7 +114,7 @@ In this example, we have given custom tags to the commits. Also, see how we have ### Create a new branch -In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage example: `branch develop` +In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage examples: `branch develop`, `branch "cherry-pick"` When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. From 033f88e8bb581c1d18a52de7f3dab0c05af8b2de Mon Sep 17 00:00:00 2001 From: Richard Gibson <richard.gibson@gmail.com> Date: Thu, 27 Oct 2022 23:41:07 -0400 Subject: [PATCH 0483/1038] docs(git): Regenerate --- docs/gitgraph.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/gitgraph.md b/docs/gitgraph.md index 878d1b3c13..baa75126ea 100644 --- a/docs/gitgraph.md +++ b/docs/gitgraph.md @@ -165,7 +165,7 @@ In this example, we have given custom tags to the commits. Also, see how we have ### Create a new branch -In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage example: `branch develop` +In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage examples: `branch develop`, `branch "cherry-pick"` When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. From d7bf92b39f756315617a85900240331732001d42 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 28 Oct 2022 14:13:24 +0530 Subject: [PATCH 0484/1038] fix: Use AST to replace notes & warnings. --- .vscode/launch.json | 11 +++ cSpell.json | 5 +- docs/community/newDiagram.md | 13 ++-- docs/config/8.6.0_docs.md | 36 +++------- docs/config/theming.md | 4 +- docs/config/usage.md | 34 +++------- docs/syntax/sequenceDiagram.md | 4 +- packages/mermaid/src/docs.mts | 67 +++++-------------- .../mermaid/src/docs/community/newDiagram.md | 9 ++- packages/mermaid/src/docs/config/usage.md | 10 +-- packages/mermaid/src/mermaidAPI.ts | 2 +- 11 files changed, 68 insertions(+), 127 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 92df7056e1..83b80fa403 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,6 +12,17 @@ "args": ["run", "${relativeFile}"], "smartStep": true, "console": "integratedTerminal" + }, + { + "name": "Docs generation", + "type": "node", + "request": "launch", + "args": ["src/docs.mts"], + "runtimeArgs": ["--loader", "ts-node/esm"], + "cwd": "${workspaceRoot}/packages/mermaid", + "skipFiles": ["<node_internals>/**", "**/node_modules/**"], + "smartStep": true, + "internalConsoleOptions": "openOnSessionStart" } ] } diff --git a/cSpell.json b/cSpell.json index 7e7c82b755..4a6d092e96 100644 --- a/cSpell.json +++ b/cSpell.json @@ -2,19 +2,20 @@ "version": "0.2", "language": "en", "words": [ + "blockquotes", "customizability", "Gantt", "jison", "knsv", "Knut", + "mermiad", "mindmap", "Mindmaps", "mitigations", "sandboxed", "Sveidqvist", "verdana", - "Visio", - "mermiad" + "Visio" ], "ignoreWords": [ "Faber", diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index 82243f81ff..df3ea2aae9 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -32,10 +32,8 @@ statement In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. -> **Note**\ +> **Note** > Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. -> -> > For more info look in the example diagram type: @@ -50,8 +48,7 @@ exports.parseError = function (err, hash) { when parsing the `yy` object is initialized as per below: ```javascript -var parser; -parser = exampleParser.parser; +const parser = exampleParser.parser; parser.yy = db; ``` @@ -74,8 +71,8 @@ At this point when mermaid is trying to render the diagram, it will detect it as ### Setup ```javascript -var graph = require('./graphDb'); -var flow = require('./parser/flow'); +const graph = require('./graphDb'); +const flow = require('./parser/flow'); flow.parser.yy = graph; ``` @@ -96,7 +93,7 @@ graph.getEdges(); The parser is also exposed in the mermaid api by calling: ```javascript -var parser = mermaid.getParser(); +const parser = mermaid.getParser(); ``` Note that the parse needs a graph object to store the data as per: diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index 8fb8d0b6aa..46c181799a 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -52,10 +52,8 @@ Implementors can only modify configurations using directives, and cannot change The Two types of directives: are `init` (or `initialize`) and `wrap`. -> **Note**\ +> **Note** > All directives are enclosed in `%%{ }%%` -> -> > Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. @@ -67,7 +65,7 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | | init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | -> **Note**\ +> **Note** > init would be an argument-directive: `%%{init: { **insert argument here**}}%%` > > The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. @@ -78,8 +76,6 @@ Older versions of mermaid will not parse directives because `%%` will comment ou > Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. > > When deployed within code, init is called before the graph/diagram description. -> -> > **for example**: @@ -113,7 +109,7 @@ Older versions of mermaid will not parse directives because `%%` will comment ou | --------- | ----------------------------- | --------- | -------- | ---------- | | wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | -> **Note**\ +> **Note** > Wrap is a function that is currently only deployable for sequence diagrams. > > `Wrap respects a manually added <br>, so if the user wants to break up their text, they have full control over line breaks by adding <br> tags.` @@ -121,8 +117,6 @@ Older versions of mermaid will not parse directives because `%%` will comment ou > It is a non-argument directive and can be executed thusly: > > `%%{wrap}%%` . -> -> > **An example of text wrapping in a sequence diagram**: @@ -164,14 +158,12 @@ Example of **object.Assign**: | --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | | `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | -> **Note**\ +> **Note** > Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset > the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig > to the defaultConfig > Note: currentConfig is set in this function。 > Default value: will mirror Global Config -> -> > ## getSiteConfig @@ -179,10 +171,8 @@ Example of **object.Assign**: | --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | | `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | -> **Note**\ +> **Note** > Returns any values in siteConfig. -> -> > ## setConfig @@ -190,12 +180,10 @@ Example of **object.Assign**: | ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | | `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | -> **Note**\ +> **Note** > Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any > values found in conf with key found in siteConfig.secure will be replaced with the corresponding > siteConfig value. -> -> > ## getConfig @@ -203,10 +191,8 @@ Example of **object.Assign**: | ----------- | --------------------------- | ----------- | ------------------------------- | | `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | -> **Note**\ +> **Note** > Returns any values in currentConfig. -> -> > ## sanitize @@ -214,11 +200,9 @@ Example of **object.Assign**: | ---------- | ---------------------------------------- | -------------- | ------ | | `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | -> **Note**\ +> **Note** > modifies options in-place > Ensures options parameter does not attempt to override siteConfig secure keys. -> -> > ## reset @@ -232,9 +216,7 @@ Example of **object.Assign**: | --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | | `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | -> **Note**\ +> **Note** > default: current siteConfig (optional, default `getSiteConfig()`) -> -> > ## For more information, read [Setup](setup/README). diff --git a/docs/config/theming.md b/docs/config/theming.md index 5e81c91f98..6ec46f5bb1 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -156,10 +156,8 @@ You can create your own themes, by changing any of the given variables below. If ## Theme Variables Reference Table -> **Note**\ +> **Note** > Variables that are unique to some diagrams can be affected by changes in Theme Variables -> -> > | Variable | Default/Base/Factor value | Calc | Description | | -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | diff --git a/docs/config/usage.md b/docs/config/usage.md index 0a348ff714..241fec4e5c 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -119,11 +119,9 @@ Values: - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled - **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. -> **Note**\ +> **Note** > This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. > **sandbox** security level is still in the beta version. -> -> > **If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** @@ -188,10 +186,8 @@ Or with no config object, and a jQuery selection: mermaid.init(undefined, $('#someId .yetAnotherClass')); ``` -> **Warning**\ +> **Warning** > This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. -> -> > ## Usage with webpack @@ -230,7 +226,7 @@ The example code below is an extract of what mermaid does when using the API. Th bind events to an SVG when using the API for rendering. ```javascript -var insertSvg = function (svgCode, bindFunctions) { +const insertSvg = function (svgCode, bindFunctions) { element.innerHTML = svgCode; if (typeof callback !== 'undefined') { callback(id); @@ -238,7 +234,7 @@ var insertSvg = function (svgCode, bindFunctions) { bindFunctions(element); }; -var id = 'theGraph'; +const id = 'theGraph'; mermaidAPI.render(id, txt, insertSvg, element); ``` @@ -254,7 +250,7 @@ mermaidAPI.render(id, txt, insertSvg, element); This is the renderer used for transforming the documentation from Markdown to html with mermaid diagrams in the html. ```javascript -var renderer = new marked.Renderer(); +const renderer = new marked.Renderer(); renderer.code = function (code, language) { if (code.match(/^sequenceDiagram/) || code.match(/^graph/)) { return '<pre class="mermaid">' + code + '</pre>'; @@ -305,8 +301,8 @@ mermaid.parseError = function (err, hash) { displayErrorInGui(err); }; -var textFieldUpdated = function () { - var textStr = getTextFromFormField('code'); +const textFieldUpdated = function () { + const textStr = getTextFromFormField('code'); if (mermaid.parse(textStr)) { reRender(textStr); @@ -345,10 +341,8 @@ on what kind of integration you use. </script> ``` -> **Note**\ +> **Note** > This is the preferred way of configuring mermaid. -> -> > ### The following methods are deprecated and are kept only for backwards compatibility. @@ -364,10 +358,8 @@ approach are: mermaid.startOnLoad = true; ``` -> **Warning**\ +> **Warning** > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -> -> > ## Using the mermaid_config @@ -381,10 +373,8 @@ approach are: mermaid_config.startOnLoad = true; ``` -> **Warning**\ +> **Warning** > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -> -> > ## Using the mermaid.init call @@ -397,7 +387,5 @@ To set some configuration via the mermaid object. The two parameters that are su mermaid_config.startOnLoad = true; ``` -> **Warning**\ +> **Warning** > This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. -> -> > diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index da33b8ff62..b7467323a3 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -24,12 +24,10 @@ sequenceDiagram Alice-)John: See you later! ``` -> **Note**\ +> **Note** > A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. > > If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. -> -> > ## Syntax diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 2c62c9ea82..870aa9e7ba 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -133,49 +133,15 @@ const copyTransformedContents = (filename: string, doCopy = false, transformedCo logWasOrShouldBeTransformed(fileInFinalDocDir, doCopy); }; -const transformAnnotation = (content: string, type: 'warning' | 'tip' | 'note') => { - let transformed = content; - let regex = /```note\n[\s\S]+?```/gm; - let text = 'Note'; - - switch (type) { - case 'note': - regex = /```note\s?\n[\s\S]+?```/gm; - break; - case 'tip': - regex = /```tip\s?\n[\s\S]+?```/gm; - text = 'Note'; - break; - case 'warning': - regex = /```warning\s?\n[\s\S]+?```/gm; - text = 'Warning'; - break; - default: - break; - } - - const matches = content.match(regex); - if (matches) { - console.log(`found ${matches.length} of ${type}`); - - const formatted = matches.map((element) => - element - .replace(`\`\`\`${type}`, `> **${text}** `) - .replace('```', '>') - .split('\n') - .join('\n> ') - ); - let n = 0; - for (const match of matches) { - transformed = transformed.replace(match, formatted[n++]); - } - } - return transformed; -}; const readSyncedUTF8file = (filename: string): string => { return readFileSync(filename, 'utf8'); }; +const transformToBlockQuote = (content: string, type: string) => { + const title = type === 'warning' ? 'Warning' : 'Note'; + return `> **${title}** \n> ${content.replace(/\n/g, '\n> ')}`; +}; + /** * Transform a markdown file and write the transformed file to the directory for published * documentation @@ -189,24 +155,25 @@ const readSyncedUTF8file = (filename: string): string => { * @param file {string} name of the file that will be verified */ const transformMarkdown = (file: string) => { - let doc = readSyncedUTF8file(file).replace(/<MERMAID_VERSION>/g, MERMAID_MAJOR_VERSION); - - doc = transformAnnotation(doc, 'warning'); - doc = transformAnnotation(doc, 'tip'); - doc = transformAnnotation(doc, 'note'); - + const doc = readSyncedUTF8file(file).replace(/<MERMAID_VERSION>/g, MERMAID_MAJOR_VERSION); const ast: Root = remark.parse(doc); const out = flatmap(ast, (c: Code) => { - if (c.type !== 'code') { + if (c.type !== 'code' || !c.lang) { return [c]; } - if (c.lang === 'mermaid' || c.lang === 'mmd') { + + // Convert mermaid code blocks to mermaid-example blocks + if (['mermaid', 'mmd', 'mermaid-example'].includes(c.lang)) { c.lang = 'mermaid-example'; + return [c, Object.assign({}, c, { lang: 'mermaid' })]; } - if (c.lang !== 'mermaid-example') { - return [c]; + + // Transform codeblocks into block quotes. + if (['note', 'tip', 'warning'].includes(c.lang)) { + return [remark.parse(transformToBlockQuote(c.value, c.lang))]; } - return [c, Object.assign({}, c, { lang: 'mermaid' })]; + + return [c]; }); // Add the AUTOGENERATED_TEXT to the start of the file diff --git a/packages/mermaid/src/docs/community/newDiagram.md b/packages/mermaid/src/docs/community/newDiagram.md index a902f19614..74026b3ff3 100644 --- a/packages/mermaid/src/docs/community/newDiagram.md +++ b/packages/mermaid/src/docs/community/newDiagram.md @@ -43,8 +43,7 @@ exports.parseError = function (err, hash) { when parsing the `yy` object is initialized as per below: ```javascript -var parser; -parser = exampleParser.parser; +const parser = exampleParser.parser; parser.yy = db; ``` @@ -67,8 +66,8 @@ At this point when mermaid is trying to render the diagram, it will detect it as ### Setup ```javascript -var graph = require('./graphDb'); -var flow = require('./parser/flow'); +const graph = require('./graphDb'); +const flow = require('./parser/flow'); flow.parser.yy = graph; ``` @@ -89,7 +88,7 @@ graph.getEdges(); The parser is also exposed in the mermaid api by calling: ```javascript -var parser = mermaid.getParser(); +const parser = mermaid.getParser(); ``` Note that the parse needs a graph object to store the data as per: diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md index e7c745f78b..63b80e5783 100644 --- a/packages/mermaid/src/docs/config/usage.md +++ b/packages/mermaid/src/docs/config/usage.md @@ -224,7 +224,7 @@ The example code below is an extract of what mermaid does when using the API. Th bind events to an SVG when using the API for rendering. ```javascript -var insertSvg = function (svgCode, bindFunctions) { +const insertSvg = function (svgCode, bindFunctions) { element.innerHTML = svgCode; if (typeof callback !== 'undefined') { callback(id); @@ -232,7 +232,7 @@ var insertSvg = function (svgCode, bindFunctions) { bindFunctions(element); }; -var id = 'theGraph'; +const id = 'theGraph'; mermaidAPI.render(id, txt, insertSvg, element); ``` @@ -248,7 +248,7 @@ mermaidAPI.render(id, txt, insertSvg, element); This is the renderer used for transforming the documentation from Markdown to html with mermaid diagrams in the html. ```javascript -var renderer = new marked.Renderer(); +const renderer = new marked.Renderer(); renderer.code = function (code, language) { if (code.match(/^sequenceDiagram/) || code.match(/^graph/)) { return '<pre class="mermaid">' + code + '</pre>'; @@ -299,8 +299,8 @@ mermaid.parseError = function (err, hash) { displayErrorInGui(err); }; -var textFieldUpdated = function () { - var textStr = getTextFromFormField('code'); +const textFieldUpdated = function () { + const textStr = getTextFromFormField('code'); if (mermaid.parse(textStr)) { reRender(textStr); diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 06cfdde450..d6bc9672a9 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -508,7 +508,7 @@ export default mermaidAPI; * * ```html * <script> - * var config = { + * const config = { * theme: 'default', * logLevel: 'fatal', * securityLevel: 'strict', From b7d24c8325b189acac8a46875b7fe84e836be7b6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 28 Oct 2022 14:28:57 +0530 Subject: [PATCH 0485/1038] chore: Fix favicon --- docs/public/android-icon-144x144.png | Bin 4524 -> 0 bytes docs/public/android-icon-192x192.png | Bin 5257 -> 0 bytes docs/public/android-icon-36x36.png | Bin 1513 -> 0 bytes docs/public/android-icon-48x48.png | Bin 1791 -> 0 bytes docs/public/android-icon-72x72.png | Bin 2283 -> 0 bytes docs/public/android-icon-96x96.png | Bin 3114 -> 0 bytes docs/public/apple-icon-114x114.png | Bin 3648 -> 0 bytes docs/public/apple-icon-120x120.png | Bin 3781 -> 0 bytes docs/public/apple-icon-144x144.png | Bin 4524 -> 0 bytes docs/public/apple-icon-152x152.png | Bin 4819 -> 0 bytes docs/public/apple-icon-180x180.png | Bin 5852 -> 0 bytes docs/public/apple-icon-57x57.png | Bin 1989 -> 0 bytes docs/public/apple-icon-60x60.png | Bin 2047 -> 0 bytes docs/public/apple-icon-72x72.png | Bin 2283 -> 0 bytes docs/public/apple-icon-76x76.png | Bin 2421 -> 0 bytes docs/public/apple-icon-precomposed.png | Bin 5452 -> 0 bytes docs/public/apple-icon.png | Bin 5452 -> 0 bytes docs/public/browserconfig.xml | 2 - docs/public/favicon-16x16.png | Bin 1038 -> 0 bytes docs/public/favicon-32x32.png | Bin 1332 -> 0 bytes docs/public/favicon-96x96.png | Bin 3114 -> 0 bytes docs/public/favicon.png | Bin 0 -> 12392 bytes docs/public/favicon.svg | 6 + docs/public/manifest.json | 43 +- docs/public/ms-icon-144x144.png | Bin 4524 -> 0 bytes docs/public/ms-icon-150x150.png | Bin 4761 -> 0 bytes docs/public/ms-icon-310x310.png | Bin 12500 -> 0 bytes docs/public/ms-icon-70x70.png | Bin 2279 -> 0 bytes docs/sequenceDiagram.md | 763 ------------------ packages/mermaid/package.json | 4 +- .../src/docs/public/android-icon-144x144.png | Bin 4524 -> 0 bytes .../src/docs/public/android-icon-192x192.png | Bin 5257 -> 0 bytes .../src/docs/public/android-icon-36x36.png | Bin 1513 -> 0 bytes .../src/docs/public/android-icon-48x48.png | Bin 1791 -> 0 bytes .../src/docs/public/android-icon-72x72.png | Bin 2283 -> 0 bytes .../src/docs/public/android-icon-96x96.png | Bin 3114 -> 0 bytes .../src/docs/public/apple-icon-114x114.png | Bin 3648 -> 0 bytes .../src/docs/public/apple-icon-120x120.png | Bin 3781 -> 0 bytes .../src/docs/public/apple-icon-144x144.png | Bin 4524 -> 0 bytes .../src/docs/public/apple-icon-152x152.png | Bin 4819 -> 0 bytes .../src/docs/public/apple-icon-180x180.png | Bin 5852 -> 0 bytes .../src/docs/public/apple-icon-57x57.png | Bin 1989 -> 0 bytes .../src/docs/public/apple-icon-60x60.png | Bin 2047 -> 0 bytes .../src/docs/public/apple-icon-72x72.png | Bin 2283 -> 0 bytes .../src/docs/public/apple-icon-76x76.png | Bin 2421 -> 0 bytes .../docs/public/apple-icon-precomposed.png | Bin 5452 -> 0 bytes .../mermaid/src/docs/public/apple-icon.png | Bin 5452 -> 0 bytes .../mermaid/src/docs/public/browserconfig.xml | 2 - .../mermaid/src/docs/public/favicon-16x16.png | Bin 1038 -> 0 bytes .../mermaid/src/docs/public/favicon-32x32.png | Bin 1332 -> 0 bytes .../mermaid/src/docs/public/favicon-96x96.png | Bin 3114 -> 0 bytes packages/mermaid/src/docs/public/favicon.png | Bin 0 -> 12392 bytes packages/mermaid/src/docs/public/favicon.svg | 6 + .../mermaid/src/docs/public/manifest.json | 43 +- .../src/docs/public/ms-icon-144x144.png | Bin 4524 -> 0 bytes .../src/docs/public/ms-icon-150x150.png | Bin 4761 -> 0 bytes .../src/docs/public/ms-icon-310x310.png | Bin 12500 -> 0 bytes .../mermaid/src/docs/public/ms-icon-70x70.png | Bin 2279 -> 0 bytes 58 files changed, 30 insertions(+), 839 deletions(-) delete mode 100644 docs/public/android-icon-144x144.png delete mode 100644 docs/public/android-icon-192x192.png delete mode 100644 docs/public/android-icon-36x36.png delete mode 100644 docs/public/android-icon-48x48.png delete mode 100644 docs/public/android-icon-72x72.png delete mode 100644 docs/public/android-icon-96x96.png delete mode 100644 docs/public/apple-icon-114x114.png delete mode 100644 docs/public/apple-icon-120x120.png delete mode 100644 docs/public/apple-icon-144x144.png delete mode 100644 docs/public/apple-icon-152x152.png delete mode 100644 docs/public/apple-icon-180x180.png delete mode 100644 docs/public/apple-icon-57x57.png delete mode 100644 docs/public/apple-icon-60x60.png delete mode 100644 docs/public/apple-icon-72x72.png delete mode 100644 docs/public/apple-icon-76x76.png delete mode 100644 docs/public/apple-icon-precomposed.png delete mode 100644 docs/public/apple-icon.png delete mode 100644 docs/public/browserconfig.xml delete mode 100644 docs/public/favicon-16x16.png delete mode 100644 docs/public/favicon-32x32.png delete mode 100644 docs/public/favicon-96x96.png create mode 100644 docs/public/favicon.png create mode 100644 docs/public/favicon.svg delete mode 100644 docs/public/ms-icon-144x144.png delete mode 100644 docs/public/ms-icon-150x150.png delete mode 100644 docs/public/ms-icon-310x310.png delete mode 100644 docs/public/ms-icon-70x70.png delete mode 100644 docs/sequenceDiagram.md delete mode 100644 packages/mermaid/src/docs/public/android-icon-144x144.png delete mode 100644 packages/mermaid/src/docs/public/android-icon-192x192.png delete mode 100644 packages/mermaid/src/docs/public/android-icon-36x36.png delete mode 100644 packages/mermaid/src/docs/public/android-icon-48x48.png delete mode 100644 packages/mermaid/src/docs/public/android-icon-72x72.png delete mode 100644 packages/mermaid/src/docs/public/android-icon-96x96.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-114x114.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-120x120.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-144x144.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-152x152.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-180x180.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-57x57.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-60x60.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-72x72.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-76x76.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon-precomposed.png delete mode 100644 packages/mermaid/src/docs/public/apple-icon.png delete mode 100644 packages/mermaid/src/docs/public/browserconfig.xml delete mode 100644 packages/mermaid/src/docs/public/favicon-16x16.png delete mode 100644 packages/mermaid/src/docs/public/favicon-32x32.png delete mode 100644 packages/mermaid/src/docs/public/favicon-96x96.png create mode 100644 packages/mermaid/src/docs/public/favicon.png create mode 100644 packages/mermaid/src/docs/public/favicon.svg delete mode 100644 packages/mermaid/src/docs/public/ms-icon-144x144.png delete mode 100644 packages/mermaid/src/docs/public/ms-icon-150x150.png delete mode 100644 packages/mermaid/src/docs/public/ms-icon-310x310.png delete mode 100644 packages/mermaid/src/docs/public/ms-icon-70x70.png diff --git a/docs/public/android-icon-144x144.png b/docs/public/android-icon-144x144.png deleted file mode 100644 index 2e2f24bbae040525bdbe619c81106693f2e39d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4524 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 diff --git a/docs/public/android-icon-192x192.png b/docs/public/android-icon-192x192.png deleted file mode 100644 index 5f6c40128d6c99c2382b162c034dea1f7e1a0cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5257 zcmbVQc{J3~+yBlCGYn(jvhVwv5C&rlQ-m~jO(MyjoiHOyWZ$B)Mj<qWkYxrbOC{Nt z%m^b(MiOP|^?Uz&&wI}M$9v9QKhM3-xzBUXz4v@RDb`kI2sl3+004xAxryy*PyA11 zfS$It^S&?u;Ig(bF|>=A-71dEx;jz(&VU-W>%i~9O-Gk)N@p|apT@+`6_iG5dpjao zRM<b>-^3-U_EcTtvDIz)s;6Z)T?WPr)7tFfgXn{-Rhu-2<ll^Lj@DU*f7yuM9}(%9 z8bxUxcN~V6MlT-6)Vgt7_QY<7Z|f}v$5O*j3$s$fhsRJd{yR$;Lm<5>2Osk<PzQtx zQWJeqwP_8u)UXB#!dSp>@Rr2eWQ8)IlrsYR)2sPDNV-_$=DW-Eb)+agybJjP8I2Vk zrN8w>+`im{gQuDfj!!3wW5o(I`e*ZP-BKO@+@0-KR00#)uaHKeBY|WqG6pL<THdl< zk`v@m#_%3?6B10Cd$3dQsQ+|E<f|fRdcFp5<Wq+q$f?o?1&rx5$)a=46F?D&h}@xm zf1T#HiZQi=BGZ*gw|9l(>wL`*Ah;gL36J+d>KMNyPJ_71ck_naz^>|WiT^K{h7+I} zAdg}m;UcSHL$2tX*^Hs+X&{;pvkzf<z^dSif1752jyUoQ(*bv&2*+C+t|?!LFzjou z^-N*AA^P;#1~3(vulsqLr0N-jt30WK?m%hs1bQRYR)~?G3n%oCO>!3Zunk_wm=+vU zm1@fxgyo^h7C`!uBTK=bm^y=x$1)y6XP}+^dqjm>-|XWpH94{(S&XmM9z*|?ePt(R zl)}4V18#^TE!B~|2|0AC138m;k4Oq`H+EZy(?isOZm1Z~3;P|R3ss4(L{8Lm4=1bQ z@h$KQXq4#yp*p!YA&cgu;iB;{lE++U@<z-TZ}TUM12{8W&z%_V)G=mvVhG{2J29i< zU!B$yX~6qP80&AmbmS(#SRo5~rc1l*pnKn8?p17L6MpV<rf5U15P*b-g!#2sRHmpA z&!wdlYm1zp=zF(>MY0ZVo%uHFZfc>v_-;0!cQ8b_tQDxE-^c{TuFcw-dV@N^tk^X> z-M`z0clHa!1P&NSr&_8~$BZuZpJi0k+~y^EO8^pCcVkTl?e5^B)uhchbV<1uc=|TT z)^Yv_)k(2^Z258qunP7Ncv|71<BF4O&J>7VvFlt;5M^x}Z}ChWL(ij3!vgN!OD<I< znv`|<yx^+J=ZoL;=<nN&60N$(B_-bsYpAf~5w1wWHz?WWVWc0fn`9*0`ED%D@|${l zLczz#N|$ns@0E%Rm&xL+H4`<mHc$0bM~#`B<UUI>@sY*;jHPmDFpmx!KX8`&T=gp1 zSKvyX?AWBSLZ{qksf+tZ^4S;Y%S`yWaU9-u0J_o!B>O*s!7x7@*K*Snd5p)WgP8g_ z0f_+hDCujWjhK>$^?RdM(RM9yghA@}-;N#JI4^S2=Rn6eTFyP2-sA}I(2KG<FnWmM zASbADZ|Us$Sn!a1xelm1ZavtJtKQ5~;-&Z6j3e7{QpQ$!FzozGNXSRLvQYUA-L+Ak z+1BiR&oeY7ySJ3w2}028FJ4p(;3(`8M?ZhQ_GJG6!yn}tY72M<Rx^YNCln`R&BQi! z!KN~0wNAnraPi}VLFo1w@6iPv!+#}#Ha{n}@2*YS@W;Lj8<jqs|3rFCpsLm_N>v0V zID`1U1ZpOE5r=cWN<0_(^#l6QjbTb$tFaEuBAgr#p-os#6E2zr9ntm2a2p3#d;e<m zU0a}s?k5eyh=kZN@|&=P*2ZVW9DWQY(iw-^sNmUWULMn1)51_UKr1btlbdkJRwsu$ zQX&NL3d*rh4ekCi-%cW6_+u3X{)Q&oK(23M`GVM8Mz2QwX71gZa9F<iJoiahptnKf zLYUO14&9%}l-)f-WF~_oko%HIasDpY5gPyb9=4Z(FH-H-`s`V~(2K}JX|e-=k$$CQ z`i9SC%--#F3}kXED`l$5a!C`PCT=sZFQ&i*-OKqiz4vhV7QYWghjG#<bbfC_mj|~! z+~1<HHZI)24~=|CY&}*Dkh<G(L3)&}i=DLpw)jjC`#h4Rp^G^x)Vu2tTTiDc_zeRv zUNd@BANAHz^_LOf7;kqmEVzeFZBv&&T?4w9dQsgS*LI)t!u`2#y&0VKN1GeO9R_T9 zbMJ@nXsB{G5PPE3=FQyMMYsAg>4wzvNy)P*j|z{8OqG<&{0OQp5~@rw_HN&J!-12v zwyC*v-zBuO1W$^={@qdylI+|m8ey+pDpEI~#jMRT`U^9KyDIHOPubZGu5BOiyx}E& zwl$aR*9eM|X~NF4r3imGv`rxFl52iFP<5|QyBTRrG1EeyR|guyQJ4cC@jEO*D!9IP zQXI=pfJTTfEZjwDXWO3I7vFN$k!kK0`Ec~9`g{yxJ~m&`i9Thisq#?36T~N>Z0)Vx z%xWFV17TiAWX9OLQ+oc<u?QmG%@d__M=r1?m0A|K8Qc#OkxTkn{RRb<mB05?%3sD~ z?{m4*e53~RcgVjzvAWsVp&z2|^^(O4IZOua7QK%QJ-6A57<32xrm$(hP7+NUw)@)s z1hv_O|A8)@VfAaWy1b8ocdJlFV9$wti;Q94U>5c%od6003Fqo)t+*Z)ns5F&CRb`- z78pK|*->KNMEr|joexc~!@-K0(9<!~E!;RCUWR3gpMj{J16$0*Y{)GpgC`7nA2}bc z1vVZIHU@Z>oIMWX`?|O%giik^(@zg4Ry>Uc@s*Xar4E;0%<%Eym)2$S|B!1bqW(2e zFL|DE%Bd}i4|(^^@^W&bYqAGP4FCr&uJA(+Glvuu`5;rSESX=G5TEjOLl#zO`{Bti zb|AhB0{2Z-8BziC5O&yYs^DD7jxpu)wzTPJDyNQ*RPe5S_#m`gmHqO2Wdd%be4YvL z5c6HgAkODqQ1fR%-jQ*Mh~1bDP;${V64x_i7SigcxF1Aa6P*`1^_iAkpJsN^#d+-9 z0BgR*txq476u^r{Kcr|6bUnf`d@~)qEP}xzNOKNmP{f4_u(R<RbRzIWU<4UclRC<= zLD!u~IriwClkxDs?1%BsHEF}KF@tcIQZc@vex_g4pwgN7m9HFrJFcWZN(?9u2rv9C zG*c*y$;j`m^=qg<pH5}~n6CLFUJB6Vct=iY(6$u5@KOjEqlW!O@#xULk!N~MYu@o+ zHsf!k?0D#5kCjj3&-|@+@ZGX$@2pUExgu+~7RX<4>+jH`WcmVM^Jl0xnyXwO4qyoy zb8>YfiOV@&m`XZc%$e2xP{egO7)afhrjyC+so@gNJ*#1O`<TuG5RDBvDIhMVoO?hy zro787Gp_T_bzdC%{q|7W_&H0%%V&S;ro|ZpK`AHWY>J?W!K)P04OizJVSj!J&Tj+m zO3TgMAOw7;@^w-Z`oJUIR~^Ae;sEX+s>g-4$@FP7`$-H2-#a|_mHQErN7{|@7e3b4 zAw*~u4eT<YvjIwEyxE5}+gl~|e(8$D(kzPvpI6}dr>Fr90e_b4>J3A|`hRU(QBaS) z*P0|w;JxrXtNr_d@0YMk<`yom<SzY~yV-Z`nn*X@>%Y@&Oa;Eo9^0&j+&C&}R)`St z)aT-u@f*H*bx>58-hRULepP&5e|CeC73&V&-7J+KzCd&wLoL8;ZNnJnCjVIGEPnWJ zUw!+Y7M)L3>xmv`W!epCf<NqTtMaYvPhS|G0ixP)E_276OGLgI^DB!dAfM~KE2`4V zFS<1BFnybE@js5m-h%<TC%Vx=ZJNVR9>h`~Fnn|wZ^GO@nBPessp;tnkx-mvTN_|C z<V9JUtSxv_<`t}Yb1(G0?Xv0-W^&O2Cnb7Z4lou}${vc68M+F57;uURI8&z(=w}hN zwqVKg{&t1<Bw9Py`A%Qy59?sPZK}+-6H-qJ+4&Z;pbksift~wc5fSmUEFg0kgyU%t zl&AW8f(61zo2Ga4of#Oq0aR2@l>p^<g`|j{aQM5I1(B=EcdE=C@JQOeW~;nsw-57r zXK$Qf42Y_&XzAznZTDuV1@@UUMzd_FgvRt{w9r1<I&_MiOBd;t1a3%H{a$Hb;z%sM z_!mvT?xQlC))sfd6A@D$Vkah!1Oq{d-A7KVkowS8hl`(;rK^Ttp7}AGv-*mv+Ih|l zy#Pb52TM~pfcMsiKWtOZCB*1wY1vIedoOuwcOGR6+6u>4e=17&<bI>96CS&-rih3f zxHWybF;k|0tEfl5d5T>hggf`d*p#*zefs(P_*A5{<gEQ3@G9Ru^x?Du;h0~~{qBqF zR`QCJs~?VUp)Cn&ugX?-86-FYq7tM>;E2`YkwIQKWLT3l5>7F<s5UAIW%mc+kT@v; z@^^zilK9l5hyFF+L>aGP(vn!f5nIA8Xbi8G6V5_uczh=0=WAkaT)ZpH_{>htgAq31 z35OvP^kq9M1R|y9fZd5Y;~B1tWUHiqF9^cj$9{$~=34c*Vx03=vuTun7}D<c@b#oK z;|F4#tALklcJ{<lT(OjK*fj63i>(bJ;Mi2$FVXZ2Ww+E~l@VAr^jl!M+^O8SzE0-$ zfFsQ=QeJQOF^LRyZ!-HHWqB)G`yp9bxKb87zLkxyexLo^a+PxWWJX-is4P2-t^Rg| z$ZiJ%-&?Hgh;{UY7=xqDn-&Hi=czNu+HbV)P6rD}+4G{s=1{HJ_aUblK>2vy>3que zqnJ)BGruWuNREYv<iq6g#m3uoz%pz@Vwc|fo)`8Ld(o)hJiS3TV^nC6Uw(95{=_d{ z{e+3R6)N-I{)V^?7>FcrPtbmIOh+;ZKg!XL4ti{a1c|(i=QYT)%VB6kdU2!&HE2R3 z-(T~^$32z`-FRw#Rq*Q(bIGIP`96WJXMhbCaZus%&D@i}^&{GuqF3c#P*_XfUnm&+ zY2JRi+x0)0-M(JLyBrYaXSrc5l&r<myG<Pqs$vh0{3tmK2G~g@eYEj8+b`0&JN0%m zhoyhc!c97N?!i$sWJ>g>yIQaIxfR`5UykHTJZRp5$m6a=ln5>z4IwR_4WEOvykGy3 zy<~oP<W&JakAUoAdY^DNAS_g5<SXwJCu6eHe~%}BO`qlK*D7g2<$OPzm}%eJ+p_+9 z91ka7LP}7%db+Lq*}}qv^M(-lK_Bq75N?z!AC}TVQ_1<$J-#t-Qym+pR}HN9^3{YO zqZ<!CUH9B|3yRB&vH^`JQ%OU9w)A3Y2N>yHSfBmNR~r984Ws^LcIR~#5gK2yo&3!A zQ2=Mc$u1EWPHzq$yHhiWC4pK7x3301CaT>b&*fwZO}pAEGsdO_3SL>};6@ocC`?H8 zhUm{s#?bckw~nu%=ttQG%=t+fMpFfqA8Y-r1&<`q_i*qsv9#=gW_`(`3ht`}|Kv$y zG&?s+{-C=OeJDn&$;^9ytEwvwT@BchMCIt;8LP5R$1r5%*8;XC^jYu$^O>w0RSins zg$v0!x?L^;94vN#TsHEdA~ThB)1a2}=|UOUoc>-N6n1=fDZ<EBBrnefREb8iA8Dg{ z9~!lyhfY1eoh5rEN#B+8sjf_em#NX|$$i}StQ=zuJT>wgi<7C8zZkdwtmHQywYR_L ze+~Fw+~ofSoP#g;6ncBS(G;~C-)u*S51{6!T(75}1}0yU{pc_{<2{P4IqW8Gy^U+& ztPbIMDqQqx8otYHnPEcoTjY9;2ACUlLlxT89O}uTgZV$`lV_S4ZSov<RSQ9wjaIRr zI_7Q{jT4ruFv-8eDtpH-vEuwvHB9io2SnKKNTUB#fov*d35AFG8c7(Uf60Pcqlvf6 z##%H|$A&f`VNt}WveEyZ_|n1ku+cwZrYRi5czM=RP9n9T-X;&TEKA@bUc3oWGCz4< zVS?AVzmb_tuegEZZm2)yj_xdl?!MY3j%pC*Dx&W>74yNnVc=k*JEk+lN#~afSz&5Y z4$ZVHtpE5nraK3$iapjNDte?i*qqIdA^uyUJmyx%RRWhz)HNphztUmaTWxKe?i(x} zD)>CiM6Q7M=2<7_Ajsrr<_bmcZjz;tDmHV2+H$}y$r*bW_Zq+N;`~C^yON`jF(n<i z`8HT4E@-v{n`;1(v{*C1)i=~*^3LtB(D<caJWDUF%&^?yxiop3yoh(7Do{YHJ2D|b zdDdp0hp*^PrJMLY(5^HM*`ZmM@DM^YAkXX_V7m*0CI!|NAGrT41^IH*Bx(E|*HDZi z@9=R0uY)ZLbp#Bayim4w6!hq!-5{1)v&&M-xgx+mZf|$3297o=NbdWZ0sJTtvNzek zxv+r4Hx>VmgoN3pXk9TtXsxEw@x5Y=V2C(VeJ3XIR2oSns_b-mH6pZPZ}nf-(G2J3 z(*dypJ#-y!x}8jG-s+ImeBG4?4y6Ch<egO8P>-iOYp{a@h0eG*&;_mE>ReJE?7-W& zm?xY4&|3FGl@hBznF0$DTW#O7t}w1N;<3*`i?ELNZYH$k40xn}dWy*PctxH67-adQ z%kOI+phlPiv4T1Af>YrpDReO0YaFkdpQdr|qm`Qdzb)PchwkqzlQ-!O+++y3I1vyh zPPt(_>r|wwygvsczA)D=U01&%z<<%{DEzTj{mpz)Sl@Xp{H(YOI3)1So4iXzaUYwF zEQIqmegWKXc{0*`*Kk&bpt*ltbpW@>#K+`9zYK=pOHk3GFQmGi88!5C!mfZf&Cq*_ zkOKD+=%uCelh}gi&nZ)*73rg^R`foIlJCH(5f)HoXk%DQY(qB|v>G!i>RTt-NzTBy tfVsv^I`~d)Ey1zyi27((h`Rg_wE0LlLm>HZ;8bD+EKIFT8jP^<{{^1XqOJe{ diff --git a/docs/public/android-icon-36x36.png b/docs/public/android-icon-36x36.png deleted file mode 100644 index 40b1140fa1c1fd11a205c9316a2f517d6263f403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1513 zcmc(ec~H|w6vr2=g@R&iD{38EL{VEL7ZBiw27-YQfyimA9j1ijmt)KY`6UR!k}Ba) zv17}Cw|G!20vbzd1uLQ$8K^fRP>7(8SDjKtf?(wJN2fET&h+o@?CzVl@AG~8c6YWo zUcj5~_JJEhXgWWdn@HM46T@{1Id|G*)uee#%8BD3Wd7RSA)HG3UZUv4ID~Q*BV^1+ zXpCGkK0-)GN9ai!LfB4(W^48~BrHeB=|p^NawG`=OY^_=Ks5wq05=C#W<#hJ0@UEI zf<O&~5)fs8=9|!U4=!{-#TihPLzo@{R1ls8%5pe-7B1d`?)%Vq1vncZDi?Ym0NI9L zg7r4&_rr1mR_MTR5ZZdc{t|BX16v1e-C!Su<5q~@49Nvxz63AF;M@(swD8?IxN!&8 z6+_x~=(-PkeuA-AaLop*H$jpKZr=k%8Srx9x(#YtAS4rNTj27q5RnaAYv8#ZWTlX~ z2gb*tqz+<@(9sV~*TLEe?L8p*2KpYtm;+up;ENLIybJ5Lz&JqaHi$EVr41afq4py1 zH$rO{FqKg7Jrq{M;1E0>gp>lf+6UMAAS??k?NDb;Gu-`we6x><L_rcl9->Pl_LkIX zi;upj@TsbF6AwRIWBu{B$Mr+MuXaDM&t=d%<<t|4Ym2!zh!i=c$MCq^(fXauq~k*H z<04%ixXtu*_Z<y0`H|sDK9`dm++NusO*$V=dAr|TAIUY3)ESKBUB$CXeijbSH(a9H zZLizCPe*H_pEr-h*zNoIDm}B1a@gI?!^xCiVB*nT89NdVR=m5h{wq$yoNGl4&x^b2 z<8z%?bubZsDR-XF!e_-96{$Ue#jOf+8KrD!$}*~D-DP%udz<ek$EuZV>$5<MZg_f$ z{z~EQ-BUR-xpMuILj$2$W5bHt59e;Ou?LoHA9p(Ly?NyYo3-`m)7TBM6o2+Wf;e*v zwW@fUS?OQDB9zzaa83>OTsyjFZ%jRH+40hvRl_}4*@Cp7BPEw>l`ei+`n98b(ctMt zmOQVNLP3)-$HPFxo)QS;W=)jK^R31M3X0<{`{4l1d0b&X&(k+heHQY<>*~~tv^j>6 z^$yA(WrlYwofOw?{R0VOUGKTCDr(C0yx#7c!0qZ@=3PGDcVUdF$foGcoB5h&3oD%| z1)_0zMxM^-?L1W2H*eliul^H3y&oOP`MikF5%w&dWvY_zdNHkZSEcEsmLj5CkL~Dv zdgj0}Dyzw>`^b#<zdd_m>EWH6JI&R@o1NNrM3HakLqvW?h=l}>i8680ASRv3^kdNd z7(vNQCdOc3{w!ZQ9i!9pZpB~tmq4i&%O%<WE$}FMlt&7@CU(%OB}A4m6Gt+F&}cCl zO|BG5adOB->#6EY>6xqZ_mS+J2{u`#Q>J4WS1r;haTS4K@g%B6j4EiPy}|G&vS3&= zE|<y(#0X)Ar)H#(%<M^d{$@UviwW5Ta<gWED~ZgVgv7~}IFYTv(O*^3G%9J>$u)vE z^28;R6k@PgEP6lyD}*)hC8dx=W=zVHB+tPSJtCs?5c??^S~Dq>lE_CAxdJDTPE)D~ zg<49J2=#K2TBW7^bLF%^9LJd=Mt~%cl^!G!iy0w!x=@rJAY_IF2Qx!(Dyg87^|?m< QGVucuKT^Q0i%8q_CypP#_5c6? diff --git a/docs/public/android-icon-48x48.png b/docs/public/android-icon-48x48.png deleted file mode 100644 index c81790b8448ce6af4a7a307ab7a304e293300186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1791 zcmd6lc~DbV6vm&Rh!8Yrkr0)FirC8X5<(zP1%V&|ghq^8MVjq}ge@4JR*)hn0iv{m z6;P|VfeIobic{2DK&5O|0i|f!D~O1QvM8IUk4|T5o$3F*bMHNK@A-Y-UFK-`z8(g8 zbUg$?3_N*UKQf||Lsy%eg-tVx$S^g~#m5CfE+5bz7fmDAW)hyC4}wH3L6F#Z1Q{i_ zV!IJ!J1OiDA_#UEL5#zXU0=HbLA0p+H3D}M0CxEQtFx5A3Ils3U@F*<2wV2SIyLaV zffWP@)F4OzM-}j*p}q}X4?#~qG(Urz4<P<LY)*pB8c4{2TeZ;g4BiYw^%HQ71dnKF z?gFw+yocU5aJ32~DS$-)o(k8h;pH26*bc5c!DT1ZwnG0PoVf+wyTK<GvVVrk$FOoc za8z)m65hXu`%Mt=Er<_5T`M?jgO+ZP9fY7X=;(p*3FsdJ|NS8R4%&O*#cSA@2vv{4 zD+ca1fPFaZIt8O+FfjqgisATmcsl}7Ct>w2`1N;q)&~`h5Rw6Tci_TpP#l88*I;ZM z2H(QS7^D|LK{+_>0B#iIm&3bJaNYrju0Zc=I9Lc_hoS8`1gC>TI6Qv^oi9O}3YrTr zG73q#@LLDCMZ))mkbV{H!r<*F3=G4Ie&`#3?pLsOFRV|1rY`V}gXIMH#Xo<X`JAi? zl<@OiN0t{F|74_bkBv4Zv~^;<S)rf&?yY8q)^PBYrDKV;eM2uF#EmvRvKW-Bb%Po# zt@H>ZQaeTL?ZNdm5p8QF7t;w(ANT29dWLiLmyI~9t;xC*cye6?yk8_jp-?K8iEukJ zq_L6XSWGjCjZOU_G2=jrirQvO{X{%9$9S&!YL0HwK8+od*H69JQnJd=>uB7OjGaR| zI=xJa)p(XXB~2o<aQ`VTZiRMfKX;lQB`e2)A0Lden5^>bD%w&_e(9ZuHBDu86}sz+ zQd6_lX-A3-a&;tImhYPGVHs%b&9Yvdo*&j{Ix{n%rTjcSI(j0u#Mum8+DJXsggP!} z)qJ{mj%nOkb7s{nt<w^5J4X4V<K?Nc85(&E&nuzoU3S)4mv5BEGE=qY7}Rj<g-<CN z1JzYJFVK6HYW>b)lheVx>cr|%&RithKz~1V;a!Vvdh#M~!@8Jkr}6|mho{x4F`^l6 z+^kNylwY|f*Zs%ZOZldYIw;BW=&5T$KL1SDt%L1Bm&j2x#O00ptKfOFE%O$b*74|+ zgBWHQwBiP}w=Z*zb_nUZYhb(}_FjXNB#%x>9<vmPa!)kQjXRXQmPMm|addt{eoWOv z?o;W3+|m-qh$n<#$ka}DS~`biP*M<dLY)^gJl{<aNiondibyRBYKb27Ps%B66i;z= zD|am;9gRyLowF*h=-R}xs@$wsUtlGlVMtHbYx9&A7n?Ka{u@hJdH(iXds=?L96m)y zq~9?6OsTLrDtH-M5MUItDp^O{%@H;8)pj~rvC1_~SIdjio2B5(_~to&0$kK4SmeI< zy3XFKCzrnNu`i;T(A0MpYi2GCUBH*P`DbiRr*#%aeTk)XCCA@7c5}~?fRpEQvhpsP zPZ7*QsFz1qsvNVnk|k$BxNjn)A_B)GDx3@m6J;{38K^bGLBM2U3<hS$UWTF=itc{I zzx^*ks8XtsMgF&7W>WWVQeZZDLWELAd@WMph@2q8BQRTAMW`qcCx=23Y@<{K-n_ry zILXo`S%G|es2IbzO3C(6JdD6FK8Z#kjB{|q_9Mn~(gnkKxFS$aAPf$3)z)q6NyhjC zpTC)n3MnC<MC$X*bxFkJ1H?xWiW8CHIP%x6Y{SC>oeMYke&pjLASr~wX0uTii_KxT z$50bVWYz~h>l9Hqg1WjMI_=a;rZ#+#TJPtH$P^(s`E=XRFd{@5Xe$%#P)L+v5w`z) zxvf2p<4g&IC9`LX9b{4|gM*7j5;04}<TyGqIk*j}up#fKySk>7JOS}^_vPlh3itd8 DPk=nf diff --git a/docs/public/android-icon-72x72.png b/docs/public/android-icon-72x72.png deleted file mode 100644 index 1866eb50e872df092eef4b880cafaa1d519fd2c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2283 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 H?iurMZntb< diff --git a/docs/public/android-icon-96x96.png b/docs/public/android-icon-96x96.png deleted file mode 100644 index c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3114 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 GDE;5Y#d$9P diff --git a/docs/public/apple-icon-114x114.png b/docs/public/apple-icon-114x114.png deleted file mode 100644 index ba11f97b149eebd6f9dd3c57719255481d78d254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3648 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 Xs;vH?=A%zpI{;Q@cBYLuuf%@?B-v8x diff --git a/docs/public/apple-icon-120x120.png b/docs/public/apple-icon-120x120.png deleted file mode 100644 index 05f58d8011a163598d6bbdbaaad9f75916dbd9be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3781 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 F{{!c=pk)96 diff --git a/docs/public/apple-icon-144x144.png b/docs/public/apple-icon-144x144.png deleted file mode 100644 index 2e2f24bbae040525bdbe619c81106693f2e39d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4524 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 diff --git a/docs/public/apple-icon-152x152.png b/docs/public/apple-icon-152x152.png deleted file mode 100644 index f5a82583c0143bc8358c31426581fc023e9bf8f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4819 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 QNgV)4T@#%eElkXR0O$mp_5c6? diff --git a/docs/public/apple-icon-180x180.png b/docs/public/apple-icon-180x180.png deleted file mode 100644 index 752c4dcf675ec2d88b862862443eaca053fab8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5852 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 diff --git a/docs/public/apple-icon-57x57.png b/docs/public/apple-icon-57x57.png deleted file mode 100644 index 653687ee2bc48321bb9abb4d39e21b158d3d9c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1989 zcmd6lc~Fzr8pc2HA{MGu!76vG7ZAOT8nOt%e1fut)vy^9p{ODG2q}gHNI+Q?kWDsa z5eKmfC@p%mVpU|h5(rSXf-L2V76i&xAP5Q=h`jfs)0x`N^#7hY=Y7xed!Dn*Npf+r zU90g=4Fo~f+S^&X;hDbD)~v!~MSbvNJpF@b!L&e-`{|lWwi-Ux<=D9~5hQFUf}D** zkVSmz>==Sb$O!VwNd!T25oELIYPqW^f~ay`4zU<G05lQM0)LHo=Wkz)g<uo_MnW(a zfpr*oU4Uar;1&lq5kL=uy#as*gIy#Xjswpm@JfcT8!-JA#^lg70N*u1`aL+A1_wjH zJQTPWA+r=7w?NMzj8B974MY||R3W@y2D~gU!_+Lux*@U<EYE;VIK&l0<8yfZ7L@NH zx(FospjZUKW!NtU$yI3Xg+(POmLMn(_*t-^fNSO87!6-b;mtg-)8Xke@Jxor|H1Gi zxW+<9KeW7nqlv&ygYE&S>4F=T@T?Eq<KaXqycmW{rQn|fv-42Z4o%PDm)GE(0`)zx zq=bShFcm}i4H%vRssO&shM76AI1NubprjToPeb_+aK8b#889k`5jiB3!1NpF8-wIK zFf;)X1z;+HtOrnB4f6`fD+4nL<UWG2X-K^b`vRf!6|l~Ov=f-;z#|cQhM@HYILE-m z4Dd4HQ8UcF15O6K9D(*exLXJNg5Zt}avy?8Al#}36A?_#K+<injR01>LD_Enn<1#! z&FL_nRmm~!Z<pWCHiZ#XHiq;nJHK4JwP<l6M|(q-<{amFv%bRr@yMH@Z<n|owKE<c zpI?(XzfN{kZ*IW*9j;dKakRDe&hICy-~)BBJ(Hn6qOsvq%{@G?^=Y_yrM<NU%dTOn zXY@p;`4;up7pUCiWZmo97m0?V1ED<{G=0y_j<<`hf4#{yKC$fI>#Q07(OlS;xJr6H z{9bfZy+fYAo84@0f5l6){sTS!9c^lQab@SCmQ~Khnloc!tSoD5=mzmat8G92$gS=R z9du97yAw?eMtb`znM_tsCzwz@e?qT3DjcM1Z@clZaEp~{g3@N<ERw{@c$(8XV?fYR z8;d~*pSu(vV)UB)m~B*~6(ikF(bHZymO{|;FigF5h5qD0iz#K-uI&T7(bmSV{4Y61 zU8|!;OKTVxG__HVrw8kcQtmf(<tg6}&$>x<ypAc7vt<=0>Pou(PYr$-NhDp)4v}U{ zhTVPnUgc3%lGdkBdQr6}_m7XIVu#h{s^eQz<yY#7v)z{>ZigTLR@gdqQ~V+%kLT0i zv@5gB=dy02-0ZH}P}NdV?UH5+^`mwJ;)ZowwGZZRLt9d46(-L5itWTh&s?=uzZ9kD z?C*2fWMF72W##W#U8u-P)!7~R`A?DN&OLiEo@d*&2h{DOw-XCwg3Y<;z~Ig1$?8qc zjy9@K!cqy9QA0a}BX=h(W+0ER%=J!ZIgq^M4%2&%42Cm}WA1hJo5VVgD@ (Wa- zmQeP|xRSpun^4o>ymhj6l&BJV#4LNimt@0fvzgTjSU+Bp(<tZ3Dh^qwo>{KZ{BOjL z*yN3NJHpi$Dn~5xjnF=FX_Xes;nhT+!}Yn(T#12w;YrH&cy~vU*zxBE=j+EqqH?|` zdBiFgnfiI-(S+uOw9;#R%6H!|YVP%W%X7^y$hx%d*w6oKRYz#X#<rbO6hk$h5%#)_ zd3cj|YMoE*+|gjGXGpbCze>Jn^|HugYJ%C+^lAD~U}mx3RIYLNoW}aEGIEQs;9JbL zkg5>ffa;W=v$~9|P6DOqCXZ_qsIOeLR>R?{K2dfW|Jpmm3=c7vEyhqz5QZm&N~ThY z6f%)w!lF`93I*Lu+f62;WO8)3OYI*70wI_0d*-hN>k`MJae?m24#7fSaVR?oL;S>I zQ7}p(@da!ihBrRP-%uFDt8Du$A7{6$uq;1`zz0RGg&c_h3lO8I3yuaOlwznL{fV(( zaY0c#jL-8EBNRH-+&j=6XEuM}^BZ%N&lUTvAf0#g*5HWF2MCidz{F=n81n0>NTLAV z!O|m6fAV3na0;Q&Xf(2s5sgk8h+3b3BcFWWbC@57A!JL-tbzlR_|lONmfYR!5nui( z48J-_5FkD!<dJ;YA$*Q7Aei*~laq`w45M-=M!v>09}{0LmqN#U*c=}tHkH0_AC-<7 Z;tE6jd~0l4r1%bqJ;TZRuI0&?{{u}q)T{si diff --git a/docs/public/apple-icon-60x60.png b/docs/public/apple-icon-60x60.png deleted file mode 100644 index e27a4529bd3d898bd69fc0476a80a1d16c1d61de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2047 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 R$M?w$1k1$ISiIXc>JMR<`dt73 diff --git a/docs/public/apple-icon-72x72.png b/docs/public/apple-icon-72x72.png deleted file mode 100644 index 4c05a3c1bc9d842a37d121e169bb9406d300c200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2283 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 G?7sn-6KmK2 diff --git a/docs/public/apple-icon-76x76.png b/docs/public/apple-icon-76x76.png deleted file mode 100644 index 4dae6668d49d8dd866a4fc30f807bf70f5dcd607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2421 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 O84wGaHMPjZHS8bSzsFDj diff --git a/docs/public/apple-icon-precomposed.png b/docs/public/apple-icon-precomposed.png deleted file mode 100644 index 620c2b691ddb8dd383b9642ad23c437ae9d683b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 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 diff --git a/docs/public/apple-icon.png b/docs/public/apple-icon.png deleted file mode 100644 index 620c2b691ddb8dd383b9642ad23c437ae9d683b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 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 diff --git a/docs/public/browserconfig.xml b/docs/public/browserconfig.xml deleted file mode 100644 index c554148223..0000000000 --- a/docs/public/browserconfig.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig> \ No newline at end of file diff --git a/docs/public/favicon-16x16.png b/docs/public/favicon-16x16.png deleted file mode 100644 index 238b81faf7fd711edb00319fc8f16625dfe3f03b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcmbV|drVVT7{CuO6j2mo6dzI1fR7;Dhvh<V>I5v%E3_-6MU7MG<F?$5_Lg$M`2;}} z=Y$yF2L9QyEym3RqA`F9!s07nF=QjeCB|3N$<#zGkw^GEH726T{@Ka-&X@1|e&6dH z((AILBIidUgrWqE+CX%4P$I&}yCQK$K2cvd(zWRbHPufYGlvs9)~YdR5!$&7q00RT zjSyF*AE7cDp=X5%@uv}raW}N)sYu|VKG&EDocsUWWEobwK;eSCYS{A=Y&!xf3<??6 zltEz~d{qS{XJL30UJXH;7d9P&&ELb-UU)qOZ%4p+3XC=2e+lFaJOR@I*jNkqeem=- zq?W+BPPpQQ_IvPiJEW9=wi0d+z~~s<=!cvN$gP0ZyD$!Lxf|B+1${L<8iWUa(Cq`I z2Ri#8)dMX(ARULQU%+t;SZDgz(-dUcnb@GqPq;MFwEW_Q;WwjiUyq+33dG%9dNe?S zA(otM^~yV!YvPD884KFX$-c;$bEd9xY>uuYt|md9Zk*d^^7c>fq^E`VrVZ#jrX&=v z7;MfS*i{b@8#+7uMRok*oRdALyM*$Fvxi&$p%(e#lPm?ZW;N{o;XBpQTw&>%yK&8b zdo@p9)mVf(&3Whk+8??}Mm+^>Vfe8jBrt*|tutjUyP8(FyaPve`^KW;VsetV{+{wp zV1cH1d&hXJKMbovvg)t7xyr-CVZK0l+p+MF!DlzSTG!sX*!xmm(%7Ohw>Q=<+7r69 ze%^`uE&YFx;p1`UMr<=<k+*t8q7X~7Y$8J^GATxu<r#)w%_Yz@Ptz5D>bpKkaLP8x zzT>|Wrq}u_NJ4C|L#b@X+sz&k6=Ccy<ta*XnjIn$$@*=Q>~UQ2E^H+1+#qW#Dsx(R zUM*Y8oT3Z!yq=(?i1`)TsLvQ7ScT^`qU0#Th*7d>TS`oXiJ4I61G7Q0;i4eY_uG;P zg3OzMXeFnJceq9Lek#iCa;$AG(0x`%Ya|q6IF6$g3QoyA+#7w6ATuV^$(MGDh|b73 z{^OVbl2E~fkjWq*yHqTa)hVY77t0RHZZ4Osva6K(_~lfxD2l9=QP`6?ON!lQW0a!B iY_%xNtTHu~Rf<U@BZ<rxk=1>jbU;F;PJJPxu<9Mpo~<GP diff --git a/docs/public/favicon-32x32.png b/docs/public/favicon-32x32.png deleted file mode 100644 index 7df5e64fcb52963a16f91ff447b374779ec4bb39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmcJLc~I147{^}(k{}J^&>U^RsF*nRV0T%5O0c*Ktgu9|vQ1F1yZm-pU=P?IcLFAt z+zlAa08SWX5F(-w3djHxn#4eIN|SMnT#_6@#F0-wnr0$r`m=Z5=Y8gVzn|xLpYy&x z9{UUr8zO}E@jbbIq_@~H16}guR%LgSPEXDea1gpyV6-jP-w~yregcFN-$W=i4WUi) zDRma17%D>ZAqZim2p!av-+J!^LOTAw-a;O*H2=$HM*&j}4k}=%fE^7fRnXc8Rqb&8 z8;}+PriJWU__7_^`XQql%9?>(OKWiB9>|NpQ3H+lV0jH{x`3gE+$-?w3KZ6Za}2n| zLh*HY@)Sy&Af^H~w_$S&DqG=13@|lNbsM&}VSNKsrNB>y(J9#2g1kET^cwv55V(m@ z)BrP2AUF>s1+cIT@1BK$acH;;SG(a<GCW>_)pc0=9cC9HsS@TEL0JNW6A<|s1Y|=0 z&mc?(x)LHwVC6SZT!5RskY5Mo&5%_C;TNE(2O4|8F)DW`XM~*l5yH>MA30UbJbP5` z{nG<4Y;2hM`Sj@1wLeD61|3cft-k%sbR5a)NW46_cD-X9XY#U_;0t(rrwtF78`;VO zjq^$Q13s4{WcM@{iA0^$Lm9ezvUSt4vy%n$dqk!lM^jDA%%apBU+#BjpMi~+-&k~7 z{3C4<WpQh@oN<|F@L)l(|Lb#Ia}Abx)8=7WEoPNXvBv!q9DCzQUWKG1^N6IQVDwl| zsr7J>WxQ+MORtzLjrT8kT6@<pU(9sB)BRSxrFBv9{pvY`kgxi<vY8tpA2IbBTy1Ra z?IK>t@1Bfoxm4OYe>i8@k!8ZZ)!55A&X-&i#}(j&OZr6WI^#^(MV;c;U%Nk5G~jS1 zw|Y7-H8HvJPKju<@OHPkj^|3o%(rnL_gZbV3H3cg7pv2~%}-uI>=MVV?Q;(U^(+d~ z!-M1L_Cv>9mp9VamqlM(Jzx<u>Bi64+><cXd0b&(>e5`e>B8BtO;HqU!*zAW%fte! z!L<>O$EHR)gLdXYcg>C0oZAfa_1%N(SCW!iRqcad^!?)Xh(18YV>zOmt+iI<;NKv4 z?-QY70>`A$IO!0bN~hb=sCG0*A)SuVXqW@bhDyb#)RZCLu73q6)u9Sm!hZ+s&zemk z11xqbXw@<zP8^M+FoMu%F$zVY6w7ha6w(NLb+o*-?`Q?d9@=4rVKGVxhH=%>7$vSE zFwB=kwTN~ZS}4yk{GBWq=7}rhVFaQ%(Oo}`I!!VMcjft;5h+56upMNe*3y7PUfqQV z6iS>((BSB=t|%In+@&GF=eaxrAxR+`i^ZZc7%V5&M6z)viM+fkkG~=jM^rbr;!E!= zkW#=d>9ijo$rO<|`E`m?MMSFQ6qz_yAyuoilz&D}Vd6MWm(mzACQITd3k{_?;S#Y_ i!VuG)*lfBJZcj$oll>XE|Ik5JKzyDLx6Uo(lRp8<VOuQ# diff --git a/docs/public/favicon-96x96.png b/docs/public/favicon-96x96.png deleted file mode 100644 index c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3114 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 GDE;5Y#d$9P diff --git a/docs/public/favicon.png b/docs/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..05d8a737bed26f3f59b53eb56ca18a5ee1536dc7 GIT binary patch literal 12392 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 RjQ=12*z-6Y%2}t|{{x!s_j~{V literal 0 HcmV?d00001 diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg new file mode 100644 index 0000000000..993c56b940 --- /dev/null +++ b/docs/public/favicon.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 491 491" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <path d="M490.16,84.61C490.16,37.912 452.248,0 405.55,0L84.61,0C37.912,0 0,37.912 0,84.61L0,405.55C0,452.248 37.912,490.16 84.61,490.16L405.55,490.16C452.248,490.16 490.16,452.248 490.16,405.55L490.16,84.61Z" style="fill:rgb(255,54,112);"/> + <path d="M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z" style="fill:white;fill-rule:nonzero;"/> +</svg> diff --git a/docs/public/manifest.json b/docs/public/manifest.json index 3b557aab8c..85c11395ce 100644 --- a/docs/public/manifest.json +++ b/docs/public/manifest.json @@ -1,41 +1,14 @@ { - "name": "App", + "short_name": "Mermaid", + "name": "Mermaid JS", "icons": [ { - "src": "/android-icon-36x36.png", - "sizes": "36x36", + "src": "/favicon.png", "type": "image/png", - "density": "0.75" - }, - { - "src": "/android-icon-48x48.png", - "sizes": "48x48", - "type": "image/png", - "density": "1.0" - }, - { - "src": "/android-icon-72x72.png", - "sizes": "72x72", - "type": "image/png", - "density": "1.5" - }, - { - "src": "/android-icon-96x96.png", - "sizes": "96x96", - "type": "image/png", - "density": "2.0" - }, - { - "src": "/android-icon-144x144.png", - "sizes": "144x144", - "type": "image/png", - "density": "3.0" - }, - { - "src": "/android-icon-192x192.png", - "sizes": "192x192", - "type": "image/png", - "density": "4.0" + "sizes": "512x512" } - ] + ], + "background_color": "#6366F1", + "display": "standalone", + "theme_color": "#6366F1" } diff --git a/docs/public/ms-icon-144x144.png b/docs/public/ms-icon-144x144.png deleted file mode 100644 index 2e2f24bbae040525bdbe619c81106693f2e39d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4524 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 diff --git a/docs/public/ms-icon-150x150.png b/docs/public/ms-icon-150x150.png deleted file mode 100644 index 1785c0f1a0d6b338b8378493a819f5e6cc89abe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4761 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 PD*}MFus5$W^GyB^7T$89 diff --git a/docs/public/ms-icon-310x310.png b/docs/public/ms-icon-310x310.png deleted file mode 100644 index 1d0051005cfe054935d8c1e105c5e59013ff6e06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12500 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 R_6cPH09MeDua~ok_-~E6)8GIA diff --git a/docs/public/ms-icon-70x70.png b/docs/public/ms-icon-70x70.png deleted file mode 100644 index 26f1b1fa54d8f8a3f5d0817c1a87ca996e51b0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2279 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 Fe*;wrd07Ae diff --git a/docs/sequenceDiagram.md b/docs/sequenceDiagram.md deleted file mode 100644 index 345cf59cdd..0000000000 --- a/docs/sequenceDiagram.md +++ /dev/null @@ -1,763 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in package/mermaid/src/docs. - -# Sequence diagrams - -> A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order. - -Mermaid can render sequence diagrams. - -```mermaid-example -sequenceDiagram - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```note -A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. - -If unavoidable, one must use parentheses(), quotation marks "", or brackets {},[], to enclose the word "end". i.e : (end), [end], {end}. -``` - -## Syntax - -### Participants - -The participants can be defined implicitly as in the first example on this page. The participants or actors are -rendered in order of appearance in the diagram source text. Sometimes you might want to show the participants in a -different order than how they appear in the first message. It is possible to specify the actor's order of -appearance by doing the following: - -```mermaid-example -sequenceDiagram - participant Alice - participant Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -```mermaid -sequenceDiagram - participant Alice - participant Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -### Actors - -If you specifically want to use the actor symbol instead of a rectangle with text you can do so by using actor statements as per below. - -```mermaid-example -sequenceDiagram - actor Alice - actor Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -```mermaid -sequenceDiagram - actor Alice - actor Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -### Aliases - -The actor can have a convenient identifier and a descriptive label. - -```mermaid-example -sequenceDiagram - participant A as Alice - participant J as John - A->>J: Hello John, how are you? - J->>A: Great! -``` - -```mermaid -sequenceDiagram - participant A as Alice - participant J as John - A->>J: Hello John, how are you? - J->>A: Great! -``` - -## Messages - -Messages can be of two displayed either solid or with a dotted line. - - [Actor][Arrow][Actor]:Message text - -There are eight types of arrows currently supported: - -| Type | Description | -| ---- | ------------------------------------------------ | -| -> | Solid line without arrow | -| --> | Dotted line without arrow | -| ->> | Solid line with arrowhead | -| -->> | Dotted line with arrowhead | -| -x | Solid line with a cross at the end | -| --x | Dotted line with a cross at the end. | -| -) | Solid line with an open arrow at the end (async) | -| --) | Dotted line with a open arrow at the end (async) | - -## Activations - -It is possible to activate and deactivate an actor. (de)activation can be dedicated declarations: - -```mermaid-example -sequenceDiagram - Alice->>John: Hello John, how are you? - activate John - John-->>Alice: Great! - deactivate John -``` - -```mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - activate John - John-->>Alice: Great! - deactivate John -``` - -There is also a shortcut notation by appending `+`/`-` suffix to the message arrow: - -```mermaid-example -sequenceDiagram - Alice->>+John: Hello John, how are you? - John-->>-Alice: Great! -``` - -```mermaid -sequenceDiagram - Alice->>+John: Hello John, how are you? - John-->>-Alice: Great! -``` - -Activations can be stacked for same actor: - -```mermaid-example -sequenceDiagram - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - John-->>-Alice: I feel great! -``` - -```mermaid -sequenceDiagram - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - John-->>-Alice: I feel great! -``` - -## Notes - -It is possible to add notes to a sequence diagram. This is done by the notation -Note \[ right of | left of | over ] \[Actor]: Text in note content - -See the example below: - -```mermaid-example -sequenceDiagram - participant John - Note right of John: Text in note -``` - -```mermaid -sequenceDiagram - participant John - Note right of John: Text in note -``` - -It is also possible to create notes spanning two participants: - -```mermaid-example -sequenceDiagram - Alice->John: Hello John, how are you? - Note over Alice,John: A typical interaction -``` - -```mermaid -sequenceDiagram - Alice->John: Hello John, how are you? - Note over Alice,John: A typical interaction -``` - -## Loops - -It is possible to express loops in a sequence diagram. This is done by the notation - - loop Loop text - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - Alice->John: Hello John, how are you? - loop Every minute - John-->Alice: Great! - end -``` - -```mermaid -sequenceDiagram - Alice->John: Hello John, how are you? - loop Every minute - John-->Alice: Great! - end -``` - -## Alt - -It is possible to express alternative paths in a sequence diagram. This is done by the notation - - alt Describing text - ... statements ... - else - ... statements ... - end - -or if there is sequence that is optional (if without else). - - opt Describing text - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - opt Extra response - Bob->>Alice: Thanks for asking - end -``` - -```mermaid -sequenceDiagram - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - opt Extra response - Bob->>Alice: Thanks for asking - end -``` - -## Parallel - -It is possible to show actions that are happening in parallel. - -This is done by the notation - - par [Action 1] - ... statements ... - and [Action 2] - ... statements ... - and [Action N] - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - par Alice to Bob - Alice->>Bob: Hello guys! - and Alice to John - Alice->>John: Hello guys! - end - Bob-->>Alice: Hi Alice! - John-->>Alice: Hi Alice! -``` - -```mermaid -sequenceDiagram - par Alice to Bob - Alice->>Bob: Hello guys! - and Alice to John - Alice->>John: Hello guys! - end - Bob-->>Alice: Hi Alice! - John-->>Alice: Hi Alice! -``` - -It is also possible to nest parallel blocks. - -```mermaid-example -sequenceDiagram - par Alice to Bob - Alice->>Bob: Go help John - and Alice to John - Alice->>John: I want this done today - par John to Charlie - John->>Charlie: Can we do this today? - and John to Diana - John->>Diana: Can you help us today? - end - end -``` - -```mermaid -sequenceDiagram - par Alice to Bob - Alice->>Bob: Go help John - and Alice to John - Alice->>John: I want this done today - par John to Charlie - John->>Charlie: Can we do this today? - and John to Diana - John->>Diana: Can you help us today? - end - end -``` - -## Critical Region - -It is possible to show actions that must happen automatically with conditional handling of circumstances. - -This is done by the notation - - critical [Action that must be performed] - ... statements ... - option [Circumstance A] - ... statements ... - option [Circumstance B] - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - option Network timeout - Service-->Service: Log error - option Credentials rejected - Service-->Service: Log different error - end -``` - -```mermaid -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - option Network timeout - Service-->Service: Log error - option Credentials rejected - Service-->Service: Log different error - end -``` - -It is also possible to have no options at all - -```mermaid-example -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - end -``` - -```mermaid -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - end -``` - -This critical block can also be nested, equivalently to the `par` statement as seen above. - -## Break - -It is possible to indicate a stop of the sequence within the flow (usually used to model exceptions). - -This is done by the notation - - break [something happened] - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - Consumer-->API: Book something - API-->BookingService: Start booking process - break when the booking process fails - API-->Consumer: show failure - end - API-->BillingService: Start billing process -``` - -```mermaid -sequenceDiagram - Consumer-->API: Book something - API-->BookingService: Start booking process - break when the booking process fails - API-->Consumer: show failure - end - API-->BillingService: Start billing process -``` - -## Background Highlighting - -It is possible to highlight flows by providing colored background rects. This is done by the notation - -The colors are defined using rgb and rgba syntax. - - rect rgb(0, 255, 0) - ... content ... - end - -<!----> - - rect rgba(0, 0, 255, .1) - ... content ... - end - -See the examples below: - -```mermaid-example -sequenceDiagram - participant Alice - participant John - - rect rgb(191, 223, 255) - note right of Alice: Alice calls John. - Alice->>+John: Hello John, how are you? - rect rgb(200, 150, 255) - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - end - John-->>-Alice: I feel great! - end - Alice ->>+ John: Did you want to go to the game tonight? - John -->>- Alice: Yeah! See you there. - -``` - -```mermaid -sequenceDiagram - participant Alice - participant John - - rect rgb(191, 223, 255) - note right of Alice: Alice calls John. - Alice->>+John: Hello John, how are you? - rect rgb(200, 150, 255) - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - end - John-->>-Alice: I feel great! - end - Alice ->>+ John: Did you want to go to the game tonight? - John -->>- Alice: Yeah! See you there. - -``` - -## Comments - -Comments can be entered within a sequence diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax - -```mermaid-example -sequenceDiagram - Alice->>John: Hello John, how are you? - %% this is a comment - John-->>Alice: Great! -``` - -```mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - %% this is a comment - John-->>Alice: Great! -``` - -## Entity codes to escape characters - -It is possible to escape characters using the syntax exemplified here. - -```mermaid-example -sequenceDiagram - A->>B: I #9829; you! - B->>A: I #9829; you #infin; times more! -``` - -```mermaid -sequenceDiagram - A->>B: I #9829; you! - B->>A: I #9829; you #infin; times more! -``` - -Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. - -Because semicolons can be used instead of line breaks to define the markup, you need to use `#59;` to include a semicolon in message text. - -## sequenceNumbers - -It is possible to get a sequence number attached to each arrow in a sequence diagram. This can be configured when adding mermaid to the website as shown below: - -```html -<script> - mermaid.initialize({ sequence: { showSequenceNumbers: true } }); -</script> -``` - -It can also be be turned on via the diagram code as in the diagram: - -```mermaid-example -sequenceDiagram - autonumber - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram - autonumber - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -## Actor Menus - -Actors can have popup-menus containing individualized links to external pages. For example, if an actor represented a web service, useful links might include a link to the service health dashboard, repo containing the code for the service, or a wiki page describing the service. - -This can be configured by adding one or more link lines with the format: - - link <actor>: <link-label> @ <link-url> - -```mermaid-example -sequenceDiagram - participant Alice - participant John - link Alice: Dashboard @ https://dashboard.contoso.com/alice - link Alice: Wiki @ https://wiki.contoso.com/alice - link John: Dashboard @ https://dashboard.contoso.com/john - link John: Wiki @ https://wiki.contoso.com/john - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid -sequenceDiagram - participant Alice - participant John - link Alice: Dashboard @ https://dashboard.contoso.com/alice - link Alice: Wiki @ https://wiki.contoso.com/alice - link John: Dashboard @ https://dashboard.contoso.com/john - link John: Wiki @ https://wiki.contoso.com/john - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -#### Advanced Menu Syntax - -There is an advanced syntax that relies on JSON formatting. If you are comfortable with JSON format, then this exists as well. - -This can be configured by adding the links lines with the format: - - links <actor>: <json-formatted link-name link-url pairs> - -An example is below: - -```mermaid-example -sequenceDiagram - participant Alice - participant John - links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} - links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid -sequenceDiagram - participant Alice - participant John - links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} - links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -## Styling - -Styling of a sequence diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/sequence.scss - -### Classes used - -| Class | Description | -| ------------ | ----------------------------------------------------------- | -| actor | Style for the actor box at the top of the diagram. | -| text.actor | Styles for text in the actor box at the top of the diagram. | -| actor-line | The vertical line for an actor. | -| messageLine0 | Styles for the solid message line. | -| messageLine1 | Styles for the dotted message line. | -| messageText | Defines styles for the text on the message arrows. | -| labelBox | Defines styles label to left in a loop. | -| labelText | Styles for the text in label for loops. | -| loopText | Styles for the text in the loop box. | -| loopLine | Defines styles for the lines in the loop box. | -| note | Styles for the note box. | -| noteText | Styles for the text on in the note boxes. | - -### Sample stylesheet - -```css -body { - background: white; -} - -.actor { - stroke: #ccccff; - fill: #ececff; -} -text.actor { - fill: black; - stroke: none; - font-family: Helvetica; -} - -.actor-line { - stroke: grey; -} - -.messageLine0 { - stroke-width: 1.5; - stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; - stroke: black; -} - -.messageLine1 { - stroke-width: 1.5; - stroke-dasharray: '2 2'; - stroke: black; -} - -#arrowhead { - fill: black; -} - -.messageText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-size: 14px; -} - -.labelBox { - stroke: #ccccff; - fill: #ececff; -} - -.labelText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; -} - -.loopText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; -} - -.loopLine { - stroke-width: 2; - stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; - stroke: #ccccff; -} - -.note { - stroke: #decc93; - fill: #fff5ad; -} - -.noteText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-size: 14px; -} -``` - -## Configuration - -Is it possible to adjust the margins for rendering the sequence diagram. - -This is done by defining `mermaid.sequenceConfig` or by the CLI to use a json file with the configuration. -How to use the CLI is described in the [mermaidCLI](mermaidCLI) page. -`mermaid.sequenceConfig` can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.sequenceConfig = { - diagramMarginX: 50, - diagramMarginY: 10, - boxTextMargin: 5, - noteMargin: 10, - messageMargin: 35, - mirrorActors: true, -}; -``` - -### Possible configuration parameters: - -| Parameter | Description | Default value | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ | -| mirrorActors | Turns on/off the rendering of actors below the diagram as well as above it | false | -| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | -| actorFontSize | Sets the font size for the actor's description | 14 | -| actorFontFamily | Sets the font family for the actor's description | "Open Sans", sans-serif | -| actorFontWeight | Sets the font weight for the actor's description | "Open Sans", sans-serif | -| noteFontSize | Sets the font size for actor-attached notes | 14 | -| noteFontFamily | Sets the font family for actor-attached notes | "trebuchet ms", verdana, arial | -| noteFontWeight | Sets the font weight for actor-attached notes | "trebuchet ms", verdana, arial | -| noteAlign | Sets the text alignment for text in actor-attached notes | center | -| messageFontSize | Sets the font size for actor<->actor messages | 16 | -| messageFontFamily | Sets the font family for actor<->actor messages | "trebuchet ms", verdana, arial | -| messageFontWeight | Sets the font weight for actor<->actor messages | "trebuchet ms", verdana, arial | diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 9f36744548..fc0ae1ae94 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -32,8 +32,8 @@ "build": "pnpm clean; pnpm build:esbuild", "dev": "node .esbuild/serve.cjs", "predocs:build": "rimraf docs && pnpm docs:code", - "docs:build": "ts-node-esm src/docs.mts", - "docs:verify": "pnpm docs:build --verify", + "docs:build": "rimraf ../../docs; ts-node-esm src/docs.mts", + "docs:verify": "ts-node-esm src/docs.mts --verify", "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", "predocs:dev": "pnpm docs:code", "docs:dev": "vitepress dev src/docs", diff --git a/packages/mermaid/src/docs/public/android-icon-144x144.png b/packages/mermaid/src/docs/public/android-icon-144x144.png deleted file mode 100644 index 2e2f24bbae040525bdbe619c81106693f2e39d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4524 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 diff --git a/packages/mermaid/src/docs/public/android-icon-192x192.png b/packages/mermaid/src/docs/public/android-icon-192x192.png deleted file mode 100644 index 5f6c40128d6c99c2382b162c034dea1f7e1a0cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5257 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 diff --git a/packages/mermaid/src/docs/public/android-icon-36x36.png b/packages/mermaid/src/docs/public/android-icon-36x36.png deleted file mode 100644 index 40b1140fa1c1fd11a205c9316a2f517d6263f403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1513 zcmc(ec~H|w6vr2=g@R&iD{38EL{VEL7ZBiw27-YQfyimA9j1ijmt)KY`6UR!k}Ba) zv17}Cw|G!20vbzd1uLQ$8K^fRP>7(8SDjKtf?(wJN2fET&h+o@?CzVl@AG~8c6YWo zUcj5~_JJEhXgWWdn@HM46T@{1Id|G*)uee#%8BD3Wd7RSA)HG3UZUv4ID~Q*BV^1+ zXpCGkK0-)GN9ai!LfB4(W^48~BrHeB=|p^NawG`=OY^_=Ks5wq05=C#W<#hJ0@UEI zf<O&~5)fs8=9|!U4=!{-#TihPLzo@{R1ls8%5pe-7B1d`?)%Vq1vncZDi?Ym0NI9L zg7r4&_rr1mR_MTR5ZZdc{t|BX16v1e-C!Su<5q~@49Nvxz63AF;M@(swD8?IxN!&8 z6+_x~=(-PkeuA-AaLop*H$jpKZr=k%8Srx9x(#YtAS4rNTj27q5RnaAYv8#ZWTlX~ z2gb*tqz+<@(9sV~*TLEe?L8p*2KpYtm;+up;ENLIybJ5Lz&JqaHi$EVr41afq4py1 zH$rO{FqKg7Jrq{M;1E0>gp>lf+6UMAAS??k?NDb;Gu-`we6x><L_rcl9->Pl_LkIX zi;upj@TsbF6AwRIWBu{B$Mr+MuXaDM&t=d%<<t|4Ym2!zh!i=c$MCq^(fXauq~k*H z<04%ixXtu*_Z<y0`H|sDK9`dm++NusO*$V=dAr|TAIUY3)ESKBUB$CXeijbSH(a9H zZLizCPe*H_pEr-h*zNoIDm}B1a@gI?!^xCiVB*nT89NdVR=m5h{wq$yoNGl4&x^b2 z<8z%?bubZsDR-XF!e_-96{$Ue#jOf+8KrD!$}*~D-DP%udz<ek$EuZV>$5<MZg_f$ z{z~EQ-BUR-xpMuILj$2$W5bHt59e;Ou?LoHA9p(Ly?NyYo3-`m)7TBM6o2+Wf;e*v zwW@fUS?OQDB9zzaa83>OTsyjFZ%jRH+40hvRl_}4*@Cp7BPEw>l`ei+`n98b(ctMt zmOQVNLP3)-$HPFxo)QS;W=)jK^R31M3X0<{`{4l1d0b&X&(k+heHQY<>*~~tv^j>6 z^$yA(WrlYwofOw?{R0VOUGKTCDr(C0yx#7c!0qZ@=3PGDcVUdF$foGcoB5h&3oD%| z1)_0zMxM^-?L1W2H*eliul^H3y&oOP`MikF5%w&dWvY_zdNHkZSEcEsmLj5CkL~Dv zdgj0}Dyzw>`^b#<zdd_m>EWH6JI&R@o1NNrM3HakLqvW?h=l}>i8680ASRv3^kdNd z7(vNQCdOc3{w!ZQ9i!9pZpB~tmq4i&%O%<WE$}FMlt&7@CU(%OB}A4m6Gt+F&}cCl zO|BG5adOB->#6EY>6xqZ_mS+J2{u`#Q>J4WS1r;haTS4K@g%B6j4EiPy}|G&vS3&= zE|<y(#0X)Ar)H#(%<M^d{$@UviwW5Ta<gWED~ZgVgv7~}IFYTv(O*^3G%9J>$u)vE z^28;R6k@PgEP6lyD}*)hC8dx=W=zVHB+tPSJtCs?5c??^S~Dq>lE_CAxdJDTPE)D~ zg<49J2=#K2TBW7^bLF%^9LJd=Mt~%cl^!G!iy0w!x=@rJAY_IF2Qx!(Dyg87^|?m< QGVucuKT^Q0i%8q_CypP#_5c6? diff --git a/packages/mermaid/src/docs/public/android-icon-48x48.png b/packages/mermaid/src/docs/public/android-icon-48x48.png deleted file mode 100644 index c81790b8448ce6af4a7a307ab7a304e293300186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1791 zcmd6lc~DbV6vm&Rh!8Yrkr0)FirC8X5<(zP1%V&|ghq^8MVjq}ge@4JR*)hn0iv{m z6;P|VfeIobic{2DK&5O|0i|f!D~O1QvM8IUk4|T5o$3F*bMHNK@A-Y-UFK-`z8(g8 zbUg$?3_N*UKQf||Lsy%eg-tVx$S^g~#m5CfE+5bz7fmDAW)hyC4}wH3L6F#Z1Q{i_ zV!IJ!J1OiDA_#UEL5#zXU0=HbLA0p+H3D}M0CxEQtFx5A3Ils3U@F*<2wV2SIyLaV zffWP@)F4OzM-}j*p}q}X4?#~qG(Urz4<P<LY)*pB8c4{2TeZ;g4BiYw^%HQ71dnKF z?gFw+yocU5aJ32~DS$-)o(k8h;pH26*bc5c!DT1ZwnG0PoVf+wyTK<GvVVrk$FOoc za8z)m65hXu`%Mt=Er<_5T`M?jgO+ZP9fY7X=;(p*3FsdJ|NS8R4%&O*#cSA@2vv{4 zD+ca1fPFaZIt8O+FfjqgisATmcsl}7Ct>w2`1N;q)&~`h5Rw6Tci_TpP#l88*I;ZM z2H(QS7^D|LK{+_>0B#iIm&3bJaNYrju0Zc=I9Lc_hoS8`1gC>TI6Qv^oi9O}3YrTr zG73q#@LLDCMZ))mkbV{H!r<*F3=G4Ie&`#3?pLsOFRV|1rY`V}gXIMH#Xo<X`JAi? zl<@OiN0t{F|74_bkBv4Zv~^;<S)rf&?yY8q)^PBYrDKV;eM2uF#EmvRvKW-Bb%Po# zt@H>ZQaeTL?ZNdm5p8QF7t;w(ANT29dWLiLmyI~9t;xC*cye6?yk8_jp-?K8iEukJ zq_L6XSWGjCjZOU_G2=jrirQvO{X{%9$9S&!YL0HwK8+od*H69JQnJd=>uB7OjGaR| zI=xJa)p(XXB~2o<aQ`VTZiRMfKX;lQB`e2)A0Lden5^>bD%w&_e(9ZuHBDu86}sz+ zQd6_lX-A3-a&;tImhYPGVHs%b&9Yvdo*&j{Ix{n%rTjcSI(j0u#Mum8+DJXsggP!} z)qJ{mj%nOkb7s{nt<w^5J4X4V<K?Nc85(&E&nuzoU3S)4mv5BEGE=qY7}Rj<g-<CN z1JzYJFVK6HYW>b)lheVx>cr|%&RithKz~1V;a!Vvdh#M~!@8Jkr}6|mho{x4F`^l6 z+^kNylwY|f*Zs%ZOZldYIw;BW=&5T$KL1SDt%L1Bm&j2x#O00ptKfOFE%O$b*74|+ zgBWHQwBiP}w=Z*zb_nUZYhb(}_FjXNB#%x>9<vmPa!)kQjXRXQmPMm|addt{eoWOv z?o;W3+|m-qh$n<#$ka}DS~`biP*M<dLY)^gJl{<aNiondibyRBYKb27Ps%B66i;z= zD|am;9gRyLowF*h=-R}xs@$wsUtlGlVMtHbYx9&A7n?Ka{u@hJdH(iXds=?L96m)y zq~9?6OsTLrDtH-M5MUItDp^O{%@H;8)pj~rvC1_~SIdjio2B5(_~to&0$kK4SmeI< zy3XFKCzrnNu`i;T(A0MpYi2GCUBH*P`DbiRr*#%aeTk)XCCA@7c5}~?fRpEQvhpsP zPZ7*QsFz1qsvNVnk|k$BxNjn)A_B)GDx3@m6J;{38K^bGLBM2U3<hS$UWTF=itc{I zzx^*ks8XtsMgF&7W>WWVQeZZDLWELAd@WMph@2q8BQRTAMW`qcCx=23Y@<{K-n_ry zILXo`S%G|es2IbzO3C(6JdD6FK8Z#kjB{|q_9Mn~(gnkKxFS$aAPf$3)z)q6NyhjC zpTC)n3MnC<MC$X*bxFkJ1H?xWiW8CHIP%x6Y{SC>oeMYke&pjLASr~wX0uTii_KxT z$50bVWYz~h>l9Hqg1WjMI_=a;rZ#+#TJPtH$P^(s`E=XRFd{@5Xe$%#P)L+v5w`z) zxvf2p<4g&IC9`LX9b{4|gM*7j5;04}<TyGqIk*j}up#fKySk>7JOS}^_vPlh3itd8 DPk=nf diff --git a/packages/mermaid/src/docs/public/android-icon-72x72.png b/packages/mermaid/src/docs/public/android-icon-72x72.png deleted file mode 100644 index 1866eb50e872df092eef4b880cafaa1d519fd2c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2283 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 H?iurMZntb< diff --git a/packages/mermaid/src/docs/public/android-icon-96x96.png b/packages/mermaid/src/docs/public/android-icon-96x96.png deleted file mode 100644 index c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3114 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 GDE;5Y#d$9P diff --git a/packages/mermaid/src/docs/public/apple-icon-114x114.png b/packages/mermaid/src/docs/public/apple-icon-114x114.png deleted file mode 100644 index ba11f97b149eebd6f9dd3c57719255481d78d254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3648 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 Xs;vH?=A%zpI{;Q@cBYLuuf%@?B-v8x diff --git a/packages/mermaid/src/docs/public/apple-icon-120x120.png b/packages/mermaid/src/docs/public/apple-icon-120x120.png deleted file mode 100644 index 05f58d8011a163598d6bbdbaaad9f75916dbd9be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3781 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 F{{!c=pk)96 diff --git a/packages/mermaid/src/docs/public/apple-icon-144x144.png b/packages/mermaid/src/docs/public/apple-icon-144x144.png deleted file mode 100644 index 2e2f24bbae040525bdbe619c81106693f2e39d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4524 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 diff --git a/packages/mermaid/src/docs/public/apple-icon-152x152.png b/packages/mermaid/src/docs/public/apple-icon-152x152.png deleted file mode 100644 index f5a82583c0143bc8358c31426581fc023e9bf8f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4819 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 QNgV)4T@#%eElkXR0O$mp_5c6? diff --git a/packages/mermaid/src/docs/public/apple-icon-180x180.png b/packages/mermaid/src/docs/public/apple-icon-180x180.png deleted file mode 100644 index 752c4dcf675ec2d88b862862443eaca053fab8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5852 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 diff --git a/packages/mermaid/src/docs/public/apple-icon-57x57.png b/packages/mermaid/src/docs/public/apple-icon-57x57.png deleted file mode 100644 index 653687ee2bc48321bb9abb4d39e21b158d3d9c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1989 zcmd6lc~Fzr8pc2HA{MGu!76vG7ZAOT8nOt%e1fut)vy^9p{ODG2q}gHNI+Q?kWDsa z5eKmfC@p%mVpU|h5(rSXf-L2V76i&xAP5Q=h`jfs)0x`N^#7hY=Y7xed!Dn*Npf+r zU90g=4Fo~f+S^&X;hDbD)~v!~MSbvNJpF@b!L&e-`{|lWwi-Ux<=D9~5hQFUf}D** zkVSmz>==Sb$O!VwNd!T25oELIYPqW^f~ay`4zU<G05lQM0)LHo=Wkz)g<uo_MnW(a zfpr*oU4Uar;1&lq5kL=uy#as*gIy#Xjswpm@JfcT8!-JA#^lg70N*u1`aL+A1_wjH zJQTPWA+r=7w?NMzj8B974MY||R3W@y2D~gU!_+Lux*@U<EYE;VIK&l0<8yfZ7L@NH zx(FospjZUKW!NtU$yI3Xg+(POmLMn(_*t-^fNSO87!6-b;mtg-)8Xke@Jxor|H1Gi zxW+<9KeW7nqlv&ygYE&S>4F=T@T?Eq<KaXqycmW{rQn|fv-42Z4o%PDm)GE(0`)zx zq=bShFcm}i4H%vRssO&shM76AI1NubprjToPeb_+aK8b#889k`5jiB3!1NpF8-wIK zFf;)X1z;+HtOrnB4f6`fD+4nL<UWG2X-K^b`vRf!6|l~Ov=f-;z#|cQhM@HYILE-m z4Dd4HQ8UcF15O6K9D(*exLXJNg5Zt}avy?8Al#}36A?_#K+<injR01>LD_Enn<1#! z&FL_nRmm~!Z<pWCHiZ#XHiq;nJHK4JwP<l6M|(q-<{amFv%bRr@yMH@Z<n|owKE<c zpI?(XzfN{kZ*IW*9j;dKakRDe&hICy-~)BBJ(Hn6qOsvq%{@G?^=Y_yrM<NU%dTOn zXY@p;`4;up7pUCiWZmo97m0?V1ED<{G=0y_j<<`hf4#{yKC$fI>#Q07(OlS;xJr6H z{9bfZy+fYAo84@0f5l6){sTS!9c^lQab@SCmQ~Khnloc!tSoD5=mzmat8G92$gS=R z9du97yAw?eMtb`znM_tsCzwz@e?qT3DjcM1Z@clZaEp~{g3@N<ERw{@c$(8XV?fYR z8;d~*pSu(vV)UB)m~B*~6(ikF(bHZymO{|;FigF5h5qD0iz#K-uI&T7(bmSV{4Y61 zU8|!;OKTVxG__HVrw8kcQtmf(<tg6}&$>x<ypAc7vt<=0>Pou(PYr$-NhDp)4v}U{ zhTVPnUgc3%lGdkBdQr6}_m7XIVu#h{s^eQz<yY#7v)z{>ZigTLR@gdqQ~V+%kLT0i zv@5gB=dy02-0ZH}P}NdV?UH5+^`mwJ;)ZowwGZZRLt9d46(-L5itWTh&s?=uzZ9kD z?C*2fWMF72W##W#U8u-P)!7~R`A?DN&OLiEo@d*&2h{DOw-XCwg3Y<;z~Ig1$?8qc zjy9@K!cqy9QA0a}BX=h(W+0ER%=J!ZIgq^M4%2&%42Cm}WA1hJo5VVgD@ (Wa- zmQeP|xRSpun^4o>ymhj6l&BJV#4LNimt@0fvzgTjSU+Bp(<tZ3Dh^qwo>{KZ{BOjL z*yN3NJHpi$Dn~5xjnF=FX_Xes;nhT+!}Yn(T#12w;YrH&cy~vU*zxBE=j+EqqH?|` zdBiFgnfiI-(S+uOw9;#R%6H!|YVP%W%X7^y$hx%d*w6oKRYz#X#<rbO6hk$h5%#)_ zd3cj|YMoE*+|gjGXGpbCze>Jn^|HugYJ%C+^lAD~U}mx3RIYLNoW}aEGIEQs;9JbL zkg5>ffa;W=v$~9|P6DOqCXZ_qsIOeLR>R?{K2dfW|Jpmm3=c7vEyhqz5QZm&N~ThY z6f%)w!lF`93I*Lu+f62;WO8)3OYI*70wI_0d*-hN>k`MJae?m24#7fSaVR?oL;S>I zQ7}p(@da!ihBrRP-%uFDt8Du$A7{6$uq;1`zz0RGg&c_h3lO8I3yuaOlwznL{fV(( zaY0c#jL-8EBNRH-+&j=6XEuM}^BZ%N&lUTvAf0#g*5HWF2MCidz{F=n81n0>NTLAV z!O|m6fAV3na0;Q&Xf(2s5sgk8h+3b3BcFWWbC@57A!JL-tbzlR_|lONmfYR!5nui( z48J-_5FkD!<dJ;YA$*Q7Aei*~laq`w45M-=M!v>09}{0LmqN#U*c=}tHkH0_AC-<7 Z;tE6jd~0l4r1%bqJ;TZRuI0&?{{u}q)T{si diff --git a/packages/mermaid/src/docs/public/apple-icon-60x60.png b/packages/mermaid/src/docs/public/apple-icon-60x60.png deleted file mode 100644 index e27a4529bd3d898bd69fc0476a80a1d16c1d61de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2047 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 R$M?w$1k1$ISiIXc>JMR<`dt73 diff --git a/packages/mermaid/src/docs/public/apple-icon-72x72.png b/packages/mermaid/src/docs/public/apple-icon-72x72.png deleted file mode 100644 index 4c05a3c1bc9d842a37d121e169bb9406d300c200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2283 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 G?7sn-6KmK2 diff --git a/packages/mermaid/src/docs/public/apple-icon-76x76.png b/packages/mermaid/src/docs/public/apple-icon-76x76.png deleted file mode 100644 index 4dae6668d49d8dd866a4fc30f807bf70f5dcd607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2421 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 O84wGaHMPjZHS8bSzsFDj diff --git a/packages/mermaid/src/docs/public/apple-icon-precomposed.png b/packages/mermaid/src/docs/public/apple-icon-precomposed.png deleted file mode 100644 index 620c2b691ddb8dd383b9642ad23c437ae9d683b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 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 diff --git a/packages/mermaid/src/docs/public/apple-icon.png b/packages/mermaid/src/docs/public/apple-icon.png deleted file mode 100644 index 620c2b691ddb8dd383b9642ad23c437ae9d683b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 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 diff --git a/packages/mermaid/src/docs/public/browserconfig.xml b/packages/mermaid/src/docs/public/browserconfig.xml deleted file mode 100644 index c554148223..0000000000 --- a/packages/mermaid/src/docs/public/browserconfig.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig> \ No newline at end of file diff --git a/packages/mermaid/src/docs/public/favicon-16x16.png b/packages/mermaid/src/docs/public/favicon-16x16.png deleted file mode 100644 index 238b81faf7fd711edb00319fc8f16625dfe3f03b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcmbV|drVVT7{CuO6j2mo6dzI1fR7;Dhvh<V>I5v%E3_-6MU7MG<F?$5_Lg$M`2;}} z=Y$yF2L9QyEym3RqA`F9!s07nF=QjeCB|3N$<#zGkw^GEH726T{@Ka-&X@1|e&6dH z((AILBIidUgrWqE+CX%4P$I&}yCQK$K2cvd(zWRbHPufYGlvs9)~YdR5!$&7q00RT zjSyF*AE7cDp=X5%@uv}raW}N)sYu|VKG&EDocsUWWEobwK;eSCYS{A=Y&!xf3<??6 zltEz~d{qS{XJL30UJXH;7d9P&&ELb-UU)qOZ%4p+3XC=2e+lFaJOR@I*jNkqeem=- zq?W+BPPpQQ_IvPiJEW9=wi0d+z~~s<=!cvN$gP0ZyD$!Lxf|B+1${L<8iWUa(Cq`I z2Ri#8)dMX(ARULQU%+t;SZDgz(-dUcnb@GqPq;MFwEW_Q;WwjiUyq+33dG%9dNe?S zA(otM^~yV!YvPD884KFX$-c;$bEd9xY>uuYt|md9Zk*d^^7c>fq^E`VrVZ#jrX&=v z7;MfS*i{b@8#+7uMRok*oRdALyM*$Fvxi&$p%(e#lPm?ZW;N{o;XBpQTw&>%yK&8b zdo@p9)mVf(&3Whk+8??}Mm+^>Vfe8jBrt*|tutjUyP8(FyaPve`^KW;VsetV{+{wp zV1cH1d&hXJKMbovvg)t7xyr-CVZK0l+p+MF!DlzSTG!sX*!xmm(%7Ohw>Q=<+7r69 ze%^`uE&YFx;p1`UMr<=<k+*t8q7X~7Y$8J^GATxu<r#)w%_Yz@Ptz5D>bpKkaLP8x zzT>|Wrq}u_NJ4C|L#b@X+sz&k6=Ccy<ta*XnjIn$$@*=Q>~UQ2E^H+1+#qW#Dsx(R zUM*Y8oT3Z!yq=(?i1`)TsLvQ7ScT^`qU0#Th*7d>TS`oXiJ4I61G7Q0;i4eY_uG;P zg3OzMXeFnJceq9Lek#iCa;$AG(0x`%Ya|q6IF6$g3QoyA+#7w6ATuV^$(MGDh|b73 z{^OVbl2E~fkjWq*yHqTa)hVY77t0RHZZ4Osva6K(_~lfxD2l9=QP`6?ON!lQW0a!B iY_%xNtTHu~Rf<U@BZ<rxk=1>jbU;F;PJJPxu<9Mpo~<GP diff --git a/packages/mermaid/src/docs/public/favicon-32x32.png b/packages/mermaid/src/docs/public/favicon-32x32.png deleted file mode 100644 index 7df5e64fcb52963a16f91ff447b374779ec4bb39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmcJLc~I147{^}(k{}J^&>U^RsF*nRV0T%5O0c*Ktgu9|vQ1F1yZm-pU=P?IcLFAt z+zlAa08SWX5F(-w3djHxn#4eIN|SMnT#_6@#F0-wnr0$r`m=Z5=Y8gVzn|xLpYy&x z9{UUr8zO}E@jbbIq_@~H16}guR%LgSPEXDea1gpyV6-jP-w~yregcFN-$W=i4WUi) zDRma17%D>ZAqZim2p!av-+J!^LOTAw-a;O*H2=$HM*&j}4k}=%fE^7fRnXc8Rqb&8 z8;}+PriJWU__7_^`XQql%9?>(OKWiB9>|NpQ3H+lV0jH{x`3gE+$-?w3KZ6Za}2n| zLh*HY@)Sy&Af^H~w_$S&DqG=13@|lNbsM&}VSNKsrNB>y(J9#2g1kET^cwv55V(m@ z)BrP2AUF>s1+cIT@1BK$acH;;SG(a<GCW>_)pc0=9cC9HsS@TEL0JNW6A<|s1Y|=0 z&mc?(x)LHwVC6SZT!5RskY5Mo&5%_C;TNE(2O4|8F)DW`XM~*l5yH>MA30UbJbP5` z{nG<4Y;2hM`Sj@1wLeD61|3cft-k%sbR5a)NW46_cD-X9XY#U_;0t(rrwtF78`;VO zjq^$Q13s4{WcM@{iA0^$Lm9ezvUSt4vy%n$dqk!lM^jDA%%apBU+#BjpMi~+-&k~7 z{3C4<WpQh@oN<|F@L)l(|Lb#Ia}Abx)8=7WEoPNXvBv!q9DCzQUWKG1^N6IQVDwl| zsr7J>WxQ+MORtzLjrT8kT6@<pU(9sB)BRSxrFBv9{pvY`kgxi<vY8tpA2IbBTy1Ra z?IK>t@1Bfoxm4OYe>i8@k!8ZZ)!55A&X-&i#}(j&OZr6WI^#^(MV;c;U%Nk5G~jS1 zw|Y7-H8HvJPKju<@OHPkj^|3o%(rnL_gZbV3H3cg7pv2~%}-uI>=MVV?Q;(U^(+d~ z!-M1L_Cv>9mp9VamqlM(Jzx<u>Bi64+><cXd0b&(>e5`e>B8BtO;HqU!*zAW%fte! z!L<>O$EHR)gLdXYcg>C0oZAfa_1%N(SCW!iRqcad^!?)Xh(18YV>zOmt+iI<;NKv4 z?-QY70>`A$IO!0bN~hb=sCG0*A)SuVXqW@bhDyb#)RZCLu73q6)u9Sm!hZ+s&zemk z11xqbXw@<zP8^M+FoMu%F$zVY6w7ha6w(NLb+o*-?`Q?d9@=4rVKGVxhH=%>7$vSE zFwB=kwTN~ZS}4yk{GBWq=7}rhVFaQ%(Oo}`I!!VMcjft;5h+56upMNe*3y7PUfqQV z6iS>((BSB=t|%In+@&GF=eaxrAxR+`i^ZZc7%V5&M6z)viM+fkkG~=jM^rbr;!E!= zkW#=d>9ijo$rO<|`E`m?MMSFQ6qz_yAyuoilz&D}Vd6MWm(mzACQITd3k{_?;S#Y_ i!VuG)*lfBJZcj$oll>XE|Ik5JKzyDLx6Uo(lRp8<VOuQ# diff --git a/packages/mermaid/src/docs/public/favicon-96x96.png b/packages/mermaid/src/docs/public/favicon-96x96.png deleted file mode 100644 index c2a1e3dc8b3bdde7cc6c5014ffb8d7a4d2cf91d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3114 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 GDE;5Y#d$9P diff --git a/packages/mermaid/src/docs/public/favicon.png b/packages/mermaid/src/docs/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..05d8a737bed26f3f59b53eb56ca18a5ee1536dc7 GIT binary patch literal 12392 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 RjQ=12*z-6Y%2}t|{{x!s_j~{V literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/public/favicon.svg b/packages/mermaid/src/docs/public/favicon.svg new file mode 100644 index 0000000000..993c56b940 --- /dev/null +++ b/packages/mermaid/src/docs/public/favicon.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 491 491" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <path d="M490.16,84.61C490.16,37.912 452.248,0 405.55,0L84.61,0C37.912,0 0,37.912 0,84.61L0,405.55C0,452.248 37.912,490.16 84.61,490.16L405.55,490.16C452.248,490.16 490.16,452.248 490.16,405.55L490.16,84.61Z" style="fill:rgb(255,54,112);"/> + <path d="M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z" style="fill:white;fill-rule:nonzero;"/> +</svg> diff --git a/packages/mermaid/src/docs/public/manifest.json b/packages/mermaid/src/docs/public/manifest.json index 3b557aab8c..85c11395ce 100644 --- a/packages/mermaid/src/docs/public/manifest.json +++ b/packages/mermaid/src/docs/public/manifest.json @@ -1,41 +1,14 @@ { - "name": "App", + "short_name": "Mermaid", + "name": "Mermaid JS", "icons": [ { - "src": "/android-icon-36x36.png", - "sizes": "36x36", + "src": "/favicon.png", "type": "image/png", - "density": "0.75" - }, - { - "src": "/android-icon-48x48.png", - "sizes": "48x48", - "type": "image/png", - "density": "1.0" - }, - { - "src": "/android-icon-72x72.png", - "sizes": "72x72", - "type": "image/png", - "density": "1.5" - }, - { - "src": "/android-icon-96x96.png", - "sizes": "96x96", - "type": "image/png", - "density": "2.0" - }, - { - "src": "/android-icon-144x144.png", - "sizes": "144x144", - "type": "image/png", - "density": "3.0" - }, - { - "src": "/android-icon-192x192.png", - "sizes": "192x192", - "type": "image/png", - "density": "4.0" + "sizes": "512x512" } - ] + ], + "background_color": "#6366F1", + "display": "standalone", + "theme_color": "#6366F1" } diff --git a/packages/mermaid/src/docs/public/ms-icon-144x144.png b/packages/mermaid/src/docs/public/ms-icon-144x144.png deleted file mode 100644 index 2e2f24bbae040525bdbe619c81106693f2e39d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4524 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 diff --git a/packages/mermaid/src/docs/public/ms-icon-150x150.png b/packages/mermaid/src/docs/public/ms-icon-150x150.png deleted file mode 100644 index 1785c0f1a0d6b338b8378493a819f5e6cc89abe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4761 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 PD*}MFus5$W^GyB^7T$89 diff --git a/packages/mermaid/src/docs/public/ms-icon-310x310.png b/packages/mermaid/src/docs/public/ms-icon-310x310.png deleted file mode 100644 index 1d0051005cfe054935d8c1e105c5e59013ff6e06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12500 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 R_6cPH09MeDua~ok_-~E6)8GIA diff --git a/packages/mermaid/src/docs/public/ms-icon-70x70.png b/packages/mermaid/src/docs/public/ms-icon-70x70.png deleted file mode 100644 index 26f1b1fa54d8f8a3f5d0817c1a87ca996e51b0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2279 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 Fe*;wrd07Ae From 81d1dd7465524b1fd0f19a9d4acd1934e6c4a5a3 Mon Sep 17 00:00:00 2001 From: ishuen <12228644+ishuen@users.noreply.github.com> Date: Tue, 11 Oct 2022 21:04:06 +0800 Subject: [PATCH 0486/1038] Remove extra arrow and adjust cross position --- .../mermaid/src/diagrams/sequence/svgDraw.js | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index 0dc4377214..ed43735141 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -752,7 +752,7 @@ export const insertSequenceNumber = function (elem) { // .style("fill", '#f00'); }; /** - * Setup arrow head and define the marker. The result is appended to the svg. + * Setup cross head and define the marker. The result is appended to the svg. * * @param {any} elem */ @@ -764,26 +764,16 @@ export const insertArrowCrossHead = function (elem) { .attr('markerWidth', 15) .attr('markerHeight', 8) .attr('orient', 'auto') - .attr('refX', 16) - .attr('refY', 4); - - // The arrow - marker - .append('path') - .attr('fill', 'black') - .attr('stroke', '#000000') - .style('stroke-dasharray', '0, 0') - .attr('stroke-width', '1px') - .attr('d', 'M 9,2 V 6 L16,4 Z'); - + .attr('refX', 4) + .attr('refY', 5); // The cross marker .append('path') .attr('fill', 'none') .attr('stroke', '#000000') .style('stroke-dasharray', '0, 0') - .attr('stroke-width', '1px') - .attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7'); + .attr('stroke-width', '1pt') + .attr('d', 'M 1,2 L 6,7 M 6,2 L 1,7'); // this is actual shape for arrowhead }; From 13e5c5ba7204b830dab8c61bb0a1e0013ac6ad7b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 28 Oct 2022 23:33:57 +0530 Subject: [PATCH 0487/1038] chore: Fix vitepress build --- .gitignore | 3 +- cSpell.json | 1 + docs/.vitepress/blocks-markdown.ts | 25 -- docs/.vitepress/config.ts | 176 ------------ docs/.vitepress/mermaid-markdown-all.ts | 33 --- docs/.vitepress/theme/custom.css | 27 -- docs/.vitepress/theme/index.ts | 12 - docs/config/setup/.nojekyll | 1 - docs/index.md | 140 --------- docs/vite.config.ts | 46 --- packages/mermaid/package.json | 14 +- packages/mermaid/src/docs.mts | 32 ++- .../src/docs/.vitepress/blocks-markdown.ts | 25 -- .../mermaid/src/docs/.vitepress/config.ts | 17 +- .../docs/.vitepress/mermaid-markdown-all.ts | 63 ++-- .../mermaid/src/docs/config/setup/README.md | 7 + .../src/docs/config/setup/modules/config.md | 270 ++++++++++++++++++ .../config/setup/modules/defaultConfig.md | 50 ++++ .../docs/config/setup/modules/mermaidAPI.md | 57 ++++ 19 files changed, 464 insertions(+), 535 deletions(-) delete mode 100644 docs/.vitepress/blocks-markdown.ts delete mode 100644 docs/.vitepress/config.ts delete mode 100644 docs/.vitepress/mermaid-markdown-all.ts delete mode 100644 docs/.vitepress/theme/custom.css delete mode 100644 docs/.vitepress/theme/index.ts delete mode 100644 docs/config/setup/.nojekyll delete mode 100644 docs/index.md delete mode 100644 docs/vite.config.ts delete mode 100644 packages/mermaid/src/docs/.vitepress/blocks-markdown.ts create mode 100644 packages/mermaid/src/docs/config/setup/README.md create mode 100644 packages/mermaid/src/docs/config/setup/modules/config.md create mode 100644 packages/mermaid/src/docs/config/setup/modules/defaultConfig.md create mode 100644 packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md diff --git a/.gitignore b/.gitignore index cdd33c2c52..5710769c96 100644 --- a/.gitignore +++ b/.gitignore @@ -33,5 +33,4 @@ cypress/snapshots/ .tsbuildinfo tsconfig.tsbuildinfo -#docs generate from code -packages/mermaid/src/docs/config/setup \ No newline at end of file +packages/mermaid/src/vitepress \ No newline at end of file diff --git a/cSpell.json b/cSpell.json index 4a6d092e96..d5cce0f069 100644 --- a/cSpell.json +++ b/cSpell.json @@ -13,6 +13,7 @@ "Mindmaps", "mitigations", "sandboxed", + "shiki", "Sveidqvist", "verdana", "Visio" diff --git a/docs/.vitepress/blocks-markdown.ts b/docs/.vitepress/blocks-markdown.ts deleted file mode 100644 index 870f1582ce..0000000000 --- a/docs/.vitepress/blocks-markdown.ts +++ /dev/null @@ -1,25 +0,0 @@ -const CustomMarkdown = (md) => { - const fence = md.renderer.rules.fence.bind(md.renderer.rules); - - md.renderer.rules.fence = (tokens, index, options, env, slf) => { - const token = tokens[index]; - - if (token.info.trim() === 'warning') { - return `<div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>${token.content}}</p></div>`; - } - - if (token.info.trim() === 'note') { - return `<div class="tip custom-block"><p class="custom-block-title">NOTE</p><p>${token.content}}</p></div>`; - } - - if (token.info.trim() === 'jison') { - return `<div class="language-"><button class="copy"></button><span class="lang">jison</span><pre><code>${token.content - .replace(/</g, '<') - .replace(/>/g, '>')}}</code></pre></div>`; - } - - return fence(tokens, index, options, env, slf); - }; -}; - -export default CustomMarkdown; diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts deleted file mode 100644 index 23b5d6a851..0000000000 --- a/docs/.vitepress/config.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { version } from '../../../package.json'; -import MermaidExample from './mermaid-markdown-all'; -import { MermaidMarkdown } from 'vitepress-plugin-mermaid'; -import CustomMarkdown from './blocks-markdown'; -import { defineConfig } from 'vitepress'; - -const allMarkdownTransformers = { - config: async (md) => { - MermaidMarkdown(md); - await MermaidExample(md); - CustomMarkdown(md); - }, -}; - -export default defineConfig({ - lang: 'en-US', - title: 'Mermaid', - description: 'Create diagrams and visualizations using text and code.', - base: '/mermaid-js/', - markdown: allMarkdownTransformers, - head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/mermaid-js/favicon.ico' }]], - themeConfig: { - nav: nav(), - editLink: { - pattern: 'https://github.com/mermaid-js/mermaid/edit/develop/packages/mermaid/src/docs/:path', - text: 'Edit this page on GitHub', - }, - - sidebar: { - '/': sidebarAll(), - // "/intro/": sidebarIntro(), - // "/syntax/": sidebarSyntax(), - // "/config": sidebarConfig(), - // "/misc/": sidebarMisc(), - // "/community/": sidebarCommunity(), - }, - }, -}); - -function nav() { - return [ - { text: 'Intro', link: '/intro/', activeMatch: '/intro/' }, - { - text: 'Configuration', - link: '/config/Tutorials', - activeMatch: '/config/', - }, - { text: 'Syntax', link: '/syntax/classDiagram', activeMatch: '/syntax/' }, - { text: 'Misc', link: '/misc/integrations', activeMatch: '/misc/' }, - { - text: 'Community', - link: '/community/n00b-overview', - activeMatch: '/community/', - }, - { - text: version, - items: [ - { - text: 'Changelog', - link: 'https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md', - }, - { - text: 'Contributing', - link: 'https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md', - }, - ], - }, - { - text: '💻 Live Editor', - link: 'https://mermaid.live', - }, - ]; -} - -function sidebarAll() { - return [ - { - text: '📔 Introduction', - collapsible: true, - items: [ - { text: 'About Mermaid', link: '/intro/' }, - { text: 'Deployment', link: '/intro/n00b-gettingStarted' }, - { - text: 'Syntax and Configuration', - link: '/intro/n00b-syntaxReference', - }, - ], - }, - ...sidebarSyntax(), - ...sidebarConfig(), - ...sidebarMisc(), - ...sidebarCommunity(), - // { - // text: "Generated", - // items: [{ text: "modules", link: "docs/code/modules" }], - // }, - ]; -} - -function sidebarSyntax() { - return [ - { - text: '📊 Diagram Syntax', - collapsible: true, - items: [ - { text: 'Flowchart', link: '/syntax/flowchart' }, - { text: 'Sequence Diagram', link: '/syntax/sequenceDiagram' }, - { text: 'Class Diagram', link: '/syntax/classDiagram' }, - { text: 'State Diagram', link: '/syntax/stateDiagram' }, - { - text: 'Entity Relationship Diagram', - link: '/syntax/entityRelationshipDiagram', - }, - { text: 'User Journey', link: '/syntax/userJourney' }, - { text: 'Gantt', link: '/syntax/gantt' }, - { text: 'Pie Chart', link: '/syntax/pie' }, - { text: 'Requirement Diagram', link: '/syntax/requirementDiagram' }, - { text: 'Gitgraph (Git) Diagram 🔥', link: '/syntax/gitGraph' }, - { text: 'C4C Diagram (Context) Diagram 🦺⚠️', link: '/syntax/c4c' }, - { text: 'Other Examples', link: '/syntax/examples' }, - ], - }, - ]; -} - -function sidebarConfig() { - return [ - { - text: '⚙️ Deployment and Configuration', - collapsible: true, - items: [ - { text: 'Tutorials', link: '/config/Tutorials' }, - { text: 'API-Usage', link: '/config/usage' }, - { text: 'Mermaid API Configuration', link: '/config/setup/modules' }, - { text: 'Directives', link: '/config/directives' }, - { text: 'Theming', link: '/config/theming' }, - { text: 'Accessibility', link: '/config/accessibility' }, - { text: 'Mermaid CLI', link: '/config/mermaidCLI' }, - { text: 'Advanced usage', link: '/config/n00b-advanced' }, - { text: 'Configuration', link: '/config/configuration' }, - ], - }, - ]; -} - -function sidebarMisc() { - return [ - { - text: '📚 Misc', - collapsible: true, - items: [ - { text: 'Use-Cases and Integrations', link: '/misc/integrations' }, - { text: 'FAQ', link: '/misc/faq' }, - ], - }, - ]; -} - -function sidebarCommunity() { - return [ - { - text: '🙌 Contributions and Community', - collapsible: true, - items: [ - { text: 'Overview for Beginners', link: '/community/n00b-overview' }, - { - text: 'Development and Contribution', - link: '/community/development', - }, - { text: 'Changelog', link: '/community/CHANGELOG' }, - { text: 'Adding Diagrams', link: '/community/newDiagram' }, - { text: 'Security', link: '/community/security' }, - ], - }, - ]; -} diff --git a/docs/.vitepress/mermaid-markdown-all.ts b/docs/.vitepress/mermaid-markdown-all.ts deleted file mode 100644 index 937e12fc37..0000000000 --- a/docs/.vitepress/mermaid-markdown-all.ts +++ /dev/null @@ -1,33 +0,0 @@ -import shiki from 'shiki'; - -const MermaidExample = async (md) => { - const fence = md.renderer.rules.fence.bind(md.renderer.rules); - - const highlighter = await shiki.getHighlighter({ theme: 'material-palenight' }); - - md.renderer.rules.fence = (tokens, index, options, env, slf) => { - const token = tokens[index]; - // console.log("==>",token.info); - - if (token.info.trim() === 'mermaid-example') { - let code = highlighter.codeToHtml(token.content, { lang: 'mermaid' }); - code = code.replace('#2e3440ff', 'transparent'); - code = code.replace('#292D3E', 'transparent'); - - code = - '<h5>Code:</h5>' + - `<div class="language-mermaid">` + - `<button class="copy"></button><span class="lang">mermaid</span>` + - code + - '</div>'; - - // return code; - return `${code} - <h5>Render:</h5> - <Mermaid id="me${index}" graph="${encodeURIComponent(token.content)}"></Mermaid>`; - } - return fence(tokens, index, options, env, slf); - }; -}; - -export default MermaidExample; diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css deleted file mode 100644 index e1ef049cdf..0000000000 --- a/docs/.vitepress/theme/custom.css +++ /dev/null @@ -1,27 +0,0 @@ -:root { - --vp-c-brand: #ff3670; - --vp-c-brand-light: #ff5e8c; - --vp-c-brand-lighter: #ff85a8; - --vp-c-brand-lightest: #ff9bb7; - --vp-c-brand-dark: #bd34fe; - --vp-c-brand-darker: #9339bd; - --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); -} - -:root { - --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #ff3670); - - --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #ff3670 50%); - --vp-home-hero-image-filter: blur(72px); -} - -.vp-doc > div { - width: 100%; -} - -a.edit { - margin: 12px; - position: relative; - top: 10px; -} diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts deleted file mode 100644 index bcce341a2b..0000000000 --- a/docs/.vitepress/theme/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import DefaultTheme from 'vitepress/theme'; -// @ts-ignore -import Mermaid from 'vitepress-plugin-mermaid/Mermaid.vue'; -import './custom.css'; - -export default { - ...DefaultTheme, - enhanceApp({ app }) { - // register global components - app.component('Mermaid', Mermaid); - }, -}; diff --git a/docs/config/setup/.nojekyll b/docs/config/setup/.nojekyll deleted file mode 100644 index e2ac6616ad..0000000000 --- a/docs/config/setup/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 3c95860056..0000000000 --- a/docs/index.md +++ /dev/null @@ -1,140 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in package/mermaid/src/docs. - ---- - -layout: home - -title: Mermaid -titleTemplate: Diagramming and charting tool - -hero: -name: Mermaid -text: Diagramming and charting tool -tagline: JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. -image: -src: /mermaid-logo.svg -alt: Mermaid -actions: -\- theme: brand -text: Get Started -link: /intro/ -\- theme: alt -text: View on GitHub -link: https://github.com/mermaid-js/mermaid - -features: - -- title: ➕ Easy to use! - details: Mermaid allows even non-programmers to easily create detailed and diagrams through the Mermaid Live Editor. -- title: 🎥 Video Tutorials! - details: Has video tutorials for beginners and advanced users. -- title: 🏆 Award winner! - details: Mermaid was nominated and won the JS Open Source Awards (2019) in the category "The most exciting use of technology"!!! -- title: 🧩 Integrations available! - details: Use Mermaid with your favorite applications, check out the list of Integrations and Usages of Mermaid. - ---- - -<script setup> -import { VPTeamMembers } from 'vitepress/theme' - -const members = [ - { - avatar: 'https://avatars.githubusercontent.com/u/5837277?v=4', - name: 'Knut Sveidqvist', - title: 'Creator', - links: [ - { icon: 'github', link: 'https://github.com/knsv' }, - ] - }, - { - avatar: 'https://avatars.githubusercontent.com/u/1912783?v=4', - name: 'Marc Faber', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://gdfaber.github.io/' }, - { icon: 'linkedin', link: 'https://www.linkedin.com/in/marc-faber/' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/1564825?v=4', - name: 'Nacho Orlandoni', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/IOrlandoni' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/6552521?v=4', - name: 'Christian Klemm', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/klemmchr' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/12032557?v=4', - name: 'Mindaugas Laganeckas', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/MindaugasLaganeckas' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/58763315?v=4', - name: 'Neil Cuzon', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/NeilCuzon' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/19526120?v=4', - name: 'Adrian Hall', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/spopida' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/53054099?v=4', - name: 'Yash Singh', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/Yash-Singh1' }, - ] - }, -] -</script> - -<div class="vp-doc" > - <h2 id="meet-the-team"> Meet The Team </h2> - <VPTeamMembers size="small" :members="members" /> -</div> - -<style> - .image-container .image-src { - margin: 1rem auto; - max-width: 100%; - width: 100%; - } - - .dark .image-src{ - filter: invert(1) hue-rotate(217deg) contrast(0.72); - max-width: 100%; - } - - .vp-doc { - align-items: center; - flex-direction: column; - display: flex; - margin-top: 2.5rem; - } - - .vp-doc h2 { - margin: 48px 0 16px; - border-top: 1px solid var(--vp-c-divider-light); - padding-top: 24px; - letter-spacing: -.02em; - line-height: 32px; - font-size: 24px; -} -</style> diff --git a/docs/vite.config.ts b/docs/vite.config.ts deleted file mode 100644 index bea6fe26d7..0000000000 --- a/docs/vite.config.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { defineConfig, searchForWorkspaceRoot } from 'vite'; -import path from 'path'; -// @ts-ignore: still in alpha -import { SearchPlugin } from 'vitepress-plugin-search'; - -const virtualModuleId = 'virtual:mermaid-config'; -const resolvedVirtualModuleId = '\0' + virtualModuleId; - -export default defineConfig({ - plugins: [ - SearchPlugin(), - { - // TODO: will be fixed in the next vitepress release. - name: 'fix-virtual', - - async resolveId(id) { - if (id === virtualModuleId) { - return resolvedVirtualModuleId; - } - }, - async load(this, id) { - if (id === resolvedVirtualModuleId) { - return `export default ${JSON.stringify({ - securityLevel: 'loose', - startOnLoad: false, - })};`; - } - }, - }, - ], - resolve: { - alias: { - mermaid: path.join(__dirname, '../../dist/mermaid.esm.min.mjs'), // Use this one to build - }, - }, - server: { - fs: { - allow: [ - // search up for workspace root - searchForWorkspaceRoot(process.cwd()), - // Allow serving files from one level up to the project root - path.join(__dirname, '..'), - ], - }, - }, -}); diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index fc0ae1ae94..ad25cd58b3 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -31,15 +31,13 @@ "build:esbuild": "concurrently \"pnpm build:code\" \"pnpm build:types\"", "build": "pnpm clean; pnpm build:esbuild", "dev": "node .esbuild/serve.cjs", - "predocs:build": "rimraf docs && pnpm docs:code", - "docs:build": "rimraf ../../docs; ts-node-esm src/docs.mts", + "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --githubPages false --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", + "docs:build": "rimraf ../../docs && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "ts-node-esm src/docs.mts --verify", - "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", - "predocs:dev": "pnpm docs:code", - "docs:dev": "vitepress dev src/docs", - "predocs:bundle": "pnpm docs:code", - "docs:bundle": "vitepress build src/docs", - "docs:serve": "vitepress serve src/docs", + "docs:build:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", + "docs:dev": "pnpm docs:build:vitepress && vitepress dev src/vitepress", + "docs:bundle": "pnpm docs:build:vitepress && vitepress build src/vitepress", + "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 870aa9e7ba..22d64faf80 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -45,10 +45,15 @@ const MERMAID_MAJOR_VERSION = ( JSON.parse(readFileSync('../mermaid/package.json', 'utf8')).version as string ).split('.')[0]; +const verifyOnly: boolean = process.argv.includes('--verify'); +const git: boolean = process.argv.includes('--git'); +const vitepress: boolean = process.argv.includes('--vitepress'); +const noHeader: boolean = process.argv.includes('--noHeader') || vitepress; + // These paths are from the root of the mono-repo, not from the // mermaid sub-directory const SOURCE_DOCS_DIR = 'src/docs'; -const FINAL_DOCS_DIR = '../../docs'; +const FINAL_DOCS_DIR = vitepress ? 'src/vitepress' : '../../docs'; const AUTOGENERATED_TEXT = `> **Warning** > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. @@ -60,9 +65,6 @@ const LOGMSG_COPIED = `, and copied to ${FINAL_DOCS_DIR}`; const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run pnpm docs:build after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; -const verifyOnly: boolean = process.argv.includes('--verify'); -const git: boolean = process.argv.includes('--git'); - // TODO: Read from .prettierrc? const prettierConfig: prettier.Config = { useTabs: false, @@ -176,8 +178,17 @@ const transformMarkdown = (file: string) => { return [c]; }); - // Add the AUTOGENERATED_TEXT to the start of the file - const transformed = `${AUTOGENERATED_TEXT}\n${remark.stringify(out)}`; + let transformed = remark.stringify(out); + if (!noHeader) { + // Add the AUTOGENERATED_TEXT to the start of the file + transformed = `${AUTOGENERATED_TEXT}\n${transformed}`; + } + + if (vitepress && file === 'src/docs/index.md') { + // Skip transforming index if vitepress is enabled + transformed = doc; + } + const formatted = prettier.format(transformed, { parser: 'markdown', ...prettierConfig, @@ -206,6 +217,11 @@ const transformHtml = (filename: string) => { /<MERMAID_VERSION>/g, MERMAID_MAJOR_VERSION ); + + if (noHeader) { + return fileContents; + } + const jsdom = new JSDOM(fileContents); const htmlDoc = jsdom.window.document; const autoGeneratedComment = jsdom.window.document.createComment(AUTOGENERATED_TEXT); @@ -224,6 +240,10 @@ const transformHtml = (filename: string) => { }; const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { + globs.push('!**/dist'); + if (!vitepress) { + globs.push('!**/.vitepress', '!**/vite.config.ts', '!src/docs/index.md'); + } return await globby(globs, { dot: true }); }; diff --git a/packages/mermaid/src/docs/.vitepress/blocks-markdown.ts b/packages/mermaid/src/docs/.vitepress/blocks-markdown.ts deleted file mode 100644 index 870f1582ce..0000000000 --- a/packages/mermaid/src/docs/.vitepress/blocks-markdown.ts +++ /dev/null @@ -1,25 +0,0 @@ -const CustomMarkdown = (md) => { - const fence = md.renderer.rules.fence.bind(md.renderer.rules); - - md.renderer.rules.fence = (tokens, index, options, env, slf) => { - const token = tokens[index]; - - if (token.info.trim() === 'warning') { - return `<div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>${token.content}}</p></div>`; - } - - if (token.info.trim() === 'note') { - return `<div class="tip custom-block"><p class="custom-block-title">NOTE</p><p>${token.content}}</p></div>`; - } - - if (token.info.trim() === 'jison') { - return `<div class="language-"><button class="copy"></button><span class="lang">jison</span><pre><code>${token.content - .replace(/</g, '<') - .replace(/>/g, '>')}}</code></pre></div>`; - } - - return fence(tokens, index, options, env, slf); - }; -}; - -export default CustomMarkdown; diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 23b5d6a851..2dde653ac4 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -1,14 +1,12 @@ import { version } from '../../../package.json'; import MermaidExample from './mermaid-markdown-all'; import { MermaidMarkdown } from 'vitepress-plugin-mermaid'; -import CustomMarkdown from './blocks-markdown'; -import { defineConfig } from 'vitepress'; +import { defineConfig, MarkdownOptions } from 'vitepress'; -const allMarkdownTransformers = { +const allMarkdownTransformers: MarkdownOptions = { config: async (md) => { - MermaidMarkdown(md); await MermaidExample(md); - CustomMarkdown(md); + MermaidMarkdown(md); }, }; @@ -28,11 +26,6 @@ export default defineConfig({ sidebar: { '/': sidebarAll(), - // "/intro/": sidebarIntro(), - // "/syntax/": sidebarSyntax(), - // "/config": sidebarConfig(), - // "/misc/": sidebarMisc(), - // "/community/": sidebarCommunity(), }, }, }); @@ -90,10 +83,6 @@ function sidebarAll() { ...sidebarConfig(), ...sidebarMisc(), ...sidebarCommunity(), - // { - // text: "Generated", - // items: [{ text: "modules", link: "docs/code/modules" }], - // }, ]; } diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index 937e12fc37..7006f20e9d 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -1,32 +1,55 @@ +import type { MarkdownRenderer } from 'vitepress'; import shiki from 'shiki'; -const MermaidExample = async (md) => { - const fence = md.renderer.rules.fence.bind(md.renderer.rules); +const MermaidExample = async (md: MarkdownRenderer) => { + const defaultRenderer = md.renderer.rules.fence; - const highlighter = await shiki.getHighlighter({ theme: 'material-palenight' }); + if (!defaultRenderer) { + throw new Error('defaultRenderer is undefined'); + } + + const highlighter = await shiki.getHighlighter({ + theme: 'material-palenight', + langs: ['mermaid'], + }); md.renderer.rules.fence = (tokens, index, options, env, slf) => { const token = tokens[index]; - // console.log("==>",token.info); if (token.info.trim() === 'mermaid-example') { - let code = highlighter.codeToHtml(token.content, { lang: 'mermaid' }); - code = code.replace('#2e3440ff', 'transparent'); - code = code.replace('#292D3E', 'transparent'); - - code = - '<h5>Code:</h5>' + - `<div class="language-mermaid">` + - `<button class="copy"></button><span class="lang">mermaid</span>` + - code + - '</div>'; - - // return code; - return `${code} - <h5>Render:</h5> - <Mermaid id="me${index}" graph="${encodeURIComponent(token.content)}"></Mermaid>`; + const highlight = highlighter + .codeToHtml(token.content, { lang: 'mermaid' }) + .replace(/<span/g, '<span v-pre') + .replace('#2e3440ff', 'transparent') + .replace('#292D3E', 'transparent'); + + return `<h5>Code:</h5> + <div class="language-mermaid"> + <button class="copy"></button> + <span class="lang">mermaid</span> +${highlight} + </div> + <h5>Diagram:</h5>`; + } + if (token.info.trim() === 'warning') { + return `<div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>${token.content}}</p></div>`; + } + + if (token.info.trim() === 'note') { + return `<div class="tip custom-block"><p class="custom-block-title">NOTE</p><p>${token.content}}</p></div>`; + } + + if (token.info.trim() === 'jison') { + return `<div class="language-"> + <button class="copy"></button> + <span class="lang">jison</span> + <pre> + <code>${token.content.replace(/</g, '<').replace(/>/g, '>')}</code> + </pre> + </div>`; } - return fence(tokens, index, options, env, slf); + + return defaultRenderer(tokens, index, options, env, slf); }; }; diff --git a/packages/mermaid/src/docs/config/setup/README.md b/packages/mermaid/src/docs/config/setup/README.md new file mode 100644 index 0000000000..c4e280f24b --- /dev/null +++ b/packages/mermaid/src/docs/config/setup/README.md @@ -0,0 +1,7 @@ +# mermaid + +## Modules + +- [config](modules/config.md) +- [defaultConfig](modules/defaultConfig.md) +- [mermaidAPI](modules/mermaidAPI.md) diff --git a/packages/mermaid/src/docs/config/setup/modules/config.md b/packages/mermaid/src/docs/config/setup/modules/config.md new file mode 100644 index 0000000000..f4d7c31555 --- /dev/null +++ b/packages/mermaid/src/docs/config/setup/modules/config.md @@ -0,0 +1,270 @@ +# Module: config + +## Variables + +### <a id="defaultconfig" name="defaultconfig"></a> defaultConfig + +• `Const` **defaultConfig**: `MermaidConfig` + +#### Defined in + +config.ts:7 + +## Functions + +### <a id="adddirective" name="adddirective"></a> addDirective + +▸ **addDirective**(`directive`): `void` + +Pushes in a directive to the configuration + +#### Parameters + +| Name | Type | Description | +| :---------- | :---- | :----------------------- | +| `directive` | `any` | The directive to push in | + +#### Returns + +`void` + +#### Defined in + +config.ts:191 + +--- + +### <a id="getconfig" name="getconfig"></a> getConfig + +▸ **getConfig**(): `MermaidConfig` + +## getConfig + +| Function | Description | Type | Return Values | +| --------- | ------------------------- | ----------- | ------------------------------ | +| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | + +**Notes**: Returns **any** the currentConfig + +#### Returns + +`MermaidConfig` + +The currentConfig + +#### Defined in + +config.ts:136 + +--- + +### <a id="getsiteconfig" name="getsiteconfig"></a> getSiteConfig + +▸ **getSiteConfig**(): `MermaidConfig` + +## getSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | +| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | + +**Notes**: Returns **any** values in siteConfig. + +#### Returns + +`MermaidConfig` + +The siteConfig + +#### Defined in + +config.ts:96 + +--- + +### <a id="reset" name="reset"></a> reset + +▸ **reset**(`config?`): `void` + +## reset + +| Function | Description | Type | Required | Values | +| -------- | ---------------------------- | ----------- | -------- | ------ | +| reset | Resets currentConfig to conf | Put Request | Required | None | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | +| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | + +**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) + +#### Parameters + +| Name | Type | Default value | Description | +| :------- | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `config` | `MermaidConfig` | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). | + +#### Returns + +`void` + +#### Defined in + +config.ts:223 + +--- + +### <a id="sanitize" name="sanitize"></a> sanitize + +▸ **sanitize**(`options`): `void` + +## sanitize + +| Function | Description | Type | Values | +| -------- | -------------------------------------- | ----------- | ------ | +| sanitize | Sets the siteConfig to desired values. | Put Request | None | + +Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies +options in-place + +#### Parameters + +| Name | Type | Description | +| :-------- | :---- | :-------------------------------- | +| `options` | `any` | The potential setConfig parameter | + +#### Returns + +`void` + +#### Defined in + +config.ts:151 + +--- + +### <a id="saveconfigfrominitialize" name="saveconfigfrominitialize"></a> saveConfigFromInitialize + +▸ **saveConfigFromInitialize**(`conf`): `void` + +#### Parameters + +| Name | Type | +| :----- | :-------------- | +| `conf` | `MermaidConfig` | + +#### Returns + +`void` + +#### Defined in + +config.ts:75 + +--- + +### <a id="setconfig" name="setconfig"></a> setConfig + +▸ **setConfig**(`conf`): `MermaidConfig` + +## setConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure +keys. Any values found in conf with key found in siteConfig.secure will be replaced with the +corresponding siteConfig value. + +#### Parameters + +| Name | Type | Description | +| :----- | :-------------- | :-------------------------- | +| `conf` | `MermaidConfig` | The potential currentConfig | + +#### Returns + +`MermaidConfig` + +The currentConfig merged with the sanitized conf + +#### Defined in + +config.ts:113 + +--- + +### <a id="setsiteconfig" name="setsiteconfig"></a> setSiteConfig + +▸ **setSiteConfig**(`conf`): `MermaidConfig` + +## setSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls +to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) +will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this +function _Default value: At default, will mirror Global Config_ + +#### Parameters + +| Name | Type | Description | +| :----- | :-------------- | :------------------------------------------ | +| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig | + +#### Returns + +`MermaidConfig` + +The new siteConfig + +#### Defined in + +config.ts:61 + +--- + +### <a id="updatecurrentconfig" name="updatecurrentconfig"></a> updateCurrentConfig + +▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig` + +#### Parameters + +| Name | Type | +| :------------ | :-------------- | +| `siteCfg` | `MermaidConfig` | +| `_directives` | `any`[] | + +#### Returns + +`MermaidConfig` + +#### Defined in + +config.ts:14 + +--- + +### <a id="updatesiteconfig" name="updatesiteconfig"></a> updateSiteConfig + +▸ **updateSiteConfig**(`conf`): `MermaidConfig` + +#### Parameters + +| Name | Type | +| :----- | :-------------- | +| `conf` | `MermaidConfig` | + +#### Returns + +`MermaidConfig` + +#### Defined in + +config.ts:79 diff --git a/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md b/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md new file mode 100644 index 0000000000..ff7ef9071c --- /dev/null +++ b/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md @@ -0,0 +1,50 @@ +# Module: defaultConfig + +## Variables + +### <a id="configkeys" name="configkeys"></a> configKeys + +• `Const` **configKeys**: `string`[] + +#### Defined in + +defaultConfig.ts:1869 + +--- + +### <a id="default" name="default"></a> default + +• `Const` **default**: `Partial`<`MermaidConfig`\> + +**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click +here](8.6.0_docs.md)].** + +## **What follows are config instructions for older versions** + +These are the default options which can be overridden with the initialization call like so: + +**Example 1:** + +```js +mermaid.initialize({ flowchart: { htmlLabels: false } }); +``` + +**Example 2:** + +```html +<script> + const config = { + startOnLoad: true, + flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, + securityLevel: 'loose', + }; + mermaid.initialize(config); +</script> +``` + +A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). +A description of each option follows below. + +#### Defined in + +defaultConfig.ts:33 diff --git a/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md b/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md new file mode 100644 index 0000000000..79307c4ff4 --- /dev/null +++ b/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md @@ -0,0 +1,57 @@ +# Module: mermaidAPI + +## References + +### <a id="default" name="default"></a> default + +Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) + +## Variables + +### <a id="mermaidapi" name="mermaidapi"></a> mermaidAPI + +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`\> ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`\> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }\> + +#### Defined in + +mermaidAPI.ts:485 + +## Functions + +### <a id="decodeentities" name="decodeentities"></a> decodeEntities + +▸ **decodeEntities**(`text`): `string` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `text` | `string` | + +#### Returns + +`string` + +#### Defined in + +mermaidAPI.ts:72 + +--- + +### <a id="encodeentities" name="encodeentities"></a> encodeEntities + +▸ **encodeEntities**(`text`): `string` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `text` | `string` | + +#### Returns + +`string` + +#### Defined in + +mermaidAPI.ts:46 From b0b4cccc96907d61a1521b3183a9e5fa7d3f802b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 29 Oct 2022 00:16:59 +0530 Subject: [PATCH 0488/1038] fix: Team members --- packages/mermaid/src/docs/index.md | 145 ++++++++++++++++++----------- 1 file changed, 91 insertions(+), 54 deletions(-) diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index be85bc242e..853fd27aee 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -32,68 +32,105 @@ features: <script setup> import { VPTeamMembers } from 'vitepress/theme' - +const websiteSVG = {svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-globe"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>'} const members = [ { - avatar: 'https://avatars.githubusercontent.com/u/5837277?v=4', - name: 'Knut Sveidqvist', - title: 'Creator', - links: [ - { icon: 'github', link: 'https://github.com/knsv' }, - ] + avatar: "https://avatars.githubusercontent.com/u/5837277?v=4", + name: "Knut Sveidqvist", + title: "Creator", + links: [{ icon: "github", link: "https://github.com/knsv" }], }, - { - avatar: 'https://avatars.githubusercontent.com/u/1912783?v=4', - name: 'Marc Faber', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://gdfaber.github.io/' }, - { icon: 'linkedin', link: 'https://www.linkedin.com/in/marc-faber/' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/1564825?v=4', - name: 'Nacho Orlandoni', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/IOrlandoni' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/6552521?v=4', - name: 'Christian Klemm', - title: 'Developer', - links: [ - { icon: 'github', link: 'https://github.com/klemmchr' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/12032557?v=4', - name: 'Mindaugas Laganeckas', - title: 'Developer', + { + avatar: "https://avatars.githubusercontent.com/u/58763315?v=4", + name: "Neil Cuzon", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/NeilCuzon" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/733544?v=4", + name: "Tyler Liu", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/tylerlong" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/10703445?v=4", + name: "Sidharth Vinod", + title: "Developer", links: [ - { icon: 'github', link: 'https://github.com/MindaugasLaganeckas' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/58763315?v=4', - name: 'Neil Cuzon', - title: 'Developer', + { icon: "github", link: "https://github.com/sidharthv96" }, + { icon: websiteSVG, link: "https://sidharth.dev" }, + { icon: "linkedin", link: "https://www.linkedin.com/in/sidharth-vinod/" }, + ], + }, + { + avatar: "https://avatars.githubusercontent.com/u/16836093?v=4", + name: "Ashish Jain", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/ashishjain0512" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/6032561?v=4", + name: "Matthieu Morel", + title: "Developer", links: [ - { icon: 'github', link: 'https://github.com/NeilCuzon' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/19526120?v=4', - name: 'Adrian Hall', - title: 'Developer', + { icon: "github", link: "https://github.com/mmorel-35" }, + { + icon: "linkedin", + link: "https://www.linkedin.com/in/matthieumorel35/", + }, + ], + }, + { + avatar: "https://avatars.githubusercontent.com/u/6552521?v=4", + name: "Christian Klemm", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/klemmchr" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/19716675?v=4", + name: "Alois Klink", + title: "Developer", links: [ - { icon: 'github', link: 'https://github.com/spopida' }, - ] - }, { - avatar: 'https://avatars.githubusercontent.com/u/53054099?v=4', - name: 'Yash Singh', - title: 'Developer', + { icon: "github", link: "https://github.com/aloisklink" }, + { icon: websiteSVG, link: "https://aloisklink.com" }, + { icon: "linkedin", link: "https://www.linkedin.com/in/aloisklink/" }, + ], + }, + { + avatar: "https://avatars.githubusercontent.com/u/53054099?v=4", + name: "Yash Singh", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/Yash-Singh1" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/1912783?v=4", + name: "Marc Faber", + title: "Developer", links: [ - { icon: 'github', link: 'https://github.com/Yash-Singh1' }, - ] + { icon: "github", link: "https://gdfaber.github.io/" }, + { icon: "linkedin", link: "https://www.linkedin.com/in/marc-faber/" }, + ], }, -] + { + avatar: "https://avatars.githubusercontent.com/u/12032557?v=4", + name: "Mindaugas Laganeckas", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/MindaugasLaganeckas" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/1564825?v=4", + name: "Nacho Orlandoni", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/IOrlandoni" }], + }, + { + avatar: "https://avatars.githubusercontent.com/u/19526120?v=4", + name: "Adrian Hall", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/spopida" }], + }, +]; + </script> <div class="vp-doc" > From 61e20ce48a5e997173cb07cdd2399e968e7e84d1 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 29 Oct 2022 00:20:54 +0530 Subject: [PATCH 0489/1038] chore: update cspell.json --- cSpell.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cSpell.json b/cSpell.json index d5cce0f069..50f50e1519 100644 --- a/cSpell.json +++ b/cSpell.json @@ -6,19 +6,24 @@ "customizability", "Gantt", "jison", - "knsv", - "Knut", "mermiad", "mindmap", "Mindmaps", "mitigations", "sandboxed", "shiki", - "Sveidqvist", "verdana", "Visio" ], "ignoreWords": [ + "Alois", + "Klink", + "knsv", + "Knut", + "Matthieu", + "Sidharth", + "Sveidqvist", + "Vinod", "Faber", "Orlandoni", "Klemm", From e1d9d0b990feb279461c58bddccf7f17e8d0f567 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 29 Oct 2022 00:46:25 +0530 Subject: [PATCH 0490/1038] chore: Fix doc links --- docs/CHANGELOG.md | 2 +- docs/community/development.md | 2 +- docs/community/n00b-overview.md | 2 +- docs/community/newDiagram.md | 2 +- docs/community/security.md | 2 +- docs/config/8.6.0_docs.md | 2 +- docs/config/Tutorials.md | 2 +- docs/config/accessibility.md | 2 +- docs/config/configuration.md | 2 +- docs/config/directives.md | 2 +- docs/config/mermaidCLI.md | 2 +- docs/config/n00b-advanced.md | 2 +- docs/config/setup/README.md | 2 +- docs/config/setup/modules/config.md | 2 +- docs/config/setup/modules/defaultConfig.md | 2 +- docs/config/setup/modules/mermaidAPI.md | 2 +- docs/config/theming.md | 2 +- docs/config/usage.md | 2 +- docs/intro/index.md | 2 +- docs/intro/n00b-gettingStarted.md | 2 +- docs/intro/n00b-syntaxReference.md | 2 +- docs/misc/faq.md | 2 +- docs/misc/integrations.md | 2 +- docs/syntax/c4c.md | 2 +- docs/syntax/classDiagram.md | 2 +- docs/syntax/entityRelationshipDiagram.md | 2 +- docs/syntax/examples.md | 2 +- docs/syntax/flowchart.md | 2 +- docs/syntax/gantt.md | 2 +- docs/syntax/gitgraph.md | 2 +- docs/syntax/mindmap.md | 2 +- docs/syntax/pie.md | 2 +- docs/syntax/requirementDiagram.md | 2 +- docs/syntax/sequenceDiagram.md | 2 +- docs/syntax/stateDiagram.md | 2 +- docs/syntax/userJourney.md | 2 +- 36 files changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 8f3add9c52..520adc7d9b 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/CHANGELOG.md](../packages/mermaid/src/docs/CHANGELOG.md). # Change Log diff --git a/docs/community/development.md b/docs/community/development.md index 29fbdf5cde..d7e9b73151 100644 --- a/docs/community/development.md +++ b/docs/community/development.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/development.md](../../packages/mermaid/src/docs/community/development.md). # Development and Contribution 🙌 diff --git a/docs/community/n00b-overview.md b/docs/community/n00b-overview.md index fb6ada2ec7..0747edc328 100644 --- a/docs/community/n00b-overview.md +++ b/docs/community/n00b-overview.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/n00b-overview.md](../../packages/mermaid/src/docs/community/n00b-overview.md). # Overview for Beginners diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index df3ea2aae9..da86f98381 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/newDiagram.md](../../packages/mermaid/src/docs/community/newDiagram.md). # Adding a New Diagram/Chart 📊 diff --git a/docs/community/security.md b/docs/community/security.md index 868f2d3721..1825ed975e 100644 --- a/docs/community/security.md +++ b/docs/community/security.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/security.md](../../packages/mermaid/src/docs/community/security.md). # Security diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index 46c181799a..5a7e589512 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/8.6.0_docs.md](../../packages/mermaid/src/docs/config/8.6.0_docs.md). # Version 8.6.0 Changes diff --git a/docs/config/Tutorials.md b/docs/config/Tutorials.md index 829473c1f9..696e31d833 100644 --- a/docs/config/Tutorials.md +++ b/docs/config/Tutorials.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/Tutorials.md](../../packages/mermaid/src/docs/config/Tutorials.md). # Tutorials diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md index 8e9e087925..8fa4aa3ac8 100644 --- a/docs/config/accessibility.md +++ b/docs/config/accessibility.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/accessibility.md](../../packages/mermaid/src/docs/config/accessibility.md). # Accessibility Options diff --git a/docs/config/configuration.md b/docs/config/configuration.md index 546d873fdf..c7b780143d 100644 --- a/docs/config/configuration.md +++ b/docs/config/configuration.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/configuration.md](../../packages/mermaid/src/docs/config/configuration.md). # Configuration diff --git a/docs/config/directives.md b/docs/config/directives.md index 0b4252bbac..820eb72e9d 100644 --- a/docs/config/directives.md +++ b/docs/config/directives.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/directives.md](../../packages/mermaid/src/docs/config/directives.md). # Directives diff --git a/docs/config/mermaidCLI.md b/docs/config/mermaidCLI.md index e414266f1a..530ac93ab3 100644 --- a/docs/config/mermaidCLI.md +++ b/docs/config/mermaidCLI.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/mermaidCLI.md](../../packages/mermaid/src/docs/config/mermaidCLI.md). # mermaid CLI diff --git a/docs/config/n00b-advanced.md b/docs/config/n00b-advanced.md index 6d8e86f1aa..5dd9074297 100644 --- a/docs/config/n00b-advanced.md +++ b/docs/config/n00b-advanced.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/n00b-advanced.md](../../packages/mermaid/src/docs/config/n00b-advanced.md). # Advanced n00b mermaid (Coming soon..) diff --git a/docs/config/setup/README.md b/docs/config/setup/README.md index d143b213c9..1cf82797de 100644 --- a/docs/config/setup/README.md +++ b/docs/config/setup/README.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/README.md](../../../packages/mermaid/src/docs/config/setup/README.md). # mermaid diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index b3b4e024d3..7c3f49bcac 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/config.md](../../../../packages/mermaid/src/docs/config/setup/modules/config.md). # Module: config diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index e29e454906..1ec49b6722 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md](../../../../packages/mermaid/src/docs/config/setup/modules/defaultConfig.md). # Module: defaultConfig diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 110747a970..247363e6ed 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md](../../../../packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md). # Module: mermaidAPI diff --git a/docs/config/theming.md b/docs/config/theming.md index 6ec46f5bb1..cfd86caa0b 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md). # Theme Configuration diff --git a/docs/config/usage.md b/docs/config/usage.md index 241fec4e5c..9a2c63446e 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/usage.md](../../packages/mermaid/src/docs/config/usage.md). # Usage diff --git a/docs/intro/index.md b/docs/intro/index.md index 60d74a0659..673f8f0619 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/index.md](../../packages/mermaid/src/docs/intro/index.md). # About Mermaid diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 7f42810cef..5820709309 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/n00b-gettingStarted.md](../../packages/mermaid/src/docs/intro/n00b-gettingStarted.md). # A Mermaid User-Guide for Beginners diff --git a/docs/intro/n00b-syntaxReference.md b/docs/intro/n00b-syntaxReference.md index d8be440ddd..7c6d47e93b 100644 --- a/docs/intro/n00b-syntaxReference.md +++ b/docs/intro/n00b-syntaxReference.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/n00b-syntaxReference.md](../../packages/mermaid/src/docs/intro/n00b-syntaxReference.md). # Diagram Syntax diff --git a/docs/misc/faq.md b/docs/misc/faq.md index 80bfb8f9e8..c7155a5b0e 100644 --- a/docs/misc/faq.md +++ b/docs/misc/faq.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/misc/faq.md](../../packages/mermaid/src/docs/misc/faq.md). # Frequently Asked Questions diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md index b0e23b514b..e775af90a3 100644 --- a/docs/misc/integrations.md +++ b/docs/misc/integrations.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/misc/integrations.md](../../packages/mermaid/src/docs/misc/integrations.md). # Integrations diff --git a/docs/syntax/c4c.md b/docs/syntax/c4c.md index 3022ce73e7..ef1295450a 100644 --- a/docs/syntax/c4c.md +++ b/docs/syntax/c4c.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/c4c.md](../../packages/mermaid/src/docs/syntax/c4c.md). # C4 Diagrams diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index 6c7aa1ef34..3f176f28e3 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/classDiagram.md](../../packages/mermaid/src/docs/syntax/classDiagram.md). # Class diagrams diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md index 796aee7be0..fef7b6fee7 100644 --- a/docs/syntax/entityRelationshipDiagram.md +++ b/docs/syntax/entityRelationshipDiagram.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md](../../packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md). # Entity Relationship Diagrams diff --git a/docs/syntax/examples.md b/docs/syntax/examples.md index 172051f27f..516e65eee9 100644 --- a/docs/syntax/examples.md +++ b/docs/syntax/examples.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/examples.md](../../packages/mermaid/src/docs/syntax/examples.md). # Examples diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md index 358edcb688..234f46236d 100644 --- a/docs/syntax/flowchart.md +++ b/docs/syntax/flowchart.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/flowchart.md](../../packages/mermaid/src/docs/syntax/flowchart.md). # Flowcharts - Basic Syntax diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md index ad274a95fe..07907981fa 100644 --- a/docs/syntax/gantt.md +++ b/docs/syntax/gantt.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gantt.md](../../packages/mermaid/src/docs/syntax/gantt.md). # Gantt diagrams diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md index 2f2dc0eddc..cd1a3f12a3 100644 --- a/docs/syntax/gitgraph.md +++ b/docs/syntax/gitgraph.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gitgraph.md](../../packages/mermaid/src/docs/syntax/gitgraph.md). # Gitgraph Diagrams diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 21ea9107e7..26a1065bef 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/mindmap.md](../../packages/mermaid/src/docs/syntax/mindmap.md). # Mindmap diff --git a/docs/syntax/pie.md b/docs/syntax/pie.md index 953c526c3a..6801b3619f 100644 --- a/docs/syntax/pie.md +++ b/docs/syntax/pie.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/pie.md](../../packages/mermaid/src/docs/syntax/pie.md). # Pie chart diagrams diff --git a/docs/syntax/requirementDiagram.md b/docs/syntax/requirementDiagram.md index b1a70c3568..f8a0cafa95 100644 --- a/docs/syntax/requirementDiagram.md +++ b/docs/syntax/requirementDiagram.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/requirementDiagram.md](../../packages/mermaid/src/docs/syntax/requirementDiagram.md). # Requirement Diagram diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index b7467323a3..b2d33bf691 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/sequenceDiagram.md](../../packages/mermaid/src/docs/syntax/sequenceDiagram.md). # Sequence diagrams diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md index d398418932..ec91411f61 100644 --- a/docs/syntax/stateDiagram.md +++ b/docs/syntax/stateDiagram.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/stateDiagram.md](../../packages/mermaid/src/docs/syntax/stateDiagram.md). # State diagrams diff --git a/docs/syntax/userJourney.md b/docs/syntax/userJourney.md index fbe82bc648..73fcb7468e 100644 --- a/docs/syntax/userJourney.md +++ b/docs/syntax/userJourney.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in package/mermaid/src/docs. +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/userJourney.md](../../packages/mermaid/src/docs/syntax/userJourney.md). # User Journey Diagram From f3cf6d638d59bb6a90e95a6c6c1fbf56dfc90404 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 29 Oct 2022 00:49:18 +0530 Subject: [PATCH 0491/1038] chore: Add prettier to docs:code --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index ad25cd58b3..149806544e 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -31,7 +31,7 @@ "build:esbuild": "concurrently \"pnpm build:code\" \"pnpm build:types\"", "build": "pnpm clean; pnpm build:esbuild", "dev": "node .esbuild/serve.cjs", - "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --githubPages false --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts", + "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --githubPages false --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup", "docs:build": "rimraf ../../docs && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "ts-node-esm src/docs.mts --verify", "docs:build:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", From 8f5fe3821241f9a34515af9254b21fb6743b275c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 29 Oct 2022 00:56:01 +0530 Subject: [PATCH 0492/1038] chore: format blockquote --- README.md | 6 +++++- docs/intro/index.md | 6 +++++- packages/mermaid/src/docs/intro/index.md | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 97ad1f6c4e..bcef7ae093 100644 --- a/README.md +++ b/README.md @@ -354,7 +354,11 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio A quick note from Knut Sveidqvist: -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ > _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ +> +> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ +> +> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ > > _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ diff --git a/docs/intro/index.md b/docs/intro/index.md index 673f8f0619..d1262a9ed8 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -369,7 +369,11 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio A quick note from Knut Sveidqvist: -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ > _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ +> +> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ +> +> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ > > _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ diff --git a/packages/mermaid/src/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md index 68a5e3f5a0..cbe8f6b4a4 100644 --- a/packages/mermaid/src/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -281,7 +281,11 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio A quick note from Knut Sveidqvist: -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ > _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ +> +> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ +> +> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ > > _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ From fed32607dea1cbe3db24fe6b67ecdc7ceed3c173 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sat, 29 Oct 2022 01:14:11 +0530 Subject: [PATCH 0493/1038] chore: Update docs build vitepress command --- .github/gh-pages-publish.yml | 9 +++++---- CONTRIBUTING.md | 2 +- packages/mermaid/package.json | 8 ++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/gh-pages-publish.yml b/.github/gh-pages-publish.yml index be79022e93..ef50a8d000 100644 --- a/.github/gh-pages-publish.yml +++ b/.github/gh-pages-publish.yml @@ -18,12 +18,13 @@ jobs: - name: Install deps run: pnpm install - - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. + - name: Install and Build 🔧 run: | cd ./packages/mermaid - pnpm docs:bundle + pnpm docs:build:vitepress + - name: Deploy 🚀📕 uses: JamesIves/github-pages-deploy-action@v4.3.3 with: - branch: gh-pages # The branch the action should deploy to. - folder: packages/mermaid/src/docs/.vitepress/dist # The folder the action should deploy. + branch: gh-pages + folder: packages/mermaid/src/vitepress/.vitepress/dist diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 49a9fb3515..b3543557fb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,7 +80,7 @@ $ pnpm docs:dev You can now build and serve the documentation site: ```sh -$ pnpm docs:bundle +$ pnpm docs:build:vitepress $ pnpm docs:serve ``` diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 149806544e..4f216ecaff 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -34,10 +34,10 @@ "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --githubPages false --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup", "docs:build": "rimraf ../../docs && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "ts-node-esm src/docs.mts --verify", - "docs:build:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", - "docs:dev": "pnpm docs:build:vitepress && vitepress dev src/vitepress", - "docs:bundle": "pnpm docs:build:vitepress && vitepress build src/vitepress", - "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", + "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", + "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress", + "docs:dev": "pnpm docs:pre:vitepress && vitepress dev src/vitepress", + "docs:serve": "pnpm docs:pre:vitepress && vitepress serve src/vitepress", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", From ec10316346cbc209621de46b774a68b0503b57ce Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 30 Oct 2022 00:07:12 +0530 Subject: [PATCH 0494/1038] chore: lint --- .github/ISSUE_TEMPLATE/bug_report.yml | 12 ++++++------ .github/ISSUE_TEMPLATE/diagram_proposal.yml | 8 ++++---- .github/ISSUE_TEMPLATE/syntaxt_proposal.yml | 8 ++++---- .github/ISSUE_TEMPLATE/theme_proposal.yml | 8 ++++---- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 400a61138c..6ce66a831d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,8 +1,8 @@ name: Bug Report description: Create a report to help us improve labels: - - "Status: Triage" - - "Type: Bug / Error" + - 'Status: Triage' + - 'Type: Bug / Error' body: - type: markdown @@ -10,7 +10,7 @@ body: value: |- ## Before you submit... We like to help you, but in order to do that should you make a few things first: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. - Never be shy to give us screenshots and/or code samples. It will help! @@ -51,12 +51,12 @@ body: Note that you only need to fill out one and not both sections. value: |- **Desktop** - + - OS and Version: [Windows, Linux, Mac, ...] - Browser and Version: [Chrome, Edge, Firefox] - + **Smartphone** - + - Device: [Samsung, iPhone, ...] - OS and Version: [Android, iOS, ...] - Browser and Version: [Chrome, Safari, ...] diff --git a/.github/ISSUE_TEMPLATE/diagram_proposal.yml b/.github/ISSUE_TEMPLATE/diagram_proposal.yml index 2090c7c085..67dad5d3a3 100644 --- a/.github/ISSUE_TEMPLATE/diagram_proposal.yml +++ b/.github/ISSUE_TEMPLATE/diagram_proposal.yml @@ -1,8 +1,8 @@ name: Diagram Proposal description: Suggest a new Diagram Type to add to Mermaid. labels: - - "Status: Triage" - - "Type: Enhancement" + - 'Status: Triage' + - 'Type: Enhancement' body: - type: markdown @@ -11,9 +11,9 @@ body: ## Before you submit... First of all, thank you for proposing a new Diagram to us. We are always happy about new ideas to improve Mermaid.js wherever possible. - + To get the fastest and best response possible, make sure you do the following: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. - Never be shy to give us screenshots and/or code samples. It will help! diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml index b82b0eaa1c..99250ba93a 100644 --- a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml +++ b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml @@ -1,8 +1,8 @@ name: Syntax Proposal description: Suggest a new Syntax to add to Mermaid.js. labels: - - "Status: Triage" - - "Type: Enhancement" + - 'Status: Triage' + - 'Type: Enhancement' body: - type: markdown @@ -11,9 +11,9 @@ body: ## Before you submit... First of all, thank you for proposing a new Syntax to us. We are always happy about new ideas to improve Mermaid.js wherever possible. - + To get the fastest and best response possible, make sure you do the following: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. Examples are always welcome. - Never be shy to give us screenshots and/or code samples. It will help! diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml index 304d1d1c99..da4fddbeca 100644 --- a/.github/ISSUE_TEMPLATE/theme_proposal.yml +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -1,8 +1,8 @@ name: Theme Proposal description: Suggest a new theme to add to Mermaid.js. labels: - - "Status: Triage" - - "Type: Enhancement" + - 'Status: Triage' + - 'Type: Enhancement' body: - type: markdown @@ -11,9 +11,9 @@ body: ## Before you submit... First of all, thank you for proposing a new Theme to us. We are always happy about new ideas to improve Mermaid.js wherever possible. - + To get the fastest and best response possible, make sure you do the following: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. Examples are always welcome! - Never be shy to give us screenshots and/or code samples. It will help! From f87d1630d1d92067c083c1668b5d2f01a3ad9087 Mon Sep 17 00:00:00 2001 From: Emerson Bottero <emersonbottero@gmail.com> Date: Sun, 30 Oct 2022 21:22:38 -0300 Subject: [PATCH 0495/1038] chore: fix most of aloisklink reviews --- .github/gh-pages-publish.yml | 30 --------- .github/workflows/lint.yml | 3 +- CONTRIBUTING.md | 10 +-- package.json | 1 - .../mermaid/src/docs/.vitepress/config.ts | 5 +- .../docs/config/setup/modules/mermaidAPI.md | 62 ++++++++++++++++++- packages/mermaid/src/mermaidAPI.ts | 47 +++++++------- pnpm-lock.yaml | 2 - 8 files changed, 93 insertions(+), 67 deletions(-) delete mode 100644 .github/gh-pages-publish.yml diff --git a/.github/gh-pages-publish.yml b/.github/gh-pages-publish.yml deleted file mode 100644 index ef50a8d000..0000000000 --- a/.github/gh-pages-publish.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Build and Deploy Docs -on: - push: - branches: - - master -permissions: - contents: write -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v3 - - - name: Install pnpm - uses: pnpm/action-setup@v2.2.4 - - - name: Install deps - run: pnpm install - - - name: Install and Build 🔧 - run: | - cd ./packages/mermaid - pnpm docs:build:vitepress - - - name: Deploy 🚀📕 - uses: JamesIves/github-pages-deploy-action@v4.3.3 - with: - branch: gh-pages - folder: packages/mermaid/src/vitepress/.vitepress/dist diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2d50e97bac..8ba06989d0 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -39,4 +39,5 @@ jobs: run: pnpm run lint - name: Verify Docs - run: cd packages/mermaid && pnpm docs:verify + working-directory: ./packages/mermaid + run: pnpm run docs:verify diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b3543557fb..71eed23bb5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,16 +72,16 @@ flowchart LR If you want to preview the whole documentation site on your machine: ```sh -$ cd mermaid -$ pnpm i -$ pnpm docs:dev +cd mermaid +pnpm i +pnpm docs:dev ``` You can now build and serve the documentation site: ```sh -$ pnpm docs:build:vitepress -$ pnpm docs:serve +pnpm docs:build:vitepress +pnpm docs:serve ``` ## Branching diff --git a/package.json b/package.json index f76588dcf1..9aa5c2b7ad 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,6 @@ "coveralls": "3.1.1", "cypress": "10.10.0", "cypress-image-snapshot": "4.0.1", - "documentation": "13.2.5", "esbuild": "0.15.12", "eslint": "8.25.0", "eslint-config-prettier": "8.5.0", diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 2dde653ac4..077ec86db2 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -104,7 +104,7 @@ function sidebarSyntax() { { text: 'Gantt', link: '/syntax/gantt' }, { text: 'Pie Chart', link: '/syntax/pie' }, { text: 'Requirement Diagram', link: '/syntax/requirementDiagram' }, - { text: 'Gitgraph (Git) Diagram 🔥', link: '/syntax/gitGraph' }, + { text: 'Gitgraph (Git) Diagram 🔥', link: '/syntax/gitgraph' }, { text: 'C4C Diagram (Context) Diagram 🦺⚠️', link: '/syntax/c4c' }, { text: 'Other Examples', link: '/syntax/examples' }, ], @@ -120,7 +120,7 @@ function sidebarConfig() { items: [ { text: 'Tutorials', link: '/config/Tutorials' }, { text: 'API-Usage', link: '/config/usage' }, - { text: 'Mermaid API Configuration', link: '/config/setup/modules' }, + { text: 'Mermaid API Configuration', link: '/config/setup/README' }, { text: 'Directives', link: '/config/directives' }, { text: 'Theming', link: '/config/theming' }, { text: 'Accessibility', link: '/config/accessibility' }, @@ -156,7 +156,6 @@ function sidebarCommunity() { text: 'Development and Contribution', link: '/community/development', }, - { text: 'Changelog', link: '/community/CHANGELOG' }, { text: 'Adding Diagrams', link: '/community/newDiagram' }, { text: 'Security', link: '/community/security' }, ], diff --git a/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md b/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md index 79307c4ff4..b9e7e90de2 100644 --- a/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md +++ b/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md @@ -12,9 +12,69 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) • `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`\> ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`\> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }\> +## mermaidAPI configuration defaults + +```ts +const config = { + theme: 'default', + logLevel: 'fatal', + securityLevel: 'strict', + startOnLoad: true, + arrowMarkerAbsolute: false, + + er: { + diagramPadding: 20, + layoutDirection: 'TB', + minEntityWidth: 100, + minEntityHeight: 75, + entityPadding: 15, + stroke: 'gray', + fill: 'honeydew', + fontSize: 12, + useMaxWidth: true, + }, + flowchart: { + diagramPadding: 8, + htmlLabels: true, + curve: 'basis', + }, + sequence: { + diagramMarginX: 50, + diagramMarginY: 10, + actorMargin: 50, + width: 150, + height: 65, + boxMargin: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + messageAlign: 'center', + mirrorActors: true, + bottomMarginAdj: 1, + useMaxWidth: true, + rightAngles: false, + showSequenceNumbers: false, + }, + gantt: { + titleTopMargin: 25, + barHeight: 20, + barGap: 4, + topPadding: 50, + leftPadding: 75, + gridLineStartPadding: 35, + fontSize: 11, + fontFamily: '"Open Sans", sans-serif', + numberSectionStyles: 4, + axisFormat: '%Y-%m-%d', + topAxis: false, + }, +}; +mermaid.initialize(config); +``` + #### Defined in -mermaidAPI.ts:485 +mermaidAPI.ts:546 ## Functions diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index d6bc9672a9..384b456f82 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -482,32 +482,10 @@ async function initialize(options: MermaidConfig) { addDiagrams(); } -export const mermaidAPI = Object.freeze({ - render, - parse, - parseDirective, - initialize, - getConfig: configApi.getConfig, - setConfig: configApi.setConfig, - getSiteConfig: configApi.getSiteConfig, - updateSiteConfig: configApi.updateSiteConfig, - reset: () => { - configApi.reset(); - }, - globalReset: () => { - configApi.reset(configApi.defaultConfig); - }, - defaultConfig: configApi.defaultConfig, -}); - -setLogLevel(configApi.getConfig().logLevel); -configApi.reset(configApi.getConfig()); -export default mermaidAPI; /** * ## mermaidAPI configuration defaults * - * ```html - * <script> + * ```ts * const config = { * theme: 'default', * logLevel: 'fatal', @@ -563,6 +541,27 @@ export default mermaidAPI; * }, * }; * mermaid.initialize(config); - * </script> * ``` */ +export const mermaidAPI = Object.freeze({ + render, + parse, + parseDirective, + initialize, + getConfig: configApi.getConfig, + setConfig: configApi.setConfig, + getSiteConfig: configApi.getSiteConfig, + updateSiteConfig: configApi.updateSiteConfig, + reset: () => { + configApi.reset(); + }, + globalReset: () => { + configApi.reset(configApi.defaultConfig); + }, + defaultConfig: configApi.defaultConfig, +}); + +setLogLevel(configApi.getConfig().logLevel); +configApi.reset(configApi.getConfig()); + +export default mermaidAPI; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed23652b04..468212ce4f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,7 +34,6 @@ importers: d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 - documentation: 13.2.5 dompurify: 2.4.0 esbuild: 0.15.12 eslint: 8.25.0 @@ -119,7 +118,6 @@ importers: coveralls: 3.1.1 cypress: 10.10.0 cypress-image-snapshot: 4.0.1_i53o2fh6a5o5tv3qlenzwcubc4 - documentation: 13.2.5 esbuild: 0.15.12 eslint: 8.25.0 eslint-config-prettier: 8.5.0_eslint@8.25.0 From a7c9fe77c58fd5adf6e3cda7c9e40b214122d21c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 11:50:03 +0530 Subject: [PATCH 0496/1038] Update packages/mermaid/src/docs.mts Co-authored-by: Alois Klink <alois@aloisklink.com> --- packages/mermaid/src/docs.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index d08d7c8582..4833545f4a 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -59,7 +59,7 @@ const LOGMSG_TRANSFORMED = 'transformed'; const LOGMSG_TO_BE_TRANSFORMED = 'to be transformed'; const LOGMSG_COPIED = `, and copied to ${FINAL_DOCS_DIR}`; -const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run pnpm docs:build after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; +const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run 'pnpm --filter mermaid run docs:build' after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; // TODO: Read from .prettierrc? const prettierConfig: prettier.Config = { From 36756826741abe5465f3e1d62b4832dd284a29f5 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 11:56:17 +0530 Subject: [PATCH 0497/1038] Apply suggestions from code review Co-authored-by: Alois Klink <alois@aloisklink.com> --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 4f216ecaff..6ab0457411 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -37,7 +37,7 @@ "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress", "docs:dev": "pnpm docs:pre:vitepress && vitepress dev src/vitepress", - "docs:serve": "pnpm docs:pre:vitepress && vitepress serve src/vitepress", + "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", From 01ac770037c1f90de5bc24cf7175b92905e08dff Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 11:57:50 +0530 Subject: [PATCH 0498/1038] chore: Review comments --- CONTRIBUTING.md | 1 - docs/config/setup/modules/mermaidAPI.md | 62 ++++++++++++++++++++++++- packages/mermaid/package.json | 2 +- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 71eed23bb5..9ec68a9171 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,7 +80,6 @@ pnpm docs:dev You can now build and serve the documentation site: ```sh -pnpm docs:build:vitepress pnpm docs:serve ``` diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 247363e6ed..ef5fc5848c 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -18,9 +18,69 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) • `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`> ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> +## mermaidAPI configuration defaults + +```ts +const config = { + theme: 'default', + logLevel: 'fatal', + securityLevel: 'strict', + startOnLoad: true, + arrowMarkerAbsolute: false, + + er: { + diagramPadding: 20, + layoutDirection: 'TB', + minEntityWidth: 100, + minEntityHeight: 75, + entityPadding: 15, + stroke: 'gray', + fill: 'honeydew', + fontSize: 12, + useMaxWidth: true, + }, + flowchart: { + diagramPadding: 8, + htmlLabels: true, + curve: 'basis', + }, + sequence: { + diagramMarginX: 50, + diagramMarginY: 10, + actorMargin: 50, + width: 150, + height: 65, + boxMargin: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + messageAlign: 'center', + mirrorActors: true, + bottomMarginAdj: 1, + useMaxWidth: true, + rightAngles: false, + showSequenceNumbers: false, + }, + gantt: { + titleTopMargin: 25, + barHeight: 20, + barGap: 4, + topPadding: 50, + leftPadding: 75, + gridLineStartPadding: 35, + fontSize: 11, + fontFamily: '"Open Sans", sans-serif', + numberSectionStyles: 4, + axisFormat: '%Y-%m-%d', + topAxis: false, + }, +}; +mermaid.initialize(config); +``` + #### Defined in -mermaidAPI.ts:485 +mermaidAPI.ts:546 ## Functions diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 4f216ecaff..6ab0457411 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -37,7 +37,7 @@ "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress", "docs:dev": "pnpm docs:pre:vitepress && vitepress dev src/vitepress", - "docs:serve": "pnpm docs:pre:vitepress && vitepress serve src/vitepress", + "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", From d1e235a08b769be9453e87e292c683107095a06f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 12:01:56 +0530 Subject: [PATCH 0499/1038] chore: Ignore `packages/mermaid/src/docs/config/setup` --- .gitignore | 2 - packages/mermaid/.gitignore | 2 + .../mermaid/src/docs/config/setup/README.md | 7 - .../src/docs/config/setup/modules/config.md | 270 ------------------ .../config/setup/modules/defaultConfig.md | 50 ---- .../docs/config/setup/modules/mermaidAPI.md | 117 -------- 6 files changed, 2 insertions(+), 446 deletions(-) create mode 100644 packages/mermaid/.gitignore delete mode 100644 packages/mermaid/src/docs/config/setup/README.md delete mode 100644 packages/mermaid/src/docs/config/setup/modules/config.md delete mode 100644 packages/mermaid/src/docs/config/setup/modules/defaultConfig.md delete mode 100644 packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md diff --git a/.gitignore b/.gitignore index 5710769c96..6e4fe723a2 100644 --- a/.gitignore +++ b/.gitignore @@ -32,5 +32,3 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo - -packages/mermaid/src/vitepress \ No newline at end of file diff --git a/packages/mermaid/.gitignore b/packages/mermaid/.gitignore new file mode 100644 index 0000000000..1a961ffe08 --- /dev/null +++ b/packages/mermaid/.gitignore @@ -0,0 +1,2 @@ +src/vitepress +src/docs/config/setup \ No newline at end of file diff --git a/packages/mermaid/src/docs/config/setup/README.md b/packages/mermaid/src/docs/config/setup/README.md deleted file mode 100644 index c4e280f24b..0000000000 --- a/packages/mermaid/src/docs/config/setup/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# mermaid - -## Modules - -- [config](modules/config.md) -- [defaultConfig](modules/defaultConfig.md) -- [mermaidAPI](modules/mermaidAPI.md) diff --git a/packages/mermaid/src/docs/config/setup/modules/config.md b/packages/mermaid/src/docs/config/setup/modules/config.md deleted file mode 100644 index f4d7c31555..0000000000 --- a/packages/mermaid/src/docs/config/setup/modules/config.md +++ /dev/null @@ -1,270 +0,0 @@ -# Module: config - -## Variables - -### <a id="defaultconfig" name="defaultconfig"></a> defaultConfig - -• `Const` **defaultConfig**: `MermaidConfig` - -#### Defined in - -config.ts:7 - -## Functions - -### <a id="adddirective" name="adddirective"></a> addDirective - -▸ **addDirective**(`directive`): `void` - -Pushes in a directive to the configuration - -#### Parameters - -| Name | Type | Description | -| :---------- | :---- | :----------------------- | -| `directive` | `any` | The directive to push in | - -#### Returns - -`void` - -#### Defined in - -config.ts:191 - ---- - -### <a id="getconfig" name="getconfig"></a> getConfig - -▸ **getConfig**(): `MermaidConfig` - -## getConfig - -| Function | Description | Type | Return Values | -| --------- | ------------------------- | ----------- | ------------------------------ | -| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | - -**Notes**: Returns **any** the currentConfig - -#### Returns - -`MermaidConfig` - -The currentConfig - -#### Defined in - -config.ts:136 - ---- - -### <a id="getsiteconfig" name="getsiteconfig"></a> getSiteConfig - -▸ **getSiteConfig**(): `MermaidConfig` - -## getSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | -| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | - -**Notes**: Returns **any** values in siteConfig. - -#### Returns - -`MermaidConfig` - -The siteConfig - -#### Defined in - -config.ts:96 - ---- - -### <a id="reset" name="reset"></a> reset - -▸ **reset**(`config?`): `void` - -## reset - -| Function | Description | Type | Required | Values | -| -------- | ---------------------------- | ----------- | -------- | ------ | -| reset | Resets currentConfig to conf | Put Request | Required | None | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | -| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | - -**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) - -#### Parameters - -| Name | Type | Default value | Description | -| :------- | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `config` | `MermaidConfig` | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). | - -#### Returns - -`void` - -#### Defined in - -config.ts:223 - ---- - -### <a id="sanitize" name="sanitize"></a> sanitize - -▸ **sanitize**(`options`): `void` - -## sanitize - -| Function | Description | Type | Values | -| -------- | -------------------------------------- | ----------- | ------ | -| sanitize | Sets the siteConfig to desired values. | Put Request | None | - -Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies -options in-place - -#### Parameters - -| Name | Type | Description | -| :-------- | :---- | :-------------------------------- | -| `options` | `any` | The potential setConfig parameter | - -#### Returns - -`void` - -#### Defined in - -config.ts:151 - ---- - -### <a id="saveconfigfrominitialize" name="saveconfigfrominitialize"></a> saveConfigFromInitialize - -▸ **saveConfigFromInitialize**(`conf`): `void` - -#### Parameters - -| Name | Type | -| :----- | :-------------- | -| `conf` | `MermaidConfig` | - -#### Returns - -`void` - -#### Defined in - -config.ts:75 - ---- - -### <a id="setconfig" name="setconfig"></a> setConfig - -▸ **setConfig**(`conf`): `MermaidConfig` - -## setConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure -keys. Any values found in conf with key found in siteConfig.secure will be replaced with the -corresponding siteConfig value. - -#### Parameters - -| Name | Type | Description | -| :----- | :-------------- | :-------------------------- | -| `conf` | `MermaidConfig` | The potential currentConfig | - -#### Returns - -`MermaidConfig` - -The currentConfig merged with the sanitized conf - -#### Defined in - -config.ts:113 - ---- - -### <a id="setsiteconfig" name="setsiteconfig"></a> setSiteConfig - -▸ **setSiteConfig**(`conf`): `MermaidConfig` - -## setSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls -to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) -will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this -function _Default value: At default, will mirror Global Config_ - -#### Parameters - -| Name | Type | Description | -| :----- | :-------------- | :------------------------------------------ | -| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig | - -#### Returns - -`MermaidConfig` - -The new siteConfig - -#### Defined in - -config.ts:61 - ---- - -### <a id="updatecurrentconfig" name="updatecurrentconfig"></a> updateCurrentConfig - -▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig` - -#### Parameters - -| Name | Type | -| :------------ | :-------------- | -| `siteCfg` | `MermaidConfig` | -| `_directives` | `any`[] | - -#### Returns - -`MermaidConfig` - -#### Defined in - -config.ts:14 - ---- - -### <a id="updatesiteconfig" name="updatesiteconfig"></a> updateSiteConfig - -▸ **updateSiteConfig**(`conf`): `MermaidConfig` - -#### Parameters - -| Name | Type | -| :----- | :-------------- | -| `conf` | `MermaidConfig` | - -#### Returns - -`MermaidConfig` - -#### Defined in - -config.ts:79 diff --git a/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md b/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md deleted file mode 100644 index ff7ef9071c..0000000000 --- a/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md +++ /dev/null @@ -1,50 +0,0 @@ -# Module: defaultConfig - -## Variables - -### <a id="configkeys" name="configkeys"></a> configKeys - -• `Const` **configKeys**: `string`[] - -#### Defined in - -defaultConfig.ts:1869 - ---- - -### <a id="default" name="default"></a> default - -• `Const` **default**: `Partial`<`MermaidConfig`\> - -**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click -here](8.6.0_docs.md)].** - -## **What follows are config instructions for older versions** - -These are the default options which can be overridden with the initialization call like so: - -**Example 1:** - -```js -mermaid.initialize({ flowchart: { htmlLabels: false } }); -``` - -**Example 2:** - -```html -<script> - const config = { - startOnLoad: true, - flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, - securityLevel: 'loose', - }; - mermaid.initialize(config); -</script> -``` - -A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). -A description of each option follows below. - -#### Defined in - -defaultConfig.ts:33 diff --git a/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md b/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md deleted file mode 100644 index b9e7e90de2..0000000000 --- a/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md +++ /dev/null @@ -1,117 +0,0 @@ -# Module: mermaidAPI - -## References - -### <a id="default" name="default"></a> default - -Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) - -## Variables - -### <a id="mermaidapi" name="mermaidapi"></a> mermaidAPI - -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`\> ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`\> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }\> - -## mermaidAPI configuration defaults - -```ts -const config = { - theme: 'default', - logLevel: 'fatal', - securityLevel: 'strict', - startOnLoad: true, - arrowMarkerAbsolute: false, - - er: { - diagramPadding: 20, - layoutDirection: 'TB', - minEntityWidth: 100, - minEntityHeight: 75, - entityPadding: 15, - stroke: 'gray', - fill: 'honeydew', - fontSize: 12, - useMaxWidth: true, - }, - flowchart: { - diagramPadding: 8, - htmlLabels: true, - curve: 'basis', - }, - sequence: { - diagramMarginX: 50, - diagramMarginY: 10, - actorMargin: 50, - width: 150, - height: 65, - boxMargin: 10, - boxTextMargin: 5, - noteMargin: 10, - messageMargin: 35, - messageAlign: 'center', - mirrorActors: true, - bottomMarginAdj: 1, - useMaxWidth: true, - rightAngles: false, - showSequenceNumbers: false, - }, - gantt: { - titleTopMargin: 25, - barHeight: 20, - barGap: 4, - topPadding: 50, - leftPadding: 75, - gridLineStartPadding: 35, - fontSize: 11, - fontFamily: '"Open Sans", sans-serif', - numberSectionStyles: 4, - axisFormat: '%Y-%m-%d', - topAxis: false, - }, -}; -mermaid.initialize(config); -``` - -#### Defined in - -mermaidAPI.ts:546 - -## Functions - -### <a id="decodeentities" name="decodeentities"></a> decodeEntities - -▸ **decodeEntities**(`text`): `string` - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `text` | `string` | - -#### Returns - -`string` - -#### Defined in - -mermaidAPI.ts:72 - ---- - -### <a id="encodeentities" name="encodeentities"></a> encodeEntities - -▸ **encodeEntities**(`text`): `string` - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `text` | `string` | - -#### Returns - -`string` - -#### Defined in - -mermaidAPI.ts:46 From 450c308e4f6a458ba13214f906d32bda2c112d7f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 12:04:01 +0530 Subject: [PATCH 0500/1038] Update packages/mermaid/.lintstagedrc.json Co-authored-by: Alois Klink <alois@aloisklink.com> --- packages/mermaid/.lintstagedrc.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index be6e927702..7ca8690b49 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -1,6 +1,6 @@ { - "packages/mermaid/src/docs/**": ["pnpm run docs:build --git"], - "packages/mermaid/src/docs.mts": ["pnpm run docs:build --git"], + "packages/mermaid/src/docs/**": ["pnpm --filter mermaid run docs:build --git"], + "packages/mermaid/src/docs.mts": ["pnpm --filter mermaid run docs:build --git"], "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], "*.jison": ["pnpm run lint:jison"] } From a15b228d3f5c128d98efbf13bbb38f95f5e7c0aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 02:49:00 +0000 Subject: [PATCH 0501/1038] chore(deps): update all non-major dependencies --- package.json | 18 +- packages/mermaid/package.json | 8 +- pnpm-lock.yaml | 837 +++++++++++++++++++--------------- 3 files changed, 477 insertions(+), 386 deletions(-) diff --git a/package.json b/package.json index 1ec95e84f6..6401f0f18f 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ }, "dependencies": { "@braintree/sanitize-url": "6.0.1", - "@types/node": "18.11.0", + "@types/node": "18.11.8", "@types/uuid": "8.3.4", "d3": "7.6.1", "dagre": "0.8.5", @@ -84,17 +84,17 @@ "moment-mini": "2.29.4", "non-layered-tidy-tree-layout": "2.0.2", "rollup": "2.79.1", - "stylis": "4.1.2", + "stylis": "4.1.3", "uuid": "9.0.0" }, "devDependencies": { - "@applitools/eyes-cypress": "3.27.5", + "@applitools/eyes-cypress": "3.27.6", "@commitlint/cli": "17.1.2", "@commitlint/config-conventional": "17.1.0", "@cspell/eslint-plugin": "6.12.0", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", - "@types/eslint": "8.4.7", + "@types/eslint": "8.4.9", "@types/express": "4.17.14", "@types/jsdom": "20.0.0", "@types/lodash": "4.14.186", @@ -116,7 +116,7 @@ "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", "eslint-plugin-jest": "27.1.3", - "eslint-plugin-jsdoc": "39.3.23", + "eslint-plugin-jsdoc": "39.3.25", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "eslint-plugin-no-only-tests": "3.1.0", @@ -125,9 +125,9 @@ "globby": "13.1.2", "husky": "8.0.1", "identity-obj-proxy": "3.0.0", - "jest": "29.2.1", + "jest": "29.2.2", "jison": "0.4.18", - "jsdom": "20.0.1", + "jsdom": "20.0.2", "lint-staged": "13.0.3", "markdown-it": "13.0.1", "path-browserify": "1.0.1", @@ -141,9 +141,9 @@ "typescript": "4.8.4", "unist-util-flatmap": "1.0.0", "vite": "3.1.8", - "vitepress": "1.0.0-alpha.22", + "vitepress": "1.0.0-alpha.26", "vitepress-plugin-mermaid": "2.0.8", - "vitepress-plugin-search": "1.0.4-alpha.11", + "vitepress-plugin-search": "1.0.4-alpha.14", "vitest": "0.24.3" }, "resolutions": { diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 9bda9088a2..6d951ffbb1 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -75,12 +75,12 @@ "stylis": "^4.1.2" }, "devDependencies": { - "@applitools/eyes-cypress": "3.27.5", + "@applitools/eyes-cypress": "3.27.6", "@commitlint/cli": "17.1.2", "@commitlint/config-conventional": "17.1.0", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", - "@types/eslint": "8.4.7", + "@types/eslint": "8.4.9", "@types/express": "4.17.14", "@types/jsdom": "20.0.0", "@types/lodash": "4.14.186", @@ -99,7 +99,7 @@ "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", "eslint-plugin-jest": "27.1.3", - "eslint-plugin-jsdoc": "39.3.23", + "eslint-plugin-jsdoc": "39.3.25", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "express": "4.18.2", @@ -108,7 +108,7 @@ "identity-obj-proxy": "3.0.0", "jison": "0.4.18", "js-base64": "3.7.2", - "jsdom": "20.0.1", + "jsdom": "20.0.2", "lint-staged": "13.0.3", "moment": "2.29.4", "path-browserify": "1.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 407176c990..32755a1499 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,19 +7,19 @@ importers: .: specifiers: - '@applitools/eyes-cypress': 3.27.5 + '@applitools/eyes-cypress': 3.27.6 '@braintree/sanitize-url': 6.0.1 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@cspell/eslint-plugin': 6.12.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.7 + '@types/eslint': 8.4.9 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 '@types/mdast': 3.0.10 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@types/uuid': 8.3.4 @@ -42,7 +42,7 @@ importers: eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 eslint-plugin-jest: 27.1.3 - eslint-plugin-jsdoc: 39.3.23 + eslint-plugin-jsdoc: 39.3.25 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 eslint-plugin-no-only-tests: 3.1.0 @@ -53,9 +53,9 @@ importers: graphlib: 2.1.8 husky: 8.0.1 identity-obj-proxy: 3.0.0 - jest: 29.2.1 + jest: 29.2.2 jison: 0.4.18 - jsdom: 20.0.1 + jsdom: 20.0.2 khroma: 2.0.0 lint-staged: 13.0.3 lodash: 4.17.21 @@ -70,19 +70,19 @@ importers: rimraf: 3.0.2 rollup: 2.79.1 start-server-and-test: 1.14.0 - stylis: 4.1.2 + stylis: 4.1.3 ts-node: 10.9.1 typescript: 4.8.4 unist-util-flatmap: 1.0.0 uuid: 9.0.0 vite: 3.1.8 - vitepress: 1.0.0-alpha.22 + vitepress: 1.0.0-alpha.26 vitepress-plugin-mermaid: 2.0.8 - vitepress-plugin-search: 1.0.4-alpha.11 + vitepress-plugin-search: 1.0.4-alpha.14 vitest: 0.24.3 dependencies: '@braintree/sanitize-url': 6.0.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@types/uuid': 8.3.4 d3: 7.6.1 dagre: 0.8.5 @@ -95,16 +95,16 @@ importers: moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 rollup: 2.79.1 - stylis: 4.1.2 + stylis: 4.1.3 uuid: 9.0.0 devDependencies: - '@applitools/eyes-cypress': 3.27.5 + '@applitools/eyes-cypress': 3.27.6 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@cspell/eslint-plugin': 6.12.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.7 + '@types/eslint': 8.4.9 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 @@ -113,20 +113,20 @@ importers: '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - '@vitest/coverage-c8': 0.24.3_ff3ihdoybm7ovley6q4itwsswa + '@vitest/coverage-c8': 0.24.3_sgxihqrf6yfkefuiez6xvwhntm '@vitest/ui': 0.24.3 concurrently: 7.4.0 coveralls: 3.1.1 cypress: 10.10.0 - cypress-image-snapshot: 4.0.1_i53o2fh6a5o5tv3qlenzwcubc4 + cypress-image-snapshot: 4.0.1_kk6yjhqxahghos5zojvosw7ng4 documentation: 13.2.5 esbuild: 0.15.12 eslint: 8.25.0 eslint-config-prettier: 8.5.0_eslint@8.25.0 eslint-plugin-cypress: 2.12.1_eslint@8.25.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.3_ktuq5bhtjfperqqn2aknj5bg6m - eslint-plugin-jsdoc: 39.3.23_eslint@8.25.0 + eslint-plugin-jest: 27.1.3_6co43ebcjfbpobjajqgjcmpkdi + eslint-plugin-jsdoc: 39.3.25_eslint@8.25.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 eslint-plugin-no-only-tests: 3.1.0 @@ -135,9 +135,9 @@ importers: globby: 13.1.2 husky: 8.0.1 identity-obj-proxy: 3.0.0 - jest: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm jison: 0.4.18 - jsdom: 20.0.1 + jsdom: 20.0.2 lint-staged: 13.0.3 markdown-it: 13.0.1 path-browserify: 1.0.1 @@ -147,24 +147,24 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga + ts-node: 10.9.1_7jzoohtnaegavowzoeccrsbhty typescript: 4.8.4 unist-util-flatmap: 1.0.0 vite: 3.1.8 - vitepress: 1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_m5gk66we2y6xlan2yvhce6nu2a - vitepress-plugin-search: 1.0.4-alpha.11_eny7drxhzzrhshlyu255qt5dum - vitest: 0.24.3_ff3ihdoybm7ovley6q4itwsswa + vitepress: 1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-mermaid: 2.0.8_uxsdzqies4qdrnfbfepslu5p2a + vitepress-plugin-search: 1.0.4-alpha.14_avkyoe4zdnp4ms2apm424dwjmm + vitest: 0.24.3_sgxihqrf6yfkefuiez6xvwhntm packages/mermaid: specifiers: - '@applitools/eyes-cypress': 3.27.5 + '@applitools/eyes-cypress': 3.27.6 '@braintree/sanitize-url': ^6.0.0 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.7 + '@types/eslint': 8.4.9 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 @@ -187,7 +187,7 @@ importers: eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 eslint-plugin-jest: 27.1.3 - eslint-plugin-jsdoc: 39.3.23 + eslint-plugin-jsdoc: 39.3.25 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 express: 4.18.2 @@ -198,7 +198,7 @@ importers: identity-obj-proxy: 3.0.0 jison: 0.4.18 js-base64: 3.7.2 - jsdom: 20.0.1 + jsdom: 20.0.2 khroma: ^2.0.0 lint-staged: 13.0.3 lodash: ^4.17.21 @@ -229,12 +229,12 @@ importers: non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.2 devDependencies: - '@applitools/eyes-cypress': 3.27.5 + '@applitools/eyes-cypress': 3.27.6 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.7 + '@types/eslint': 8.4.9 '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 @@ -253,7 +253,7 @@ importers: eslint-plugin-cypress: 2.12.1_eslint@8.25.0 eslint-plugin-html: 7.1.0 eslint-plugin-jest: 27.1.3_pubrigz2e5aqv2qdhrj3u7msey - eslint-plugin-jsdoc: 39.3.23_eslint@8.25.0 + eslint-plugin-jsdoc: 39.3.25_eslint@8.25.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.25.0 express: 4.18.2 @@ -262,7 +262,7 @@ importers: identity-obj-proxy: 3.0.0 jison: 0.4.18 js-base64: 3.7.2 - jsdom: 20.0.1 + jsdom: 20.0.2 lint-staged: 13.0.3 moment: 2.29.4 path-browserify: 1.0.1 @@ -271,7 +271,7 @@ importers: remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga + ts-node: 10.9.1_7jzoohtnaegavowzoeccrsbhty typescript: 4.8.4 unist-util-flatmap: 1.0.0 @@ -306,25 +306,25 @@ importers: packages: - /@algolia/autocomplete-core/1.7.1: - resolution: {integrity: sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==} + /@algolia/autocomplete-core/1.7.2: + resolution: {integrity: sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==} dependencies: - '@algolia/autocomplete-shared': 1.7.1 + '@algolia/autocomplete-shared': 1.7.2 dev: true - /@algolia/autocomplete-preset-algolia/1.7.1_qs6lk5nhygj2o3hj4sf6xnr724: - resolution: {integrity: sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==} + /@algolia/autocomplete-preset-algolia/1.7.2_qs6lk5nhygj2o3hj4sf6xnr724: + resolution: {integrity: sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==} peerDependencies: - '@algolia/client-search': ^4.9.1 - algoliasearch: ^4.9.1 + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.7.1 + '@algolia/autocomplete-shared': 1.7.2 '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true - /@algolia/autocomplete-shared/1.7.1: - resolution: {integrity: sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==} + /@algolia/autocomplete-shared/1.7.2: + resolution: {integrity: sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==} dev: true /@algolia/cache-browser-local-storage/4.14.2: @@ -417,47 +417,47 @@ packages: '@algolia/requester-common': 4.14.2 dev: true - /@applitools/core-base/1.1.4: - resolution: {integrity: sha512-dV5mOG59Yh1G2ZYZb1tU1HgXPU1mPp7x+IVtwp2eBrikkTzhIp4feCVj4LNPJZF8Hq7YfoxHYtF6EpBg/P7trw==} + /@applitools/core-base/1.1.7: + resolution: {integrity: sha512-jxiRS7pQ9Q6deXeDa/mIACL/7S7ZxIOms49WSZGhUjb+1bfKEsH6+kLZKy5wUDHrUWRqPdILkLKWgQ0rLnKmFA==} engines: {node: '>=12.13.0'} dependencies: '@applitools/image': 1.0.4 '@applitools/logger': 1.1.27 - '@applitools/req': 1.1.11 + '@applitools/req': 1.1.12 '@applitools/utils': 1.3.13 transitivePeerDependencies: - encoding - supports-color dev: true - /@applitools/core-base/1.1.5: - resolution: {integrity: sha512-OvJZIEwJs8L/Kl8+6jjHZ0c4RizemXVCBzBnNu/JhzS54cwhp7wLTowN/ZI6w4WwRgwLrUF2FNQhd4ydiomNvg==} + /@applitools/core-base/1.1.8: + resolution: {integrity: sha512-h5bm1uJmpn5NVagFnLpoXWEKfLtBBmdQsgtOwYAmbWGImMNsexEnki1JPPo4yTn6KN1sdGE1ShYo2+YzbQPgKA==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/image': 1.0.4 + '@applitools/image': 1.0.5 '@applitools/logger': 1.1.27 - '@applitools/req': 1.1.11 + '@applitools/req': 1.1.12 '@applitools/utils': 1.3.13 transitivePeerDependencies: - encoding - supports-color dev: true - /@applitools/core/1.2.0: - resolution: {integrity: sha512-KwqZYkkXHVbvXgpTdV9L0RiHmxGqTrrlhn6MsEI1XpaEQ432dJAlQqH2n2H3g8y8Q8aU5AwZ6IvtOtXhEkxbbw==} + /@applitools/core/1.2.4: + resolution: {integrity: sha512-BFbmUn39XFEVKHCb/bBXFZVAb46hOl4D/6VRnC5ey5tNTdriI35/l0jWpuBnYHU6LgK+5AvG70SUTKqiFJDZPQ==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/core-base': 1.1.4 + '@applitools/core-base': 1.1.7 '@applitools/dom-capture': 11.2.0 '@applitools/dom-snapshot': 4.7.0 - '@applitools/driver': 1.10.6 + '@applitools/driver': 1.11.0 '@applitools/logger': 1.1.27 - '@applitools/nml-client': 1.3.4 - '@applitools/req': 1.1.11 - '@applitools/screenshoter': 3.6.5 + '@applitools/nml-client': 1.3.5 + '@applitools/req': 1.1.12 + '@applitools/screenshoter': 3.7.0 '@applitools/snippets': 2.4.5 - '@applitools/ufg-client': 1.1.0 + '@applitools/ufg-client': 1.1.2 '@applitools/utils': 1.3.13 abort-controller: 3.0.0 throat: 6.0.1 @@ -468,21 +468,21 @@ packages: - utf-8-validate dev: true - /@applitools/core/1.2.1: - resolution: {integrity: sha512-fVOSJJXF8rrOXoJ1b+fYsCq5Y50B6U3MYaAy1trQeOiKaZ5VLBb4Zv20bOAfijYIyYpwO/oaIE7i5xghXg8+Dw==} + /@applitools/core/1.2.7: + resolution: {integrity: sha512-cVH60tV3Uw1kIbml6IMPtwHRtJTRP5ySs2GRvDvHwq+dJNEddyIwJUwjHOI/xYYgc9rQRZOmM5Z4mzZXLjtgyw==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/core-base': 1.1.5 + '@applitools/core-base': 1.1.8 '@applitools/dom-capture': 11.2.0 '@applitools/dom-snapshot': 4.7.0 - '@applitools/driver': 1.10.7 + '@applitools/driver': 1.11.1 '@applitools/logger': 1.1.27 - '@applitools/nml-client': 1.3.4 - '@applitools/req': 1.1.11 - '@applitools/screenshoter': 3.7.0 - '@applitools/snippets': 2.4.5 - '@applitools/ufg-client': 1.1.0 + '@applitools/nml-client': 1.3.5 + '@applitools/req': 1.1.12 + '@applitools/screenshoter': 3.7.2 + '@applitools/snippets': 2.4.6 + '@applitools/ufg-client': 1.1.2 '@applitools/utils': 1.3.13 abort-controller: 3.0.0 throat: 6.0.1 @@ -521,8 +521,8 @@ packages: pako: 1.0.11 dev: true - /@applitools/driver/1.10.6: - resolution: {integrity: sha512-fZgnDTCSd8CaiXXYyWGIaIAZisEw9Waj+SPoAi6osypvFkVQ71mynC+fkfI/B5JOEnoHYEpj4AXfiukEvq88zA==} + /@applitools/driver/1.11.0: + resolution: {integrity: sha512-yNo4ljkk5C2wJ7foqENoIgtlbW3/RpDYBT5UCjq5yTK/xfnvAlh+zUmnqGJ43w8PZj4IH7E8xLRVBVIq2Mv9oQ==} engines: {node: '>=12.13.0'} dependencies: '@applitools/logger': 1.1.27 @@ -531,12 +531,12 @@ packages: semver: 7.3.7 dev: true - /@applitools/driver/1.10.7: - resolution: {integrity: sha512-HaKnZ98y1PUnnT2tsHar5smPekNtxwWuEfwQFSWRp1OK5lgi+leUXtcXRROzsD1Z7kRGDuyMbqSDYINFDgWDlQ==} + /@applitools/driver/1.11.1: + resolution: {integrity: sha512-HFkbEeTaBI+k5RMQFM6RjaIRCvLOrVx4UUDehnSlyfAwZIN/RMuxMcAQaiU5ZdNPf3K/+TtNjtmJoXuG8veEcQ==} engines: {node: '>=12.13.0'} dependencies: '@applitools/logger': 1.1.27 - '@applitools/snippets': 2.4.5 + '@applitools/snippets': 2.4.6 '@applitools/utils': 1.3.13 semver: 7.3.7 dev: true @@ -558,11 +558,11 @@ packages: - supports-color dev: true - /@applitools/eyes-api/1.9.0: - resolution: {integrity: sha512-XOmVb3SZGk3ae5Et72GR4C09xciAtzyfzVEaxAEbwB+ccI2QCkCbjN/GL6lVo0unc0urPhKSzIfxGu3z5mcZQA==} + /@applitools/eyes-api/1.9.1: + resolution: {integrity: sha512-P/42YMcV8SbdZFXEph+Q37tMngIJv0jSC2S1QDp09/zi0V1z81yyAm8zK36PU0h0JTYeZxSs/T3BRhfitpzAIg==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/core': 1.2.0 + '@applitools/core': 1.2.4 '@applitools/logger': 1.1.27 '@applitools/utils': 1.3.13 transitivePeerDependencies: @@ -572,19 +572,20 @@ packages: - utf-8-validate dev: true - /@applitools/eyes-cypress/3.27.5: - resolution: {integrity: sha512-s/oavveA1x+oMLFp6AdzTdAVv7RgncnrE12/gBE2HuK17g6NL02tVky5fa2vF3OmFJefOE5ZpVQXsYCLIrgwlg==} + /@applitools/eyes-cypress/3.27.6: + resolution: {integrity: sha512-2FpWKQ7rVhrr94Z8DjmJ8kD3f71aYahvTpT3dJyjfVKV8GxwAYAb/qrq6gAUnItaaoB2PgLHbIsqpOpRPki1tQ==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/core': 1.2.1 - '@applitools/eyes-api': 1.9.0 - '@applitools/eyes-universal': 2.16.6 + '@applitools/core': 1.2.7 + '@applitools/eyes-api': 1.9.1 + '@applitools/eyes-universal': 2.16.9 '@applitools/functional-commons': 1.6.0 '@applitools/logger': 1.1.27 chalk: 3.0.0 - semver: 7.3.7 + semver: 7.3.8 uuid: 8.3.2 + which: 2.0.2 ws: 8.5.0 transitivePeerDependencies: - bufferutil @@ -593,12 +594,12 @@ packages: - utf-8-validate dev: true - /@applitools/eyes-sdk-core/13.11.10: - resolution: {integrity: sha512-IxEH5KDoX3nInyKqYXWJQM1cqMrsCV7o3uhnjrCLaj4SWnT1eImmX+sIDFegnmSB5UvwhhozGqU/quymhhoJLQ==} + /@applitools/eyes-sdk-core/13.11.15: + resolution: {integrity: sha512-oN2yTzFsuRMpmBpgzzqiUGRkezIez1JwQFRqqa6dsxUUBWE2IWp52MqJV5NRGHt9Sdh8q4+M6Hk6h8sVHE3LGg==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/core': 1.2.1 - '@applitools/driver': 1.10.7 + '@applitools/core': 1.2.7 + '@applitools/driver': 1.11.1 '@applitools/execution-grid-client': 1.1.30 '@applitools/utils': 1.3.13 transitivePeerDependencies: @@ -608,15 +609,15 @@ packages: - utf-8-validate dev: true - /@applitools/eyes-universal/2.16.6: - resolution: {integrity: sha512-T4Q8fFOjXKofsAImpFC2UqnceGlWCgAiGKgKKoDtXCZCOxAPM5wE/vM4GZMVXLhWDZhpgXtQaqa6+sa5QLMyNg==} + /@applitools/eyes-universal/2.16.9: + resolution: {integrity: sha512-D8MeOLoBETyg0oPxkaim3taiKWo6XMILTSAX+rWQHz0X7u+JRuCBLZu0WFlQPLTo7ndLiVyo2BpbBy9KIp5haA==} engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@applitools/core': 1.2.1 - '@applitools/driver': 1.10.7 + '@applitools/core': 1.2.7 + '@applitools/driver': 1.11.1 '@applitools/execution-grid-client': 1.1.30 - '@applitools/eyes-sdk-core': 13.11.10 + '@applitools/eyes-sdk-core': 13.11.15 '@applitools/logger': 1.1.27 '@applitools/utils': 1.3.13 proxy-agent: 5.0.0 @@ -644,6 +645,15 @@ packages: png-async: 0.9.4 dev: true + /@applitools/image/1.0.5: + resolution: {integrity: sha512-khv0fkjaoe0j/btEog8K/sqC2ULss+bkkHQQz80AOxnW/ixq5C4eQhTNzVRZ9/X7EDi7XsskvAXsi9RseIRnBw==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.13 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + /@applitools/jsdom/1.0.4: resolution: {integrity: sha512-JtjNfTJtphJYHEkicW4xlwtYuRP3TRvjoszfkrcpxTNMCbGkbop8ed9MuUfR83dAZj5NY9begbmEqJohLJco6w==} engines: {node: '>=12'} @@ -689,20 +699,20 @@ packages: chalk: 4.1.2 dev: true - /@applitools/nml-client/1.3.4: - resolution: {integrity: sha512-CKW/QKtxL3Ijk4FMNAtRNVrqFA5D6GMcD4bRuAeSPYkWBDHplxNgSIM2auBNGF8YVbWX7qu/pDs3iyvN/BfeSQ==} + /@applitools/nml-client/1.3.5: + resolution: {integrity: sha512-MW1kB5AGe5l8HZ5GMkVhTm6XMndeIADmed37WrW3obD3FrmBGQLLj04GP6J7czLTeGjeh7QojvuAEvQUGFV5MQ==} engines: {node: '>=12.13.0'} dependencies: '@applitools/logger': 1.1.27 - '@applitools/req': 1.1.11 + '@applitools/req': 1.1.12 '@applitools/utils': 1.3.13 transitivePeerDependencies: - encoding - supports-color dev: true - /@applitools/req/1.1.11: - resolution: {integrity: sha512-pgSH3UAWsQx9tqPuA1GB2Gv8A6jSF227v3BfLwavEnTYw1DIV6iKa7P7H5LNRD/iqsi7wiVK9v6eoOEj4tQzDQ==} + /@applitools/req/1.1.12: + resolution: {integrity: sha512-eA8gsbqMxGEvW1KHb6P/AZ+IXlkxhf+Best683z9uo6O/wPQbg+B/20GoUpbUgpqWDQZmdhZDUb/RvxKwSl/PA==} engines: {node: '>=12.13.0'} dependencies: '@applitools/utils': 1.3.13 @@ -715,8 +725,8 @@ packages: - supports-color dev: true - /@applitools/screenshoter/3.6.5: - resolution: {integrity: sha512-mPhn6LsGs8Aj0lcxMDh72EEySgqT4x5iM5Tjsr1czQ4WVmPM/xC2TN7N1CwxmS0WFgEcVpjHj9Plfr4lQqNgfg==} + /@applitools/screenshoter/3.7.0: + resolution: {integrity: sha512-d723TI4InLQi06TpVj4rP+V5OrNL9mFQr+cWv2MOMfQbuAnZETTRzvDyk97e3qoDJHAPjyQuxi81qEaxsFxhOA==} engines: {node: '>=12.13.0'} dependencies: '@applitools/image': 1.0.4 @@ -727,13 +737,13 @@ packages: png-async: 0.9.4 dev: true - /@applitools/screenshoter/3.7.0: - resolution: {integrity: sha512-d723TI4InLQi06TpVj4rP+V5OrNL9mFQr+cWv2MOMfQbuAnZETTRzvDyk97e3qoDJHAPjyQuxi81qEaxsFxhOA==} + /@applitools/screenshoter/3.7.2: + resolution: {integrity: sha512-bWtNQeRvdcQBcc+5kAwVBnEQ3DhDncAE853SuJPgpczZkqy9t7Ot8L3kNLbi+210vbWSqpnVGt9tAeLgG/xZdA==} engines: {node: '>=12.13.0'} dependencies: - '@applitools/image': 1.0.4 + '@applitools/image': 1.0.5 '@applitools/logger': 1.1.27 - '@applitools/snippets': 2.4.5 + '@applitools/snippets': 2.4.6 '@applitools/utils': 1.3.13 jpeg-js: 0.4.4 png-async: 0.9.4 @@ -744,13 +754,18 @@ packages: engines: {node: '>=12.13.0'} dev: true - /@applitools/ufg-client/1.1.0: - resolution: {integrity: sha512-wVzKLarbAGKlyNSbxIzj6+k62PFkUaoQGKg2dovHWvHQGEy+5Su8EpT7mOQY2fYYoompw6L05v8gq0W8R/T2bg==} + /@applitools/snippets/2.4.6: + resolution: {integrity: sha512-hAsAalDxaa1w2RCEx2b35D9XJIGGRlqQKzXEE6/rNr5vMtT0eYye61SST5e2PD7B4F2jJ7jRKrZd7REawoxxmg==} + engines: {node: '>=12.13.0'} + dev: true + + /@applitools/ufg-client/1.1.2: + resolution: {integrity: sha512-yhjlp4QHWVazImfUUr9S9ueQhKstxfI3NNu/SLPPX7lHLOdpdWn7fUZOzTBCs6j914s87r9J9cmsU2gnOO8bOQ==} engines: {node: '>=12.13.0'} dependencies: '@applitools/jsdom': 1.0.4 '@applitools/logger': 1.1.27 - '@applitools/req': 1.1.11 + '@applitools/req': 1.1.12 '@applitools/utils': 1.3.13 abort-controller: 3.0.0 postcss-value-parser: 4.2.0 @@ -1557,14 +1572,14 @@ packages: - supports-color dev: true - /@docsearch/css/3.2.1: - resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} + /@docsearch/css/3.3.0: + resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} dev: true - /@docsearch/js/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} + /@docsearch/js/3.3.0_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-oFXWRPNvPxAzBhnFJ9UCFIYZiQNc3Yrv6912nZHw/UIGxsyzKpNRZgHq8HDk1niYmOSoLKtVFcxkccpQmYGFyg==} dependencies: - '@docsearch/react': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y + '@docsearch/react': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y preact: 10.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -1573,8 +1588,8 @@ packages: - react-dom dev: true - /@docsearch/react/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} + /@docsearch/react/3.3.0_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -1587,16 +1602,16 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.7.1 - '@algolia/autocomplete-preset-algolia': 1.7.1_qs6lk5nhygj2o3hj4sf6xnr724 - '@docsearch/css': 3.2.1 + '@algolia/autocomplete-core': 1.7.2 + '@algolia/autocomplete-preset-algolia': 1.7.2_qs6lk5nhygj2o3hj4sf6xnr724 + '@docsearch/css': 3.3.0 algoliasearch: 4.14.2 transitivePeerDependencies: - '@algolia/client-search' dev: true - /@es-joy/jsdoccomment/0.33.0: - resolution: {integrity: sha512-bkxMGTlHPE4vfarXt1L1fOm81O18jTRFNgh3Fm4iPKctfWxcpJw4cpth5BhLkGZy4HFzGn/KfD/zGks/J+ZIIw==} + /@es-joy/jsdoccomment/0.33.4: + resolution: {integrity: sha512-02XyYuvR/Gn+3BT6idHVNQ4SSQlA1X1FeEfeKm2ypv8ANB6Lt9KRFZ2S7y5xjwR+EPQ/Rzb0XFaD+xKyqe4ALw==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} dependencies: comment-parser: 1.3.1 @@ -1695,7 +1710,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -1707,7 +1722,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 jest-message-util: 29.2.1 jest-util: 29.2.1 @@ -1723,7 +1738,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -1754,8 +1769,8 @@ packages: - utf-8-validate dev: true - /@jest/core/29.2.1_ts-node@10.9.1: - resolution: {integrity: sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg==} + /@jest/core/29.2.2_ts-node@10.9.1: + resolution: {integrity: sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1764,29 +1779,29 @@ packages: optional: true dependencies: '@jest/console': 29.2.1 - '@jest/reporters': 29.2.1 + '@jest/reporters': 29.2.2 '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.1 + '@jest/transform': 29.2.2 '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.2.0 - jest-config: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest-config: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm jest-haste-map: 29.2.1 jest-message-util: 29.2.1 jest-regex-util: 29.2.0 - jest-resolve: 29.2.1 - jest-resolve-dependencies: 29.2.1 - jest-runner: 29.2.1 - jest-runtime: 29.2.1 - jest-snapshot: 29.2.1 + jest-resolve: 29.2.2 + jest-resolve-dependencies: 29.2.2 + jest-runner: 29.2.2 + jest-runtime: 29.2.2 + jest-snapshot: 29.2.2 jest-util: 29.2.1 - jest-validate: 29.2.1 - jest-watcher: 29.2.1 + jest-validate: 29.2.2 + jest-watcher: 29.2.2 micromatch: 4.0.5 pretty-format: 29.2.1 slash: 3.0.0 @@ -1802,33 +1817,33 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-mock: 26.6.2 dev: true - /@jest/environment/29.2.1: - resolution: {integrity: sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg==} + /@jest/environment/29.2.2: + resolution: {integrity: sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.2.1 + '@jest/fake-timers': 29.2.2 '@jest/types': 29.2.1 - '@types/node': 18.11.0 - jest-mock: 29.2.1 + '@types/node': 18.11.8 + jest-mock: 29.2.2 dev: true - /@jest/expect-utils/29.2.1: - resolution: {integrity: sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg==} + /@jest/expect-utils/29.2.2: + resolution: {integrity: sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 dev: true - /@jest/expect/29.2.1: - resolution: {integrity: sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ==} + /@jest/expect/29.2.2: + resolution: {integrity: sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.2.1 - jest-snapshot: 29.2.1 + expect: 29.2.2 + jest-snapshot: 29.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1839,21 +1854,21 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true - /@jest/fake-timers/29.2.1: - resolution: {integrity: sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA==} + /@jest/fake-timers/29.2.2: + resolution: {integrity: sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.2.1 '@sinonjs/fake-timers': 9.1.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-message-util: 29.2.1 - jest-mock: 29.2.1 + jest-mock: 29.2.2 jest-util: 29.2.1 dev: true @@ -1866,14 +1881,14 @@ packages: expect: 26.6.2 dev: true - /@jest/globals/29.2.1: - resolution: {integrity: sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA==} + /@jest/globals/29.2.2: + resolution: {integrity: sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.1 - '@jest/expect': 29.2.1 + '@jest/environment': 29.2.2 + '@jest/expect': 29.2.2 '@jest/types': 29.2.1 - jest-mock: 29.2.1 + jest-mock: 29.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1912,8 +1927,8 @@ packages: - supports-color dev: true - /@jest/reporters/29.2.1: - resolution: {integrity: sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw==} + /@jest/reporters/29.2.2: + resolution: {integrity: sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1924,10 +1939,10 @@ packages: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.2.1 '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.1 + '@jest/transform': 29.2.2 '@jest/types': 29.2.1 '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -2011,8 +2026,8 @@ packages: - utf-8-validate dev: true - /@jest/test-sequencer/29.2.1: - resolution: {integrity: sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w==} + /@jest/test-sequencer/29.2.2: + resolution: {integrity: sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.2.1 @@ -2044,8 +2059,8 @@ packages: - supports-color dev: true - /@jest/transform/29.2.1: - resolution: {integrity: sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA==} + /@jest/transform/29.2.2: + resolution: {integrity: sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 @@ -2073,7 +2088,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@types/yargs': 15.0.14 chalk: 4.1.2 dev: true @@ -2085,7 +2100,7 @@ packages: '@jest/schemas': 29.0.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@types/yargs': 17.0.13 chalk: 4.1.2 dev: true @@ -2280,7 +2295,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/cacheable-request/6.0.2: @@ -2288,7 +2303,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@types/responselike': 1.0.0 dev: true @@ -2305,13 +2320,13 @@ packages: /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/d3-array/3.0.3: @@ -2505,8 +2520,8 @@ packages: '@types/trusted-types': 2.0.2 dev: true - /@types/eslint/8.4.7: - resolution: {integrity: sha512-ehM7cCt2RSFs42mb+lcmhFT9ouIlV92PuaeRGn8N8c98oMjG4Z5pJHA9b1QiCcuqnbPSHcyfiD3mlhqMaHsQIw==} + /@types/eslint/8.4.9: + resolution: {integrity: sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ==} dependencies: '@types/estree': 1.0.0 '@types/json-schema': 7.0.11 @@ -2519,7 +2534,7 @@ packages: /@types/express-serve-static-core/4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -2536,7 +2551,7 @@ packages: /@types/form-data/0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/geojson/7946.0.10: @@ -2546,7 +2561,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/http-cache-semantics/4.0.1: @@ -2584,7 +2599,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/lodash/4.14.186: @@ -2612,7 +2627,7 @@ packages: /@types/node-fetch/2.6.2: resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 form-data: 3.0.1 dev: true @@ -2630,6 +2645,10 @@ packages: /@types/node/18.11.0: resolution: {integrity: sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==} + dev: true + + /@types/node/18.11.8: + resolution: {integrity: sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==} /@types/node/8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} @@ -2658,7 +2677,7 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/semver/7.3.12: @@ -2669,7 +2688,7 @@ packages: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true /@types/sinonjs__fake-timers/8.1.1: @@ -2704,8 +2723,8 @@ packages: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} dev: false - /@types/web-bluetooth/0.0.15: - resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} + /@types/web-bluetooth/0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} dev: true /@types/yargs-parser/21.0.0: @@ -2728,7 +2747,7 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true optional: true @@ -2860,7 +2879,7 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.40: + /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.41: resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2868,14 +2887,14 @@ packages: vue: ^3.2.25 dependencies: vite: 3.1.8 - vue: 3.2.40 + vue: 3.2.41 dev: true - /@vitest/coverage-c8/0.24.3_ff3ihdoybm7ovley6q4itwsswa: + /@vitest/coverage-c8/0.24.3_sgxihqrf6yfkefuiez6xvwhntm: resolution: {integrity: sha512-tAmMyHxWYnAwGeJb7QgTuEX8aLasTg4X1/6INobXa/7wYGEJ28CACFO5iLn1HzFVPoLvhsS3luQjiflGjjSMRQ==} dependencies: c8: 7.12.0 - vitest: 0.24.3_ff3ihdoybm7ovley6q4itwsswa + vitest: 0.24.3_sgxihqrf6yfkefuiez6xvwhntm transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -2903,6 +2922,16 @@ packages: estree-walker: 2.0.2 source-map: 0.6.1 dev: true + optional: true + + /@vue/compiler-core/3.2.41: + resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} + dependencies: + '@babel/parser': 7.19.1 + '@vue/shared': 3.2.41 + estree-walker: 2.0.2 + source-map: 0.6.1 + dev: true /@vue/compiler-dom/3.2.40: resolution: {integrity: sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==} @@ -2910,9 +2939,18 @@ packages: '@vue/compiler-core': 3.2.40 '@vue/shared': 3.2.40 dev: true + optional: true + + /@vue/compiler-dom/3.2.41: + resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} + dependencies: + '@vue/compiler-core': 3.2.41 + '@vue/shared': 3.2.41 + dev: true /@vue/compiler-sfc/3.2.40: resolution: {integrity: sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==} + requiresBuild: true dependencies: '@babel/parser': 7.19.1 '@vue/compiler-core': 3.2.40 @@ -2925,6 +2963,22 @@ packages: postcss: 8.4.16 source-map: 0.6.1 dev: true + optional: true + + /@vue/compiler-sfc/3.2.41: + resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} + dependencies: + '@babel/parser': 7.19.1 + '@vue/compiler-core': 3.2.41 + '@vue/compiler-dom': 3.2.41 + '@vue/compiler-ssr': 3.2.41 + '@vue/reactivity-transform': 3.2.41 + '@vue/shared': 3.2.41 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.16 + source-map: 0.6.1 + dev: true /@vue/compiler-ssr/3.2.40: resolution: {integrity: sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==} @@ -2932,9 +2986,17 @@ packages: '@vue/compiler-dom': 3.2.40 '@vue/shared': 3.2.40 dev: true + optional: true + + /@vue/compiler-ssr/3.2.41: + resolution: {integrity: sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==} + dependencies: + '@vue/compiler-dom': 3.2.41 + '@vue/shared': 3.2.41 + dev: true - /@vue/devtools-api/6.4.4: - resolution: {integrity: sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==} + /@vue/devtools-api/6.4.5: + resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} dev: true /@vue/reactivity-transform/3.2.40: @@ -2946,62 +3008,78 @@ packages: estree-walker: 2.0.2 magic-string: 0.25.9 dev: true + optional: true - /@vue/reactivity/3.2.40: - resolution: {integrity: sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==} + /@vue/reactivity-transform/3.2.41: + resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} dependencies: - '@vue/shared': 3.2.40 + '@babel/parser': 7.19.1 + '@vue/compiler-core': 3.2.41 + '@vue/shared': 3.2.41 + estree-walker: 2.0.2 + magic-string: 0.25.9 dev: true - /@vue/runtime-core/3.2.40: - resolution: {integrity: sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==} + /@vue/reactivity/3.2.41: + resolution: {integrity: sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==} dependencies: - '@vue/reactivity': 3.2.40 - '@vue/shared': 3.2.40 + '@vue/shared': 3.2.41 dev: true - /@vue/runtime-dom/3.2.40: - resolution: {integrity: sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==} + /@vue/runtime-core/3.2.41: + resolution: {integrity: sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==} dependencies: - '@vue/runtime-core': 3.2.40 - '@vue/shared': 3.2.40 + '@vue/reactivity': 3.2.41 + '@vue/shared': 3.2.41 + dev: true + + /@vue/runtime-dom/3.2.41: + resolution: {integrity: sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==} + dependencies: + '@vue/runtime-core': 3.2.41 + '@vue/shared': 3.2.41 csstype: 2.6.21 dev: true - /@vue/server-renderer/3.2.40_vue@3.2.40: - resolution: {integrity: sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==} + /@vue/server-renderer/3.2.41_vue@3.2.41: + resolution: {integrity: sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==} peerDependencies: - vue: 3.2.40 + vue: 3.2.41 dependencies: - '@vue/compiler-ssr': 3.2.40 - '@vue/shared': 3.2.40 - vue: 3.2.40 + '@vue/compiler-ssr': 3.2.41 + '@vue/shared': 3.2.41 + vue: 3.2.41 dev: true /@vue/shared/3.2.40: resolution: {integrity: sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==} dev: true + optional: true + + /@vue/shared/3.2.41: + resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==} + dev: true - /@vueuse/core/9.3.0_vue@3.2.40: - resolution: {integrity: sha512-64Rna8IQDWpdrJxgitDg7yv1yTp41ZmvV8zlLEylK4QQLWAhz1OFGZDPZ8bU4lwcGgbEJ2sGi2jrdNh4LttUSQ==} + /@vueuse/core/9.4.0_vue@3.2.41: + resolution: {integrity: sha512-JzgenGj1ZF2BHOen5rsFiAyyI9sXAv7aKhNLlm9b7SwYQeKTcxTWdhudonURCSP3Egl9NQaRBzes2lv/1JUt/Q==} dependencies: - '@types/web-bluetooth': 0.0.15 - '@vueuse/metadata': 9.3.0 - '@vueuse/shared': 9.3.0_vue@3.2.40 - vue-demi: 0.13.11_vue@3.2.40 + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.4.0 + '@vueuse/shared': 9.4.0_vue@3.2.41 + vue-demi: 0.13.11_vue@3.2.41 transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata/9.3.0: - resolution: {integrity: sha512-GnnfjbzIPJIh9ngL9s9oGU1+Hx/h5/KFqTfJykzh/1xjaHkedV9g0MASpdmPZIP+ynNhKAcEfA6g5i8KXwtoMA==} + /@vueuse/metadata/9.4.0: + resolution: {integrity: sha512-7GKMdGAsJyQJl35MYOz/RDpP0FxuiZBRDSN79QIPbdqYx4Sd0sVTnIC68KJ6Oln0t0SouvSUMvRHuno216Ud2Q==} dev: true - /@vueuse/shared/9.3.0_vue@3.2.40: - resolution: {integrity: sha512-caGUWLY0DpPC6l31KxeUy6vPVNA0yKxx81jFYLoMpyP6cF84FG5Dkf69DfSUqL57wX8JcUkJDMnQaQIZPWFEQQ==} + /@vueuse/shared/9.4.0_vue@3.2.41: + resolution: {integrity: sha512-fTuem51KwMCnqUKkI8B57qAIMcFovtGgsCtAeqxIzH3i6nE9VYge+gVfneNHAAy7lj8twbkNfqQSygOPJTm4tQ==} dependencies: - vue-demi: 0.13.11_vue@3.2.40 + vue-demi: 0.13.11_vue@3.2.41 transitivePeerDependencies: - '@vue/composition-api' - vue @@ -3049,7 +3127,7 @@ packages: p-iteration: 1.1.8 dev: true - /@yankeeinlondon/builder-api/0.4.1_wgjnmyfjddfvpl2h62oj2lktde: + /@yankeeinlondon/builder-api/0.4.1_ilc43w6aifur57ytpvi7wn6nr4: resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} peerDependencies: fp-ts: ^2.12.1 @@ -3057,11 +3135,11 @@ packages: markdown-it: ^13.0.1 vite-plugin-md: '*' dependencies: - '@yankeeinlondon/happy-wrapper': 2.6.0_ff3ihdoybm7ovley6q4itwsswa + '@yankeeinlondon/happy-wrapper': 2.6.0_sgxihqrf6yfkefuiez6xvwhntm fp-ts: 2.12.3 inferred-types: 0.22.0 markdown-it: 13.0.1 - vite-plugin-md: 0.20.4_ddevayggxncg4aofvrlbkut4ha + vite-plugin-md: 0.20.4_c2wncyantgdia5hyyyszooupwi transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3076,13 +3154,13 @@ packages: - terser dev: true - /@yankeeinlondon/happy-wrapper/2.6.0_ff3ihdoybm7ovley6q4itwsswa: + /@yankeeinlondon/happy-wrapper/2.6.0_sgxihqrf6yfkefuiez6xvwhntm: resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} peerDependencies: happy-dom: ^6.0.4 dependencies: happy-dom: 6.0.4 - native-dash: 1.23.2_ff3ihdoybm7ovley6q4itwsswa + native-dash: 1.23.2_sgxihqrf6yfkefuiez6xvwhntm transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3491,14 +3569,14 @@ packages: - supports-color dev: true - /babel-jest/29.2.1_@babel+core@7.12.3: - resolution: {integrity: sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw==} + /babel-jest/29.2.2_@babel+core@7.12.3: + resolution: {integrity: sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.12.3 - '@jest/transform': 29.2.1 + '@jest/transform': 29.2.2 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.2.0_@babel+core@7.12.3 @@ -3710,14 +3788,14 @@ packages: fill-range: 7.0.1 dev: true - /brilliant-errors/0.6.0_ff3ihdoybm7ovley6q4itwsswa: + /brilliant-errors/0.6.0_sgxihqrf6yfkefuiez6xvwhntm: resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} engines: {node: '>=12.0.0'} dependencies: callsites: 3.1.0 common-types: 1.31.1 inferred-types: 0.22.0 - vitest: 0.19.1_ff3ihdoybm7ovley6q4itwsswa + vitest: 0.19.1_sgxihqrf6yfkefuiez6xvwhntm transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -4685,7 +4763,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_i53o2fh6a5o5tv3qlenzwcubc4: + /cypress-image-snapshot/4.0.1_kk6yjhqxahghos5zojvosw7ng4: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -4695,7 +4773,7 @@ packages: cypress: 10.10.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@29.2.1 + jest-image-snapshot: 4.2.0_jest@29.2.2 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5495,8 +5573,8 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /emittery/0.10.2: - resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + /emittery/0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} dev: true @@ -5853,7 +5931,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.3_ktuq5bhtjfperqqn2aknj5bg6m: + /eslint-plugin-jest/27.1.3_6co43ebcjfbpobjajqgjcmpkdi: resolution: {integrity: sha512-7DrIfYRQPa7JQd1Le8G/BJsfYHVUKQdJQ/6vULSp/4NjKZmSMJ/605G2hhScEra++SiH68zPEjLnrO74nHrMLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5869,7 +5947,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q eslint: 8.25.0 - jest: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm transitivePeerDependencies: - supports-color - typescript @@ -5897,13 +5975,13 @@ packages: - typescript dev: true - /eslint-plugin-jsdoc/39.3.23_eslint@8.25.0: - resolution: {integrity: sha512-ZwutuEmsdz8sj9fCXz4r/4x3uZ4qrB6+ca3rIyH3HHEEj5t6xgOSBWIj8IkxZkBUKvoadWHM6iCPzkmXgPHpsA==} + /eslint-plugin-jsdoc/39.3.25_eslint@8.25.0: + resolution: {integrity: sha512-7JiFOOaipz7Z7lNQ9sMJ6cdvclmVUwNYtFWGS3a0k0uEFcdZPPD64WOfENuyNHpl86C0AKIEPgOpZby5kd+pew==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.33.0 + '@es-joy/jsdoccomment': 0.33.4 comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 @@ -6221,13 +6299,13 @@ packages: jest-regex-util: 26.0.0 dev: true - /expect/29.2.1: - resolution: {integrity: sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ==} + /expect/29.2.2: + resolution: {integrity: sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.2.1 + '@jest/expect-utils': 29.2.2 jest-get-type: 29.2.0 - jest-matcher-utils: 29.2.1 + jest-matcher-utils: 29.2.2 jest-message-util: 29.2.1 jest-util: 29.2.1 dev: true @@ -7780,24 +7858,24 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus/29.2.1: - resolution: {integrity: sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg==} + /jest-circus/29.2.2: + resolution: {integrity: sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.1 - '@jest/expect': 29.2.1 + '@jest/environment': 29.2.2 + '@jest/expect': 29.2.2 '@jest/test-result': 29.2.1 '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 jest-each: 29.2.1 - jest-matcher-utils: 29.2.1 + jest-matcher-utils: 29.2.2 jest-message-util: 29.2.1 - jest-runtime: 29.2.1 - jest-snapshot: 29.2.1 + jest-runtime: 29.2.2 + jest-snapshot: 29.2.2 jest-util: 29.2.1 p-limit: 3.1.0 pretty-format: 29.2.1 @@ -7833,8 +7911,8 @@ packages: - utf-8-validate dev: true - /jest-cli/29.2.1_pt3oab7md4pun52yk6ejrzjiwq: - resolution: {integrity: sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw==} + /jest-cli/29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm: + resolution: {integrity: sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -7843,16 +7921,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.2.1_ts-node@10.9.1 + '@jest/core': 29.2.2_ts-node@10.9.1 '@jest/test-result': 29.2.1 '@jest/types': 29.2.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest-config: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm jest-util: 29.2.1 - jest-validate: 29.2.1 + jest-validate: 29.2.2 prompts: 2.4.2 yargs: 17.5.1 transitivePeerDependencies: @@ -7888,7 +7966,7 @@ packages: jest-validate: 26.6.2 micromatch: 4.0.5 pretty-format: 26.6.2 - ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga + ts-node: 10.9.1_7jzoohtnaegavowzoeccrsbhty transitivePeerDependencies: - bufferutil - canvas @@ -7896,8 +7974,8 @@ packages: - utf-8-validate dev: true - /jest-config/29.2.1_pt3oab7md4pun52yk6ejrzjiwq: - resolution: {integrity: sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA==} + /jest-config/29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm: + resolution: {integrity: sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -7909,29 +7987,29 @@ packages: optional: true dependencies: '@babel/core': 7.12.3 - '@jest/test-sequencer': 29.2.1 + '@jest/test-sequencer': 29.2.2 '@jest/types': 29.2.1 - '@types/node': 18.11.0 - babel-jest: 29.2.1_@babel+core@7.12.3 + '@types/node': 18.11.8 + babel-jest: 29.2.2_@babel+core@7.12.3 chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.2.1 - jest-environment-node: 29.2.1 + jest-circus: 29.2.2 + jest-environment-node: 29.2.2 jest-get-type: 29.2.0 jest-regex-util: 29.2.0 - jest-resolve: 29.2.1 - jest-runner: 29.2.1 + jest-resolve: 29.2.2 + jest-runner: 29.2.2 jest-util: 29.2.1 - jest-validate: 29.2.1 + jest-validate: 29.2.2 micromatch: 4.0.5 parse-json: 5.2.0 pretty-format: 29.2.1 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga + ts-node: 10.9.1_7jzoohtnaegavowzoeccrsbhty transitivePeerDependencies: - supports-color dev: true @@ -7999,7 +8077,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -8017,20 +8095,20 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true - /jest-environment-node/29.2.1: - resolution: {integrity: sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g==} + /jest-environment-node/29.2.2: + resolution: {integrity: sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.1 - '@jest/fake-timers': 29.2.1 + '@jest/environment': 29.2.2 + '@jest/fake-timers': 29.2.2 '@jest/types': 29.2.1 - '@types/node': 18.11.0 - jest-mock: 29.2.1 + '@types/node': 18.11.8 + jest-mock: 29.2.2 jest-util: 29.2.1 dev: true @@ -8050,7 +8128,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.0 + '@types/node': 18.11.8 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -8073,7 +8151,7 @@ packages: dependencies: '@jest/types': 29.2.1 '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.0 + '@types/node': 18.11.8 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -8104,7 +8182,7 @@ packages: ssim.js: 3.5.0 dev: true - /jest-image-snapshot/4.2.0_jest@29.2.1: + /jest-image-snapshot/4.2.0_jest@29.2.2: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8113,7 +8191,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8131,7 +8209,7 @@ packages: '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -8178,8 +8256,8 @@ packages: pretty-format: 26.6.2 dev: true - /jest-matcher-utils/29.2.1: - resolution: {integrity: sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww==} + /jest-matcher-utils/29.2.2: + resolution: {integrity: sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 @@ -8223,15 +8301,15 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 dev: true - /jest-mock/29.2.1: - resolution: {integrity: sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA==} + /jest-mock/29.2.2: + resolution: {integrity: sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-util: 29.2.1 dev: true @@ -8247,7 +8325,7 @@ packages: jest-resolve: 26.6.2 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.2.1: + /jest-pnp-resolver/1.2.2_jest-resolve@29.2.2: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -8256,7 +8334,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.2.1 + jest-resolve: 29.2.2 dev: true /jest-regex-util/26.0.0: @@ -8280,12 +8358,12 @@ packages: - supports-color dev: true - /jest-resolve-dependencies/29.2.1: - resolution: {integrity: sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ==} + /jest-resolve-dependencies/29.2.2: + resolution: {integrity: sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.2.0 - jest-snapshot: 29.2.1 + jest-snapshot: 29.2.2 transitivePeerDependencies: - supports-color dev: true @@ -8304,16 +8382,16 @@ packages: slash: 3.0.0 dev: true - /jest-resolve/29.2.1: - resolution: {integrity: sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ==} + /jest-resolve/29.2.2: + resolution: {integrity: sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 jest-haste-map: 29.2.1 - jest-pnp-resolver: 1.2.2_jest-resolve@29.2.1 + jest-pnp-resolver: 1.2.2_jest-resolve@29.2.2 jest-util: 29.2.1 - jest-validate: 29.2.1 + jest-validate: 29.2.2 resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 @@ -8327,7 +8405,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -8351,28 +8429,28 @@ packages: - utf-8-validate dev: true - /jest-runner/29.2.1: - resolution: {integrity: sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA==} + /jest-runner/29.2.2: + resolution: {integrity: sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.2.1 - '@jest/environment': 29.2.1 + '@jest/environment': 29.2.2 '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.1 + '@jest/transform': 29.2.2 '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 - emittery: 0.10.2 + emittery: 0.13.1 graceful-fs: 4.2.10 jest-docblock: 29.2.0 - jest-environment-node: 29.2.1 + jest-environment-node: 29.2.2 jest-haste-map: 29.2.1 jest-leak-detector: 29.2.1 jest-message-util: 29.2.1 - jest-resolve: 29.2.1 - jest-runtime: 29.2.1 + jest-resolve: 29.2.2 + jest-runtime: 29.2.2 jest-util: 29.2.1 - jest-watcher: 29.2.1 + jest-watcher: 29.2.2 jest-worker: 29.2.1 p-limit: 3.1.0 source-map-support: 0.5.13 @@ -8420,18 +8498,18 @@ packages: - utf-8-validate dev: true - /jest-runtime/29.2.1: - resolution: {integrity: sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg==} + /jest-runtime/29.2.2: + resolution: {integrity: sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.1 - '@jest/fake-timers': 29.2.1 - '@jest/globals': 29.2.1 + '@jest/environment': 29.2.2 + '@jest/fake-timers': 29.2.2 + '@jest/globals': 29.2.2 '@jest/source-map': 29.2.0 '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.1 + '@jest/transform': 29.2.2 '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -8439,10 +8517,10 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 29.2.1 jest-message-util: 29.2.1 - jest-mock: 29.2.1 + jest-mock: 29.2.2 jest-regex-util: 29.2.0 - jest-resolve: 29.2.1 - jest-snapshot: 29.2.1 + jest-resolve: 29.2.2 + jest-snapshot: 29.2.2 jest-util: 29.2.1 slash: 3.0.0 strip-bom: 4.0.0 @@ -8454,7 +8532,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 graceful-fs: 4.2.10 dev: true @@ -8482,8 +8560,8 @@ packages: - supports-color dev: true - /jest-snapshot/29.2.1: - resolution: {integrity: sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg==} + /jest-snapshot/29.2.2: + resolution: {integrity: sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 @@ -8492,19 +8570,19 @@ packages: '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 - '@jest/expect-utils': 29.2.1 - '@jest/transform': 29.2.1 + '@jest/expect-utils': 29.2.2 + '@jest/transform': 29.2.2 '@jest/types': 29.2.1 '@types/babel__traverse': 7.18.2 '@types/prettier': 2.7.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 chalk: 4.1.2 - expect: 29.2.1 + expect: 29.2.2 graceful-fs: 4.2.10 jest-diff: 29.2.1 jest-get-type: 29.2.0 jest-haste-map: 29.2.1 - jest-matcher-utils: 29.2.1 + jest-matcher-utils: 29.2.2 jest-message-util: 29.2.1 jest-util: 29.2.1 natural-compare: 1.4.0 @@ -8519,7 +8597,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 graceful-fs: 4.2.10 is-ci: 2.0.0 @@ -8531,7 +8609,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -8550,8 +8628,8 @@ packages: pretty-format: 26.6.2 dev: true - /jest-validate/29.2.1: - resolution: {integrity: sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ==} + /jest-validate/29.2.2: + resolution: {integrity: sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.2.1 @@ -8568,23 +8646,23 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 18.11.0 + '@types/node': 18.11.8 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 string-length: 4.0.2 dev: true - /jest-watcher/29.2.1: - resolution: {integrity: sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q==} + /jest-watcher/29.2.2: + resolution: {integrity: sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.2.1 '@jest/types': 29.2.1 - '@types/node': 18.11.0 + '@types/node': 18.11.8 ansi-escapes: 4.3.2 chalk: 4.1.2 - emittery: 0.10.2 + emittery: 0.13.1 jest-util: 29.2.1 string-length: 4.0.2 dev: true @@ -8593,7 +8671,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -8602,7 +8680,7 @@ packages: resolution: {integrity: sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.11.0 + '@types/node': 18.11.8 jest-util: 29.2.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8624,8 +8702,8 @@ packages: - utf-8-validate dev: true - /jest/29.2.1_pt3oab7md4pun52yk6ejrzjiwq: - resolution: {integrity: sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA==} + /jest/29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm: + resolution: {integrity: sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8634,10 +8712,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.2.1_ts-node@10.9.1 + '@jest/core': 29.2.2_ts-node@10.9.1 '@jest/types': 29.2.1 import-local: 3.1.0 - jest-cli: 29.2.1_pt3oab7md4pun52yk6ejrzjiwq + jest-cli: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm transitivePeerDependencies: - '@types/node' - supports-color @@ -8764,8 +8842,8 @@ packages: - utf-8-validate dev: true - /jsdom/20.0.1: - resolution: {integrity: sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A==} + /jsdom/20.0.2: + resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 @@ -9492,7 +9570,7 @@ packages: graphlib: 2.1.8 khroma: 2.0.0 moment-mini: 2.24.0 - stylis: 4.1.2 + stylis: 4.1.3 dev: true /methods/1.1.2: @@ -9935,10 +10013,10 @@ packages: - supports-color dev: true - /native-dash/1.23.2_ff3ihdoybm7ovley6q4itwsswa: + /native-dash/1.23.2_sgxihqrf6yfkefuiez6xvwhntm: resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} dependencies: - brilliant-errors: 0.6.0_ff3ihdoybm7ovley6q4itwsswa + brilliant-errors: 0.6.0_sgxihqrf6yfkefuiez6xvwhntm inferred-types: 0.22.0 transitivePeerDependencies: - '@edge-runtime/vm' @@ -11457,6 +11535,14 @@ packages: dev: true optional: true + /shiki-processor/0.1.1_shiki@0.11.1: + resolution: {integrity: sha512-K2v/JNHdMRGFnbcVqAgvPU8qmZNgtiBrYcYKe3O6Lx2W0RoyiwzrrpCUU917b2r2EMS+2FNgRIgz9xvtmF/L7w==} + peerDependencies: + shiki: ^0.11.1 + dependencies: + shiki: 0.11.1 + dev: true + /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -11947,6 +12033,10 @@ packages: /stylis/4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} + dev: false + + /stylis/4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} /subarg/1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} @@ -12265,7 +12355,7 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-node/10.9.1_o6ib7qqltxpe7qrskddglns2ga: + /ts-node/10.9.1_7jzoohtnaegavowzoeccrsbhty: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12284,7 +12374,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.0 + '@types/node': 18.11.8 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -12797,15 +12887,15 @@ packages: replace-ext: 1.0.1 dev: true - /vite-plugin-md/0.20.4_ddevayggxncg4aofvrlbkut4ha: + /vite-plugin-md/0.20.4_c2wncyantgdia5hyyyszooupwi: resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} peerDependencies: '@rollup/pluginutils': ^4.2.1 rollup: ^2.77.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@yankeeinlondon/builder-api': 0.4.1_wgjnmyfjddfvpl2h62oj2lktde - '@yankeeinlondon/happy-wrapper': 2.6.0_ff3ihdoybm7ovley6q4itwsswa + '@yankeeinlondon/builder-api': 0.4.1_ilc43w6aifur57ytpvi7wn6nr4 + '@yankeeinlondon/happy-wrapper': 2.6.0_sgxihqrf6yfkefuiez6xvwhntm gray-matter: 4.0.3 markdown-it: 13.0.1 rollup: 2.79.1 @@ -12853,7 +12943,7 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_m5gk66we2y6xlan2yvhce6nu2a: + /vitepress-plugin-mermaid/2.0.8_uxsdzqies4qdrnfbfepslu5p2a: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 @@ -12861,12 +12951,12 @@ packages: vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: mermaid: 9.1.7 - vite-plugin-md: 0.20.4_ddevayggxncg4aofvrlbkut4ha - vitepress: 1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y + vite-plugin-md: 0.20.4_c2wncyantgdia5hyyyszooupwi + vitepress: 1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.11_eny7drxhzzrhshlyu255qt5dum: - resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} + /vitepress-plugin-search/1.0.4-alpha.14_avkyoe4zdnp4ms2apm424dwjmm: + resolution: {integrity: sha512-PvHdsv4DN4SNfbfMN2IFp6vNKLXqEVpZpvkFi5zyEdTn0nb2HtaNuAtwSeSz7gWOMZwzLQ/ncHQ0Ka5beHgASQ==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: vite: 2 || 3 @@ -12874,23 +12964,24 @@ packages: vue: '3' dependencies: vite: 3.1.8 - vitepress: 1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y - vue: 3.2.40 + vitepress: 1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y + vue: 3.2.41 dev: true - /vitepress/1.0.0-alpha.22_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-IWqnAxMDNaiyl6Bz+/79l40Ho6xsjrqxRp/WZw0+5BXR0BTZbmHyhGtI3XrH6oSn8MisLPjCccikaj3mcmCoWg==} + /vitepress/1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-XpDpflrdmyBmUQrg06q29Mhez144NvoZ48pRvNhANy/wV7E7XJ1zenQROOSADnOsAlhV1gzcNjqiFNObCk7l8A==} hasBin: true dependencies: - '@docsearch/css': 3.2.1 - '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.40 - '@vue/devtools-api': 6.4.4 - '@vueuse/core': 9.3.0_vue@3.2.40 + '@docsearch/css': 3.3.0 + '@docsearch/js': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y + '@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.41 + '@vue/devtools-api': 6.4.5 + '@vueuse/core': 9.4.0_vue@3.2.41 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 + shiki-processor: 0.1.1_shiki@0.11.1 vite: 3.1.8 - vue: 3.2.40 + vue: 3.2.41 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -12903,7 +12994,7 @@ packages: - terser dev: true - /vitest/0.19.1_ff3ihdoybm7ovley6q4itwsswa: + /vitest/0.19.1_sgxihqrf6yfkefuiez6xvwhntm: resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -12930,12 +13021,12 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@vitest/ui': 0.24.3 chai: 4.3.6 debug: 4.3.4 happy-dom: 6.0.4 - jsdom: 20.0.1 + jsdom: 20.0.2 local-pkg: 0.4.2 tinypool: 0.2.4 tinyspy: 1.0.2 @@ -12948,7 +13039,7 @@ packages: - terser dev: true - /vitest/0.24.3_ff3ihdoybm7ovley6q4itwsswa: + /vitest/0.24.3_sgxihqrf6yfkefuiez6xvwhntm: resolution: {integrity: sha512-aM0auuPPgMSstWvr851hB74g/LKaKBzSxcG3da7ejfZbx08Y21JpZmbmDYrMTCGhVZKqTGwzcnLMwyfz2WzkhQ==} engines: {node: '>=v14.16.0'} hasBin: true @@ -12972,12 +13063,12 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.0 + '@types/node': 18.11.8 '@vitest/ui': 0.24.3 chai: 4.3.6 debug: 4.3.4 happy-dom: 6.0.4 - jsdom: 20.0.1 + jsdom: 20.0.2 local-pkg: 0.4.2 strip-literal: 0.4.2 tinybench: 2.3.0 @@ -13035,7 +13126,7 @@ packages: resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} dev: true - /vue-demi/0.13.11_vue@3.2.40: + /vue-demi/0.13.11_vue@3.2.41: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true @@ -13047,7 +13138,7 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.40 + vue: 3.2.41 dev: true /vue-template-compiler/2.7.10: @@ -13059,14 +13150,14 @@ packages: dev: true optional: true - /vue/3.2.40: - resolution: {integrity: sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==} + /vue/3.2.41: + resolution: {integrity: sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==} dependencies: - '@vue/compiler-dom': 3.2.40 - '@vue/compiler-sfc': 3.2.40 - '@vue/runtime-dom': 3.2.40 - '@vue/server-renderer': 3.2.40_vue@3.2.40 - '@vue/shared': 3.2.40 + '@vue/compiler-dom': 3.2.41 + '@vue/compiler-sfc': 3.2.41 + '@vue/runtime-dom': 3.2.41 + '@vue/server-renderer': 3.2.41_vue@3.2.41 + '@vue/shared': 3.2.41 dev: true /w3c-hr-time/1.0.2: From 77782fdbc705f687f6371e7cceeb05898972a1d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 10:07:45 +0000 Subject: [PATCH 0502/1038] chore(deps): update all non-major dependencies --- package.json | 22 +- packages/mermaid-example-diagram/package.json | 2 +- packages/mermaid-mindmap/package.json | 2 +- packages/mermaid/package.json | 12 +- pnpm-lock.yaml | 709 +++++++++--------- 5 files changed, 378 insertions(+), 369 deletions(-) diff --git a/package.json b/package.json index 6401f0f18f..135f56b563 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", "type": "module", - "packageManager": "pnpm@7.13.6", + "packageManager": "pnpm@7.14.1", "exports": { ".": { "require": "./dist/mermaid.min.js", @@ -91,7 +91,7 @@ "@applitools/eyes-cypress": "3.27.6", "@commitlint/cli": "17.1.2", "@commitlint/config-conventional": "17.1.0", - "@cspell/eslint-plugin": "6.12.0", + "@cspell/eslint-plugin": "6.13.2", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", "@types/eslint": "8.4.9", @@ -101,22 +101,22 @@ "@types/mdast": "3.0.10", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@typescript-eslint/eslint-plugin": "5.40.1", - "@typescript-eslint/parser": "5.40.1", + "@typescript-eslint/eslint-plugin": "5.41.0", + "@typescript-eslint/parser": "5.41.0", "@vitest/coverage-c8": "0.24.3", "@vitest/ui": "0.24.3", - "concurrently": "7.4.0", + "concurrently": "7.5.0", "coveralls": "3.1.1", - "cypress": "10.10.0", + "cypress": "10.11.0", "cypress-image-snapshot": "4.0.1", "documentation": "13.2.5", "esbuild": "0.15.12", - "eslint": "8.25.0", + "eslint": "8.26.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", "eslint-plugin-jest": "27.1.3", - "eslint-plugin-jsdoc": "39.3.25", + "eslint-plugin-jsdoc": "39.4.0", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "eslint-plugin-no-only-tests": "3.1.0", @@ -131,7 +131,7 @@ "lint-staged": "13.0.3", "markdown-it": "13.0.1", "path-browserify": "1.0.1", - "pnpm": "7.13.6", + "pnpm": "7.14.1", "prettier": "2.7.1", "prettier-plugin-jsdoc": "0.4.2", "remark": "14.0.2", @@ -140,7 +140,7 @@ "ts-node": "10.9.1", "typescript": "4.8.4", "unist-util-flatmap": "1.0.0", - "vite": "3.1.8", + "vite": "3.2.2", "vitepress": "1.0.0-alpha.26", "vitepress-plugin-mermaid": "2.0.8", "vitepress-plugin-search": "1.0.4-alpha.14", @@ -157,6 +157,6 @@ "**/*.scss" ], "volta": { - "node": "18.5.0" + "node": "18.12.0" } } diff --git a/packages/mermaid-example-diagram/package.json b/packages/mermaid-example-diagram/package.json index 818ceb6a90..f05a0bb490 100644 --- a/packages/mermaid-example-diagram/package.json +++ b/packages/mermaid-example-diagram/package.json @@ -50,7 +50,7 @@ }, "dependencies": {}, "devDependencies": { - "concurrently": "7.4.0", + "concurrently": "7.5.0", "rimraf": "3.0.2" }, "resolutions": { diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index e6ec9ad520..601f5c8cec 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -57,7 +57,7 @@ "non-layered-tidy-tree-layout": "^2.0.2" }, "devDependencies": { - "concurrently": "7.4.0", + "concurrently": "7.5.0", "rimraf": "3.0.2" }, "resolutions": { diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 6d951ffbb1..8d4a0ad64d 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -86,20 +86,20 @@ "@types/lodash": "4.14.186", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@typescript-eslint/eslint-plugin": "5.40.1", - "@typescript-eslint/parser": "5.40.1", - "concurrently": "7.4.0", + "@typescript-eslint/eslint-plugin": "5.41.0", + "@typescript-eslint/parser": "5.41.0", + "concurrently": "7.5.0", "coveralls": "3.1.1", - "cypress": "10.10.0", + "cypress": "10.11.0", "cypress-image-snapshot": "4.0.1", "documentation": "13.2.5", "esbuild": "0.15.12", - "eslint": "8.25.0", + "eslint": "8.26.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", "eslint-plugin-jest": "27.1.3", - "eslint-plugin-jsdoc": "39.3.25", + "eslint-plugin-jsdoc": "39.4.0", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "express": "4.18.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32755a1499..8bf3cce804 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ importers: '@braintree/sanitize-url': 6.0.1 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 - '@cspell/eslint-plugin': 6.12.0 + '@cspell/eslint-plugin': 6.13.2 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 '@types/eslint': 8.4.9 @@ -23,13 +23,13 @@ importers: '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.40.1 - '@typescript-eslint/parser': 5.40.1 + '@typescript-eslint/eslint-plugin': 5.41.0 + '@typescript-eslint/parser': 5.41.0 '@vitest/coverage-c8': 0.24.3 '@vitest/ui': 0.24.3 - concurrently: 7.4.0 + concurrently: 7.5.0 coveralls: 3.1.1 - cypress: 10.10.0 + cypress: 10.11.0 cypress-image-snapshot: 4.0.1 d3: 7.6.1 dagre: 0.8.5 @@ -37,12 +37,12 @@ importers: documentation: 13.2.5 dompurify: 2.4.0 esbuild: 0.15.12 - eslint: 8.25.0 + eslint: 8.26.0 eslint-config-prettier: 8.5.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 eslint-plugin-jest: 27.1.3 - eslint-plugin-jsdoc: 39.3.25 + eslint-plugin-jsdoc: 39.4.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 eslint-plugin-no-only-tests: 3.1.0 @@ -63,7 +63,7 @@ importers: moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 path-browserify: 1.0.1 - pnpm: 7.13.6 + pnpm: 7.14.1 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2 remark: 14.0.2 @@ -75,7 +75,7 @@ importers: typescript: 4.8.4 unist-util-flatmap: 1.0.0 uuid: 9.0.0 - vite: 3.1.8 + vite: 3.2.2 vitepress: 1.0.0-alpha.26 vitepress-plugin-mermaid: 2.0.8 vitepress-plugin-search: 1.0.4-alpha.14 @@ -101,7 +101,7 @@ importers: '@applitools/eyes-cypress': 3.27.6 '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 - '@cspell/eslint-plugin': 6.12.0 + '@cspell/eslint-plugin': 6.13.2 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 '@types/eslint': 8.4.9 @@ -111,24 +111,24 @@ importers: '@types/mdast': 3.0.10 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y - '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m '@vitest/coverage-c8': 0.24.3_sgxihqrf6yfkefuiez6xvwhntm '@vitest/ui': 0.24.3 - concurrently: 7.4.0 + concurrently: 7.5.0 coveralls: 3.1.1 - cypress: 10.10.0 - cypress-image-snapshot: 4.0.1_kk6yjhqxahghos5zojvosw7ng4 + cypress: 10.11.0 + cypress-image-snapshot: 4.0.1_ubq66qitfkq2hjrkiw5tjmpgui documentation: 13.2.5 esbuild: 0.15.12 - eslint: 8.25.0 - eslint-config-prettier: 8.5.0_eslint@8.25.0 - eslint-plugin-cypress: 2.12.1_eslint@8.25.0 + eslint: 8.26.0 + eslint-config-prettier: 8.5.0_eslint@8.26.0 + eslint-plugin-cypress: 2.12.1_eslint@8.26.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.3_6co43ebcjfbpobjajqgjcmpkdi - eslint-plugin-jsdoc: 39.3.25_eslint@8.25.0 + eslint-plugin-jest: 27.1.3_6amp5fdmvwluzjywjm3ep2edui + eslint-plugin-jsdoc: 39.4.0_eslint@8.26.0 eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.25.0 + eslint-plugin-markdown: 3.0.0_eslint@8.26.0 eslint-plugin-no-only-tests: 3.1.0 eslint-plugin-tsdoc: 0.2.17 express: 4.18.2 @@ -141,7 +141,7 @@ importers: lint-staged: 13.0.3 markdown-it: 13.0.1 path-browserify: 1.0.1 - pnpm: 7.13.6 + pnpm: 7.14.1 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 @@ -150,10 +150,10 @@ importers: ts-node: 10.9.1_7jzoohtnaegavowzoeccrsbhty typescript: 4.8.4 unist-util-flatmap: 1.0.0 - vite: 3.1.8 + vite: 3.2.2 vitepress: 1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y vitepress-plugin-mermaid: 2.0.8_uxsdzqies4qdrnfbfepslu5p2a - vitepress-plugin-search: 1.0.4-alpha.14_avkyoe4zdnp4ms2apm424dwjmm + vitepress-plugin-search: 1.0.4-alpha.14_m3jrvapcj7q7m5scmf3cftoq54 vitest: 0.24.3_sgxihqrf6yfkefuiez6xvwhntm packages/mermaid: @@ -170,11 +170,11 @@ importers: '@types/lodash': 4.14.186 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.40.1 - '@typescript-eslint/parser': 5.40.1 - concurrently: 7.4.0 + '@typescript-eslint/eslint-plugin': 5.41.0 + '@typescript-eslint/parser': 5.41.0 + concurrently: 7.5.0 coveralls: 3.1.1 - cypress: 10.10.0 + cypress: 10.11.0 cypress-image-snapshot: 4.0.1 d3: 7.6.1 dagre: ^0.8.5 @@ -182,12 +182,12 @@ importers: documentation: 13.2.5 dompurify: 2.4.0 esbuild: 0.15.12 - eslint: 8.25.0 + eslint: 8.26.0 eslint-config-prettier: 8.5.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 eslint-plugin-jest: 27.1.3 - eslint-plugin-jsdoc: 39.3.25 + eslint-plugin-jsdoc: 39.4.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 express: 4.18.2 @@ -240,22 +240,22 @@ importers: '@types/lodash': 4.14.186 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y - '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - concurrently: 7.4.0 + '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + concurrently: 7.5.0 coveralls: 3.1.1 - cypress: 10.10.0 - cypress-image-snapshot: 4.0.1_wsmbrbtpfgb2tvmlrj7mjfruri + cypress: 10.11.0 + cypress-image-snapshot: 4.0.1_qb6t4atfexeiaiscfhsmxcgcni documentation: 13.2.5 esbuild: 0.15.12 - eslint: 8.25.0 - eslint-config-prettier: 8.5.0_eslint@8.25.0 - eslint-plugin-cypress: 2.12.1_eslint@8.25.0 + eslint: 8.26.0 + eslint-config-prettier: 8.5.0_eslint@8.26.0 + eslint-plugin-cypress: 2.12.1_eslint@8.26.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.3_pubrigz2e5aqv2qdhrj3u7msey - eslint-plugin-jsdoc: 39.3.25_eslint@8.25.0 + eslint-plugin-jest: 27.1.3_ica35nyjpw4tulszcdgkibbjga + eslint-plugin-jsdoc: 39.4.0_eslint@8.26.0 eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.25.0 + eslint-plugin-markdown: 3.0.0_eslint@8.26.0 express: 4.18.2 globby: 13.1.2 husky: 8.0.1 @@ -277,16 +277,16 @@ importers: packages/mermaid-example-diagram: specifiers: - concurrently: 7.4.0 + concurrently: 7.5.0 rimraf: 3.0.2 devDependencies: - concurrently: 7.4.0 + concurrently: 7.5.0 rimraf: 3.0.2 packages/mermaid-mindmap: specifiers: '@braintree/sanitize-url': ^6.0.0 - concurrently: 7.4.0 + concurrently: 7.5.0 cytoscape: ^3.23.0 cytoscape-cose-bilkent: ^4.1.0 cytoscape-fcose: ^2.1.0 @@ -301,7 +301,7 @@ importers: d3: 7.6.1 non-layered-tidy-tree-layout: 2.0.2 devDependencies: - concurrently: 7.4.0 + concurrently: 7.5.0 rimraf: 3.0.2 packages: @@ -1292,242 +1292,242 @@ packages: chalk: 4.1.2 dev: true - /@cspell/cspell-bundled-dicts/6.12.0: - resolution: {integrity: sha512-myfsDwSJcAMjKbztKBG424wIp/YV9/lvxsgHFKxBGPi+nNx1p7TbOjAAO9EWk0mZVHyGKZwCFJS2ohkoqxJWoQ==} + /@cspell/cspell-bundled-dicts/6.13.2: + resolution: {integrity: sha512-Y0eiKfpy/PBoYZLT0WPAcUu3D7T/txbekUV/tkw6EusCIGrtJ91qYWnZh4MkUI5C/4XMCnlWfskWW+o3ju46Nw==} engines: {node: '>=14'} dependencies: - '@cspell/dict-ada': 2.0.1 - '@cspell/dict-aws': 2.0.0 - '@cspell/dict-bash': 2.0.4 - '@cspell/dict-companies': 2.0.14 - '@cspell/dict-cpp': 3.2.1 - '@cspell/dict-cryptocurrencies': 2.0.0 - '@cspell/dict-csharp': 3.0.1 - '@cspell/dict-css': 2.1.0 - '@cspell/dict-dart': 1.1.1 - '@cspell/dict-django': 2.0.0 + '@cspell/dict-ada': 3.0.0 + '@cspell/dict-aws': 3.0.0 + '@cspell/dict-bash': 3.0.0 + '@cspell/dict-companies': 3.0.1 + '@cspell/dict-cpp': 4.0.0 + '@cspell/dict-cryptocurrencies': 3.0.0 + '@cspell/dict-csharp': 4.0.0 + '@cspell/dict-css': 3.0.0 + '@cspell/dict-dart': 2.0.0 + '@cspell/dict-django': 3.0.0 '@cspell/dict-docker': 1.1.1 - '@cspell/dict-dotnet': 2.0.1 - '@cspell/dict-elixir': 2.0.1 + '@cspell/dict-dotnet': 3.0.0 + '@cspell/dict-elixir': 3.0.0 '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 2.3.3 - '@cspell/dict-filetypes': 2.1.1 - '@cspell/dict-fonts': 2.1.0 - '@cspell/dict-fullstack': 2.0.6 - '@cspell/dict-git': 1.0.1 - '@cspell/dict-golang': 3.0.1 - '@cspell/dict-haskell': 2.0.1 - '@cspell/dict-html': 3.3.2 - '@cspell/dict-html-symbol-entities': 3.0.0 - '@cspell/dict-java': 3.0.7 - '@cspell/dict-latex': 2.0.9 - '@cspell/dict-lorem-ipsum': 2.0.1 - '@cspell/dict-lua': 2.0.0 - '@cspell/dict-node': 3.0.1 - '@cspell/dict-npm': 3.1.3 - '@cspell/dict-php': 2.0.0 - '@cspell/dict-powershell': 2.0.0 - '@cspell/dict-public-licenses': 1.0.6 - '@cspell/dict-python': 3.0.6 - '@cspell/dict-r': 1.0.3 - '@cspell/dict-ruby': 2.0.2 - '@cspell/dict-rust': 2.0.1 - '@cspell/dict-scala': 2.0.0 - '@cspell/dict-software-terms': 2.2.12 - '@cspell/dict-sql': 1.0.4 - '@cspell/dict-swift': 1.0.3 - '@cspell/dict-typescript': 2.0.2 - '@cspell/dict-vue': 2.0.2 - dev: true - - /@cspell/cspell-pipe/6.12.0: - resolution: {integrity: sha512-Nkm+tIJ5k+jZPovZCdmZhrWrwRFwnDq+7yCxhov0C7UX3hsSNtTJIpFuaCNEQJ+Whpvxdh1YKflvHiHYygEgTg==} + '@cspell/dict-en_us': 3.0.0 + '@cspell/dict-filetypes': 3.0.0 + '@cspell/dict-fonts': 3.0.0 + '@cspell/dict-fullstack': 3.0.0 + '@cspell/dict-git': 2.0.0 + '@cspell/dict-golang': 4.0.0 + '@cspell/dict-haskell': 3.0.0 + '@cspell/dict-html': 4.0.0 + '@cspell/dict-html-symbol-entities': 4.0.0 + '@cspell/dict-java': 4.0.0 + '@cspell/dict-latex': 3.0.0 + '@cspell/dict-lorem-ipsum': 3.0.0 + '@cspell/dict-lua': 3.0.0 + '@cspell/dict-node': 4.0.1 + '@cspell/dict-npm': 4.0.1 + '@cspell/dict-php': 3.0.1 + '@cspell/dict-powershell': 3.0.0 + '@cspell/dict-public-licenses': 2.0.0 + '@cspell/dict-python': 4.0.0 + '@cspell/dict-r': 2.0.0 + '@cspell/dict-ruby': 3.0.0 + '@cspell/dict-rust': 3.0.0 + '@cspell/dict-scala': 3.0.0 + '@cspell/dict-software-terms': 3.0.1 + '@cspell/dict-sql': 2.0.0 + '@cspell/dict-swift': 2.0.0 + '@cspell/dict-typescript': 3.0.1 + '@cspell/dict-vue': 3.0.0 + dev: true + + /@cspell/cspell-pipe/6.13.2: + resolution: {integrity: sha512-Rs4baE6I3OdCdtsDUsIg4Fo3tRAn6G35kbicH/9uhxGbooy6ElArMGIGvI4bh8MyXgnzIT9yT43CdcJEZ2sCqA==} engines: {node: '>=14'} dev: true - /@cspell/cspell-service-bus/6.12.0: - resolution: {integrity: sha512-GgvciSeMUekl8z8vP8//cs5/qRQJSLz9IVREf6fxQW4upjw6zXZ1KonwPqOF5uLocIMAr8eCdrJzHKuKvigJIA==} + /@cspell/cspell-service-bus/6.13.2: + resolution: {integrity: sha512-ETEZmxoI32rJHQb3oKCAF1xEse6udUAh8HEmPlIiyZFtp3FMoiH9vYtnZMLeMw1yg/WwTrXJUOxpY21kD42Wug==} engines: {node: '>=14'} dev: true - /@cspell/cspell-types/6.12.0: - resolution: {integrity: sha512-BcZTt05fNy9SGXfbPgUyxS4FfIaUpcVq8IOJ0noN+jsKsmlbssOUgJOB2ApN1h66FfWcKuFy/uNrjfcrQ7PTqg==} + /@cspell/cspell-types/6.13.2: + resolution: {integrity: sha512-gB+PXF7s3cJFygIhqD6cWyrI1D4sMICIP0sHlolqi6W7kOMmKw4rYEbb8kP/yfTuMFX6Cgm9/RZYxgwqk6s1qg==} engines: {node: '>=14'} dev: true - /@cspell/dict-ada/2.0.1: - resolution: {integrity: sha512-vopTJ1oHrrFYV5GU55Sr+AzItR78Uj5YbCaspYABmYKlq4NRrcUAUsr4bWgymDcspMIHO7e7IFcj48OKs1fndA==} + /@cspell/dict-ada/3.0.0: + resolution: {integrity: sha512-jpUVex0JTMGIQC/+T/GglLRpimmvH8HUcpf3gC+bS1ZcVGzyWQo5clevxYbz2MBVoLxSMZiqPoqB5dt/vAOTwQ==} dev: true - /@cspell/dict-aws/2.0.0: - resolution: {integrity: sha512-NKz7pDZ7pwj/b33i3f4WLpC1rOOUMmENwYgftxU+giU2YBeKM2wZbMTSEIzsrel56r0UlQYmdIVlP/B4nnVaoQ==} + /@cspell/dict-aws/3.0.0: + resolution: {integrity: sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==} dev: true - /@cspell/dict-bash/2.0.4: - resolution: {integrity: sha512-uK/ehmp5LYrmRH2Gv3nbvdPswpkybJUn34WYKLpeuYHQktmi+pOI1A9uPdBPnSbMDffSvwQlQohIyKawz+X8Ag==} + /@cspell/dict-bash/3.0.0: + resolution: {integrity: sha512-bQl6mk1SrcmrDL+F4XTeZtW2JnqgNJx5pNX6PIfWe5QA+J2blLlYbwDQOvjovpZEirwy8iqQmu//6bKjaDu1ow==} dev: true - /@cspell/dict-companies/2.0.14: - resolution: {integrity: sha512-Sq1X29Z05OZ/UNqTwVhf3/WaqvJQy4/S6gS8qYI5AQRX45gVe8CPhNBLmZOTC6z8m716bfQCxa5rRT9YNSdTZg==} + /@cspell/dict-companies/3.0.1: + resolution: {integrity: sha512-esgKy0UkWIK1lyRaN9XtbRZZJiJ0tLlfyLkaZ3s0OubsAsSH6hgM6nc2p1IbmyhsFaEfp645z+YneBuOTL35Rw==} dev: true - /@cspell/dict-cpp/3.2.1: - resolution: {integrity: sha512-XcmzrKIghqFfrYLLaHtWKOp9rupiuGdc5ODONk+emsq0W5CIc3Abn27IQHwUzxzF+Cm5IfKAIJ5Kpe6hkzm0HQ==} + /@cspell/dict-cpp/4.0.0: + resolution: {integrity: sha512-NrCmer14tTSbPs1TwqyCjFEmWCBw0UFvAn4O3pdWuxktArHxRJ5vUQOoL2Gus2H9s3ihhOJZkcuJ47Kd21E7BQ==} dev: true - /@cspell/dict-cryptocurrencies/2.0.0: - resolution: {integrity: sha512-nREysmmfOp7L2YCRAUufQahwD5/Punzb5AZ6eyg4zUamdRWHgBFphb5/9h2flt1vgdUfhc6hZcML21Ci7iXjaA==} + /@cspell/dict-cryptocurrencies/3.0.0: + resolution: {integrity: sha512-5/tAqEVcg3PP1ZiSunxSVX1h5jGGS9ulSQFhPlXswmRRlo0Bry7ZP6Am81TiPG0bvkRvKb8eA9N5z212q6UTcg==} dev: true - /@cspell/dict-csharp/3.0.1: - resolution: {integrity: sha512-xkfQu03F388w4sdVQSSjrVMkxAxpTYB2yW7nw0XYtTjl3L/jBgvTr/j1BTjdFbQhdNf10Lg0Ak1kXOjmHodVqA==} + /@cspell/dict-csharp/4.0.0: + resolution: {integrity: sha512-B6Ss3sMrkFRJFQCZ7F49yJzDZ6izpQTgNLEmuYIt0o6ZLsSvy5JDC3+F2rYfpsFESQIU/4GbqWZPTs7C9WvBeg==} dev: true - /@cspell/dict-css/2.1.0: - resolution: {integrity: sha512-glASAELcGhh4Ru0rTQ4G9mTQxSyPwsZOON/5BYflB6Kks8YC8nUvKrtMCoo5W7CPKPfSEa8zUNctFQ1+IUYDHA==} + /@cspell/dict-css/3.0.0: + resolution: {integrity: sha512-GNg4EMhP+8yVr3AuebBMUxsb/otCz2DS8rTp2M5Fo1179uwpjMfPqLezFxH+YaiA3vgBiwajdrl/0ZGn44qBRw==} dev: true - /@cspell/dict-dart/1.1.1: - resolution: {integrity: sha512-XBOCpezXrgFN18kGEwqMpTUGZdw4BjCoJrNOo6qBdcdZySCrEHLwELraLOkcSba2kM4stmTp0t59FkwtP8TKOA==} + /@cspell/dict-dart/2.0.0: + resolution: {integrity: sha512-p7vHszsu2uJt+F04gvNy1e5okypFfVEYHBWgpOV/Jrvs0F5A+gUzFTG2Ix9b1jkCigAULYKQkIGue+qlhSoK5Q==} dev: true - /@cspell/dict-django/2.0.0: - resolution: {integrity: sha512-GkJdJv6cmzrKcmq2/oxTXjKF5uv71r4eTqnFmgPbNBW1t+G4VYpzOf0QrVQrhx2RC4DdW5XfcTf+iS0FxHOTmw==} + /@cspell/dict-django/3.0.0: + resolution: {integrity: sha512-Ag6ecPokb12RcAwD9eOvKl5G2l4h5aOQl36mipqINLc+NPtIGVN3qa2FBg3hHeS6OvIDwCZ/LQ/zz5xbBhakhg==} dev: true /@cspell/dict-docker/1.1.1: resolution: {integrity: sha512-UEYoeRDm7oUN9yz1mYSozz6D4+2N14S/cd2Re9et6Xzq6yi62s4ky3knF92Of2weelADjnN41UA22VBhRAf7Sw==} dev: true - /@cspell/dict-dotnet/2.0.1: - resolution: {integrity: sha512-b1n4crJRW0WZVf9Gp/52j/tDtjYiZ3N81fIyfqPlBrjsh/5AivfA697DYwQ2mr8ngNX7RsqRtYNQjealA1rEnQ==} + /@cspell/dict-dotnet/3.0.0: + resolution: {integrity: sha512-RqZ+WbkT+/JaR4RPbtyohlkZSd6FSOGT/Bu4yYQN2X06Vlk5rvy/dYSQWk2t3d1qJFq5EO0m8eTs7IOOnBF33Q==} dev: true - /@cspell/dict-elixir/2.0.1: - resolution: {integrity: sha512-eTTTxZt1FqGkM780yFDxsGHvTbWqvlK8YISSccK8FyrB6ULW+uflQlNS5AnWg3uWKC48b7pQott+odYCsPJ+Ow==} + /@cspell/dict-elixir/3.0.0: + resolution: {integrity: sha512-DJxGMNfcT1ieYupyzq7GNSIJEkdJAnpEoL58R54bf2mxRfC02Uu2sIcKWJO18ozOn3jgOY408TxOCEc8bz39jw==} dev: true /@cspell/dict-en-gb/1.1.33: resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} dev: true - /@cspell/dict-en_us/2.3.3: - resolution: {integrity: sha512-csyKeaNktfpvMkmE2GOPTwsrQm3wWhLKVaDRaGU0qTcIjDiCvqv/iYgrVrKRkoddA3kdNTZ8YNCcix7lb6VkOg==} + /@cspell/dict-en_us/3.0.0: + resolution: {integrity: sha512-pN26ZBp1kKiN1xwUyT4olDZrW+BvLojZDjtE6j/yY3CO7U4rztkhTO+Ao3rQosqD/icB9NoWvPSMFCpbiaejYA==} dev: true - /@cspell/dict-filetypes/2.1.1: - resolution: {integrity: sha512-Oo0/mUbFHzsaATqRLdkV1RMoYns3aGzeKFIpVJg415GYtJ8EABXtEArYTXeMwlboyGTPvEk+PR2hBSTSfQTqmg==} + /@cspell/dict-filetypes/3.0.0: + resolution: {integrity: sha512-Fiyp0z5uWaK0d2TfR9GMUGDKmUMAsOhGD5A0kHoqnNGswL2iw0KB0mFBONEquxU65fEnQv4R+jdM2d9oucujuA==} dev: true - /@cspell/dict-fonts/2.1.0: - resolution: {integrity: sha512-hk7xsbfWEUhc136Xj7I2TD7ouKAfWwzCVAQaHBxcVXAsVxu7bDOGj4FvE2jBzlkSUY8A9Ww8qS0GOFvowJshVg==} + /@cspell/dict-fonts/3.0.0: + resolution: {integrity: sha512-zTZni0AbwBVG1MKA0WpwPyIJPVF+gp6neXDQzHcu4RUnuQ4uDu0PVEuZjGHCJWwwFoR5JmkqZxVSg1y3ufJODA==} dev: true - /@cspell/dict-fullstack/2.0.6: - resolution: {integrity: sha512-R2E2xvbHvvRwwurxfpBJDRIJjXBMfEPF5WNV3LTOEMRqkZtoYCeJK9aqc8LHlmJMtAbnN1cx//BCDIyTJ0rO0A==} + /@cspell/dict-fullstack/3.0.0: + resolution: {integrity: sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==} dev: true - /@cspell/dict-git/1.0.1: - resolution: {integrity: sha512-Rk+eTof/9inF11lvxmkCRK+gODatA3qai8kSASv6OG/JfPvpj7fTHErx/rdgPw/LOTDUafnoTjTYmj7B2MOQXg==} + /@cspell/dict-git/2.0.0: + resolution: {integrity: sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==} dev: true - /@cspell/dict-golang/3.0.1: - resolution: {integrity: sha512-0KNfXTbxHW2l8iVjxeOf+KFv9Qrw3z5cyKnkuYJWlBTSB5KcUBfeKCb4fsds26VdANqiy6U91b4gDx5kNEmBjQ==} + /@cspell/dict-golang/4.0.0: + resolution: {integrity: sha512-XxKINt3dmpixrmAcxVdP545eh0S6vmaGbddZyzIWzQlwoIE0b98l3AvtcdhCyYxbvcKAcZ+pkf+t2zGTnMvQug==} dev: true - /@cspell/dict-haskell/2.0.1: - resolution: {integrity: sha512-ooA23qIG7InOOxlLm67CNH5O2J85QsPHEAzEU9KEqVfYG5ovFs5tx6n9pHekDVk3MpQULpqfNUYDR0KigPLg5g==} + /@cspell/dict-haskell/3.0.0: + resolution: {integrity: sha512-vVreZvGp9M8UcF/3fJAl/99M3NkcH0ik19xnFTsp4RWhy7+Ar/yCXo8251sSBtwL4TdR+0BHXdXKb2PYZ2UFdQ==} dev: true - /@cspell/dict-html-symbol-entities/3.0.0: - resolution: {integrity: sha512-04K7cPTcbYXmHICfiob4gZA1yaj4hpfM+Nl5WIJ1EAZsSGHdqmGEF28GuCjyQ8ZeKiJAsPt/vXuLBbjxkHqZyQ==} + /@cspell/dict-html-symbol-entities/4.0.0: + resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} dev: true - /@cspell/dict-html/3.3.2: - resolution: {integrity: sha512-cM5pQSEiqjrdk6cRFLrlLdWNT/J8399f/A6DjwjfYhHrGy0e/Rsjv76HZT0GlE1OqMoq9eG9jdQsfoYYgWTIpQ==} + /@cspell/dict-html/4.0.0: + resolution: {integrity: sha512-UQRolrzTTMS3Ja1qkrdERnqG04qqwqp4vbMV+BLKvR0oiibfH56Dfnx/qz/C5KgFLc48GLGXLALjgCiHtPjPiA==} dev: true - /@cspell/dict-java/3.0.7: - resolution: {integrity: sha512-IL7ubsRvKX6dZSx++TplJCfhiS7kkEGpbTPG0gMEP50DTNAVM4icZS8zmer2UBCU5PTwF85abJjdX7mRADWKVg==} + /@cspell/dict-java/4.0.0: + resolution: {integrity: sha512-YeYy2P3FLHcm4vBN1pFPGfWFySTBfvPwqC0YZItqO/EprjSRc4czZbm6x8jQr0TWGbF1B1L5KwTWPV/ETjxSog==} dev: true - /@cspell/dict-latex/2.0.9: - resolution: {integrity: sha512-d1kTK6dJb5z6UcfASQWjqQlsjZvnoVOvMWxYtLpGksYf6gM4IgqoPVNMLYYK6xBS4T/uAnLIj975A6YuAeyZpg==} + /@cspell/dict-latex/3.0.0: + resolution: {integrity: sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==} dev: true - /@cspell/dict-lorem-ipsum/2.0.1: - resolution: {integrity: sha512-s7Ft8UiloUJwgz4z8uLeFvCkeTcZ43HQl7mSAlZd76eW+keLSsdeGmLDx2zaciqo+MftPGyzygVCwaJjTGxiew==} + /@cspell/dict-lorem-ipsum/3.0.0: + resolution: {integrity: sha512-msEV24qEpzWZs2kcEicqYlhyBpR0amfDkJOs+iffC07si9ftqtQ+yP3lf1VFLpgqw3SQh1M1vtU7RD4sPrNlcQ==} dev: true - /@cspell/dict-lua/2.0.0: - resolution: {integrity: sha512-7WUEBEspSKtsq104WdIys1+DLqAxpJPzw74Py1TuE3fI5GvlzeSZkRFP2ya54GB2lCO4C3mq4M8EnitpibVDfw==} + /@cspell/dict-lua/3.0.0: + resolution: {integrity: sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==} dev: true - /@cspell/dict-node/3.0.1: - resolution: {integrity: sha512-sK2cpuV0EAc43Amd5xeQXkI9MeRTECMw+yjap06gKSModbgI7BqJUHeKZed+0Hii+LpaJ4TYpLGiRVsO+qSk0w==} + /@cspell/dict-node/4.0.1: + resolution: {integrity: sha512-4EmT5yZFitdwnG0hYEd+Ek19zzD81Bp+n7w0kglZKldS5AvapwW6GM/SAps5YMQQc5zZMi+bMgV7NIzapREqUg==} dev: true - /@cspell/dict-npm/3.1.3: - resolution: {integrity: sha512-xnGp+TMpArdMLBUSG+ZrbEuhvY016rb76Yh35/OPDDEEz4ulENxLSZJxtN2/A0tZ9FJngDNSdFh7eJsOFmciZQ==} + /@cspell/dict-npm/4.0.1: + resolution: {integrity: sha512-jNKImVG5ZX+Pp6PhbSR3TmC9+0ROx09dGhSgUsZyvXV5CGEr+OQGJtNL98TGwU3pP2Xjc++qnHA/XPwB5WvLfA==} dev: true - /@cspell/dict-php/2.0.0: - resolution: {integrity: sha512-29WgU77eTO985LvMHwPi1pcpfopfCWfTdffDyqya0JIfOSaFUrlYKzGPkE4mRxcz2G3hXsaM0SRvBNdIRwEdUg==} + /@cspell/dict-php/3.0.1: + resolution: {integrity: sha512-KSUMyb92nq9P9u/RgNvve/X7oIrGGwUh6eu6NSQgSL4HhWn/Ux4unXrLxrcOUKKkmnkU31Kd/WDPJSuDJrD+AQ==} dev: true - /@cspell/dict-powershell/2.0.0: - resolution: {integrity: sha512-6uvEhLiGmG3u9TFkM1TYcky6aL9Yk7Sk3KJwoTYBaQJY2KqrprgyQtW6yxIw9oU52VRHlq3KKvSAA9Q26+SIkQ==} + /@cspell/dict-powershell/3.0.0: + resolution: {integrity: sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==} dev: true - /@cspell/dict-public-licenses/1.0.6: - resolution: {integrity: sha512-Z9IUFPkkOpOsEdgPUfQOJNQ+qU6+iBAZWS/CR5sUqTX+s5VkPNVwQyVC2kdmgmE2U5qwzAPewG6nVKr2MVogwg==} + /@cspell/dict-public-licenses/2.0.0: + resolution: {integrity: sha512-NdMHnS6xiYJKlzVoTV5CBhMiDpXMZ/PDcvXiOpxeR50xkjR18O/XFP4f4eDZpxGiBSUCMFRWf4JjILJ04Rpcfg==} dev: true - /@cspell/dict-python/3.0.6: - resolution: {integrity: sha512-tzxJ4sd9ZGhAUKg/WJJpQGDNtoHvM8Wn+iS2+PnQj2/LTHBW4mnaCogsGsBtYu8C4b2+BEQs+tc5808AeEfLug==} + /@cspell/dict-python/4.0.0: + resolution: {integrity: sha512-MC6CKbYOly3Ig25ZnhlCzPbE/QozqfQv4VYW6HcoMQ5IbHu33ddf2lzkZ89qTXlxsF5NT5qfZEkQYHYuhuL6AQ==} dev: true - /@cspell/dict-r/1.0.3: - resolution: {integrity: sha512-u2qeXd4cx/TvTVcmkvA+sK6f4K1uMAMO6QPMSr1pSvqGElPRP1mIBXmuiSuBzLO3LbsJuUEHw5Cp3/bxIB6rNA==} + /@cspell/dict-r/2.0.0: + resolution: {integrity: sha512-rdt1cKc3VL2uXJ2X088gRhTFreN/MkJWK1jccW1EWdFHLzDwhKfrlAkoLCp0paD6HvmloLQ+eSR09D58DdsYfA==} dev: true - /@cspell/dict-ruby/2.0.2: - resolution: {integrity: sha512-vVnUpSmGDbPjs7MHq741DsLHhQcoA4CnUCM9wsTorQ9AQRDAkDTbK/LcY8nM19MoXCb3eF8PFku5Jq+gqH0u7w==} + /@cspell/dict-ruby/3.0.0: + resolution: {integrity: sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==} dev: true - /@cspell/dict-rust/2.0.1: - resolution: {integrity: sha512-ATDpIh0VWpQdUIZa8zqqJY4wQz3q00BTXlQCodeOmObYSb23+L6KWWzJ8mKLgpbc1lqTkogWrqxiCxlrCmqNmg==} + /@cspell/dict-rust/3.0.0: + resolution: {integrity: sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==} dev: true - /@cspell/dict-scala/2.0.0: - resolution: {integrity: sha512-MUwA2YKpqaQOSR4V1/CVGRNk8Ii5kf6I8Ch+4/BhRZRQXuwWbi21rDRYWPqdQWps7VNzAbbMA+PQDWsD5YY38g==} + /@cspell/dict-scala/3.0.0: + resolution: {integrity: sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==} dev: true - /@cspell/dict-software-terms/2.2.12: - resolution: {integrity: sha512-wVVy4on8Uq5VAWm3cqrrhewTRRbpmNxtmTURGQ5rT6FqUtJvZ7W2Pj3QquzXsA9zSFZhGFQR3U7IdFesET9yAg==} + /@cspell/dict-software-terms/3.0.1: + resolution: {integrity: sha512-un5lbB+cM750HCVmW/9FaNXpr3tSCYkiOQUEo2GPwX96BWsFgkxRj24Ah23jIt1rOqVLpYZNgbslqiG1NKVgVg==} dev: true - /@cspell/dict-sql/1.0.4: - resolution: {integrity: sha512-+9nMcwsCzdYH0tyv2LeuVvQ+DdecS2C1N+hw6sl0FTHWI5GwULHAGW840RBwcKw0s+dl7sc0WpZhS1EW7b0pXg==} + /@cspell/dict-sql/2.0.0: + resolution: {integrity: sha512-J3X8VSgWpc/4McQEs138abtBw/SO3Z+vGaYi5X7XV1pKPBxjupHTTNQHSS/HWUDmVWj6fR3OV+ZGptcmvv3Clg==} dev: true - /@cspell/dict-swift/1.0.3: - resolution: {integrity: sha512-yOBLSaRD0AnkkkndJ8PuB82Evp6lA2xItf2AWsnPfCCgxp5Ojk6uUBC/WQBSkzkCAOGbXyHsu9D97tsOx2c6cw==} + /@cspell/dict-swift/2.0.0: + resolution: {integrity: sha512-VStJ0fKPPNIXKmxJrbGH6vKNtJCwAnQatfSH0fVj+Unf3QHHlmuLKRG0cN0aVgEIolpRkxNXJcSB3CPbYr0Xhw==} dev: true - /@cspell/dict-typescript/2.0.2: - resolution: {integrity: sha512-OIoSJsCw9WHX4eDikoF5/0QbptMPZjElOcMYdYCyV03nqV5n4ot72ysTexW95yW4+fQU6uDPNQvnrUnhXXEkTA==} + /@cspell/dict-typescript/3.0.1: + resolution: {integrity: sha512-nKEtOpj+rJNIUK268/mCFDCIv1MWFdK1efm9YL4q1q3NHT+qCKhkXoA0eG8k4AaDIpsvebB8CgNIYFPxY92r4A==} dev: true - /@cspell/dict-vue/2.0.2: - resolution: {integrity: sha512-/MB0RS0Gn01s4pgmjy0FvsLfr3RRMrRphEuvTRserNcM8XVtoIVAtrjig/Gg0DPwDrN8Clm0L1j7iQay6S8D0g==} + /@cspell/dict-vue/3.0.0: + resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} dev: true - /@cspell/eslint-plugin/6.12.0: - resolution: {integrity: sha512-EIL6jL+lhZrnEuM1cY/h/sY1tyMj6hSX2WyJA5iL6nH5D+0y5XQMPq6mlOFVH/7f5hy9P+bfEX77tsT65Lu/dw==} + /@cspell/eslint-plugin/6.13.2: + resolution: {integrity: sha512-2NhwJxGhEU5cpuc+NjWnFteN+guoTZB41P33LnLvoMmIZkKsrmHAGQZIvkA5G+t3OEogC5Ek9kQ0VNiGlCjk2w==} engines: {node: '>=14'} dependencies: - cspell-lib: 6.12.0 + cspell-lib: 6.13.2 transitivePeerDependencies: - encoding dev: true @@ -1664,8 +1664,8 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array/0.10.5: - resolution: {integrity: sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==} + /@humanwhocodes/config-array/0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -2751,8 +2751,8 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.40.1_ukgdydjtebaxmxfqp5v5ulh64y: - resolution: {integrity: sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg==} + /@typescript-eslint/eslint-plugin/5.41.0_huremdigmcnkianavgfk3x6iou: + resolution: {integrity: sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2762,23 +2762,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - '@typescript-eslint/scope-manager': 5.40.1 - '@typescript-eslint/type-utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/type-utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.25.0 + eslint: 8.26.0 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==} + /@typescript-eslint/parser/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2787,11 +2787,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.40.1 - '@typescript-eslint/types': 5.40.1 - '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 debug: 4.3.4 - eslint: 8.25.0 + eslint: 8.26.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color @@ -2805,8 +2805,16 @@ packages: '@typescript-eslint/visitor-keys': 5.40.1 dev: true - /@typescript-eslint/type-utils/5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q==} + /@typescript-eslint/scope-manager/5.41.0: + resolution: {integrity: sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/visitor-keys': 5.41.0 + dev: true + + /@typescript-eslint/type-utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2815,10 +2823,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.25.0 + eslint: 8.26.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -2830,6 +2838,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types/5.41.0: + resolution: {integrity: sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/typescript-estree/5.40.1_typescript@4.8.4: resolution: {integrity: sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2851,7 +2864,28 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q: + /@typescript-eslint/typescript-estree/5.41.0_typescript@4.8.4: + resolution: {integrity: sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/visitor-keys': 5.41.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: resolution: {integrity: sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2862,9 +2896,29 @@ packages: '@typescript-eslint/scope-manager': 5.40.1 '@typescript-eslint/types': 5.40.1 '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 - eslint: 8.25.0 + eslint: 8.26.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.25.0 + eslint-utils: 3.0.0_eslint@8.26.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.12 + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + eslint: 8.26.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.26.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -2879,14 +2933,22 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.41: + /@typescript-eslint/visitor-keys/5.41.0: + resolution: {integrity: sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.41.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@vitejs/plugin-vue/3.1.2_vite@3.2.2+vue@3.2.41: resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.1.8 + vite: 3.2.2 vue: 3.2.41 dev: true @@ -2904,6 +2966,7 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -2914,16 +2977,6 @@ packages: sirv: 2.0.2 dev: true - /@vue/compiler-core/3.2.40: - resolution: {integrity: sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==} - dependencies: - '@babel/parser': 7.19.1 - '@vue/shared': 3.2.40 - estree-walker: 2.0.2 - source-map: 0.6.1 - dev: true - optional: true - /@vue/compiler-core/3.2.41: resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} dependencies: @@ -2933,14 +2986,6 @@ packages: source-map: 0.6.1 dev: true - /@vue/compiler-dom/3.2.40: - resolution: {integrity: sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==} - dependencies: - '@vue/compiler-core': 3.2.40 - '@vue/shared': 3.2.40 - dev: true - optional: true - /@vue/compiler-dom/3.2.41: resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} dependencies: @@ -2948,25 +2993,9 @@ packages: '@vue/shared': 3.2.41 dev: true - /@vue/compiler-sfc/3.2.40: - resolution: {integrity: sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==} - requiresBuild: true - dependencies: - '@babel/parser': 7.19.1 - '@vue/compiler-core': 3.2.40 - '@vue/compiler-dom': 3.2.40 - '@vue/compiler-ssr': 3.2.40 - '@vue/reactivity-transform': 3.2.40 - '@vue/shared': 3.2.40 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.16 - source-map: 0.6.1 - dev: true - optional: true - /@vue/compiler-sfc/3.2.41: resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} + requiresBuild: true dependencies: '@babel/parser': 7.19.1 '@vue/compiler-core': 3.2.41 @@ -2976,18 +3005,10 @@ packages: '@vue/shared': 3.2.41 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.16 + postcss: 8.4.18 source-map: 0.6.1 dev: true - /@vue/compiler-ssr/3.2.40: - resolution: {integrity: sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==} - dependencies: - '@vue/compiler-dom': 3.2.40 - '@vue/shared': 3.2.40 - dev: true - optional: true - /@vue/compiler-ssr/3.2.41: resolution: {integrity: sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==} dependencies: @@ -2999,17 +3020,6 @@ packages: resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} dev: true - /@vue/reactivity-transform/3.2.40: - resolution: {integrity: sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==} - dependencies: - '@babel/parser': 7.19.1 - '@vue/compiler-core': 3.2.40 - '@vue/shared': 3.2.40 - estree-walker: 2.0.2 - magic-string: 0.25.9 - dev: true - optional: true - /@vue/reactivity-transform/3.2.41: resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} dependencies: @@ -3051,11 +3061,6 @@ packages: vue: 3.2.41 dev: true - /@vue/shared/3.2.40: - resolution: {integrity: sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==} - dev: true - optional: true - /@vue/shared/3.2.41: resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==} dev: true @@ -3150,6 +3155,7 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -3170,6 +3176,7 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -3806,6 +3813,7 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -4327,8 +4335,8 @@ packages: typedarray: 0.0.6 dev: true - /concurrently/7.4.0: - resolution: {integrity: sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==} + /concurrently/7.5.0: + resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} hasBin: true dependencies: @@ -4652,59 +4660,59 @@ packages: engines: {node: '>=8'} dev: true - /cspell-dictionary/6.12.0: - resolution: {integrity: sha512-I2cXSdXndt9H7yXmJzLTjgui/SAPGghXwxFeibTbvF68gyQYD5fUXvOygEIPrOEySKlAIb+aouV77SgoURxMHw==} + /cspell-dictionary/6.13.2: + resolution: {integrity: sha512-o+ZjeRctAvLSUvGaY0+3cQT6y6UEKEcLu1GVRsM39WceAOS9HONe+ma6KQDqB7Zxgzn/D4LHNZKUVgC7rYO46g==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-pipe': 6.12.0 - '@cspell/cspell-types': 6.12.0 - cspell-trie-lib: 6.12.0 + '@cspell/cspell-pipe': 6.13.2 + '@cspell/cspell-types': 6.13.2 + cspell-trie-lib: 6.13.2 fast-equals: 4.0.3 gensequence: 4.0.2 dev: true - /cspell-glob/6.12.0: - resolution: {integrity: sha512-Q0rMGTxDyFFPm1LmHYM0ziuxQt2aXgr8Oi1glA2s0dBs0hg1DexlAEoLwLiMDUwSTvibEKIidPzlrmZ1AUDWEg==} + /cspell-glob/6.13.2: + resolution: {integrity: sha512-t7v5fCUkiNQXCyxMUA8LJX+DLJOK4dKh375OmnoIvDxSdbdRa8C6/2cypzXK4Vjf3JjxRp4AXcIKGFuEFBRzzQ==} engines: {node: '>=14'} dependencies: micromatch: 4.0.5 dev: true - /cspell-grammar/6.12.0: - resolution: {integrity: sha512-WXcDiWJ2pTW0jHY0Bf0DW5s8A9S0a+2tsVZsNxE/0CR5P/8yDSnznE+59uok/JN+GXOKQ6VIaqAZA3/XjDZuuA==} + /cspell-grammar/6.13.2: + resolution: {integrity: sha512-g/2cwvwQRSncDgx/uhxciabQYPUCDhbH4gkQdlEPphKwnGcLrGmDhgVaqjPjicrtMmc2WfVUHUiHm/wZNGe0pg==} engines: {node: '>=14'} hasBin: true dependencies: - '@cspell/cspell-pipe': 6.12.0 - '@cspell/cspell-types': 6.12.0 + '@cspell/cspell-pipe': 6.13.2 + '@cspell/cspell-types': 6.13.2 dev: true - /cspell-io/6.12.0: - resolution: {integrity: sha512-1faxDj2OMgq61w7GaiXZD7ytks6PksJlG484LMl2USv58jDky4i2lujJs1C/+aP97Box9EcdwzydHX9GpnqqCw==} + /cspell-io/6.13.2: + resolution: {integrity: sha512-tmd0Td+B6bvDjo8wDy6YCmSTUNauDA3PTYhfrQtptBuGQlFHaQpubB4CJIuwcIP/w4zn3WVyBBTMWJFmFYzXxA==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-service-bus': 6.12.0 + '@cspell/cspell-service-bus': 6.13.2 node-fetch: 2.6.7 transitivePeerDependencies: - encoding dev: true - /cspell-lib/6.12.0: - resolution: {integrity: sha512-IKd2MzH/zoiXohc26Lqb1b8i+41Y2xGreyAe9ihv/7Z2dscGGVy7F/2taZvZK9kJIhaz33Yatxfx3htT6w0hqg==} + /cspell-lib/6.13.2: + resolution: {integrity: sha512-xssUIRqAXELPf+v44vAgkhDetGH5J2qkFtU+L8Wr3gEkAru3w7rFODkR2yrspyZ4At5eZalnokKUWqn6OjagYA==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-bundled-dicts': 6.12.0 - '@cspell/cspell-pipe': 6.12.0 - '@cspell/cspell-types': 6.12.0 + '@cspell/cspell-bundled-dicts': 6.13.2 + '@cspell/cspell-pipe': 6.13.2 + '@cspell/cspell-types': 6.13.2 clear-module: 4.1.2 comment-json: 4.2.3 configstore: 5.0.1 cosmiconfig: 7.0.1 - cspell-dictionary: 6.12.0 - cspell-glob: 6.12.0 - cspell-grammar: 6.12.0 - cspell-io: 6.12.0 - cspell-trie-lib: 6.12.0 + cspell-dictionary: 6.13.2 + cspell-glob: 6.13.2 + cspell-grammar: 6.13.2 + cspell-io: 6.13.2 + cspell-trie-lib: 6.13.2 fast-equals: 4.0.3 find-up: 5.0.0 fs-extra: 10.1.0 @@ -4718,12 +4726,12 @@ packages: - encoding dev: true - /cspell-trie-lib/6.12.0: - resolution: {integrity: sha512-SJOdb51Wy3ewaKfttZwc9NYOIXaKlhyr+ykYKBExj3qMfV1J4d4iDLE95FriaRcqnq6X/qEM9jUvZHlvadDk3A==} + /cspell-trie-lib/6.13.2: + resolution: {integrity: sha512-23MwaRApfMhj+8UdgQX0VFMbTnLhe3Qp6vVoW3rmNsiFKqAZ4RmAOYZCJrnZn6T3UBPxNgw5fBxZNzHUzjTVZg==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-pipe': 6.12.0 - '@cspell/cspell-types': 6.12.0 + '@cspell/cspell-pipe': 6.13.2 + '@cspell/cspell-types': 6.13.2 fs-extra: 10.1.0 gensequence: 4.0.2 dev: true @@ -4763,42 +4771,42 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_kk6yjhqxahghos5zojvosw7ng4: + /cypress-image-snapshot/4.0.1_qb6t4atfexeiaiscfhsmxcgcni: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: cypress: ^4.5.0 dependencies: chalk: 2.4.2 - cypress: 10.10.0 + cypress: 10.11.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@29.2.2 + jest-image-snapshot: 4.2.0_jest@26.6.3 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: - jest dev: true - /cypress-image-snapshot/4.0.1_wsmbrbtpfgb2tvmlrj7mjfruri: + /cypress-image-snapshot/4.0.1_ubq66qitfkq2hjrkiw5tjmpgui: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: cypress: ^4.5.0 dependencies: chalk: 2.4.2 - cypress: 10.10.0 + cypress: 10.11.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 + jest-image-snapshot: 4.2.0_jest@29.2.2 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: - jest dev: true - /cypress/10.10.0: - resolution: {integrity: sha512-bU8r44x1NIYAUNNXt3CwJpLOVth7HUv2hUhYCxZmgZ1IugowDvuHNpevnoZRQx1KKOEisLvIJW+Xen5Pjn41pg==} + /cypress/10.11.0: + resolution: {integrity: sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA==} engines: {node: '>=12.0.0'} hasBin: true requiresBuild: true @@ -4840,7 +4848,7 @@ packages: pretty-bytes: 5.6.0 proxy-from-env: 1.0.0 request-progress: 3.0.0 - semver: 7.3.7 + semver: 7.3.8 supports-color: 8.1.1 tmp: 0.2.1 untildify: 4.0.0 @@ -5470,7 +5478,7 @@ packages: vinyl-fs: 3.0.3 yargs: 15.4.1 optionalDependencies: - '@vue/compiler-sfc': 3.2.40 + '@vue/compiler-sfc': 3.2.41 vue-template-compiler: 2.7.10 transitivePeerDependencies: - supports-color @@ -5907,21 +5915,21 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.25.0: + /eslint-config-prettier/8.5.0_eslint@8.26.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.25.0 + eslint: 8.26.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.25.0: + /eslint-plugin-cypress/2.12.1_eslint@8.26.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.25.0 + eslint: 8.26.0 globals: 11.12.0 dev: true @@ -5931,7 +5939,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.3_6co43ebcjfbpobjajqgjcmpkdi: + /eslint-plugin-jest/27.1.3_6amp5fdmvwluzjywjm3ep2edui: resolution: {integrity: sha512-7DrIfYRQPa7JQd1Le8G/BJsfYHVUKQdJQ/6vULSp/4NjKZmSMJ/605G2hhScEra++SiH68zPEjLnrO74nHrMLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5944,16 +5952,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y - '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - eslint: 8.25.0 + '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou + '@typescript-eslint/utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + eslint: 8.26.0 jest: 29.2.2_zbszuqcpgvqti4gsbgzr4pxrbm transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jest/27.1.3_pubrigz2e5aqv2qdhrj3u7msey: + /eslint-plugin-jest/27.1.3_ica35nyjpw4tulszcdgkibbjga: resolution: {integrity: sha512-7DrIfYRQPa7JQd1Le8G/BJsfYHVUKQdJQ/6vULSp/4NjKZmSMJ/605G2hhScEra++SiH68zPEjLnrO74nHrMLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5966,17 +5974,17 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.40.1_ukgdydjtebaxmxfqp5v5ulh64y - '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - eslint: 8.25.0 + '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou + '@typescript-eslint/utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + eslint: 8.26.0 jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc/39.3.25_eslint@8.25.0: - resolution: {integrity: sha512-7JiFOOaipz7Z7lNQ9sMJ6cdvclmVUwNYtFWGS3a0k0uEFcdZPPD64WOfENuyNHpl86C0AKIEPgOpZby5kd+pew==} + /eslint-plugin-jsdoc/39.4.0_eslint@8.26.0: + resolution: {integrity: sha512-2FXAmh8lpO22aqZgu6NLB6berVnYgwbZx95BmjIIQjbRNwLIAwY0dtvSJDUZVW5nflv58c1gSWQjIJ8yLZ/+fw==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5985,7 +5993,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.25.0 + eslint: 8.26.0 esquery: 1.4.0 semver: 7.3.8 spdx-expression-parse: 3.0.1 @@ -6001,13 +6009,13 @@ packages: vscode-json-languageservice: 4.2.1 dev: true - /eslint-plugin-markdown/3.0.0_eslint@8.25.0: + /eslint-plugin-markdown/3.0.0_eslint@8.26.0: resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.25.0 + eslint: 8.26.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color @@ -6041,13 +6049,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.25.0: + /eslint-utils/3.0.0_eslint@8.26.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.25.0 + eslint: 8.26.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6061,14 +6069,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.25.0: - resolution: {integrity: sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==} + /eslint/8.26.0: + resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: '@eslint/eslintrc': 1.3.3 - '@humanwhocodes/config-array': 0.10.5 + '@humanwhocodes/config-array': 0.11.7 '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -6076,7 +6085,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.25.0 + eslint-utils: 3.0.0_eslint@8.26.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -6086,12 +6095,12 @@ packages: find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.17.0 - globby: 11.1.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 js-sdsl: 4.1.4 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 @@ -10028,6 +10037,7 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -10651,8 +10661,8 @@ packages: engines: {node: '>=12.13.0'} dev: true - /pnpm/7.13.6: - resolution: {integrity: sha512-KIGf//0cojjX3cUL63gvAk8d5t9tg+5h6AxLGyxQwoCPtpsjXafm/auIJyDUUh9RVmcPusJxdiONkgxPnbW1YA==} + /pnpm/7.14.1: + resolution: {integrity: sha512-jxnp3SGzTZcSITKfaTfRrkOJYSeHwlU/rF+K9ofaIeHUYF3zR3Qcy5vl8mm07ECMfWhNjOy2phs2o3Zb41pHAg==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -10666,8 +10676,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss/8.4.16: - resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -11321,14 +11331,6 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} - /rollup/2.78.1: - resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - /rollup/2.79.1: resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} @@ -12912,18 +12914,20 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true - /vite/3.1.8: - resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==} + /vite/3.2.2: + resolution: {integrity: sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: less: '*' sass: '*' stylus: '*' + sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: less: @@ -12932,13 +12936,15 @@ packages: optional: true stylus: optional: true + sugarss: + optional: true terser: optional: true dependencies: esbuild: 0.15.12 - postcss: 8.4.16 + postcss: 8.4.18 resolve: 1.22.1 - rollup: 2.78.1 + rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 dev: true @@ -12955,7 +12961,7 @@ packages: vitepress: 1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y dev: true - /vitepress-plugin-search/1.0.4-alpha.14_avkyoe4zdnp4ms2apm424dwjmm: + /vitepress-plugin-search/1.0.4-alpha.14_m3jrvapcj7q7m5scmf3cftoq54: resolution: {integrity: sha512-PvHdsv4DN4SNfbfMN2IFp6vNKLXqEVpZpvkFi5zyEdTn0nb2HtaNuAtwSeSz7gWOMZwzLQ/ncHQ0Ka5beHgASQ==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -12963,7 +12969,7 @@ packages: vitepress: ^1.0.0-alpha.13 vue: '3' dependencies: - vite: 3.1.8 + vite: 3.2.2 vitepress: 1.0.0-alpha.26_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.41 dev: true @@ -12974,13 +12980,13 @@ packages: dependencies: '@docsearch/css': 3.3.0 '@docsearch/js': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.41 + '@vitejs/plugin-vue': 3.1.2_vite@3.2.2+vue@3.2.41 '@vue/devtools-api': 6.4.5 '@vueuse/core': 9.4.0_vue@3.2.41 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 shiki-processor: 0.1.1_shiki@0.11.1 - vite: 3.1.8 + vite: 3.2.2 vue: 3.2.41 transitivePeerDependencies: - '@algolia/client-search' @@ -12991,6 +12997,7 @@ packages: - react-dom - sass - stylus + - sugarss - terser dev: true @@ -13030,11 +13037,12 @@ packages: local-pkg: 0.4.2 tinypool: 0.2.4 tinyspy: 1.0.2 - vite: 3.1.8 + vite: 3.2.2 transitivePeerDependencies: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -13074,11 +13082,12 @@ packages: tinybench: 2.3.0 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.1.8 + vite: 3.2.2 transitivePeerDependencies: - less - sass - stylus + - sugarss - supports-color - terser dev: true From 359a570d77d2cb1a541fda87d06c662e295e0530 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 19:51:41 +0530 Subject: [PATCH 0503/1038] Precommit Test --- packages/mermaid/src/docs/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 853fd27aee..8b4b4ba479 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -32,7 +32,9 @@ features: <script setup> import { VPTeamMembers } from 'vitepress/theme' -const websiteSVG = {svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-globe"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>'} +const websiteSVG = { + svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-globe"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>' +} const members = [ { avatar: "https://avatars.githubusercontent.com/u/5837277?v=4", From d08701e5c45fb39cb282b9f548303a4f870804bb Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 19:52:57 +0530 Subject: [PATCH 0504/1038] Precommit Test --- packages/mermaid/.lintstagedrc.json | 4 ++-- packages/mermaid/src/docs/index.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index 7ca8690b49..906c1e1c3b 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -1,6 +1,6 @@ { - "packages/mermaid/src/docs/**": ["pnpm --filter mermaid run docs:build --git"], - "packages/mermaid/src/docs.mts": ["pnpm --filter mermaid run docs:build --git"], + "src/docs/**": ["pnpm --filter mermaid run docs:build --git"], + "src/docs.mts": ["pnpm --filter mermaid run docs:build --git"], "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], "*.jison": ["pnpm run lint:jison"] } diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 8b4b4ba479..38c9b40d6a 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -35,6 +35,7 @@ import { VPTeamMembers } from 'vitepress/theme' const websiteSVG = { svg: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-globe"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>' } + const members = [ { avatar: "https://avatars.githubusercontent.com/u/5837277?v=4", From 1e410de4cd76faccb47fb0a7ec4b31acb9760adb Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 19:54:30 +0530 Subject: [PATCH 0505/1038] Precommit Test --- packages/mermaid/src/docs/syntax/classDiagram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index 3ca564e55d..0eb7963fcf 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -628,4 +628,4 @@ g.classGroup line { ## Configuration -`Coming soon` +`Coming soon...` From 3b7463e5edf792c679efe5d7b3f410c503956a68 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 20:27:43 +0530 Subject: [PATCH 0506/1038] Precommit Test --- .lintstagedrc.json | 2 +- docs/syntax/classDiagram.md | 2 +- packages/mermaid/.lintstagedrc.json | 12 +++++++----- packages/mermaid/src/docs.mts | 2 +- packages/mermaid/src/docs/syntax/classDiagram.md | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.lintstagedrc.json b/.lintstagedrc.json index 8d5e1ca4aa..e42b2ca98f 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,4 +1,4 @@ { - "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], + "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], "*.jison": ["pnpm run lint:jison"] } diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index 3f176f28e3..b825f86717 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -845,4 +845,4 @@ g.classGroup line { ## Configuration -`Coming soon` +`Coming soon!` diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index 906c1e1c3b..00c7cb7f2c 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -1,6 +1,8 @@ { - "src/docs/**": ["pnpm --filter mermaid run docs:build --git"], - "src/docs.mts": ["pnpm --filter mermaid run docs:build --git"], - "*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], - "*.jison": ["pnpm run lint:jison"] -} + "src/docs/**": [ + "pnpm --filter mermaid run docs:build --git" + ], + "src/docs.mts": [ + "pnpm --filter mermaid run docs:build --git" + ] +} \ No newline at end of file diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 4833545f4a..96f5e9024c 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -284,7 +284,7 @@ const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { } if (git) { console.log(`Adding changes in ${FINAL_DOCS_DIR} folder to git`); - exec('git add docs'); + exec(`git add ${FINAL_DOCS_DIR}`); } } })(); diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index 0eb7963fcf..d67aeec011 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -628,4 +628,4 @@ g.classGroup line { ## Configuration -`Coming soon...` +`Coming soon!` From c72bdc83c8fab02fb4b1166f61989c961f8110e4 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 20:30:05 +0530 Subject: [PATCH 0507/1038] chore: Cleanup lintStaged --- .lintstagedrc.json | 3 +-- package.json | 1 - packages/mermaid/.lintstagedrc.json | 3 +++ 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.lintstagedrc.json b/.lintstagedrc.json index e42b2ca98f..c43f5f89fe 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,4 +1,3 @@ { - "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], - "*.jison": ["pnpm run lint:jison"] + "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"] } diff --git a/package.json b/package.json index 0ca47bc146..2f2456a3ab 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm --transpileOnly packages/mermaid/src/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index 00c7cb7f2c..84afac8cbc 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -4,5 +4,8 @@ ], "src/docs.mts": [ "pnpm --filter mermaid run docs:build --git" + ], + "*.jison": [ + "pnpm run lint:jison" ] } \ No newline at end of file From f36e0ef9414d6b74ec684da51bcf135f30bd14f6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 21:44:09 +0530 Subject: [PATCH 0508/1038] chore: Add actions deploy --- .github/workflows/docs.yml | 2 +- .github/workflows/publish-docs.yml | 59 ++++++++++++++++++++++++++++++ packages/mermaid/package.json | 4 +- 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/publish-docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a7ad03a7a4..dbdc4b904d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/setup-node@v3 name: Setup node with: - node-version: '16' + node-version: '18' - run: npm install -g cspell name: Install cSpell - run: cspell --config ./cSpell.json "packages/mermaid/src/docs/**/*.md" --no-progress diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 0000000000..da4366a850 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,59 @@ +name: Deploy Vitepress docs to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: + - master + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: 'pages' + cancel-in-progress: true + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + cache: pnpm + node-version: 18 + + - name: Install Packages + run: pnpm install --frozen-lockfile + + - name: Setup Pages + uses: actions/configure-pages@v2 + + - name: Run Build + run: pnpm --filter mermaid run docs:build:vitepress + + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: packages/mermaid/src/vitepress/.vitepress/dist + + # Deployment job + deploy: + environment: + name: github-pages + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index a03e2fa8d8..2e724d5065 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -33,7 +33,7 @@ "dev": "node .esbuild/serve.cjs", "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --githubPages false --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup", "docs:build": "rimraf ../../docs && pnpm docs:code && ts-node-esm src/docs.mts", - "docs:verify": "ts-node-esm src/docs.mts --verify", + "docs:verify": "pnpm docs:code && ts-node-esm src/docs.mts --verify", "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress", "docs:dev": "pnpm docs:pre:vitepress && vitepress dev src/vitepress", @@ -138,4 +138,4 @@ "**/*.css", "**/*.scss" ] -} +} \ No newline at end of file From 56c2fe3eb19a82a7ab835c683372d481717ee0da Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 21:46:48 +0530 Subject: [PATCH 0509/1038] Publish --- .github/workflows/publish-docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index da4366a850..5df0380c56 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -5,6 +5,7 @@ on: push: branches: - master + - sidv/docsTest # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From 2c5a2072b8c3146e5476a3089d7ffa1127013ae9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 21:51:56 +0530 Subject: [PATCH 0510/1038] Fix lint --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2f2456a3ab..15bfcbada6 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", + "lint": "eslint --cache --ignore-path .gitignore . && pnpm --filter mermaid run lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", "cypress": "cypress run", "cypress:open": "cypress open", From 78565d16c19dce946bfd94ba121680bfa38977ac Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 21:54:57 +0530 Subject: [PATCH 0511/1038] Add pnpm --- .github/workflows/publish-docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 5df0380c56..0c5fb732d1 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -28,6 +28,9 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + - name: Setup Node.js uses: actions/setup-node@v3 with: From 83fb0f446f595e0f67d644e2c0c389f716ad0007 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 22:02:47 +0530 Subject: [PATCH 0512/1038] Fix base --- packages/mermaid/src/docs/.vitepress/config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 077ec86db2..7d3ec40ddf 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -14,9 +14,9 @@ export default defineConfig({ lang: 'en-US', title: 'Mermaid', description: 'Create diagrams and visualizations using text and code.', - base: '/mermaid-js/', + base: '/mermaid/', markdown: allMarkdownTransformers, - head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/mermaid-js/favicon.ico' }]], + head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/mermaid/favicon.ico' }]], themeConfig: { nav: nav(), editLink: { From b735c21a33249e271de518830beb600959f6ea68 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 22:08:04 +0530 Subject: [PATCH 0513/1038] chore: Remove test branch --- .github/workflows/publish-docs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 0c5fb732d1..85bc79f6eb 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -5,7 +5,6 @@ on: push: branches: - master - - sidv/docsTest # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From a9234785abd105d6dc155d5ad06faa728388d88f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 22:15:07 +0530 Subject: [PATCH 0514/1038] chore: Configure typedoc source links --- docs/config/setup/modules/config.md | 44 +++++++++++----------- docs/config/setup/modules/defaultConfig.md | 8 ++-- docs/config/setup/modules/mermaidAPI.md | 14 +++---- packages/mermaid/package.json | 2 +- packages/mermaid/typedoc.json | 11 ++++++ 5 files changed, 45 insertions(+), 34 deletions(-) create mode 100644 packages/mermaid/typedoc.json diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 7c3f49bcac..7ffd0b2bd2 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -8,17 +8,17 @@ ## Variables -### <a id="defaultconfig" name="defaultconfig"></a> defaultConfig +### defaultConfig • `Const` **defaultConfig**: `MermaidConfig` #### Defined in -config.ts:7 +[config.ts:7](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L7) ## Functions -### <a id="adddirective" name="adddirective"></a> addDirective +### addDirective ▸ **addDirective**(`directive`): `void` @@ -36,11 +36,11 @@ Pushes in a directive to the configuration #### Defined in -config.ts:191 +[config.ts:191](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L191) --- -### <a id="getconfig" name="getconfig"></a> getConfig +### getConfig ▸ **getConfig**(): `MermaidConfig` @@ -60,11 +60,11 @@ The currentConfig #### Defined in -config.ts:136 +[config.ts:136](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L136) --- -### <a id="getsiteconfig" name="getsiteconfig"></a> getSiteConfig +### getSiteConfig ▸ **getSiteConfig**(): `MermaidConfig` @@ -84,11 +84,11 @@ The siteConfig #### Defined in -config.ts:96 +[config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96) --- -### <a id="reset" name="reset"></a> reset +### reset ▸ **reset**(`config?`): `void` @@ -118,11 +118,11 @@ config.ts:96 #### Defined in -config.ts:223 +[config.ts:223](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L223) --- -### <a id="sanitize" name="sanitize"></a> sanitize +### sanitize ▸ **sanitize**(`options`): `void` @@ -147,11 +147,11 @@ options in-place #### Defined in -config.ts:151 +[config.ts:151](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L151) --- -### <a id="saveconfigfrominitialize" name="saveconfigfrominitialize"></a> saveConfigFromInitialize +### saveConfigFromInitialize ▸ **saveConfigFromInitialize**(`conf`): `void` @@ -167,11 +167,11 @@ config.ts:151 #### Defined in -config.ts:75 +[config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75) --- -### <a id="setconfig" name="setconfig"></a> setConfig +### setConfig ▸ **setConfig**(`conf`): `MermaidConfig` @@ -199,11 +199,11 @@ The currentConfig merged with the sanitized conf #### Defined in -config.ts:113 +[config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113) --- -### <a id="setsiteconfig" name="setsiteconfig"></a> setSiteConfig +### setSiteConfig ▸ **setSiteConfig**(`conf`): `MermaidConfig` @@ -232,11 +232,11 @@ The new siteConfig #### Defined in -config.ts:61 +[config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61) --- -### <a id="updatecurrentconfig" name="updatecurrentconfig"></a> updateCurrentConfig +### updateCurrentConfig ▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig` @@ -253,11 +253,11 @@ config.ts:61 #### Defined in -config.ts:14 +[config.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L14) --- -### <a id="updatesiteconfig" name="updatesiteconfig"></a> updateSiteConfig +### updateSiteConfig ▸ **updateSiteConfig**(`conf`): `MermaidConfig` @@ -273,4 +273,4 @@ config.ts:14 #### Defined in -config.ts:79 +[config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index 1ec49b6722..e4b34e9bce 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -8,17 +8,17 @@ ## Variables -### <a id="configkeys" name="configkeys"></a> configKeys +### configKeys • `Const` **configKeys**: `string`\[] #### Defined in -defaultConfig.ts:1869 +[defaultConfig.ts:1869](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1869) --- -### <a id="default" name="default"></a> default +### default • `Const` **default**: `Partial`<`MermaidConfig`> @@ -53,4 +53,4 @@ A description of each option follows below. #### Defined in -defaultConfig.ts:33 +[defaultConfig.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index ef5fc5848c..1ef1853edf 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -8,13 +8,13 @@ ## References -### <a id="default" name="default"></a> default +### default Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) ## Variables -### <a id="mermaidapi" name="mermaidapi"></a> mermaidAPI +### mermaidAPI • `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`> ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> @@ -80,11 +80,11 @@ mermaid.initialize(config); #### Defined in -mermaidAPI.ts:546 +[mermaidAPI.ts:546](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L546) ## Functions -### <a id="decodeentities" name="decodeentities"></a> decodeEntities +### decodeEntities ▸ **decodeEntities**(`text`): `string` @@ -100,11 +100,11 @@ mermaidAPI.ts:546 #### Defined in -mermaidAPI.ts:72 +[mermaidAPI.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L72) --- -### <a id="encodeentities" name="encodeentities"></a> encodeEntities +### encodeEntities ▸ **encodeEntities**(`text`): `string` @@ -120,4 +120,4 @@ mermaidAPI.ts:72 #### Defined in -mermaidAPI.ts:46 +[mermaidAPI.ts:46](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L46) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 2e724d5065..848e5a3468 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -31,7 +31,7 @@ "build:esbuild": "concurrently \"pnpm build:code\" \"pnpm build:types\"", "build": "pnpm clean; pnpm build:esbuild", "dev": "node .esbuild/serve.cjs", - "docs:code": "typedoc --plugin typedoc-plugin-markdown --readme none --githubPages false --hideBreadcrumbs --gitRemote disable --hideInPageTOC --namedAnchors --out src/docs/config/setup --entryPointStrategy expand src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup", + "docs:code": "typedoc src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup", "docs:build": "rimraf ../../docs && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:code && ts-node-esm src/docs.mts --verify", "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", diff --git a/packages/mermaid/typedoc.json b/packages/mermaid/typedoc.json new file mode 100644 index 0000000000..0e3b12b919 --- /dev/null +++ b/packages/mermaid/typedoc.json @@ -0,0 +1,11 @@ +{ + "plugin": ["typedoc-plugin-markdown"], + "readme": "none", + "githubPages": false, + "gitRemote": "origin", + "gitRevision": "master", + "out": "src/docs/config/setup", + "entryPointStrategy": "expand", + "hideBreadcrumbs": true, + "hideInPageTOC": true +} From 61b7033c650a548c3b81cca16d4e4100b8d501d6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Mon, 31 Oct 2022 22:18:57 +0530 Subject: [PATCH 0515/1038] fix: Lint --- packages/mermaid/.lintstagedrc.json | 14 ++++---------- packages/mermaid/package.json | 2 +- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index 84afac8cbc..6f3d6d235f 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -1,11 +1,5 @@ { - "src/docs/**": [ - "pnpm --filter mermaid run docs:build --git" - ], - "src/docs.mts": [ - "pnpm --filter mermaid run docs:build --git" - ], - "*.jison": [ - "pnpm run lint:jison" - ] -} \ No newline at end of file + "src/docs/**": ["pnpm --filter mermaid run docs:build --git"], + "src/docs.mts": ["pnpm --filter mermaid run docs:build --git"], + "*.jison": ["pnpm run lint:jison"] +} diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 848e5a3468..f7b54eba91 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -138,4 +138,4 @@ "**/*.css", "**/*.scss" ] -} \ No newline at end of file +} From 70ec91d0dbb83674e77bbf7919dbfd13e8cfb3e9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 1 Nov 2022 10:34:45 +0530 Subject: [PATCH 0516/1038] docs: Change yarn to pnpm --- docs/intro/index.md | 30 ++++++++++++++---------- packages/mermaid/src/docs/intro/index.md | 30 ++++++++++++++---------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/docs/intro/index.md b/docs/intro/index.md index d1262a9ed8..21ed2b751c 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -256,10 +256,10 @@ Latest Version: <https://unpkg.com/browse/mermaid@8.8.0/> To Deploy Mermaid: 1. You will need to install node v16, which would have npm -2. Download yarn using npm -3. Enter the following command: `yarn add mermaid` -4. You can then add mermaid as a dev dependency using this command: - `yarn add --dev mermaid` +2. Install mermaid + - NPM: `npm i mermaid` + - Yarn: `yarn add mermaid` + - Pnpm: `pnpm add mermaid` ### [Mermaid API](../config/setup/README): @@ -300,22 +300,26 @@ Don't hesitate to contact me if you want to get involved! ## For contributors -### Setup +### Requirements -```sh -yarn install -``` +- [volta](https://volta.sh/) to manage node versions. +- [Node.js](https://nodejs.org/en/). `volta install node` +- [pnpm](https://pnpm.io/) package manager. `volta install pnpm` -### Build +## Development Installation -```sh -yarn build:watch +```bash +git clone git@github.com:mermaid-js/mermaid.git +cd mermaid +# npx is required for first install as volta support for pnpm is not added yet. +npx pnpm install +pnpm test ``` ### Lint ```sh -yarn lint +pnpm lint ``` We use [eslint](https://eslint.org/). @@ -324,7 +328,7 @@ We recommend you to install [editor plugins](https://eslint.org/docs/user-guide/ ### Test ```sh -yarn test +pnpm test ``` Manual test in browser: open `dist/index.html` diff --git a/packages/mermaid/src/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md index cbe8f6b4a4..7f2521843b 100644 --- a/packages/mermaid/src/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -168,10 +168,10 @@ Latest Version: [https://unpkg.com/browse/mermaid@8.8.0/](https://unpkg.com/brow To Deploy Mermaid: 1. You will need to install node v16, which would have npm -2. Download yarn using npm -3. Enter the following command: `yarn add mermaid` -4. You can then add mermaid as a dev dependency using this command: - `yarn add --dev mermaid` +2. Install mermaid + - NPM: `npm i mermaid` + - Yarn: `yarn add mermaid` + - Pnpm: `pnpm add mermaid` ### [Mermaid API](../config/setup/README): @@ -212,22 +212,26 @@ Don't hesitate to contact me if you want to get involved! ## For contributors -### Setup +### Requirements -```sh -yarn install -``` +- [volta](https://volta.sh/) to manage node versions. +- [Node.js](https://nodejs.org/en/). `volta install node` +- [pnpm](https://pnpm.io/) package manager. `volta install pnpm` -### Build +## Development Installation -```sh -yarn build:watch +```bash +git clone git@github.com:mermaid-js/mermaid.git +cd mermaid +# npx is required for first install as volta support for pnpm is not added yet. +npx pnpm install +pnpm test ``` ### Lint ```sh -yarn lint +pnpm lint ``` We use [eslint](https://eslint.org/). @@ -236,7 +240,7 @@ We recommend you to install [editor plugins](https://eslint.org/docs/user-guide/ ### Test ```sh -yarn test +pnpm test ``` Manual test in browser: open `dist/index.html` From 015e22acf81cc237bb8d4795d6fb16828588a167 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 1 Nov 2022 12:04:34 +0530 Subject: [PATCH 0517/1038] feat: Add live updates to docs. --- packages/mermaid/package.json | 7 +++-- packages/mermaid/src/docs.mts | 48 +++++++++++++++++++++++++++++++---- pnpm-lock.yaml | 16 ++++++++++++ 3 files changed, 64 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index f7b54eba91..f411d811fd 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -36,7 +36,7 @@ "docs:verify": "pnpm docs:code && ts-node-esm src/docs.mts --verify", "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress", - "docs:dev": "pnpm docs:pre:vitepress && vitepress dev src/vitepress", + "docs:dev": "pnpm docs:pre:vitepress && concurrently \"vitepress dev src/vitepress\" \"ts-node-esm src/docs.mts --watch --vitepress\"", "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", @@ -88,10 +88,12 @@ "@types/express": "4.17.14", "@types/jsdom": "20.0.0", "@types/lodash": "4.14.186", + "@types/micromatch": "^4.0.2", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", "@typescript-eslint/eslint-plugin": "5.41.0", "@typescript-eslint/parser": "5.41.0", + "chokidar": "^3.5.3", "concurrently": "7.5.0", "coveralls": "3.1.1", "cypress": "10.11.0", @@ -114,6 +116,7 @@ "js-base64": "3.7.2", "jsdom": "20.0.2", "lint-staged": "13.0.3", + "micromatch": "^4.0.5", "moment": "2.29.4", "path-browserify": "1.0.1", "prettier": "2.7.1", @@ -138,4 +141,4 @@ "**/*.css", "**/*.scss" ] -} +} \ No newline at end of file diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 96f5e9024c..f44400a1b3 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -30,7 +30,7 @@ * @todo Write a test file for this. (Will need to be able to deal .mts file. Jest has trouble with * it.) */ -import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs'; +import { readFileSync, writeFileSync, mkdirSync, existsSync, rmSync, rmdirSync } from 'fs'; import { exec } from 'child_process'; import { globby } from 'globby'; import { JSDOM } from 'jsdom'; @@ -38,6 +38,8 @@ import type { Code, Root } from 'mdast'; import { posix, dirname, relative } from 'path'; import prettier from 'prettier'; import { remark } from 'remark'; +import chokidar from 'chokidar'; +import mm from 'micromatch'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; @@ -47,6 +49,7 @@ const MERMAID_MAJOR_VERSION = ( const verifyOnly: boolean = process.argv.includes('--verify'); const git: boolean = process.argv.includes('--git'); +const watch: boolean = process.argv.includes('--watch'); const vitepress: boolean = process.argv.includes('--vitepress'); const noHeader: boolean = process.argv.includes('--noHeader') || vitepress; @@ -246,11 +249,15 @@ const transformHtml = (filename: string) => { copyTransformedContents(filename, !verifyOnly, formattedHTML); }; -const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { +const getGlobs = (globs: string[]): string[] => { globs.push('!**/dist'); if (!vitepress) { globs.push('!**/.vitepress', '!**/vite.config.ts', '!src/docs/index.md'); } + return globs; +}; + +const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { return await globby(globs, { dot: true }); }; @@ -263,15 +270,18 @@ const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { const sourceDirGlob = posix.join('.', SOURCE_DOCS_DIR, '**'); const action = verifyOnly ? 'Verifying' : 'Transforming'; - const mdFiles = await getFilesFromGlobs([posix.join(sourceDirGlob, '*.md')]); + const mdFileGlobs = getGlobs([posix.join(sourceDirGlob, '*.md')]); + const mdFiles = await getFilesFromGlobs(mdFileGlobs); console.log(`${action} ${mdFiles.length} markdown files...`); mdFiles.forEach(transformMarkdown); - const htmlFiles = await getFilesFromGlobs([posix.join(sourceDirGlob, '*.html')]); + const htmlFileGlobs = getGlobs([posix.join(sourceDirGlob, '*.html')]); + const htmlFiles = await getFilesFromGlobs(htmlFileGlobs); console.log(`${action} ${htmlFiles.length} html files...`); htmlFiles.forEach(transformHtml); - const otherFiles = await getFilesFromGlobs([sourceDirGlob, '!**/*.md', '!**/*.html']); + const otherFileGlobs = getGlobs([sourceDirGlob, '!**/*.md', '!**/*.html']); + const otherFiles = await getFilesFromGlobs(otherFileGlobs); console.log(`${action} ${otherFiles.length} other files...`); otherFiles.forEach((file: string) => { copyTransformedContents(file, !verifyOnly); // no transformation @@ -287,4 +297,32 @@ const getFilesFromGlobs = async (globs: string[]): Promise<string[]> => { exec(`git add ${FINAL_DOCS_DIR}`); } } + + if (watch) { + console.log(`Watching for changes in ${SOURCE_DOCS_DIR}`); + + const matcher = (globs: string[]) => (file: string) => mm.every(file, globs); + const isMd = matcher(mdFileGlobs); + const isHtml = matcher(htmlFileGlobs); + const isOther = matcher(otherFileGlobs); + + chokidar + .watch(SOURCE_DOCS_DIR) + // Delete files from the final docs dir if they are deleted from the source dir + .on('unlink', (file: string) => rmSync(changeToFinalDocDir(file))) + .on('unlinkDir', (file: string) => rmdirSync(changeToFinalDocDir(file))) + .on('all', (event, path) => { + // Ignore other events. + if (!['add', 'change'].includes(event)) { + return; + } + if (isMd(path)) { + transformMarkdown(path); + } else if (isHtml(path)) { + transformHtml(path); + } else if (isOther(path)) { + copyTransformedContents(path, true); + } + }); + } })(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b11d52dac..8290fdc4e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,10 +166,12 @@ importers: '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 + '@types/micromatch': ^4.0.2 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.41.0 '@typescript-eslint/parser': 5.41.0 + chokidar: ^3.5.3 concurrently: 7.5.0 coveralls: 3.1.1 cypress: 10.11.0 @@ -200,6 +202,7 @@ importers: khroma: ^2.0.0 lint-staged: 13.0.3 lodash: ^4.17.21 + micromatch: ^4.0.5 moment: 2.29.4 moment-mini: ^2.24.0 non-layered-tidy-tree-layout: ^2.0.2 @@ -239,10 +242,12 @@ importers: '@types/express': 4.17.14 '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 + '@types/micromatch': 4.0.2 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + chokidar: 3.5.3 concurrently: 7.5.0 coveralls: 3.1.1 cypress: 10.11.0 @@ -265,6 +270,7 @@ importers: js-base64: 3.7.2 jsdom: 20.0.2 lint-staged: 13.0.3 + micromatch: 4.0.5 moment: 2.29.4 path-browserify: 1.0.1 prettier: 2.7.1 @@ -2302,6 +2308,10 @@ packages: '@types/node': 18.11.8 dev: true + /@types/braces/3.0.1: + resolution: {integrity: sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==} + dev: true + /@types/cacheable-request/6.0.2: resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} dependencies: @@ -2616,6 +2626,12 @@ packages: '@types/unist': 2.0.6 dev: true + /@types/micromatch/4.0.2: + resolution: {integrity: sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==} + dependencies: + '@types/braces': 3.0.1 + dev: true + /@types/mime/3.0.1: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} dev: true From 114262d353a40201c1a929e44d7ccdef2be5ce8a Mon Sep 17 00:00:00 2001 From: Andy Barlow <andy.barlow@okta.com> Date: Tue, 1 Nov 2022 11:27:27 +0000 Subject: [PATCH 0518/1038] update user story link --- README.zh-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index fcaa1f5234..1628ca921c 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -187,7 +187,7 @@ pie ### Git 图 [实验特性 - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] -### 用户体验旅程图 [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] +### 用户体验旅程图 [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/pako:eNpljzEPgkAMhf9K05nFGJdbJXFiYmVpuKIncDVHL4QQ_ruHaILaqXnf63vpjLVYRoMAd4nB81R5SKNOO4ZiglFC6_wVLL3JwLU68XARUHnhTQcoqGVQJgMnAwV_5GSMj0HJhcHAcU_y7d7AYVUzOJP-ddyk3ydZGf0n66uldPqCPxWYYc-hJ2fTj_OqVqg3Tplo0mq5odhphZVfkpWiSjn5Go2GyBnGhyXl3NE1UI-moW7g5QkSoF5m">live editor</a>] ``` journey From 1a0d333e2cccfb1b48294a6b407c6494076cc66f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 1 Nov 2022 19:07:13 +0530 Subject: [PATCH 0519/1038] chore(docs): Update live editor links --- README.zh-CN.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 1628ca921c..e88c54e7f0 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -39,7 +39,7 @@ Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://merma <table> <!-- <Flowchart> --> -### 流程图 [<a href="https://mermaid-js.github.io/mermaid/#/flowchart">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] +### 流程图 [<a href="https://mermaid-js.github.io/mermaid/#/flowchart">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] ``` flowchart LR @@ -57,7 +57,7 @@ C -->|One| D[Result 1] C -->|Two| E[Result 2] ``` -### 时序图 [<a href="https://mermaid-js.github.io/mermaid/#/sequenceDiagram">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] +### 时序图 [<a href="https://mermaid-js.github.io/mermaid/#/sequenceDiagram">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] ``` sequenceDiagram @@ -83,7 +83,7 @@ John->>Bob: How about you? Bob-->>John: Jolly good! ``` -### 甘特图 [<a href="https://mermaid-js.github.io/mermaid/#/gantt">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] +### 甘特图 [<a href="https://mermaid-js.github.io/mermaid/#/gantt">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] ``` gantt @@ -107,7 +107,7 @@ gantt Parallel 4 : des6, after des4, 1d ``` -### 类图 [<a href="https://mermaid-js.github.io/mermaid/#/classDiagram">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4-IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] +### 类图 [<a href="https://mermaid-js.github.io/mermaid/#/classDiagram">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4-IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] ``` classDiagram @@ -147,7 +147,7 @@ class Class10 { } ``` -### 状态图 [[<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtLXYyXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQiLCJ0aGVtZVZhcmlhYmxlcyI6eyJiYWNrZ3JvdW5kIjoid2hpdGUiLCJwcmltYXJ5Q29sb3IiOiIjRUNFQ0ZGIiwic2Vjb25kYXJ5Q29sb3IiOiIjZmZmZmRlIiwidGVydGlhcnlDb2xvciI6ImhzbCg4MCwgMTAwJSwgOTYuMjc0NTA5ODAzOSUpIiwicHJpbWFyeUJvcmRlckNvbG9yIjoiaHNsKDI0MCwgNjAlLCA4Ni4yNzQ1MDk4MDM5JSkiLCJzZWNvbmRhcnlCb3JkZXJDb2xvciI6ImhzbCg2MCwgNjAlLCA4My41Mjk0MTE3NjQ3JSkiLCJ0ZXJ0aWFyeUJvcmRlckNvbG9yIjoiaHNsKDgwLCA2MCUsIDg2LjI3NDUwOTgwMzklKSIsInByaW1hcnlUZXh0Q29sb3IiOiIjMTMxMzAwIiwic2Vjb25kYXJ5VGV4dENvbG9yIjoiIzAwMDAyMSIsInRlcnRpYXJ5VGV4dENvbG9yIjoicmdiKDkuNTAwMDAwMDAwMSwgOS41MDAwMDAwMDAxLCA5LjUwMDAwMDAwMDEpIiwibGluZUNvbG9yIjoiIzMzMzMzMyIsInRleHRDb2xvciI6IiMzMzMiLCJtYWluQmtnIjoiI0VDRUNGRiIsInNlY29uZEJrZyI6IiNmZmZmZGUiLCJib3JkZXIxIjoiIzkzNzBEQiIsImJvcmRlcjIiOiIjYWFhYTMzIiwiYXJyb3doZWFkQ29sb3IiOiIjMzMzMzMzIiwiZm9udEZhbWlseSI6IlwidHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsIiwiZm9udFNpemUiOiIxNnB4IiwibGFiZWxCYWNrZ3JvdW5kIjoiI2U4ZThlOCIsIm5vZGVCa2ciOiIjRUNFQ0ZGIiwibm9kZUJvcmRlciI6IiM5MzcwREIiLCJjbHVzdGVyQmtnIjoiI2ZmZmZkZSIsImNsdXN0ZXJCb3JkZXIiOiIjYWFhYTMzIiwiZGVmYXVsdExpbmtDb2xvciI6IiMzMzMzMzMiLCJ0aXRsZUNvbG9yIjoiIzMzMyIsImVkZ2VMYWJlbEJhY2tncm91bmQiOiIjZThlOGU4IiwiYWN0b3JCb3JkZXIiOiJoc2woMjU5LjYyNjE2ODIyNDMsIDU5Ljc3NjUzNjMxMjglLCA4Ny45MDE5NjA3ODQzJSkiLCJhY3RvckJrZyI6IiNFQ0VDRkYiLCJhY3RvclRleHRDb2xvciI6ImJsYWNrIiwiYWN0b3JMaW5lQ29sb3IiOiJncmV5Iiwic2lnbmFsQ29sb3IiOiIjMzMzIiwic2lnbmFsVGV4dENvbG9yIjoiIzMzMyIsImxhYmVsQm94QmtnQ29sb3IiOiIjRUNFQ0ZGIiwibGFiZWxCb3hCb3JkZXJDb2xvciI6ImhzbCgyNTkuNjI2MTY4MjI0MywgNTkuNzc2NTM2MzEyOCUsIDg3LjkwMTk2MDc4NDMlKSIsImxhYmVsVGV4dENvbG9yIjoiYmxhY2siLCJsb29wVGV4dENvbG9yIjoiYmxhY2siLCJub3RlQm9yZGVyQ29sb3IiOiIjYWFhYTMzIiwibm90ZUJrZ0NvbG9yIjoiI2ZmZjVhZCIsIm5vdGVUZXh0Q29sb3IiOiJibGFjayIsImFjdGl2YXRpb25Cb3JkZXJDb2xvciI6IiM2NjYiLCJhY3RpdmF0aW9uQmtnQ29sb3IiOiIjZjRmNGY0Iiwic2VxdWVuY2VOdW1iZXJDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yIjoicmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQ5KSIsImFsdFNlY3Rpb25Ca2dDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yMiI6IiNmZmY0MDAiLCJ0YXNrQm9yZGVyQ29sb3IiOiIjNTM0ZmJjIiwidGFza0JrZ0NvbG9yIjoiIzhhOTBkZCIsInRhc2tUZXh0TGlnaHRDb2xvciI6IndoaXRlIiwidGFza1RleHRDb2xvciI6IndoaXRlIiwidGFza1RleHREYXJrQ29sb3IiOiJibGFjayIsInRhc2tUZXh0T3V0c2lkZUNvbG9yIjoiYmxhY2siLCJ0YXNrVGV4dENsaWNrYWJsZUNvbG9yIjoiIzAwMzE2MyIsImFjdGl2ZVRhc2tCb3JkZXJDb2xvciI6IiM1MzRmYmMiLCJhY3RpdmVUYXNrQmtnQ29sb3IiOiIjYmZjN2ZmIiwiZ3JpZENvbG9yIjoibGlnaHRncmV5IiwiZG9uZVRhc2tCa2dDb2xvciI6ImxpZ2h0Z3JleSIsImRvbmVUYXNrQm9yZGVyQ29sb3IiOiJncmV5IiwiY3JpdEJvcmRlckNvbG9yIjoiI2ZmODg4OCIsImNyaXRCa2dDb2xvciI6InJlZCIsInRvZGF5TGluZUNvbG9yIjoicmVkIiwibGFiZWxDb2xvciI6ImJsYWNrIiwiZXJyb3JCa2dDb2xvciI6IiM1NTIyMjIiLCJlcnJvclRleHRDb2xvciI6IiM1NTIyMjIiLCJjbGFzc1RleHQiOiIjMTMxMzAwIiwiZmlsbFR5cGUwIjoiI0VDRUNGRiIsImZpbGxUeXBlMSI6IiNmZmZmZGUiLCJmaWxsVHlwZTIiOiJoc2woMzA0LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTMiOiJoc2woMTI0LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkiLCJmaWxsVHlwZTQiOiJoc2woMTc2LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTUiOiJoc2woLTQsIDEwMCUsIDkzLjUyOTQxMTc2NDclKSIsImZpbGxUeXBlNiI6ImhzbCg4LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTciOiJoc2woMTg4LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkifX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9">live editor</a>] +### 状态图 [[<a href="https://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid.live/edit#pako:eNpdkLsOwjAMRX-l8ojahTEDCzB26kgYrMYtkfJAqVMJVf13QiIKqqfr44d8vUDvFYGAiZHponEMaJv5KF2V4na4V01zqjrWxhSUZYapuEetn7UbCy16P_5HzwGnR6FZfpdCDZaCRa3SWcunQQI_yJIEkaSiAaNhCdKtqRUj--7lehAcItUQn-pnBMSAZtroVWn2YYOU07b4z29Y37gJVYk">live editor</a>] ``` stateDiagram-v2 @@ -169,7 +169,7 @@ Moving --> Crash Crash --> [*] ``` -### 饼图 [<a href="https://mermaid-js.github.io/mermaid/#/pie">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] +### 饼图 [<a href="https://mermaid-js.github.io/mermaid/#/pie">文档</a> - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>] ``` pie @@ -185,9 +185,9 @@ pie "Rats" : 15 ``` -### Git 图 [实验特性 - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] +### Git 图 [实验特性 - <a href="https://mermaid.live/edit#base64:eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>] -### 用户体验旅程图 [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/pako:eNpljzEPgkAMhf9K05nFGJdbJXFiYmVpuKIncDVHL4QQ_ruHaILaqXnf63vpjLVYRoMAd4nB81R5SKNOO4ZiglFC6_wVLL3JwLU68XARUHnhTQcoqGVQJgMnAwV_5GSMj0HJhcHAcU_y7d7AYVUzOJP-ddyk3ydZGf0n66uldPqCPxWYYc-hJ2fTj_OqVqg3Tplo0mq5odhphZVfkpWiSjn5Go2GyBnGhyXl3NE1UI-moW7g5QkSoF5m">live editor</a>] +### 用户体验旅程图 [<a href="https://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaid.live/edit#pako:eNpljzEPgkAMhf9K05nFGJdbJXFiYmVpuKIncDVHL4QQ_ruHaILaqXnf63vpjLVYRoMAd4nB81R5SKNOO4ZiglFC6_wVLL3JwLU68XARUHnhTQcoqGVQJgMnAwV_5GSMj0HJhcHAcU_y7d7AYVUzOJP-ddyk3ydZGf0n66uldPqCPxWYYc-hJ2fTj_OqVqg3Tplo0mq5odhphZVfkpWiSjn5Go2GyBnGhyXl3NE1UI-moW7g5QkSoF5m">live editor</a>] ``` journey From e78ac9b92a75223df728b4a1866a8d7d460a4691 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Tue, 1 Nov 2022 15:27:20 +0100 Subject: [PATCH 0520/1038] Updated version --- packages/mermaid-mindmap/package.json | 2 +- packages/mermaid/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 88b1a7acd5..142790911e 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.0-rc5", + "version": "9.2.0", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid-mindmap.core.mjs", "module": "dist/mermaid-mindmap.core.mjs", diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index c92b44c40e..4613020fe6 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.2.0-rc8", + "version": "9.2.0", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.core.mjs", "module": "./dist/mermaid.core.mjs", From 3f6613ea9ff7aed7acb023d1fbf677d309030c63 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist <knsv@sveido.com> Date: Tue, 1 Nov 2022 15:52:35 +0100 Subject: [PATCH 0521/1038] Updated mermaid version for the docs --- docs/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.html b/docs/index.html index 119df5f941..abbd23e281 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,7 +50,7 @@ <div id="app"></div> <script type="module"> // import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9/dist/mermaid.esm.min.mjs'; - import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0-rc6/dist/mermaid.esm.min.mjs'; + import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.2.0/dist/mermaid.esm.min.mjs'; // import mermaid from 'http://localhost:9000/mermaid.esm.mjs'; console.log(mermaid); // eslint-disable-line window.mermaid = mermaid; @@ -61,7 +61,7 @@ startOnLoad: true, themeCSS: '.label { font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif; }', lazyLoadedDiagrams: [ - 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-mindmap@9.2.0-rc3/dist/mermaid-mindmap-detector.esm.mjs', + 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-mindmap@9.2.0/dist/mermaid-mindmap-detector.esm.mjs', // 'http://localhost:9000/mermaid-mindmap-detector.esm.mjs', ], }; From 4699ba3e71ea50be9d3134701c620787ef31299c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Tue, 1 Nov 2022 20:59:35 +0530 Subject: [PATCH 0522/1038] Update contributors --- packages/mermaid/src/docs/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 38c9b40d6a..975546f4b1 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -99,6 +99,12 @@ const members = [ { icon: "linkedin", link: "https://www.linkedin.com/in/aloisklink/" }, ], }, + { + avatar: "https://avatars.githubusercontent.com/u/114684273?v=4", + name: "Per Brolin", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/pbrolin47" }], + }, { avatar: "https://avatars.githubusercontent.com/u/53054099?v=4", name: "Yash Singh", @@ -120,6 +126,12 @@ const members = [ title: "Developer", links: [{ icon: "github", link: "https://github.com/MindaugasLaganeckas" }], }, + { + avatar: "https://avatars.githubusercontent.com/u/300077?v=4", + name: "Justin Greywolf", + title: "Developer", + links: [{ icon: "github", link: "https://github.com/jgreywolf" }], + }, { avatar: "https://avatars.githubusercontent.com/u/1564825?v=4", name: "Nacho Orlandoni", From b20602672ef7584667644e2bffe8242fd402edb0 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 1 Nov 2022 10:12:08 -0700 Subject: [PATCH 0523/1038] use lodash isEmpty instead of method defined in utils --- packages/mermaid/src/mermaidAPI.ts | 7 ++++--- packages/mermaid/src/utils.ts | 6 +----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 7c859ba40a..44b92e88cb 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -25,10 +25,11 @@ import { attachFunctions } from './interactionDb'; import { log, setLogLevel } from './logger'; import getStyles from './styles'; import theme from './themes'; -import utils, { directiveSanitizer, isNonEmptyArray } from './utils'; +import utils, { directiveSanitizer } from './utils'; import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; +import { isEmpty } from 'lodash'; // diagram names that support classDef statements const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram']; @@ -192,13 +193,13 @@ export const createCssStyles = ( for (const classId in classDefs) { const styleClassDef = classDefs[classId]; // create the css styles for each cssElement and the styles (only if there are styles) - if (isNonEmptyArray(styleClassDef.styles)) { + if (!isEmpty(styleClassDef.styles)) { cssElements.forEach((cssElement) => { cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles); }); } // create the css styles for the tspan element and the text styles (only if there are textStyles) - if (isNonEmptyArray(styleClassDef.textStyles)) { + if (!isEmpty(styleClassDef.textStyles)) { cssStyles += cssImportantStyles(styleClassDef.id, 'tspan', styleClassDef.textStyles); } } diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index e93323d6b4..c1a29b1b8d 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -7,7 +7,7 @@ import { CurveFactory, curveLinear, curveLinearClosed, - curveMonotoneX, + curveMonoisEmptytoneX, curveMonotoneY, curveNatural, curveStep, @@ -883,10 +883,6 @@ export function getErrorMessage(error: unknown): string { return String(error); } -export const isNonEmptyArray = (array: unknown[] | undefined): array is unknown[] => { - return array && array.length > 0; -}; - export default { assignWithDepth, wrapLabel, From 469d0f87be7096bbdbec73bb79c5c75c01151609 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 1 Nov 2022 10:12:48 -0700 Subject: [PATCH 0524/1038] merge fix: get classDefs only if diagram is in CLASSDEF_DIAGRAMS --- packages/mermaid/src/mermaidAPI.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 44b92e88cb..805e42f1a3 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -181,8 +181,8 @@ export const createCssStyles = ( // classDefs defined in the diagram text if (classDefs && Object.keys(classDefs).length > 0) { - if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { - const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; + if (CLASSDEF_DIAGRAMS.includes(graphType)) { + const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; // TODO why specifically check the Flowchart diagram config? const cssHtmlElements = ['> *', 'span']; // TODO make a constant const cssShapeElements = ['rect', 'polygon', 'ellipse', 'circle']; // TODO make a constant From 46ee4e426fc4a23af0c40ea09c2e6af57aea97ce Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 1 Nov 2022 10:19:17 -0700 Subject: [PATCH 0525/1038] fix typo --- packages/mermaid/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index c1a29b1b8d..9d282991aa 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -7,7 +7,7 @@ import { CurveFactory, curveLinear, curveLinearClosed, - curveMonoisEmptytoneX, + curveMonotoneX, curveMonotoneY, curveNatural, curveStep, From 6d2441dff676a9d1f67f31181ff854e4b3d9ce17 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" <ashley.engelund@gmail.com> Date: Tue, 1 Nov 2022 12:08:59 -0700 Subject: [PATCH 0526/1038] only call getClasses if the diagram renderer supports it --- packages/mermaid/src/mermaidAPI.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 805e42f1a3..27cbdbd990 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -180,7 +180,7 @@ export const createCssStyles = ( } // classDefs defined in the diagram text - if (classDefs && Object.keys(classDefs).length > 0) { + if (!isEmpty(classDefs)) { if (CLASSDEF_DIAGRAMS.includes(graphType)) { const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; // TODO why specifically check the Flowchart diagram config? @@ -481,11 +481,15 @@ const render = async function ( // Insert an element into svg. This is where we put the styles const svg = element.firstChild; const firstChild = svg.firstChild; + const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) + ? diag.renderer.getClasses(text, diag) + : {}; + const rules = createUserStyles( config, graphType, // @ts-ignore convert renderer to TS. - diag.renderer.getClasses(text, diag), + diagramClassDefs, idSelector ); From 05fd856d6265ff6352c3f27bea2c3c8a38d1ebc6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Wed, 2 Nov 2022 13:47:42 +0530 Subject: [PATCH 0527/1038] chore: cSpell --- cSpell.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cSpell.json b/cSpell.json index 50f50e1519..b6bf26fa46 100644 --- a/cSpell.json +++ b/cSpell.json @@ -77,7 +77,9 @@ "Kaufmann", "viewports", "edgechromium", - "statediagram" + "statediagram", + "Brolin", + "Greywolf" ], "patterns": [ { From c46a3b09b1e8fdf5708c81f13462efce66cd2e50 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Thu, 3 Nov 2022 10:53:15 +0530 Subject: [PATCH 0528/1038] Add Security Policy --- .github/ISSUE_TEMPLATE/bug_report.yml | 3 +++ .github/ISSUE_TEMPLATE/config.yml | 3 +++ .../{syntaxt_proposal.yml => syntax_proposal.yml} | 0 3 files changed, 6 insertions(+) rename .github/ISSUE_TEMPLATE/{syntaxt_proposal.yml => syntax_proposal.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 6ce66a831d..3ddf86ea5e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -8,6 +8,9 @@ body: - type: markdown attributes: value: |- + ## Security vulnerabilities + Please refer our [Security Policy](https://github.com/mermaid-js/.github/blob/main/SECURITY.md) and report to keep vulnerabilities confidential so we can release fixes first. + ## Before you submit... We like to help you, but in order to do that should you make a few things first: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8710d49aa4..7f5a28fad3 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,6 +3,9 @@ contact_links: - name: GitHub Discussions url: https://github.com/mermaid-js/mermaid/discussions about: Ask the Community questions or share your own graphs in our discussions. + - name: Security Vulnerability + url: https://github.com/mermaid-js/.github/blob/main/SECURITY.md + about: Report security issues - name: Slack url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE about: Join our Community on Slack for Help and a casual chat. diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntax_proposal.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/syntaxt_proposal.yml rename to .github/ISSUE_TEMPLATE/syntax_proposal.yml From 21304a96775f398d29af62b31970ac1d2513511e Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 21:35:33 +0100 Subject: [PATCH 0529/1038] Create config.yml --- .github/ISSUE_TEMPLATE/config.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..89023b3c8c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,14 @@ +blank_issues_enabled: false +contact_links: +# - name: GitHub Discussions +# url: https://github.com/mermaid-js/mermaid/discussions +# about: Ask the Community questions or share your own graphs in our discussions. + - name: Slack + url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE + about: Join our Community on Slack for Help and a casual chat. + - name: Documentation + url: https://mermaid-js.github.io + about: Read our documentation for all that Mermaid.js can offer. + - name: Live Editor + url: https://mermaid.live + about: Try the live editor to preview graphs in no time. From b9daa355582ff387aeb3ddbe3d9f63249dbe845d Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 21:51:02 +0100 Subject: [PATCH 0530/1038] Switch to bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.md | 48 ---------------------- .github/ISSUE_TEMPLATE/bug_report.yml | 59 +++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 48 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 2879f7d232..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: 'Status: Triage, Type: Bug / Error' -assignees: '' ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: - -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Code Sample** -Live version: A link to https://mermaid.live/edit#… - -``` -graph TD; -… -``` - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Desktop (please complete the following information):** - -- OS: [e.g. iOS] -- Browser: [e.g. chrome, safari] -- Version: [e.g. 22] - -**Smartphone (please complete the following information):** - -- Device: [e.g. iPhone6] -- OS: [e.g. iOS8.1] -- Browser: [e.g. stock browser, safari] -- Version: [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..42888ff0a7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,59 @@ +name: Bug Report +description: Create a report to help us improve +labels: + - "Status: Triage" + - "Type: Bug / Error" + +body: + - type: textarea + attributes: + label: Description + description: Give a clear and concise description of what the bug is. + placeholder: When I do ... does ... happen. + validations: + required: true + - type: textarea + attributes: + label: Steps to reproduce + description: Give a step-by-step example on how to reproduce the bug. + placeholder: |- + 1. Do this + 2. Do that + 3. ... + 4. Bug! + validations: + required: true + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to help explain your issue. + - type: textarea + attributes: + label: Code Sample + description: |- + If applicable, add the code sample or a link to the [Live Editor](https://mermaid.live). + Any text pasted here will be rendered as a Code block. + render: text + - type: textarea + attributes: + label: Setup + description: |- + Please fill out the below info. + Note that you only need to fill out one and not both sections. + value: |- + **Desktop** + + - OS and Version: [Windows, Linux, Mac, ...] + - Browser and Version: [Chrome, Edge, Firefox] + + **Smartphone** + + - Device: [Samsung, iPhone, ...] + - OS and Version: [Android, iOS, ...] + - Browser and Version: [Chrome, Safari, ...] + validations: + required: true + - type: textarea + attributes: + label: Additional Context + description: Anything else to add? From 4f5228aec49b27d94360f6bfe602e0de95ade0ca Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:01:00 +0100 Subject: [PATCH 0531/1038] Create diagram_proposal.yml --- .github/ISSUE_TEMPLATE/diagram_proposal.yml | 37 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 19 ----------- 2 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/diagram_proposal.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/diagram_proposal.yml b/.github/ISSUE_TEMPLATE/diagram_proposal.yml new file mode 100644 index 0000000000..67e8434bec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/diagram_proposal.yml @@ -0,0 +1,37 @@ +name: Diagram Proposal +description: Suggest a new Diagram Type to add to Mermaid. +labels: + - "Status: Triage" + - "Type: Enhancement" + +body: + - type: markdown + attributes: + value: |- + Thank you for suggesting a new Diagram type for Mermaid.js! + + We are always excited for new ideas to make the library more advanced and useful for people. + Please take your time to fill out the below sections with as much detail as you can. + - type: textarea + attributes: + label: Proposal + description: A clear and concise description of what should be added to Mermaid.js. + placeholder: Mermaid.js should add ... because ... + validations: + required: true + - type: textarea + attributes: + label: Use Cases + description: If applicable, give some use cases for where this diagram would be useful. + placeholder: The Diagram could be used for ... + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to show possible examples of how the diagram may look like. + - type: textarea + attributes: + label: Code Sample + description: |- + If applicable, add a code sample for how to implement this new diagram. + The text will automatically be rendered as JavaScript code. + render: javascript diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index ba38cf9acb..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'Status: Triage, Type: Enhancement' -assignees: '' ---- - -**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** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. From 6ef3e7f536b323ec970d084dcc4280211403a2f2 Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:07:25 +0100 Subject: [PATCH 0532/1038] Create theme_proposal.yml --- .github/ISSUE_TEMPLATE/theme_proposal.yml | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/theme_proposal.yml diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml new file mode 100644 index 0000000000..c8e112043e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -0,0 +1,35 @@ +name: Theme Proposal +description: Suggest a new theme to add to Mermaid.js. +labels: + - "Status: Triage" + - "Type: Enhancement" + +body: + - type: markdown + attributes: + value: |- + Thank you for suggesting a new Theme for Mermaid.js! + + We are always excited for new ideas to make the library more advanced and useful for people. + Please take your time to fill out the below sections with as much detail as you can. + - type: textarea + attributes: + label: Proposal + description: A clear and concise description of what theme should be added to Mermaid.js. + placeholder: Mermaid.js should add ... because ... + validations: + required: true + - type: textarea + attributes: + label: Colors + description: |- + A detailed list of the different colour values to use. + A list of currently used variable names can be found [here](https://mermaid-js.github.io/mermaid/#/theming?id=theme-variables-reference-table) + placeholder: |- + - background: #f4f4f4 + - primaryColor: #fff4dd + - ... + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to show possible examples of how the theme may look like. From 312e5f3d96f99c3b6ba834f22d71dc146c1cffb5 Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:08:43 +0100 Subject: [PATCH 0533/1038] Create syntaxt_proposal.yml --- .github/ISSUE_TEMPLATE/syntaxt_proposal.yml | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/syntaxt_proposal.yml diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml new file mode 100644 index 0000000000..63bd4884d4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml @@ -0,0 +1,25 @@ +name: Syntax Proposal +description: Suggest a new Syntax to add to Mermaid.js. +labels: + - "Status: Triage" + - "Type: Enhancement" + +body: + - type: markdown + attributes: + value: |- + Thank you for suggesting a new Syntax for Mermaid.js! + + We are always excited for new ideas to make the library more advanced and useful for people. + Please take your time to fill out the below sections with as much detail as you can. + - type: textarea + attributes: + label: Proposal + description: A clear and concise description of what Syntax should be added to Mermaid.js. + placeholder: Mermaid.js should add ... because ... + validations: + required: true + - type: textarea + attributes: + label: Screenshots + description: If applicable, add screenshots to show possible examples of how the theme may look like. From 41f21d4f72c3e86bb43a3039cbd12e7e072bf124 Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:10:24 +0100 Subject: [PATCH 0534/1038] Delete question.md --- .github/ISSUE_TEMPLATE/question.md | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/question.md diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 52684fd1d4..0000000000 --- a/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Question -about: Get some help from the community. -title: '' -labels: 'Help wanted!, Type: Other' -assignees: '' ---- - -## Help us help you! - -You want an answer. Here are some ways to get it quicker: - -- Use a clear and concise title. -- Try to pose a clear and concise question. -- Include as much, or as little, code as necessary. -- Don't be shy to give us some screenshots, if it helps! From 0b834485a8c55ddcdef2f11a10805aac0dbf2683 Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:14:21 +0100 Subject: [PATCH 0535/1038] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 42888ff0a7..cb6a94b2ff 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -5,6 +5,15 @@ labels: - "Type: Bug / Error" body: + - type: markdown + attributes: + value: |- + ## Before you submit... + We like to help you, but in order to do that should you make a few things first: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Description From 099a26977a6bf0945c82d24dd8c4490350c1227f Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:16:13 +0100 Subject: [PATCH 0536/1038] Update diagram_proposal.yml --- .github/ISSUE_TEMPLATE/diagram_proposal.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/diagram_proposal.yml b/.github/ISSUE_TEMPLATE/diagram_proposal.yml index 67e8434bec..2090c7c085 100644 --- a/.github/ISSUE_TEMPLATE/diagram_proposal.yml +++ b/.github/ISSUE_TEMPLATE/diagram_proposal.yml @@ -8,10 +8,15 @@ body: - type: markdown attributes: value: |- - Thank you for suggesting a new Diagram type for Mermaid.js! + ## Before you submit... + First of all, thank you for proposing a new Diagram to us. + We are always happy about new ideas to improve Mermaid.js wherever possible. - We are always excited for new ideas to make the library more advanced and useful for people. - Please take your time to fill out the below sections with as much detail as you can. + To get the fastest and best response possible, make sure you do the following: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Proposal From bab59374267b67ec025d1da6bc3555b237bdb66f Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:17:54 +0100 Subject: [PATCH 0537/1038] Update syntaxt_proposal.yml --- .github/ISSUE_TEMPLATE/syntaxt_proposal.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml index 63bd4884d4..b82b0eaa1c 100644 --- a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml +++ b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml @@ -8,10 +8,15 @@ body: - type: markdown attributes: value: |- - Thank you for suggesting a new Syntax for Mermaid.js! + ## Before you submit... + First of all, thank you for proposing a new Syntax to us. + We are always happy about new ideas to improve Mermaid.js wherever possible. - We are always excited for new ideas to make the library more advanced and useful for people. - Please take your time to fill out the below sections with as much detail as you can. + To get the fastest and best response possible, make sure you do the following: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. Examples are always welcome. + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Proposal @@ -19,6 +24,10 @@ body: placeholder: Mermaid.js should add ... because ... validations: required: true + - type: textarea + attributes: + label: Example + description: If applicable, provide an example of the new Syntax. - type: textarea attributes: label: Screenshots From 5d83ec6fa2e15b1cd14a700a95f0e7663d146516 Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Wed, 16 Feb 2022 22:18:47 +0100 Subject: [PATCH 0538/1038] Update theme_proposal.yml --- .github/ISSUE_TEMPLATE/theme_proposal.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml index c8e112043e..920f9af3e4 100644 --- a/.github/ISSUE_TEMPLATE/theme_proposal.yml +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -8,10 +8,15 @@ body: - type: markdown attributes: value: |- - Thank you for suggesting a new Theme for Mermaid.js! + ## Before you submit... + First of all, thank you for proposing a new Theme to us. + We are always happy about new ideas to improve Mermaid.js wherever possible. - We are always excited for new ideas to make the library more advanced and useful for people. - Please take your time to fill out the below sections with as much detail as you can. + To get the fastest and best response possible, make sure you do the following: + + - Use a clear and concise title + - Fill out the text fields with as much detail as possible. Examples are always welcome! + - Never be shy to give us screenshots and/or code samples. It will help! - type: textarea attributes: label: Proposal From 1117a80500a288f26ed773062ebb8ce7e842f67d Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Thu, 15 Sep 2022 01:28:20 +0200 Subject: [PATCH 0539/1038] make setup not required --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index cb6a94b2ff..400a61138c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -60,8 +60,6 @@ body: - Device: [Samsung, iPhone, ...] - OS and Version: [Android, iOS, ...] - Browser and Version: [Chrome, Safari, ...] - validations: - required: true - type: textarea attributes: label: Additional Context From c8f699489578d97d3360d2ed371f5e526727685b Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Thu, 15 Sep 2022 01:28:59 +0200 Subject: [PATCH 0540/1038] Make colors required --- .github/ISSUE_TEMPLATE/theme_proposal.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml index 920f9af3e4..304d1d1c99 100644 --- a/.github/ISSUE_TEMPLATE/theme_proposal.yml +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -34,6 +34,8 @@ body: - background: #f4f4f4 - primaryColor: #fff4dd - ... + validations: + required: true - type: textarea attributes: label: Screenshots From 638b9d9aae33114650862b074f783212b94aa320 Mon Sep 17 00:00:00 2001 From: Andre_601 <github@andre601.ch> Date: Thu, 15 Sep 2022 01:39:57 +0200 Subject: [PATCH 0541/1038] Discussions are now available --- .github/ISSUE_TEMPLATE/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 89023b3c8c..8710d49aa4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: -# - name: GitHub Discussions -# url: https://github.com/mermaid-js/mermaid/discussions -# about: Ask the Community questions or share your own graphs in our discussions. + - name: GitHub Discussions + url: https://github.com/mermaid-js/mermaid/discussions + about: Ask the Community questions or share your own graphs in our discussions. - name: Slack url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE about: Join our Community on Slack for Help and a casual chat. From 17adec38af6c93d009e319b788a9e8f3a4187c3e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Sun, 30 Oct 2022 00:07:12 +0530 Subject: [PATCH 0542/1038] chore: lint --- .github/ISSUE_TEMPLATE/bug_report.yml | 12 ++++++------ .github/ISSUE_TEMPLATE/diagram_proposal.yml | 8 ++++---- .github/ISSUE_TEMPLATE/syntaxt_proposal.yml | 8 ++++---- .github/ISSUE_TEMPLATE/theme_proposal.yml | 8 ++++---- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 400a61138c..6ce66a831d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,8 +1,8 @@ name: Bug Report description: Create a report to help us improve labels: - - "Status: Triage" - - "Type: Bug / Error" + - 'Status: Triage' + - 'Type: Bug / Error' body: - type: markdown @@ -10,7 +10,7 @@ body: value: |- ## Before you submit... We like to help you, but in order to do that should you make a few things first: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. - Never be shy to give us screenshots and/or code samples. It will help! @@ -51,12 +51,12 @@ body: Note that you only need to fill out one and not both sections. value: |- **Desktop** - + - OS and Version: [Windows, Linux, Mac, ...] - Browser and Version: [Chrome, Edge, Firefox] - + **Smartphone** - + - Device: [Samsung, iPhone, ...] - OS and Version: [Android, iOS, ...] - Browser and Version: [Chrome, Safari, ...] diff --git a/.github/ISSUE_TEMPLATE/diagram_proposal.yml b/.github/ISSUE_TEMPLATE/diagram_proposal.yml index 2090c7c085..67dad5d3a3 100644 --- a/.github/ISSUE_TEMPLATE/diagram_proposal.yml +++ b/.github/ISSUE_TEMPLATE/diagram_proposal.yml @@ -1,8 +1,8 @@ name: Diagram Proposal description: Suggest a new Diagram Type to add to Mermaid. labels: - - "Status: Triage" - - "Type: Enhancement" + - 'Status: Triage' + - 'Type: Enhancement' body: - type: markdown @@ -11,9 +11,9 @@ body: ## Before you submit... First of all, thank you for proposing a new Diagram to us. We are always happy about new ideas to improve Mermaid.js wherever possible. - + To get the fastest and best response possible, make sure you do the following: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. - Never be shy to give us screenshots and/or code samples. It will help! diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml index b82b0eaa1c..99250ba93a 100644 --- a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml +++ b/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml @@ -1,8 +1,8 @@ name: Syntax Proposal description: Suggest a new Syntax to add to Mermaid.js. labels: - - "Status: Triage" - - "Type: Enhancement" + - 'Status: Triage' + - 'Type: Enhancement' body: - type: markdown @@ -11,9 +11,9 @@ body: ## Before you submit... First of all, thank you for proposing a new Syntax to us. We are always happy about new ideas to improve Mermaid.js wherever possible. - + To get the fastest and best response possible, make sure you do the following: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. Examples are always welcome. - Never be shy to give us screenshots and/or code samples. It will help! diff --git a/.github/ISSUE_TEMPLATE/theme_proposal.yml b/.github/ISSUE_TEMPLATE/theme_proposal.yml index 304d1d1c99..da4fddbeca 100644 --- a/.github/ISSUE_TEMPLATE/theme_proposal.yml +++ b/.github/ISSUE_TEMPLATE/theme_proposal.yml @@ -1,8 +1,8 @@ name: Theme Proposal description: Suggest a new theme to add to Mermaid.js. labels: - - "Status: Triage" - - "Type: Enhancement" + - 'Status: Triage' + - 'Type: Enhancement' body: - type: markdown @@ -11,9 +11,9 @@ body: ## Before you submit... First of all, thank you for proposing a new Theme to us. We are always happy about new ideas to improve Mermaid.js wherever possible. - + To get the fastest and best response possible, make sure you do the following: - + - Use a clear and concise title - Fill out the text fields with as much detail as possible. Examples are always welcome! - Never be shy to give us screenshots and/or code samples. It will help! From 361dd6a96e2f2d6a56f044f36f4b46e62b43bb30 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Thu, 3 Nov 2022 10:53:15 +0530 Subject: [PATCH 0543/1038] Add Security Policy --- .github/ISSUE_TEMPLATE/bug_report.yml | 3 +++ .github/ISSUE_TEMPLATE/config.yml | 3 +++ .../{syntaxt_proposal.yml => syntax_proposal.yml} | 0 3 files changed, 6 insertions(+) rename .github/ISSUE_TEMPLATE/{syntaxt_proposal.yml => syntax_proposal.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 6ce66a831d..3ddf86ea5e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -8,6 +8,9 @@ body: - type: markdown attributes: value: |- + ## Security vulnerabilities + Please refer our [Security Policy](https://github.com/mermaid-js/.github/blob/main/SECURITY.md) and report to keep vulnerabilities confidential so we can release fixes first. + ## Before you submit... We like to help you, but in order to do that should you make a few things first: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8710d49aa4..7f5a28fad3 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,6 +3,9 @@ contact_links: - name: GitHub Discussions url: https://github.com/mermaid-js/mermaid/discussions about: Ask the Community questions or share your own graphs in our discussions. + - name: Security Vulnerability + url: https://github.com/mermaid-js/.github/blob/main/SECURITY.md + about: Report security issues - name: Slack url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE about: Join our Community on Slack for Help and a casual chat. diff --git a/.github/ISSUE_TEMPLATE/syntaxt_proposal.yml b/.github/ISSUE_TEMPLATE/syntax_proposal.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/syntaxt_proposal.yml rename to .github/ISSUE_TEMPLATE/syntax_proposal.yml From c86d46eb8accdb79652d24fb819a4c46e9b4c777 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Thu, 3 Nov 2022 11:06:21 +0530 Subject: [PATCH 0544/1038] Add Security Policy --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 7f5a28fad3..bd0f34e334 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,7 +5,7 @@ contact_links: about: Ask the Community questions or share your own graphs in our discussions. - name: Security Vulnerability url: https://github.com/mermaid-js/.github/blob/main/SECURITY.md - about: Report security issues + about: Report security issues confidentially. - name: Slack url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE about: Join our Community on Slack for Help and a casual chat. From 4870d3702772359851c8e8bd1a5947f33a308613 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Thu, 3 Nov 2022 11:17:24 +0530 Subject: [PATCH 0545/1038] chore: Remove Security from config --- .github/ISSUE_TEMPLATE/config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 7f5a28fad3..8710d49aa4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,9 +3,6 @@ contact_links: - name: GitHub Discussions url: https://github.com/mermaid-js/mermaid/discussions about: Ask the Community questions or share your own graphs in our discussions. - - name: Security Vulnerability - url: https://github.com/mermaid-js/.github/blob/main/SECURITY.md - about: Report security issues - name: Slack url: https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE about: Join our Community on Slack for Help and a casual chat. From b63828f88dba831c25a55153c222bf96c0696def Mon Sep 17 00:00:00 2001 From: Ashley Engelund <weedySeaDragon@users.noreply.github.com> Date: Thu, 3 Nov 2022 12:03:52 -0700 Subject: [PATCH 0546/1038] chore: fix cSpell word entry misspelling "mermiad" -> "mermaid" (#3751) * fix misspelled "mermiad" -> 'mermaid' in cSpell.json * correct misspelled word caught by cspell --- cSpell.json | 2 +- packages/mermaid/src/Diagram.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cSpell.json b/cSpell.json index b6bf26fa46..0d9ed77a1e 100644 --- a/cSpell.json +++ b/cSpell.json @@ -6,7 +6,7 @@ "customizability", "Gantt", "jison", - "mermiad", + "mermaid", "mindmap", "Mindmaps", "mitigations", diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index d6c226cdee..f0adf33a4f 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -55,7 +55,7 @@ export class Diagram { } handleError(error: unknown, parseError?: ParseErrorFunction) { - // Is this the correct way to access mermiad's parseError() + // Is this the correct way to access mermaid's parseError() // method ? (or global.mermaid.parseError()) ? if (parseError === undefined) { From 6879a1583420748c32009072c99df235da915a4d Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <hugovk@users.noreply.github.com> Date: Thu, 3 Nov 2022 21:48:49 +0200 Subject: [PATCH 0547/1038] Fix link to CSS classes --- packages/mermaid/src/docs/syntax/gantt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/syntax/gantt.md b/packages/mermaid/src/docs/syntax/gantt.md index 8b200da7dd..27524ba996 100644 --- a/packages/mermaid/src/docs/syntax/gantt.md +++ b/packages/mermaid/src/docs/syntax/gantt.md @@ -210,7 +210,7 @@ gantt ## Styling -Styling of the a gantt diagram is done by defining a number of css classes. During rendering, these classes are extracted from the file located at src/themes/gantt.scss +Styling of the Gantt diagram is done by defining a number of CSS classes. During rendering, these classes are extracted from the file located at src/diagrams/gantt/styles.js ### Classes used From 3ad17b79a666c431d899ef850750182d5edd63e4 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 4 Nov 2022 01:41:03 +0530 Subject: [PATCH 0548/1038] CSpell format --- .lintstagedrc.json | 3 +- bin/checkCSpell.sh | 5 ++ cSpell.json | 127 ++++++++++++++++---------------- packages/mermaid/src/Diagram.ts | 2 +- 4 files changed, 71 insertions(+), 66 deletions(-) create mode 100755 bin/checkCSpell.sh diff --git a/.lintstagedrc.json b/.lintstagedrc.json index c43f5f89fe..17b627b379 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,3 +1,4 @@ { - "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"] + "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], + "cSpell.json": ["./bin/checkCSpell.sh"] } diff --git a/bin/checkCSpell.sh b/bin/checkCSpell.sh new file mode 100755 index 0000000000..bacc2bb93d --- /dev/null +++ b/bin/checkCSpell.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +jq ".words|=(. | map(ascii_downcase) | sort | unique)" cSpell.json > cSpell.temp.json +npx prettier --write cSpell.temp.json +mv cSpell.temp.json cSpell.json \ No newline at end of file diff --git a/cSpell.json b/cSpell.json index b6bf26fa46..873de93e71 100644 --- a/cSpell.json +++ b/cSpell.json @@ -2,84 +2,83 @@ "version": "0.2", "language": "en", "words": [ + "acyclicer", + "adamiecki", + "alois", + "antiscript", + "applitools", + "asciidoctor", + "ashish", + "astah", + "bbox", + "bilkent", + "bisheng", "blockquotes", + "brolin", + "codedoc", + "colour", + "cpettitt", "customizability", - "Gantt", + "cuzon", + "cytoscape", + "dagre", + "descr", + "docsify", + "docsy", + "doku", + "dompurify", + "edgechromium", + "faber", + "flatmap", + "gantt", + "gitea", + "gitgraph", + "graphlib", + "grav", + "greywolf", + "inkdrop", + "jaoude", "jison", - "mermiad", - "mindmap", - "Mindmaps", - "mitigations", - "sandboxed", - "shiki", - "verdana", - "Visio" - ], - "ignoreWords": [ - "Alois", - "Klink", + "kaufmann", + "klemm", + "klink", "knsv", - "Knut", - "Matthieu", - "Sidharth", - "Sveidqvist", - "Vinod", - "Faber", - "Orlandoni", - "Klemm", - "Mindaugas", - "Laganeckas", - "Cuzon", - "Yash", - "Adamiecki", - "applitools", - "Asciidoctor", - "Astah", - "Bisheng", - "codedoc", - "Docsy", - "Doku", - "Gitea", - "Gitgraph", - "Grav", - "Inkdrop", - "Jaoude", + "knut", + "laganeckas", + "lucida", + "matthieu", "mdbook", "mermerd", + "mindaugas", + "mindmap", + "mindmaps", + "mitigations", "mkdocs", + "orlandoni", "phpbb", - "Plantuml", - "Playfair's", - "Podlite", + "plantuml", + "playfair", + "podlite", + "ranksep", "redmine", + "sandboxed", + "setupgraphviewbox", + "shiki", + "sidharth", "sphinxcontrib", - "Tuleap", - "dagre", - "vitepress", - "docsify", - "colour", - "graphlib", - "acyclicer", - "ranksep", - "descr", + "statediagram", "substate", - "Ashish", - "bbox", + "sveidqvist", "techn", - "cytoscape", - "Lucida", - "Bilkent", - "cpettitt", - "antiscript", "ts-nocheck", - "setupGraphViewbox", - "flatmap", - "Kaufmann", + "tuleap", + "verdana", "viewports", - "edgechromium", - "statediagram", - "Brolin", - "Greywolf" + "vinod", + "visio", + "vitepress", + "xlink", + "yash" ], "patterns": [ { diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index d6c226cdee..f0adf33a4f 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -55,7 +55,7 @@ export class Diagram { } handleError(error: unknown, parseError?: ParseErrorFunction) { - // Is this the correct way to access mermiad's parseError() + // Is this the correct way to access mermaid's parseError() // method ? (or global.mermaid.parseError()) ? if (parseError === undefined) { From e7369acaea111e24c43f30b367ae7e1513870283 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 4 Nov 2022 02:05:50 +0530 Subject: [PATCH 0549/1038] jq -> node --- .lintstagedrc.json | 2 +- bin/checkCSpell.sh | 5 ----- bin/checkCSpell.ts | 17 +++++++++++++++++ cSpell.json | 23 ++++------------------- packages/mermaid/src/docs.mts | 9 +-------- 5 files changed, 23 insertions(+), 33 deletions(-) delete mode 100755 bin/checkCSpell.sh create mode 100644 bin/checkCSpell.ts diff --git a/.lintstagedrc.json b/.lintstagedrc.json index 17b627b379..e626b461c7 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,4 +1,4 @@ { "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], - "cSpell.json": ["./bin/checkCSpell.sh"] + "cSpell.json": ["ts-node-esm bin/checkCSpell.ts"] } diff --git a/bin/checkCSpell.sh b/bin/checkCSpell.sh deleted file mode 100755 index bacc2bb93d..0000000000 --- a/bin/checkCSpell.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -jq ".words|=(. | map(ascii_downcase) | sort | unique)" cSpell.json > cSpell.temp.json -npx prettier --write cSpell.temp.json -mv cSpell.temp.json cSpell.json \ No newline at end of file diff --git a/bin/checkCSpell.ts b/bin/checkCSpell.ts new file mode 100644 index 0000000000..3616d39e09 --- /dev/null +++ b/bin/checkCSpell.ts @@ -0,0 +1,17 @@ +import { readFileSync, writeFileSync } from 'node:fs'; +import prettier from 'prettier'; + +const filepath = './cSpell.json'; +const cSpell: { words: string[] } = JSON.parse(readFileSync(filepath, 'utf8')); + +cSpell.words = [...new Set(cSpell.words.map((word) => word.toLowerCase()))]; +cSpell.words.sort((a, b) => a.localeCompare(b)); + +const prettierConfig = prettier.resolveConfig.sync(filepath) ?? {}; +writeFileSync( + filepath, + prettier.format(JSON.stringify(cSpell), { + ...prettierConfig, + filepath, + }) +); diff --git a/cSpell.json b/cSpell.json index 873de93e71..e31a77fc00 100644 --- a/cSpell.json +++ b/cSpell.json @@ -81,11 +81,7 @@ "yash" ], "patterns": [ - { - "name": "Markdown links", - "pattern": "\\((.*)\\)", - "description": "" - }, + { "name": "Markdown links", "pattern": "\\((.*)\\)", "description": "" }, { "name": "Markdown code blocks", "pattern": "/^(\\s*`{3,}).*[\\s\\S]*?^\\1/gmx", @@ -96,25 +92,14 @@ "pattern": "\\`([^\\`\\r\\n]+?)\\`", "description": "https://stackoverflow.com/questions/41274241/how-to-capture-inline-markdown-code-but-not-a-markdown-code-fence-with-regex" }, - { - "name": "Link contents", - "pattern": "\\<a(.*)\\>", - "description": "" - }, - { - "name": "Snippet references", - "pattern": "-- snippet:(.*)", - "description": "" - }, + { "name": "Link contents", "pattern": "\\<a(.*)\\>", "description": "" }, + { "name": "Snippet references", "pattern": "-- snippet:(.*)", "description": "" }, { "name": "Snippet references 2", "pattern": "\\<\\[sample:(.*)", "description": "another kind of snippet reference" }, - { - "name": "Multi-line code blocks", - "pattern": "/^\\s*```[\\s\\S]*?^\\s*```/gm" - }, + { "name": "Multi-line code blocks", "pattern": "/^\\s*```[\\s\\S]*?^\\s*```/gm" }, { "name": "HTML Tags", "pattern": "<[^>]*>", diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 96f5e9024c..5d7175a866 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -61,14 +61,7 @@ const LOGMSG_COPIED = `, and copied to ${FINAL_DOCS_DIR}`; const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run 'pnpm --filter mermaid run docs:build' after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; -// TODO: Read from .prettierrc? -const prettierConfig: prettier.Config = { - useTabs: false, - tabWidth: 2, - endOfLine: 'auto', - printWidth: 100, - singleQuote: true, -}; +const prettierConfig = prettier.resolveConfig.sync('.') ?? {}; let filesWereTransformed = false; From daa85b4279ac62de19ecea5c3c3c84f20e648900 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 4 Nov 2022 02:09:14 +0530 Subject: [PATCH 0550/1038] rename file --- .lintstagedrc.json | 2 +- bin/{checkCSpell.ts => fixCSpell.ts} | 0 package.json | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename bin/{checkCSpell.ts => fixCSpell.ts} (100%) diff --git a/.lintstagedrc.json b/.lintstagedrc.json index e626b461c7..10899e59d6 100644 --- a/.lintstagedrc.json +++ b/.lintstagedrc.json @@ -1,4 +1,4 @@ { "!(docs/**/*)*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"], - "cSpell.json": ["ts-node-esm bin/checkCSpell.ts"] + "cSpell.json": ["ts-node-esm bin/fixCSpell.ts"] } diff --git a/bin/checkCSpell.ts b/bin/fixCSpell.ts similarity index 100% rename from bin/checkCSpell.ts rename to bin/fixCSpell.ts diff --git a/package.json b/package.json index 15bfcbada6..20c8acba42 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", "lint": "eslint --cache --ignore-path .gitignore . && pnpm --filter mermaid run lint:jison && prettier --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", + "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm bin/fixCSpell.ts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", From 1e417833f4987b0748d92772a77a18355caf9f0c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 4 Nov 2022 11:29:24 +0530 Subject: [PATCH 0551/1038] Basic webpack --- pnpm-lock.yaml | 910 +++++++++++++++++++++++++++++++- tests/webpack/package.json | 22 + tests/webpack/public/index.html | 10 + tests/webpack/src/index.js | 6 + tests/webpack/webpack.config.js | 9 + 5 files changed, 952 insertions(+), 5 deletions(-) create mode 100644 tests/webpack/package.json create mode 100644 tests/webpack/public/index.html create mode 100644 tests/webpack/src/index.js create mode 100644 tests/webpack/webpack.config.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f83721ed24..5c7f89e874 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,8 +1,5 @@ lockfileVersion: 5.4 -overrides: - d3: ^7.0.0 - importers: .: @@ -304,6 +301,19 @@ importers: mermaid: link:../mermaid rimraf: 3.0.2 + tests/webpack: + specifiers: + mermaid: workspace:* + webpack: ^5.74.0 + webpack-cli: ^4.10.0 + webpack-dev-server: ^4.11.1 + dependencies: + mermaid: link:../../packages/mermaid + devDependencies: + webpack: 5.74.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri + webpack-dev-server: 4.11.1_5v66e2inugklgvlh4huuavolfq + packages: /@algolia/autocomplete-core/1.7.1: @@ -2351,6 +2361,11 @@ packages: - supports-color dev: true + /@discoveryjs/json-ext/0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true + /@docsearch/css/3.2.1: resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} dev: true @@ -2928,6 +2943,13 @@ packages: engines: {node: '>=6.0.0'} dev: true + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.15 + dev: true + /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true @@ -2946,6 +2968,10 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@leichtgewicht/ip-codec/2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3089,6 +3115,12 @@ packages: '@types/node': 18.8.1 dev: true + /@types/bonjour/3.5.10: + resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/cacheable-request/6.0.2: resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} dependencies: @@ -3114,6 +3146,13 @@ packages: '@types/node': 18.8.1 dev: true + /@types/connect-history-api-fallback/1.3.5: + resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + dependencies: + '@types/express-serve-static-core': 4.17.31 + '@types/node': 18.8.1 + dev: true + /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -3311,6 +3350,13 @@ packages: '@types/trusted-types': 2.0.2 dev: true + /@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + dependencies: + '@types/eslint': 8.4.6 + '@types/estree': 1.0.0 + dev: true + /@types/eslint/8.4.6: resolution: {integrity: sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==} dependencies: @@ -3318,6 +3364,10 @@ packages: '@types/json-schema': 7.0.11 dev: true + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true + /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: true @@ -3359,6 +3409,12 @@ packages: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true + /@types/http-proxy/1.17.9: + resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -3472,6 +3528,16 @@ packages: '@types/node': 18.8.1 dev: true + /@types/retry/0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/serve-index/1.9.1: + resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} + dependencies: + '@types/express': 4.17.14 + dev: true + /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: @@ -3487,6 +3553,12 @@ packages: resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} dev: true + /@types/sockjs/0.3.33: + resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/stack-utils/2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true @@ -3514,6 +3586,12 @@ packages: resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} dev: true + /@types/ws/8.5.3: + resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + dependencies: + '@types/node': 18.8.1 + dev: true + /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true @@ -3979,6 +4057,152 @@ packages: p-iteration: 1.1.8 dev: true + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + dev: true + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + dev: true + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + dev: true + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + dev: true + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + 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 + dev: true + + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + dev: true + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + 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 + dev: true + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + 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 + dev: true + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + dev: true + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + 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 + dev: true + + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webpack-cli/configtest/1.2.0_5v66e2inugklgvlh4huuavolfq: + resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} + peerDependencies: + webpack: 4.x.x || 5.x.x + webpack-cli: 4.x.x + dependencies: + webpack: 5.74.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri + dev: true + + /@webpack-cli/info/1.5.0_webpack-cli@4.10.0: + resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} + peerDependencies: + webpack-cli: 4.x.x + dependencies: + envinfo: 7.8.1 + webpack-cli: 4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri + dev: true + + /@webpack-cli/serve/1.7.0_ud4agclah7rahur6ntojouq57y: + resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} + peerDependencies: + webpack-cli: 4.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack-cli: 4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri + webpack-dev-server: 4.11.1_5v66e2inugklgvlh4huuavolfq + dev: true + + /@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + /@yankeeinlondon/builder-api/0.4.1_owgwhktbfueopkpwpts4jzdaqq: resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} peerDependencies: @@ -4076,6 +4300,14 @@ packages: acorn-walk: 8.2.0 dev: true + /acorn-import-assertions/1.8.0_acorn@8.8.0: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.0 + dev: true + /acorn-jsx/5.3.2_acorn@8.8.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4146,6 +4378,34 @@ packages: indent-string: 4.0.0 dev: true + /ajv-formats/2.1.1_ajv@8.11.0: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + dev: true + + /ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords/5.1.0_ajv@8.11.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.11.0 + fast-deep-equal: 3.1.3 + dev: true + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -4201,6 +4461,12 @@ packages: type-fest: 0.21.3 dev: true + /ansi-html-community/0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + /ansi-html/0.0.7: resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} engines: {'0': node >= 0.8.0} @@ -4319,6 +4585,10 @@ packages: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true + /array-flatten/2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true + /array-ify/1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true @@ -4609,6 +4879,10 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /batch/0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + /bcrypt-pbkdf/1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: @@ -4665,6 +4939,15 @@ packages: safe-json-parse: 1.0.1 dev: true + /bonjour-service/1.0.14: + resolution: {integrity: sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==} + dependencies: + array-flatten: 2.1.2 + dns-equal: 1.0.0 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -4774,6 +5057,11 @@ packages: resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} dev: true + /bytes/3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + /bytes/3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -4988,6 +5276,11 @@ packages: fsevents: 2.3.2 dev: true + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + /ci-info/2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true @@ -5079,6 +5372,15 @@ packages: engines: {node: '>= 0.10'} dev: true + /clone-deep/4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + /clone-response/1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: @@ -5164,6 +5466,10 @@ packages: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} dev: true + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + /commander/5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -5203,6 +5509,28 @@ packages: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true + /compressible/2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression/1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -5252,6 +5580,11 @@ packages: yargs: 17.5.1 dev: true + /connect-history-api-fallback/2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + /content-disposition/0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -6104,11 +6437,23 @@ packages: engines: {node: '>=0.10.0'} dev: true + /default-gateway/6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: true + /defer-to-connect/2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} dev: true + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + /define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} @@ -6199,6 +6544,10 @@ packages: engines: {node: '>=8'} dev: true + /detect-node/2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + /detective/5.2.1: resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} engines: {node: '>=0.8.0'} @@ -6236,6 +6585,17 @@ packages: path-type: 4.0.0 dev: true + /dns-equal/1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true + + /dns-packet/5.4.0: + resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + /doctrine-temporary-fork/2.1.0: resolution: {integrity: sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==} engines: {node: '>=0.10.0'} @@ -6459,6 +6819,14 @@ packages: once: 1.4.0 dev: true + /enhanced-resolve/5.10.0: + resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + /enquirer/2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -6476,6 +6844,12 @@ packages: engines: {node: '>=0.12'} dev: true + /envinfo/7.8.1: + resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} + engines: {node: '>=4'} + hasBin: true + dev: true + /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -6488,6 +6862,10 @@ packages: string-template: 0.2.1 dev: true + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true + /esbuild-android-64/0.15.10: resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} engines: {node: '>=12'} @@ -7366,6 +7744,15 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true + /eventemitter3/4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + /exec-sh/0.3.6: resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} dev: true @@ -7598,6 +7985,11 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fastest-levenshtein/1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: @@ -7611,6 +8003,13 @@ packages: websocket-driver: 0.7.4 dev: true + /faye-websocket/0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + /fb-watchman/2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -7728,6 +8127,16 @@ packages: readable-stream: 2.3.7 dev: true + /follow-redirects/1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -7854,6 +8263,10 @@ packages: through2: 2.0.5 dev: true + /fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: true + /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -8075,6 +8488,10 @@ packages: unique-stream: 2.3.1 dev: true + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -8188,6 +8605,10 @@ packages: dev: true optional: true + /handle-thing/2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} @@ -8357,6 +8778,15 @@ packages: lru-cache: 6.0.0 dev: true + /hpack.js/2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.7 + wbuf: 1.7.3 + dev: true + /html-encoding-sniffer/2.0.1: resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} engines: {node: '>=10'} @@ -8371,6 +8801,10 @@ packages: whatwg-encoding: 2.0.0 dev: true + /html-entities/2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + dev: true + /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -8402,6 +8836,20 @@ packages: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true + /http-deceiver/1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors/1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + /http-errors/2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -8439,6 +8887,36 @@ packages: - supports-color dev: true + /http-proxy-middleware/2.0.6_@types+express@4.17.14: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.14 + '@types/http-proxy': 1.17.9 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy/1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + /http-response-object/3.0.2: resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} dependencies: @@ -8577,6 +9055,10 @@ packages: wrappy: 1.0.2 dev: true + /inherits/2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true @@ -8594,6 +9076,11 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} + /interpret/2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + dev: true + /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: true @@ -8607,6 +9094,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /ipaddr.js/2.0.1: + resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} + engines: {node: '>= 10'} + dev: true + /is-absolute/1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -8726,7 +9218,6 @@ packages: engines: {node: '>=8'} hasBin: true dev: true - optional: true /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} @@ -8818,6 +9309,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj/3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -8913,7 +9409,6 @@ packages: dependencies: is-docker: 2.2.1 dev: true - optional: true /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -9844,6 +10339,15 @@ packages: supports-color: 7.2.0 dev: true + /jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.8.1 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + /jest-worker/29.1.0: resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10394,6 +10898,11 @@ packages: strip-bom: 3.0.0 dev: true + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} @@ -10691,6 +11200,13 @@ packages: engines: {node: '>= 0.6'} dev: true + /memfs/3.4.10: + resolution: {integrity: sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: true + /meow/8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -11003,6 +11519,10 @@ packages: engines: {node: '>=4'} dev: true + /minimalistic-assert/1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -11101,6 +11621,14 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true + /multicast-dns/7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.4.0 + thunky: 1.1.0 + dev: true + /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -11179,6 +11707,11 @@ packages: whatwg-url: 5.0.0 dev: true + /node-forge/1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + /node-int64/0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true @@ -11331,6 +11864,10 @@ packages: isobject: 3.0.1 dev: true + /obuf/1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -11338,6 +11875,11 @@ packages: ee-first: 1.1.1 dev: true + /on-headers/1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -11358,6 +11900,15 @@ packages: mimic-fn: 4.0.0 dev: true + /open/8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + /optionator/0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -11468,6 +12019,14 @@ packages: aggregate-error: 3.1.0 dev: true + /p-retry/4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + /p-try/1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -12013,6 +12572,12 @@ packages: engines: {node: '>=10'} dev: true + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /range-parser/1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -12148,6 +12713,13 @@ packages: picomatch: 2.3.1 dev: true + /rechoir/0.7.1: + resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.1 + dev: true + /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -12488,6 +13060,11 @@ packages: engines: {node: '>=0.12'} dev: true + /retry/0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -12610,6 +13187,25 @@ packages: xmlchars: 2.2.0 dev: true + /schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: true + + /schema-utils/4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.11.0 + ajv-formats: 2.1.1_ajv@8.11.0 + ajv-keywords: 5.1.0_ajv@8.11.0 + dev: true + /section-matter/1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -12618,6 +13214,17 @@ packages: kind-of: 6.0.3 dev: true + /select-hose/2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selfsigned/2.1.1: + resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} + engines: {node: '>=10'} + dependencies: + node-forge: 1.3.1 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -12657,6 +13264,27 @@ packages: - supports-color dev: true + /serialize-javascript/6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-index/1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /serve-static/1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -12683,10 +13311,21 @@ packages: split-string: 3.1.0 dev: true + /setprototypeof/1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + /setprototypeof/1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true + /shallow-clone/3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: true + /shebang-command/1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -12826,6 +13465,14 @@ packages: - supports-color dev: true + /sockjs/0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + /socks-proxy-agent/5.0.1: resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} engines: {node: '>= 6'} @@ -12868,6 +13515,13 @@ packages: source-map: 0.6.1 dev: true + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + /source-map-url/0.4.1: resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated @@ -12931,6 +13585,32 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true + /spdy-transport/3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.0 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy/4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /split-on-first/1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -13041,6 +13721,11 @@ packages: object-copy: 0.1.0 dev: true + /statuses/1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + /statuses/2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -13287,6 +13972,11 @@ packages: get-port: 3.2.0 dev: true + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -13303,6 +13993,41 @@ packages: supports-hyperlinks: 2.3.0 dev: true + /terser-webpack-plugin/5.3.6_webpack@5.74.0: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.15 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.15.1 + webpack: 5.74.0_webpack-cli@4.10.0 + dev: true + + /terser/5.15.1: + resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.0 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -13370,6 +14095,10 @@ packages: readable-stream: 3.6.0 dev: true + /thunky/1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + /tiny-lr/1.1.1: resolution: {integrity: sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==} dependencies: @@ -14528,6 +15257,20 @@ packages: makeerror: 1.0.12 dev: true + /watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + dev: true + + /wbuf/1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + /webdriver/7.16.11: resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} engines: {node: '>=12.0.0'} @@ -14562,6 +15305,159 @@ packages: engines: {node: '>=12'} dev: true + /webpack-cli/4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri: + resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + '@webpack-cli/migrate': '*' + webpack: 4.x.x || 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + '@webpack-cli/migrate': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 1.2.0_5v66e2inugklgvlh4huuavolfq + '@webpack-cli/info': 1.5.0_webpack-cli@4.10.0 + '@webpack-cli/serve': 1.7.0_ud4agclah7rahur6ntojouq57y + colorette: 2.0.19 + commander: 7.2.0 + cross-spawn: 7.0.3 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 2.2.0 + rechoir: 0.7.1 + webpack: 5.74.0_webpack-cli@4.10.0 + webpack-dev-server: 4.11.1_5v66e2inugklgvlh4huuavolfq + webpack-merge: 5.8.0 + dev: true + + /webpack-dev-middleware/5.3.3_webpack@5.74.0: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.10 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.74.0_webpack-cli@4.10.0 + dev: true + + /webpack-dev-server/4.11.1_5v66e2inugklgvlh4huuavolfq: + resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.14 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.0 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.3 + ansi-html-community: 0.0.8 + bonjour-service: 1.0.14 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.1 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.14 + ipaddr.js: 2.0.1 + open: 8.4.0 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.74.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri + webpack-dev-middleware: 5.3.3_webpack@5.74.0 + ws: 8.9.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-merge/5.8.0: + resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + wildcard: 2.0.0 + dev: true + + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack/5.74.0_webpack-cli@4.10.0: + resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.0 + acorn-import-assertions: 1.8.0_acorn@8.8.0 + browserslist: 4.21.4 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.10.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_webpack@5.74.0 + watchpack: 2.4.0 + webpack-cli: 4.10.0_vnmgq7jx5zjkzolvtfp7mdf5ri + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} @@ -14653,6 +15549,10 @@ packages: isexe: 2.0.0 dev: true + /wildcard/2.0.0: + resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} + dev: true + /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} diff --git a/tests/webpack/package.json b/tests/webpack/package.json new file mode 100644 index 0000000000..8a13eb727a --- /dev/null +++ b/tests/webpack/package.json @@ -0,0 +1,22 @@ +{ + "name": "webpack", + "version": "1.0.0", + "description": "", + "private": true, + "module": "commonjs", + "scripts": { + "build": "webpack", + "serve": "webpack serve" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "webpack": "^5.74.0", + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.11.1" + }, + "dependencies": { + "mermaid": "workspace:*" + } +} \ No newline at end of file diff --git a/tests/webpack/public/index.html b/tests/webpack/public/index.html new file mode 100644 index 0000000000..69c4b8a353 --- /dev/null +++ b/tests/webpack/public/index.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <title>Getting Started + + + + + diff --git a/tests/webpack/src/index.js b/tests/webpack/src/index.js new file mode 100644 index 0000000000..008ff0af98 --- /dev/null +++ b/tests/webpack/src/index.js @@ -0,0 +1,6 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint-disable no-console */ +// const mermaid = require('mermaid'); +import mermaid from 'mermaid'; + +console.log(mermaid); diff --git a/tests/webpack/webpack.config.js b/tests/webpack/webpack.config.js new file mode 100644 index 0000000000..655b294859 --- /dev/null +++ b/tests/webpack/webpack.config.js @@ -0,0 +1,9 @@ +const path = require('path'); + +module.exports = { + entry: './src/index.js', + output: { + filename: 'main.js', + path: path.resolve(__dirname, 'dist'), + }, +}; From 41f228c3ff730e144124aa5687d94d39a4810a53 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 4 Nov 2022 11:45:20 +0530 Subject: [PATCH 0552/1038] chore: Sync docs --- docs/syntax/gantt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md index 11034d2e79..5d8f6ce682 100644 --- a/docs/syntax/gantt.md +++ b/docs/syntax/gantt.md @@ -280,7 +280,7 @@ gantt ## Styling -Styling of the a gantt diagram is done by defining a number of css classes. During rendering, these classes are extracted from the file located at src/themes/gantt.scss +Styling of the Gantt diagram is done by defining a number of CSS classes. During rendering, these classes are extracted from the file located at src/diagrams/gantt/styles.js ### Classes used From d4cc366e8699af351cb7c2563f060440f00cce8f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 4 Nov 2022 11:46:48 +0530 Subject: [PATCH 0553/1038] chore: fix lint --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index f411d811fd..f6cc313877 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -141,4 +141,4 @@ "**/*.css", "**/*.scss" ] -} \ No newline at end of file +} From 1d9fefe7ac65990e4dd06a7e0e29976a873db844 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Fri, 4 Nov 2022 12:44:13 +0100 Subject: [PATCH 0554/1038] Added pie --- cypress/platform/per.html | 46 +++-- demos/pie.html | 2 +- .../mermaid/src/diagrams/pie/parser/pie.jison | 10 +- packages/mermaid/src/diagrams/pie/pieDb.js | 13 ++ .../mermaid/src/diagrams/pie/pieDetector.ts | 4 +- .../mermaid/src/diagrams/pie/pieRenderer.js | 187 +++++++++++++++++- 6 files changed, 239 insertions(+), 23 deletions(-) diff --git a/cypress/platform/per.html b/cypress/platform/per.html index 4fca4c8086..f68a3f50b6 100644 --- a/cypress/platform/per.html +++ b/cypress/platform/per.html @@ -6,6 +6,10 @@ rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" /> +
      Security check
      -flowchart LR
      -A-->B
      -        
      -
      -            mindmap
      -          root
      -            ch1
      -            ch2
      -        
      - - - +bar title Pets adopted by volunteers + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +
      + + + + + + + diff --git a/tests/webpack/src/index.js b/tests/webpack/src/index.js index e1d5cad6a2..899f665962 100644 --- a/tests/webpack/src/index.js +++ b/tests/webpack/src/index.js @@ -1,6 +1,38 @@ /* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable no-console */ const mermaid = require('mermaid'); -// import mermaid from 'mermaid'; +import mindmap from '@mermaid-js/mermaid-mindmap'; -console.log(mermaid); +const render = async (graph) => { + const svg = await mermaid.renderAsync('dummy', graph); + console.log(svg); + document.getElementById('graphDiv').innerHTML = svg; +}; + +const load = async () => { + await mermaid.registerExternalDiagrams([mindmap]); + await render('info'); + + setTimeout(async () => { + await render(`mindmap + root((mindmap)) + Origins + Long history + ::icon(fa fa-book) + Popularisation + British popular psychology author Tony Buzan + Research + On effectivness
      and features + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid + `); + }, 2500); +}; + +window.addEventListener('load', load, false); From 20b4358c0e4ed1f5ffa5135962cc49767a8f78b2 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 8 Nov 2022 19:21:49 +0530 Subject: [PATCH 0582/1038] fix: Make options in registerExternalDiagrams optional --- .vite/build.ts | 4 ++-- .../platform/external-diagrams-mindmap.html | 21 ++++++------------- packages/mermaid/src/mermaid.ts | 2 +- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index cf52cd50a0..e125a335a7 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -101,7 +101,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) include: [ 'packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**', - 'packages/mermaid-example-diagram/src/**', + // 'packages/mermaid-example-diagram/src/**', ], }; } @@ -131,7 +131,7 @@ if (watch) { build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' })); if (!mermaidOnly) { build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + // build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); } } else { void main(); diff --git a/cypress/platform/external-diagrams-mindmap.html b/cypress/platform/external-diagrams-mindmap.html index 2d18532da4..e5eded4ba0 100644 --- a/cypress/platform/external-diagrams-mindmap.html +++ b/cypress/platform/external-diagrams-mindmap.html @@ -27,9 +27,9 @@

      Should correctly load a third-party diagram using registerDiagram

      ::icon(mdi mdi-fire) gc7((grand
      grand
      child 8))
      -
      +    
       
           
           
      @@ -37,22 +37,13 @@ 

      Should correctly load a third-party diagram using registerDiagram

      diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 4b42e27f7a..ac8872ef65 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -336,7 +336,7 @@ const registerExternalDiagrams = async ( lazyLoad = true, }: { lazyLoad?: boolean; - } + } = {} ) => { if (lazyLoad) { registerLazyLoadedDiagrams(diagrams); From 6d2552ea6e74facf17e76aaf4752871fce30eead Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 8 Nov 2022 19:26:02 +0530 Subject: [PATCH 0583/1038] fix: Filenames --- cypress/platform/viewer.js | 6 +++--- docs/index.html | 2 +- packages/mermaid/src/docs/index.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index f0426dc096..54029010f2 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -1,4 +1,5 @@ import mermaid2 from '../../packages/mermaid/src/mermaid'; +import mindmap from '../../packages/mermaid-example-diagram/src/detector'; function b64ToUtf8(str) { return decodeURIComponent(escape(window.atob(str))); @@ -9,7 +10,7 @@ function b64ToUtf8(str) { * configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the * page. */ -const contentLoaded = function () { +const contentLoaded = async function () { let pos = document.location.href.indexOf('?graph='); if (pos > 0) { pos = pos + 7; @@ -36,8 +37,7 @@ const contentLoaded = function () { document.getElementsByTagName('body')[0].appendChild(div); } - graphObj.mermaid.lazyLoadedDiagrams = ['/mermaid-mindmap-detector.esm.mjs']; - + await mermaid2.registerExternalDiagrams([mindmap]); mermaid2.initialize(graphObj.mermaid); mermaid2.init(); } diff --git a/docs/index.html b/docs/index.html index e757a8e782..fb98ed9585 100644 --- a/docs/index.html +++ b/docs/index.html @@ -50,7 +50,7 @@
      ``` diff --git a/docs/index.html b/docs/index.html index 70a75548e3..7adf7225ef 100644 --- a/docs/index.html +++ b/docs/index.html @@ -49,8 +49,8 @@
      @@ -144,7 +144,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac
      diff --git a/docs/usage.md b/docs/usage.md index 0c8d103a89..1f22963249 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -58,7 +58,7 @@ Example: ```html ``` @@ -81,7 +81,7 @@ Example: B-->D(fa:fa-spinner);
      diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index f618165a31..e89e933a4c 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -44,6 +44,7 @@ import flatmap from 'unist-util-flatmap'; const MERMAID_MAJOR_VERSION = ( JSON.parse(readFileSync('packages/mermaid/package.json', 'utf8')).version as string ).split('.')[0]; +const CDN_URL = 'https://unpkg.com'; // https://cdn.jsdelivr.net/npm // These paths are from the root of the mono-repo, not from the // mermaid sub-directory @@ -135,6 +136,9 @@ const readSyncedUTF8file = (filename: string): string => { return readFileSync(filename, 'utf8'); }; +const injectPlaceholders = (text: string): string => + text.replace(//g, MERMAID_MAJOR_VERSION).replace(//g, CDN_URL); + /** * Transform a markdown file and write the transformed file to the directory for published * documentation @@ -148,7 +152,8 @@ const readSyncedUTF8file = (filename: string): string => { * @param file {string} name of the file that will be verified */ const transformMarkdown = (file: string) => { - const doc = readSyncedUTF8file(file).replace(//g, MERMAID_MAJOR_VERSION); + const doc = injectPlaceholders(readSyncedUTF8file(file)); + const ast: Root = remark.parse(doc); const out = flatmap(ast, (c: Code) => { if (c.type !== 'code') { @@ -189,10 +194,7 @@ const transformHtml = (filename: string) => { * @returns {string} The contents of the file with the comment inserted */ const insertAutoGeneratedComment = (fileName: string): string => { - const fileContents = readSyncedUTF8file(fileName).replace( - //g, - MERMAID_MAJOR_VERSION - ); + const fileContents = injectPlaceholders(readSyncedUTF8file(fileName)); const jsdom = new JSDOM(fileContents); const htmlDoc = jsdom.window.document; const autoGeneratedComment = jsdom.window.document.createComment(AUTOGENERATED_TEXT); diff --git a/packages/mermaid/src/docs/README.md b/packages/mermaid/src/docs/README.md index 880e40b43d..b0435479f5 100644 --- a/packages/mermaid/src/docs/README.md +++ b/packages/mermaid/src/docs/README.md @@ -191,7 +191,7 @@ To Deploy Mermaid: ```html ``` diff --git a/packages/mermaid/src/docs/index.html b/packages/mermaid/src/docs/index.html index ce4cd2e0e2..81eeafb2a9 100644 --- a/packages/mermaid/src/docs/index.html +++ b/packages/mermaid/src/docs/index.html @@ -49,8 +49,8 @@
      @@ -142,7 +142,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac

    !Eto?G3B=>q-^O$Et-$SiMGOT4 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 IHTd-Z00U@O0RR91 diff --git a/packages/mermaid/src/docs/img/GitHub-Mark-32px.png b/packages/mermaid/src/docs/img/GitHub-Mark-32px.png deleted file mode 100644 index 790fa77108fc14ae3ce25b4bd118f73a7b769632..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0VAKil32_B-|Ns9lE-E&P2!=rI zb4Dv*cqNwv`2{mDh$Jt$^x1IbZ~oc;?m2xl7QBCL?YtQF7Y9v@G?>D$BGcRq<-h?{$nC9uSmAUG|55tx9FK%#izDe3EfPorR)}-I1LFRc@mB@`pMyn4-Z>rF}DTC+dEXzKHHaSX9I-8$)c7?YtutNS#)&{LOIcU=l(3=|X**r*_u zv!bE$f4RZT1M_m9TiDOIS-qcUrV2xl1k2)+J{>nxM0ghPc3*W{vLRAe>-N5v3S9*` zw?t3RbrJT96rMi&Ma%82-)wi;soLE6o_CRde!Sz(zjnWNKXp|&Fh!xmsiRMV?{c7X z6Nlq6wi)sVRRhhubk4O@^zaI}S~{&}3G@8AQzg)kVacV4)GH2bPfNHqMdZ9+(Kt8O zWK+V?IhW_v^6_f_*f2Sk`^LxpwHuCK+IQ~lLA&B_4AM`(HZVoWXuM){<@*qF>DSV$ zmyDiuiLF==*rxUDR^u)E6$=Afo$G4dvmSK3ZV$-+uxjR{+sA#^nZ07rb@KB&&yhL5 zTq!oEu5f0?`g^Y3b>Dv-F%($;;awY#M4b2gW%rX0b%dF3f0OsF;(s-##K*sVoRtlo zAAVeUdf@Xd`Soeu7oBS-zAf1FiTl#N<&{ox_wU);i8|D2Rm&PrQ7cMVR^fbjeZK04 t%aW`7^6VmXT;sY>TkB8&h4 diff --git a/packages/mermaid/src/docs/img/Live-Editor-Usage.png b/packages/mermaid/src/docs/img/Live-Editor-Usage.png deleted file mode 100644 index 04df642dc7435ee41ac0fe8b41704d31f52a5240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18605 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 diff --git a/packages/mermaid/src/docs/img/book-banner-post-release.jpeg b/packages/mermaid/src/docs/img/book-banner-post-release.jpeg deleted file mode 100644 index 005a3282b6b7fa1c126b5336087c2a464b0ef3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40076 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�D 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%0D9<95@@twU+ZiYk;4-&IEwHz; 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≫>|VDJ>=leZGO^Zt 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

    diff --git a/packages/mermaid/src/docs/usage.md b/packages/mermaid/src/docs/usage.md index 00c44c0d9c..be2b94f728 100644 --- a/packages/mermaid/src/docs/usage.md +++ b/packages/mermaid/src/docs/usage.md @@ -58,7 +58,7 @@ Example: ```html ``` @@ -81,7 +81,7 @@ Example: B-->D(fa:fa-spinner);
    From fcd93794cee8be172518000335ad7354099780b0 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Wed, 9 Nov 2022 17:12:36 +0000 Subject: [PATCH 0603/1038] chore(docs): sync generated markdown docs Sync generated markdown docs by running `pnpm --filter mermaid run docs:build` --- docs/config/setup/modules/config.md | 22 +++++++++++----------- docs/config/setup/modules/defaultConfig.md | 4 ++-- docs/config/setup/modules/mermaidAPI.md | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 931e636c4d..7ffd0b2bd2 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -14,7 +14,7 @@ #### Defined in -[config.ts:7](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L7) +[config.ts:7](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L7) ## Functions @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L191) +[config.ts:191](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L191) --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:136](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L136) +[config.ts:136](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L136) --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:96](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L96) +[config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96) --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:223](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L223) +[config.ts:223](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L223) --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L151) +[config.ts:151](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L151) --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L75) +[config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75) --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:113](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L113) +[config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113) --- @@ -232,7 +232,7 @@ The new siteConfig #### Defined in -[config.ts:61](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L61) +[config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61) --- @@ -253,7 +253,7 @@ The new siteConfig #### Defined in -[config.ts:14](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L14) +[config.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L14) --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:79](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/config.ts#L79) +[config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index b6437e652c..aea949fab3 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -14,7 +14,7 @@ #### Defined in -[defaultConfig.ts:1882](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1882) +[defaultConfig.ts:1882](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1882) --- @@ -53,4 +53,4 @@ A description of each option follows below. #### Defined in -[defaultConfig.ts:33](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) +[defaultConfig.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 810f5c7e0a..1ef1853edf 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -80,7 +80,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:546](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L546) +[mermaidAPI.ts:546](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L546) ## Functions @@ -100,7 +100,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:72](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L72) +[mermaidAPI.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L72) --- @@ -120,4 +120,4 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:46](https://github.com/spier/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L46) +[mermaidAPI.ts:46](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L46) From 791dbe01a22940638cb36c2b312b0c39da849110 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 9 Nov 2022 23:48:26 +0530 Subject: [PATCH 0604/1038] fix: `sourceLinkTemplate` in typedoc --- docs/config/setup/modules/config.md | 22 +++++++++++----------- docs/config/setup/modules/defaultConfig.md | 4 ++-- docs/config/setup/modules/mermaidAPI.md | 20 ++++++++++---------- packages/mermaid/typedoc.json | 2 +- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 147d6576d9..7ffd0b2bd2 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -14,7 +14,7 @@ #### Defined in -[config.ts:7](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L7) +[config.ts:7](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L7) ## Functions @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:191](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L191) +[config.ts:191](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L191) --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:136](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L136) +[config.ts:136](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L136) --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:96](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L96) +[config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96) --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:223](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L223) +[config.ts:223](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L223) --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:151](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L151) +[config.ts:151](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L151) --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:75](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L75) +[config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75) --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:113](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L113) +[config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113) --- @@ -232,7 +232,7 @@ The new siteConfig #### Defined in -[config.ts:61](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L61) +[config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61) --- @@ -253,7 +253,7 @@ The new siteConfig #### Defined in -[config.ts:14](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L14) +[config.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L14) --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:79](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/config.ts#L79) +[config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md index f67866cdbe..aea949fab3 100644 --- a/docs/config/setup/modules/defaultConfig.md +++ b/docs/config/setup/modules/defaultConfig.md @@ -14,7 +14,7 @@ #### Defined in -[defaultConfig.ts:1882](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1882) +[defaultConfig.ts:1882](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1882) --- @@ -53,4 +53,4 @@ A description of each option follows below. #### Defined in -[defaultConfig.ts:33](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) +[defaultConfig.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 635165c5fb..c4e512f3f2 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -80,7 +80,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:740](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L740) +[mermaidAPI.ts:740](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L740) ## Functions @@ -111,7 +111,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:283](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L283) +[mermaidAPI.ts:283](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L283) --- @@ -137,7 +137,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:234](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L234) +[mermaidAPI.ts:234](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L234) --- @@ -163,7 +163,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:161](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L161) +[mermaidAPI.ts:161](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L161) --- @@ -186,7 +186,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:211](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L211) +[mermaidAPI.ts:211](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L211) --- @@ -213,7 +213,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:145](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L145) +[mermaidAPI.ts:145](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L145) --- @@ -233,7 +233,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:119](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L119) +[mermaidAPI.ts:119](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L119) --- @@ -253,7 +253,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:90](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L90) +[mermaidAPI.ts:90](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L90) --- @@ -279,7 +279,7 @@ Put the svgCode into an iFrame. Return the iFrame code #### Defined in -[mermaidAPI.ts:262](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L262) +[mermaidAPI.ts:262](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L262) --- @@ -305,4 +305,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:334](https://github.com/weedySeaDragon/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L334) +[mermaidAPI.ts:334](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L334) diff --git a/packages/mermaid/typedoc.json b/packages/mermaid/typedoc.json index 0e3b12b919..971f6d562f 100644 --- a/packages/mermaid/typedoc.json +++ b/packages/mermaid/typedoc.json @@ -2,7 +2,7 @@ "plugin": ["typedoc-plugin-markdown"], "readme": "none", "githubPages": false, - "gitRemote": "origin", + "sourceLinkTemplate": "https://github.com/mermaid-js/mermaid/blob/{gitRevision}/{path}#L{line}", "gitRevision": "master", "out": "src/docs/config/setup", "entryPointStrategy": "expand", From c781545a40860c1bb186ac38465c0b41e28ecedb Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 9 Nov 2022 20:10:31 +0100 Subject: [PATCH 0605/1038] #3778 Adding a hexgon shape --- docs/syntax/mindmap.md | 12 ++++++ packages/mermaid-mindmap/src/mindmap.spec.js | 12 ++++++ packages/mermaid-mindmap/src/mindmapDb.js | 8 ++++ .../mermaid-mindmap/src/parser/mindmap.jison | 8 ++-- packages/mermaid-mindmap/src/styles.js | 4 +- packages/mermaid-mindmap/src/svgDraw.js | 42 +++++++++++++++++++ packages/mermaid/src/docs/syntax/mindmap.md | 7 ++++ 7 files changed, 88 insertions(+), 5 deletions(-) diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 26a1065bef..9a2fb1f533 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -152,6 +152,18 @@ mindmap id)I am a cloud( ``` +### Hexagon + +```mermaid-example +mindmap + id{{I am a hexagon}} +``` + +```mermaid +mindmap + id{{I am a hexagon}} +``` + ### Default ```mermaid-example diff --git a/packages/mermaid-mindmap/src/mindmap.spec.js b/packages/mermaid-mindmap/src/mindmap.spec.js index b9e9abf6ec..e3f018350b 100644 --- a/packages/mermaid-mindmap/src/mindmap.spec.js +++ b/packages/mermaid-mindmap/src/mindmap.spec.js @@ -172,6 +172,18 @@ root expect(mm.children.length).toEqual(0); expect(mm.type).toEqual(mindmap.yy.nodeType.BANG); }); + + it('MMP-12-a mutiple types (hexagon)', function () { + let str = `mindmap + root{{the root}} +`; + + mindmap.parse(str); + const mm = mindmap.yy.getMindmap(); + expect(mm.type).toEqual(mindmap.yy.nodeType.HEXAGON); + expect(mm.descr).toEqual('the root'); + expect(mm.children.length).toEqual(0); + }); }); describe('decorations', function () { it('MMP-13 should be possible to set an icon for the node', function () { diff --git a/packages/mermaid-mindmap/src/mindmapDb.js b/packages/mermaid-mindmap/src/mindmapDb.js index 2ae98c223b..16861cd233 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.js +++ b/packages/mermaid-mindmap/src/mindmapDb.js @@ -42,6 +42,9 @@ export const addNode = (level, id, descr, type) => { case nodeType.RECT: node.padding = 2 * conf.mindmap.padding; break; + case nodeType.HEXAGON: + node.padding = 2 * conf.mindmap.padding; + break; default: node.padding = conf.mindmap.padding; } @@ -79,6 +82,7 @@ export const nodeType = { CIRCLE: 3, CLOUD: 4, BANG: 5, + HEXAGON: 6, }; export const getType = (startStr, endStr) => { @@ -94,6 +98,8 @@ export const getType = (startStr, endStr) => { return nodeType.CLOUD; case '))': return nodeType.BANG; + case '{{': + return nodeType.HEXAGON; default: return nodeType.DEFAULT; } @@ -127,6 +133,8 @@ export const type2Str = (type) => { return 'cloud'; case nodeType.BANG: return 'bang'; + case nodeType.HEXAGON: + return 'hexgon'; default: return 'no-border'; } diff --git a/packages/mermaid-mindmap/src/parser/mindmap.jison b/packages/mermaid-mindmap/src/parser/mindmap.jison index bd008db7f2..a96ee62614 100644 --- a/packages/mermaid-mindmap/src/parser/mindmap.jison +++ b/packages/mermaid-mindmap/src/parser/mindmap.jison @@ -33,11 +33,12 @@ "))" { yy.getLogger().trace('Explosion Bang'); this.begin('NODE');return 'NODE_DSTART'; } ")" { yy.getLogger().trace('Cloud Bang'); this.begin('NODE');return 'NODE_DSTART'; } "((" { this.begin('NODE');return 'NODE_DSTART'; } +"{{" { this.begin('NODE');return 'NODE_DSTART'; } "(" { this.begin('NODE');return 'NODE_DSTART'; } "[" { this.begin('NODE');return 'NODE_DSTART'; } [\s]+ return 'SPACELIST' /* skip all whitespace */ ; // !(-\() return 'NODE_ID'; -[^\(\[\n\-\)]+ return 'NODE_ID'; +[^\(\[\n\-\)\{\}]+ return 'NODE_ID'; <> return 'EOF'; ["] { yy.getLogger().trace('Starting NSTR');this.begin("NSTR");} [^"]+ { yy.getLogger().trace('description:', yytext); return "NODE_DESCR";} @@ -45,11 +46,12 @@ [\)]\) {this.popState();yy.getLogger().trace('node end ))');return "NODE_DEND";} [\)] {this.popState();yy.getLogger().trace('node end )');return "NODE_DEND";} [\]] {this.popState();yy.getLogger().trace('node end ...',yytext);return "NODE_DEND";} +"}}" {this.popState();yy.getLogger().trace('node end ((');return "NODE_DEND";} "(-" {this.popState();yy.getLogger().trace('node end (-');return "NODE_DEND";} "-)" {this.popState();yy.getLogger().trace('node end (-');return "NODE_DEND";} "((" {this.popState();yy.getLogger().trace('node end ((');return "NODE_DEND";} -"(" {this.popState();yy.getLogger().trace('node end ((');return "NODE_DEND";} -[^\)\]\(]+ { yy.getLogger().trace('Long description:', yytext); return 'NODE_DESCR';} +"(" {this.popState();yy.getLogger().trace('node end ((');return "NODE_DEND";} +[^\)\]\(\}]+ { yy.getLogger().trace('Long description:', yytext); return 'NODE_DESCR';} .+(?!\(\() { yy.getLogger().trace('Long description:', yytext); return 'NODE_DESCR';} // [\[] return 'NODE_START'; // .+ return 'TXT' ; diff --git a/packages/mermaid-mindmap/src/styles.js b/packages/mermaid-mindmap/src/styles.js index a409aa4e54..986a04514d 100644 --- a/packages/mermaid-mindmap/src/styles.js +++ b/packages/mermaid-mindmap/src/styles.js @@ -17,7 +17,7 @@ const genSections = (options) => { sections += ` .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${ i - 1 - } path { + } polygon, .section-${i - 1} path { fill: ${options['cScale' + i]}; } .section-${i - 1} text { @@ -55,7 +55,7 @@ const getStyles = (options) => stroke-width: 3; } ${genSections(options)} - .section-root rect, .section-root path, .section-root circle { + .section-root rect, .section-root path, .section-root circle, .section-root polygon { fill: ${options.git0}; } .section-root text { diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid-mindmap/src/svgDraw.js index 1246b1cb91..6a53c438b0 100644 --- a/packages/mermaid-mindmap/src/svgDraw.js +++ b/packages/mermaid-mindmap/src/svgDraw.js @@ -145,6 +145,45 @@ const circleBkg = function (elem, node) { .attr('class', 'node-bkg node-' + db.type2Str(node.type)) .attr('r', node.width / 2); }; + +/** + * + * @param parent + * @param w + * @param h + * @param points + * @param node + */ +function insertPolygonShape(parent, w, h, points, node) { + return parent + .insert('polygon', ':first-child') + .attr( + 'points', + points + .map(function (d) { + return d.x + ',' + d.y; + }) + .join(' ') + ) + .attr('transform', 'translate(' + (node.width - w) / 2 + ', ' + h + ')'); +} + +const hexagonBkg = function (elem, node) { + const h = node.height; + const f = 4; + const m = h / f; + const w = node.width - node.padding + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 }, + ]; + const shapeSvg = insertPolygonShape(elem, w, h, points, node); +}; + const roundedRectBkg = function (elem, node) { elem .append('rect') @@ -253,6 +292,9 @@ export const drawNode = function (elem, node, fullSection, conf) { case db.nodeType.BANG: bangBkg(bkgElem, node, section, conf); break; + case db.nodeType.HEXAGON: + hexagonBkg(bkgElem, node, section, conf); + break; } // Position the node to its coordinate diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md index af7a3df85e..90d75a88ab 100644 --- a/packages/mermaid/src/docs/syntax/mindmap.md +++ b/packages/mermaid/src/docs/syntax/mindmap.md @@ -94,6 +94,13 @@ mindmap id)I am a cloud( ``` +### Hexagon + +```mermaid-example +mindmap + id{{I am a hexagon}} +``` + ### Default ```mermaid-example From a83f88bdf17ad7d999afdc3181c8fe9d96a6dd83 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 10 Nov 2022 13:51:53 +0530 Subject: [PATCH 0606/1038] chore: Merge master to develop --- .gitignore | 3 + .npmrc | 3 +- .vite/build.ts | 31 +- .../other/external-diagrams.spec.js | 13 + .../platform/external-diagrams-mindmap.html | 49 + cypress/platform/knsv2.html | 31 +- cypress/platform/render-after-error.html | 16 +- cypress/platform/rerender.html | 7 +- cypress/platform/viewer.js | 6 +- docs/config/setup/modules/config.md | 18 +- docs/config/setup/modules/defaultConfig.md | 2 +- docs/config/setup/modules/mermaidAPI.md | 8 +- docs/index.html.todo | 179 ++ package.json | 18 +- packages/mermaid-example-diagram/Readme.md | 3 + .../src/diagram-definition.ts | 2 + packages/mermaid-mindmap/package.json | 9 +- packages/mermaid-mindmap/src/detector.ts | 16 +- packages/mermaid/README.md | 363 ++++ packages/mermaid/README.zh-CN.md | 334 ++++ packages/mermaid/package.json | 16 +- packages/mermaid/src/Diagram.ts | 21 +- packages/mermaid/src/__mocks__/mermaidAPI.ts | 1 + packages/mermaid/src/config.ts | 28 +- packages/mermaid/src/config.type.ts | 3 + packages/mermaid/src/defaultConfig.ts | 1 - .../mermaid/src/diagram-api/diagramAPI.ts | 23 +- packages/mermaid/src/diagram-api/types.ts | 16 +- packages/mermaid/src/docs/index.html.todo | 179 ++ packages/mermaid/src/logger.ts | 1 + packages/mermaid/src/mermaid.spec.ts | 82 + packages/mermaid/src/mermaid.ts | 355 +++- packages/mermaid/src/mermaidAPI.ts | 314 +++- packages/mermaid/src/utils.ts | 2 + pnpm-lock.yaml | 1620 +---------------- pnpm-workspace.yaml | 1 + tests/webpack/package.json | 23 + tests/webpack/public/index.html | 11 + tests/webpack/src/index.js | 38 + tests/webpack/webpack.config.js | 10 + 40 files changed, 2133 insertions(+), 1723 deletions(-) create mode 100644 cypress/integration/other/external-diagrams.spec.js create mode 100644 cypress/platform/external-diagrams-mindmap.html create mode 100644 docs/index.html.todo create mode 100644 packages/mermaid-example-diagram/Readme.md create mode 100644 packages/mermaid/README.md create mode 100644 packages/mermaid/README.zh-CN.md create mode 100644 packages/mermaid/src/docs/index.html.todo create mode 100644 tests/webpack/package.json create mode 100644 tests/webpack/public/index.html create mode 100644 tests/webpack/src/index.js create mode 100644 tests/webpack/webpack.config.js diff --git a/.gitignore b/.gitignore index 6e4fe723a2..8cc09354bf 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,6 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo + +knsv*.html +local*.html diff --git a/.npmrc b/.npmrc index f87a044348..4c2f52b3be 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ -auto-install-peers=true \ No newline at end of file +auto-install-peers=true +strict-peer-dependencies=false diff --git a/.vite/build.ts b/.vite/build.ts index 7398d30d5a..ba31c29078 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -6,6 +6,7 @@ import pkg from '../package.json' assert { type: 'json' }; const { dependencies } = pkg; const watch = process.argv.includes('--watch'); +const mermaidOnly = process.argv.includes('--mermaid'); const __dirname = fileURLToPath(new URL('.', import.meta.url)); type OutputOptions = Exclude< @@ -22,23 +23,13 @@ const packageOptions = { 'mermaid-mindmap': { name: 'mermaid-mindmap', packageName: 'mermaid-mindmap', - file: 'diagram-definition.ts', - }, - 'mermaid-mindmap-detector': { - name: 'mermaid-mindmap-detector', - packageName: 'mermaid-mindmap', - file: 'detector.ts', - }, - 'mermaid-example-diagram': { - name: 'mermaid-example-diagram', - packageName: 'mermaid-example-diagram', - file: 'diagram-definition.ts', - }, - 'mermaid-example-diagram-detector': { - name: 'mermaid-example-diagram-detector', - packageName: 'mermaid-example-diagram', file: 'detector.ts', }, + // 'mermaid-example-diagram-detector': { + // name: 'mermaid-example-diagram-detector', + // packageName: 'mermaid-example-diagram', + // file: 'detector.ts', + // }, }; interface BuildOptions { @@ -110,7 +101,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) include: [ 'packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**', - 'packages/mermaid-example-diagram/src/**', + // 'packages/mermaid-example-diagram/src/**', ], }; } @@ -134,9 +125,11 @@ const main = async () => { }; if (watch) { - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' })); + if (!mermaidOnly) { + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); + // build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + } } else { void main(); } diff --git a/cypress/integration/other/external-diagrams.spec.js b/cypress/integration/other/external-diagrams.spec.js new file mode 100644 index 0000000000..3a6c37e881 --- /dev/null +++ b/cypress/integration/other/external-diagrams.spec.js @@ -0,0 +1,13 @@ +describe('mermaid', () => { + describe('registerDiagram', () => { + it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => { + const url = 'http://localhost:9000/external-diagrams-mindmap.html'; + cy.visit(url); + + cy.get('svg', { + // may be a bit slower than normal, since vite might need to re-compile mermaid/mermaid-mindmap/mermaid-example-diagram + timeout: 10000, + }).matchImageSnapshot(); + }); + }); +}); diff --git a/cypress/platform/external-diagrams-mindmap.html b/cypress/platform/external-diagrams-mindmap.html new file mode 100644 index 0000000000..e5eded4ba0 --- /dev/null +++ b/cypress/platform/external-diagrams-mindmap.html @@ -0,0 +1,49 @@ + + +

    Should correctly load a third-party diagram using registerDiagram

    +
    +mindmap
    +  root
    +    A
    +    B
    +    C
    +    D
    +    E
    +    A2
    +    B2
    +    C2
    +    D2
    +    E2
    +    child1((Circle))
    +        grandchild 1
    +        grandchild 2
    +    child2(Round rectangle)
    +        grandchild 3
    +        grandchild 4
    +    child3[Square]
    +        grandchild 5
    +        ::icon(mdi mdi-fire)
    +        gc6((grand
    child 6)) + ::icon(mdi mdi-fire) + gc7((grand
    grand
    child 8)) +
    + + + + + + + + + + diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index f30f993fac..084b8151e3 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -63,24 +63,19 @@
     mindmap
    -  root((mindmap))
    -    Origins
    -      Long history
    -      ::icon(fa fa-book)
    -      Popularisation
    -      ::icon(fa fa-book)
    -        British popular psychology author Tony Buzan
    -    Research
    -      ::icon(fa fa-book)
    -      On effectivness
    and features - On Automatic creation - Uses - Creative techniques - Strategic planning - Argument mapping - Tools - Pen and paper - Mermaid + root + child1((Circle)) + grandchild 1 + grandchild 2 + child2(Round rectangle) + grandchild 3 + grandchild 4 + child3[Square] + grandchild 5 + ::icon(mdi mdi-fire) + gc6((grand
    child 6)) + ::icon(mdi mdi-fire) + gc7((grand
    grand
    child 8))
           gantt
    diff --git a/cypress/platform/render-after-error.html b/cypress/platform/render-after-error.html
    index 059f793454..f5165e0ee5 100644
    --- a/cypress/platform/render-after-error.html
    +++ b/cypress/platform/render-after-error.html
    @@ -14,16 +14,14 @@
           mermaid.init({ startOnLoad: false });
     
           mermaid.mermaidAPI.initialize({ securityLevel: 'strict' });
    -      (async () => {
    -        try {
    -          console.log('rendering');
    -          await mermaid.mermaidAPI.render('graphDiv', `>`);
    -        } catch (e) {}
    +      try {
    +        console.log('rendering');
    +        mermaid.mermaidAPI.render('graphDiv', `>`);
    +      } catch (e) {}
     
    -        await mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => {
    -          document.getElementById('graph').innerHTML = html;
    -        });
    -      })();
    +      mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => {
    +        document.getElementById('graph').innerHTML = html;
    +      });
         
       
     
    diff --git a/cypress/platform/rerender.html b/cypress/platform/rerender.html
    index 61c6891f76..ab1b8e009d 100644
    --- a/cypress/platform/rerender.html
    +++ b/cypress/platform/rerender.html
    @@ -19,10 +19,9 @@
           function rerender(text) {
             const graphText = `graph TD
             A[${text}] -->|Get money| B(Go shopping)`;
    -        mermaid.mermaidAPI.render('id', graphText).then((svg) => {
    -          console.log('\x1b[35m%s\x1b[0m', '>> graph', svg);
    -          document.getElementById('graph').innerHTML = svg;
    -        });
    +        const graph = mermaid.mermaidAPI.render('id', graphText);
    +        console.log('\x1b[35m%s\x1b[0m', '>> graph', graph);
    +        document.getElementById('graph').innerHTML = graph;
           }
         
         
    diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js
    index 1333d7ec06..1f02c578b2 100644
    --- a/cypress/platform/viewer.js
    +++ b/cypress/platform/viewer.js
    @@ -1,4 +1,5 @@
     import mermaid2 from '../../packages/mermaid/src/mermaid';
    +import mindmap from '../../packages/mermaid-mindmap/src/detector';
     
     function b64ToUtf8(str) {
       return decodeURIComponent(escape(window.atob(str)));
    @@ -9,7 +10,7 @@ function b64ToUtf8(str) {
      * configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the
      * page.
      */
    -const contentLoaded = function () {
    +const contentLoaded = async function () {
       let pos = document.location.href.indexOf('?graph=');
       if (pos > 0) {
         pos = pos + 7;
    @@ -36,8 +37,7 @@ const contentLoaded = function () {
           document.getElementsByTagName('body')[0].appendChild(div);
         }
     
    -    graphObj.mermaid.lazyLoadedDiagrams = ['/mermaid-mindmap-detector.esm.mjs'];
    -
    +    await mermaid2.registerExternalDiagrams([mindmap]);
         mermaid2.initialize(graphObj.mermaid);
         mermaid2.init();
       }
    diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md
    index 7ffd0b2bd2..993a7627b2 100644
    --- a/docs/config/setup/modules/config.md
    +++ b/docs/config/setup/modules/config.md
    @@ -36,7 +36,7 @@ Pushes in a directive to the configuration
     
     #### Defined in
     
    -[config.ts:191](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L191)
    +[config.ts:193](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L193)
     
     ---
     
    @@ -60,7 +60,7 @@ The currentConfig
     
     #### Defined in
     
    -[config.ts:136](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L136)
    +[config.ts:138](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L138)
     
     ---
     
    @@ -84,7 +84,7 @@ The siteConfig
     
     #### Defined in
     
    -[config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96)
    +[config.ts:97](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L97)
     
     ---
     
    @@ -118,7 +118,7 @@ The siteConfig
     
     #### Defined in
     
    -[config.ts:223](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L223)
    +[config.ts:225](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L225)
     
     ---
     
    @@ -147,7 +147,7 @@ options in-place
     
     #### Defined in
     
    -[config.ts:151](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L151)
    +[config.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L153)
     
     ---
     
    @@ -167,7 +167,7 @@ options in-place
     
     #### Defined in
     
    -[config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75)
    +[config.ts:76](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L76)
     
     ---
     
    @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf
     
     #### Defined in
     
    -[config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113)
    +[config.ts:114](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L114)
     
     ---
     
    @@ -232,7 +232,7 @@ The new siteConfig
     
     #### Defined in
     
    -[config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61)
    +[config.ts:62](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L62)
     
     ---
     
    @@ -273,4 +273,4 @@ The new siteConfig
     
     #### Defined in
     
    -[config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79)
    +[config.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L80)
    diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md
    index aea949fab3..c7ad1402f9 100644
    --- a/docs/config/setup/modules/defaultConfig.md
    +++ b/docs/config/setup/modules/defaultConfig.md
    @@ -14,7 +14,7 @@
     
     #### Defined in
     
    -[defaultConfig.ts:1882](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1882)
    +[defaultConfig.ts:1881](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1881)
     
     ---
     
    diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md
    index 1ef1853edf..9e18154ac4 100644
    --- a/docs/config/setup/modules/mermaidAPI.md
    +++ b/docs/config/setup/modules/mermaidAPI.md
    @@ -16,7 +16,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi)
     
     ### mermaidAPI
     
    -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `Promise`<`void`> ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`void`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }>
    +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }>
     
     ## mermaidAPI configuration defaults
     
    @@ -80,7 +80,7 @@ mermaid.initialize(config);
     
     #### Defined in
     
    -[mermaidAPI.ts:546](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L546)
    +[mermaidAPI.ts:835](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L835)
     
     ## Functions
     
    @@ -100,7 +100,7 @@ mermaid.initialize(config);
     
     #### Defined in
     
    -[mermaidAPI.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L72)
    +[mermaidAPI.ts:83](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L83)
     
     ---
     
    @@ -120,4 +120,4 @@ mermaid.initialize(config);
     
     #### Defined in
     
    -[mermaidAPI.ts:46](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L46)
    +[mermaidAPI.ts:57](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L57)
    diff --git a/docs/index.html.todo b/docs/index.html.todo
    new file mode 100644
    index 0000000000..ce4cd2e0e2
    --- /dev/null
    +++ b/docs/index.html.todo
    @@ -0,0 +1,179 @@
    +
    +
    +  
    +    
    +    
    +      mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams,
    +      gantt charts and git graphs.
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +
    +    
    +  
    +
    +  
    +    
    + + + + + + + + + diff --git a/package.json b/package.json index 7dd7ee736f..15f62c4ab9 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,10 @@ { "name": "mermaid-monorepo", "private": true, - "version": "9.2.0-rc2", + "version": "9.2.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", - "main": "dist/mermaid.core.mjs", - "module": "dist/mermaid.core.mjs", - "types": "dist/mermaid.d.ts", "type": "module", "packageManager": "pnpm@7.14.2", - "exports": { - ".": { - "require": "./dist/mermaid.min.js", - "import": "./dist/mermaid.core.mjs", - "types": "./dist/mermaid.d.ts" - }, - "./*": "./*" - }, "keywords": [ "diagram", "markdown", @@ -27,7 +16,7 @@ ], "scripts": { "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts", - "build:types": "concurrently \"tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly\" \"tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly\"", + "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", @@ -140,9 +129,6 @@ "resolutions": { "d3": "7.6.1" }, - "files": [ - "dist" - ], "sideEffects": [ "**/*.css", "**/*.scss" diff --git a/packages/mermaid-example-diagram/Readme.md b/packages/mermaid-example-diagram/Readme.md new file mode 100644 index 0000000000..38056e3c7f --- /dev/null +++ b/packages/mermaid-example-diagram/Readme.md @@ -0,0 +1,3 @@ +### Do not refer this package. It is not ready. + +### Refer mermaid-mindmap instead. diff --git a/packages/mermaid-example-diagram/src/diagram-definition.ts b/packages/mermaid-example-diagram/src/diagram-definition.ts index c31b3d6e71..95f7cc11d2 100644 --- a/packages/mermaid-example-diagram/src/diagram-definition.ts +++ b/packages/mermaid-example-diagram/src/diagram-definition.ts @@ -12,3 +12,5 @@ export const diagram = { styles, injectUtils, }; + +export { detector, id } from './detector'; diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 601f5c8cec..a5dc3fd11a 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,14 +1,14 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.0-rc2", + "version": "9.2.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", - "main": "dist/mermaid-mindmap.core.mjs", "module": "dist/mermaid-mindmap.core.mjs", + "types": "dist/detector.d.ts", "type": "module", "exports": { ".": { - "require": "./dist/mermaid-mindmap.min.js", - "import": "./dist/mermaid-mindmap.core.mjs" + "import": "./dist/mermaid-mindmap.core.mjs", + "types": "./dist/detector.d.ts" }, "./*": "./*" }, @@ -58,6 +58,7 @@ }, "devDependencies": { "concurrently": "7.5.0", + "mermaid": "workspace:*", "rimraf": "3.0.2" }, "resolutions": { diff --git a/packages/mermaid-mindmap/src/detector.ts b/packages/mermaid-mindmap/src/detector.ts index af7002b3c5..da3caf51eb 100644 --- a/packages/mermaid-mindmap/src/detector.ts +++ b/packages/mermaid-mindmap/src/detector.ts @@ -1,10 +1,20 @@ -export const id = 'mindmap'; +import type { ExternalDiagramDefinition } from 'mermaid'; -export const detector = (txt: string) => { +const id = 'mindmap'; + +const detector = (txt: string) => { return txt.match(/^\s*mindmap/) !== null; }; -export const loadDiagram = async () => { +const loader = async () => { const { diagram } = await import('./diagram-definition'); return { id, diagram }; }; + +const plugin: ExternalDiagramDefinition = { + id, + detector, + loader, +}; + +export default plugin; diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md new file mode 100644 index 0000000000..90ae1ad4cd --- /dev/null +++ b/packages/mermaid/README.md @@ -0,0 +1,363 @@ +# mermaid + +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) + +# Whoa, what's going on here? + +We are transforming the Mermaid repository to a so called mono-repo. This is a part of the effort to decouple the diagrams from the core of mermaid. This will: + +- Make it possible to select which diagrams to include on your site +- Open up for lazy loading +- Make it possible to add diagrams from outside of the Mermaid repository +- Separate the release flow between different diagrams and the Mermaid core + +As such be aware of some changes.. + +# We use pnpm now + +# The source code has moved + +It is now located in the src folder for each respective package located as subfolders in packages. + +English | [简体中文](./README.zh-CN.md) + + + +:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category "The most exciting use of technology"!!!** + +**Thanks to all involved, people committing pull requests, people answering questions! 🙏** + +
    Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! + +## About + + + +Mermaid is a JavaScript-based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. + +> Doc-Rot is a Catch-22 that Mermaid helps to solve. + +Diagramming and documentation costs precious developer time and gets outdated quickly. +But not having diagrams or docs ruins productivity and hurts organizational learning.
    +Mermaid addresses this problem by enabling users to create easily modifiable diagrams. It can also be made part of production scripts (and other pieces of code).
    +
    + +Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    +[Tutorials](./docs/Tutorials.md) has video tutorials. +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md). + +You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md). + +For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md), [Usage](./docs/usage.md) and [Tutorials](./docs/Tutorials.md). + +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) + +In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. + + + + + + + +## Examples + +**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).** + + + +### Flowchart [docs - live editor] + +``` +flowchart LR + +A[Hard] -->|Text| B(Round) +B --> C{Decision} +C -->|One| D[Result 1] +C -->|Two| E[Result 2] +``` + +```mermaid +flowchart LR + +A[Hard] -->|Text| B(Round) +B --> C{Decision} +C -->|One| D[Result 1] +C -->|Two| E[Result 2] +``` + +### Sequence diagram [docs - live editor] + +``` +sequenceDiagram +Alice->>John: Hello John, how are you? +loop Healthcheck + John->>John: Fight against hypochondria +end +Note right of John: Rational thoughts! +John-->>Alice: Great! +John->>Bob: How about you? +Bob-->>John: Jolly good! +``` + +```mermaid +sequenceDiagram +Alice->>John: Hello John, how are you? +loop Healthcheck + John->>John: Fight against hypochondria +end +Note right of John: Rational thoughts! +John-->>Alice: Great! +John->>Bob: How about you? +Bob-->>John: Jolly good! +``` + +### Gantt chart [docs - live editor] + +``` +gantt + section Section + Completed :done, des1, 2014-01-06,2014-01-08 + Active :active, des2, 2014-01-07, 3d + Parallel 1 : des3, after des1, 1d + Parallel 2 : des4, after des1, 1d + Parallel 3 : des5, after des3, 1d + Parallel 4 : des6, after des4, 1d +``` + +```mermaid +gantt + section Section + Completed :done, des1, 2014-01-06,2014-01-08 + Active :active, des2, 2014-01-07, 3d + Parallel 1 : des3, after des1, 1d + Parallel 2 : des4, after des1, 1d + Parallel 3 : des5, after des3, 1d + Parallel 4 : des6, after des4, 1d +``` + +### Class diagram [docs - live editor] + +``` +classDiagram +Class01 <|-- AveryLongClass : Cool +<> Class01 +Class09 --> C2 : Where am I? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +class Class10 { + <> + int id + size() +} +``` + +```mermaid +classDiagram +Class01 <|-- AveryLongClass : Cool +<> Class01 +Class09 --> C2 : Where am I? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +class Class10 { + <> + int id + size() +} +``` + +### State diagram [docs - live editor] + +``` +stateDiagram-v2 +[*] --> Still +Still --> [*] +Still --> Moving +Moving --> Still +Moving --> Crash +Crash --> [*] +``` + +```mermaid +stateDiagram-v2 +[*] --> Still +Still --> [*] +Still --> Moving +Moving --> Still +Moving --> Crash +Crash --> [*] +``` + +### Pie chart [docs - live editor] + +``` +pie +"Dogs" : 386 +"Cats" : 85.9 +"Rats" : 15 +``` + +```mermaid +pie +"Dogs" : 386 +"Cats" : 85.9 +"Rats" : 15 +``` + +### Git graph [experimental - live editor] + +### User Journey diagram [docs - live editor] + +``` + journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 3: Me +``` + +```mermaid + journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 3: Me +``` + +### C4 diagram [docs] + +``` +C4Context +title System Context diagram for Internet Banking System + +Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") +Person(customerB, "Banking Customer B") +Person_Ext(customerC, "Banking Customer C") +System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + +Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") + +Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } +} + +BiRel(customerA, SystemAA, "Uses") +BiRel(SystemAA, SystemE, "Uses") +Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") +Rel(SystemC, customerA, "Sends e-mails to") +``` + +```mermaid +C4Context +title System Context diagram for Internet Banking System + +Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") +Person(customerB, "Banking Customer B") +Person_Ext(customerC, "Banking Customer C") +System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + +Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") + +Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } +} + +BiRel(customerA, SystemAA, "Uses") +BiRel(SystemAA, SystemE, "Uses") +Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") +Rel(SystemC, customerA, "Sends e-mails to") +``` + +## Release + +For those who have the permission to do so: + +Update version number in `package.json`. + +```sh +npm publish +``` + +The above command generates files into the `dist` folder and publishes them to npmjs.org. + +## Related projects + +- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) +- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) +- [HTTP Server](https://github.com/TomWright/mermaid-server) + +## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) + +Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out. + +Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md) + +## Security and safe diagrams + +For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. + +As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security. + +_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._ + +## Reporting vulnerabilities + +To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. + +## Appreciation + +A quick note from Knut Sveidqvist: + +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> +> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ + +--- + +_Mermaid was created by Knut Sveidqvist for easier documentation._ diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md new file mode 100644 index 0000000000..fcaa1f5234 --- /dev/null +++ b/packages/mermaid/README.zh-CN.md @@ -0,0 +1,334 @@ +# mermaid + +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) + +[English](./README.md) | 简体中文 + + + +:trophy: **Mermaid 被提名并获得了 [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) 的 "The most exciting use of technology" 奖项!!!** + +**感谢所有参与进来提交 PR,解答疑问的人们! 🙏** + +Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! + +## 关于 Mermaid + + + +Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。 + +> Doc-Rot 是 Mermaid 致力于解决的一个难题。 + +绘图和编写文档花费了开发者宝贵的开发时间,而且随着业务的变更,它很快就会过期。 但是如果缺少了图表或文档,对于生产力和团队新人的业务学习都会产生巨大的阻碍。
    +Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。
    +
    +Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。
    +你可以访问 [教程](./docs/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 + +如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/n00b-overview.md), [用法](./docs/usage.md) 和 [教程](./docs/Tutorials.md). + +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) + + + +## 示例 + +**下面是一些可以使用 Mermaid 创建的图表示例。点击 [语法](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference) 查看详情。** + + + + +### 流程图 [文档 - live editor] + +``` +flowchart LR +A[Hard] -->|Text| B(Round) +B --> C{Decision} +C -->|One| D[Result 1] +C -->|Two| E[Result 2] +``` + +```mermaid +flowchart LR +A[Hard] -->|Text| B(Round) +B --> C{Decision} +C -->|One| D[Result 1] +C -->|Two| E[Result 2] +``` + +### 时序图 [文档 - live editor] + +``` +sequenceDiagram +Alice->>John: Hello John, how are you? +loop Healthcheck + John->>John: Fight against hypochondria +end +Note right of John: Rational thoughts! +John-->>Alice: Great! +John->>Bob: How about you? +Bob-->>John: Jolly good! +``` + +```mermaid +sequenceDiagram +Alice->>John: Hello John, how are you? +loop Healthcheck + John->>John: Fight against hypochondria +end +Note right of John: Rational thoughts! +John-->>Alice: Great! +John->>Bob: How about you? +Bob-->>John: Jolly good! +``` + +### 甘特图 [文档 - live editor] + +``` +gantt + section Section + Completed :done, des1, 2014-01-06,2014-01-08 + Active :active, des2, 2014-01-07, 3d + Parallel 1 : des3, after des1, 1d + Parallel 2 : des4, after des1, 1d + Parallel 3 : des5, after des3, 1d + Parallel 4 : des6, after des4, 1d +``` + +```mermaid +gantt + section Section + Completed :done, des1, 2014-01-06,2014-01-08 + Active :active, des2, 2014-01-07, 3d + Parallel 1 : des3, after des1, 1d + Parallel 2 : des4, after des1, 1d + Parallel 3 : des5, after des3, 1d + Parallel 4 : des6, after des4, 1d +``` + +### 类图 [文档 - live editor] + +``` +classDiagram +Class01 <|-- AveryLongClass : Cool +<> Class01 +Class09 --> C2 : Where am I? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +class Class10 { + <> + int id + size() +} +``` + +```mermaid +classDiagram +Class01 <|-- AveryLongClass : Cool +<> Class01 +Class09 --> C2 : Where am I? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +class Class10 { + <> + int id + size() +} +``` + +### 状态图 [[docs - live editor] + +``` +stateDiagram-v2 +[*] --> Still +Still --> [*] +Still --> Moving +Moving --> Still +Moving --> Crash +Crash --> [*] +``` + +```mermaid +stateDiagram-v2 +[*] --> Still +Still --> [*] +Still --> Moving +Moving --> Still +Moving --> Crash +Crash --> [*] +``` + +### 饼图 [文档 - live editor] + +``` +pie +"Dogs" : 386 +"Cats" : 85 +"Rats" : 15 +``` + +```mermaid +pie +"Dogs" : 386 +"Cats" : 85 +"Rats" : 15 +``` + +### Git 图 [实验特性 - live editor] + +### 用户体验旅程图 [文档 - live editor] + +``` + journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 3: Me +``` + +```mermaid + journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 3: Me +``` + +### C4 图 [文档] + +``` +C4Context +title System Context diagram for Internet Banking System + +Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") +Person(customerB, "Banking Customer B") +Person_Ext(customerC, "Banking Customer C") +System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + +Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") + +Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } +} + +BiRel(customerA, SystemAA, "Uses") +BiRel(SystemAA, SystemE, "Uses") +Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") +Rel(SystemC, customerA, "Sends e-mails to") +``` + +```mermaid +C4Context +title System Context diagram for Internet Banking System + +Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") +Person(customerB, "Banking Customer B") +Person_Ext(customerC, "Banking Customer C") +System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + +Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") + +Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } +} + +BiRel(customerA, SystemAA, "Uses") +BiRel(SystemAA, SystemE, "Uses") +Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") +Rel(SystemC, customerA, "Sends e-mails to") +``` + +## 发布 + +对于有权限的同学来说,你可以通过以下步骤来完成发布操作: + +更新 `package.json` 中的版本号,然后执行如下命令: + +```sh +npm publish +``` + +以上的命令会将文件打包到 `dist` 目录并发布至 npmjs.org. + +## 相关项目 + +- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) +- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) +- [HTTP Server](https://github.com/TomWright/mermaid-server) + +## 贡献者 [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) + +Mermaid 是一个不断发展中的社区,并且还在接收新的贡献者。有很多不同的方式可以参与进来,而且我们还在寻找额外的帮助。如果你想知道如何开始贡献,请查看 [这个 issue](https://github.com/mermaid-js/mermaid/issues/866)。 + +关于如何贡献的详细信息可以在 [贡献指南](CONTRIBUTING.md) 中找到。 + +## 安全 + +对于公开网站来说,从互联网上的用户处检索文本、存储供后续在浏览器中展示的内容可能是不安全的,理由是用户的内容可能嵌入一些数据加载完成之后就会运行的恶意脚本,这些对于 Mermaid 来说毫无疑问是一个风险,尤其是 mermaid 图表还包含了许多在 html 中使用的字符,这意味着我们难以使用常规的手段来过滤不安全代码,因为这些常规手段会造成图表损坏。我们仍然在努力对获取到的代码进行安全过滤并不断完善我们的程序,但很难保证没有漏洞。 + +作为拥有外部用户的网站的额外安全级别,我们很高兴推出一个新的安全级别,其中的图表在沙盒 iframe 中渲染,防止代码中的 javascript 被执行,这是在安全性方面迈出的一大步。 + +_很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在可能的恶意代码被阻止时,也会损失部分交互能力_。 + +## 报告漏洞 + +如果想要报告漏洞,请发送邮件到 security@mermaid.live, 并附上问题的描述、复现问题的步骤、受影响的版本,以及解决问题的方案(如果有的话)。 + +## 鸣谢 + +来自 Knut Sveidqvist: + +> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库! _ >_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ >_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ +> +> _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ + +--- + +_Mermaid 是由 Knut Sveidqvist 创建,它为了更简单的文档编写而生。_ diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 24148285c2..7da82d73c7 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,11 +1,11 @@ { "name": "mermaid", - "version": "9.2.0-rc2", + "version": "9.2.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", - "main": "./dist/mermaid.core.mjs", + "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", "types": "./dist/mermaid.d.ts", - "type": "module", + "type": "commonjs", "exports": { ".": { "require": "./dist/mermaid.min.js", @@ -76,7 +76,8 @@ "lodash": "^4.17.21", "moment-mini": "^2.24.0", "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.2" + "stylis": "^4.1.2", + "uuid": "^9.0.0" }, "devDependencies": { "@applitools/eyes-cypress": "3.27.6", @@ -91,6 +92,7 @@ "@types/micromatch": "4.0.2", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", + "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "5.42.0", "@typescript-eslint/parser": "5.42.0", "chokidar": "3.5.3", @@ -98,7 +100,6 @@ "coveralls": "3.1.1", "cypress": "10.11.0", "cypress-image-snapshot": "4.0.1", - "documentation": "13.2.5", "esbuild": "0.15.13", "eslint": "8.27.0", "eslint-config-prettier": "8.5.0", @@ -135,10 +136,11 @@ "d3": "^7.0.0" }, "files": [ - "dist" + "dist", + "README.md" ], "sideEffects": [ "**/*.css", "**/*.scss" ] -} +} \ No newline at end of file diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index f0adf33a4f..798adf5012 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -83,27 +83,30 @@ export class Diagram { } } -export const getDiagramFromText = async ( +export const getDiagramFromText = ( txt: string, parseError?: ParseErrorFunction -): Promise => { +): Diagram | Promise => { const type = detectType(txt, configApi.getConfig()); try { // Trying to find the diagram getDiagram(type); + return new Diagram(txt, parseError); } catch (error) { const loader = getDiagramLoader(type); if (!loader) { throw new Error(`Diagram ${type} not found.`); } - // Diagram not available, loading it - const { diagram } = await loader(); - registerDiagram(type, diagram, undefined, diagram.injectUtils); - // new diagram will try getDiagram again and if fails then it is a valid throw + // TODO: Uncomment for v10 + // // Diagram not available, loading it + // const { diagram } = await loader(); + // registerDiagram(type, diagram, undefined, diagram.injectUtils); + // // new diagram will try getDiagram again and if fails then it is a valid throw + return loader().then(({ diagram }) => { + registerDiagram(type, diagram, undefined); + return new Diagram(txt, parseError); + }); } - // If either of the above worked, we have the diagram - // logic and can continue - return new Diagram(txt, parseError); }; export default Diagram; diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 50018bcadf..12c1652bcf 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -21,6 +21,7 @@ function parse(text: string, parseError?: ParseErrorFunction): boolean { // original version cannot be modified since it was frozen with `Object.freeze()` export const mermaidAPI = { render: vi.fn(), + renderAsync: vi.fn(), parse, parseDirective: vi.fn(), initialize: vi.fn(), diff --git a/packages/mermaid/src/config.ts b/packages/mermaid/src/config.ts index 884a9931b0..3ff946af23 100644 --- a/packages/mermaid/src/config.ts +++ b/packages/mermaid/src/config.ts @@ -40,7 +40,8 @@ export const updateCurrentConfig = (siteCfg: MermaidConfig, _directives: any[]) } currentConfig = cfg; - return cfg; + checkConfig(currentConfig); + return currentConfig; }; /** @@ -68,7 +69,7 @@ export const setSiteConfig = (conf: MermaidConfig): MermaidConfig => { siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables); } - currentConfig = updateCurrentConfig(siteConfig, directives); + updateCurrentConfig(siteConfig, directives); return siteConfig; }; @@ -117,6 +118,7 @@ export const setConfig = (conf: MermaidConfig): MermaidConfig => { // conf[key] = manipulator ? manipulator(conf[key]) : conf[key]; // }); + checkConfig(conf); assignWithDepth(currentConfig, conf); return getConfig(); @@ -225,3 +227,25 @@ export const reset = (config = siteConfig): void => { directives = []; updateCurrentConfig(config, directives); }; + +enum ConfigWarning { + 'LAZY_LOAD_DEPRECATED' = 'The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.', +} +type ConfigWarningStrings = keyof typeof ConfigWarning; +const issuedWarnings: { [key in ConfigWarningStrings]?: boolean } = {}; +const issueWarning = (warning: ConfigWarningStrings) => { + if (issuedWarnings[warning]) { + return; + } + log.warn(ConfigWarning[warning]); + issuedWarnings[warning] = true; +}; + +const checkConfig = (config: MermaidConfig) => { + if (!config) { + return; + } + if (config.lazyLoadedDiagrams || config.loadExternalDiagramsAtStartup) { + issueWarning('LAZY_LOAD_DEPRECATED'); + } +}; diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts index 540fc67608..cbcd2f661a 100644 --- a/packages/mermaid/src/config.type.ts +++ b/packages/mermaid/src/config.type.ts @@ -3,7 +3,10 @@ import DOMPurify from 'dompurify'; export interface MermaidConfig { + /** @deprecated use mermaid.registerLazyDiagrams instead */ lazyLoadedDiagrams?: string[]; + /** @deprecated use mermaid.registerLazyDiagrams instead */ + loadExternalDiagramsAtStartup?: boolean; theme?: string; themeVariables?: any; themeCSS?: string; diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 5a7f6c0718..2ddae580ca 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -131,7 +131,6 @@ const config: Partial = { * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] */ secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'], - lazyLoadedDiagrams: [], /** * This option controls if the generated ids of nodes in the SVG are generated randomly or based * on a seed. If set to false, the IDs are generated based on the current date and thus are not diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 50efd76de7..748cc5f962 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -22,17 +22,19 @@ export interface Detectors { [key: string]: DiagramDetector; } +/** + * Registers the given diagram with Mermaid. + * + * Can be used for third-party custom diagrams. + * + * @param id - A unique ID for the given diagram. + * @param diagram - The diagram definition. + * @param detector - Function that returns `true` if a given mermaid text is this diagram definition. + */ export const registerDiagram = ( id: string, diagram: DiagramDefinition, - detector?: DiagramDetector, - callback?: ( - _log: any, - _setLogLevel: any, - _getConfig: any, - _sanitizeText: any, - _setupGraphViewbox: any - ) => void + detector?: DiagramDetector ) => { if (diagrams[id]) { throw new Error(`Diagram ${id} already registered.`); @@ -42,8 +44,9 @@ export const registerDiagram = ( addDetector(id, detector); } addStylesForDiagram(id, diagram.styles); - if (typeof callback !== 'undefined') { - callback(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); + + if (diagram.injectUtils) { + diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); } }; diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts index 30ff259696..d45eac6aa0 100644 --- a/packages/mermaid/src/diagram-api/types.ts +++ b/packages/mermaid/src/diagram-api/types.ts @@ -14,7 +14,13 @@ export interface DiagramDefinition { parser: any; styles: any; init?: (config: MermaidConfig) => void; - injectUtils?: (utils: InjectUtils) => void; + injectUtils?: ( + _log: InjectUtils['_log'], + _setLogLevel: InjectUtils['_setLogLevel'], + _getConfig: InjectUtils['_getConfig'], + _sanitizeText: InjectUtils['_sanitizeText'], + _setupGraphViewbox: InjectUtils['_setupGraphViewbox'] + ) => void; } export interface DetectorRecord { @@ -22,5 +28,11 @@ export interface DetectorRecord { loader?: DiagramLoader; } +export interface ExternalDiagramDefinition { + id: string; + detector: DiagramDetector; + loader: DiagramLoader; +} + export type DiagramDetector = (text: string, config?: MermaidConfig) => boolean; -export type DiagramLoader = (() => Promise<{ id: string; diagram: DiagramDefinition }>) | null; +export type DiagramLoader = () => Promise<{ id: string; diagram: DiagramDefinition }>; diff --git a/packages/mermaid/src/docs/index.html.todo b/packages/mermaid/src/docs/index.html.todo new file mode 100644 index 0000000000..ce4cd2e0e2 --- /dev/null +++ b/packages/mermaid/src/docs/index.html.todo @@ -0,0 +1,179 @@ + + + + + + mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, + gantt charts and git graphs. + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index e38bf93fe7..b1c035e225 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -45,6 +45,7 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin log.warn = () => {}; log.error = () => {}; log.fatal = () => {}; + if (numericLevel <= LEVELS.fatal) { log.fatal = console.error ? console.error.bind(console, format('FATAL'), 'color: orange') diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index 8cf180ae79..aa797af0e5 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -54,6 +54,88 @@ describe('when using mermaid and ', function () { expect(mermaidAPI.render).toHaveBeenCalled(); }); }); + describe('when using #registerExternalDiagrams', function () { + it('should throw error (but still render) if registerExternalDiagrams fails', async () => { + const node = document.createElement('div'); + node.appendChild(document.createTextNode('graph TD;\na;')); + + await expect( + mermaid.registerExternalDiagrams( + [ + { + id: 'dummy', + detector: (text) => /dummy/.test(text), + loader: () => Promise.reject('error'), + }, + ], + { lazyLoad: false } + ) + ).rejects.toThrow('Failed to load 1 external diagrams'); + + expect(() => mermaid.initThrowsErrorsAsync(undefined, node)).not.toThrow(); + // should still render, even if lazyLoadedDiagrams fails + expect(mermaidAPI.renderAsync).toHaveBeenCalled(); + }); + + it('should defer diagram load based on parameter', async () => { + let loaded = false; + const dummyDiagram = { + db: {}, + renderer: () => { + // do nothing + }, + parser: () => { + // do nothing + }, + styles: () => { + // do nothing + }, + }; + await expect( + mermaid.registerExternalDiagrams( + [ + { + id: 'dummy', + detector: (text) => /dummy/.test(text), + loader: () => { + loaded = true; + return Promise.resolve({ + id: 'dummy', + diagram: dummyDiagram, + }); + }, + }, + ], + { lazyLoad: true } + ) + ).resolves.toBe(undefined); + expect(loaded).toBe(false); + await expect( + mermaid.registerExternalDiagrams( + [ + { + id: 'dummy2', + detector: (text) => /dummy2/.test(text), + loader: () => { + loaded = true; + return Promise.resolve({ + id: 'dummy2', + diagram: dummyDiagram, + }); + }, + }, + ], + { lazyLoad: false } + ) + ).resolves.toBe(undefined); + expect(loaded).toBe(true); + }); + + afterEach(() => { + // we modify mermaid config in some tests, so we need to make sure to reset them + mermaidAPI.reset(); + }); + }); describe('checking validity of input ', function () { it('should throw for an invalid definition', function () { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index c8edb3a065..67f7068f2e 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -7,9 +7,14 @@ import { log } from './logger'; import utils from './utils'; import { mermaidAPI } from './mermaidAPI'; import { addDetector } from './diagram-api/detectType'; -import { isDetailedError } from './utils'; import type { ParseErrorFunction } from './Diagram'; +import { isDetailedError, type DetailedError } from './utils'; +import { registerDiagram } from './diagram-api/diagramAPI'; +import { ExternalDiagramDefinition } from './diagram-api/types'; +export type { MermaidConfig, DetailedError, ExternalDiagramDefinition }; + +let externalDiagramsRegistered = false; /** * ## init * @@ -43,17 +48,12 @@ const init = async function ( callback?: Function ) { try { - const conf = mermaidAPI.getConfig(); - if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { - // Load all lazy loaded diagrams in parallel - await Promise.allSettled( - conf.lazyLoadedDiagrams.map(async (diagram: string) => { - const { id, detector, loadDiagram } = await import(diagram); - addDetector(id, detector, loadDiagram); - }) - ); + // Not really sure if we need to check this, or simply call initThrowsErrorsAsync directly. + if (externalDiagramsRegistered) { + await initThrowsErrorsAsync(config, nodes, callback); + } else { + initThrowsErrors(config, nodes, callback); } - await initThrowsErrors(config, nodes, callback); } catch (e) { log.warn('Syntax Error rendering'); if (isDetailedError(e)) { @@ -65,7 +65,33 @@ const init = async function ( } }; -const initThrowsErrors = async function ( +// eslint-disable-next-line @typescript-eslint/ban-types +const handleError = (error: unknown, errors: DetailedError[], parseError?: Function) => { + log.warn(error); + if (isDetailedError(error)) { + // handle case where error string and hash were + // wrapped in object like`const error = { str, hash };` + if (parseError) { + parseError(error.str, error.hash); + } + errors.push({ ...error, message: error.str, error }); + } else { + // assume it is just error string and pass it on + if (parseError) { + parseError(error); + } + if (error instanceof Error) { + errors.push({ + str: error.message, + message: error.message, + hash: error.name, + error, + }); + } + } +}; + +const initThrowsErrors = function ( config?: MermaidConfig, // eslint-disable-next-line no-undef nodes?: string | HTMLElement | NodeListOf, @@ -73,7 +99,6 @@ const initThrowsErrors = async function ( callback?: Function ) { const conf = mermaidAPI.getConfig(); - // console.log('Starting rendering diagrams (init) - mermaid.init', conf); if (config) { // This is a legacy way of setting config. It is not documented and should be removed in the future. // @ts-ignore: TODO Fix ts errors @@ -105,7 +130,7 @@ const initThrowsErrors = async function ( const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); let txt: string; - const errors = []; + const errors: DetailedError[] = []; // element is the current div with mermaid class for (const element of Array.from(nodesToProcess)) { @@ -132,7 +157,7 @@ const initThrowsErrors = async function ( log.debug('Detected early reinit: ', init); } try { - await mermaidAPI.render( + mermaidAPI.render( id, txt, (svgCode: string, bindFunctions?: (el: Element) => void) => { @@ -147,13 +172,7 @@ const initThrowsErrors = async function ( element ); } catch (error) { - log.warn('Catching Error (bootstrap)', error); - // @ts-ignore: TODO Fix ts errors - const mermaidError = { error, str: error.str, hash: error.hash, message: error.str }; - if (typeof mermaid.parseError === 'function') { - mermaid.parseError(mermaidError); - } - errors.push(mermaidError); + handleError(error, errors, mermaid.parseError); } } if (errors.length > 0) { @@ -162,8 +181,169 @@ const initThrowsErrors = async function ( } }; -const initialize = async function (config: MermaidConfig) { - await mermaidAPI.initialize(config); +/** + * This is an internal function and should not be made public, as it will likely change. + * @internal + * @param diagrams - Array of {@link ExternalDiagramDefinition}. + */ +const registerLazyLoadedDiagrams = (diagrams: ExternalDiagramDefinition[]) => { + for (const { id, detector, loader } of diagrams) { + addDetector(id, detector, loader); + } +}; + +/** + * This is an internal function and should not be made public, as it will likely change. + * @internal + * @param diagrams - Array of {@link ExternalDiagramDefinition}. + */ +const loadExternalDiagrams = async (diagrams: ExternalDiagramDefinition[]) => { + log.debug(`Loading ${diagrams.length} external diagrams`); + // Load all lazy loaded diagrams in parallel + const results = await Promise.allSettled( + diagrams.map(async ({ id, detector, loader }) => { + const { diagram } = await loader(); + registerDiagram(id, diagram, detector); + }) + ); + const failed = results.filter((result) => result.status === 'rejected'); + if (failed.length > 0) { + log.error(`Failed to load ${failed.length} external diagrams`); + for (const res of failed) { + log.error(res); + } + throw new Error(`Failed to load ${failed.length} external diagrams`); + } +}; + +/** + * Equivalent to {@link init()}, except an error will be thrown on error. + * + * @alpha + * @deprecated This is an internal function and will very likely be modified in v10, or earlier. + * We recommend staying with {@link initThrowsErrors} if you don't need `lazyLoadedDiagrams`. + * + * @param config - **Deprecated** Mermaid sequenceConfig. + * @param nodes - One of: + * - A DOM Node + * - An array of DOM nodes (as would come from a jQuery selector) + * - A W3C selector, a la `.mermaid` (default) + * @param callback - Function that is called with the id of each generated mermaid diagram. + * @returns Resolves on success, otherwise the {@link Promise} will be rejected. + */ +const initThrowsErrorsAsync = async function ( + config?: MermaidConfig, + // eslint-disable-next-line no-undef + nodes?: string | HTMLElement | NodeListOf, + // eslint-disable-next-line @typescript-eslint/ban-types + callback?: Function +) { + const conf = mermaidAPI.getConfig(); + + if (config) { + // This is a legacy way of setting config. It is not documented and should be removed in the future. + // @ts-ignore: TODO Fix ts errors + mermaid.sequenceConfig = config; + } + + // if last argument is a function this is the callback function + log.debug(`${!callback ? 'No ' : ''}Callback function found`); + let nodesToProcess: ArrayLike; + if (typeof nodes === 'undefined') { + nodesToProcess = document.querySelectorAll('.mermaid'); + } else if (typeof nodes === 'string') { + nodesToProcess = document.querySelectorAll(nodes); + } else if (nodes instanceof HTMLElement) { + nodesToProcess = [nodes]; + } else if (nodes instanceof NodeList) { + nodesToProcess = nodes; + } else { + throw new Error('Invalid argument nodes for mermaid.init'); + } + + log.debug(`Found ${nodesToProcess.length} diagrams`); + if (typeof config?.startOnLoad !== 'undefined') { + log.debug('Start On Load: ' + config?.startOnLoad); + mermaidAPI.updateSiteConfig({ startOnLoad: config?.startOnLoad }); + } + + // generate the id of the diagram + const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); + + let txt: string; + const errors: DetailedError[] = []; + + // element is the current div with mermaid class + for (const element of Array.from(nodesToProcess)) { + log.info('Rendering diagram: ' + element.id); + /*! Check if previously processed */ + if (element.getAttribute('data-processed')) { + continue; + } + element.setAttribute('data-processed', 'true'); + + const id = `mermaid-${idGenerator.next()}`; + + // Fetch the graph definition including tags + txt = element.innerHTML; + + // transforms the html to pure text + txt = utils + .entityDecode(txt) + .trim() + .replace(//gi, '
    '); + + const init = utils.detectInit(txt); + if (init) { + log.debug('Detected early reinit: ', init); + } + try { + await mermaidAPI.renderAsync( + id, + txt, + (svgCode: string, bindFunctions?: (el: Element) => void) => { + element.innerHTML = svgCode; + if (typeof callback !== 'undefined') { + callback(id); + } + if (bindFunctions) bindFunctions(element); + }, + element + ); + } catch (error) { + handleError(error, errors, mermaid.parseError); + } + } + if (errors.length > 0) { + // TODO: We should be throwing an error object. + throw errors[0]; + } +}; + +const initialize = function (config: MermaidConfig) { + mermaidAPI.initialize(config); +}; + +/** + * Used to register external diagram types. + * @param diagrams - Array of {@link ExternalDiagramDefinition}. + * @param opts + * @param opts.lazyLoad - If true, the diagram will be loaded on demand. + */ +const registerExternalDiagrams = async ( + diagrams: ExternalDiagramDefinition[], + { + lazyLoad = true, + }: { + lazyLoad?: boolean; + } = {} +) => { + if (lazyLoad) { + registerLazyLoadedDiagrams(diagrams); + } else { + await loadExternalDiagrams(diagrams); + } + externalDiagramsRegistered = true; }; /** @@ -209,15 +389,138 @@ const parse = (txt: string) => { return mermaidAPI.parse(txt, mermaid.parseError); }; +const executionQueue: (() => Promise)[] = []; +let executionQueueRunning = false; +const executeQueue = async () => { + if (executionQueueRunning) { + return; + } + executionQueueRunning = true; + while (executionQueue.length > 0) { + const f = executionQueue.shift(); + if (f) { + try { + await f(); + } catch (e) { + log.error('Error executing queue', e); + } + } + } + executionQueueRunning = false; +}; + +/** + * @param txt + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +const parseAsync = (txt: string): Promise => { + return new Promise((resolve, reject) => { + // This promise will resolve when the mermaidAPI.render call is done. + // It will be queued first and will be executed when it is first in line + const performCall = () => + new Promise((res, rej) => { + mermaidAPI.parseAsync(txt, mermaid.parseError).then( + (r) => { + // This resolves for the promise for the queue handling + res(r); + // This fulfills the promise sent to the value back to the original caller + resolve(r); + }, + (e) => { + log.error('Error parsing', e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue(); + }); +}; + +// const asynco = (id: string, delay: number) => +// new Promise((res) => { +// setTimeout(() => { +// // This resolves for the promise for the queue handling +// res(id); +// }, delay); +// }); + +/** + * @param txt + * @param id + * @param delay + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +// const test1 = (id: string, delay: number) => { +// const p = new Promise((resolve, reject) => { +// // This promise will resolve when the mermaidAPI.render call is done. +// // It will be queued first and will be executed when it is first in line +// const performCall = () => +// new Promise((res) => { +// asynco(id, delay).then((r) => { +// // This resolves for the promise for the queue handling +// res(r); +// // This fullfills the promise sent to the value back to the original caller +// resolve(r + ' result to caller'); +// }); +// }); +// executionQueue.push(performCall); +// }); +// return p; +// }; + +/** + * @param txt + * @param id + * @param text + * @param cb + * @param container + * @deprecated This is an internal function and should not be used. Will be removed in v10. + */ +const renderAsync = ( + id: string, + text: string, + cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, + container?: Element +): Promise => { + return new Promise((resolve, reject) => { + // This promise will resolve when the mermaidAPI.render call is done. + // It will be queued first and will be executed when it is first in line + const performCall = () => + new Promise((res, rej) => { + mermaidAPI.renderAsync(id, text, cb, container).then( + (r) => { + // This resolves for the promise for the queue handling + res(r); + // This fullfills the promise sent to the value back to the original caller + resolve(r); + }, + (e) => { + log.error('Error parsing', e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue(); + }); +}; + const mermaid: { startOnLoad: boolean; diagrams: any; parseError?: ParseErrorFunction; mermaidAPI: typeof mermaidAPI; parse: typeof parse; + parseAsync: typeof parseAsync; render: typeof mermaidAPI.render; + renderAsync: typeof renderAsync; init: typeof init; initThrowsErrors: typeof initThrowsErrors; + initThrowsErrorsAsync: typeof initThrowsErrorsAsync; + registerExternalDiagrams: typeof registerExternalDiagrams; initialize: typeof initialize; contentLoaded: typeof contentLoaded; setParseErrorHandler: typeof setParseErrorHandler; @@ -226,9 +529,13 @@ const mermaid: { diagrams: {}, mermaidAPI, parse, + parseAsync, render: mermaidAPI.render, + renderAsync, init, initThrowsErrors, + initThrowsErrorsAsync, + registerExternalDiagrams, initialize, parseError: undefined, contentLoaded, diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 384b456f82..3eb0581df7 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -43,6 +43,17 @@ function parse(text: string, parseError?: ParseErrorFunction): boolean { return diagram.parse(text, parseError); } +/** + * + * @param text + * @param parseError + */ +async function parseAsync(text: string, parseError?: ParseErrorFunction): Promise { + addDiagrams(); + const diagram = await getDiagramFromText(text, parseError); + return diagram.parse(text, parseError); +} + export const encodeEntities = function (text: string): string { let txt = text; @@ -100,20 +111,297 @@ export const decodeEntities = function (text: string): string { * }); * ``` * - * @param id - The id of the element to be rendered - * @param text - The graph definition - * @param cb - Callback which is called after rendering is finished with the svg code as param. - * @param container - Selector to element in which a div with the graph temporarily will be + * @param {string} id The id of the element to be rendered + * @param {string} text The graph definition + * @param cb - Optional callback which + * is called after rendering is finished with the svg code as inparam. + * @param {Element} container Selector to element in which a div with the graph temporarily will be * inserted. If one is provided a hidden div will be inserted in the body of the page instead. The * element will be removed when rendering is completed. - * @returns - Resolves when finished rendering. + * @returns Returns the rendered element as a string containing the SVG definition. + */ +const render = function ( + id: string, + text: string, + cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, + container?: Element +): string { + addDiagrams(); + configApi.reset(); + text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; + const graphInit = utils.detectInit(text); + if (graphInit) { + directiveSanitizer(graphInit); + configApi.addDirective(graphInit); + } + const cnf = configApi.getConfig(); + + log.debug(cnf); + + // Check the maximum allowed text size + if (text.length > cnf.maxTextSize!) { + text = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; + } + + let root: any = select('body'); + + // In regular execution the container will be the div with a mermaid class + if (typeof container !== 'undefined') { + // A container was provided by the caller + if (container) { + container.innerHTML = ''; + } + + if (cnf.securityLevel === 'sandbox') { + // If we are in sandboxed mode, we do everything mermaid related + // in a sandboxed div + const iframe = select(container) + .append('iframe') + .attr('id', 'i' + id) + .attr('style', 'width: 100%; height: 100%;') + .attr('sandbox', ''); + // const iframeBody = ; + root = select(iframe.nodes()[0]!.contentDocument!.body); + root.node().style.margin = 0; + } else { + root = select(container); + } + + root + .append('div') + .attr('id', 'd' + id) + .attr('style', 'font-family: ' + cnf.fontFamily) + .append('svg') + .attr('id', id) + .attr('width', '100%') + .attr('xmlns', 'http://www.w3.org/2000/svg') + .attr('xmlns:xlink', 'http://www.w3.org/1999/xlink') + .append('g'); + } else { + // No container was provided + // If there is an existing element with the id, we remove it + // this likely a previously rendered diagram + const existingSvg = document.getElementById(id); + if (existingSvg) { + existingSvg.remove(); + } + + // Remove previous tpm element if it exists + let element; + if (cnf.securityLevel === 'sandbox') { + element = document.querySelector('#i' + id); + } else { + element = document.querySelector('#d' + id); + } + + if (element) { + element.remove(); + } + + // Add the tmp div used for rendering with the id `d${id}` + // d+id it will contain a svg with the id "id" + + if (cnf.securityLevel === 'sandbox') { + // If we are in sandboxed mode, we do everything mermaid related + // in a sandboxed div + const iframe = select('body') + .append('iframe') + .attr('id', 'i' + id) + .attr('style', 'width: 100%; height: 100%;') + .attr('sandbox', ''); + + root = select(iframe.nodes()[0]!.contentDocument!.body); + root.node().style.margin = 0; + } else { + root = select('body'); + } + + // This is the temporary div + root + .append('div') + .attr('id', 'd' + id) + // this is the seed of the svg to be rendered + .append('svg') + .attr('id', id) + .attr('width', '100%') + .attr('xmlns', 'http://www.w3.org/2000/svg') + .append('g'); + } + + text = encodeEntities(text); + + // Important that we do not create the diagram until after the directives have been included + let diag; + let parseEncounteredException; + try { + // diag = new Diagram(text); + diag = getDiagramFromText(text); + if ('then' in diag) { + throw new Error('Diagram is a promise. Use renderAsync.'); + } + } catch (error) { + diag = new Diagram('error'); + parseEncounteredException = error; + } + // Get the tmp element containing the the svg + const element = root.select('#d' + id).node(); + const graphType = diag.type; + + // insert inline style into svg + const svg = element.firstChild; + const firstChild = svg.firstChild; + + let userStyles = ''; + // user provided theme CSS + // If you add more configuration driven data into the user styles make sure that the value is + // sanitized bye the sanitizeCSS function + if (cnf.themeCSS !== undefined) { + userStyles += `\n${cnf.themeCSS}`; + } + // user provided theme CSS + if (cnf.fontFamily !== undefined) { + userStyles += `\n:root { --mermaid-font-family: ${cnf.fontFamily}}`; + } + // user provided theme CSS + if (cnf.altFontFamily !== undefined) { + userStyles += `\n:root { --mermaid-alt-font-family: ${cnf.altFontFamily}}`; + } + + // classDef + if (CLASSDEF_DIAGRAMS.includes(graphType)) { + const classes: any = diag.renderer.getClasses(text, diag); + const htmlLabels = cnf.htmlLabels || cnf.flowchart?.htmlLabels; + for (const className in classes) { + if (htmlLabels) { + userStyles += `\n.${className} > * { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} span { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + } else { + userStyles += `\n.${className} path { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} rect { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} polygon { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} ellipse { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + userStyles += `\n.${className} circle { ${classes[className].styles.join( + ' !important; ' + )} !important; }`; + if (classes[className].textStyles) { + userStyles += `\n.${className} tspan { ${classes[className].textStyles.join( + ' !important; ' + )} !important; }`; + } + } + } + } + + const stylis = (selector: string, styles: string) => + serialize(compile(`${selector}{${styles}}`), stringify); + const rules = stylis(`#${id}`, getStyles(graphType, userStyles, cnf.themeVariables)); + + const style1 = document.createElement('style'); + style1.innerHTML = `#${id} ` + rules; + svg.insertBefore(style1, firstChild); + + try { + diag.renderer.draw(text, id, pkg.version, diag); + } catch (e) { + errorRenderer.draw(text, id, pkg.version); + throw e; + } + + root + .select(`[id="${id}"]`) + .selectAll('foreignobject > *') + .attr('xmlns', 'http://www.w3.org/1999/xhtml'); + + // Fix for when the base tag is used + let svgCode = root.select('#d' + id).node().innerHTML; + + log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); + if (!evaluate(cnf.arrowMarkerAbsolute) && cnf.securityLevel !== 'sandbox') { + svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g'); + } + + svgCode = decodeEntities(svgCode); + + // Fix for when the br tag is used + svgCode = svgCode.replace(/
    /g, '
    '); + + if (cnf.securityLevel === 'sandbox') { + const svgEl = root.select('#d' + id + ' svg').node(); + const width = '100%'; + let height = '100%'; + if (svgEl) { + height = svgEl.viewBox.baseVal.height + 'px'; + } + svgCode = ``; + } else { + if (cnf.securityLevel !== 'loose') { + svgCode = DOMPurify.sanitize(svgCode, { + ADD_TAGS: ['foreignobject'], + ADD_ATTR: ['dominant-baseline'], + }); + } + } + + if (typeof cb !== 'undefined') { + switch (graphType) { + case 'flowchart': + case 'flowchart-v2': + cb(svgCode, flowDb.bindFunctions); + break; + case 'gantt': + cb(svgCode, ganttDb.bindFunctions); + break; + case 'class': + case 'classDiagram': + cb(svgCode, classDb.bindFunctions); + break; + default: + cb(svgCode); + } + } else { + log.debug('CB = undefined!'); + } + attachFunctions(); + + const tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id; + const node = select(tmpElementSelector).node(); + if (node && 'remove' in node) { + node.remove(); + } + + if (parseEncounteredException) { + throw parseEncounteredException; + } + + return svgCode; +}; + +/** + * @deprecated This is an internal function and should not be used. Will be removed in v10. */ -const render = async function ( + +const renderAsync = async function ( id: string, text: string, - cb: (svgCode: string, bindFunctions?: (element: Element) => void) => void, + cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, container?: Element -): Promise { +): Promise { addDiagrams(); configApi.reset(); text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; @@ -300,7 +588,7 @@ const render = async function ( try { await diag.renderer.draw(text, id, pkg.version, diag); } catch (e) { - await errorRenderer.draw(text, id, pkg.version); + errorRenderer.draw(text, id, pkg.version); throw e; } @@ -454,8 +742,8 @@ const handleDirective = function (p: any, directive: any, type: string): void { } }; -/** @param options - Initial Mermaid options */ -async function initialize(options: MermaidConfig) { +/** @param {MermaidConfig} options */ +function initialize(options: MermaidConfig = {}) { // Handle legacy location of font-family configuration if (options?.fontFamily) { if (!options.themeVariables?.fontFamily) { @@ -543,9 +831,12 @@ async function initialize(options: MermaidConfig) { * mermaid.initialize(config); * ``` */ + export const mermaidAPI = Object.freeze({ render, + renderAsync, parse, + parseAsync, parseDirective, initialize, getConfig: configApi.getConfig, @@ -563,5 +854,4 @@ export const mermaidAPI = Object.freeze({ setLogLevel(configApi.getConfig().logLevel); configApi.reset(configApi.getConfig()); - export default mermaidAPI; diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 9d282991aa..3eecd5f4fb 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -868,6 +868,8 @@ export const sanitizeCss = (str) => { export interface DetailedError { str: string; hash: any; + error?: any; + message?: string; } /** @param error - The error to check */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aec6638eda..80483b2a5e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,6 +59,7 @@ importers: lint-staged: 13.0.3 lodash: 4.17.21 markdown-it: 13.0.1 + mermaid: '' moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 path-browserify: 1.0.1 @@ -150,7 +151,7 @@ importers: unist-util-flatmap: 1.0.0 vite: 3.2.2 vitepress: 1.0.0-alpha.27_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_4ciratiyyfxwawp34rwsk4kamu + vitepress-plugin-mermaid: 2.0.8_dqld22ygcjnolulc7gkwlejcry vitepress-plugin-search: 1.0.4-alpha.15_jqf4rwmsymnrb4kzh6io7s4tmi vitest: 0.24.5_7l34rqjzi6dnvspyhao4gurgki @@ -169,6 +170,7 @@ importers: '@types/micromatch': 4.0.2 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 + '@types/uuid': ^8.3.4 '@typescript-eslint/eslint-plugin': 5.42.0 '@typescript-eslint/parser': 5.42.0 chokidar: 3.5.3 @@ -179,7 +181,6 @@ importers: d3: 7.6.1 dagre: ^0.8.5 dagre-d3: ^0.6.4 - documentation: 13.2.5 dompurify: 2.4.0 esbuild: 0.15.13 eslint: 8.27.0 @@ -219,6 +220,7 @@ importers: typedoc-plugin-markdown: ^3.13.6 typescript: 4.8.4 unist-util-flatmap: 1.0.0 + uuid: ^9.0.0 dependencies: '@braintree/sanitize-url': 6.0.0 d3: 7.6.1 @@ -232,6 +234,7 @@ importers: moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.2 + uuid: 9.0.0 devDependencies: '@applitools/eyes-cypress': 3.27.6 '@commitlint/cli': 17.2.0 @@ -245,6 +248,7 @@ importers: '@types/micromatch': 4.0.2 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 + '@types/uuid': 8.3.4 '@typescript-eslint/eslint-plugin': 5.42.0_ofgjrzjuekeo7s3hdyz2yuzw34 '@typescript-eslint/parser': 5.42.0_rmayb2veg2btbq6mbmnyivgasy chokidar: 3.5.3 @@ -252,7 +256,6 @@ importers: coveralls: 3.1.1 cypress: 10.11.0 cypress-image-snapshot: 4.0.1_qb6t4atfexeiaiscfhsmxcgcni - documentation: 13.2.5 esbuild: 0.15.13 eslint: 8.27.0 eslint-config-prettier: 8.5.0_eslint@8.27.0 @@ -301,6 +304,7 @@ importers: cytoscape-cose-bilkent: ^4.1.0 cytoscape-fcose: ^2.1.0 d3: 7.6.1 + mermaid: workspace:* non-layered-tidy-tree-layout: ^2.0.2 rimraf: 3.0.2 dependencies: @@ -312,6 +316,7 @@ importers: non-layered-tidy-tree-layout: 2.0.2 devDependencies: concurrently: 7.5.0 + mermaid: link:../mermaid rimraf: 3.0.2 packages: @@ -823,14 +828,6 @@ packages: - supports-color dev: true - /@babel/generator/7.12.1: - resolution: {integrity: sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==} - dependencies: - '@babel/types': 7.19.0 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - /@babel/generator/7.19.0: resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} engines: {node: '>=6.9.0'} @@ -932,14 +929,6 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.12.3: - resolution: {integrity: sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.19.0 - dev: true - /@babel/parser/7.19.1: resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} engines: {node: '>=6.0.0'} @@ -1123,6 +1112,7 @@ packages: /@braintree/sanitize-url/6.0.1: resolution: {integrity: sha512-zr9Qs9KFQiEvMWdZesjcmRJlUck5NR+eKGS1uyKk+oYTWwlYrsoPEi6VmG6/TzBD1hKCGEimrhTgGS6hvn/xIQ==} + dev: false /@cnakazawa/watch/1.0.4: resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} @@ -1694,11 +1684,6 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@hutson/parse-repository-url/3.0.2: - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} - dev: true - /@istanbuljs/load-nyc-config/1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -2756,7 +2741,6 @@ packages: /@types/uuid/8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - dev: false /@types/web-bluetooth/0.0.16: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} @@ -3275,14 +3259,6 @@ packages: acorn: 8.8.0 dev: true - /acorn-node/1.8.2: - resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - /acorn-walk/7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} @@ -3305,10 +3281,6 @@ packages: hasBin: true dev: true - /add-stream/1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - dev: true - /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3381,12 +3353,6 @@ packages: type-fest: 0.21.3 dev: true - /ansi-html/0.0.7: - resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: true - /ansi-regex/2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} @@ -3455,13 +3421,6 @@ packages: execa: 1.0.0 dev: true - /append-buffer/1.0.2: - resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} - engines: {node: '>=0.10.0'} - dependencies: - buffer-equal: 1.0.1 - dev: true - /arch/2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true @@ -3705,19 +3664,6 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 dev: true - /babelify/10.0.0_@babel+core@7.12.3: - resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - dev: true - - /bail/1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: true - /bail/2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: true @@ -3790,15 +3736,6 @@ packages: resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} dev: true - /body/5.1.0: - resolution: {integrity: sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==} - dependencies: - continuable-cache: 0.3.1 - error: 7.2.1 - raw-body: 1.1.7 - safe-json-parse: 1.0.1 - dev: true - /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -3864,12 +3801,6 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true - /browser-resolve/1.11.3: - resolution: {integrity: sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==} - dependencies: - resolve: 1.1.7 - dev: true - /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -3880,19 +3811,10 @@ packages: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-equal/1.0.1: - resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} - engines: {node: '>=0.4'} - dev: true - /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer-shims/1.0.0: - resolution: {integrity: sha512-Zy8ZXMyxIT6RMTeY7OP/bDndfj6bwCan7SS98CEndS6deHwWPpseeHlwarNcBim+etXnF9HBc1non5JgDaJU1g==} - dev: true - /buffer/5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -3900,10 +3822,6 @@ packages: ieee754: 1.2.1 dev: true - /bytes/1.0.0: - resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} - dev: true - /bytes/3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -3961,10 +3879,6 @@ packages: responselike: 2.0.1 dev: true - /cached-path-relative/1.1.0: - resolution: {integrity: sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==} - dev: true - /cachedir/2.3.0: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} @@ -4012,10 +3926,6 @@ packages: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /ccount/1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - dev: true - /chai/4.3.6: resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} engines: {node: '>=4'} @@ -4070,10 +3980,6 @@ packages: engines: {node: '>=10'} dev: true - /character-entities-html4/1.1.4: - resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} - dev: true - /character-entities-legacy/1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} dev: true @@ -4208,34 +4114,12 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone-buffer/1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} - dev: true - /clone-response/1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 dev: true - /clone-stats/1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - dev: true - - /clone/2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - dev: true - - /cloneable-readable/1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - dependencies: - inherits: 2.0.4 - process-nextick-args: 2.0.1 - readable-stream: 2.3.7 - dev: true - /co/4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -4290,10 +4174,6 @@ packages: delayed-stream: 1.0.0 dev: true - /comma-separated-tokens/1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: true - /commander/5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -4302,6 +4182,7 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -4348,15 +4229,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concat-stream/1.5.2: - resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==} - engines: {'0': node >= 0.8} - dependencies: - inherits: 2.0.4 - readable-stream: 2.0.6 - typedarray: 0.0.6 - dev: true - /concat-stream/1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} @@ -4367,16 +4239,6 @@ packages: typedarray: 0.0.6 dev: true - /concat-stream/2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.0 - typedarray: 0.0.6 - dev: true - /concurrently/7.5.0: resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} @@ -4417,10 +4279,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /continuable-cache/0.3.1: - resolution: {integrity: sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==} - dev: true - /conventional-changelog-angular/5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -4429,33 +4287,6 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-atom/2.0.8: - resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-codemirror/2.0.8: - resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-config-spec/2.1.0: - resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==} - dev: true - - /conventional-changelog-conventionalcommits/4.6.3: - resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: true - /conventional-changelog-conventionalcommits/5.0.0: resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} engines: {node: '>=10'} @@ -4465,108 +4296,6 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-core/4.2.4: - resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} - engines: {node: '>=10'} - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 5.0.1 - conventional-commits-parser: 3.2.4 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.11 - git-remote-origin-url: 2.0.0 - git-semver-tags: 4.1.1 - lodash: 4.17.21 - normalize-package-data: 3.0.3 - q: 1.5.1 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - through2: 4.0.2 - dev: true - - /conventional-changelog-ember/2.0.9: - resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-eslint/3.0.9: - resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-express/2.0.6: - resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-jquery/3.0.11: - resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-jshint/2.0.9: - resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - - /conventional-changelog-preset-loader/2.3.4: - resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} - engines: {node: '>=10'} - dev: true - - /conventional-changelog-writer/5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - conventional-commits-filter: 2.0.7 - dateformat: 3.0.3 - handlebars: 4.7.7 - json-stringify-safe: 5.0.1 - lodash: 4.17.21 - meow: 8.1.2 - semver: 6.3.0 - split: 1.0.1 - through2: 4.0.2 - dev: true - - /conventional-changelog/3.1.25: - resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} - engines: {node: '>=10'} - dependencies: - conventional-changelog-angular: 5.0.13 - conventional-changelog-atom: 2.0.8 - conventional-changelog-codemirror: 2.0.8 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-changelog-core: 4.2.4 - conventional-changelog-ember: 2.0.9 - conventional-changelog-eslint: 3.0.9 - conventional-changelog-express: 2.0.6 - conventional-changelog-jquery: 3.0.11 - conventional-changelog-jshint: 2.0.9 - conventional-changelog-preset-loader: 2.3.4 - dev: true - - /conventional-commits-filter/2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - dev: true - /conventional-commits-parser/3.2.4: resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} engines: {node: '>=10'} @@ -4580,21 +4309,6 @@ packages: through2: 4.0.2 dev: true - /conventional-recommended-bump/6.1.0: - resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 2.3.4 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - git-raw-commits: 2.0.11 - git-semver-tags: 4.1.1 - meow: 8.1.2 - q: 1.5.1 - dev: true - /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: @@ -4928,10 +4642,12 @@ packages: engines: {node: '>=12'} dependencies: internmap: 2.0.3 + dev: false /d3-axis/3.0.0: resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} engines: {node: '>=12'} + dev: false /d3-brush/3.0.0: resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} @@ -4942,32 +4658,38 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false /d3-chord/3.0.1: resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 + dev: false /d3-color/3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} + dev: false /d3-contour/4.0.0: resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-delaunay/6.0.2: resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} engines: {node: '>=12'} dependencies: delaunator: 5.0.0 + dev: false /d3-dispatch/3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} + dev: false /d3-drag/3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} @@ -4975,6 +4697,7 @@ packages: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 + dev: false /d3-dsv/3.0.1: resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} @@ -4984,16 +4707,19 @@ packages: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 + dev: false /d3-ease/3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} + dev: false /d3-fetch/3.0.1: resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} engines: {node: '>=12'} dependencies: d3-dsv: 3.0.1 + dev: false /d3-force/3.0.0: resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} @@ -5002,42 +4728,51 @@ packages: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 + dev: false /d3-format/3.1.0: resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} engines: {node: '>=12'} + dev: false /d3-geo/3.0.1: resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-hierarchy/3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} engines: {node: '>=12'} + dev: false /d3-interpolate/3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 + dev: false /d3-path/3.0.1: resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} engines: {node: '>=12'} + dev: false /d3-polygon/3.0.1: resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} engines: {node: '>=12'} + dev: false /d3-quadtree/3.0.1: resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} engines: {node: '>=12'} + dev: false /d3-random/3.0.1: resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} engines: {node: '>=12'} + dev: false /d3-scale-chromatic/3.0.0: resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} @@ -5045,6 +4780,7 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 + dev: false /d3-scale/4.0.2: resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} @@ -5055,32 +4791,38 @@ packages: d3-interpolate: 3.0.1 d3-time: 3.0.0 d3-time-format: 4.1.0 + dev: false /d3-selection/3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} + dev: false /d3-shape/3.1.0: resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 + dev: false /d3-time-format/4.1.0: resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} engines: {node: '>=12'} dependencies: d3-time: 3.0.0 + dev: false /d3-time/3.0.0: resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-timer/3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} + dev: false /d3-transition/3.0.1_d3-selection@3.0.0: resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} @@ -5094,6 +4836,7 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 + dev: false /d3-zoom/3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} @@ -5104,6 +4847,7 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false /d3/7.6.1: resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} @@ -5139,6 +4883,7 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1_d3-selection@3.0.0 d3-zoom: 3.0.0 + dev: false /dagre-d3/0.6.4: resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} @@ -5147,12 +4892,14 @@ packages: dagre: 0.8.5 graphlib: 2.1.8 lodash: 4.17.21 + dev: false /dagre/0.8.5: resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} dependencies: graphlib: 2.1.8 lodash: 4.17.21 + dev: false /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} @@ -5194,19 +4941,10 @@ packages: engines: {node: '>=0.11'} dev: true - /dateformat/3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dev: true - /dayjs/1.11.5: resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==} dev: true - /de-indent/1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - dev: true - optional: true - /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -5218,17 +4956,6 @@ packages: ms: 2.0.0 dev: true - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - /debug/3.2.7_supports-color@8.1.1: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -5338,14 +5065,6 @@ packages: engines: {node: '>=10'} dev: true - /define-properties/1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - /define-property/0.2.5: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} @@ -5368,10 +5087,6 @@ packages: isobject: 3.0.1 dev: true - /defined/1.0.1: - resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} - dev: true - /degenerator/3.0.2: resolution: {integrity: sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==} engines: {node: '>= 6'} @@ -5386,6 +5101,7 @@ packages: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: robust-predicates: 3.0.1 + dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -5407,26 +5123,11 @@ packages: engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true - /detect-indent/6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - /detect-newline/3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} dev: true - /detective/5.2.1: - resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.1 - minimist: 1.2.6 - dev: true - /diff-sequences/26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} engines: {node: '>= 10.14.2'} @@ -5454,13 +5155,6 @@ packages: path-type: 4.0.0 dev: true - /doctrine-temporary-fork/2.1.0: - resolution: {integrity: sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -5468,66 +5162,8 @@ packages: esutils: 2.0.3 dev: true - /documentation/13.2.5: - resolution: {integrity: sha512-d1TrfrHXYZR63xrOzkYwwe297vkSwBoEhyyMBOi20T+7Ohe1aX1dW4nqXncQmdmE5MxluSaxxa3BW1dCvbF5AQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@babel/core': 7.12.3 - '@babel/generator': 7.12.1 - '@babel/parser': 7.12.3 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - ansi-html: 0.0.7 - babelify: 10.0.0_@babel+core@7.12.3 - chalk: 2.4.2 - chokidar: 3.5.3 - concat-stream: 1.6.2 - diff: 4.0.2 - doctrine-temporary-fork: 2.1.0 - get-port: 5.1.1 - git-url-parse: 11.6.0 - github-slugger: 1.2.0 - glob: 7.2.3 - globals-docs: 2.4.1 - highlight.js: 10.7.3 - ini: 1.3.8 - js-yaml: 3.14.1 - lodash: 4.17.21 - mdast-util-find-and-replace: 1.1.1 - mdast-util-inject: 1.1.0 - micromatch: 3.1.10 - mime: 2.6.0 - module-deps-sortable: 5.0.3 - parse-filepath: 1.0.2 - pify: 5.0.0 - read-pkg-up: 4.0.0 - remark: 13.0.0 - remark-gfm: 1.0.0 - remark-html: 13.0.2 - remark-reference-links: 5.0.0 - remark-toc: 7.2.0 - resolve: 1.22.1 - stream-array: 1.1.2 - strip-json-comments: 2.0.1 - tiny-lr: 1.1.1 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 - vfile: 4.2.1 - vfile-reporter: 6.0.2 - vfile-sort: 2.2.2 - vinyl: 2.2.1 - vinyl-fs: 3.0.3 - yargs: 15.4.1 - optionalDependencies: - '@vue/compiler-sfc': 3.2.41 - vue-template-compiler: 2.7.10 - transitivePeerDependencies: - - supports-color - dev: true - - /dom-serializer/2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + /dom-serializer/2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 @@ -5561,6 +5197,7 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} + dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -5577,33 +5214,10 @@ packages: is-obj: 2.0.0 dev: true - /dotgitignore/2.1.0: - resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} - engines: {node: '>=6'} - dependencies: - find-up: 3.0.0 - minimatch: 3.1.2 - dev: true - /duplexer/0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true - /duplexer2/0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - dependencies: - readable-stream: 2.3.7 - dev: true - - /duplexify/3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.7 - stream-shift: 1.0.1 - dev: true - /eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -5633,10 +5247,6 @@ packages: engines: {node: '>=10'} dev: true - /emoji-regex/6.1.1: - resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} - dev: true - /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -5679,12 +5289,6 @@ packages: is-arrayish: 0.2.1 dev: true - /error/7.2.1: - resolution: {integrity: sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==} - dependencies: - string-template: 0.2.1 - dev: true - /esbuild-android-64/0.15.13: resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} engines: {node: '>=12'} @@ -6491,13 +6095,6 @@ packages: reusify: 1.0.4 dev: true - /faye-websocket/0.10.0: - resolution: {integrity: sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==} - engines: {node: '>=0.4.0'} - dependencies: - websocket-driver: 0.7.4 - dev: true - /fb-watchman/2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -6546,11 +6143,6 @@ packages: to-regex-range: 5.0.1 dev: true - /filter-obj/1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: true - /finalhandler/1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -6566,13 +6158,6 @@ packages: - supports-color dev: true - /find-up/2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up/3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -6612,13 +6197,6 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /flush-write-stream/1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.7 - dev: true - /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -6737,14 +6315,6 @@ packages: universalify: 2.0.0 dev: true - /fs-mkdirp-stream/1.0.0: - resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} - engines: {node: '>= 0.10'} - dependencies: - graceful-fs: 4.2.10 - through2: 2.0.5 - dev: true - /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -6800,27 +6370,11 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-pkg-repo/4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.1.0 - through2: 2.0.5 - yargs: 16.2.0 - dev: true - /get-port/3.2.0: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} dev: true - /get-port/5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - dev: true - /get-stdin/5.0.1: resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==} engines: {node: '>=0.12.0'} @@ -6888,59 +6442,6 @@ packages: through2: 4.0.2 dev: true - /git-remote-origin-url/2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} - dependencies: - gitconfiglocal: 1.0.0 - pify: 2.3.0 - dev: true - - /git-semver-tags/4.1.1: - resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - meow: 8.1.2 - semver: 6.3.0 - dev: true - - /git-up/4.0.5: - resolution: {integrity: sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==} - dependencies: - is-ssh: 1.4.0 - parse-url: 6.0.5 - dev: true - - /git-url-parse/11.6.0: - resolution: {integrity: sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==} - dependencies: - git-up: 4.0.5 - dev: true - - /gitconfiglocal/1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - dependencies: - ini: 1.3.8 - dev: true - - /github-slugger/1.2.0: - resolution: {integrity: sha512-wIaa75k1vZhyPm9yWrD08A5Xnx/V+RmzGrpjQuLemGKSb77Qukiaei58Bogrl/LZSADDfPzKJX8jhLs4CRTl7Q==} - dependencies: - emoji-regex: 6.1.1 - dev: true - - /github-slugger/1.4.0: - resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} - dev: true - - /glob-parent/3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - dev: true - /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -6955,22 +6456,6 @@ packages: is-glob: 4.0.3 dev: true - /glob-stream/6.1.0: - resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} - engines: {node: '>= 0.10'} - dependencies: - extend: 3.0.2 - glob: 7.2.3 - glob-parent: 3.1.0 - is-negated-glob: 1.0.0 - ordered-read-streams: 1.0.1 - pumpify: 1.5.1 - readable-stream: 2.3.7 - remove-trailing-separator: 1.1.0 - to-absolute-glob: 2.0.2 - unique-stream: 2.3.1 - dev: true - /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -6996,10 +6481,6 @@ packages: ini: 2.0.0 dev: true - /globals-docs/2.4.1: - resolution: {integrity: sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==} - dev: true - /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -7068,6 +6549,7 @@ packages: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 + dev: false /gray-matter/4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} @@ -7156,12 +6638,6 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors/1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.1.3 - dev: true - /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -7205,35 +6681,6 @@ packages: function-bind: 1.1.1 dev: true - /hast-util-is-element/1.1.0: - resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} - dev: true - - /hast-util-sanitize/3.0.2: - resolution: {integrity: sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA==} - dependencies: - xtend: 4.0.2 - dev: true - - /hast-util-to-html/7.1.3: - resolution: {integrity: sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==} - dependencies: - ccount: 1.1.0 - comma-separated-tokens: 1.0.8 - hast-util-is-element: 1.1.0 - hast-util-whitespace: 1.0.4 - html-void-elements: 1.0.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - stringify-entities: 3.1.0 - unist-util-is: 4.1.0 - xtend: 4.0.2 - dev: true - - /hast-util-whitespace/1.0.4: - resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} - dev: true - /he/1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -7243,10 +6690,6 @@ packages: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false - /highlight.js/10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true - /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -7276,10 +6719,6 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /html-void-elements/1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - dev: true - /htmlparser2/8.0.1: resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} dependencies: @@ -7314,10 +6753,6 @@ packages: toidentifier: 1.0.1 dev: true - /http-parser-js/0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: true - /http-proxy-agent/4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} @@ -7501,6 +6936,7 @@ packages: /internmap/2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} + dev: false /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} @@ -7515,14 +6951,6 @@ packages: engines: {node: '>= 0.10'} dev: true - /is-absolute/1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - dependencies: - is-relative: 1.0.0 - is-windows: 1.0.2 - dev: true - /is-accessor-descriptor/0.1.6: resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} engines: {node: '>=0.10.0'} @@ -7663,13 +7091,6 @@ packages: engines: {node: '>=6'} dev: true - /is-glob/3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -7689,11 +7110,6 @@ packages: is-path-inside: 3.0.3 dev: true - /is-negated-glob/1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} - engines: {node: '>=0.10.0'} - dev: true - /is-number/3.0.0: resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} engines: {node: '>=0.10.0'} @@ -7721,11 +7137,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true - /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -7742,19 +7153,6 @@ packages: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-relative/1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - dependencies: - is-unc-path: 1.0.0 - dev: true - - /is-ssh/1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} - dependencies: - protocols: 2.0.1 - dev: true - /is-stream/1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -7781,27 +7179,11 @@ packages: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true - /is-unc-path/1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - dependencies: - unc-path-regex: 0.1.2 - dev: true - /is-unicode-supported/0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-utf8/0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: true - - /is-valid-glob/1.0.0: - resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} - engines: {node: '>=0.10.0'} - dev: true - /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -8961,10 +8343,6 @@ packages: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true - /json-parse-better-errors/1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true @@ -9055,6 +8433,7 @@ packages: /khroma/2.0.0: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} + dev: false /kind-of/3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -9090,15 +8469,6 @@ packages: engines: {node: '>=6'} dev: true - /konan/2.1.1: - resolution: {integrity: sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==} - dependencies: - '@babel/parser': 7.19.1 - '@babel/traverse': 7.19.1 - transitivePeerDependencies: - - supports-color - dev: true - /ky/0.28.7: resolution: {integrity: sha512-a23i6qSr/ep15vdtw/zyEQIDLoUaKDg9Jf04CYl/0ns/wXNYna26zJpI+MeIFaPeDvkrjLPrKtKOiiI3IE53RQ==} engines: {node: '>=12'} @@ -9117,25 +8487,11 @@ packages: engines: {node: '> 0.8'} dev: true - /lazystream/1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - dependencies: - readable-stream: 2.3.7 - dev: true - /lcov-parse/1.0.0: resolution: {integrity: sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==} hasBin: true dev: true - /lead/1.0.0: - resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} - engines: {node: '>= 0.10'} - dependencies: - flush-write-stream: 1.1.1 - dev: true - /leven/3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -9238,33 +8594,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /livereload-js/2.4.0: - resolution: {integrity: sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==} - dev: true - - /load-json-file/4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.10 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} dev: true - /locate-path/2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path/3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -9287,10 +8621,6 @@ packages: p-locate: 5.0.0 dev: true - /lodash.ismatch/4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - dev: true - /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -9334,10 +8664,6 @@ packages: engines: {node: '>= 0.6.0'} dev: true - /longest-streak/2.0.4: - resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} - dev: true - /longest-streak/3.0.1: resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} dev: true @@ -9430,32 +8756,12 @@ packages: uc.micro: 1.0.6 dev: true - /markdown-table/2.0.0: - resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} - dependencies: - repeat-string: 1.6.1 - dev: true - /marked/4.1.1: resolution: {integrity: sha512-0cNMnTcUJPxbA6uWmCmjWz4NJRe/0Xfk2NhXCUHjew9qJzFN20krFnsUe7QynwqOwa5m1fZ4UDg0ycKFVC0ccw==} engines: {node: '>= 12'} hasBin: true dev: true - /mdast-util-definitions/4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} - dependencies: - unist-util-visit: 2.0.3 - dev: true - - /mdast-util-find-and-replace/1.1.1: - resolution: {integrity: sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==} - dependencies: - escape-string-regexp: 4.0.0 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - dev: true - /mdast-util-from-markdown/0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} dependencies: @@ -9487,77 +8793,6 @@ packages: - supports-color dev: true - /mdast-util-gfm-autolink-literal/0.1.3: - resolution: {integrity: sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==} - dependencies: - ccount: 1.1.0 - mdast-util-find-and-replace: 1.1.1 - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: true - - /mdast-util-gfm-strikethrough/0.2.3: - resolution: {integrity: sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==} - dependencies: - mdast-util-to-markdown: 0.6.5 - dev: true - - /mdast-util-gfm-table/0.1.6: - resolution: {integrity: sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==} - dependencies: - markdown-table: 2.0.0 - mdast-util-to-markdown: 0.6.5 - dev: true - - /mdast-util-gfm-task-list-item/0.1.6: - resolution: {integrity: sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==} - dependencies: - mdast-util-to-markdown: 0.6.5 - dev: true - - /mdast-util-gfm/0.1.2: - resolution: {integrity: sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==} - dependencies: - mdast-util-gfm-autolink-literal: 0.1.3 - mdast-util-gfm-strikethrough: 0.2.3 - mdast-util-gfm-table: 0.1.6 - mdast-util-gfm-task-list-item: 0.1.6 - mdast-util-to-markdown: 0.6.5 - transitivePeerDependencies: - - supports-color - dev: true - - /mdast-util-inject/1.1.0: - resolution: {integrity: sha512-CcJ0mHa36QYumDKiZ2OIR+ClhfOM7zIzN+Wfy8tRZ1hpH9DKLCS+Mh4DyK5bCxzE9uxMWcbIpeNFWsg1zrj/2g==} - dependencies: - mdast-util-to-string: 1.1.0 - dev: true - - /mdast-util-to-hast/10.2.0: - resolution: {integrity: sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==} - dependencies: - '@types/mdast': 3.0.10 - '@types/unist': 2.0.6 - mdast-util-definitions: 4.0.0 - mdurl: 1.0.1 - unist-builder: 2.0.3 - unist-util-generated: 1.1.6 - unist-util-position: 3.1.0 - unist-util-visit: 2.0.3 - dev: true - - /mdast-util-to-markdown/0.6.5: - resolution: {integrity: sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==} - dependencies: - '@types/unist': 2.0.6 - longest-streak: 2.0.4 - mdast-util-to-string: 2.0.0 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - zwitch: 1.0.5 - dev: true - /mdast-util-to-markdown/1.3.0: resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} dependencies: @@ -9570,10 +8805,6 @@ packages: zwitch: 2.0.2 dev: true - /mdast-util-to-string/1.1.0: - resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} - dev: true - /mdast-util-to-string/2.0.0: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} dev: true @@ -9582,18 +8813,6 @@ packages: resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} dev: true - /mdast-util-toc/5.1.0: - resolution: {integrity: sha512-csimbRIVkiqc+PpFeKDGQ/Ck2N4f9FYH3zzBMMJzcxoKL8m+cM0n94xXm0I9eaxHnKdY9n145SGTdyJC7i273g==} - dependencies: - '@types/mdast': 3.0.10 - '@types/unist': 2.0.6 - extend: 3.0.2 - github-slugger: 1.4.0 - mdast-util-to-string: 2.0.0 - unist-util-is: 4.1.0 - unist-util-visit: 2.0.3 - dev: true - /mdn-data/2.0.6: resolution: {integrity: sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==} dev: true @@ -9637,20 +8856,6 @@ packages: engines: {node: '>= 8'} dev: true - /mermaid/9.1.7: - resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} - dependencies: - '@braintree/sanitize-url': 6.0.1 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.0 - graphlib: 2.1.8 - khroma: 2.0.0 - moment-mini: 2.24.0 - stylis: 4.1.3 - dev: true - /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -9677,55 +8882,6 @@ packages: uvu: 0.5.6 dev: true - /micromark-extension-gfm-autolink-literal/0.5.7: - resolution: {integrity: sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: true - - /micromark-extension-gfm-strikethrough/0.6.5: - resolution: {integrity: sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: true - - /micromark-extension-gfm-table/0.4.3: - resolution: {integrity: sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: true - - /micromark-extension-gfm-tagfilter/0.3.0: - resolution: {integrity: sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==} - dev: true - - /micromark-extension-gfm-task-list-item/0.3.3: - resolution: {integrity: sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: true - - /micromark-extension-gfm/0.3.3: - resolution: {integrity: sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==} - dependencies: - micromark: 2.11.4 - micromark-extension-gfm-autolink-literal: 0.5.7 - micromark-extension-gfm-strikethrough: 0.6.5 - micromark-extension-gfm-table: 0.4.3 - micromark-extension-gfm-tagfilter: 0.3.0 - micromark-extension-gfm-task-list-item: 0.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /micromark-factory-destination/1.0.0: resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} dependencies: @@ -9937,12 +9093,6 @@ packages: hasBin: true dev: true - /mime/2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - dev: true - /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -10009,40 +9159,6 @@ packages: minimist: 1.2.6 dev: true - /modify-values/1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} - dev: true - - /module-deps-sortable/5.0.3: - resolution: {integrity: sha512-eiyIZj/A0dj1o4ywXWqicazUL3l0HP3TydUR6xF0X3xh3LGBMLqW8a9aFe6MuNH4mxNMk53QKBHM6LOPR8kSgw==} - engines: {node: '>= 0.6'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - browser-resolve: 1.11.3 - cached-path-relative: 1.1.0 - concat-stream: 1.5.2 - defined: 1.0.1 - detective: 5.2.1 - duplexer2: 0.1.4 - inherits: 2.0.4 - konan: 2.1.1 - readable-stream: 2.3.7 - resolve: 1.22.1 - standard-version: 9.5.0 - stream-combiner2: 1.1.1 - subarg: 1.0.0 - through2: 2.0.5 - xtend: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /moment-mini/2.24.0: - resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==} - dev: true - /moment-mini/2.29.4: resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} dev: false @@ -10221,13 +9337,6 @@ packages: engines: {node: '>=10'} dev: true - /now-and-later/2.0.1: - resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} - engines: {node: '>= 0.10'} - dependencies: - once: 1.4.0 - dev: true - /npm-run-path/2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -10257,11 +9366,6 @@ packages: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true - /object-copy/0.1.0: resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} engines: {node: '>=0.10.0'} @@ -10275,11 +9379,6 @@ packages: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - /object-visit/1.0.1: resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} engines: {node: '>=0.10.0'} @@ -10287,16 +9386,6 @@ packages: isobject: 3.0.1 dev: true - /object.assign/4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.pick/1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} @@ -10355,12 +9444,6 @@ packages: word-wrap: 1.2.3 dev: true - /ordered-read-streams/1.0.1: - resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} - dependencies: - readable-stream: 2.3.7 - dev: true - /ospath/1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} dev: true @@ -10385,13 +9468,6 @@ packages: engines: {node: '>=8.0.0'} dev: true - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - /p-limit/2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -10406,13 +9482,6 @@ packages: yocto-queue: 0.1.0 dev: true - /p-locate/2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate/3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} @@ -10441,11 +9510,6 @@ packages: aggregate-error: 3.1.0 dev: true - /p-try/1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true - /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -10510,23 +9574,6 @@ packages: is-hexadecimal: 1.0.4 dev: true - /parse-filepath/1.0.2: - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} - engines: {node: '>=0.8'} - dependencies: - is-absolute: 1.0.0 - map-cache: 0.2.2 - path-root: 0.1.1 - dev: true - - /parse-json/4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - /parse-json/5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -10537,24 +9584,6 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse-path/4.0.4: - resolution: {integrity: sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==} - dependencies: - is-ssh: 1.4.0 - protocols: 1.4.8 - qs: 6.11.0 - query-string: 6.14.1 - dev: true - - /parse-url/6.0.5: - resolution: {integrity: sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==} - dependencies: - is-ssh: 1.4.0 - normalize-url: 6.1.0 - parse-path: 4.0.4 - protocols: 1.4.8 - dev: true - /parse5/6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true @@ -10579,10 +9608,6 @@ packages: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true - /path-dirname/1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - dev: true - /path-exists/3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -10617,29 +9642,10 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-root-regex/0.1.2: - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} - engines: {node: '>=0.10.0'} - dev: true - - /path-root/0.1.1: - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} - engines: {node: '>=0.10.0'} - dependencies: - path-root-regex: 0.1.2 - dev: true - /path-to-regexp/0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true - /path-type/3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -10683,16 +9689,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /pify/3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /pify/5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - dev: true - /pirates/4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -10823,10 +9819,6 @@ packages: react-is: 18.2.0 dev: true - /process-nextick-args/1.0.7: - resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} - dev: true - /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true @@ -10845,20 +9837,6 @@ packages: sisteransi: 1.0.5 dev: true - /property-information/5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - dependencies: - xtend: 4.0.2 - dev: true - - /protocols/1.4.8: - resolution: {integrity: sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==} - dev: true - - /protocols/2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - dev: true - /proxy-addr/2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -10903,13 +9881,6 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /pump/2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true - /pump/3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -10917,14 +9888,6 @@ packages: once: 1.4.0 dev: true - /pumpify/1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - dev: true - /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -10947,16 +9910,6 @@ packages: engines: {node: '>=0.6'} dev: true - /query-string/6.14.1: - resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} - engines: {node: '>=6'} - dependencies: - decode-uri-component: 0.2.0 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - /querystringify/2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true @@ -10980,14 +9933,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /raw-body/1.1.7: - resolution: {integrity: sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==} - engines: {node: '>= 0.8.0'} - dependencies: - bytes: 1.0.0 - string_decoder: 0.10.31 - dev: true - /raw-body/2.5.1: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} engines: {node: '>= 0.8'} @@ -11006,22 +9951,6 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /read-pkg-up/3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - read-pkg: 3.0.0 - dev: true - - /read-pkg-up/4.0.0: - resolution: {integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==} - engines: {node: '>=6'} - dependencies: - find-up: 3.0.0 - read-pkg: 3.0.0 - dev: true - /read-pkg-up/7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -11031,15 +9960,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg/3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - /read-pkg/5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} @@ -11059,29 +9979,6 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream/2.0.6: - resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - string_decoder: 0.10.31 - util-deprecate: 1.0.2 - dev: true - - /readable-stream/2.1.5: - resolution: {integrity: sha512-NkXT2AER7VKXeXtJNSaWLpWIhmtSE3K2PguaLEeWr4JILghcIKqoLt1A3wHrnpDC5+ekf8gfk1GKWkFXe4odMw==} - dependencies: - buffer-shims: 1.0.0 - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - string_decoder: 0.10.31 - util-deprecate: 1.0.2 - dev: true - /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: @@ -11131,23 +10028,6 @@ packages: engines: {node: '>=8'} dev: true - /remark-gfm/1.0.0: - resolution: {integrity: sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==} - dependencies: - mdast-util-gfm: 0.1.2 - micromark-extension-gfm: 0.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /remark-html/13.0.2: - resolution: {integrity: sha512-LhSRQ+3RKdBqB/RGesFWkNNfkGqprDUCwjq54SylfFeNyZby5kqOG8Dn/vYsRoM8htab6EWxFXCY6XIZvMoRiQ==} - dependencies: - hast-util-sanitize: 3.0.2 - hast-util-to-html: 7.1.3 - mdast-util-to-hast: 10.2.0 - dev: true - /remark-parse/10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: @@ -11158,20 +10038,6 @@ packages: - supports-color dev: true - /remark-parse/9.0.0: - resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} - dependencies: - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: true - - /remark-reference-links/5.0.0: - resolution: {integrity: sha512-oSIo6lfDyG/1yYl2jPZNXmD9dgyPxp07mSd7snJagVMsDU6NRlD8i54MwHWUgMoOHTs8lIKPkwaUok/tbr5syQ==} - dependencies: - unist-util-visit: 2.0.3 - dev: true - /remark-stringify/10.0.2: resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==} dependencies: @@ -11180,29 +10046,6 @@ packages: unified: 10.1.2 dev: true - /remark-stringify/9.0.1: - resolution: {integrity: sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==} - dependencies: - mdast-util-to-markdown: 0.6.5 - dev: true - - /remark-toc/7.2.0: - resolution: {integrity: sha512-ppHepvpbg7j5kPFmU5rzDC4k2GTcPDvWcxXyr/7BZzO1cBSPk0stKtEJdsgAyw2WHKPGxadcHIZRjb2/sHxjkg==} - dependencies: - '@types/unist': 2.0.6 - mdast-util-toc: 5.1.0 - dev: true - - /remark/13.0.0: - resolution: {integrity: sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==} - dependencies: - remark-parse: 9.0.0 - remark-stringify: 9.0.1 - unified: 9.2.2 - transitivePeerDependencies: - - supports-color - dev: true - /remark/14.0.2: resolution: {integrity: sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==} dependencies: @@ -11214,23 +10057,6 @@ packages: - supports-color dev: true - /remove-bom-buffer/3.0.0: - resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - is-utf8: 0.2.1 - dev: true - - /remove-bom-stream/1.2.0: - resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} - engines: {node: '>= 0.10'} - dependencies: - remove-bom-buffer: 3.0.0 - safe-buffer: 5.2.1 - through2: 2.0.5 - dev: true - /remove-trailing-separator/1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} dev: true @@ -11245,11 +10071,6 @@ packages: engines: {node: '>=0.10'} dev: true - /replace-ext/1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - dev: true - /request-progress/3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} dependencies: @@ -11329,13 +10150,6 @@ packages: global-dirs: 0.1.1 dev: true - /resolve-options/1.1.0: - resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} - engines: {node: '>= 0.10'} - dependencies: - value-or-function: 3.0.0 - dev: true - /resolve-url/0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -11346,10 +10160,6 @@ packages: engines: {node: '>=10'} dev: true - /resolve/1.1.7: - resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} - dev: true - /resolve/1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: @@ -11410,6 +10220,7 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} + dev: false /rollup/2.79.1: resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} @@ -11431,6 +10242,7 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + dev: false /rxjs/7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} @@ -11453,10 +10265,6 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-json-parse/1.0.1: - resolution: {integrity: sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==} - dev: true - /safe-regex/1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: @@ -11798,10 +10606,6 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true - /space-separated-tokens/1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: true - /spawn-command/0.0.2-1: resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} dev: true @@ -11828,11 +10632,6 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true - /split-on-first/1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - dev: true - /split-string/3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -11846,12 +10645,6 @@ packages: through: 2.3.8 dev: true - /split/1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - dependencies: - through: 2.3.8 - dev: true - /split2/3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -11889,27 +10682,6 @@ packages: escape-string-regexp: 2.0.0 dev: true - /standard-version/9.5.0: - resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} - engines: {node: '>=10'} - hasBin: true - dependencies: - chalk: 2.4.2 - conventional-changelog: 3.1.25 - conventional-changelog-config-spec: 2.1.0 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-recommended-bump: 6.1.0 - detect-indent: 6.1.0 - detect-newline: 3.1.0 - dotgitignore: 2.1.0 - figures: 3.2.0 - find-up: 5.0.0 - git-semver-tags: 4.1.1 - semver: 7.3.8 - stringify-package: 1.0.1 - yargs: 16.2.0 - dev: true - /start-server-and-test/1.14.0: resolution: {integrity: sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==} engines: {node: '>=6'} @@ -11939,35 +10711,12 @@ packages: engines: {node: '>= 0.8'} dev: true - /stream-array/1.1.2: - resolution: {integrity: sha512-1yWdVsMEm/btiMa2YyHiC3mDrtAqlmNNaDRylx2F7KHhm3C4tA6kSR2V9mpeMthv+ujvbl8Kamyh5xaHHdFvyQ==} - engines: {node: '>= 0.8'} - dependencies: - readable-stream: 2.1.5 - dev: true - /stream-combiner/0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} dependencies: duplexer: 0.1.2 dev: true - /stream-combiner2/1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} - dependencies: - duplexer2: 0.1.4 - readable-stream: 2.3.7 - dev: true - - /stream-shift/1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: true - - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: true - /string-argv/0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} @@ -11981,10 +10730,6 @@ packages: strip-ansi: 6.0.1 dev: true - /string-template/0.2.1: - resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} - dev: true - /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -12019,18 +10764,6 @@ packages: safe-buffer: 5.2.1 dev: true - /stringify-entities/3.1.0: - resolution: {integrity: sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==} - dependencies: - character-entities-html4: 1.1.4 - character-entities-legacy: 1.1.4 - xtend: 4.0.2 - dev: true - - /stringify-package/1.0.1: - resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==} - dev: true - /strip-ansi/3.0.1: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} @@ -12057,11 +10790,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-bom/4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} @@ -12089,11 +10817,6 @@ packages: min-indent: 1.0.1 dev: true - /strip-json-comments/2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true - /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -12111,12 +10834,7 @@ packages: /stylis/4.1.3: resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} - - /subarg/1.0.0: - resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} - dependencies: - minimist: 1.2.6 - dev: true + dev: false /supports-color/2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} @@ -12130,13 +10848,6 @@ packages: has-flag: 3.0.0 dev: true - /supports-color/6.1.0: - resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} - engines: {node: '>=6'} - dependencies: - has-flag: 3.0.0 - dev: true - /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -12250,39 +10961,12 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /through2-filter/3.0.0: - resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} - dependencies: - through2: 2.0.5 - xtend: 4.0.2 - dev: true - - /through2/2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - dependencies: - readable-stream: 2.3.7 - xtend: 4.0.2 - dev: true - /through2/4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.0 dev: true - /tiny-lr/1.1.1: - resolution: {integrity: sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==} - dependencies: - body: 5.1.0 - debug: 3.2.7 - faye-websocket: 0.10.0 - livereload-js: 2.4.0 - object-assign: 4.1.1 - qs: 6.11.0 - transitivePeerDependencies: - - supports-color - dev: true - /tinybench/2.3.1: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true @@ -12313,14 +10997,6 @@ packages: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true - /to-absolute-glob/2.0.2: - resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} - engines: {node: '>=0.10.0'} - dependencies: - is-absolute: 1.0.0 - is-negated-glob: 1.0.0 - dev: true - /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -12358,13 +11034,6 @@ packages: safe-regex: 1.1.0 dev: true - /to-through/2.0.0: - resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} - engines: {node: '>= 0.10'} - dependencies: - through2: 2.0.5 - dev: true - /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -12421,10 +11090,6 @@ packages: engines: {node: '>=8'} dev: true - /trough/1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: true - /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true @@ -12622,11 +11287,6 @@ packages: dev: true optional: true - /unc-path-regex/0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - dev: true - /underscore/1.1.7: resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==} dev: true @@ -12643,18 +11303,6 @@ packages: vfile: 5.3.5 dev: true - /unified/9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} - dependencies: - '@types/unist': 2.0.6 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - dev: true - /union-value/1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -12665,13 +11313,6 @@ packages: set-value: 2.0.1 dev: true - /unique-stream/2.3.1: - resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} - dependencies: - json-stable-stringify-without-jsonify: 1.0.1 - through2-filter: 3.0.0 - dev: true - /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -12679,30 +11320,14 @@ packages: crypto-random-string: 2.0.0 dev: true - /unist-builder/2.0.3: - resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - dev: true - /unist-util-flatmap/1.0.0: resolution: {integrity: sha512-IG32jcKJlhARCYT2LsYPJWdoXYkzz3ESAdl1aa2hn9Auh+cgUmU6wgkII4yCc/1GgeWibRdELdCZh/p3QKQ1dQ==} dev: true - /unist-util-generated/1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - dev: true - - /unist-util-is/4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: true - /unist-util-is/5.1.1: resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} dev: true - /unist-util-position/3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} - dev: true - /unist-util-stringify-position/2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: @@ -12715,13 +11340,6 @@ packages: '@types/unist': 2.0.6 dev: true - /unist-util-visit-parents/3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 4.1.0 - dev: true - /unist-util-visit-parents/5.1.1: resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} dependencies: @@ -12729,14 +11347,6 @@ packages: unist-util-is: 5.1.1 dev: true - /unist-util-visit/2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - dev: true - /unist-util-visit/4.1.1: resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==} dependencies: @@ -12866,11 +11476,6 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /value-or-function/3.0.0: - resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} - engines: {node: '>= 0.10'} - dev: true - /vary/1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -12885,13 +11490,6 @@ packages: extsprintf: 1.3.0 dev: true - /vfile-message/2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 2.0.3 - dev: true - /vfile-message/3.1.2: resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} dependencies: @@ -12899,34 +11497,6 @@ packages: unist-util-stringify-position: 3.0.2 dev: true - /vfile-reporter/6.0.2: - resolution: {integrity: sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==} - dependencies: - repeat-string: 1.6.1 - string-width: 4.2.3 - supports-color: 6.1.0 - unist-util-stringify-position: 2.0.3 - vfile-sort: 2.2.2 - vfile-statistics: 1.1.4 - dev: true - - /vfile-sort/2.2.2: - resolution: {integrity: sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==} - dev: true - - /vfile-statistics/1.1.4: - resolution: {integrity: sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==} - dev: true - - /vfile/4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - dev: true - /vfile/5.3.5: resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} dependencies: @@ -12936,54 +11506,6 @@ packages: vfile-message: 3.1.2 dev: true - /vinyl-fs/3.0.3: - resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} - engines: {node: '>= 0.10'} - dependencies: - fs-mkdirp-stream: 1.0.0 - glob-stream: 6.1.0 - graceful-fs: 4.2.10 - is-valid-glob: 1.0.0 - lazystream: 1.0.1 - lead: 1.0.0 - object.assign: 4.1.4 - pumpify: 1.5.1 - readable-stream: 2.3.7 - remove-bom-buffer: 3.0.0 - remove-bom-stream: 1.2.0 - resolve-options: 1.1.0 - through2: 2.0.5 - to-through: 2.0.0 - value-or-function: 3.0.0 - vinyl: 2.2.1 - vinyl-sourcemap: 1.1.0 - dev: true - - /vinyl-sourcemap/1.1.0: - resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} - engines: {node: '>= 0.10'} - dependencies: - append-buffer: 1.0.2 - convert-source-map: 1.8.0 - graceful-fs: 4.2.10 - normalize-path: 2.1.1 - now-and-later: 2.0.1 - remove-bom-buffer: 3.0.0 - vinyl: 2.2.1 - dev: true - - /vinyl/2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} - dependencies: - clone: 2.1.2 - clone-buffer: 1.0.0 - clone-stats: 1.0.0 - cloneable-readable: 1.1.3 - remove-trailing-separator: 1.1.0 - replace-ext: 1.0.1 - dev: true - /vite-plugin-md/0.20.4_nbt6i7tbnkrbcx4lq4tinvsaae: resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} peerDependencies: @@ -13044,14 +11566,14 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_4ciratiyyfxwawp34rwsk4kamu: + /vitepress-plugin-mermaid/2.0.8_dqld22ygcjnolulc7gkwlejcry: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 vite-plugin-md: ^0.20.4 vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: - mermaid: 9.1.7 + mermaid: link:packages/mermaid vite-plugin-md: 0.20.4_nbt6i7tbnkrbcx4lq4tinvsaae vitepress: 1.0.0-alpha.27_tbpndr44ulefs3hehwpi2mkf2y dev: true @@ -13249,15 +11771,6 @@ packages: vue: 3.2.41 dev: true - /vue-template-compiler/2.7.10: - resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==} - requiresBuild: true - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - dev: true - optional: true - /vue/3.2.41: resolution: {integrity: sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==} dependencies: @@ -13343,20 +11856,6 @@ packages: engines: {node: '>=12'} dev: true - /websocket-driver/0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - dev: true - - /websocket-extensions/0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - dev: true - /whatwg-encoding/1.0.5: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} dependencies: @@ -13544,11 +12043,6 @@ packages: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: true - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true @@ -13667,10 +12161,6 @@ packages: engines: {node: '>=10'} dev: true - /zwitch/1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: true - /zwitch/2.0.2: resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 067a01bf0f..066db53472 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: # all packages in direct subdirs of packages/ - 'packages/*' + # - 'tests/*' diff --git a/tests/webpack/package.json b/tests/webpack/package.json new file mode 100644 index 0000000000..c58f456a6b --- /dev/null +++ b/tests/webpack/package.json @@ -0,0 +1,23 @@ +{ + "name": "webpack", + "version": "1.0.0", + "description": "", + "private": true, + "module": "commonjs", + "scripts": { + "build": "webpack", + "serve": "webpack serve" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "webpack": "^5.74.0", + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.11.1" + }, + "dependencies": { + "mermaid": "workspace:*", + "@mermaid-js/mermaid-mindmap": "workspace:*" + } +} diff --git a/tests/webpack/public/index.html b/tests/webpack/public/index.html new file mode 100644 index 0000000000..cf0e7da9fc --- /dev/null +++ b/tests/webpack/public/index.html @@ -0,0 +1,11 @@ + + + + + Getting Started + + +
    + + + diff --git a/tests/webpack/src/index.js b/tests/webpack/src/index.js new file mode 100644 index 0000000000..899f665962 --- /dev/null +++ b/tests/webpack/src/index.js @@ -0,0 +1,38 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint-disable no-console */ +const mermaid = require('mermaid'); +import mindmap from '@mermaid-js/mermaid-mindmap'; + +const render = async (graph) => { + const svg = await mermaid.renderAsync('dummy', graph); + console.log(svg); + document.getElementById('graphDiv').innerHTML = svg; +}; + +const load = async () => { + await mermaid.registerExternalDiagrams([mindmap]); + await render('info'); + + setTimeout(async () => { + await render(`mindmap + root((mindmap)) + Origins + Long history + ::icon(fa fa-book) + Popularisation + British popular psychology author Tony Buzan + Research + On effectivness
    and features + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid + `); + }, 2500); +}; + +window.addEventListener('load', load, false); diff --git a/tests/webpack/webpack.config.js b/tests/webpack/webpack.config.js new file mode 100644 index 0000000000..3c35a39228 --- /dev/null +++ b/tests/webpack/webpack.config.js @@ -0,0 +1,10 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require('path'); + +module.exports = { + entry: './src/index.js', + output: { + filename: 'main.js', + path: path.resolve(__dirname, 'dist'), + }, +}; From 195f3a5feb8a8c989cd727a9519325e490ce541e Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 10 Nov 2022 18:23:03 +0000 Subject: [PATCH 0607/1038] ci(lint-checker): lock down permissions Lock down the GITHUB_TOKEN permissions. lychee only needs `GITHUB_TOKEN` to read public data without hitting rate-limits, so having read-only access to contents should be fine. --- .github/workflows/link-checker.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 953260b743..8652c50120 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -20,6 +20,9 @@ on: jobs: linkChecker: runs-on: ubuntu-latest + permissions: + # lychee only uses the GITHUB_TOKEN to avoid rate-limiting + contents: read steps: - uses: actions/checkout@v3 From ab92b5c1008d2cfb15eae5f2df09ebcb99b291ef Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 11 Nov 2022 01:54:29 +0530 Subject: [PATCH 0608/1038] chore: Cleanup pakage.json, fix jisonLint --- .vite/build.ts | 6 +- .vite/tsconfig.json | 6 - package.json | 31 +- packages/mermaid-mindmap/package.json | 14 +- packages/mermaid/package.json | 30 +- pnpm-lock.yaml | 1516 ++--------------- .../mermaid/src => scripts}/jison/lint.mts | 5 +- 7 files changed, 130 insertions(+), 1478 deletions(-) delete mode 100644 .vite/tsconfig.json rename {packages/mermaid/src => scripts}/jison/lint.mts (86%) diff --git a/.vite/build.ts b/.vite/build.ts index e125a335a7..2b686b7653 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -2,9 +2,8 @@ import { build, InlineConfig } from 'vite'; import { resolve } from 'path'; import { fileURLToPath } from 'url'; import jisonPlugin from './jisonPlugin.js'; -import pkg from '../package.json' assert { type: 'json' }; +import { readFileSync } from 'fs'; -const { dependencies } = pkg; const watch = process.argv.includes('--watch'); const mermaidOnly = process.argv.includes('--mermaid'); const __dirname = fileURLToPath(new URL('.', import.meta.url)); @@ -59,6 +58,9 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) ]; if (core) { + const { dependencies } = JSON.parse( + readFileSync(resolve(__dirname, `../packages/${packageName}/package.json`), 'utf-8') + ); // Core build is used to generate file without bundled dependencies. // This is used by downstream projects to bundle dependencies themselves. external.push(...Object.keys(dependencies)); diff --git a/.vite/tsconfig.json b/.vite/tsconfig.json deleted file mode 100644 index 915436da1e..0000000000 --- a/.vite/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022" - } -} diff --git a/package.json b/package.json index 49f9796b2f..f2c1783f3b 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "git graph" ], "scripts": { - "build:mermaid": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts --mermaid", - "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts", + "build:mermaid": "ts-node-esm --transpileOnly .vite/build.ts --mermaid", + "build:vite": "ts-node-esm --transpileOnly .vite/build.ts", "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", @@ -25,13 +25,13 @@ "docs:verify": "pnpm docs:build --verify", "todo-postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", + "lint": "eslint --cache --ignore-path .gitignore . && pnpm run lint:jison && prettier --check .", + "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", + "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "vdocs:dev": "vitepress dev vdocs", "vdocs:build": "vitepress build vdocs", "vdocs:serve": "vitepress serve vdocs", "postbuild": "echo 'building docs from code here soon'", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm --transpileOnly packages/mermaid/src/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", @@ -59,24 +59,6 @@ "page" ] }, - "dependencies": { - "@braintree/sanitize-url": "^6.0.0", - "@types/node": "^18.8.1", - "@types/uuid": "^8.3.4", - "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", - "dompurify": "2.4.0", - "fast-clone": "^1.5.13", - "graphlib": "^2.1.8", - "khroma": "^2.0.0", - "lodash": "^4.17.21", - "moment-mini": "^2.24.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "rollup": "^2.79.1", - "stylis": "^4.1.2", - "uuid": "^9.0.0" - }, "devDependencies": { "@applitools/eyes-cypress": "^3.27.1", "@commitlint/cli": "^17.1.2", @@ -88,8 +70,10 @@ "@types/jsdom": "^20.0.0", "@types/lodash": "^4.14.186", "@types/mdast": "^3.0.10", + "@types/node": "^18.11.9", "@types/prettier": "^2.7.1", "@types/stylis": "^4.0.2", + "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^5.39.0", "@typescript-eslint/parser": "^5.39.0", "@vitest/coverage-c8": "^0.23.4", @@ -117,7 +101,6 @@ "jsdom": "^20.0.1", "lint-staged": "^13.0.3", "markdown-it": "^13.0.1", - "path-browserify": "^1.0.1", "pnpm": "^7.13.2", "prettier": "^2.7.1", "prettier-plugin-jsdoc": "^0.4.2", diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 52524c26ad..24adb608a6 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -19,18 +19,7 @@ "mermaid" ], "scripts": { - "clean": "rimraf dist", - "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:watch": "yarn build:code --watch", - "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:esbuild", - "dev": "node .esbuild/serve.cjs", - "release": "yarn build", - "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm src/jison/lint.mts", - "todo-prepare": "concurrently \"husky install ../../.husky\" \"yarn build\"", - "todo-pre-commit": "lint-staged" + "prepublishOnly": "pnpm -w run build" }, "repository": { "type": "git", @@ -54,6 +43,7 @@ "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.1.0", "d3": "^7.0.0", + "khroma": "^2.0.0", "non-layered-tidy-tree-layout": "^2.0.2" }, "devDependencies": { diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index bf9452c5d7..9cbc695b1e 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -25,24 +25,11 @@ ], "scripts": { "clean": "rimraf dist", - "build:code": "node .esbuild/esbuild.cjs", - "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:watch": "yarn build:code --watch", - "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:esbuild", - "dev": "node .esbuild/serve.cjs", "docs:build": "ts-node-esm src/docs.mts", - "docs:verify": "yarn docs:build --verify", + "docs:verify": "pnpm docs:build --verify", "todo-postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > src/docs/Setup.md && prettier --write src/docs/Setup.md", - "release": "yarn build", - "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm src/jison/lint.mts", - "cypress": "cypress run", - "cypress:open": "cypress open", - "e2e": "start-server-and-test dev http://localhost:9000/ cypress", - "todo-prepare": "concurrently \"husky install\" \"yarn build\"", - "pre-commit": "lint-staged" + "release": "pnpm build", + "prepublishOnly": "pnpm -w run build" }, "repository": { "type": "git", @@ -92,10 +79,7 @@ "@typescript-eslint/parser": "^5.37.0", "concurrently": "^7.4.0", "coveralls": "^3.1.1", - "cypress": "^10.0.0", - "cypress-image-snapshot": "^4.0.1", "documentation": "13.2.0", - "esbuild": "^0.15.8", "eslint": "^8.23.1", "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", @@ -104,18 +88,10 @@ "eslint-plugin-jsdoc": "^39.3.6", "eslint-plugin-json": "^3.1.0", "eslint-plugin-markdown": "^3.0.0", - "express": "^4.18.1", - "globby": "^13.1.2", - "husky": "^8.0.0", "identity-obj-proxy": "^3.0.0", "jison": "^0.4.18", "js-base64": "3.7.2", "jsdom": "^20.0.0", - "lint-staged": "^13.0.0", - "moment": "^2.23.0", - "path-browserify": "^1.0.1", - "prettier": "^2.7.1", - "prettier-plugin-jsdoc": "^0.4.2", "remark": "^14.0.2", "rimraf": "^3.0.2", "start-server-and-test": "^1.12.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f83721ed24..6af2728e1d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,6 @@ importers: .: specifiers: '@applitools/eyes-cypress': ^3.27.1 - '@braintree/sanitize-url': ^6.0.0 '@commitlint/cli': ^17.1.2 '@commitlint/config-conventional': ^17.1.0 '@types/d3': ^7.4.0 @@ -18,7 +17,7 @@ importers: '@types/jsdom': ^20.0.0 '@types/lodash': ^4.14.186 '@types/mdast': ^3.0.10 - '@types/node': ^18.8.1 + '@types/node': ^18.11.9 '@types/prettier': ^2.7.1 '@types/stylis': ^4.0.2 '@types/uuid': ^8.3.4 @@ -30,11 +29,7 @@ importers: coveralls: ^3.1.1 cypress: ^10.0.0 cypress-image-snapshot: ^4.0.1 - d3: ^7.0.0 - dagre: ^0.8.5 - dagre-d3: ^0.6.4 documentation: 13.2.0 - dompurify: 2.4.0 esbuild: ^0.15.10 eslint: ^8.24.0 eslint-config-prettier: ^8.5.0 @@ -45,55 +40,29 @@ importers: eslint-plugin-json: ^3.1.0 eslint-plugin-markdown: ^3.0.0 express: ^4.18.1 - fast-clone: ^1.5.13 globby: ^13.1.2 - graphlib: ^2.1.8 husky: ^8.0.1 identity-obj-proxy: ^3.0.0 jest: 29.x jison: ^0.4.18 jsdom: ^20.0.1 - khroma: ^2.0.0 lint-staged: ^13.0.3 - lodash: ^4.17.21 markdown-it: ^13.0.1 - moment-mini: ^2.24.0 - non-layered-tidy-tree-layout: ^2.0.2 - path-browserify: ^1.0.1 + mermaid: '' pnpm: ^7.13.2 prettier: ^2.7.1 prettier-plugin-jsdoc: ^0.4.2 remark: ^14.0.2 rimraf: ^3.0.2 - rollup: ^2.79.1 start-server-and-test: ^1.14.0 - stylis: ^4.1.2 ts-node: ^10.9.1 typescript: ^4.8.4 unist-util-flatmap: ^1.0.0 - uuid: ^9.0.0 vite: ^3.1.4 vitepress: ^1.0.0-alpha.19 vitepress-plugin-mermaid: ^2.0.8 vitepress-plugin-search: ^1.0.4-alpha.11 vitest: ^0.23.4 - dependencies: - '@braintree/sanitize-url': 6.0.0 - '@types/node': 18.8.1 - '@types/uuid': 8.3.4 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.0 - fast-clone: 1.5.13 - graphlib: 2.1.8 - khroma: 2.0.0 - lodash: 4.17.21 - moment-mini: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - rollup: 2.79.1 - stylis: 4.1.2 - uuid: 9.0.0 devDependencies: '@applitools/eyes-cypress': 3.27.1 '@commitlint/cli': 17.1.2 @@ -105,8 +74,10 @@ importers: '@types/jsdom': 20.0.0 '@types/lodash': 4.14.186 '@types/mdast': 3.0.10 + '@types/node': 18.11.9 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 + '@types/uuid': 8.3.4 '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa '@vitest/coverage-c8': 0.23.4_dnicfi6n7tywwajisjusxhbdzm @@ -129,24 +100,23 @@ importers: globby: 13.1.2 husky: 8.0.1 identity-obj-proxy: 3.0.0 - jest: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest: 29.1.1_odkjkoia5xunhxkdrka32ib6vi jison: 0.4.18 jsdom: 20.0.1 lint-staged: 13.0.3 markdown-it: 13.0.1 - path-browserify: 1.0.1 pnpm: 7.13.2 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_jrs6fgrkrfl5zdawlcdiuhuotq + ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 typescript: 4.8.4 unist-util-flatmap: 1.0.0 vite: 3.1.4 vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_ml5vzxpqibyfsid5kdls3ch6aa + vitepress-plugin-mermaid: 2.0.8_ptytdeik3ggcnromfbdnybzvtu vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y vitest: 0.23.4_dnicfi6n7tywwajisjusxhbdzm @@ -169,14 +139,11 @@ importers: '@typescript-eslint/parser': ^5.37.0 concurrently: ^7.4.0 coveralls: ^3.1.1 - cypress: ^10.0.0 - cypress-image-snapshot: ^4.0.1 d3: ^7.0.0 dagre: ^0.8.5 dagre-d3: ^0.6.4 documentation: 13.2.0 dompurify: 2.4.0 - esbuild: ^0.15.8 eslint: ^8.23.1 eslint-config-prettier: ^8.5.0 eslint-plugin-cypress: ^2.12.1 @@ -185,24 +152,16 @@ importers: eslint-plugin-jsdoc: ^39.3.6 eslint-plugin-json: ^3.1.0 eslint-plugin-markdown: ^3.0.0 - express: ^4.18.1 fast-clone: ^1.5.13 - globby: ^13.1.2 graphlib: ^2.1.8 - husky: ^8.0.0 identity-obj-proxy: ^3.0.0 jison: ^0.4.18 js-base64: 3.7.2 jsdom: ^20.0.0 khroma: ^2.0.0 - lint-staged: ^13.0.0 lodash: ^4.17.21 - moment: ^2.23.0 moment-mini: ^2.24.0 non-layered-tidy-tree-layout: ^2.0.2 - path-browserify: ^1.0.1 - prettier: ^2.7.1 - prettier-plugin-jsdoc: ^0.4.2 remark: ^14.0.2 rimraf: ^3.0.2 start-server-and-test: ^1.12.6 @@ -242,34 +201,23 @@ importers: '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha concurrently: 7.4.0 coveralls: 3.1.1 - cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@26.6.3 documentation: 13.2.0 - esbuild: 0.15.8 eslint: 8.23.1 eslint-config-prettier: 8.5.0_eslint@8.23.1 eslint-plugin-cypress: 2.12.1_eslint@8.23.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_f7dzv4ir665cww75ncpbtb7glm + eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.23.1 - express: 4.18.1 - globby: 13.1.2 - husky: 8.0.1 identity-obj-proxy: 3.0.0 jison: 0.4.18 js-base64: 3.7.2 jsdom: 20.0.0 - lint-staged: 13.0.3 - moment: 2.29.4 - path-browserify: 1.0.1 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 rimraf: 3.0.2 start-server-and-test: 1.14.0 - ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a + ts-node: 10.9.1_h6wsvvmh4l7tb54yk3ecr4mgtm typescript: 4.8.3 unist-util-flatmap: 1.0.0 @@ -289,6 +237,7 @@ importers: cytoscape-cose-bilkent: ^4.1.0 cytoscape-fcose: ^2.1.0 d3: ^7.0.0 + khroma: ^2.0.0 mermaid: workspace:* non-layered-tidy-tree-layout: ^2.0.2 rimraf: ^3.0.2 @@ -298,6 +247,7 @@ importers: cytoscape-cose-bilkent: 4.1.0_cytoscape@3.23.0 cytoscape-fcose: 2.1.0_cytoscape@3.23.0 d3: 7.6.1 + khroma: 2.0.0 non-layered-tidy-tree-layout: 2.0.2 devDependencies: concurrently: 7.4.0 @@ -2132,15 +2082,7 @@ packages: /@braintree/sanitize-url/6.0.0: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} - - /@cnakazawa/watch/1.0.4: - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} - hasBin: true - dependencies: - exec-sh: 0.3.6 - minimist: 1.2.6 - dev: true + dev: false /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -2407,17 +2349,6 @@ packages: dev: true optional: true - /@esbuild/android-arm/0.15.8: - resolution: {integrity: sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dependencies: - esbuild-wasm: 0.15.8 - dev: true - optional: true - /@esbuild/linux-loong64/0.15.10: resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} engines: {node: '>=12'} @@ -2427,15 +2358,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.8: - resolution: {integrity: sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@eslint/eslintrc/1.3.2: resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2508,70 +2430,18 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console/26.6.2: - resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - jest-message-util: 26.6.2 - jest-util: 26.6.2 - slash: 3.0.0 - dev: true - /@jest/console/29.1.0: resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 chalk: 4.1.2 jest-message-util: 29.1.0 jest-util: 29.1.0 slash: 3.0.0 dev: true - /@jest/core/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/reporters': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 26.6.2 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - jest-watcher: 26.6.2 - micromatch: 4.0.5 - p-each-series: 2.2.0 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/core/29.1.1_ts-node@10.9.1: resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2586,14 +2456,14 @@ packages: '@jest/test-result': 29.1.0 '@jest/transform': 29.1.0 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.0.0 - jest-config: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest-config: 29.1.1_odkjkoia5xunhxkdrka32ib6vi jest-haste-map: 29.1.0 jest-message-util: 29.1.0 jest-regex-util: 29.0.0 @@ -2614,23 +2484,13 @@ packages: - ts-node dev: true - /@jest/environment/26.6.2: - resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - jest-mock: 26.6.2 - dev: true - /@jest/environment/29.1.1: resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.1.1 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 jest-mock: 29.1.1 dev: true @@ -2651,39 +2511,18 @@ packages: - supports-color dev: true - /@jest/fake-timers/26.6.2: - resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@sinonjs/fake-timers': 6.0.1 - '@types/node': 18.8.1 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - /@jest/fake-timers/29.1.1: resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.1.0 '@sinonjs/fake-timers': 9.1.2 - '@types/node': 18.8.1 + '@types/node': 18.11.9 jest-message-util: 29.1.0 jest-mock: 29.1.1 jest-util: 29.1.0 dev: true - /@jest/globals/26.6.2: - resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/types': 26.6.2 - expect: 26.6.2 - dev: true - /@jest/globals/29.1.1: resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2696,40 +2535,6 @@ packages: - supports-color dev: true - /@jest/reporters/26.6.2: - resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-haste-map: 26.6.2 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 7.1.2 - optionalDependencies: - node-notifier: 8.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/reporters/29.1.0: resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2745,7 +2550,7 @@ packages: '@jest/transform': 29.1.0 '@jest/types': 29.1.0 '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 18.8.1 + '@types/node': 18.11.9 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -2775,15 +2580,6 @@ packages: '@sinclair/typebox': 0.24.43 dev: true - /@jest/source-map/26.6.2: - resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} - engines: {node: '>= 10.14.2'} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.10 - source-map: 0.6.1 - dev: true - /@jest/source-map/29.0.0: resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2793,16 +2589,6 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/test-result/26.6.2: - resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/types': 26.6.2 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - /@jest/test-result/29.1.0: resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2813,23 +2599,6 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/test-sequencer/29.1.0: resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2840,29 +2609,6 @@ packages: slash: 3.0.0 dev: true - /@jest/transform/26.6.2: - resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/core': 7.12.3 - '@jest/types': 26.6.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-regex-util: 26.0.0 - jest-util: 26.6.2 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/transform/29.1.0: resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2886,17 +2632,6 @@ packages: - supports-color dev: true - /@jest/types/26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.8.1 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - dev: true - /@jest/types/29.1.0: resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2904,7 +2639,7 @@ packages: '@jest/schemas': 29.0.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.8.1 + '@types/node': 18.11.9 '@types/yargs': 17.0.13 chalk: 4.1.2 dev: true @@ -3008,12 +2743,6 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/6.0.1: - resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: @@ -3086,7 +2815,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/cacheable-request/6.0.2: @@ -3094,7 +2823,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 18.8.1 + '@types/node': 18.11.9 '@types/responselike': 1.0.0 dev: true @@ -3111,13 +2840,13 @@ packages: /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/d3-array/3.0.3: @@ -3325,7 +3054,7 @@ packages: /@types/express-serve-static-core/4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -3342,7 +3071,7 @@ packages: /@types/form-data/0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/geojson/7946.0.10: @@ -3352,7 +3081,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/http-cache-semantics/4.0.1: @@ -3378,7 +3107,7 @@ packages: /@types/jsdom/20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 18.7.21 + '@types/node': 18.11.9 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -3390,7 +3119,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/lodash/4.14.185: @@ -3431,13 +3160,10 @@ packages: resolution: {integrity: sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==} dev: true - /@types/node/18.7.21: - resolution: {integrity: sha512-rLFzK5bhM0YPyCoTC8bolBjMk7bwnZ8qeZUBslBfjZQou2ssJdWslx9CZ8DGM+Dx7QXQiiTVZ/6QO6kwtHkZCA==} + /@types/node/18.11.9: + resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} dev: true - /@types/node/18.8.1: - resolution: {integrity: sha512-vuYaNuEIbOYLTLUAJh50ezEbvxrD43iby+lpUA2aa148Nh5kX/AVO/9m1Ahmbux2iU5uxJTNF9g2Y+31uml7RQ==} - /@types/node/8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} dev: true @@ -3469,14 +3195,14 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true /@types/sinonjs__fake-timers/8.1.1: @@ -3509,6 +3235,7 @@ packages: /@types/uuid/8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + dev: true /@types/web-bluetooth/0.0.15: resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} @@ -3518,12 +3245,6 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - /@types/yargs/17.0.13: resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} dependencies: @@ -3534,7 +3255,7 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 dev: true optional: true @@ -4251,15 +3972,6 @@ packages: engines: {node: '>=12'} dev: true - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -4417,25 +4129,6 @@ packages: - debug dev: true - /babel-jest/26.6.3_@babel+core@7.12.3: - resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2_@babel+core@7.12.3 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-jest/29.1.0_@babel+core@7.12.3: resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4473,16 +4166,6 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/26.6.2: - resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.19.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.18.2 - dev: true - /babel-plugin-jest-hoist/29.0.2: resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4549,17 +4232,6 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 dev: true - /babel-preset-jest/26.6.2_@babel+core@7.12.3: - resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 - dev: true - /babel-preset-jest/29.0.2_@babel+core@7.12.3: resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4875,13 +4547,6 @@ packages: resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} dev: true - /capture-exit/2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} - dependencies: - rsvp: 4.8.5 - dev: true - /caseless/0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true @@ -4988,18 +4653,10 @@ packages: fsevents: 2.3.2 dev: true - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true - /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true - /cjs-module-lexer/0.6.0: - resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} - dev: true - /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -5172,6 +4829,7 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -5566,10 +5224,6 @@ packages: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -5585,23 +5239,6 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@26.6.3: - resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} - engines: {node: '>=8'} - peerDependencies: - cypress: ^4.5.0 - dependencies: - chalk: 2.4.2 - cypress: 10.8.0 - fs-extra: 7.0.1 - glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 - pkg-dir: 3.0.0 - term-img: 4.1.0 - transitivePeerDependencies: - - jest - dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@29.1.1: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} @@ -5700,10 +5337,12 @@ packages: engines: {node: '>=12'} dependencies: internmap: 2.0.3 + dev: false /d3-axis/3.0.0: resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} engines: {node: '>=12'} + dev: false /d3-brush/3.0.0: resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} @@ -5714,32 +5353,38 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false /d3-chord/3.0.1: resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 + dev: false /d3-color/3.1.0: resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} engines: {node: '>=12'} + dev: false /d3-contour/4.0.0: resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-delaunay/6.0.2: resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} engines: {node: '>=12'} dependencies: delaunator: 5.0.0 + dev: false /d3-dispatch/3.0.1: resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} engines: {node: '>=12'} + dev: false /d3-drag/3.0.0: resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} @@ -5747,6 +5392,7 @@ packages: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 + dev: false /d3-dsv/3.0.1: resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} @@ -5756,16 +5402,19 @@ packages: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 + dev: false /d3-ease/3.0.1: resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} engines: {node: '>=12'} + dev: false /d3-fetch/3.0.1: resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} engines: {node: '>=12'} dependencies: d3-dsv: 3.0.1 + dev: false /d3-force/3.0.0: resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} @@ -5774,42 +5423,51 @@ packages: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 + dev: false /d3-format/3.1.0: resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} engines: {node: '>=12'} + dev: false /d3-geo/3.0.1: resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-hierarchy/3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} engines: {node: '>=12'} + dev: false /d3-interpolate/3.0.1: resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} engines: {node: '>=12'} dependencies: d3-color: 3.1.0 + dev: false /d3-path/3.0.1: resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} engines: {node: '>=12'} + dev: false /d3-polygon/3.0.1: resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} engines: {node: '>=12'} + dev: false /d3-quadtree/3.0.1: resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} engines: {node: '>=12'} + dev: false /d3-random/3.0.1: resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} engines: {node: '>=12'} + dev: false /d3-scale-chromatic/3.0.0: resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} @@ -5817,6 +5475,7 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 + dev: false /d3-scale/4.0.2: resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} @@ -5827,32 +5486,38 @@ packages: d3-interpolate: 3.0.1 d3-time: 3.0.0 d3-time-format: 4.1.0 + dev: false /d3-selection/3.0.0: resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} engines: {node: '>=12'} + dev: false /d3-shape/3.1.0: resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} engines: {node: '>=12'} dependencies: d3-path: 3.0.1 + dev: false /d3-time-format/4.1.0: resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} engines: {node: '>=12'} dependencies: d3-time: 3.0.0 + dev: false /d3-time/3.0.0: resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 + dev: false /d3-timer/3.0.1: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} + dev: false /d3-transition/3.0.1_d3-selection@3.0.0: resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} @@ -5866,6 +5531,7 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 + dev: false /d3-zoom/3.0.0: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} @@ -5876,6 +5542,7 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1_d3-selection@3.0.0 + dev: false /d3/7.6.1: resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} @@ -5911,6 +5578,7 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1_d3-selection@3.0.0 d3-zoom: 3.0.0 + dev: false /dagre-d3/0.6.4: resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} @@ -5919,12 +5587,14 @@ packages: dagre: 0.8.5 graphlib: 2.1.8 lodash: 4.17.21 + dev: false /dagre/0.8.5: resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} dependencies: graphlib: 2.1.8 lodash: 4.17.21 + dev: false /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} @@ -5943,15 +5613,6 @@ packages: engines: {node: '>= 6'} dev: true - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -6157,6 +5818,7 @@ packages: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: robust-predicates: 3.0.1 + dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -6209,11 +5871,6 @@ packages: minimist: 1.2.6 dev: true - /diff-sequences/26.6.2: - resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} - engines: {node: '>= 10.14.2'} - dev: true - /diff-sequences/29.0.0: resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6337,13 +5994,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -6360,6 +6010,7 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} + dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -6431,11 +6082,6 @@ packages: engines: {node: '>=12'} dev: true - /emittery/0.7.2: - resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} - engines: {node: '>=10'} - dev: true - /emoji-regex/6.1.1: resolution: {integrity: sha512-WfVwM9e+M9B/4Qjh9SRnPX2A74Tom3WlVfWF9QWJ8f2BPa1u+/q4aEp1tizZ3vBKAZTg7B6yxn3t9iMjT+dv4w==} dev: true @@ -6497,17 +6143,6 @@ packages: dev: true optional: true - /esbuild-android-64/0.15.8: - resolution: {integrity: sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dependencies: - esbuild-wasm: 0.15.8 - dev: true - optional: true - /esbuild-android-arm64/0.15.10: resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} engines: {node: '>=12'} @@ -6517,15 +6152,6 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.8: - resolution: {integrity: sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-64/0.15.10: resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} engines: {node: '>=12'} @@ -6535,15 +6161,6 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.8: - resolution: {integrity: sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-arm64/0.15.10: resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} engines: {node: '>=12'} @@ -6553,15 +6170,6 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.8: - resolution: {integrity: sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-64/0.15.10: resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} engines: {node: '>=12'} @@ -6571,15 +6179,6 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.8: - resolution: {integrity: sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-arm64/0.15.10: resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} engines: {node: '>=12'} @@ -6589,15 +6188,6 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.8: - resolution: {integrity: sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-32/0.15.10: resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} engines: {node: '>=12'} @@ -6607,15 +6197,6 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.8: - resolution: {integrity: sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-64/0.15.10: resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} engines: {node: '>=12'} @@ -6625,15 +6206,6 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.8: - resolution: {integrity: sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm/0.15.10: resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} engines: {node: '>=12'} @@ -6643,15 +6215,6 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.8: - resolution: {integrity: sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm64/0.15.10: resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} engines: {node: '>=12'} @@ -6661,15 +6224,6 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.8: - resolution: {integrity: sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-mips64le/0.15.10: resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} engines: {node: '>=12'} @@ -6679,15 +6233,6 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.8: - resolution: {integrity: sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-ppc64le/0.15.10: resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} engines: {node: '>=12'} @@ -6697,15 +6242,6 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.8: - resolution: {integrity: sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-riscv64/0.15.10: resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} engines: {node: '>=12'} @@ -6715,15 +6251,6 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.8: - resolution: {integrity: sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-s390x/0.15.10: resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} engines: {node: '>=12'} @@ -6733,15 +6260,6 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.8: - resolution: {integrity: sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-netbsd-64/0.15.10: resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} engines: {node: '>=12'} @@ -6751,15 +6269,6 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.8: - resolution: {integrity: sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-openbsd-64/0.15.10: resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} engines: {node: '>=12'} @@ -6769,15 +6278,6 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.8: - resolution: {integrity: sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-sunos-64/0.15.10: resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} engines: {node: '>=12'} @@ -6787,23 +6287,6 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.8: - resolution: {integrity: sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-wasm/0.15.8: - resolution: {integrity: sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - dev: true - optional: true - /esbuild-windows-32/0.15.10: resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} engines: {node: '>=12'} @@ -6813,15 +6296,6 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.8: - resolution: {integrity: sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-64/0.15.10: resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} engines: {node: '>=12'} @@ -6831,15 +6305,6 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.8: - resolution: {integrity: sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-arm64/0.15.10: resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} engines: {node: '>=12'} @@ -6849,15 +6314,6 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.8: - resolution: {integrity: sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild/0.15.10: resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} engines: {node: '>=12'} @@ -6888,36 +6344,6 @@ packages: esbuild-windows-arm64: 0.15.10 dev: true - /esbuild/0.15.8: - resolution: {integrity: sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.8 - '@esbuild/linux-loong64': 0.15.8 - esbuild-android-64: 0.15.8 - esbuild-android-arm64: 0.15.8 - esbuild-darwin-64: 0.15.8 - esbuild-darwin-arm64: 0.15.8 - esbuild-freebsd-64: 0.15.8 - esbuild-freebsd-arm64: 0.15.8 - esbuild-linux-32: 0.15.8 - esbuild-linux-64: 0.15.8 - esbuild-linux-arm: 0.15.8 - esbuild-linux-arm64: 0.15.8 - esbuild-linux-mips64le: 0.15.8 - esbuild-linux-ppc64le: 0.15.8 - esbuild-linux-riscv64: 0.15.8 - esbuild-linux-s390x: 0.15.8 - esbuild-netbsd-64: 0.15.8 - esbuild-openbsd-64: 0.15.8 - esbuild-sunos-64: 0.15.8 - esbuild-windows-32: 0.15.8 - esbuild-windows-64: 0.15.8 - esbuild-windows-arm64: 0.15.8 - dev: true - /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -7022,7 +6448,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.0.4_f7dzv4ir665cww75ncpbtb7glm: + /eslint-plugin-jest/27.0.4_w7j56xfuh6bbmrubefdaspmpla: resolution: {integrity: sha512-BuvY78pHMpMJ6Cio7sKg6jrqEcnRYPUc4Nlihku4vKx3FjlmMINSX4vcYokZIe+8TKcyr1aI5Kq7vYwgJNdQSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -7038,7 +6464,6 @@ packages: '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha eslint: 8.23.1 - jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -7060,7 +6485,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa eslint: 8.24.0 - jest: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest: 29.1.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - supports-color - typescript @@ -7366,10 +6791,6 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true - /exec-sh/0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} - dev: true - /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -7455,18 +6876,6 @@ packages: - supports-color dev: true - /expect/26.6.2: - resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - ansi-styles: 4.3.0 - jest-get-type: 26.3.0 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - dev: true - /expect/29.1.0: resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7766,15 +7175,6 @@ packages: mime-types: 2.1.35 dev: true - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7863,6 +7263,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /ftp/0.3.10: @@ -8172,6 +7573,7 @@ packages: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 + dev: false /gray-matter/4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} @@ -8183,11 +7585,6 @@ packages: strip-bom-string: 1.0.0 dev: true - /growly/1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} - dev: true - optional: true - /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} @@ -8357,13 +7754,6 @@ packages: lru-cache: 6.0.0 dev: true - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -8593,6 +7983,7 @@ packages: /internmap/2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} + dev: false /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} @@ -8665,13 +8056,6 @@ packages: engines: {node: '>=4'} dev: true - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: true - /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -8721,13 +8105,6 @@ packages: kind-of: 6.0.3 dev: true - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true - optional: true - /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -8907,14 +8284,6 @@ packages: resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} dev: true - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - optional: true - /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true @@ -8948,18 +8317,6 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.12.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-instrument/5.2.0: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} @@ -9009,15 +8366,6 @@ packages: plist: 3.0.6 dev: true - /jest-changed-files/26.6.2: - resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - execa: 4.1.0 - throat: 5.0.0 - dev: true - /jest-changed-files/29.0.0: resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9034,7 +8382,7 @@ packages: '@jest/expect': 29.1.0 '@jest/test-result': 29.1.0 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -9053,33 +8401,7 @@ packages: - supports-color dev: true - /jest-cli/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - is-ci: 2.0.0 - jest-config: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-validate: 26.6.2 - prompts: 2.4.2 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-cli/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: + /jest-cli/29.1.1_odkjkoia5xunhxkdrka32ib6vi: resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -9096,7 +8418,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest-config: 29.1.1_odkjkoia5xunhxkdrka32ib6vi jest-util: 29.1.0 jest-validate: 29.1.0 prompts: 2.4.2 @@ -9107,42 +8429,7 @@ packages: - ts-node dev: true - /jest-config/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} - engines: {node: '>= 10.14.2'} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.12.3 - '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 - '@jest/types': 26.6.2 - babel-jest: 26.6.3_@babel+core@7.12.3 - chalk: 4.1.2 - deepmerge: 4.2.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-environment-jsdom: 26.6.2 - jest-environment-node: 26.6.2 - jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3_ts-node@10.9.1 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - micromatch: 4.0.5 - pretty-format: 26.6.2 - ts-node: 10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-config/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: + /jest-config/29.1.1_odkjkoia5xunhxkdrka32ib6vi: resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -9157,7 +8444,7 @@ packages: '@babel/core': 7.12.3 '@jest/test-sequencer': 29.1.0 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 babel-jest: 29.1.0_@babel+core@7.12.3 chalk: 4.1.2 ci-info: 3.4.0 @@ -9177,21 +8464,11 @@ packages: pretty-format: 29.1.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_jrs6fgrkrfl5zdawlcdiuhuotq + ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 transitivePeerDependencies: - supports-color dev: true - /jest-diff/26.6.2: - resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - diff-sequences: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-diff/29.1.0: resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9202,13 +8479,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-docblock/26.0.0: - resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} - engines: {node: '>= 10.14.2'} - dependencies: - detect-newline: 3.1.0 - dev: true - /jest-docblock/29.0.0: resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9216,17 +8486,6 @@ packages: detect-newline: 3.1.0 dev: true - /jest-each/26.6.2: - resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - jest-get-type: 26.3.0 - jest-util: 26.6.2 - pretty-format: 26.6.2 - dev: true - /jest-each/29.1.0: resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9238,36 +8497,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-environment-jsdom/26.6.2: - resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - jest-mock: 26.6.2 - jest-util: 26.6.2 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/26.6.2: - resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - /jest-environment-node/29.1.1: resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9275,51 +8504,23 @@ packages: '@jest/environment': 29.1.1 '@jest/fake-timers': 29.1.1 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 jest-mock: 29.1.1 jest-util: 29.1.0 dev: true - /jest-get-type/26.3.0: - resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-get-type/29.0.0: resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map/26.6.2: - resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.5 - '@types/node': 18.8.1 - anymatch: 3.1.2 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 26.0.0 - jest-serializer: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - micromatch: 4.0.5 - sane: 4.1.0 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-haste-map/29.1.0: resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.1.0 '@types/graceful-fs': 4.1.5 - '@types/node': 18.8.1 + '@types/node': 18.11.9 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -9332,24 +8533,6 @@ packages: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0_jest@26.6.3: - resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} - engines: {node: '>= 10.14.2'} - peerDependencies: - jest: '>=20 <=26' - dependencies: - chalk: 1.1.3 - get-stdin: 5.0.1 - glur: 1.1.2 - jest: 26.6.3_ts-node@10.9.1 - lodash: 4.17.21 - mkdirp: 0.5.6 - pixelmatch: 5.3.0 - pngjs: 3.4.0 - rimraf: 2.7.1 - ssim.js: 3.5.0 - dev: true - /jest-image-snapshot/4.2.0_jest@29.1.1: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} @@ -9359,7 +8542,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest: 29.1.1_odkjkoia5xunhxkdrka32ib6vi lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -9368,44 +8551,6 @@ packages: ssim.js: 3.5.0 dev: true - /jest-jasmine2/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/traverse': 7.19.1 - '@jest/environment': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - co: 4.6.0 - expect: 26.6.2 - is-generator-fn: 2.1.0 - jest-each: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - pretty-format: 26.6.2 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-leak-detector/26.6.2: - resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} - engines: {node: '>= 10.14.2'} - dependencies: - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-leak-detector/29.1.0: resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9414,16 +8559,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-matcher-utils/26.6.2: - resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-matcher-utils/29.1.0: resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9434,21 +8569,6 @@ packages: pretty-format: 29.1.0 dev: true - /jest-message-util/26.6.2: - resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 26.6.2 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 26.6.2 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util/29.1.0: resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9460,16 +8580,8 @@ packages: graceful-fs: 4.2.10 micromatch: 4.0.5 pretty-format: 29.1.0 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - - /jest-mock/26.6.2: - resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.8.1 + slash: 3.0.0 + stack-utils: 2.0.5 dev: true /jest-mock/29.1.1: @@ -9477,22 +8589,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 jest-util: 29.1.0 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 26.6.2 - dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} @@ -9505,27 +8605,11 @@ packages: jest-resolve: 29.1.0 dev: true - /jest-regex-util/26.0.0: - resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-regex-util/29.0.0: resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies/26.6.3: - resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - jest-regex-util: 26.0.0 - jest-snapshot: 26.6.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-resolve-dependencies/29.1.1: resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9536,20 +8620,6 @@ packages: - supports-color dev: true - /jest-resolve/26.6.2: - resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 - jest-util: 26.6.2 - read-pkg-up: 7.0.1 - resolve: 1.22.1 - slash: 3.0.0 - dev: true - /jest-resolve/29.1.0: resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9565,38 +8635,6 @@ packages: slash: 3.0.0 dev: true - /jest-runner/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - emittery: 0.7.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-docblock: 26.0.0 - jest-haste-map: 26.6.2 - jest-leak-detector: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-worker: 26.6.2 - source-map-support: 0.5.13 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-runner/29.1.1: resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9606,7 +8644,7 @@ packages: '@jest/test-result': 29.1.0 '@jest/transform': 29.1.0 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 chalk: 4.1.2 emittery: 0.10.2 graceful-fs: 4.2.10 @@ -9626,46 +8664,6 @@ packages: - supports-color dev: true - /jest-runtime/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/globals': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - cjs-module-lexer: 0.6.0 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - slash: 3.0.0 - strip-bom: 4.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-runtime/29.1.1: resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9677,7 +8675,7 @@ packages: '@jest/test-result': 29.1.0 '@jest/transform': 29.1.0 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -9696,38 +8694,6 @@ packages: - supports-color dev: true - /jest-serializer/26.6.2: - resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/node': 18.8.1 - graceful-fs: 4.2.10 - dev: true - - /jest-snapshot/26.6.2: - resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/types': 7.19.0 - '@jest/types': 26.6.2 - '@types/babel__traverse': 7.18.2 - '@types/prettier': 2.7.1 - chalk: 4.1.2 - expect: 26.6.2 - graceful-fs: 4.2.10 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - jest-haste-map: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - natural-compare: 1.4.0 - pretty-format: 26.6.2 - semver: 7.3.7 - transitivePeerDependencies: - - supports-color - dev: true - /jest-snapshot/29.1.0: resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9760,42 +8726,18 @@ packages: - supports-color dev: true - /jest-util/26.6.2: - resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - is-ci: 2.0.0 - micromatch: 4.0.5 - dev: true - /jest-util/29.1.0: resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-validate/26.6.2: - resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 26.3.0 - leven: 3.1.0 - pretty-format: 26.6.2 - dev: true - /jest-validate/29.1.0: resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9808,26 +8750,13 @@ packages: pretty-format: 29.1.0 dev: true - /jest-watcher/26.6.2: - resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.8.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 26.6.2 - string-length: 4.0.2 - dev: true - /jest-watcher/29.1.0: resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.1.0 '@jest/types': 29.1.0 - '@types/node': 18.8.1 + '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 @@ -9835,41 +8764,16 @@ packages: string-length: 4.0.2 dev: true - /jest-worker/26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 18.8.1 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - /jest-worker/29.1.0: resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.8.1 + '@types/node': 18.11.9 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - import-local: 3.1.0 - jest-cli: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest/29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq: + /jest/29.1.1_odkjkoia5xunhxkdrka32ib6vi: resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -9882,7 +8786,7 @@ packages: '@jest/core': 29.1.1_ts-node@10.9.1 '@jest/types': 29.1.0 import-local: 3.1.0 - jest-cli: 29.1.1_ahjkdke2ds2w5gj6yhynj4mjsq + jest-cli: 29.1.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - '@types/node' - supports-color @@ -9963,48 +8867,6 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.4.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.4.6 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsdom/20.0.0: resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} engines: {node: '>=14'} @@ -10197,6 +9059,7 @@ packages: /khroma/2.0.0: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} + dev: false /kind-of/3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -10721,20 +9584,6 @@ packages: engines: {node: '>= 8'} dev: true - /mermaid/9.1.7: - resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} - dependencies: - '@braintree/sanitize-url': 6.0.0 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.0 - graphlib: 2.1.8 - khroma: 2.0.0 - moment-mini: 2.24.0 - stylis: 4.1.2 - dev: true - /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -11067,18 +9916,10 @@ packages: - supports-color dev: true - /moment-mini/2.24.0: - resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==} - dev: true - /moment-mini/2.29.4: resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} dev: false - /moment/2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - dev: true - /mri/1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -11183,19 +10024,6 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-notifier/8.0.2: - resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - requiresBuild: true - dependencies: - growly: 1.3.0 - is-wsl: 2.2.0 - semver: 7.3.7 - shellwords: 0.1.1 - uuid: 8.3.2 - which: 2.0.2 - dev: true - optional: true - /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true @@ -11397,11 +10225,6 @@ packages: engines: {node: '>=8'} dev: true - /p-each-series/2.2.0: - resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} - engines: {node: '>=8'} - dev: true - /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -11606,10 +10429,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /path-browserify/1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: true - /path-dirname/1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} dev: true @@ -11835,16 +10654,6 @@ packages: engines: {node: '>=6'} dev: true - /pretty-format/26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: true - /pretty-format/29.1.0: resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12036,10 +10845,6 @@ packages: unpipe: 1.0.0 dev: true - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -12513,6 +11318,7 @@ packages: /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} + dev: false /rollup/2.78.1: resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} @@ -12528,10 +11334,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - - /rsvp/4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} dev: true /run-parallel/1.2.0: @@ -12542,6 +11344,7 @@ packages: /rw/1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + dev: false /rxjs/7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} @@ -12577,25 +11380,6 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sane/4.1.0: - resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} - engines: {node: 6.* || 8.* || >= 10.*} - deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added - hasBin: true - dependencies: - '@cnakazawa/watch': 1.0.4 - anymatch: 2.0.0 - capture-exit: 2.0.0 - exec-sh: 0.3.6 - execa: 1.0.0 - fb-watchman: 2.0.2 - micromatch: 3.1.10 - minimist: 1.2.6 - walker: 1.0.8 - transitivePeerDependencies: - - supports-color - dev: true - /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -12715,11 +11499,6 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true - /shellwords/0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - dev: true - optional: true - /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -12892,11 +11671,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: true - /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true @@ -13215,6 +11989,7 @@ packages: /stylis/4.1.2: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} + dev: false /subarg/1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} @@ -13497,13 +12272,6 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -13541,7 +12309,7 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-node/10.9.1_jrs6fgrkrfl5zdawlcdiuhuotq: + /ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -13560,7 +12328,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.8.1 + '@types/node': 18.11.9 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -13572,7 +12340,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_sqjhzn5m3vxyw66a2xhtc43hby: + /ts-node/10.9.1_h6wsvvmh4l7tb54yk3ecr4mgtm: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -13591,19 +12359,19 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 14.18.29 + '@types/node': 18.11.9 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.8.4 + typescript: 4.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /ts-node/10.9.1_wpuvd23gr7ieg6cvyhaoiu3d3a: + /ts-node/10.9.1_sqjhzn5m3vxyw66a2xhtc43hby: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -13622,14 +12390,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.8.1 + '@types/node': 14.18.29 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.8.3 + typescript: 4.8.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -13729,12 +12497,6 @@ packages: mime-types: 2.1.35 dev: true - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - /typedarray/0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true @@ -14029,15 +12791,6 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul/7.1.2: - resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} - engines: {node: '>=10.10.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - source-map: 0.7.4 - dev: true - /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -14274,14 +13027,14 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_ml5vzxpqibyfsid5kdls3ch6aa: + /vitepress-plugin-mermaid/2.0.8_ptytdeik3ggcnromfbdnybzvtu: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 vite-plugin-md: ^0.20.4 vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: - mermaid: 9.1.7 + mermaid: link:packages/mermaid vite-plugin-md: 0.20.4_ucycamvpk6tvs7aryt7d45qco4 vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y dev: true @@ -14351,7 +13104,7 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.8.1 + '@types/node': 18.11.9 '@vitest/ui': 0.23.4 chai: 4.3.6 debug: 4.3.4 @@ -14393,7 +13146,7 @@ packages: dependencies: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 - '@types/node': 18.7.21 + '@types/node': 18.11.9 '@vitest/ui': 0.23.4 chai: 4.3.6 debug: 4.3.4 @@ -14494,13 +13247,6 @@ packages: browser-process-hrtime: 1.0.0 dev: true - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -14547,16 +13293,6 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -14576,12 +13312,6 @@ packages: engines: {node: '>=0.8.0'} dev: true - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: true - /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -14593,10 +13323,6 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -14625,15 +13351,6 @@ packages: webidl-conversions: 3.0.1 dev: true - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true @@ -14684,15 +13401,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - /write-file-atomic/4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -14757,10 +13465,6 @@ packages: resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} dev: true - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} diff --git a/packages/mermaid/src/jison/lint.mts b/scripts/jison/lint.mts similarity index 86% rename from packages/mermaid/src/jison/lint.mts rename to scripts/jison/lint.mts index 6e17851f70..e834a8e4ff 100644 --- a/packages/mermaid/src/jison/lint.mts +++ b/scripts/jison/lint.mts @@ -11,6 +11,7 @@ const linter = new ESLint({ }); const lint = async (file: string): Promise => { + console.log(`Linting ${file}`); const jisonCode = await readFile(file, 'utf8'); // @ts-ignore no typings const jsCode = new jison.Generator(jisonCode, { moduleType: 'amd' }).generate(); @@ -23,7 +24,9 @@ const lint = async (file: string): Promise => { }; (async () => { - const jisonFiles = await globby(['./src/**/*.jison'], { dot: true }); + const jisonFiles = await globby(['./packages/**/*.jison', '!./**/node_modules/**'], { + dot: true, + }); const lintResults = await Promise.all(jisonFiles.map(lint)); if (lintResults.some((result) => result === false)) { process.exit(1); From 1f68ea4058435e00f199b72e5908adea4c942b56 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 11 Nov 2022 02:41:03 +0530 Subject: [PATCH 0609/1038] Hacky fix for pnpm issue --- package.json | 5 +- pnpm-lock.yaml | 4057 +++++++++++++++++++++++++++++----------- pnpm-workspace.yaml | 2 +- scripts/fixPnpmLock.sh | 3 + 4 files changed, 2939 insertions(+), 1128 deletions(-) create mode 100755 scripts/fixPnpmLock.sh diff --git a/package.json b/package.json index f2c1783f3b..ce5b12ce4f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.2.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.13.2", + "packageManager": "pnpm@7.15.0", "keywords": [ "diagram", "markdown", @@ -41,6 +41,7 @@ "test:coverage": "vitest --coverage", "prepublishOnly": "pnpm build && pnpm test", "prepare": "concurrently \"husky install\" \"pnpm build\"", + "postinstall": "./scripts/fixPnpmLock.sh", "pre-commit": "lint-staged" }, "repository": { @@ -101,7 +102,7 @@ "jsdom": "^20.0.1", "lint-staged": "^13.0.3", "markdown-it": "^13.0.1", - "pnpm": "^7.13.2", + "pnpm": "^7.15.0", "prettier": "^2.7.1", "prettier-plugin-jsdoc": "^0.4.2", "remark": "^14.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6af2728e1d..2d94d1712b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,8 +48,7 @@ importers: jsdom: ^20.0.1 lint-staged: ^13.0.3 markdown-it: ^13.0.1 - mermaid: '' - pnpm: ^7.13.2 + pnpm: ^7.15.0 prettier: ^2.7.1 prettier-plugin-jsdoc: ^0.4.2 remark: ^14.0.2 @@ -64,48 +63,48 @@ importers: vitepress-plugin-search: ^1.0.4-alpha.11 vitest: ^0.23.4 devDependencies: - '@applitools/eyes-cypress': 3.27.1 - '@commitlint/cli': 17.1.2 - '@commitlint/config-conventional': 17.1.0 + '@applitools/eyes-cypress': 3.27.6 + '@commitlint/cli': 17.2.0 + '@commitlint/config-conventional': 17.2.0 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.6 + '@types/eslint': 8.4.10 '@types/express': 4.17.14 - '@types/jsdom': 20.0.0 - '@types/lodash': 4.14.186 + '@types/jsdom': 20.0.1 + '@types/lodash': 4.14.188 '@types/mdast': 3.0.10 '@types/node': 18.11.9 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my - '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@vitest/coverage-c8': 0.23.4_dnicfi6n7tywwajisjusxhbdzm + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@vitest/coverage-c8': 0.23.4_upgr4zu6lczg6poy6g2njng6vm '@vitest/ui': 0.23.4 - concurrently: 7.4.0 + concurrently: 7.5.0 coveralls: 3.1.1 - cypress: 10.8.0 - cypress-image-snapshot: 4.0.1_cypress@10.8.0+jest@29.1.1 + cypress: 10.11.0 + cypress-image-snapshot: 4.0.1_bg25yee4qeg7mpleuvd346a3tq documentation: 13.2.0 - esbuild: 0.15.10 - eslint: 8.24.0 - eslint-config-prettier: 8.5.0_eslint@8.24.0 - eslint-plugin-cypress: 2.12.1_eslint@8.24.0 + esbuild: 0.15.13 + eslint: 8.27.0 + eslint-config-prettier: 8.5.0_eslint@8.27.0 + eslint-plugin-cypress: 2.12.1_eslint@8.27.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.0_4rkgrv37dc3yt652qtbljgksbi - eslint-plugin-jsdoc: 39.3.6_eslint@8.24.0 + eslint-plugin-jest: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy + eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.24.0 - express: 4.18.1 + eslint-plugin-markdown: 3.0.0_eslint@8.27.0 + express: 4.18.2 globby: 13.1.2 - husky: 8.0.1 + husky: 8.0.2 identity-obj-proxy: 3.0.0 - jest: 29.1.1_odkjkoia5xunhxkdrka32ib6vi + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi jison: 0.4.18 - jsdom: 20.0.1 + jsdom: 20.0.2 lint-staged: 13.0.3 markdown-it: 13.0.1 - pnpm: 7.13.2 + pnpm: 7.15.0 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 @@ -114,11 +113,11 @@ importers: ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 typescript: 4.8.4 unist-util-flatmap: 1.0.0 - vite: 3.1.4 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_ptytdeik3ggcnromfbdnybzvtu - vitepress-plugin-search: 1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y - vitest: 0.23.4_dnicfi6n7tywwajisjusxhbdzm + vite: 3.2.3_@types+node@18.11.9 + vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi + vitepress-plugin-mermaid: 2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe + vitepress-plugin-search: 1.0.4-alpha.15_pb3anlaclwt5smse4ujf447uy4 + vitest: 0.23.4_upgr4zu6lczg6poy6g2njng6vm packages/mermaid: specifiers: @@ -254,27 +253,42 @@ importers: mermaid: link:../mermaid rimraf: 3.0.2 + tests/webpack: + specifiers: + '@mermaid-js/mermaid-mindmap': workspace:* + mermaid: workspace:* + webpack: ^5.74.0 + webpack-cli: ^4.10.0 + webpack-dev-server: ^4.11.1 + dependencies: + '@mermaid-js/mermaid-mindmap': link:../../packages/mermaid-mindmap + mermaid: link:../../packages/mermaid + devDependencies: + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + packages: - /@algolia/autocomplete-core/1.7.1: - resolution: {integrity: sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==} + /@algolia/autocomplete-core/1.7.2: + resolution: {integrity: sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==} dependencies: - '@algolia/autocomplete-shared': 1.7.1 + '@algolia/autocomplete-shared': 1.7.2 dev: true - /@algolia/autocomplete-preset-algolia/1.7.1_qs6lk5nhygj2o3hj4sf6xnr724: - resolution: {integrity: sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==} + /@algolia/autocomplete-preset-algolia/1.7.2_qs6lk5nhygj2o3hj4sf6xnr724: + resolution: {integrity: sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==} peerDependencies: - '@algolia/client-search': ^4.9.1 - algoliasearch: ^4.9.1 + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.7.1 + '@algolia/autocomplete-shared': 1.7.2 '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true - /@algolia/autocomplete-shared/1.7.1: - resolution: {integrity: sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==} + /@algolia/autocomplete-shared/1.7.2: + resolution: {integrity: sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==} dev: true /@algolia/cache-browser-local-storage/4.14.2: @@ -367,6 +381,90 @@ packages: '@algolia/requester-common': 4.14.2 dev: true + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@applitools/core-base/1.1.7: + resolution: {integrity: sha512-jxiRS7pQ9Q6deXeDa/mIACL/7S7ZxIOms49WSZGhUjb+1bfKEsH6+kLZKy5wUDHrUWRqPdILkLKWgQ0rLnKmFA==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.4 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.12 + '@applitools/utils': 1.3.13 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/core-base/1.1.8: + resolution: {integrity: sha512-h5bm1uJmpn5NVagFnLpoXWEKfLtBBmdQsgtOwYAmbWGImMNsexEnki1JPPo4yTn6KN1sdGE1ShYo2+YzbQPgKA==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.5 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.12 + '@applitools/utils': 1.3.13 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/core/1.2.4: + resolution: {integrity: sha512-BFbmUn39XFEVKHCb/bBXFZVAb46hOl4D/6VRnC5ey5tNTdriI35/l0jWpuBnYHU6LgK+5AvG70SUTKqiFJDZPQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/core-base': 1.1.7 + '@applitools/dom-capture': 11.2.0 + '@applitools/dom-snapshot': 4.7.0 + '@applitools/driver': 1.11.0 + '@applitools/logger': 1.1.27 + '@applitools/nml-client': 1.3.5 + '@applitools/req': 1.1.12 + '@applitools/screenshoter': 3.7.0 + '@applitools/snippets': 2.4.5 + '@applitools/ufg-client': 1.1.2 + '@applitools/utils': 1.3.13 + abort-controller: 3.0.0 + throat: 6.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + + /@applitools/core/1.2.7: + resolution: {integrity: sha512-cVH60tV3Uw1kIbml6IMPtwHRtJTRP5ySs2GRvDvHwq+dJNEddyIwJUwjHOI/xYYgc9rQRZOmM5Z4mzZXLjtgyw==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/core-base': 1.1.8 + '@applitools/dom-capture': 11.2.0 + '@applitools/dom-snapshot': 4.7.0 + '@applitools/driver': 1.11.1 + '@applitools/logger': 1.1.27 + '@applitools/nml-client': 1.3.5 + '@applitools/req': 1.1.12 + '@applitools/screenshoter': 3.7.2 + '@applitools/snippets': 2.4.6 + '@applitools/ufg-client': 1.1.2 + '@applitools/utils': 1.3.13 + abort-controller: 3.0.0 + throat: 6.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + /@applitools/dom-capture/11.1.1: resolution: {integrity: sha512-aUPsS3h/caQryythSjaX4uG23HzTBsnFBfO7BUvuomMdAm3qIHBstIHPCiUSJbXmPBabfqlWm59YKdxC3PTWcw==} engines: {node: '>=8.9.0'} @@ -375,6 +473,14 @@ packages: '@applitools/functional-commons': 1.6.0 dev: true + /@applitools/dom-capture/11.2.0: + resolution: {integrity: sha512-zFfYgvdXq5oTpLuYvOJdkh7jsbAxajOpD67pVoKc27lKwE0CGaM9I0Uf+qGh7GYtY93qyzMWBzqC7C8JlSK1gA==} + engines: {node: '>=8.9.0'} + dependencies: + '@applitools/dom-shared': 1.0.5 + '@applitools/functional-commons': 1.6.0 + dev: true + /@applitools/dom-shared/1.0.5: resolution: {integrity: sha512-O2zgnnqVi3/Atq7EQjURLa73XNaDFJCj8wHht6WQtxIv1EWYnPutNTmnJSKwK7FnbJAg65OVjZylcz4EezyYZA==} engines: {node: '>=8.9.0'} @@ -385,6 +491,11 @@ packages: engines: {node: '>=8.9.0'} dev: true + /@applitools/dom-shared/1.0.9: + resolution: {integrity: sha512-u6nRHBklRAaODILm0HRluE0IAwrnjs8AMNRBFxHThKGt4qpbkhnwazGMr4zDu3WCBjr/sA31kekUqNl0Jx3YeQ==} + engines: {node: '>=8.9.0'} + dev: true + /@applitools/dom-snapshot/4.6.2: resolution: {integrity: sha512-8XFbsIl154VK3rqNhHbSzcYDNLJ8QEgHzWht5cM0WhScWVokXUfL+kDmqjLIMZ47VgP3XXxk0rgX5QOs2TZx8Q==} engines: {node: '>=8.9.0'} @@ -395,6 +506,36 @@ packages: pako: 1.0.11 dev: true + /@applitools/dom-snapshot/4.7.0: + resolution: {integrity: sha512-exLRB2dTLiqD8i5oOK/QyfNMSLramVF5CFYNI29WWQjbXkIpCGOomGA8/xL+sYiC53jjx3Y9u6jHtlkb5ASJAQ==} + engines: {node: '>=8.9.0'} + dependencies: + '@applitools/dom-shared': 1.0.9 + '@applitools/functional-commons': 1.6.0 + css-tree: 1.0.0-alpha.39 + pako: 1.0.11 + dev: true + + /@applitools/driver/1.11.0: + resolution: {integrity: sha512-yNo4ljkk5C2wJ7foqENoIgtlbW3/RpDYBT5UCjq5yTK/xfnvAlh+zUmnqGJ43w8PZj4IH7E8xLRVBVIq2Mv9oQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.27 + '@applitools/snippets': 2.4.5 + '@applitools/utils': 1.3.13 + semver: 7.3.7 + dev: true + + /@applitools/driver/1.11.1: + resolution: {integrity: sha512-HFkbEeTaBI+k5RMQFM6RjaIRCvLOrVx4UUDehnSlyfAwZIN/RMuxMcAQaiU5ZdNPf3K/+TtNjtmJoXuG8veEcQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.27 + '@applitools/snippets': 2.4.6 + '@applitools/utils': 1.3.13 + semver: 7.3.7 + dev: true + /@applitools/driver/1.9.20: resolution: {integrity: sha512-yrVydj5ukcBzADVTyrqEJ9rV2GauUOgC0NvXupvT+3qZSkwGumFb6SxlP5q39jy6/1EmRL9Szl1y9/DbwZ9OdQ==} engines: {node: '>=12.13.0'} @@ -422,6 +563,23 @@ packages: - supports-color dev: true + /@applitools/execution-grid-client/1.1.30: + resolution: {integrity: sha512-LoX0ZcNDZZV4aD6bpldfOTk94tNznRcIZPAVRRrKiqQJWJnDPP661EGxykXsfVnluCHaOGmbDPH6bfJGdDfUuQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/logger': 1.1.27 + '@applitools/utils': 1.3.13 + abort-controller: 3.0.0 + node-fetch: 2.6.7 + proxy-agent: 5.0.0 + raw-body: 2.5.1 + yargs: 17.4.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /@applitools/eyes-api/1.7.5: resolution: {integrity: sha512-wvFHjPFAVRSCCUg3zEr8HNoRS8lChnm9TwYI/+qjo91eNM+nVSEtPE6tb2GcdUbDqz0zpnCi8N3Mi2TulAZj2w==} engines: {node: '>=12.13.0'} @@ -431,6 +589,20 @@ packages: '@applitools/utils': 1.3.10 dev: true + /@applitools/eyes-api/1.9.1: + resolution: {integrity: sha512-P/42YMcV8SbdZFXEph+Q37tMngIJv0jSC2S1QDp09/zi0V1z81yyAm8zK36PU0h0JTYeZxSs/T3BRhfitpzAIg==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/core': 1.2.4 + '@applitools/logger': 1.1.27 + '@applitools/utils': 1.3.13 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + /@applitools/eyes-cypress/3.27.1: resolution: {integrity: sha512-QtQawBi0B16ClPcyFEyvd8+3VKoZnJcj2UX41U5gnycQvidvJCyruFJlmuL9OnCBgpA17U4y9NnRceeHsywhqQ==} engines: {node: '>=12.13.0'} @@ -452,6 +624,43 @@ packages: - utf-8-validate dev: true + /@applitools/eyes-cypress/3.27.6: + resolution: {integrity: sha512-2FpWKQ7rVhrr94Z8DjmJ8kD3f71aYahvTpT3dJyjfVKV8GxwAYAb/qrq6gAUnItaaoB2PgLHbIsqpOpRPki1tQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/core': 1.2.7 + '@applitools/eyes-api': 1.9.1 + '@applitools/eyes-universal': 2.16.9 + '@applitools/functional-commons': 1.6.0 + '@applitools/logger': 1.1.27 + chalk: 3.0.0 + semver: 7.3.8 + uuid: 8.3.2 + which: 2.0.2 + ws: 8.5.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + + /@applitools/eyes-sdk-core/13.11.15: + resolution: {integrity: sha512-oN2yTzFsuRMpmBpgzzqiUGRkezIez1JwQFRqqa6dsxUUBWE2IWp52MqJV5NRGHt9Sdh8q4+M6Hk6h8sVHE3LGg==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/core': 1.2.7 + '@applitools/driver': 1.11.1 + '@applitools/execution-grid-client': 1.1.30 + '@applitools/utils': 1.3.13 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + /@applitools/eyes-sdk-core/13.8.19: resolution: {integrity: sha512-brijRwys0kNyGdVictyJPGdqS+6iE3G0gwYHnzBZWvP7ryh6FeIwDbLxyc43UVpmNJPKAToVZ50J+2C/S6E3pQ==} engines: {node: '>=12.13.0'} @@ -498,6 +707,28 @@ packages: - utf-8-validate dev: true + /@applitools/eyes-universal/2.16.9: + resolution: {integrity: sha512-D8MeOLoBETyg0oPxkaim3taiKWo6XMILTSAX+rWQHz0X7u+JRuCBLZu0WFlQPLTo7ndLiVyo2BpbBy9KIp5haA==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@applitools/core': 1.2.7 + '@applitools/driver': 1.11.1 + '@applitools/execution-grid-client': 1.1.30 + '@applitools/eyes-sdk-core': 13.11.15 + '@applitools/logger': 1.1.27 + '@applitools/utils': 1.3.13 + proxy-agent: 5.0.0 + webdriver: 7.16.11 + ws: 7.4.6 + yargs: 17.4.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + /@applitools/functional-commons/1.6.0: resolution: {integrity: sha512-fwiF0CbeYHDEOTD/NKaFgaI8LvRcGYG2GaJJiRwcedKko16sQ8F3TK5wXfj2Ytjf+8gjwHwsEEX550z3yvDWxA==} engines: {node: '>=8.0.0'} @@ -518,6 +749,24 @@ packages: - supports-color dev: true + /@applitools/image/1.0.4: + resolution: {integrity: sha512-eNr/fa+loGz1hrgwv/NKuVP13uRyfRUPFyCU8EtTdSWuGFJXIqwhtQWCFCokX1EXnhoCyGfFBAzWgW9StqTGfQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.13 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + + /@applitools/image/1.0.5: + resolution: {integrity: sha512-khv0fkjaoe0j/btEog8K/sqC2ULss+bkkHQQz80AOxnW/ixq5C4eQhTNzVRZ9/X7EDi7XsskvAXsi9RseIRnBw==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.13 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + /@applitools/isomorphic-fetch/3.0.0: resolution: {integrity: sha512-7rutaN/2M5wYjOIOTKS/Zuc1Na90fJNEAqvo/jCxt7nSD1kYscHV3aCk9t7RD59gmzLMvUTIxFbjl4RUMV8qfg==} dependencies: @@ -532,12 +781,12 @@ packages: engines: {node: '>=12'} dependencies: abab: 2.0.6 - acorn: 8.8.0 + acorn: 8.8.1 acorn-globals: 6.0.0 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.4.1 + decimal.js: 10.4.2 domexception: 4.0.0 escodegen: 2.0.0 form-data: 4.0.0 @@ -556,7 +805,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.5.0 + ws: 8.11.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -572,6 +821,14 @@ packages: chalk: 4.1.2 dev: true + /@applitools/logger/1.1.27: + resolution: {integrity: sha512-lwKCNhuMfLkqxfwYhLalDg2JZNgNj6rEgD8LnozsQdfxqVXThrJb/fkdSaSeUwnF+ljJyR7fnPy+p742p66U0Q==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.13 + chalk: 4.1.2 + dev: true + /@applitools/monitoring-commons/1.0.19: resolution: {integrity: sha512-rzEOvGoiEF4KnK0PJ9I0btdwnaNlIPLYhjF1vTEG15PoucbbKpix9fYusxWlDG7kMiZya8ZycVPc0woVlNaHRQ==} engines: {node: '>=8.0.0'} @@ -581,6 +838,32 @@ packages: - supports-color dev: true + /@applitools/nml-client/1.3.5: + resolution: {integrity: sha512-MW1kB5AGe5l8HZ5GMkVhTm6XMndeIADmed37WrW3obD3FrmBGQLLj04GP6J7czLTeGjeh7QojvuAEvQUGFV5MQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.12 + '@applitools/utils': 1.3.13 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@applitools/req/1.1.12: + resolution: {integrity: sha512-eA8gsbqMxGEvW1KHb6P/AZ+IXlkxhf+Best683z9uo6O/wPQbg+B/20GoUpbUgpqWDQZmdhZDUb/RvxKwSl/PA==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/utils': 1.3.13 + '@types/node-fetch': 2.6.2 + abort-controller: 3.0.0 + node-fetch: 2.6.7 + proxy-agent: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /@applitools/screenshoter/3.4.14: resolution: {integrity: sha512-vdaHxzSobJzujyXENSuVybYyOfBWZlDb6OwVzRsiJxpwuN9L5VtOu30kuvxAXzycHMfa+8vLgO2pHnU6Vp/MiQ==} engines: {node: '>=12.13.0'} @@ -592,21 +875,73 @@ packages: png-async: 0.9.4 dev: true + /@applitools/screenshoter/3.7.0: + resolution: {integrity: sha512-d723TI4InLQi06TpVj4rP+V5OrNL9mFQr+cWv2MOMfQbuAnZETTRzvDyk97e3qoDJHAPjyQuxi81qEaxsFxhOA==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.4 + '@applitools/logger': 1.1.27 + '@applitools/snippets': 2.4.5 + '@applitools/utils': 1.3.13 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + + /@applitools/screenshoter/3.7.2: + resolution: {integrity: sha512-bWtNQeRvdcQBcc+5kAwVBnEQ3DhDncAE853SuJPgpczZkqy9t7Ot8L3kNLbi+210vbWSqpnVGt9tAeLgG/xZdA==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/image': 1.0.5 + '@applitools/logger': 1.1.27 + '@applitools/snippets': 2.4.6 + '@applitools/utils': 1.3.13 + jpeg-js: 0.4.4 + png-async: 0.9.4 + dev: true + /@applitools/snippets/2.4.5: resolution: {integrity: sha512-GoLN1wu8u5/qwdk1ozEElqmr4y7AoMQl0Ka0OzisGdx9/L7R0RzSWQCErjkf4LgKiWKK8j7lde3JT9yjxfritQ==} engines: {node: '>=12.13.0'} dev: true + /@applitools/snippets/2.4.6: + resolution: {integrity: sha512-hAsAalDxaa1w2RCEx2b35D9XJIGGRlqQKzXEE6/rNr5vMtT0eYye61SST5e2PD7B4F2jJ7jRKrZd7REawoxxmg==} + engines: {node: '>=12.13.0'} + dev: true + /@applitools/types/1.5.8: resolution: {integrity: sha512-trMH32oewkrptYG26IzEbwMW9VG9BJo64bzwx/T4oz6ZfndXGCjwGCFQE4FDE++dRZTjzSF00h2YSzIxPAapeQ==} engines: {node: '>=12.13.0'} dev: true + /@applitools/ufg-client/1.1.2: + resolution: {integrity: sha512-yhjlp4QHWVazImfUUr9S9ueQhKstxfI3NNu/SLPPX7lHLOdpdWn7fUZOzTBCs6j914s87r9J9cmsU2gnOO8bOQ==} + engines: {node: '>=12.13.0'} + dependencies: + '@applitools/jsdom': 1.0.4 + '@applitools/logger': 1.1.27 + '@applitools/req': 1.1.12 + '@applitools/utils': 1.3.13 + abort-controller: 3.0.0 + postcss-value-parser: 4.2.0 + throat: 6.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + /@applitools/utils/1.3.10: resolution: {integrity: sha512-CI/5BLB0D/aZn6uL8JJmsErI+TOHCa4Gz5Wi8sJknuPz/V9Ws6jIh9ZCTzvOCDUIp99qLJwD6TSA2BY9aMhCNw==} engines: {node: '>=12.13.0'} dev: true + /@applitools/utils/1.3.13: + resolution: {integrity: sha512-UwA1skl9kzK+WrXu7WyX6A4K4TdIFZbDAcFJq2PA5fhmbviAlk4iFJtQjyopYTdY0sSh3VRSsCPr3DsbFa79AA==} + engines: {node: '>=12.13.0'} + dev: true + /@applitools/visual-grid-client/15.13.13: resolution: {integrity: sha512-3GkzrR0WEcsihRZEgbxXecfBb8Q0U/L7VDNpy/APlw7K54kWPgTal/CYk1NwLDKj9iqpHlFfvDhI0zoeCNrR4A==} engines: {node: '>=12.13.0'} @@ -636,8 +971,8 @@ packages: '@babel/highlight': 7.18.6 dev: true - /@babel/compat-data/7.19.1: - resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} + /@babel/compat-data/7.20.1: + resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} engines: {node: '>=6.9.0'} dev: true @@ -647,13 +982,13 @@ packages: dependencies: '@babel/code-frame': 7.18.6 '@babel/generator': 7.12.1 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helpers': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helpers': 7.20.1 '@babel/parser': 7.12.3 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - convert-source-map: 1.8.0 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.1 @@ -665,19 +1000,42 @@ packages: - supports-color dev: true + /@babel/core/7.20.2: + resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helpers': 7.20.1 + '@babel/parser': 7.20.3 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator/7.12.1: resolution: {integrity: sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 jsesc: 2.5.2 source-map: 0.5.7 dev: true - /@babel/generator/7.19.0: - resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} + /@babel/generator/7.20.4: + resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 dev: true @@ -686,7 +1044,7 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: @@ -694,24 +1052,37 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-compilation-targets/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.12.3: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.19.1 + '@babel/compat-data': 7.20.1 '@babel/core': 7.12.3 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.1 + '@babel/core': 7.20.2 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -745,8 +1116,8 @@ packages: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.1 @@ -764,7 +1135,7 @@ packages: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-function-name/7.19.0: @@ -772,42 +1143,42 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-module-transforms/7.19.0: - resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} + /@babel/helper-module-transforms/7.20.2: + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} engines: {node: '>=6.9.0'} 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.19.1 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -816,11 +1187,11 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-plugin-utils/7.19.0: - resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} dev: true @@ -834,7 +1205,7 @@ packages: '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-wrap-function': 7.19.0 - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -846,35 +1217,35 @@ packages: '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.18.6: - resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-skip-transparent-expression-wrappers/7.18.9: - resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-string-parser/7.18.10: - resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} dev: true @@ -894,19 +1265,19 @@ packages: dependencies: '@babel/helper-function-name': 7.19.0 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helpers/7.19.0: - resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} + /@babel/helpers/7.20.1: + resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -925,15 +1296,15 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true - /@babel/parser/7.19.1: - resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} + /@babel/parser/7.20.3: + resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3: @@ -943,7 +1314,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.12.3: @@ -953,20 +1324,20 @@ packages: '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-async-generator-functions/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} + /@babel/plugin-proposal-async-generator-functions/7.20.1_@babel+core@7.12.3: + resolution: {integrity: sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 transitivePeerDependencies: @@ -980,8 +1351,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -993,22 +1364,22 @@ packages: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-decorators/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-LfIKNBBY7Q1OX5C4xAgRQffOg2OnhAo9fnbcOHgOC9Yytm2Sw+4XqHufRYU86tHomzepxtvuVaNO+3EVKR4ivw==} + /@babel/plugin-proposal-decorators/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-nkBH96IBmgKnbHQ5gXFrcmez+Z9S2EIDKDQGp005ROqBigc88Tky4rzCnlP/lnlj245dCEQl4/YyV0V1kYh5dw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-replace-supers': 7.19.1 '@babel/helper-split-export-declaration': 7.18.6 '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.12.3 @@ -1023,7 +1394,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-do-expressions': 7.18.6_@babel+core@7.12.3 dev: true @@ -1034,7 +1405,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 dev: true @@ -1045,7 +1416,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-export-default-from': 7.18.6_@babel+core@7.12.3 dev: true @@ -1056,7 +1427,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 dev: true @@ -1067,7 +1438,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-function-bind': 7.18.6_@babel+core@7.12.3 dev: true @@ -1078,7 +1449,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-wrap-function': 7.19.0 '@babel/plugin-syntax-function-sent': 7.18.6_@babel+core@7.12.3 transitivePeerDependencies: @@ -1092,7 +1463,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 dev: true @@ -1103,7 +1474,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 dev: true @@ -1114,7 +1485,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 dev: true @@ -1125,22 +1496,22 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 dev: true - /@babel/plugin-proposal-object-rest-spread/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==} + /@babel/plugin-proposal-object-rest-spread/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.1 + '@babel/compat-data': 7.20.1 '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.12.3 dev: true /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.12.3: @@ -1150,7 +1521,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 dev: true @@ -1161,8 +1532,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 dev: true @@ -1173,7 +1544,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-pipeline-operator': 7.18.6_@babel+core@7.12.3 dev: true @@ -1184,8 +1555,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -1198,8 +1569,8 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.3 transitivePeerDependencies: - supports-color @@ -1212,7 +1583,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-throw-expressions': 7.18.6_@babel+core@7.12.3 dev: true @@ -1224,7 +1595,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: @@ -1233,16 +1604,25 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.2: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: @@ -1251,7 +1631,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.2: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.12.3: @@ -1261,7 +1650,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.12.3: @@ -1271,7 +1660,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-do-expressions/7.18.6_@babel+core@7.12.3: @@ -1281,7 +1670,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.3: @@ -1290,7 +1679,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.12.3: @@ -1300,7 +1689,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.3: @@ -1309,7 +1698,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.12.3: @@ -1319,7 +1708,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-function-bind/7.18.6_@babel+core@7.12.3: @@ -1329,7 +1718,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-function-sent/7.18.6_@babel+core@7.12.3: @@ -1339,17 +1728,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-import-assertions/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==} + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.12.3: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: @@ -1358,7 +1747,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.2: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: @@ -1367,7 +1765,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.12.3: @@ -1377,7 +1784,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: @@ -1386,7 +1803,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.2: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: @@ -1395,7 +1821,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: @@ -1404,7 +1839,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.2: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: @@ -1413,7 +1857,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: @@ -1422,7 +1875,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: @@ -1431,7 +1893,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-pipeline-operator/7.18.6_@babel+core@7.12.3: @@ -1441,7 +1912,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.12.3: @@ -1451,7 +1922,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-throw-expressions/7.18.6_@babel+core@7.12.3: @@ -1461,7 +1932,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.3: @@ -1471,17 +1942,27 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.2: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.2: + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.12.3: @@ -1491,7 +1972,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.12.3: @@ -1502,7 +1983,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.12.3 transitivePeerDependencies: - supports-color @@ -1515,32 +1996,32 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-block-scoping/7.18.9_@babel+core@7.12.3: - resolution: {integrity: sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==} + /@babel/plugin-transform-block-scoping/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-classes/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} + /@babel/plugin-transform-classes/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.12.3 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-replace-supers': 7.19.1 '@babel/helper-split-export-declaration': 7.18.6 globals: 11.12.0 @@ -1555,17 +2036,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-destructuring/7.18.13_@babel+core@7.12.3: - resolution: {integrity: sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==} + /@babel/plugin-transform-destructuring/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.12.3: @@ -1576,7 +2057,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.12.3: @@ -1586,7 +2067,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.12.3: @@ -1597,7 +2078,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.12.3: @@ -1607,7 +2088,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.12.3 dev: true @@ -1618,7 +2099,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.12.3: @@ -1628,9 +2109,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.12.3 '@babel/helper-function-name': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-literals/7.18.9_@babel+core@7.12.3: @@ -1640,7 +2121,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.12.3: @@ -1650,50 +2131,47 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-modules-amd/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==} + /@babel/plugin-transform-modules-amd/7.19.6_@babel+core@7.12.3: + resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - babel-plugin-dynamic-import-node: 2.3.3 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs/7.18.6_@babel+core@7.12.3: - resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==} + /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.12.3: + resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-simple-access': 7.18.6 - babel-plugin-dynamic-import-node: 2.3.3 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs/7.19.0_@babel+core@7.12.3: - resolution: {integrity: sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==} + /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.12.3: + resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-identifier': 7.19.1 - babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1705,8 +2183,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -1719,7 +2197,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.12.3: @@ -1729,7 +2207,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.12.3: @@ -1739,20 +2217,20 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-replace-supers': 7.19.1 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters/7.18.8_@babel+core@7.12.3: - resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} + /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.12.3: + resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.12.3: @@ -1762,7 +2240,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.12.3: @@ -1772,7 +2250,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.12.3: @@ -1794,9 +2272,9 @@ packages: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.12.3 - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.12.3: @@ -1807,7 +2285,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.12.3: @@ -1817,7 +2295,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 regenerator-transform: 0.15.0 dev: true @@ -1828,7 +2306,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.12.3: @@ -1838,7 +2316,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-spread/7.19.0_@babel+core@7.12.3: @@ -1848,8 +2326,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.12.3: @@ -1859,7 +2337,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.12.3: @@ -1869,7 +2347,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.12.3: @@ -1879,7 +2357,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.12.3: @@ -1889,7 +2367,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.12.3: @@ -1900,23 +2378,23 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/preset-env/7.19.1_@babel+core@7.12.3: - resolution: {integrity: sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==} + /@babel/preset-env/7.20.2_@babel+core@7.12.3: + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.1 + '@babel/compat-data': 7.20.1 '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.12.3 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-proposal-async-generator-functions': 7.19.1_@babel+core@7.12.3 + '@babel/plugin-proposal-async-generator-functions': 7.20.1_@babel+core@7.12.3 '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.12.3 '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.12.3 @@ -1925,7 +2403,7 @@ packages: '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.12.3 '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.12.3 '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-object-rest-spread': 7.18.9_@babel+core@7.12.3 + '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.12.3 '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.12.3 '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.12.3 '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.12.3 @@ -1936,7 +2414,7 @@ packages: '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.12.3 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-import-assertions': 7.18.6_@babel+core@7.12.3 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.12.3 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 @@ -1949,10 +2427,10 @@ packages: '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoping': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-classes': 7.19.0_@babel+core@7.12.3 + '@babel/plugin-transform-block-scoping': 7.20.2_@babel+core@7.12.3 + '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.12.3 '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.12.3 - '@babel/plugin-transform-destructuring': 7.18.13_@babel+core@7.12.3 + '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.12.3 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.12.3 '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.12.3 @@ -1960,14 +2438,14 @@ packages: '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.12.3 '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.12.3 '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-amd': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-commonjs': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-modules-systemjs': 7.19.0_@babel+core@7.12.3 + '@babel/plugin-transform-modules-amd': 7.19.6_@babel+core@7.12.3 + '@babel/plugin-transform-modules-commonjs': 7.19.6_@babel+core@7.12.3 + '@babel/plugin-transform-modules-systemjs': 7.19.6_@babel+core@7.12.3 '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-named-capturing-groups-regex': 7.19.1_@babel+core@7.12.3 '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.12.3 '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.12.3 @@ -1979,11 +2457,11 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.12.3 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.12.3 '@babel/preset-modules': 0.1.5_@babel+core@7.12.3 - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.12.3 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.12.3 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.12.3 - core-js-compat: 3.25.2 + core-js-compat: 3.26.0 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -1996,7 +2474,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.12.3 dev: true @@ -2007,10 +2485,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.12.3 - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 esutils: 2.0.3 dev: true @@ -2021,7 +2499,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.12.3 '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.12.3 @@ -2033,11 +2511,11 @@ packages: resolution: {integrity: sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ==} dev: true - /@babel/runtime/7.19.0: - resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} + /@babel/runtime/7.20.1: + resolution: {integrity: sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.9 + regenerator-runtime: 0.13.10 dev: true /@babel/template/7.18.10: @@ -2045,33 +2523,33 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 dev: true - /@babel/traverse/7.19.1: - resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} + /@babel/traverse/7.20.1: + resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 + '@babel/generator': 7.20.4 '@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.19.1 - '@babel/types': 7.19.0 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.19.0: - resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} + /@babel/types/7.20.2: + resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.18.10 + '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 dev: true @@ -2111,6 +2589,26 @@ packages: - '@swc/wasm' dev: true + /@commitlint/cli/17.2.0: + resolution: {integrity: sha512-kd1zykcrjIKyDRftWW1E1TJqkgzeosEkv1BiYPCdzkb/g/3BrfgwZUHR1vg+HO3qKUb/0dN+jNXArhGGAHpmaQ==} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/format': 17.0.0 + '@commitlint/lint': 17.2.0 + '@commitlint/load': 17.2.0 + '@commitlint/read': 17.2.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.6.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + /@commitlint/config-conventional/17.1.0: resolution: {integrity: sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==} engines: {node: '>=v14'} @@ -2118,6 +2616,13 @@ packages: conventional-changelog-conventionalcommits: 5.0.0 dev: true + /@commitlint/config-conventional/17.2.0: + resolution: {integrity: sha512-g5hQqRa80f++SYS233dbDSg16YdyounMTAhVcmqtInNeY/GF3aA4st9SVtJxpeGrGmueMrU4L+BBb+6Vs5wrcg==} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + dev: true + /@commitlint/config-validator/17.1.0: resolution: {integrity: sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==} engines: {node: '>=v14'} @@ -2155,6 +2660,14 @@ packages: semver: 7.3.7 dev: true + /@commitlint/is-ignored/17.2.0: + resolution: {integrity: sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + semver: 7.3.7 + dev: true + /@commitlint/lint/17.1.0: resolution: {integrity: sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==} engines: {node: '>=v14'} @@ -2165,6 +2678,16 @@ packages: '@commitlint/types': 17.0.0 dev: true + /@commitlint/lint/17.2.0: + resolution: {integrity: sha512-N2oLn4Dj672wKH5qJ4LGO+73UkYXGHO+NTVUusGw83SjEv7GjpqPGKU6KALW2kFQ/GsDefSvOjpSi3CzWHQBDg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.2.0 + '@commitlint/parse': 17.2.0 + '@commitlint/rules': 17.2.0 + '@commitlint/types': 17.0.0 + dev: true + /@commitlint/load/17.1.2: resolution: {integrity: sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg==} engines: {node: '>=v14'} @@ -2186,11 +2709,37 @@ packages: - '@swc/wasm' dev: true + /@commitlint/load/17.2.0: + resolution: {integrity: sha512-HDD57qSqNrk399R4TIjw31AWBG8dBjNj1MrDKZKmC/wvimtnIFlqzcu1+sxfXIOHj/+M6tcMWDtvknGUd7SU+g==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.1.0 + '@commitlint/execute-rule': 17.0.0 + '@commitlint/resolve-extends': 17.1.0 + '@commitlint/types': 17.0.0 + '@types/node': 14.18.33 + chalk: 4.1.2 + cosmiconfig: 7.0.1 + cosmiconfig-typescript-loader: 4.2.0_gbbg4brkmakf6m5nuj7scelzny + lodash: 4.17.21 + resolve-from: 5.0.0 + ts-node: 10.9.1_yodorn5kzjgomblrsstrk2spaa + typescript: 4.8.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + /@commitlint/message/17.0.0: resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==} engines: {node: '>=v14'} dev: true + /@commitlint/message/17.2.0: + resolution: {integrity: sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q==} + engines: {node: '>=v14'} + dev: true + /@commitlint/parse/17.0.0: resolution: {integrity: sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==} engines: {node: '>=v14'} @@ -2200,6 +2749,15 @@ packages: conventional-commits-parser: 3.2.4 dev: true + /@commitlint/parse/17.2.0: + resolution: {integrity: sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.0.0 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: true + /@commitlint/read/17.1.0: resolution: {integrity: sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==} engines: {node: '>=v14'} @@ -2211,6 +2769,17 @@ packages: minimist: 1.2.6 dev: true + /@commitlint/read/17.2.0: + resolution: {integrity: sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.0.0 + '@commitlint/types': 17.0.0 + fs-extra: 10.1.0 + git-raw-commits: 2.0.11 + minimist: 1.2.7 + dev: true + /@commitlint/resolve-extends/17.1.0: resolution: {integrity: sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==} engines: {node: '>=v14'} @@ -2234,6 +2803,17 @@ packages: execa: 5.1.1 dev: true + /@commitlint/rules/17.2.0: + resolution: {integrity: sha512-1YynwD4Eh7HXZNpqG8mtUlL2pSX2jBy61EejYJv4ooZPcg50Ak7LPOyD3a9UZnsE76AXWFBz+yo9Hv4MIpAa0Q==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/ensure': 17.0.0 + '@commitlint/message': 17.2.0 + '@commitlint/to-lines': 17.0.0 + '@commitlint/types': 17.0.0 + execa: 5.1.1 + dev: true + /@commitlint/to-lines/17.0.0: resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==} engines: {node: '>=v14'} @@ -2293,15 +2873,20 @@ packages: - supports-color dev: true - /@docsearch/css/3.2.1: - resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} + /@discoveryjs/json-ext/0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true + + /@docsearch/css/3.3.0: + resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} dev: true - /@docsearch/js/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} + /@docsearch/js/3.3.0_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-oFXWRPNvPxAzBhnFJ9UCFIYZiQNc3Yrv6912nZHw/UIGxsyzKpNRZgHq8HDk1niYmOSoLKtVFcxkccpQmYGFyg==} dependencies: - '@docsearch/react': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y - preact: 10.11.0 + '@docsearch/react': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y + preact: 10.11.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -2309,8 +2894,8 @@ packages: - react-dom dev: true - /@docsearch/react/3.2.1_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} + /@docsearch/react/3.3.0_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -2323,9 +2908,9 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.7.1 - '@algolia/autocomplete-preset-algolia': 1.7.1_qs6lk5nhygj2o3hj4sf6xnr724 - '@docsearch/css': 3.2.1 + '@algolia/autocomplete-core': 1.7.2 + '@algolia/autocomplete-preset-algolia': 1.7.2_qs6lk5nhygj2o3hj4sf6xnr724 + '@docsearch/css': 3.3.0 algoliasearch: 4.14.2 transitivePeerDependencies: - '@algolia/client-search' @@ -2340,8 +2925,17 @@ packages: jsdoc-type-pratt-parser: 3.1.0 dev: true - /@esbuild/android-arm/0.15.10: - resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + /@es-joy/jsdoccomment/0.36.0: + resolution: {integrity: sha512-u0XZyvUF6Urb2cSivSXA8qXIpT/CxkHcdtZKoWusAzgzmsTWpg0F2FpWXsolHmMUyVY3dLWaoy+0ccJ5uf2QjA==} + engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} + dependencies: + comment-parser: 1.3.1 + esquery: 1.4.0 + jsdoc-type-pratt-parser: 3.1.0 + dev: true + + /@esbuild/android-arm/0.15.13: + resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -2349,8 +2943,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.10: - resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + /@esbuild/linux-loong64/0.15.13: + resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -2375,6 +2969,23 @@ packages: - supports-color dev: true + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.17.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@hapi/hoek/9.3.0: resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} dev: true @@ -2396,6 +3007,17 @@ packages: - supports-color dev: true + /@humanwhocodes/config-array/0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@humanwhocodes/gitignore-to-minimatch/1.0.2: resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} dev: true @@ -2430,20 +3052,20 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console/29.1.0: - resolution: {integrity: sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw==} + /@jest/console/29.3.1: + resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 - jest-message-util: 29.1.0 - jest-util: 29.1.0 + jest-message-util: 29.3.1 + jest-util: 29.3.1 slash: 3.0.0 dev: true - /@jest/core/29.1.1_ts-node@10.9.1: - resolution: {integrity: sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A==} + /@jest/core/29.3.1_ts-node@10.9.1: + resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -2451,32 +3073,32 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.1.0 - '@jest/reporters': 29.1.0 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 + '@jest/console': 29.3.1 + '@jest/reporters': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.4.0 + ci-info: 3.5.0 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 29.0.0 - jest-config: 29.1.1_odkjkoia5xunhxkdrka32ib6vi - jest-haste-map: 29.1.0 - jest-message-util: 29.1.0 - jest-regex-util: 29.0.0 - jest-resolve: 29.1.0 - jest-resolve-dependencies: 29.1.1 - jest-runner: 29.1.1 - jest-runtime: 29.1.1 - jest-snapshot: 29.1.0 - jest-util: 29.1.0 - jest-validate: 29.1.0 - jest-watcher: 29.1.0 + jest-changed-files: 29.2.0 + jest-config: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-resolve-dependencies: 29.3.1 + jest-runner: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + jest-watcher: 29.3.1 micromatch: 4.0.5 - pretty-format: 29.1.0 + pretty-format: 29.3.1 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -2484,59 +3106,59 @@ packages: - ts-node dev: true - /@jest/environment/29.1.1: - resolution: {integrity: sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ==} + /@jest/environment/29.3.1: + resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.1.1 - '@jest/types': 29.1.0 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - jest-mock: 29.1.1 + jest-mock: 29.3.1 dev: true - /@jest/expect-utils/29.1.0: - resolution: {integrity: sha512-YcD5CF2beqfoB07WqejPzWq1/l+zT3SgGwcqqIaPPG1DHFn/ea8MWWXeqV3KKMhTaOM1rZjlYplj1GQxR0XxKA==} + /@jest/expect-utils/29.3.1: + resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.0.0 + jest-get-type: 29.2.0 dev: true - /@jest/expect/29.1.0: - resolution: {integrity: sha512-qWQttxE5rEwzvDW9G3f0o8chu1EKvIfsMQDeRlXMLCtsDS94ckcqEMNgbKKz0NYlZ45xrIoy+/pngt3ZFr/2zw==} + /@jest/expect/29.3.1: + resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.1.0 - jest-snapshot: 29.1.0 + expect: 29.3.1 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers/29.1.1: - resolution: {integrity: sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g==} + /@jest/fake-timers/29.3.1: + resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 '@sinonjs/fake-timers': 9.1.2 '@types/node': 18.11.9 - jest-message-util: 29.1.0 - jest-mock: 29.1.1 - jest-util: 29.1.0 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true - /@jest/globals/29.1.1: - resolution: {integrity: sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q==} + /@jest/globals/29.3.1: + resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/expect': 29.1.0 - '@jest/types': 29.1.0 - jest-mock: 29.1.1 + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/types': 29.3.1 + jest-mock: 29.3.1 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters/29.1.0: - resolution: {integrity: sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w==} + /@jest/reporters/29.3.1: + resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -2545,11 +3167,11 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.1.0 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 - '@jridgewell/trace-mapping': 0.3.15 + '@jest/console': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@jridgewell/trace-mapping': 0.3.17 '@types/node': 18.11.9 chalk: 4.1.2 collect-v8-coverage: 1.0.1 @@ -2557,17 +3179,16 @@ packages: glob: 7.2.3 graceful-fs: 4.2.10 istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.0 + istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.1.0 - jest-util: 29.1.0 - jest-worker: 29.1.0 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + jest-worker: 29.3.1 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - terminal-link: 2.1.1 v8-to-istanbul: 9.0.1 transitivePeerDependencies: - supports-color @@ -2577,53 +3198,53 @@ packages: resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@sinclair/typebox': 0.24.43 + '@sinclair/typebox': 0.24.51 dev: true - /@jest/source-map/29.0.0: - resolution: {integrity: sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==} + /@jest/source-map/29.2.0: + resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.17 callsites: 3.1.0 graceful-fs: 4.2.10 dev: true - /@jest/test-result/29.1.0: - resolution: {integrity: sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g==} + /@jest/test-result/29.3.1: + resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.1.0 - '@jest/types': 29.1.0 + '@jest/console': 29.3.1 + '@jest/types': 29.3.1 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer/29.1.0: - resolution: {integrity: sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA==} + /@jest/test-sequencer/29.3.1: + resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.1.0 + '@jest/test-result': 29.3.1 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 + jest-haste-map: 29.3.1 slash: 3.0.0 dev: true - /@jest/transform/29.1.0: - resolution: {integrity: sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q==} + /@jest/transform/29.3.1: + resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.12.3 - '@jest/types': 29.1.0 - '@jridgewell/trace-mapping': 0.3.15 + '@babel/core': 7.20.2 + '@jest/types': 29.3.1 + '@jridgewell/trace-mapping': 0.3.17 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 - convert-source-map: 1.8.0 + convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 - jest-regex-util: 29.0.0 - jest-util: 29.1.0 + jest-haste-map: 29.3.1 + jest-regex-util: 29.2.0 + jest-util: 29.3.1 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -2632,8 +3253,8 @@ packages: - supports-color dev: true - /@jest/types/29.1.0: - resolution: {integrity: sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ==} + /@jest/types/29.3.1: + resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -2644,13 +3265,21 @@ packages: chalk: 4.1.2 dev: true + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.17 dev: true /@jridgewell/resolve-uri/3.1.0: @@ -2663,12 +3292,19 @@ packages: engines: {node: '>=6.0.0'} dev: true + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.15: - resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 @@ -2681,6 +3317,10 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@leichtgewicht/ip-codec/2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2728,8 +3368,8 @@ packages: resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true - /@sinclair/typebox/0.24.43: - resolution: {integrity: sha512-1orQTvtazZmsPeBroJjysvsOQCYV2yjWlebkSY38pl5vr2tdLjEJ+LoxITlGNZaH2RE19WlAwQMkH/7C14wLfw==} + /@sinclair/typebox/0.24.51: + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} dev: true /@sindresorhus/is/4.6.0: @@ -2737,8 +3377,8 @@ packages: engines: {node: '>=10'} dev: true - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} + /@sinonjs/commons/1.8.5: + resolution: {integrity: sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==} dependencies: type-detect: 4.0.8 dev: true @@ -2746,7 +3386,7 @@ packages: /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: - '@sinonjs/commons': 1.8.3 + '@sinonjs/commons': 1.8.5 dev: true /@szmarczak/http-timer/4.0.6: @@ -2782,11 +3422,11 @@ packages: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true - /@types/babel__core/7.1.19: - resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} + /@types/babel__core/7.1.20: + resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==} dependencies: - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.2 @@ -2795,20 +3435,20 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 dev: true /@types/babel__traverse/7.18.2: resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.2 dev: true /@types/body-parser/1.19.2: @@ -2818,8 +3458,14 @@ packages: '@types/node': 18.11.9 dev: true - /@types/cacheable-request/6.0.2: - resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} + /@types/bonjour/3.5.10: + resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + dependencies: + '@types/node': 18.11.9 + dev: true + + /@types/cacheable-request/6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 @@ -2830,11 +3476,11 @@ packages: /@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.3 + '@types/chai': 4.3.4 dev: true - /@types/chai/4.3.3: - resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} + /@types/chai/4.3.4: + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} dev: true /@types/concat-stream/1.6.1: @@ -2843,6 +3489,13 @@ packages: '@types/node': 18.11.9 dev: true + /@types/connect-history-api-fallback/1.3.5: + resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + dependencies: + '@types/express-serve-static-core': 4.17.31 + '@types/node': 18.11.9 + dev: true + /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -3040,6 +3693,20 @@ packages: '@types/trusted-types': 2.0.2 dev: true + /@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + dependencies: + '@types/eslint': 8.4.10 + '@types/estree': 1.0.0 + dev: true + + /@types/eslint/8.4.10: + resolution: {integrity: sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==} + dependencies: + '@types/estree': 1.0.0 + '@types/json-schema': 7.0.11 + dev: true + /@types/eslint/8.4.6: resolution: {integrity: sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==} dependencies: @@ -3047,6 +3714,10 @@ packages: '@types/json-schema': 7.0.11 dev: true + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true + /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: true @@ -3068,6 +3739,10 @@ packages: '@types/serve-static': 1.15.0 dev: true + /@types/flexsearch/0.7.3: + resolution: {integrity: sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==} + dev: true + /@types/form-data/0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: @@ -3088,6 +3763,12 @@ packages: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true + /@types/http-proxy/1.17.9: + resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} + dependencies: + '@types/node': 18.11.9 + dev: true + /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -3112,6 +3793,14 @@ packages: parse5: 7.1.1 dev: true + /@types/jsdom/20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + dependencies: + '@types/node': 18.11.9 + '@types/tough-cookie': 4.0.2 + parse5: 7.1.1 + dev: true + /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -3122,12 +3811,23 @@ packages: '@types/node': 18.11.9 dev: true + /@types/linkify-it/3.0.2: + resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + dev: true + /@types/lodash/4.14.185: resolution: {integrity: sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA==} dev: true - /@types/lodash/4.14.186: - resolution: {integrity: sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==} + /@types/lodash/4.14.188: + resolution: {integrity: sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==} + dev: true + + /@types/markdown-it/12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + dependencies: + '@types/linkify-it': 3.0.2 + '@types/mdurl': 1.0.2 dev: true /@types/mdast/3.0.10: @@ -3136,6 +3836,10 @@ packages: '@types/unist': 2.0.6 dev: true + /@types/mdurl/1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + dev: true + /@types/mime/3.0.1: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} dev: true @@ -3148,6 +3852,13 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true + /@types/node-fetch/2.6.2: + resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} + dependencies: + '@types/node': 18.11.9 + form-data: 3.0.1 + dev: true + /@types/node/10.17.60: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: true @@ -3156,8 +3867,12 @@ packages: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true - /@types/node/16.11.59: - resolution: {integrity: sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==} + /@types/node/14.18.33: + resolution: {integrity: sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==} + dev: true + + /@types/node/16.18.3: + resolution: {integrity: sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==} dev: true /@types/node/18.11.9: @@ -3198,6 +3913,20 @@ packages: '@types/node': 18.11.9 dev: true + /@types/retry/0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/serve-index/1.9.1: + resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} + dependencies: + '@types/express': 4.17.14 + dev: true + /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: @@ -3213,6 +3942,12 @@ packages: resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} dev: true + /@types/sockjs/0.3.33: + resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} + dependencies: + '@types/node': 18.11.9 + dev: true + /@types/stack-utils/2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true @@ -3237,8 +3972,14 @@ packages: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} dev: true - /@types/web-bluetooth/0.0.15: - resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} + /@types/web-bluetooth/0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + dev: true + + /@types/ws/8.5.3: + resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + dependencies: + '@types/node': 18.11.9 dev: true /@types/yargs-parser/21.0.0: @@ -3285,8 +4026,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.39.0_xyciw6oqjoiiono4dhv3uhn5my: - resolution: {integrity: sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A==} + /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq: + resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3296,15 +4037,16 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@typescript-eslint/scope-manager': 5.39.0 - '@typescript-eslint/type-utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.27.0 ignore: 5.2.0 + natural-compare-lite: 1.4.0 regexpp: 3.2.0 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -3331,8 +4073,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.39.0_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==} + /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3341,11 +4083,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.39.0 - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.27.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color @@ -3359,12 +4101,12 @@ packages: '@typescript-eslint/visitor-keys': 5.38.0 dev: true - /@typescript-eslint/scope-manager/5.39.0: - resolution: {integrity: sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==} + /@typescript-eslint/scope-manager/5.42.1: + resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/visitor-keys': 5.39.0 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 dev: true /@typescript-eslint/type-utils/5.38.0_irgkl5vooow2ydyo6aokmferha: @@ -3387,8 +4129,8 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/5.39.0_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA==} + /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3397,10 +4139,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4 - '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.27.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -3412,8 +4154,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.39.0: - resolution: {integrity: sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==} + /@typescript-eslint/types/5.42.1: + resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3431,15 +4173,15 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.3 typescript: 4.8.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.39.0_typescript@4.8.4: - resolution: {integrity: sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==} + /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4: + resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3447,12 +4189,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/visitor-keys': 5.39.0 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -3477,19 +4219,21 @@ packages: - typescript dev: true - /@typescript-eslint/utils/5.39.0_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==} + /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.39.0 - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4 - eslint: 8.24.0 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + eslint: 8.27.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.27.0 + semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript @@ -3503,30 +4247,30 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.39.0: - resolution: {integrity: sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==} + /@typescript-eslint/visitor-keys/5.42.1: + resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.39.0 + '@typescript-eslint/types': 5.42.1 eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/3.1.2_vite@3.1.4+vue@3.2.40: - resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} + /@vitejs/plugin-vue/3.2.0_vite@3.2.3+vue@3.2.44: + resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.1.4 - vue: 3.2.40 + vite: 3.2.3_@types+node@18.11.9 + vue: 3.2.44 dev: true - /@vitest/coverage-c8/0.23.4_dnicfi6n7tywwajisjusxhbdzm: + /@vitest/coverage-c8/0.23.4_upgr4zu6lczg6poy6g2njng6vm: resolution: {integrity: sha512-jmD00a5DQH9gu9K+YdvVhcMuv2CzHvU4gCnySS40Ec5hKlXtlCzRfNHl00VnhfuBeaQUmaQYe60BLT413HyDdg==} dependencies: c8: 7.12.0 - vitest: 0.23.4_dnicfi6n7tywwajisjusxhbdzm + vitest: 0.23.4_upgr4zu6lczg6poy6g2njng6vm transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3536,6 +4280,7 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -3546,113 +4291,113 @@ packages: sirv: 2.0.2 dev: true - /@vue/compiler-core/3.2.40: - resolution: {integrity: sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==} + /@vue/compiler-core/3.2.44: + resolution: {integrity: sha512-TwzeVSnaklb8wIvMtwtkPkt9wnU+XD70xJ7N9+eIHtjKAG7OoZttm+14ZL6vWOL+2RcMtSZ+cYH+gvkUqsrmSQ==} dependencies: - '@babel/parser': 7.19.1 - '@vue/shared': 3.2.40 + '@babel/parser': 7.20.3 + '@vue/shared': 3.2.44 estree-walker: 2.0.2 source-map: 0.6.1 dev: true - /@vue/compiler-dom/3.2.40: - resolution: {integrity: sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==} + /@vue/compiler-dom/3.2.44: + resolution: {integrity: sha512-wPDR+gOn2Qi7SudPJ+gE62vuO/aKXIiIFALvHpztXmDdbAHGy3CDfmBgOGchTgTlSeDJHe9olEMkgOdmyXTjUg==} dependencies: - '@vue/compiler-core': 3.2.40 - '@vue/shared': 3.2.40 + '@vue/compiler-core': 3.2.44 + '@vue/shared': 3.2.44 dev: true - /@vue/compiler-sfc/3.2.40: - resolution: {integrity: sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==} + /@vue/compiler-sfc/3.2.44: + resolution: {integrity: sha512-8cFZcUWlrtnfM/GlRwYJdlfgbEOy0OZ/osLDU3h/wJu24HuYAc7QIML1USaKqiZzkjOaTd4y8mvYvcWXq3o5dA==} dependencies: - '@babel/parser': 7.19.1 - '@vue/compiler-core': 3.2.40 - '@vue/compiler-dom': 3.2.40 - '@vue/compiler-ssr': 3.2.40 - '@vue/reactivity-transform': 3.2.40 - '@vue/shared': 3.2.40 + '@babel/parser': 7.20.3 + '@vue/compiler-core': 3.2.44 + '@vue/compiler-dom': 3.2.44 + '@vue/compiler-ssr': 3.2.44 + '@vue/reactivity-transform': 3.2.44 + '@vue/shared': 3.2.44 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.16 + postcss: 8.4.18 source-map: 0.6.1 dev: true - /@vue/compiler-ssr/3.2.40: - resolution: {integrity: sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==} + /@vue/compiler-ssr/3.2.44: + resolution: {integrity: sha512-tAkUFLgvxds3l5KPyAH77OIYrEeLngNYQfWA9GocHiy2nlyajjqAH/Jq93Bq29Y20GeJzblmRp9DVYCVkJ5Rsw==} dependencies: - '@vue/compiler-dom': 3.2.40 - '@vue/shared': 3.2.40 + '@vue/compiler-dom': 3.2.44 + '@vue/shared': 3.2.44 dev: true - /@vue/devtools-api/6.4.3: - resolution: {integrity: sha512-9WCRwdROJvWcHAdyrR7SZMM/qUvllDZnpndHXokThkUsjnJ2xe4/pvsH9FZrxFe22L+JmDKczL79HjLJ7DK9rg==} + /@vue/devtools-api/6.4.5: + resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} dev: true - /@vue/reactivity-transform/3.2.40: - resolution: {integrity: sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==} + /@vue/reactivity-transform/3.2.44: + resolution: {integrity: sha512-WGbEiXaS2qAOTS9Z3kKk2Nk4bi8OUl73Sih+h0XV9RTUATnaJSEQedveHUDQnHyXiZwyBMKosrxJg8aThHO/rw==} dependencies: - '@babel/parser': 7.19.1 - '@vue/compiler-core': 3.2.40 - '@vue/shared': 3.2.40 + '@babel/parser': 7.20.3 + '@vue/compiler-core': 3.2.44 + '@vue/shared': 3.2.44 estree-walker: 2.0.2 magic-string: 0.25.9 dev: true - /@vue/reactivity/3.2.40: - resolution: {integrity: sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==} + /@vue/reactivity/3.2.44: + resolution: {integrity: sha512-Fe0s52fTsPl+RSdvoqUZ3HRKlaVsKhIh1mea5EWOedFvZCjnymzlj3YC1wZMxi89qXRFSdEASVA/BWUGypk0Ig==} dependencies: - '@vue/shared': 3.2.40 + '@vue/shared': 3.2.44 dev: true - /@vue/runtime-core/3.2.40: - resolution: {integrity: sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==} + /@vue/runtime-core/3.2.44: + resolution: {integrity: sha512-uwEV1cttL33k2dC+CNGYhKEYqGejT9KmgQ+4n/LmYUfZ1Gorl8F32DlIX+1pANyGHL1tBAisqHDxKyQBp2oBNA==} dependencies: - '@vue/reactivity': 3.2.40 - '@vue/shared': 3.2.40 + '@vue/reactivity': 3.2.44 + '@vue/shared': 3.2.44 dev: true - /@vue/runtime-dom/3.2.40: - resolution: {integrity: sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==} + /@vue/runtime-dom/3.2.44: + resolution: {integrity: sha512-LDzNwXpU/nSpxrLk5jS0bfStgt88msgsgFzj6vHrl7es3QktIrCGybQS5CB/p/TO0q98iAiYtEVmi+Lej7Vgjg==} dependencies: - '@vue/runtime-core': 3.2.40 - '@vue/shared': 3.2.40 + '@vue/runtime-core': 3.2.44 + '@vue/shared': 3.2.44 csstype: 2.6.21 dev: true - /@vue/server-renderer/3.2.40_vue@3.2.40: - resolution: {integrity: sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==} + /@vue/server-renderer/3.2.44_vue@3.2.44: + resolution: {integrity: sha512-3+ArN07UgOAdbGKIp3uVqeC3bnR3J324QNjPR6vxHbLrTlkibFv8QNled/ux3fVq0KDCkVVKGOKB2V4sCIYOgg==} peerDependencies: - vue: 3.2.40 + vue: 3.2.44 dependencies: - '@vue/compiler-ssr': 3.2.40 - '@vue/shared': 3.2.40 - vue: 3.2.40 + '@vue/compiler-ssr': 3.2.44 + '@vue/shared': 3.2.44 + vue: 3.2.44 dev: true - /@vue/shared/3.2.40: - resolution: {integrity: sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==} + /@vue/shared/3.2.44: + resolution: {integrity: sha512-mGZ44bnn0zpZ36nXtxbrBPno43yr96wjQE1dBEKS1Sieugt27HS4OGZVBRIgsdGzosB7vqZAvu0ttu1FDVdolA==} dev: true - /@vueuse/core/9.3.0_vue@3.2.40: - resolution: {integrity: sha512-64Rna8IQDWpdrJxgitDg7yv1yTp41ZmvV8zlLEylK4QQLWAhz1OFGZDPZ8bU4lwcGgbEJ2sGi2jrdNh4LttUSQ==} + /@vueuse/core/9.5.0_vue@3.2.44: + resolution: {integrity: sha512-6GsWBsJHEb3sYw15mbLrcbslAVY45pkzjJYTKYKCXv88z7srAF0VEW0q+oXKsl58tCbqooplInahXFg8Yo1m4w==} dependencies: - '@types/web-bluetooth': 0.0.15 - '@vueuse/metadata': 9.3.0 - '@vueuse/shared': 9.3.0_vue@3.2.40 - vue-demi: 0.13.11_vue@3.2.40 + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.5.0 + '@vueuse/shared': 9.5.0_vue@3.2.44 + vue-demi: 0.13.11_vue@3.2.44 transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata/9.3.0: - resolution: {integrity: sha512-GnnfjbzIPJIh9ngL9s9oGU1+Hx/h5/KFqTfJykzh/1xjaHkedV9g0MASpdmPZIP+ynNhKAcEfA6g5i8KXwtoMA==} + /@vueuse/metadata/9.5.0: + resolution: {integrity: sha512-4M1AyPZmIv41pym+K5+4wup3bKuYebbH8w8BROY1hmT7rIwcyS4tEL+UsGz0Hiu1FCOxcoBrwtAizc0YmBJjyQ==} dev: true - /@vueuse/shared/9.3.0_vue@3.2.40: - resolution: {integrity: sha512-caGUWLY0DpPC6l31KxeUy6vPVNA0yKxx81jFYLoMpyP6cF84FG5Dkf69DfSUqL57wX8JcUkJDMnQaQIZPWFEQQ==} + /@vueuse/shared/9.5.0_vue@3.2.44: + resolution: {integrity: sha512-HnnCWU1Vg9CVWRCcI8ohDKDRB2Sc4bTgT1XAIaoLSfVHHn+TKbrox6pd3klCSw4UDxkhDfOk8cAdcK+Z5KleCA==} dependencies: - vue-demi: 0.13.11_vue@3.2.40 + vue-demi: 0.13.11_vue@3.2.44 transitivePeerDependencies: - '@vue/composition-api' - vue @@ -3673,7 +4418,7 @@ packages: engines: {node: '>=12.0.0'} dependencies: chalk: 4.1.2 - loglevel: 1.8.0 + loglevel: 1.8.1 loglevel-plugin-prefix: 0.8.4 strip-ansi: 6.0.1 dev: true @@ -3687,7 +4432,7 @@ packages: resolution: {integrity: sha512-OFVTFEB6qdG84Y+cOWIacV0loGMgq2SF/rGGlGxai89V3UQxzCFTYVoAx6odAuSNZ37wmfWCykyAR/lAlMItoQ==} engines: {node: '>=12.0.0'} dependencies: - '@types/node': 16.11.59 + '@types/node': 16.18.3 got: 11.8.5 dev: true @@ -3700,7 +4445,153 @@ packages: p-iteration: 1.1.8 dev: true - /@yankeeinlondon/builder-api/0.4.1_owgwhktbfueopkpwpts4jzdaqq: + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + dev: true + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + dev: true + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + dev: true + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + dev: true + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + 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 + dev: true + + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + dev: true + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + 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 + dev: true + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + 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 + dev: true + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + dev: true + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + 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 + dev: true + + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webpack-cli/configtest/1.2.0_pda42hcaj7d62cr262fr632kue: + resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} + peerDependencies: + webpack: 4.x.x || 5.x.x + webpack-cli: 4.x.x + dependencies: + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + dev: true + + /@webpack-cli/info/1.5.0_webpack-cli@4.10.0: + resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} + peerDependencies: + webpack-cli: 4.x.x + dependencies: + envinfo: 7.8.1 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + dev: true + + /@webpack-cli/serve/1.7.0_ud4agclah7rahur6ntojouq57y: + resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} + peerDependencies: + webpack-cli: 4.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + dev: true + + /@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + + /@yankeeinlondon/builder-api/0.4.1_7jcwyn4sobzthx4ft3nhqn7kdm: resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} peerDependencies: fp-ts: ^2.12.1 @@ -3708,41 +4599,43 @@ packages: markdown-it: ^13.0.1 vite-plugin-md: '*' dependencies: - '@yankeeinlondon/happy-wrapper': 2.6.0_dnicfi6n7tywwajisjusxhbdzm - fp-ts: 2.12.3 - inferred-types: 0.22.0 + '@yankeeinlondon/happy-wrapper': 2.8.0_upgr4zu6lczg6poy6g2njng6vm + fp-ts: 2.13.1 + inferred-types: 0.22.8_upgr4zu6lczg6poy6g2njng6vm markdown-it: 13.0.1 - vite-plugin-md: 0.20.4_ucycamvpk6tvs7aryt7d45qco4 + vite-plugin-md: 0.20.4_2vrekto2ma5pf5j2eoe6xabo24 transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' - '@vitest/ui' - c8 - - happy-dom + - encoding - jsdom - less - sass - stylus + - sugarss - supports-color - terser dev: true - /@yankeeinlondon/happy-wrapper/2.6.0_dnicfi6n7tywwajisjusxhbdzm: - resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} - peerDependencies: - happy-dom: ^6.0.4 + /@yankeeinlondon/happy-wrapper/2.8.0_upgr4zu6lczg6poy6g2njng6vm: + resolution: {integrity: sha512-p7Xj6Hwnuo2XahikUd2oDno84i1dndkiR3emLeRm7Ei2KegE8X9vS3eg/AT4I8kRX0nPkA2yPjkry/Co+3X0xw==} dependencies: - happy-dom: 6.0.4 - native-dash: 1.23.2_dnicfi6n7tywwajisjusxhbdzm + fp-ts: 2.13.1 + happy-dom: 7.6.7 + native-dash: 1.23.2_ddphrhne6j5wyjvrgarb33hoge transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' - '@vitest/ui' - c8 + - encoding - jsdom - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -3793,16 +4686,24 @@ packages: /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.0 + acorn: 8.8.1 acorn-walk: 8.2.0 dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: + /acorn-import-assertions/1.8.0_acorn@8.8.1: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.1 + dev: true + + /acorn-jsx/5.3.2_acorn@8.8.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.0 + acorn: 8.8.1 dev: true /acorn-node/1.8.2: @@ -3835,6 +4736,12 @@ packages: hasBin: true dev: true + /acorn/8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /add-stream/1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true @@ -3867,6 +4774,34 @@ packages: indent-string: 4.0.0 dev: true + /ajv-formats/2.1.1_ajv@8.11.0: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + dev: true + + /ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords/5.1.0_ajv@8.11.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.11.0 + fast-deep-equal: 3.1.3 + dev: true + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -3922,6 +4857,12 @@ packages: type-fest: 0.21.3 dev: true + /ansi-html-community/0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + /ansi-html/0.0.7: resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} engines: {'0': node >= 0.8.0} @@ -3967,8 +4908,8 @@ packages: engines: {node: '>=10'} dev: true - /ansi-styles/6.1.1: - resolution: {integrity: sha512-qDOv24WjnYuL+wbwHdlsYZFy+cgPtrYw0Tn7GLORicQp9BkQLzrgI3Pm4VyR9ERZ41YTn7KlMPuL1n05WdZvmg==} + /ansi-styles/6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true @@ -3991,7 +4932,7 @@ packages: resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} engines: {node: '>=0.10.0'} dependencies: - buffer-equal: 1.0.0 + buffer-equal: 1.0.1 dev: true /arch/2.2.0: @@ -4031,6 +4972,10 @@ packages: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true + /array-flatten/2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true + /array-ify/1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true @@ -4078,7 +5023,7 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} dependencies: - tslib: 2.4.0 + tslib: 2.4.1 dev: true /astral-regex/2.0.0: @@ -4116,7 +5061,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -4124,22 +5069,22 @@ packages: /axios/0.26.0: resolution: {integrity: sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true - /babel-jest/29.1.0_@babel+core@7.12.3: - resolution: {integrity: sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ==} + /babel-jest/29.3.1_@babel+core@7.20.2: + resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.12.3 - '@jest/transform': 29.1.0 - '@types/babel__core': 7.1.19 + '@babel/core': 7.20.2 + '@jest/transform': 29.3.1 + '@types/babel__core': 7.1.20 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.0.2_@babel+core@7.12.3 + babel-preset-jest: 29.2.0_@babel+core@7.20.2 chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -4147,32 +5092,26 @@ packages: - supports-color dev: true - /babel-plugin-dynamic-import-node/2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - dependencies: - object.assign: 4.1.4 - dev: true - /babel-plugin-istanbul/6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.0 + istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-jest-hoist/29.0.2: - resolution: {integrity: sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==} + /babel-plugin-jest-hoist/29.2.0: + resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.18.10 - '@babel/types': 7.19.0 - '@types/babel__core': 7.1.19 + '@babel/types': 7.20.2 + '@types/babel__core': 7.1.20 '@types/babel__traverse': 7.18.2 dev: true @@ -4181,7 +5120,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.1 + '@babel/compat-data': 7.20.1 '@babel/core': 7.12.3 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 semver: 6.3.0 @@ -4196,7 +5135,7 @@ packages: dependencies: '@babel/core': 7.12.3 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.12.3 - core-js-compat: 3.25.2 + core-js-compat: 3.26.0 transitivePeerDependencies: - supports-color dev: true @@ -4212,35 +5151,35 @@ packages: - supports-color dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.12.3: + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.2: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 - dev: true - - /babel-preset-jest/29.0.2_@babel+core@7.12.3: - resolution: {integrity: sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==} + '@babel/core': 7.20.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.2 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2 + dev: true + + /babel-preset-jest/29.2.0_@babel+core@7.20.2: + resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 29.0.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 + '@babel/core': 7.20.2 + babel-plugin-jest-hoist: 29.2.0 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2 dev: true /babelify/10.0.0_@babel+core@7.12.3: @@ -4281,6 +5220,10 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /batch/0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + /bcrypt-pbkdf/1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: @@ -4304,8 +5247,8 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /body-parser/1.20.0: - resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + /body-parser/1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -4316,7 +5259,7 @@ packages: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.10.3 + qs: 6.11.0 raw-body: 2.5.1 type-is: 1.6.18 unpipe: 1.0.0 @@ -4337,6 +5280,15 @@ packages: safe-json-parse: 1.0.1 dev: true + /bonjour-service/1.0.14: + resolution: {integrity: sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==} + dependencies: + array-flatten: 2.1.2 + dns-equal: 1.0.0 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -4369,14 +5321,14 @@ packages: fill-range: 7.0.1 dev: true - /brilliant-errors/0.6.0_dnicfi6n7tywwajisjusxhbdzm: + /brilliant-errors/0.6.0_ddphrhne6j5wyjvrgarb33hoge: resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} engines: {node: '>=12.0.0'} dependencies: callsites: 3.1.0 common-types: 1.31.1 - inferred-types: 0.22.0 - vitest: 0.19.1_dnicfi6n7tywwajisjusxhbdzm + inferred-types: 0.22.8_ddphrhne6j5wyjvrgarb33hoge + vitest: 0.19.1_ddphrhne6j5wyjvrgarb33hoge transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -4387,6 +5339,30 @@ packages: - less - sass - stylus + - sugarss + - supports-color + - terser + dev: true + + /brilliant-errors/0.6.0_upgr4zu6lczg6poy6g2njng6vm: + resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} + engines: {node: '>=12.0.0'} + dependencies: + callsites: 3.1.0 + common-types: 1.31.1 + inferred-types: 0.22.8 + vitest: 0.19.1_upgr4zu6lczg6poy6g2njng6vm + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - sugarss - supports-color - terser dev: true @@ -4406,10 +5382,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001409 - electron-to-chromium: 1.4.257 + caniuse-lite: 1.0.30001431 + electron-to-chromium: 1.4.284 node-releases: 2.0.6 - update-browserslist-db: 1.0.9_browserslist@4.21.4 + update-browserslist-db: 1.0.10_browserslist@4.21.4 dev: true /bser/2.1.1: @@ -4422,9 +5398,9 @@ packages: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-equal/1.0.0: - resolution: {integrity: sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==} - engines: {node: '>=0.4.0'} + /buffer-equal/1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} dev: true /buffer-from/1.1.2: @@ -4446,6 +5422,11 @@ packages: resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} dev: true + /bytes/3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + /bytes/3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -4497,7 +5478,7 @@ packages: clone-response: 1.0.3 get-stream: 5.2.0 http-cache-semantics: 4.1.0 - keyv: 4.5.0 + keyv: 4.5.2 lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.1 @@ -4543,8 +5524,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001409: - resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} + /caniuse-lite/1.0.30001431: + resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==} dev: true /caseless/0.12.0: @@ -4555,15 +5536,15 @@ packages: resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} dev: true - /chai/4.3.6: - resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + /chai/4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.2 - deep-eql: 3.0.1 + deep-eql: 4.1.2 get-func-name: 2.0.0 - loupe: 2.3.4 + loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -4653,8 +5634,13 @@ packages: fsevents: 2.3.2 dev: true - /ci-info/3.4.0: - resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + + /ci-info/3.5.0: + resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==} dev: true /cjs-module-lexer/1.2.2: @@ -4731,11 +5717,29 @@ packages: wrap-ansi: 7.0.0 dev: true + /cliui/8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /clone-buffer/1.0.0: resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} engines: {node: '>= 0.10'} dev: true + /clone-deep/4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + /clone-response/1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: @@ -4821,6 +5825,10 @@ packages: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} dev: true + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + /commander/5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -4829,10 +5837,9 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false - /commander/9.4.0: - resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} + /commander/9.4.1: + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} engines: {node: ^12.20.0 || >=14} dev: true @@ -4861,6 +5868,28 @@ packages: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true + /compressible/2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression/1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -4871,7 +5900,7 @@ packages: dependencies: inherits: 2.0.4 readable-stream: 2.0.6 - typedarray: 0.0.6 + typedarray: 0.0.7 dev: true /concat-stream/1.6.2: @@ -4910,6 +5939,27 @@ packages: yargs: 17.5.1 dev: true + /concurrently/7.5.0: + resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} + engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} + hasBin: true + dependencies: + chalk: 4.1.2 + date-fns: 2.29.3 + lodash: 4.17.21 + rxjs: 7.5.7 + shell-quote: 1.7.4 + spawn-command: 0.0.2-1 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.6.2 + dev: true + + /connect-history-api-fallback/2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + /content-disposition/0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -5100,10 +6150,12 @@ packages: q: 1.5.1 dev: true - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /convert-source-map/2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true /cookie-signature/1.0.6: @@ -5120,8 +6172,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat/3.25.2: - resolution: {integrity: sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==} + /core-js-compat/3.26.0: + resolution: {integrity: sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==} dependencies: browserslist: 4.21.4 dev: true @@ -5161,6 +6213,21 @@ packages: typescript: 4.8.4 dev: true + /cosmiconfig-typescript-loader/4.2.0_gbbg4brkmakf6m5nuj7scelzny: + resolution: {integrity: sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=3' + dependencies: + '@types/node': 14.18.33 + cosmiconfig: 7.0.1 + ts-node: 10.9.1_yodorn5kzjgomblrsstrk2spaa + typescript: 4.8.4 + dev: true + /cosmiconfig/7.0.1: resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} engines: {node: '>=10'} @@ -5180,7 +6247,7 @@ packages: js-yaml: 3.14.1 lcov-parse: 1.0.0 log-driver: 1.2.7 - minimist: 1.2.6 + minimist: 1.2.7 request: 2.88.2 dev: true @@ -5239,32 +6306,32 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_cypress@10.8.0+jest@29.1.1: + /cypress-image-snapshot/4.0.1_bg25yee4qeg7mpleuvd346a3tq: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: cypress: ^4.5.0 dependencies: chalk: 2.4.2 - cypress: 10.8.0 + cypress: 10.11.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@29.1.1 + jest-image-snapshot: 4.2.0_jest@29.3.1 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: - jest dev: true - /cypress/10.8.0: - resolution: {integrity: sha512-QVse0dnLm018hgti2enKMVZR9qbIO488YGX06nH5j3Dg1isL38DwrBtyrax02CANU6y8F4EJUuyW6HJKw1jsFA==} + /cypress/10.11.0: + resolution: {integrity: sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA==} engines: {node: '>=12.0.0'} hasBin: true requiresBuild: true dependencies: '@cypress/request': 2.88.10 '@cypress/xvfb': 1.2.4_supports-color@8.1.1 - '@types/node': 14.18.29 + '@types/node': 14.18.33 '@types/sinonjs__fake-timers': 8.1.1 '@types/sizzle': 2.3.3 arch: 2.2.0 @@ -5278,7 +6345,7 @@ packages: cli-table3: 0.6.3 commander: 5.1.0 common-tags: 1.8.2 - dayjs: 1.11.5 + dayjs: 1.11.6 debug: 4.3.4_supports-color@8.1.1 enquirer: 2.3.6 eventemitter2: 6.4.7 @@ -5294,12 +6361,12 @@ packages: listr2: 3.14.0_enquirer@2.3.6 lodash: 4.17.21 log-symbols: 4.1.0 - minimist: 1.2.6 + minimist: 1.2.7 ospath: 1.2.2 pretty-bytes: 5.6.0 proxy-from-env: 1.0.0 request-progress: 3.0.0 - semver: 7.3.7 + semver: 7.3.8 supports-color: 8.1.1 tmp: 0.2.1 untildify: 4.0.0 @@ -5631,8 +6698,8 @@ packages: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true - /dayjs/1.11.5: - resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==} + /dayjs/1.11.6: + resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} dev: true /de-indent/1.0.2: @@ -5710,8 +6777,8 @@ packages: supports-color: 8.1.1 dev: true - /decamelize-keys/1.1.0: - resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} + /decamelize-keys/1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 @@ -5727,6 +6794,10 @@ packages: resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} dev: true + /decimal.js/10.4.2: + resolution: {integrity: sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==} + dev: true + /decode-named-character-reference/1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: @@ -5749,9 +6820,9 @@ packages: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true - /deep-eql/3.0.1: - resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} - engines: {node: '>=0.12'} + /deep-eql/4.1.2: + resolution: {integrity: sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==} + engines: {node: '>=6'} dependencies: type-detect: 4.0.8 dev: true @@ -5765,11 +6836,23 @@ packages: engines: {node: '>=0.10.0'} dev: true + /default-gateway/6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: true + /defer-to-connect/2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} dev: true + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + /define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} @@ -5800,8 +6883,8 @@ packages: isobject: 3.0.1 dev: true - /defined/1.0.0: - resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==} + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} dev: true /degenerator/3.0.2: @@ -5861,18 +6944,22 @@ packages: engines: {node: '>=8'} dev: true + /detect-node/2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + /detective/5.2.1: resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} engines: {node: '>=0.8.0'} hasBin: true dependencies: acorn-node: 1.8.2 - defined: 1.0.0 - minimist: 1.2.6 + defined: 1.0.1 + minimist: 1.2.7 dev: true - /diff-sequences/29.0.0: - resolution: {integrity: sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==} + /diff-sequences/29.3.1: + resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -5893,6 +6980,17 @@ packages: path-type: 4.0.0 dev: true + /dns-equal/1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true + + /dns-packet/5.4.0: + resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + /doctrine-temporary-fork/2.1.0: resolution: {integrity: sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==} engines: {node: '>=0.10.0'} @@ -5916,7 +7014,7 @@ packages: '@babel/generator': 7.12.1 '@babel/parser': 7.12.3 '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-proposal-decorators': 7.19.1_@babel+core@7.12.3 + '@babel/plugin-proposal-decorators': 7.20.2_@babel+core@7.12.3 '@babel/plugin-proposal-do-expressions': 7.18.6_@babel+core@7.12.3 '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.12.3 '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.12.3 @@ -5932,12 +7030,12 @@ packages: '@babel/plugin-proposal-throw-expressions': 7.18.6_@babel+core@7.12.3 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.12.3 - '@babel/preset-env': 7.19.1_@babel+core@7.12.3 + '@babel/preset-env': 7.20.2_@babel+core@7.12.3 '@babel/preset-flow': 7.18.6_@babel+core@7.12.3 '@babel/preset-react': 7.18.6_@babel+core@7.12.3 '@babel/preset-stage-0': 7.8.3 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 ansi-html: 0.0.7 babelify: 10.0.0_@babel+core@7.12.3 chalk: 2.4.2 @@ -5976,7 +7074,7 @@ packages: vfile-sort: 2.2.2 vinyl: 2.2.1 vinyl-fs: 3.0.3 - vue-template-compiler: 2.7.10 + vue-template-compiler: 2.7.14 yargs: 15.4.1 transitivePeerDependencies: - supports-color @@ -6073,12 +7171,12 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /electron-to-chromium/1.4.257: - resolution: {integrity: sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A==} + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} dev: true - /emittery/0.10.2: - resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + /emittery/0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} dev: true @@ -6105,6 +7203,14 @@ packages: once: 1.4.0 dev: true + /enhanced-resolve/5.10.0: + resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + /enquirer/2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -6122,6 +7228,12 @@ packages: engines: {node: '>=0.12'} dev: true + /envinfo/7.8.1: + resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} + engines: {node: '>=4'} + hasBin: true + dev: true + /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -6134,8 +7246,12 @@ packages: string-template: 0.2.1 dev: true - /esbuild-android-64/0.15.10: - resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true + + /esbuild-android-64/0.15.13: + resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -6143,8 +7259,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.10: - resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} + /esbuild-android-arm64/0.15.13: + resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -6152,8 +7268,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.10: - resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} + /esbuild-darwin-64/0.15.13: + resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -6161,8 +7277,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.10: - resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} + /esbuild-darwin-arm64/0.15.13: + resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -6170,8 +7286,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.10: - resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} + /esbuild-freebsd-64/0.15.13: + resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -6179,8 +7295,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.10: - resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} + /esbuild-freebsd-arm64/0.15.13: + resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -6188,8 +7304,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.10: - resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} + /esbuild-linux-32/0.15.13: + resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -6197,8 +7313,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.10: - resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} + /esbuild-linux-64/0.15.13: + resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -6206,8 +7322,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.10: - resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} + /esbuild-linux-arm/0.15.13: + resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -6215,8 +7331,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.10: - resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} + /esbuild-linux-arm64/0.15.13: + resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -6224,8 +7340,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.10: - resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} + /esbuild-linux-mips64le/0.15.13: + resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -6233,8 +7349,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.10: - resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} + /esbuild-linux-ppc64le/0.15.13: + resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -6242,8 +7358,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.10: - resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} + /esbuild-linux-riscv64/0.15.13: + resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -6251,8 +7367,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.10: - resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} + /esbuild-linux-s390x/0.15.13: + resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -6260,8 +7376,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.10: - resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} + /esbuild-netbsd-64/0.15.13: + resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -6269,8 +7385,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.10: - resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} + /esbuild-openbsd-64/0.15.13: + resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -6278,8 +7394,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.10: - resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} + /esbuild-sunos-64/0.15.13: + resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -6287,8 +7403,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.10: - resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} + /esbuild-windows-32/0.15.13: + resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -6296,8 +7412,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.10: - resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} + /esbuild-windows-64/0.15.13: + resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -6305,8 +7421,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.10: - resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} + /esbuild-windows-arm64/0.15.13: + resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -6314,34 +7430,34 @@ packages: dev: true optional: true - /esbuild/0.15.10: - resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} + /esbuild/0.15.13: + resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.10 - '@esbuild/linux-loong64': 0.15.10 - esbuild-android-64: 0.15.10 - esbuild-android-arm64: 0.15.10 - esbuild-darwin-64: 0.15.10 - esbuild-darwin-arm64: 0.15.10 - esbuild-freebsd-64: 0.15.10 - esbuild-freebsd-arm64: 0.15.10 - esbuild-linux-32: 0.15.10 - esbuild-linux-64: 0.15.10 - esbuild-linux-arm: 0.15.10 - esbuild-linux-arm64: 0.15.10 - esbuild-linux-mips64le: 0.15.10 - esbuild-linux-ppc64le: 0.15.10 - esbuild-linux-riscv64: 0.15.10 - esbuild-linux-s390x: 0.15.10 - esbuild-netbsd-64: 0.15.10 - esbuild-openbsd-64: 0.15.10 - esbuild-sunos-64: 0.15.10 - esbuild-windows-32: 0.15.10 - esbuild-windows-64: 0.15.10 - esbuild-windows-arm64: 0.15.10 + '@esbuild/android-arm': 0.15.13 + '@esbuild/linux-loong64': 0.15.13 + esbuild-android-64: 0.15.13 + esbuild-android-arm64: 0.15.13 + esbuild-darwin-64: 0.15.13 + esbuild-darwin-arm64: 0.15.13 + esbuild-freebsd-64: 0.15.13 + esbuild-freebsd-arm64: 0.15.13 + esbuild-linux-32: 0.15.13 + esbuild-linux-64: 0.15.13 + esbuild-linux-arm: 0.15.13 + esbuild-linux-arm64: 0.15.13 + esbuild-linux-mips64le: 0.15.13 + esbuild-linux-ppc64le: 0.15.13 + esbuild-linux-riscv64: 0.15.13 + esbuild-linux-s390x: 0.15.13 + esbuild-netbsd-64: 0.15.13 + esbuild-openbsd-64: 0.15.13 + esbuild-sunos-64: 0.15.13 + esbuild-windows-32: 0.15.13 + esbuild-windows-64: 0.15.13 + esbuild-windows-arm64: 0.15.13 dev: true /escalade/3.1.1: @@ -6415,13 +7531,13 @@ packages: eslint: 8.23.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.24.0: + /eslint-config-prettier/8.5.0_eslint@8.27.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.24.0 + eslint: 8.27.0 dev: true /eslint-plugin-cypress/2.12.1_eslint@8.23.1: @@ -6433,12 +7549,12 @@ packages: globals: 11.12.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.24.0: + /eslint-plugin-cypress/2.12.1_eslint@8.27.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.24.0 + eslint: 8.27.0 globals: 11.12.0 dev: true @@ -6469,8 +7585,8 @@ packages: - typescript dev: true - /eslint-plugin-jest/27.1.0_4rkgrv37dc3yt652qtbljgksbi: - resolution: {integrity: sha512-sqojX5GKzQ8+PScF9rJ7dRMtu0NEIWsaDMLwRRvVE28mnWctZe5VAti394Nmut11vPwgxck9XnDmmjx/U9NowQ==} + /eslint-plugin-jest/27.1.5_kdswgjmqcx7mthqz7ow2zlfevy: + resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -6482,10 +7598,10 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.39.0_xyciw6oqjoiiono4dhv3uhn5my - '@typescript-eslint/utils': 5.39.0_ypn2ylkkyfa5i233caldtndbqa - eslint: 8.24.0 - jest: 29.1.1_odkjkoia5xunhxkdrka32ib6vi + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + eslint: 8.27.0 + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - supports-color - typescript @@ -6509,19 +7625,19 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc/39.3.6_eslint@8.24.0: - resolution: {integrity: sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==} - engines: {node: ^14 || ^16 || ^17 || ^18} + /eslint-plugin-jsdoc/39.6.2_eslint@8.27.0: + resolution: {integrity: sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==} + engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.31.0 + '@es-joy/jsdoccomment': 0.36.0 comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.24.0 + eslint: 8.27.0 esquery: 1.4.0 - semver: 7.3.7 + semver: 7.3.8 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -6547,13 +7663,13 @@ packages: - supports-color dev: true - /eslint-plugin-markdown/3.0.0_eslint@8.24.0: + /eslint-plugin-markdown/3.0.0_eslint@8.27.0: resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.24.0 + eslint: 8.27.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color @@ -6585,13 +7701,13 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /eslint-utils/3.0.0_eslint@8.24.0: + /eslint-utils/3.0.0_eslint@8.27.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.24.0 + eslint: 8.27.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6653,15 +7769,15 @@ packages: - supports-color dev: true - /eslint/8.24.0: - resolution: {integrity: sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==} + /eslint/8.27.0: + resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.2 - '@humanwhocodes/config-array': 0.10.5 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -6669,9 +7785,9 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.27.0 eslint-visitor-keys: 3.3.0 - espree: 9.4.0 + espree: 9.4.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -6679,13 +7795,13 @@ packages: find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.17.0 - globby: 11.1.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 - js-sdsl: 4.1.4 + is-path-inside: 3.0.3 + js-sdsl: 4.1.5 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -6705,8 +7821,17 @@ packages: resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 + eslint-visitor-keys: 3.3.0 + dev: true + + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 eslint-visitor-keys: 3.3.0 dev: true @@ -6791,6 +7916,15 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true + /eventemitter3/4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + /execa/1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -6876,24 +8010,24 @@ packages: - supports-color dev: true - /expect/29.1.0: - resolution: {integrity: sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w==} + /expect/29.3.1: + resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.1.0 - jest-get-type: 29.0.0 - jest-matcher-utils: 29.1.0 - jest-message-util: 29.1.0 - jest-util: 29.1.0 + '@jest/expect-utils': 29.3.1 + jest-get-type: 29.2.0 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 dev: true - /express/4.18.1: - resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} + /express/4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.0 + body-parser: 1.20.1 content-disposition: 0.5.4 content-type: 1.0.4 cookie: 0.5.0 @@ -6912,7 +8046,7 @@ packages: parseurl: 1.3.3 path-to-regexp: 0.1.7 proxy-addr: 2.0.7 - qs: 6.10.3 + qs: 6.11.0 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.18.0 @@ -7007,6 +8141,11 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fastest-levenshtein/1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: @@ -7020,6 +8159,13 @@ packages: websocket-driver: 0.7.4 dev: true + /faye-websocket/0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + /fb-watchman/2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -7130,6 +8276,10 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true + /flexsearch/0.7.31: + resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} + dev: true + /flush-write-stream/1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: @@ -7137,7 +8287,7 @@ packages: readable-stream: 2.3.7 dev: true - /follow-redirects/1.15.2_debug@4.3.2: + /follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -7145,8 +8295,6 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.2 dev: true /for-in/1.0.2: @@ -7175,6 +8323,24 @@ packages: mime-types: 2.1.35 dev: true + /form-data/2.5.1: + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7189,8 +8355,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /fp-ts/2.12.3: - resolution: {integrity: sha512-8m0XvW8kZbfnJOA4NvSVXu95mLbPf4LQGwQyqVukIYS4KzSNJiyKSmuZUmbVHteUi6MGkAJGPb0goPZqI+Tsqg==} + /fp-ts/2.13.1: + resolution: {integrity: sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ==} dev: true /fragment-cache/0.2.1: @@ -7254,6 +8420,10 @@ packages: through2: 2.0.5 dev: true + /fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: true + /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -7435,8 +8605,8 @@ packages: emoji-regex: 6.1.1 dev: true - /github-slugger/1.4.0: - resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} + /github-slugger/1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} dev: true /glob-parent/3.1.0: @@ -7476,6 +8646,10 @@ packages: unique-stream: 2.3.1 dev: true + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -7550,7 +8724,7 @@ packages: dependencies: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.2 + '@types/cacheable-request': 6.0.3 '@types/responselike': 1.0.0 cacheable-lookup: 5.0.4 cacheable-request: 7.0.2 @@ -7585,21 +8759,25 @@ packages: strip-bom-string: 1.0.0 dev: true + /handle-thing/2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} hasBin: true dependencies: - minimist: 1.2.6 + minimist: 1.2.7 neo-async: 2.6.2 source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.1 + uglify-js: 3.17.4 dev: true - /happy-dom/6.0.4: - resolution: {integrity: sha512-b+ID23Ms0BY08UNLymsOMG7EI2jSlwEt4cbJs938GZfeNAg+fqgkSO3TokQMgSOFoHznpjWmpVjBUL5boJ9PWw==} + /happy-dom/7.6.7: + resolution: {integrity: sha512-9pOslsClyF5JX9ZM3dzRhLjTHqc4dha7v+ZB94u4PHMVTdLplXAnh5e5WXtPUU1n0J4tDUavslJqitqt/1W45g==} dependencies: css.escape: 1.5.1 he: 1.2.0 @@ -7754,6 +8932,15 @@ packages: lru-cache: 6.0.0 dev: true + /hpack.js/2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.7 + wbuf: 1.7.3 + dev: true + /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -7761,6 +8948,10 @@ packages: whatwg-encoding: 2.0.0 dev: true + /html-entities/2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + dev: true + /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -7792,6 +8983,20 @@ packages: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true + /http-deceiver/1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors/1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + /http-errors/2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -7829,6 +9034,36 @@ packages: - supports-color dev: true + /http-proxy-middleware/2.0.6_@types+express@4.17.14: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.14 + '@types/http-proxy': 1.17.9 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy/1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + /http-response-object/3.0.2: resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} dependencies: @@ -7892,8 +9127,8 @@ packages: ms: 2.1.3 dev: true - /husky/8.0.1: - resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} + /husky/8.0.2: + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} engines: {node: '>=14'} hasBin: true dev: true @@ -7954,10 +9189,48 @@ packages: engines: {node: '>=8'} dev: true - /inferred-types/0.22.0: - resolution: {integrity: sha512-7JF/huiuS1ANuQisfRigytz4IdYbmQVXOW+Jt6IL4k3TQxsCxAz72rWccBKTomnmGzBRcd3ki8gyrESYY/2bYw==} + /inferred-types/0.22.8: + resolution: {integrity: sha512-gs0zTE04eOBso5tFZPA2UoYiH9qMCqCJCUdH9K6P6cofqNkI1L5bx9QDE0XE0khJgLN7TmH+W0JhwBbnkdjzWQ==} dependencies: - common-types: 1.31.1 + brilliant-errors: 0.6.0_upgr4zu6lczg6poy6g2njng6vm + dev: true + + /inferred-types/0.22.8_ddphrhne6j5wyjvrgarb33hoge: + resolution: {integrity: sha512-gs0zTE04eOBso5tFZPA2UoYiH9qMCqCJCUdH9K6P6cofqNkI1L5bx9QDE0XE0khJgLN7TmH+W0JhwBbnkdjzWQ==} + dependencies: + brilliant-errors: 0.6.0_ddphrhne6j5wyjvrgarb33hoge + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /inferred-types/0.22.8_upgr4zu6lczg6poy6g2njng6vm: + resolution: {integrity: sha512-gs0zTE04eOBso5tFZPA2UoYiH9qMCqCJCUdH9K6P6cofqNkI1L5bx9QDE0XE0khJgLN7TmH+W0JhwBbnkdjzWQ==} + dependencies: + brilliant-errors: 0.6.0_upgr4zu6lczg6poy6g2njng6vm + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - sugarss + - supports-color + - terser dev: true /inflight/1.0.6: @@ -7967,6 +9240,10 @@ packages: wrappy: 1.0.2 dev: true + /inherits/2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true @@ -7985,6 +9262,11 @@ packages: engines: {node: '>=12'} dev: false + /interpret/2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + dev: true + /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: true @@ -7998,6 +9280,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /ipaddr.js/2.0.1: + resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} + engines: {node: '>= 10'} + dev: true + /is-absolute/1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -8060,11 +9347,11 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: - ci-info: 3.4.0 + ci-info: 3.5.0 dev: true - /is-core-module/2.10.0: - resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 dev: true @@ -8105,6 +9392,12 @@ packages: kind-of: 6.0.3 dev: true + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -8195,6 +9488,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj/3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -8284,6 +9582,13 @@ packages: resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} dev: true + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true @@ -8317,12 +9622,12 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/5.2.0: - resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} + /istanbul-lib-instrument/5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.12.3 - '@babel/parser': 7.19.1 + '@babel/core': 7.20.2 + '@babel/parser': 7.20.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -8366,43 +9671,43 @@ packages: plist: 3.0.6 dev: true - /jest-changed-files/29.0.0: - resolution: {integrity: sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==} + /jest-changed-files/29.2.0: + resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 p-limit: 3.1.0 dev: true - /jest-circus/29.1.1: - resolution: {integrity: sha512-Ii+3JIeLF3z8j2E7fPSjPjXJLBdbAcZyfEiALRQ1Fk+FWTIfuEfZrZcjSaBdz/k/waoq+bPf9x/vBCXIAyLLEQ==} + /jest-circus/29.3.1: + resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/expect': 29.1.0 - '@jest/test-result': 29.1.0 - '@jest/types': 29.1.0 + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 - jest-each: 29.1.0 - jest-matcher-utils: 29.1.0 - jest-message-util: 29.1.0 - jest-runtime: 29.1.1 - jest-snapshot: 29.1.0 - jest-util: 29.1.0 + jest-each: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 p-limit: 3.1.0 - pretty-format: 29.1.0 + pretty-format: 29.3.1 slash: 3.0.0 - stack-utils: 2.0.5 + stack-utils: 2.0.6 transitivePeerDependencies: - supports-color dev: true - /jest-cli/29.1.1_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q==} + /jest-cli/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8411,26 +9716,26 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.1.1_ts-node@10.9.1 - '@jest/test-result': 29.1.0 - '@jest/types': 29.1.0 + '@jest/core': 29.3.1_ts-node@10.9.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.1.1_odkjkoia5xunhxkdrka32ib6vi - jest-util: 29.1.0 - jest-validate: 29.1.0 + jest-config: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jest-util: 29.3.1 + jest-validate: 29.3.1 prompts: 2.4.2 - yargs: 17.5.1 + yargs: 17.6.2 transitivePeerDependencies: - '@types/node' - supports-color - ts-node dev: true - /jest-config/29.1.1_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg==} + /jest-config/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -8441,27 +9746,27 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.12.3 - '@jest/test-sequencer': 29.1.0 - '@jest/types': 29.1.0 + '@babel/core': 7.20.2 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - babel-jest: 29.1.0_@babel+core@7.12.3 + babel-jest: 29.3.1_@babel+core@7.20.2 chalk: 4.1.2 - ci-info: 3.4.0 + ci-info: 3.5.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.1.1 - jest-environment-node: 29.1.1 - jest-get-type: 29.0.0 - jest-regex-util: 29.0.0 - jest-resolve: 29.1.0 - jest-runner: 29.1.1 - jest-util: 29.1.0 - jest-validate: 29.1.0 + jest-circus: 29.3.1 + jest-environment-node: 29.3.1 + jest-get-type: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-runner: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.1.0 + pretty-format: 29.3.1 slash: 3.0.0 strip-json-comments: 3.1.1 ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 @@ -8469,71 +9774,71 @@ packages: - supports-color dev: true - /jest-diff/29.1.0: - resolution: {integrity: sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw==} + /jest-diff/29.3.1: + resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 29.0.0 - jest-get-type: 29.0.0 - pretty-format: 29.1.0 + diff-sequences: 29.3.1 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true - /jest-docblock/29.0.0: - resolution: {integrity: sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==} + /jest-docblock/29.2.0: + resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 dev: true - /jest-each/29.1.0: - resolution: {integrity: sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA==} + /jest-each/29.3.1: + resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 chalk: 4.1.2 - jest-get-type: 29.0.0 - jest-util: 29.1.0 - pretty-format: 29.1.0 + jest-get-type: 29.2.0 + jest-util: 29.3.1 + pretty-format: 29.3.1 dev: true - /jest-environment-node/29.1.1: - resolution: {integrity: sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw==} + /jest-environment-node/29.3.1: + resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/fake-timers': 29.1.1 - '@jest/types': 29.1.0 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - jest-mock: 29.1.1 - jest-util: 29.1.0 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true - /jest-get-type/29.0.0: - resolution: {integrity: sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==} + /jest-get-type/29.2.0: + resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map/29.1.0: - resolution: {integrity: sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g==} + /jest-haste-map/29.3.1: + resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 '@types/graceful-fs': 4.1.5 '@types/node': 18.11.9 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 - jest-regex-util: 29.0.0 - jest-util: 29.1.0 - jest-worker: 29.1.0 + jest-regex-util: 29.2.0 + jest-util: 29.3.1 + jest-worker: 29.3.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0_jest@29.1.1: + /jest-image-snapshot/4.2.0_jest@29.3.1: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8542,7 +9847,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.1.1_odkjkoia5xunhxkdrka32ib6vi + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8551,49 +9856,49 @@ packages: ssim.js: 3.5.0 dev: true - /jest-leak-detector/29.1.0: - resolution: {integrity: sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q==} + /jest-leak-detector/29.3.1: + resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.0.0 - pretty-format: 29.1.0 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true - /jest-matcher-utils/29.1.0: - resolution: {integrity: sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA==} + /jest-matcher-utils/29.3.1: + resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.1.0 - jest-get-type: 29.0.0 - pretty-format: 29.1.0 + jest-diff: 29.3.1 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true - /jest-message-util/29.1.0: - resolution: {integrity: sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A==} + /jest-message-util/29.3.1: + resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.1.0 + pretty-format: 29.3.1 slash: 3.0.0 - stack-utils: 2.0.5 + stack-utils: 2.0.6 dev: true - /jest-mock/29.1.1: - resolution: {integrity: sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q==} + /jest-mock/29.3.1: + resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - jest-util: 29.1.0 + jest-util: 29.3.1 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.1.0: + /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -8602,179 +9907,189 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.1.0 + jest-resolve: 29.3.1 dev: true - /jest-regex-util/29.0.0: - resolution: {integrity: sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==} + /jest-regex-util/29.2.0: + resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies/29.1.1: - resolution: {integrity: sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q==} + /jest-resolve-dependencies/29.3.1: + resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-regex-util: 29.0.0 - jest-snapshot: 29.1.0 + jest-regex-util: 29.2.0 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true - /jest-resolve/29.1.0: - resolution: {integrity: sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA==} + /jest-resolve/29.3.1: + resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 - jest-pnp-resolver: 1.2.2_jest-resolve@29.1.0 - jest-util: 29.1.0 - jest-validate: 29.1.0 + jest-haste-map: 29.3.1 + jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 dev: true - /jest-runner/29.1.1: - resolution: {integrity: sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ==} + /jest-runner/29.3.1: + resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.1.0 - '@jest/environment': 29.1.1 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 + '@jest/console': 29.3.1 + '@jest/environment': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 - emittery: 0.10.2 + emittery: 0.13.1 graceful-fs: 4.2.10 - jest-docblock: 29.0.0 - jest-environment-node: 29.1.1 - jest-haste-map: 29.1.0 - jest-leak-detector: 29.1.0 - jest-message-util: 29.1.0 - jest-resolve: 29.1.0 - jest-runtime: 29.1.1 - jest-util: 29.1.0 - jest-watcher: 29.1.0 - jest-worker: 29.1.0 + jest-docblock: 29.2.0 + jest-environment-node: 29.3.1 + jest-haste-map: 29.3.1 + jest-leak-detector: 29.3.1 + jest-message-util: 29.3.1 + jest-resolve: 29.3.1 + jest-runtime: 29.3.1 + jest-util: 29.3.1 + jest-watcher: 29.3.1 + jest-worker: 29.3.1 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime/29.1.1: - resolution: {integrity: sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg==} + /jest-runtime/29.3.1: + resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.1.1 - '@jest/fake-timers': 29.1.1 - '@jest/globals': 29.1.1 - '@jest/source-map': 29.0.0 - '@jest/test-result': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/globals': 29.3.1 + '@jest/source-map': 29.2.0 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.1.0 - jest-message-util: 29.1.0 - jest-mock: 29.1.1 - jest-regex-util: 29.0.0 - jest-resolve: 29.1.0 - jest-snapshot: 29.1.0 - jest-util: 29.1.0 + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot/29.1.0: - resolution: {integrity: sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g==} + /jest-snapshot/29.3.1: + resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.12.3 - '@babel/generator': 7.19.0 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.12.3 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 - '@jest/expect-utils': 29.1.0 - '@jest/transform': 29.1.0 - '@jest/types': 29.1.0 + '@babel/core': 7.20.2 + '@babel/generator': 7.20.4 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.2 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 + '@jest/expect-utils': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/babel__traverse': 7.18.2 '@types/prettier': 2.7.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2 chalk: 4.1.2 - expect: 29.1.0 + expect: 29.3.1 graceful-fs: 4.2.10 - jest-diff: 29.1.0 - jest-get-type: 29.0.0 - jest-haste-map: 29.1.0 - jest-matcher-utils: 29.1.0 - jest-message-util: 29.1.0 - jest-util: 29.1.0 + jest-diff: 29.3.1 + jest-get-type: 29.2.0 + jest-haste-map: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 natural-compare: 1.4.0 - pretty-format: 29.1.0 - semver: 7.3.7 + pretty-format: 29.3.1 + semver: 7.3.8 transitivePeerDependencies: - supports-color dev: true - /jest-util/29.1.0: - resolution: {integrity: sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ==} + /jest-util/29.3.1: + resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 - ci-info: 3.4.0 + ci-info: 3.5.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-validate/29.1.0: - resolution: {integrity: sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA==} + /jest-validate/29.3.1: + resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.1.0 + '@jest/types': 29.3.1 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.0.0 + jest-get-type: 29.2.0 leven: 3.1.0 - pretty-format: 29.1.0 + pretty-format: 29.3.1 dev: true - /jest-watcher/29.1.0: - resolution: {integrity: sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg==} + /jest-watcher/29.3.1: + resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.1.0 - '@jest/types': 29.1.0 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 - emittery: 0.10.2 - jest-util: 29.1.0 + emittery: 0.13.1 + jest-util: 29.3.1 string-length: 4.0.2 dev: true - /jest-worker/29.1.0: - resolution: {integrity: sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ==} + /jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.11.9 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest-worker/29.3.1: + resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.11.9 + jest-util: 29.3.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest/29.1.1_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ==} + /jest/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8783,10 +10098,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.1.1_ts-node@10.9.1 - '@jest/types': 29.1.0 + '@jest/core': 29.3.1_ts-node@10.9.1 + '@jest/types': 29.3.1 import-local: 3.1.0 - jest-cli: 29.1.1_odkjkoia5xunhxkdrka32ib6vi + jest-cli: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - '@types/node' - supports-color @@ -8817,8 +10132,8 @@ packages: nomnom: 1.5.2 dev: true - /joi/17.6.0: - resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} + /joi/17.7.0: + resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -8839,6 +10154,10 @@ packages: resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} dev: true + /js-sdsl/4.1.5: + resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -8909,8 +10228,8 @@ packages: - utf-8-validate dev: true - /jsdom/20.0.1: - resolution: {integrity: sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A==} + /jsdom/20.0.2: + resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 @@ -8919,12 +10238,12 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.0 + acorn: 8.8.1 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.4.1 + decimal.js: 10.4.2 domexception: 4.0.0 escodegen: 2.0.0 form-data: 4.0.0 @@ -8942,7 +10261,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.9.0 + ws: 8.11.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -9051,8 +10370,8 @@ packages: verror: 1.10.0 dev: true - /keyv/4.5.0: - resolution: {integrity: sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==} + /keyv/4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} dependencies: json-buffer: 3.0.1 dev: true @@ -9098,8 +10417,8 @@ packages: /konan/2.1.1: resolution: {integrity: sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==} dependencies: - '@babel/parser': 7.19.1 - '@babel/traverse': 7.19.1 + '@babel/parser': 7.20.3 + '@babel/traverse': 7.20.1 transitivePeerDependencies: - supports-color dev: true @@ -9188,7 +10507,7 @@ packages: dependencies: cli-truncate: 3.1.0 colorette: 2.0.19 - commander: 9.4.0 + commander: 9.4.1 debug: 4.3.4 execa: 6.1.0 lilconfig: 2.0.5 @@ -9198,7 +10517,7 @@ packages: object-inspect: 1.12.2 pidtree: 0.6.0 string-argv: 0.3.1 - yaml: 2.1.1 + yaml: 2.1.3 transitivePeerDependencies: - enquirer - supports-color @@ -9219,7 +10538,7 @@ packages: log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.5.6 + rxjs: 7.5.7 through: 2.3.8 wrap-ansi: 7.0.0 dev: true @@ -9238,7 +10557,7 @@ packages: log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.5.6 + rxjs: 7.5.7 through: 2.3.8 wrap-ansi: 7.0.0 dev: true @@ -9257,6 +10576,11 @@ packages: strip-bom: 3.0.0 dev: true + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} @@ -9338,8 +10662,8 @@ packages: resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} dev: true - /loglevel/1.8.0: - resolution: {integrity: sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==} + /loglevel/1.8.1: + resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} engines: {node: '>= 0.6.0'} dev: true @@ -9351,8 +10675,8 @@ packages: resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} dev: true - /loupe/2.3.4: - resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} + /loupe/2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: get-func-name: 2.0.0 dev: true @@ -9474,7 +10798,7 @@ packages: '@types/unist': 2.0.6 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.1.0 - micromark: 3.0.10 + micromark: 3.1.0 micromark-util-decode-numeric-character-reference: 1.0.0 micromark-util-decode-string: 1.0.2 micromark-util-normalize-identifier: 1.0.0 @@ -9535,7 +10859,7 @@ packages: /mdast-util-toc/3.1.0: resolution: {integrity: sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==} dependencies: - github-slugger: 1.4.0 + github-slugger: 1.5.0 mdast-util-to-string: 1.1.0 unist-util-is: 2.1.3 unist-util-visit: 1.4.1 @@ -9554,13 +10878,20 @@ packages: engines: {node: '>= 0.6'} dev: true + /memfs/3.4.10: + resolution: {integrity: sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: true + /meow/8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} dependencies: '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 - decamelize-keys: 1.1.0 + decamelize-keys: 1.1.1 hard-rejection: 2.1.0 minimist-options: 4.1.0 normalize-package-data: 3.0.3 @@ -9716,8 +11047,8 @@ packages: micromark-util-types: 1.0.2 dev: true - /micromark-util-sanitize-uri/1.0.0: - resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} + /micromark-util-sanitize-uri/1.1.0: + resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==} dependencies: micromark-util-character: 1.1.0 micromark-util-encode: 1.0.1 @@ -9750,8 +11081,8 @@ packages: - supports-color dev: true - /micromark/3.0.10: - resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} + /micromark/3.1.0: + resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} dependencies: '@types/debug': 4.1.7 debug: 4.3.4 @@ -9765,7 +11096,7 @@ packages: micromark-util-encode: 1.0.1 micromark-util-normalize-identifier: 1.0.0 micromark-util-resolve-all: 1.0.0 - micromark-util-sanitize-uri: 1.0.0 + micromark-util-sanitize-uri: 1.1.0 micromark-util-subtokenize: 1.0.2 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 @@ -9852,6 +11183,10 @@ packages: engines: {node: '>=4'} dev: true + /minimalistic-assert/1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -9871,6 +11206,10 @@ packages: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + /mixin-deep/1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} @@ -9883,7 +11222,7 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: - minimist: 1.2.6 + minimist: 1.2.7 dev: true /modify-values/1.0.1: @@ -9900,7 +11239,7 @@ packages: browser-resolve: 1.11.3 cached-path-relative: 1.1.0 concat-stream: 1.5.2 - defined: 1.0.0 + defined: 1.0.1 detective: 5.2.1 duplexer2: 0.1.4 inherits: 2.0.4 @@ -9942,6 +11281,14 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true + /multicast-dns/7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.4.0 + thunky: 1.1.0 + dev: true + /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -9967,11 +11314,11 @@ packages: - supports-color dev: true - /native-dash/1.23.2_dnicfi6n7tywwajisjusxhbdzm: + /native-dash/1.23.2_ddphrhne6j5wyjvrgarb33hoge: resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} dependencies: - brilliant-errors: 0.6.0_dnicfi6n7tywwajisjusxhbdzm - inferred-types: 0.22.0 + brilliant-errors: 0.6.0_ddphrhne6j5wyjvrgarb33hoge + inferred-types: 0.22.8_ddphrhne6j5wyjvrgarb33hoge transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -9982,10 +11329,15 @@ packages: - less - sass - stylus + - sugarss - supports-color - terser dev: true + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10020,6 +11372,11 @@ packages: whatwg-url: 5.0.0 dev: true + /node-forge/1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + /node-int64/0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true @@ -10054,8 +11411,8 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.10.0 - semver: 7.3.7 + is-core-module: 2.11.0 + semver: 7.3.8 validate-npm-package-license: 3.0.4 dev: true @@ -10159,6 +11516,10 @@ packages: isobject: 3.0.1 dev: true + /obuf/1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -10166,6 +11527,11 @@ packages: ee-first: 1.1.1 dev: true + /on-headers/1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -10186,6 +11552,15 @@ packages: mimic-fn: 4.0.0 dev: true + /open/8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + /optionator/0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -10291,6 +11666,14 @@ packages: aggregate-error: 3.1.0 dev: true + /p-retry/4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + /p-try/1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -10591,8 +11974,8 @@ packages: engines: {node: '>=12.13.0'} dev: true - /pnpm/7.13.2: - resolution: {integrity: sha512-lOQRBcCWycLK1PB9KptqTd6iyiH7m4GRuS4G2j4b74yDx/XvRXtP/weYz8e0/ia7HX1pMF1vJCF48ssklq0TJQ==} + /pnpm/7.15.0: + resolution: {integrity: sha512-GGQ5+MCwD0bpq+65uitpgO1+ZusZ1keO5ebG/CH6ciu1ohnZj5Y3X374Ow/CBApa+Jw2/NUifVRz2fW4JChftA==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -10606,8 +11989,12 @@ packages: resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} dev: true - /postcss/8.4.16: - resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -10615,8 +12002,8 @@ packages: source-map-js: 1.0.2 dev: true - /preact/10.11.0: - resolution: {integrity: sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==} + /preact/10.11.2: + resolution: {integrity: sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==} dev: true /prelude-ls/1.1.2: @@ -10654,8 +12041,8 @@ packages: engines: {node: '>=6'} dev: true - /pretty-format/29.1.0: - resolution: {integrity: sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ==} + /pretty-format/29.3.1: + resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -10671,8 +12058,8 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /promise/8.2.0: - resolution: {integrity: sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==} + /promise/8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} dependencies: asap: 2.0.6 dev: true @@ -10775,13 +12162,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true - /qs/6.10.3: - resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: true - /qs/6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -10822,6 +12202,12 @@ packages: engines: {node: '>=10'} dev: true + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /range-parser/1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -10953,6 +12339,13 @@ packages: picomatch: 2.3.1 dev: true + /rechoir/0.7.1: + resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.1 + dev: true + /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -10972,14 +12365,14 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime/0.13.9: - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + /regenerator-runtime/0.13.10: + resolution: {integrity: sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==} dev: true /regenerator-transform/0.15.0: resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.20.1 dev: true /regex-not/1.0.2: @@ -11269,7 +12662,7 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.10.0 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -11293,6 +12686,11 @@ packages: engines: {node: '>=0.12'} dev: true + /retry/0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -11320,14 +12718,6 @@ packages: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} dev: false - /rollup/2.78.1: - resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - /rollup/2.79.1: resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} @@ -11352,6 +12742,12 @@ packages: tslib: 2.4.0 dev: true + /rxjs/7.5.7: + resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} + dependencies: + tslib: 2.4.1 + dev: true + /sade/1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -11394,6 +12790,25 @@ packages: xmlchars: 2.2.0 dev: true + /schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: true + + /schema-utils/4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.11.0 + ajv-formats: 2.1.1_ajv@8.11.0 + ajv-keywords: 5.1.0_ajv@8.11.0 + dev: true + /section-matter/1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -11402,6 +12817,17 @@ packages: kind-of: 6.0.3 dev: true + /select-hose/2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selfsigned/2.1.1: + resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} + engines: {node: '>=10'} + dependencies: + node-forge: 1.3.1 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -11420,6 +12846,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -11441,6 +12875,27 @@ packages: - supports-color dev: true + /serialize-javascript/6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-index/1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /serve-static/1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -11467,10 +12922,21 @@ packages: split-string: 3.1.0 dev: true + /setprototypeof/1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + /setprototypeof/1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true + /shallow-clone/3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: true + /shebang-command/1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -11499,6 +12965,10 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true + /shell-quote/1.7.4: + resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} + dev: true + /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -11564,7 +13034,7 @@ packages: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} dependencies: - ansi-styles: 6.1.1 + ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 dev: true @@ -11605,19 +13075,27 @@ packages: - supports-color dev: true + /sockjs/0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + /socks-proxy-agent/5.0.1: resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.4 - socks: 2.7.0 + socks: 2.7.1 transitivePeerDependencies: - supports-color dev: true - /socks/2.7.0: - resolution: {integrity: sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==} + /socks/2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} dependencies: ip: 2.0.0 @@ -11647,6 +13125,13 @@ packages: source-map: 0.6.1 dev: true + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + /source-map-url/0.4.1: resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated @@ -11705,6 +13190,32 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true + /spdy-transport/3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.0 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy/4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /split-on-first/1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -11759,8 +13270,8 @@ packages: resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==} dev: true - /stack-utils/2.0.5: - resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} + /stack-utils/2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 @@ -11782,7 +13293,7 @@ packages: figures: 3.2.0 find-up: 5.0.0 git-semver-tags: 4.1.1 - semver: 7.3.7 + semver: 7.3.8 stringify-package: 1.0.1 yargs: 16.2.0 dev: true @@ -11815,6 +13326,11 @@ packages: object-copy: 0.1.0 dev: true + /statuses/1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + /statuses/2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -11911,6 +13427,7 @@ packages: /stringify-package/1.0.1: resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==} + deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json dev: true /strip-ansi/3.0.1: @@ -11984,7 +13501,7 @@ packages: /strip-literal/0.4.2: resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} dependencies: - acorn: 8.8.0 + acorn: 8.8.1 dev: true /stylis/4.1.2: @@ -11994,7 +13511,7 @@ packages: /subarg/1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} dependencies: - minimist: 1.2.6 + minimist: 1.2.7 dev: true /supports-color/2.0.0: @@ -12030,14 +13547,6 @@ packages: has-flag: 4.0.0 dev: true - /supports-hyperlinks/2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -12062,6 +13571,11 @@ packages: get-port: 3.2.0 dev: true + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -12070,12 +13584,39 @@ packages: iterm2-version: 4.2.0 dev: true - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} + /terser-webpack-plugin/5.3.6_webpack@5.75.0: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 + '@jridgewell/trace-mapping': 0.3.17 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.15.1 + webpack: 5.75.0_webpack-cli@4.10.0 + dev: true + + /terser/5.15.1: + resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.1 + commander: 2.20.3 + source-map-support: 0.5.21 dev: true /test-exclude/6.0.0: @@ -12106,10 +13647,10 @@ packages: '@types/qs': 6.9.7 caseless: 0.12.0 concat-stream: 1.6.2 - form-data: 2.3.3 + form-data: 2.5.1 http-basic: 8.1.3 http-response-object: 3.0.2 - promise: 8.2.0 + promise: 8.3.0 qs: 6.11.0 dev: true @@ -12117,6 +13658,10 @@ packages: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true + /throat/6.0.1: + resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} + dev: true + /throttleit/1.0.0: resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} dev: true @@ -12145,6 +13690,10 @@ packages: readable-stream: 3.6.0 dev: true + /thunky/1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + /tiny-lr/1.1.1: resolution: {integrity: sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==} dependencies: @@ -12158,8 +13707,8 @@ packages: - supports-color dev: true - /tinybench/2.1.5: - resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} + /tinybench/2.3.1: + resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true /tinypool/0.2.4: @@ -12329,7 +13878,7 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 '@types/node': 18.11.9 - acorn: 8.8.0 + acorn: 8.8.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 @@ -12402,6 +13951,37 @@ packages: yn: 3.1.1 dev: true + /ts-node/10.9.1_yodorn5kzjgomblrsstrk2spaa: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 14.18.33 + acorn: 8.8.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.8.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -12410,6 +13990,10 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true + /tslib/2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: true + /tsutils/3.21.0_typescript@4.8.3: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -12501,6 +14085,10 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true + /typedarray/0.0.7: + resolution: {integrity: sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==} + dev: true + /typescript/4.8.3: resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} engines: {node: '>=4.2.0'} @@ -12517,8 +14105,8 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true - /uglify-js/3.17.1: - resolution: {integrity: sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q==} + /uglify-js/3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true @@ -12717,8 +14305,8 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db/1.0.9_browserslist@4.21.4: - resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -12795,9 +14383,9 @@ packages: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.17 '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 + convert-source-map: 1.9.0 dev: true /validate-npm-package-license/3.0.4: @@ -12924,7 +14512,7 @@ packages: engines: {node: '>= 0.10'} dependencies: append-buffer: 1.0.2 - convert-source-map: 1.8.0 + convert-source-map: 1.9.0 graceful-fs: 4.2.10 normalize-path: 2.1.1 now-and-later: 2.0.1 @@ -12944,15 +14532,15 @@ packages: replace-ext: 1.0.1 dev: true - /vite-plugin-md/0.20.4_ucycamvpk6tvs7aryt7d45qco4: + /vite-plugin-md/0.20.4_2vrekto2ma5pf5j2eoe6xabo24: resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} peerDependencies: '@rollup/pluginutils': ^4.2.1 rollup: ^2.77.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@yankeeinlondon/builder-api': 0.4.1_owgwhktbfueopkpwpts4jzdaqq - '@yankeeinlondon/happy-wrapper': 2.6.0_dnicfi6n7tywwajisjusxhbdzm + '@yankeeinlondon/builder-api': 0.4.1_7jcwyn4sobzthx4ft3nhqn7kdm + '@yankeeinlondon/happy-wrapper': 2.8.0_upgr4zu6lczg6poy6g2njng6vm gray-matter: 4.0.3 markdown-it: 13.0.1 rollup: 2.79.1 @@ -12962,72 +14550,53 @@ packages: - '@vitest/browser' - '@vitest/ui' - c8 + - encoding - fp-ts - - happy-dom - inferred-types - jsdom - less - sass - stylus + - sugarss - supports-color - terser dev: true - /vite/3.1.3: - resolution: {integrity: sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==} + /vite/3.2.3_@types+node@18.11.9: + resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: + '@types/node': '>= 14' less: '*' sass: '*' stylus: '*' + sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - terser: + '@types/node': optional: true - dependencies: - esbuild: 0.15.10 - postcss: 8.4.16 - resolve: 1.22.1 - rollup: 2.78.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vite/3.1.4: - resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - terser: ^5.4.0 - peerDependenciesMeta: less: optional: true sass: optional: true stylus: optional: true + sugarss: + optional: true terser: optional: true dependencies: - esbuild: 0.15.10 - postcss: 8.4.16 + '@types/node': 18.11.9 + esbuild: 0.15.13 + postcss: 8.4.18 resolve: 1.22.1 - rollup: 2.78.1 + rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_ptytdeik3ggcnromfbdnybzvtu: + /vitepress-plugin-mermaid/2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 @@ -13035,38 +14604,44 @@ packages: vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: mermaid: link:packages/mermaid - vite-plugin-md: 0.20.4_ucycamvpk6tvs7aryt7d45qco4 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y + vite-plugin-md: 0.20.4_2vrekto2ma5pf5j2eoe6xabo24 + vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi dev: true - /vitepress-plugin-search/1.0.4-alpha.11_nvmgxcm7cozn4csefdube5au3y: - resolution: {integrity: sha512-fKJIpPj6QGQeXda31Dx5f9DtCYnPVHKQVsOUpnJOzahWHPPgGofslwwvwaeRMWIGvpslxi/m4RVK6C+ydqKukA==} + /vitepress-plugin-search/1.0.4-alpha.15_pb3anlaclwt5smse4ujf447uy4: + resolution: {integrity: sha512-Ef/VkhTVYlECVI0H9Ck6745UNPfYFppAqnlxVSMJXdxP2vjOZ5TYNczlTTQ2p9dh16MFw/IurbL1/GrG4nXdNw==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: + flexsearch: ^0.7.31 vite: 2 || 3 vitepress: ^1.0.0-alpha.13 vue: '3' dependencies: - vite: 3.1.4 - vitepress: 1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y - vue: 3.2.40 + '@types/flexsearch': 0.7.3 + '@types/markdown-it': 12.2.3 + flexsearch: 0.7.31 + markdown-it: 13.0.1 + vite: 3.2.3_@types+node@18.11.9 + vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi + vue: 3.2.44 dev: true - /vitepress/1.0.0-alpha.19_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-0FIUZB6JGXio7SELDDUkyQoMjmO/UAXqDXmznzOsBKsdZ3EHlyb6NaP/V/BMfN5S8+GV88ScbIL0jd/pDzkLBg==} + /vitepress/1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi: + resolution: {integrity: sha512-pvbLssDMgLUN1terajmPlFBxHSDGO4DqwexKbjFyr7LeELerVuwGrG6F2J1hxmwOlbpLd1kHXEDqGm9JX/kTDQ==} hasBin: true dependencies: - '@docsearch/css': 3.2.1 - '@docsearch/js': 3.2.1_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 3.1.2_vite@3.1.4+vue@3.2.40 - '@vue/devtools-api': 6.4.3 - '@vueuse/core': 9.3.0_vue@3.2.40 + '@docsearch/css': 3.3.0 + '@docsearch/js': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y + '@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.44 + '@vue/devtools-api': 6.4.5 + '@vueuse/core': 9.5.0_vue@3.2.44 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.1.4 - vue: 3.2.40 + vite: 3.2.3_@types+node@18.11.9 + vue: 3.2.44 transitivePeerDependencies: - '@algolia/client-search' + - '@types/node' - '@types/react' - '@vue/composition-api' - less @@ -13074,10 +14649,57 @@ packages: - react-dom - sass - stylus + - sugarss + - terser + dev: true + + /vitest/0.19.1_ddphrhne6j5wyjvrgarb33hoge: + resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.11.9 + '@vitest/ui': 0.23.4 + chai: 4.3.7 + debug: 4.3.4 + happy-dom: 7.6.7 + jsdom: 20.0.2 + local-pkg: 0.4.2 + tinypool: 0.2.4 + tinyspy: 1.0.2 + vite: 3.2.3_@types+node@18.11.9 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color - terser dev: true - /vitest/0.19.1_dnicfi6n7tywwajisjusxhbdzm: + /vitest/0.19.1_upgr4zu6lczg6poy6g2njng6vm: resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -13102,27 +14724,27 @@ packages: jsdom: optional: true dependencies: - '@types/chai': 4.3.3 + '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.11.9 '@vitest/ui': 0.23.4 - chai: 4.3.6 + chai: 4.3.7 debug: 4.3.4 - happy-dom: 6.0.4 - jsdom: 20.0.1 + jsdom: 20.0.2 local-pkg: 0.4.2 tinypool: 0.2.4 tinyspy: 1.0.2 - vite: 3.1.4 + vite: 3.2.3_@types+node@18.11.9 transitivePeerDependencies: - less - sass - stylus + - sugarss - supports-color - terser dev: true - /vitest/0.23.4_dnicfi6n7tywwajisjusxhbdzm: + /vitest/0.23.4_upgr4zu6lczg6poy6g2njng6vm: resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} engines: {node: '>=v14.16.0'} hasBin: true @@ -13144,24 +14766,24 @@ packages: jsdom: optional: true dependencies: - '@types/chai': 4.3.3 + '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.11.9 '@vitest/ui': 0.23.4 - chai: 4.3.6 + chai: 4.3.7 debug: 4.3.4 - happy-dom: 6.0.4 - jsdom: 20.0.1 + jsdom: 20.0.2 local-pkg: 0.4.2 strip-literal: 0.4.2 - tinybench: 2.1.5 + tinybench: 2.3.1 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.1.3 + vite: 3.2.3_@types+node@18.11.9 transitivePeerDependencies: - less - sass - stylus + - sugarss - supports-color - terser dev: true @@ -13171,7 +14793,7 @@ packages: engines: {node: '>=6.0'} hasBin: true dependencies: - acorn: 8.8.0 + acorn: 8.8.1 acorn-walk: 8.2.0 dev: true @@ -13209,7 +14831,7 @@ packages: resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} dev: true - /vue-demi/0.13.11_vue@3.2.40: + /vue-demi/0.13.11_vue@3.2.44: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true @@ -13221,28 +14843,29 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.40 + vue: 3.2.44 dev: true - /vue-template-compiler/2.7.10: - resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==} + /vue-template-compiler/2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} dependencies: de-indent: 1.0.2 he: 1.2.0 dev: true - /vue/3.2.40: - resolution: {integrity: sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==} + /vue/3.2.44: + resolution: {integrity: sha512-nyNtFDh+0TpRgYCUVfPD1mJ9PpIsCPXaOF4DeGNIT5vQ4X23ykflGq3Sy2P+tEt1/pQZxZnAysuRKwyhNj+Cjw==} dependencies: - '@vue/compiler-dom': 3.2.40 - '@vue/compiler-sfc': 3.2.40 - '@vue/runtime-dom': 3.2.40 - '@vue/server-renderer': 3.2.40_vue@3.2.40 - '@vue/shared': 3.2.40 + '@vue/compiler-dom': 3.2.44 + '@vue/compiler-sfc': 3.2.44 + '@vue/runtime-dom': 3.2.44 + '@vue/server-renderer': 3.2.44_vue@3.2.44 + '@vue/shared': 3.2.44 dev: true /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. dependencies: browser-process-hrtime: 1.0.0 dev: true @@ -13260,10 +14883,10 @@ packages: hasBin: true dependencies: axios: 0.21.4_debug@4.3.2 - joi: 17.6.0 + joi: 17.7.0 lodash: 4.17.21 - minimist: 1.2.6 - rxjs: 7.5.6 + minimist: 1.2.7 + rxjs: 7.5.7 transitivePeerDependencies: - debug dev: true @@ -13274,11 +14897,25 @@ packages: makeerror: 1.0.12 dev: true + /watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + dev: true + + /wbuf/1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + /webdriver/7.16.11: resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} engines: {node: '>=12.0.0'} dependencies: - '@types/node': 16.11.59 + '@types/node': 16.18.3 '@wdio/config': 7.16.11 '@wdio/logger': 7.16.0 '@wdio/protocols': 7.16.7 @@ -13298,6 +14935,159 @@ packages: engines: {node: '>=12'} dev: true + /webpack-cli/4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi: + resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + '@webpack-cli/migrate': '*' + webpack: 4.x.x || 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + '@webpack-cli/migrate': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 1.2.0_pda42hcaj7d62cr262fr632kue + '@webpack-cli/info': 1.5.0_webpack-cli@4.10.0 + '@webpack-cli/serve': 1.7.0_ud4agclah7rahur6ntojouq57y + colorette: 2.0.19 + commander: 7.2.0 + cross-spawn: 7.0.3 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 2.2.0 + rechoir: 0.7.1 + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + webpack-merge: 5.8.0 + dev: true + + /webpack-dev-middleware/5.3.3_webpack@5.75.0: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.10 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.75.0_webpack-cli@4.10.0 + dev: true + + /webpack-dev-server/4.11.1_pda42hcaj7d62cr262fr632kue: + resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.14 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.0 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.3 + ansi-html-community: 0.0.8 + bonjour-service: 1.0.14 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.14 + ipaddr.js: 2.0.1 + open: 8.4.0 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-middleware: 5.3.3_webpack@5.75.0 + ws: 8.11.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-merge/5.8.0: + resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + wildcard: 2.0.0 + dev: true + + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack/5.75.0_webpack-cli@4.10.0: + resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.1 + acorn-import-assertions: 1.8.0_acorn@8.8.1 + browserslist: 4.21.4 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.10.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_webpack@5.75.0 + watchpack: 2.4.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} @@ -13370,6 +15160,10 @@ packages: isexe: 2.0.0 dev: true + /wildcard/2.0.0: + resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} + dev: true + /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} @@ -13422,8 +15216,8 @@ packages: optional: true dev: true - /ws/8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} + /ws/8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13435,8 +15229,8 @@ packages: optional: true dev: true - /ws/8.8.1: - resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} + /ws/8.5.0: + resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13448,8 +15242,8 @@ packages: optional: true dev: true - /ws/8.9.0: - resolution: {integrity: sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==} + /ws/8.8.1: + resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13510,8 +15304,8 @@ packages: engines: {node: '>= 6'} dev: true - /yaml/2.1.1: - resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} + /yaml/2.1.3: + resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} engines: {node: '>= 14'} dev: true @@ -13589,6 +15383,19 @@ packages: yargs-parser: 21.1.1 dev: true + /yargs/17.6.2: + resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + /yauzl/2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 066db53472..4b8be5cdc9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,4 @@ packages: # all packages in direct subdirs of packages/ - 'packages/*' - # - 'tests/*' + - 'tests/*' diff --git a/scripts/fixPnpmLock.sh b/scripts/fixPnpmLock.sh new file mode 100755 index 0000000000..eab1541291 --- /dev/null +++ b/scripts/fixPnpmLock.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +sed "/mermaid: ''/d" pnpm-lock.yaml > temp.yaml; +mv temp.yaml pnpm-lock.yaml \ No newline at end of file From 88d3fdfb8fd9f1e553bce12952fd46c7f9888915 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 11 Nov 2022 13:29:59 +0530 Subject: [PATCH 0610/1038] fix: `use-inline-specifiers-lockfile-format` to pnpm --- .npmrc | 3 +- pnpm-lock.yaml | 613 +++++++++++++++++++++++++++++-------------------- 2 files changed, 366 insertions(+), 250 deletions(-) diff --git a/.npmrc b/.npmrc index 8051a481ea..0214788b4c 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ auto-install-peers=true -strict-peer-dependencies=false \ No newline at end of file +strict-peer-dependencies=false +use-inline-specifiers-lockfile-format=true \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d94d1712b..de2066b8d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.4 +lockfileVersion: 5.4-inlineSpecifiers overrides: d3: ^7.0.0 @@ -6,267 +6,382 @@ overrides: importers: .: - specifiers: - '@applitools/eyes-cypress': ^3.27.1 - '@commitlint/cli': ^17.1.2 - '@commitlint/config-conventional': ^17.1.0 - '@types/d3': ^7.4.0 - '@types/dompurify': ^2.3.4 - '@types/eslint': ^8.4.6 - '@types/express': ^4.17.14 - '@types/jsdom': ^20.0.0 - '@types/lodash': ^4.14.186 - '@types/mdast': ^3.0.10 - '@types/node': ^18.11.9 - '@types/prettier': ^2.7.1 - '@types/stylis': ^4.0.2 - '@types/uuid': ^8.3.4 - '@typescript-eslint/eslint-plugin': ^5.39.0 - '@typescript-eslint/parser': ^5.39.0 - '@vitest/coverage-c8': ^0.23.4 - '@vitest/ui': ^0.23.4 - concurrently: ^7.4.0 - coveralls: ^3.1.1 - cypress: ^10.0.0 - cypress-image-snapshot: ^4.0.1 - documentation: 13.2.0 - esbuild: ^0.15.10 - eslint: ^8.24.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-cypress: ^2.12.1 - eslint-plugin-html: ^7.1.0 - eslint-plugin-jest: ^27.1.0 - eslint-plugin-jsdoc: ^39.3.6 - eslint-plugin-json: ^3.1.0 - eslint-plugin-markdown: ^3.0.0 - express: ^4.18.1 - globby: ^13.1.2 - husky: ^8.0.1 - identity-obj-proxy: ^3.0.0 - jest: 29.x - jison: ^0.4.18 - jsdom: ^20.0.1 - lint-staged: ^13.0.3 - markdown-it: ^13.0.1 - pnpm: ^7.15.0 - prettier: ^2.7.1 - prettier-plugin-jsdoc: ^0.4.2 - remark: ^14.0.2 - rimraf: ^3.0.2 - start-server-and-test: ^1.14.0 - ts-node: ^10.9.1 - typescript: ^4.8.4 - unist-util-flatmap: ^1.0.0 - vite: ^3.1.4 - vitepress: ^1.0.0-alpha.19 - vitepress-plugin-mermaid: ^2.0.8 - vitepress-plugin-search: ^1.0.4-alpha.11 - vitest: ^0.23.4 devDependencies: - '@applitools/eyes-cypress': 3.27.6 - '@commitlint/cli': 17.2.0 - '@commitlint/config-conventional': 17.2.0 - '@types/d3': 7.4.0 - '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.10 - '@types/express': 4.17.14 - '@types/jsdom': 20.0.1 - '@types/lodash': 4.14.188 - '@types/mdast': 3.0.10 - '@types/node': 18.11.9 - '@types/prettier': 2.7.1 - '@types/stylis': 4.0.2 - '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - '@vitest/coverage-c8': 0.23.4_upgr4zu6lczg6poy6g2njng6vm - '@vitest/ui': 0.23.4 - concurrently: 7.5.0 - coveralls: 3.1.1 - cypress: 10.11.0 - cypress-image-snapshot: 4.0.1_bg25yee4qeg7mpleuvd346a3tq - documentation: 13.2.0 - esbuild: 0.15.13 - eslint: 8.27.0 - eslint-config-prettier: 8.5.0_eslint@8.27.0 - eslint-plugin-cypress: 2.12.1_eslint@8.27.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy - eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 - eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.27.0 - express: 4.18.2 - globby: 13.1.2 - husky: 8.0.2 - identity-obj-proxy: 3.0.0 - jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi - jison: 0.4.18 - jsdom: 20.0.2 - lint-staged: 13.0.3 - markdown-it: 13.0.1 - pnpm: 7.15.0 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 - remark: 14.0.2 - rimraf: 3.0.2 - start-server-and-test: 1.14.0 - ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - typescript: 4.8.4 - unist-util-flatmap: 1.0.0 - vite: 3.2.3_@types+node@18.11.9 - vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi - vitepress-plugin-mermaid: 2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe - vitepress-plugin-search: 1.0.4-alpha.15_pb3anlaclwt5smse4ujf447uy4 - vitest: 0.23.4_upgr4zu6lczg6poy6g2njng6vm + '@applitools/eyes-cypress': + specifier: ^3.27.1 + version: 3.27.6 + '@commitlint/cli': + specifier: ^17.1.2 + version: 17.2.0 + '@commitlint/config-conventional': + specifier: ^17.1.0 + version: 17.2.0 + '@types/d3': + specifier: ^7.4.0 + version: 7.4.0 + '@types/dompurify': + specifier: ^2.3.4 + version: 2.3.4 + '@types/eslint': + specifier: ^8.4.6 + version: 8.4.10 + '@types/express': + specifier: ^4.17.14 + version: 4.17.14 + '@types/jsdom': + specifier: ^20.0.0 + version: 20.0.1 + '@types/lodash': + specifier: ^4.14.186 + version: 4.14.188 + '@types/mdast': + specifier: ^3.0.10 + version: 3.0.10 + '@types/node': + specifier: ^18.11.9 + version: 18.11.9 + '@types/prettier': + specifier: ^2.7.1 + version: 2.7.1 + '@types/stylis': + specifier: ^4.0.2 + version: 4.0.2 + '@types/uuid': + specifier: ^8.3.4 + version: 8.3.4 + '@typescript-eslint/eslint-plugin': + specifier: ^5.39.0 + version: 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': + specifier: ^5.39.0 + version: 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@vitest/coverage-c8': + specifier: ^0.23.4 + version: 0.23.4_upgr4zu6lczg6poy6g2njng6vm + '@vitest/ui': + specifier: ^0.23.4 + version: 0.23.4 + concurrently: + specifier: ^7.4.0 + version: 7.5.0 + coveralls: + specifier: ^3.1.1 + version: 3.1.1 + cypress: + specifier: ^10.0.0 + version: 10.11.0 + cypress-image-snapshot: + specifier: ^4.0.1 + version: 4.0.1_bg25yee4qeg7mpleuvd346a3tq + documentation: + specifier: 13.2.0 + version: 13.2.0 + esbuild: + specifier: ^0.15.10 + version: 0.15.13 + eslint: + specifier: ^8.24.0 + version: 8.27.0 + eslint-config-prettier: + specifier: ^8.5.0 + version: 8.5.0_eslint@8.27.0 + eslint-plugin-cypress: + specifier: ^2.12.1 + version: 2.12.1_eslint@8.27.0 + eslint-plugin-html: + specifier: ^7.1.0 + version: 7.1.0 + eslint-plugin-jest: + specifier: ^27.1.0 + version: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy + eslint-plugin-jsdoc: + specifier: ^39.3.6 + version: 39.6.2_eslint@8.27.0 + eslint-plugin-json: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-markdown: + specifier: ^3.0.0 + version: 3.0.0_eslint@8.27.0 + express: + specifier: ^4.18.1 + version: 4.18.2 + globby: + specifier: ^13.1.2 + version: 13.1.2 + husky: + specifier: ^8.0.1 + version: 8.0.2 + identity-obj-proxy: + specifier: ^3.0.0 + version: 3.0.0 + jest: + specifier: 29.x + version: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jison: + specifier: ^0.4.18 + version: 0.4.18 + jsdom: + specifier: ^20.0.1 + version: 20.0.2 + lint-staged: + specifier: ^13.0.3 + version: 13.0.3 + markdown-it: + specifier: ^13.0.1 + version: 13.0.1 + pnpm: + specifier: ^7.15.0 + version: 7.15.0 + prettier: + specifier: ^2.7.1 + version: 2.7.1 + prettier-plugin-jsdoc: + specifier: ^0.4.2 + version: 0.4.2_prettier@2.7.1 + remark: + specifier: ^14.0.2 + version: 14.0.2 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + start-server-and-test: + specifier: ^1.14.0 + version: 1.14.0 + ts-node: + specifier: ^10.9.1 + version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 + typescript: + specifier: ^4.8.4 + version: 4.8.4 + unist-util-flatmap: + specifier: ^1.0.0 + version: 1.0.0 + vite: + specifier: ^3.1.4 + version: 3.2.3_@types+node@18.11.9 + vitepress: + specifier: ^1.0.0-alpha.19 + version: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi + vitepress-plugin-mermaid: + specifier: ^2.0.8 + version: 2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe + vitepress-plugin-search: + specifier: ^1.0.4-alpha.11 + version: 1.0.4-alpha.15_pb3anlaclwt5smse4ujf447uy4 + vitest: + specifier: ^0.23.4 + version: 0.23.4_upgr4zu6lczg6poy6g2njng6vm packages/mermaid: - specifiers: - '@applitools/eyes-cypress': ^3.25.7 - '@braintree/sanitize-url': ^6.0.0 - '@commitlint/cli': ^17.1.2 - '@commitlint/config-conventional': ^17.0.0 - '@types/d3': ^7.4.0 - '@types/dompurify': ^2.3.4 - '@types/eslint': ^8.4.6 - '@types/express': ^4.17.13 - '@types/jsdom': ^20.0.0 - '@types/lodash': ^4.14.185 - '@types/prettier': ^2.7.0 - '@types/stylis': ^4.0.2 - '@types/uuid': ^8.3.4 - '@typescript-eslint/eslint-plugin': ^5.37.0 - '@typescript-eslint/parser': ^5.37.0 - concurrently: ^7.4.0 - coveralls: ^3.1.1 - d3: ^7.0.0 - dagre: ^0.8.5 - dagre-d3: ^0.6.4 - documentation: 13.2.0 - dompurify: 2.4.0 - eslint: ^8.23.1 - eslint-config-prettier: ^8.5.0 - eslint-plugin-cypress: ^2.12.1 - eslint-plugin-html: ^7.1.0 - eslint-plugin-jest: ^27.0.4 - eslint-plugin-jsdoc: ^39.3.6 - eslint-plugin-json: ^3.1.0 - eslint-plugin-markdown: ^3.0.0 - fast-clone: ^1.5.13 - graphlib: ^2.1.8 - identity-obj-proxy: ^3.0.0 - jison: ^0.4.18 - js-base64: 3.7.2 - jsdom: ^20.0.0 - khroma: ^2.0.0 - lodash: ^4.17.21 - moment-mini: ^2.24.0 - non-layered-tidy-tree-layout: ^2.0.2 - remark: ^14.0.2 - rimraf: ^3.0.2 - start-server-and-test: ^1.12.6 - stylis: ^4.1.2 - ts-node: ^10.9.1 - typescript: ^4.8.3 - unist-util-flatmap: ^1.0.0 - uuid: ^9.0.0 - dependencies: - '@braintree/sanitize-url': 6.0.0 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.0 - fast-clone: 1.5.13 - graphlib: 2.1.8 - khroma: 2.0.0 - lodash: 4.17.21 - moment-mini: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.1.2 - uuid: 9.0.0 + dependencies: + '@braintree/sanitize-url': + specifier: ^6.0.0 + version: 6.0.0 + d3: + specifier: ^7.0.0 + version: 7.6.1 + dagre: + specifier: ^0.8.5 + version: 0.8.5 + dagre-d3: + specifier: ^0.6.4 + version: 0.6.4 + dompurify: + specifier: 2.4.0 + version: 2.4.0 + fast-clone: + specifier: ^1.5.13 + version: 1.5.13 + graphlib: + specifier: ^2.1.8 + version: 2.1.8 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + moment-mini: + specifier: ^2.24.0 + version: 2.29.4 + non-layered-tidy-tree-layout: + specifier: ^2.0.2 + version: 2.0.2 + stylis: + specifier: ^4.1.2 + version: 4.1.2 + uuid: + specifier: ^9.0.0 + version: 9.0.0 devDependencies: - '@applitools/eyes-cypress': 3.27.1 - '@commitlint/cli': 17.1.2 - '@commitlint/config-conventional': 17.1.0 - '@types/d3': 7.4.0 - '@types/dompurify': 2.3.4 - '@types/eslint': 8.4.6 - '@types/express': 4.17.14 - '@types/jsdom': 20.0.0 - '@types/lodash': 4.14.185 - '@types/prettier': 2.7.0 - '@types/stylis': 4.0.2 - '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha - concurrently: 7.4.0 - coveralls: 3.1.1 - documentation: 13.2.0 - eslint: 8.23.1 - eslint-config-prettier: 8.5.0_eslint@8.23.1 - eslint-plugin-cypress: 2.12.1_eslint@8.23.1 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.0.4_w7j56xfuh6bbmrubefdaspmpla - eslint-plugin-jsdoc: 39.3.6_eslint@8.23.1 - eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.23.1 - identity-obj-proxy: 3.0.0 - jison: 0.4.18 - js-base64: 3.7.2 - jsdom: 20.0.0 - remark: 14.0.2 - rimraf: 3.0.2 - start-server-and-test: 1.14.0 - ts-node: 10.9.1_h6wsvvmh4l7tb54yk3ecr4mgtm - typescript: 4.8.3 - unist-util-flatmap: 1.0.0 + '@applitools/eyes-cypress': + specifier: ^3.25.7 + version: 3.27.1 + '@commitlint/cli': + specifier: ^17.1.2 + version: 17.1.2 + '@commitlint/config-conventional': + specifier: ^17.0.0 + version: 17.1.0 + '@types/d3': + specifier: ^7.4.0 + version: 7.4.0 + '@types/dompurify': + specifier: ^2.3.4 + version: 2.3.4 + '@types/eslint': + specifier: ^8.4.6 + version: 8.4.6 + '@types/express': + specifier: ^4.17.13 + version: 4.17.14 + '@types/jsdom': + specifier: ^20.0.0 + version: 20.0.0 + '@types/lodash': + specifier: ^4.14.185 + version: 4.14.185 + '@types/prettier': + specifier: ^2.7.0 + version: 2.7.0 + '@types/stylis': + specifier: ^4.0.2 + version: 4.0.2 + '@types/uuid': + specifier: ^8.3.4 + version: 8.3.4 + '@typescript-eslint/eslint-plugin': + specifier: ^5.37.0 + version: 5.38.0_wsb62dxj2oqwgas4kadjymcmry + '@typescript-eslint/parser': + specifier: ^5.37.0 + version: 5.38.0_irgkl5vooow2ydyo6aokmferha + concurrently: + specifier: ^7.4.0 + version: 7.4.0 + coveralls: + specifier: ^3.1.1 + version: 3.1.1 + documentation: + specifier: 13.2.0 + version: 13.2.0 + eslint: + specifier: ^8.23.1 + version: 8.23.1 + eslint-config-prettier: + specifier: ^8.5.0 + version: 8.5.0_eslint@8.23.1 + eslint-plugin-cypress: + specifier: ^2.12.1 + version: 2.12.1_eslint@8.23.1 + eslint-plugin-html: + specifier: ^7.1.0 + version: 7.1.0 + eslint-plugin-jest: + specifier: ^27.0.4 + version: 27.0.4_w7j56xfuh6bbmrubefdaspmpla + eslint-plugin-jsdoc: + specifier: ^39.3.6 + version: 39.3.6_eslint@8.23.1 + eslint-plugin-json: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-markdown: + specifier: ^3.0.0 + version: 3.0.0_eslint@8.23.1 + identity-obj-proxy: + specifier: ^3.0.0 + version: 3.0.0 + jison: + specifier: ^0.4.18 + version: 0.4.18 + js-base64: + specifier: 3.7.2 + version: 3.7.2 + jsdom: + specifier: ^20.0.0 + version: 20.0.0 + remark: + specifier: ^14.0.2 + version: 14.0.2 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + start-server-and-test: + specifier: ^1.12.6 + version: 1.14.0 + ts-node: + specifier: ^10.9.1 + version: 10.9.1_h6wsvvmh4l7tb54yk3ecr4mgtm + typescript: + specifier: ^4.8.3 + version: 4.8.3 + unist-util-flatmap: + specifier: ^1.0.0 + version: 1.0.0 packages/mermaid-example-diagram: - specifiers: - concurrently: ^7.4.0 - rimraf: ^3.0.2 devDependencies: - concurrently: 7.4.0 - rimraf: 3.0.2 + concurrently: + specifier: ^7.4.0 + version: 7.4.0 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 packages/mermaid-mindmap: - specifiers: - '@braintree/sanitize-url': ^6.0.0 - concurrently: ^7.4.0 - cytoscape: ^3.23.0 - cytoscape-cose-bilkent: ^4.1.0 - cytoscape-fcose: ^2.1.0 - d3: ^7.0.0 - khroma: ^2.0.0 - mermaid: workspace:* - non-layered-tidy-tree-layout: ^2.0.2 - rimraf: ^3.0.2 - dependencies: - '@braintree/sanitize-url': 6.0.0 - cytoscape: 3.23.0 - cytoscape-cose-bilkent: 4.1.0_cytoscape@3.23.0 - cytoscape-fcose: 2.1.0_cytoscape@3.23.0 - d3: 7.6.1 - khroma: 2.0.0 - non-layered-tidy-tree-layout: 2.0.2 + dependencies: + '@braintree/sanitize-url': + specifier: ^6.0.0 + version: 6.0.0 + cytoscape: + specifier: ^3.23.0 + version: 3.23.0 + cytoscape-cose-bilkent: + specifier: ^4.1.0 + version: 4.1.0_cytoscape@3.23.0 + cytoscape-fcose: + specifier: ^2.1.0 + version: 2.1.0_cytoscape@3.23.0 + d3: + specifier: ^7.0.0 + version: 7.6.1 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + non-layered-tidy-tree-layout: + specifier: ^2.0.2 + version: 2.0.2 devDependencies: - concurrently: 7.4.0 - mermaid: link:../mermaid - rimraf: 3.0.2 + concurrently: + specifier: ^7.4.0 + version: 7.4.0 + mermaid: + specifier: workspace:* + version: link:../mermaid + rimraf: + specifier: ^3.0.2 + version: 3.0.2 tests/webpack: - specifiers: - '@mermaid-js/mermaid-mindmap': workspace:* - mermaid: workspace:* - webpack: ^5.74.0 - webpack-cli: ^4.10.0 - webpack-dev-server: ^4.11.1 - dependencies: - '@mermaid-js/mermaid-mindmap': link:../../packages/mermaid-mindmap - mermaid: link:../../packages/mermaid + dependencies: + '@mermaid-js/mermaid-mindmap': + specifier: workspace:* + version: link:../../packages/mermaid-mindmap + mermaid: + specifier: workspace:* + version: link:../../packages/mermaid devDependencies: - webpack: 5.75.0_webpack-cli@4.10.0 - webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi - webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + webpack: + specifier: ^5.74.0 + version: 5.75.0_webpack-cli@4.10.0 + webpack-cli: + specifier: ^4.10.0 + version: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: + specifier: ^4.11.1 + version: 4.11.1_pda42hcaj7d62cr262fr632kue packages: From 20613beb8af6e80778a92c9f9002b99f74150f59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 02:44:42 +0000 Subject: [PATCH 0611/1038] fix(deps): update all non-major dependencies --- package.json | 20 +- packages/mermaid/package.json | 12 +- pnpm-lock.yaml | 418 +++++++++++++++------------------- 3 files changed, 202 insertions(+), 248 deletions(-) diff --git a/package.json b/package.json index 7dd7ee736f..5b25579d0a 100644 --- a/package.json +++ b/package.json @@ -62,13 +62,13 @@ ] }, "dependencies": { - "@braintree/sanitize-url": "6.0.1", + "@braintree/sanitize-url": "6.0.2", "@types/node": "18.11.9", "@types/uuid": "8.3.4", "d3": "7.6.1", "dagre": "0.8.5", "dagre-d3": "0.6.4", - "dompurify": "2.4.0", + "dompurify": "2.4.1", "fast-clone": "1.5.13", "graphlib": "2.1.8", "khroma": "2.0.0", @@ -83,18 +83,18 @@ "@applitools/eyes-cypress": "3.27.6", "@commitlint/cli": "17.2.0", "@commitlint/config-conventional": "17.2.0", - "@cspell/eslint-plugin": "6.14.0", + "@cspell/eslint-plugin": "6.14.2", "@types/d3": "7.4.0", "@types/dompurify": "2.3.4", "@types/eslint": "8.4.10", "@types/express": "4.17.14", - "@types/jsdom": "20.0.0", + "@types/jsdom": "20.0.1", "@types/lodash": "4.14.188", "@types/mdast": "3.0.10", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@typescript-eslint/eslint-plugin": "5.42.0", - "@typescript-eslint/parser": "5.42.0", + "@typescript-eslint/eslint-plugin": "5.42.1", + "@typescript-eslint/parser": "5.42.1", "@vitest/coverage-c8": "0.24.5", "@vitest/ui": "0.24.5", "concurrently": "7.5.0", @@ -106,7 +106,7 @@ "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", - "eslint-plugin-jest": "27.1.4", + "eslint-plugin-jest": "27.1.5", "eslint-plugin-jsdoc": "39.6.2", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", @@ -114,7 +114,7 @@ "eslint-plugin-tsdoc": "0.2.17", "express": "4.18.2", "globby": "13.1.2", - "husky": "8.0.1", + "husky": "8.0.2", "identity-obj-proxy": "3.0.0", "jest": "29.2.2", "jison": "0.4.18", @@ -131,8 +131,8 @@ "ts-node": "10.9.1", "typescript": "4.8.4", "unist-util-flatmap": "1.0.0", - "vite": "3.2.2", - "vitepress": "1.0.0-alpha.27", + "vite": "3.2.3", + "vitepress": "1.0.0-alpha.28", "vitepress-plugin-mermaid": "2.0.8", "vitepress-plugin-search": "1.0.4-alpha.15", "vitest": "0.24.5" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 24148285c2..6406257279 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -69,7 +69,7 @@ "d3": "^7.0.0", "dagre": "^0.8.5", "dagre-d3": "^0.6.4", - "dompurify": "2.4.0", + "dompurify": "2.4.1", "fast-clone": "^1.5.13", "graphlib": "^2.1.8", "khroma": "^2.0.0", @@ -86,13 +86,13 @@ "@types/dompurify": "2.3.4", "@types/eslint": "8.4.10", "@types/express": "4.17.14", - "@types/jsdom": "20.0.0", + "@types/jsdom": "20.0.1", "@types/lodash": "4.14.188", "@types/micromatch": "4.0.2", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@typescript-eslint/eslint-plugin": "5.42.0", - "@typescript-eslint/parser": "5.42.0", + "@typescript-eslint/eslint-plugin": "5.42.1", + "@typescript-eslint/parser": "5.42.1", "chokidar": "3.5.3", "concurrently": "7.5.0", "coveralls": "3.1.1", @@ -104,13 +104,13 @@ "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-html": "7.1.0", - "eslint-plugin-jest": "27.1.4", + "eslint-plugin-jest": "27.1.5", "eslint-plugin-jsdoc": "39.6.2", "eslint-plugin-json": "3.1.0", "eslint-plugin-markdown": "3.0.0", "express": "4.18.2", "globby": "13.1.2", - "husky": "8.0.1", + "husky": "8.0.2", "identity-obj-proxy": "3.0.0", "jison": "0.4.18", "js-base64": "3.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aec6638eda..59d1bfb6be 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,23 +8,23 @@ importers: .: specifiers: '@applitools/eyes-cypress': 3.27.6 - '@braintree/sanitize-url': 6.0.1 + '@braintree/sanitize-url': 6.0.2 '@commitlint/cli': 17.2.0 '@commitlint/config-conventional': 17.2.0 - '@cspell/eslint-plugin': 6.14.0 + '@cspell/eslint-plugin': 6.14.2 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 '@types/eslint': 8.4.10 '@types/express': 4.17.14 - '@types/jsdom': 20.0.0 + '@types/jsdom': 20.0.1 '@types/lodash': 4.14.188 '@types/mdast': 3.0.10 '@types/node': 18.11.9 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.42.0 - '@typescript-eslint/parser': 5.42.0 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@typescript-eslint/parser': 5.42.1 '@vitest/coverage-c8': 0.24.5 '@vitest/ui': 0.24.5 concurrently: 7.5.0 @@ -34,13 +34,13 @@ importers: d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 - dompurify: 2.4.0 + dompurify: 2.4.1 esbuild: 0.15.13 eslint: 8.27.0 eslint-config-prettier: 8.5.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.4 + eslint-plugin-jest: 27.1.5 eslint-plugin-jsdoc: 39.6.2 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 @@ -50,7 +50,7 @@ importers: fast-clone: 1.5.13 globby: 13.1.2 graphlib: 2.1.8 - husky: 8.0.1 + husky: 8.0.2 identity-obj-proxy: 3.0.0 jest: 29.2.2 jison: 0.4.18 @@ -74,19 +74,19 @@ importers: typescript: 4.8.4 unist-util-flatmap: 1.0.0 uuid: 9.0.0 - vite: 3.2.2 - vitepress: 1.0.0-alpha.27 + vite: 3.2.3 + vitepress: 1.0.0-alpha.28 vitepress-plugin-mermaid: 2.0.8 vitepress-plugin-search: 1.0.4-alpha.15 vitest: 0.24.5 dependencies: - '@braintree/sanitize-url': 6.0.1 + '@braintree/sanitize-url': 6.0.2 '@types/node': 18.11.9 '@types/uuid': 8.3.4 d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 - dompurify: 2.4.0 + dompurify: 2.4.1 fast-clone: 1.5.13 graphlib: 2.1.8 khroma: 2.0.0 @@ -100,18 +100,18 @@ importers: '@applitools/eyes-cypress': 3.27.6 '@commitlint/cli': 17.2.0 '@commitlint/config-conventional': 17.2.0 - '@cspell/eslint-plugin': 6.14.0 + '@cspell/eslint-plugin': 6.14.2 '@types/d3': 7.4.0 '@types/dompurify': 2.3.4 '@types/eslint': 8.4.10 '@types/express': 4.17.14 - '@types/jsdom': 20.0.0 + '@types/jsdom': 20.0.1 '@types/lodash': 4.14.188 '@types/mdast': 3.0.10 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.42.0_ofgjrzjuekeo7s3hdyz2yuzw34 - '@typescript-eslint/parser': 5.42.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy '@vitest/coverage-c8': 0.24.5_7l34rqjzi6dnvspyhao4gurgki '@vitest/ui': 0.24.5 concurrently: 7.5.0 @@ -123,7 +123,7 @@ importers: eslint-config-prettier: 8.5.0_eslint@8.27.0 eslint-plugin-cypress: 2.12.1_eslint@8.27.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.4_mo2lami4yy66jkzk2pp2s2sft4 + eslint-plugin-jest: 27.1.5_iokx7ekx3swgvwius64h34smqy eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.27.0 @@ -131,7 +131,7 @@ importers: eslint-plugin-tsdoc: 0.2.17 express: 4.18.2 globby: 13.1.2 - husky: 8.0.1 + husky: 8.0.2 identity-obj-proxy: 3.0.0 jest: 29.2.2_odkjkoia5xunhxkdrka32ib6vi jison: 0.4.18 @@ -148,10 +148,10 @@ importers: ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 typescript: 4.8.4 unist-util-flatmap: 1.0.0 - vite: 3.2.2 - vitepress: 1.0.0-alpha.27_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-mermaid: 2.0.8_4ciratiyyfxwawp34rwsk4kamu - vitepress-plugin-search: 1.0.4-alpha.15_jqf4rwmsymnrb4kzh6io7s4tmi + vite: 3.2.3_@types+node@18.11.9 + vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi + vitepress-plugin-mermaid: 2.0.8_rrdem5zfx6mwymtnpoibog245q + vitepress-plugin-search: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 vitest: 0.24.5_7l34rqjzi6dnvspyhao4gurgki packages/mermaid: @@ -164,13 +164,13 @@ importers: '@types/dompurify': 2.3.4 '@types/eslint': 8.4.10 '@types/express': 4.17.14 - '@types/jsdom': 20.0.0 + '@types/jsdom': 20.0.1 '@types/lodash': 4.14.188 '@types/micromatch': 4.0.2 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.42.0 - '@typescript-eslint/parser': 5.42.0 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@typescript-eslint/parser': 5.42.1 chokidar: 3.5.3 concurrently: 7.5.0 coveralls: 3.1.1 @@ -180,13 +180,13 @@ importers: dagre: ^0.8.5 dagre-d3: ^0.6.4 documentation: 13.2.5 - dompurify: 2.4.0 + dompurify: 2.4.1 esbuild: 0.15.13 eslint: 8.27.0 eslint-config-prettier: 8.5.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.4 + eslint-plugin-jest: 27.1.5 eslint-plugin-jsdoc: 39.6.2 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0 @@ -194,7 +194,7 @@ importers: fast-clone: ^1.5.13 globby: 13.1.2 graphlib: ^2.1.8 - husky: 8.0.1 + husky: 8.0.2 identity-obj-proxy: 3.0.0 jison: 0.4.18 js-base64: 3.7.2 @@ -224,7 +224,7 @@ importers: d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 - dompurify: 2.4.0 + dompurify: 2.4.1 fast-clone: 1.5.13 graphlib: 2.1.8 khroma: 2.0.0 @@ -240,13 +240,13 @@ importers: '@types/dompurify': 2.3.4 '@types/eslint': 8.4.10 '@types/express': 4.17.14 - '@types/jsdom': 20.0.0 + '@types/jsdom': 20.0.1 '@types/lodash': 4.14.188 '@types/micromatch': 4.0.2 '@types/prettier': 2.7.1 '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.42.0_ofgjrzjuekeo7s3hdyz2yuzw34 - '@typescript-eslint/parser': 5.42.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy chokidar: 3.5.3 concurrently: 7.5.0 coveralls: 3.1.1 @@ -258,13 +258,13 @@ importers: eslint-config-prettier: 8.5.0_eslint@8.27.0 eslint-plugin-cypress: 2.12.1_eslint@8.27.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.4_nc2muyejbxixdtdkoal5nbvotq + eslint-plugin-jest: 27.1.5_jrpxipm6pabmwsz6c3beohyxm4 eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.27.0 express: 4.18.2 globby: 13.1.2 - husky: 8.0.1 + husky: 8.0.2 identity-obj-proxy: 3.0.0 jison: 0.4.18 js-base64: 3.7.2 @@ -1121,8 +1121,8 @@ packages: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} dev: false - /@braintree/sanitize-url/6.0.1: - resolution: {integrity: sha512-zr9Qs9KFQiEvMWdZesjcmRJlUck5NR+eKGS1uyKk+oYTWwlYrsoPEi6VmG6/TzBD1hKCGEimrhTgGS6hvn/xIQ==} + /@braintree/sanitize-url/6.0.2: + resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==} /@cnakazawa/watch/1.0.4: resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} @@ -1302,32 +1302,32 @@ packages: chalk: 4.1.2 dev: true - /@cspell/cspell-bundled-dicts/6.14.0: - resolution: {integrity: sha512-GItmbgKcqMUiNKy2Z3xPGEyS8Tu1DXrJCyj9uQD4J+MPQeirZfLb1wSNsZsVTTmRQm8eTZ/m73X95l8Ekfqm2A==} + /@cspell/cspell-bundled-dicts/6.14.2: + resolution: {integrity: sha512-gh6h/1vy332s3IR7x1v53Cp/WGPpbKKRdte3qUG0KZol9A52agfPCju8TEHxsyk8rXAbVtqYwue8Y68Nz4ZbVg==} engines: {node: '>=14'} dependencies: - '@cspell/dict-ada': 3.0.0 + '@cspell/dict-ada': 4.0.0 '@cspell/dict-aws': 3.0.0 - '@cspell/dict-bash': 3.0.0 + '@cspell/dict-bash': 4.1.0 '@cspell/dict-companies': 3.0.3 '@cspell/dict-cpp': 4.0.0 '@cspell/dict-cryptocurrencies': 3.0.1 '@cspell/dict-csharp': 4.0.1 - '@cspell/dict-css': 3.0.0 + '@cspell/dict-css': 4.0.0 '@cspell/dict-dart': 2.0.0 - '@cspell/dict-django': 3.0.0 - '@cspell/dict-docker': 1.1.1 - '@cspell/dict-dotnet': 3.0.1 - '@cspell/dict-elixir': 3.0.0 + '@cspell/dict-django': 4.0.0 + '@cspell/dict-docker': 1.1.3 + '@cspell/dict-dotnet': 4.0.0 + '@cspell/dict-elixir': 4.0.0 '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.0.0 + '@cspell/dict-en_us': 4.1.0 '@cspell/dict-filetypes': 3.0.0 '@cspell/dict-fonts': 3.0.0 '@cspell/dict-fullstack': 3.0.0 '@cspell/dict-git': 2.0.0 - '@cspell/dict-golang': 4.0.0 - '@cspell/dict-haskell': 3.0.0 - '@cspell/dict-html': 4.0.0 + '@cspell/dict-golang': 5.0.0 + '@cspell/dict-haskell': 4.0.0 + '@cspell/dict-html': 4.0.1 '@cspell/dict-html-symbol-entities': 4.0.0 '@cspell/dict-java': 5.0.2 '@cspell/dict-latex': 3.0.0 @@ -1350,31 +1350,31 @@ packages: '@cspell/dict-vue': 3.0.0 dev: true - /@cspell/cspell-pipe/6.14.0: - resolution: {integrity: sha512-8dZZst6jZ7ELrNV1JqHNb7EnlXZTjgRYl6C+3PrC30/XUkMubBUj9nncLQH+M1ZUVpSN1ErbnTPOpbCllZ8tvQ==} + /@cspell/cspell-pipe/6.14.2: + resolution: {integrity: sha512-9H7Z/jy2tGpMW9T/JOk8T3bqvQoHJIz1wddktA5Lq8fnMqlDhM9le2uykhVlLpemLhWpDS2fNzLJ3sHiaPgHBA==} engines: {node: '>=14'} dev: true - /@cspell/cspell-service-bus/6.14.0: - resolution: {integrity: sha512-p8sgtPfWm0UozKr4wPK/JK/IRqQZVJmA5O4YHaFYx3CHK4F7Lki0v6octds8ks9b3bP7KyVX+zix61y1LcCUQw==} + /@cspell/cspell-service-bus/6.14.2: + resolution: {integrity: sha512-IOK4MqwDNS2y29eZjdpHrCQ0ouTWZCS2e3EOmlvY+yUpT7e1AX8pVOaar4jLnXg03evAjrFrrmfmhFI6poO6Hg==} engines: {node: '>=14'} dev: true - /@cspell/cspell-types/6.14.0: - resolution: {integrity: sha512-QHl/M02JeqvIvBJsH4U6OMV6B210QaHYfau8RapbZi1xqVdWuO9UQ44Z180AG41Y8a7T41pi5QWCQVB2s1WA+w==} + /@cspell/cspell-types/6.14.2: + resolution: {integrity: sha512-/EZYVglm6+2GlnkFTzuLuQFr7vrttkhG+ZsNO9EDcFYB5N7O2ndNSkTQFxGi8FS8R3RS5CHyS5X6hANnolzvfQ==} engines: {node: '>=14'} dev: true - /@cspell/dict-ada/3.0.0: - resolution: {integrity: sha512-jpUVex0JTMGIQC/+T/GglLRpimmvH8HUcpf3gC+bS1ZcVGzyWQo5clevxYbz2MBVoLxSMZiqPoqB5dt/vAOTwQ==} + /@cspell/dict-ada/4.0.0: + resolution: {integrity: sha512-M0n4ZYmpLOXbDD07Qb/Ekk0K5pX2C+mCuJ2ZxPgbTq9HGlrN43PmqrGJHWcgtVHE3fd1D4VxS85QcQP6r1Y+KQ==} dev: true /@cspell/dict-aws/3.0.0: resolution: {integrity: sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==} dev: true - /@cspell/dict-bash/3.0.0: - resolution: {integrity: sha512-bQl6mk1SrcmrDL+F4XTeZtW2JnqgNJx5pNX6PIfWe5QA+J2blLlYbwDQOvjovpZEirwy8iqQmu//6bKjaDu1ow==} + /@cspell/dict-bash/4.1.0: + resolution: {integrity: sha512-8pFL03ZKejynfbsa2UZ3iZ7BrT1TAGTD8ZlK822ioAb7aoDvQhYao2Bjz5cXU0uk7CyrlgsSnYX94sLfqDfTxQ==} dev: true /@cspell/dict-companies/3.0.3: @@ -1393,36 +1393,36 @@ packages: resolution: {integrity: sha512-BkfT6S790FcyWLTWYBwkj9dKxuNz4pHFDrj9GFrmqXd2HWzfSa944S0NJhal42TnW30JJljQY5P1ZYau+s2Pbg==} dev: true - /@cspell/dict-css/3.0.0: - resolution: {integrity: sha512-GNg4EMhP+8yVr3AuebBMUxsb/otCz2DS8rTp2M5Fo1179uwpjMfPqLezFxH+YaiA3vgBiwajdrl/0ZGn44qBRw==} + /@cspell/dict-css/4.0.0: + resolution: {integrity: sha512-ieSeG9KAJGIr5eK0JRWqD5KXstPPUw6JUTmGWc7P/qiqj/sjmhWqWKEt7HhoSNcb8uQxAkAoxhrNpfbKzqnKAw==} dev: true /@cspell/dict-dart/2.0.0: resolution: {integrity: sha512-p7vHszsu2uJt+F04gvNy1e5okypFfVEYHBWgpOV/Jrvs0F5A+gUzFTG2Ix9b1jkCigAULYKQkIGue+qlhSoK5Q==} dev: true - /@cspell/dict-django/3.0.0: - resolution: {integrity: sha512-Ag6ecPokb12RcAwD9eOvKl5G2l4h5aOQl36mipqINLc+NPtIGVN3qa2FBg3hHeS6OvIDwCZ/LQ/zz5xbBhakhg==} + /@cspell/dict-django/4.0.0: + resolution: {integrity: sha512-k0npSzQrPQSqjR2XtumV14sv9waTRMUzPx0UfOuJZcnCCZY8ofPeqFYoku+O+9Kc9etFOziOxnScshKVDzYWOQ==} dev: true - /@cspell/dict-docker/1.1.1: - resolution: {integrity: sha512-UEYoeRDm7oUN9yz1mYSozz6D4+2N14S/cd2Re9et6Xzq6yi62s4ky3knF92Of2weelADjnN41UA22VBhRAf7Sw==} + /@cspell/dict-docker/1.1.3: + resolution: {integrity: sha512-Iz7EQGnLBgnnmzCC8iLQ7JssCCQlCjZLiCs0qhooETWLifob3nzsI9AVBh3gkYLhISLIIjBpfa4LTknskT7LzA==} dev: true - /@cspell/dict-dotnet/3.0.1: - resolution: {integrity: sha512-Flruqsmhwrm1K2+HKsA4I6aywmsM5QnCddFb8FIQLgluyuTss6Hs1Xj380+k3PeU/wAg4xNTD7f6b4xxZLbfjw==} + /@cspell/dict-dotnet/4.0.0: + resolution: {integrity: sha512-biZiTWyDqwVV2m+c17lLIliPDXPjOR1VwwmyMxvb3nFS84aP9x52SAVCf0w7Io1CIpUiY7XnG6/xeI7esYU78w==} dev: true - /@cspell/dict-elixir/3.0.0: - resolution: {integrity: sha512-DJxGMNfcT1ieYupyzq7GNSIJEkdJAnpEoL58R54bf2mxRfC02Uu2sIcKWJO18ozOn3jgOY408TxOCEc8bz39jw==} + /@cspell/dict-elixir/4.0.0: + resolution: {integrity: sha512-0TqqdQjg/zu3wAjk2FQkZ87pPIS9tA9kl6he5NJB729ysrWhND/7aSPC48QrP46VZ+oFrvFZK8DC8ZlYs16cjQ==} dev: true /@cspell/dict-en-gb/1.1.33: resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} dev: true - /@cspell/dict-en_us/4.0.0: - resolution: {integrity: sha512-ZqWPm0cdC/3KdhWWHojti7/gfH5/JIzyGqI2zlmibz/jpR5Z0IzsW71xQCuU3KpNaYU1Frfivk0m34yicm1JFw==} + /@cspell/dict-en_us/4.1.0: + resolution: {integrity: sha512-EnfxP/5U3kDhmTWcHV7Xs2Fxa9KAE5fbHm+4u8LGBOUZvSkZC5+ayjQ50CfEyTGuaI/946ITQYPRNxUZ7oqOiQ==} dev: true /@cspell/dict-filetypes/3.0.0: @@ -1441,20 +1441,20 @@ packages: resolution: {integrity: sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==} dev: true - /@cspell/dict-golang/4.0.0: - resolution: {integrity: sha512-XxKINt3dmpixrmAcxVdP545eh0S6vmaGbddZyzIWzQlwoIE0b98l3AvtcdhCyYxbvcKAcZ+pkf+t2zGTnMvQug==} + /@cspell/dict-golang/5.0.0: + resolution: {integrity: sha512-Cbx4mVHsGbr5D+wlT0yU3n/0c5iLvciU48rSOQR7SCAzu5mTXyM1mqRu6nqnRiMv6G6mO50EL2LCTq6RZrlIOg==} dev: true - /@cspell/dict-haskell/3.0.0: - resolution: {integrity: sha512-vVreZvGp9M8UcF/3fJAl/99M3NkcH0ik19xnFTsp4RWhy7+Ar/yCXo8251sSBtwL4TdR+0BHXdXKb2PYZ2UFdQ==} + /@cspell/dict-haskell/4.0.0: + resolution: {integrity: sha512-U/DPpDoitGeUvduM9teDkDc1zs4Plgh0pNONDP3YbsEICErSlp1NfatD0i35Z6cR0C7I8uEe4gG2phG00zrSqw==} dev: true /@cspell/dict-html-symbol-entities/4.0.0: resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} dev: true - /@cspell/dict-html/4.0.0: - resolution: {integrity: sha512-UQRolrzTTMS3Ja1qkrdERnqG04qqwqp4vbMV+BLKvR0oiibfH56Dfnx/qz/C5KgFLc48GLGXLALjgCiHtPjPiA==} + /@cspell/dict-html/4.0.1: + resolution: {integrity: sha512-q5fCzkoOz+8BW79qLrnANEDnG+Jb2WS2fXERxg9xwgKBXwXUxH8ttGVNhfkLpNWe/UMm00U1IZMnVGyYLNTO5w==} dev: true /@cspell/dict-java/5.0.2: @@ -1533,15 +1533,20 @@ packages: resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} dev: true - /@cspell/eslint-plugin/6.14.0: - resolution: {integrity: sha512-Iv2Nh+/5tIEAzHCv+vwX/Eq1vkpizbGN89h5xLj3441SR2jt1DiAYDzVHfEYH0yZoMpn89ju12N+YEjAVUVSzw==} + /@cspell/eslint-plugin/6.14.2: + resolution: {integrity: sha512-GnwM/DOenB6VIt4lMpmw4jI1Sc83eR9/lsxz/yTQ8LZFYVxK0yWi+LbSLCLvKhLJ9RNm7jzyHCanIFNtx+aEyw==} engines: {node: '>=14'} dependencies: - cspell-lib: 6.14.0 + cspell-lib: 6.14.2 transitivePeerDependencies: - encoding dev: true + /@cspell/strong-weak-map/6.14.2: + resolution: {integrity: sha512-OS/t4e5vfUyAiOcyuI1I9d4/EWCx7pA3L8uHNOQQHgjVP41tffMaKTirqRiNhkruIhmxa5Tk5fbQLRMEFapalg==} + engines: {node: '>=14.6'} + dev: true + /@cspotcode/source-map-support/0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -2602,8 +2607,8 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jsdom/20.0.0: - resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} + /@types/jsdom/20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: '@types/node': 18.11.9 '@types/tough-cookie': 4.0.2 @@ -2786,8 +2791,8 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.42.0_ofgjrzjuekeo7s3hdyz2yuzw34: - resolution: {integrity: sha512-5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ==} + /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq: + resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2797,10 +2802,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.42.0_rmayb2veg2btbq6mbmnyivgasy - '@typescript-eslint/scope-manager': 5.42.0 - '@typescript-eslint/type-utils': 5.42.0_rmayb2veg2btbq6mbmnyivgasy - '@typescript-eslint/utils': 5.42.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 eslint: 8.27.0 ignore: 5.2.0 @@ -2813,8 +2818,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.42.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3JA==} + /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2823,9 +2828,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.42.0 - '@typescript-eslint/types': 5.42.0 - '@typescript-eslint/typescript-estree': 5.42.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 debug: 4.3.4 eslint: 8.27.0 typescript: 4.8.4 @@ -2833,24 +2838,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.41.0: - resolution: {integrity: sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==} + /@typescript-eslint/scope-manager/5.42.1: + resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.41.0 - '@typescript-eslint/visitor-keys': 5.41.0 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 dev: true - /@typescript-eslint/scope-manager/5.42.0: - resolution: {integrity: sha512-l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.42.0 - '@typescript-eslint/visitor-keys': 5.42.0 - dev: true - - /@typescript-eslint/type-utils/5.42.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg==} + /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2859,8 +2856,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.42.0_typescript@4.8.4 - '@typescript-eslint/utils': 5.42.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 eslint: 8.27.0 tsutils: 3.21.0_typescript@4.8.4 @@ -2869,39 +2866,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.41.0: - resolution: {integrity: sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==} + /@typescript-eslint/types/5.42.1: + resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.42.0: - resolution: {integrity: sha512-t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree/5.41.0_typescript@4.8.4: - resolution: {integrity: sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.41.0 - '@typescript-eslint/visitor-keys': 5.41.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.8.4 - typescript: 4.8.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree/5.42.0_typescript@4.8.4: - resolution: {integrity: sha512-2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTTg==} + /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4: + resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2909,8 +2880,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.42.0 - '@typescript-eslint/visitor-keys': 5.42.0 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2921,17 +2892,17 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.41.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==} + /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.12 - '@typescript-eslint/scope-manager': 5.41.0 - '@typescript-eslint/types': 5.41.0 - '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 eslint: 8.27.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.27.0 @@ -2941,50 +2912,22 @@ packages: - typescript dev: true - /@typescript-eslint/utils/5.42.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnCQ==} + /@typescript-eslint/visitor-keys/5.42.1: + resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.12 - '@typescript-eslint/scope-manager': 5.42.0 - '@typescript-eslint/types': 5.42.0 - '@typescript-eslint/typescript-estree': 5.42.0_typescript@4.8.4 - eslint: 8.27.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.27.0 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys/5.41.0: - resolution: {integrity: sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.41.0 - eslint-visitor-keys: 3.3.0 - dev: true - - /@typescript-eslint/visitor-keys/5.42.0: - resolution: {integrity: sha512-QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.42.0 + '@typescript-eslint/types': 5.42.1 eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/3.1.2_vite@3.2.2+vue@3.2.41: - resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} + /@vitejs/plugin-vue/3.2.0_vite@3.2.3+vue@3.2.41: + resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.2.2 + vite: 3.2.3_@types+node@18.11.9 vue: 3.2.41 dev: true @@ -4702,59 +4645,60 @@ packages: engines: {node: '>=8'} dev: true - /cspell-dictionary/6.14.0: - resolution: {integrity: sha512-BJ89Fv6wiXHrR1OHKq/pnuutImXKehvGI2Wb8lkxOja7GYAypXMfyJRTJ2orE5eqmRD4DI+j3s7Bhby116z+Lw==} + /cspell-dictionary/6.14.2: + resolution: {integrity: sha512-j2+uZRru3xFtW7VUOoJCrlXta1DBiPq44yGjN/Npc0wtR/aWA/NOdRysap3jWhBS1t43CiA5fqXyMO7d4wDqxw==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-pipe': 6.14.0 - '@cspell/cspell-types': 6.14.0 - cspell-trie-lib: 6.14.0 + '@cspell/cspell-pipe': 6.14.2 + '@cspell/cspell-types': 6.14.2 + cspell-trie-lib: 6.14.2 fast-equals: 4.0.3 gensequence: 4.0.2 dev: true - /cspell-glob/6.14.0: - resolution: {integrity: sha512-0qdqwPJ+4tXk9HwB8IHlHy+P+8OM5sbVFTr5YaC5dGoy+Tfz56Y8V7gnitrmrxcLe3lpHVxi/mHNE3N/HWc+0Q==} + /cspell-glob/6.14.2: + resolution: {integrity: sha512-a9o3lBccEcH2676RGge2YqEORovm+II++D53P6hOW/23ltDe1J509MSY6CJdYdPk/VssOExas6akJ6FbKSCBgw==} engines: {node: '>=14'} dependencies: micromatch: 4.0.5 dev: true - /cspell-grammar/6.14.0: - resolution: {integrity: sha512-0+W6tuHRYsFvrdh3HBTsQlYRWwv+RAok+YZaTv8ypmkMAISU13ipxL9SkEc/r/AermPd5JpJAfPNw8ZNWRVsAg==} + /cspell-grammar/6.14.2: + resolution: {integrity: sha512-Q9+gwp1U/qnECTqxa7WBMPn6sgBfXPIM68jXg8RgNMAuy1CE+m1eTCM9FBNFNpNKJWjaZPvANLOW5/EStN2A/A==} engines: {node: '>=14'} hasBin: true dependencies: - '@cspell/cspell-pipe': 6.14.0 - '@cspell/cspell-types': 6.14.0 + '@cspell/cspell-pipe': 6.14.2 + '@cspell/cspell-types': 6.14.2 dev: true - /cspell-io/6.14.0: - resolution: {integrity: sha512-KmjUQ2JrmH3/5JZtYvvjtlB4FWHwE75DrudYfnyFUTzLvVlSagNagfy5wPWTkydnRMdI23I7BOqBA+wtBydXcA==} + /cspell-io/6.14.2: + resolution: {integrity: sha512-QyQ0BBfDvF6B37SlSsmlzRnaGqiIHt7c5NsCNKf3ZfioTWkNI/fiabvSkpNGBAkELP6BPBxjsG+TaS+swZp+Kg==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-service-bus': 6.14.0 + '@cspell/cspell-service-bus': 6.14.2 node-fetch: 2.6.7 transitivePeerDependencies: - encoding dev: true - /cspell-lib/6.14.0: - resolution: {integrity: sha512-EqC/zhG7JSiYIcbzyPngFFrj5ElK0EACILKeqO/5lMvX19TdzaLDtnhY8ZHFY5+EIuaPkj4ahAqferx1gbJaDA==} + /cspell-lib/6.14.2: + resolution: {integrity: sha512-QNsmWix0oFi1CjzFfNG1xAJVl1OC+6kiWvq0A1S8VD3LJhJVvBqSv1vudpL1oS7H2/2yxk9PUC/MajGLi5i5MQ==} engines: {node: '>=14.6'} dependencies: - '@cspell/cspell-bundled-dicts': 6.14.0 - '@cspell/cspell-pipe': 6.14.0 - '@cspell/cspell-types': 6.14.0 + '@cspell/cspell-bundled-dicts': 6.14.2 + '@cspell/cspell-pipe': 6.14.2 + '@cspell/cspell-types': 6.14.2 + '@cspell/strong-weak-map': 6.14.2 clear-module: 4.1.2 comment-json: 4.2.3 configstore: 5.0.1 cosmiconfig: 7.0.1 - cspell-dictionary: 6.14.0 - cspell-glob: 6.14.0 - cspell-grammar: 6.14.0 - cspell-io: 6.14.0 - cspell-trie-lib: 6.14.0 + cspell-dictionary: 6.14.2 + cspell-glob: 6.14.2 + cspell-grammar: 6.14.2 + cspell-io: 6.14.2 + cspell-trie-lib: 6.14.2 fast-equals: 4.0.3 find-up: 5.0.0 fs-extra: 10.1.0 @@ -4768,12 +4712,12 @@ packages: - encoding dev: true - /cspell-trie-lib/6.14.0: - resolution: {integrity: sha512-JY2iRwp/6/qQYmOw2B8uhYDxP7VzqSWIo8rD5lHSivQMjH7lhVnQ2LPumMTa9IEOEesCkwNM8N+krndo12Ptqg==} + /cspell-trie-lib/6.14.2: + resolution: {integrity: sha512-+aTRwFUzBPFbJ8zlDwzB1ew/gP7L6kddoXjmqCNeFx9B5DiwN1KPFRo+uBx21JOkoavnviGU//DpyWSU9Cittw==} engines: {node: '>=14'} dependencies: - '@cspell/cspell-pipe': 6.14.0 - '@cspell/cspell-types': 6.14.0 + '@cspell/cspell-pipe': 6.14.2 + '@cspell/cspell-types': 6.14.2 fs-extra: 10.1.0 gensequence: 4.0.2 dev: true @@ -5561,6 +5505,11 @@ packages: /dompurify/2.4.0: resolution: {integrity: sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==} + dev: true + + /dompurify/2.4.1: + resolution: {integrity: sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==} + dev: false /domutils/3.0.1: resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} @@ -5981,8 +5930,8 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.4_mo2lami4yy66jkzk2pp2s2sft4: - resolution: {integrity: sha512-evJ9E9id/z2Fu6LR+ncNySJ6UMs5RiJiv4JsmdA3gPWoq0AR+uZyva738+Y9Uln+3WaYX+3OYP9HJoau94Iurg==} + /eslint-plugin-jest/27.1.5_iokx7ekx3swgvwius64h34smqy: + resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -5994,8 +5943,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.42.0_ofgjrzjuekeo7s3hdyz2yuzw34 - '@typescript-eslint/utils': 5.41.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 jest: 29.2.2_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: @@ -6003,8 +5952,8 @@ packages: - typescript dev: true - /eslint-plugin-jest/27.1.4_nc2muyejbxixdtdkoal5nbvotq: - resolution: {integrity: sha512-evJ9E9id/z2Fu6LR+ncNySJ6UMs5RiJiv4JsmdA3gPWoq0AR+uZyva738+Y9Uln+3WaYX+3OYP9HJoau94Iurg==} + /eslint-plugin-jest/27.1.5_jrpxipm6pabmwsz6c3beohyxm4: + resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -6016,8 +5965,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.42.0_ofgjrzjuekeo7s3hdyz2yuzw34 - '@typescript-eslint/utils': 5.41.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: @@ -7397,8 +7346,8 @@ packages: engines: {node: '>=12.20.0'} dev: true - /husky/8.0.1: - resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} + /husky/8.0.2: + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} engines: {node: '>=14'} hasBin: true dev: true @@ -9640,7 +9589,7 @@ packages: /mermaid/9.1.7: resolution: {integrity: sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==} dependencies: - '@braintree/sanitize-url': 6.0.1 + '@braintree/sanitize-url': 6.0.2 d3: 7.6.1 dagre: 0.8.5 dagre-d3: 0.6.4 @@ -13014,17 +12963,20 @@ packages: - terser dev: true - /vite/3.2.2: - resolution: {integrity: sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==} + /vite/3.2.3_@types+node@18.11.9: + resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: + '@types/node': '>= 14' less: '*' sass: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: + '@types/node': + optional: true less: optional: true sass: @@ -13036,6 +12988,7 @@ packages: terser: optional: true dependencies: + '@types/node': 18.11.9 esbuild: 0.15.13 postcss: 8.4.18 resolve: 1.22.1 @@ -13044,7 +12997,7 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_4ciratiyyfxwawp34rwsk4kamu: + /vitepress-plugin-mermaid/2.0.8_rrdem5zfx6mwymtnpoibog245q: resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} peerDependencies: mermaid: ^8.0.0 || ^9.0.0 @@ -13053,10 +13006,10 @@ packages: dependencies: mermaid: 9.1.7 vite-plugin-md: 0.20.4_nbt6i7tbnkrbcx4lq4tinvsaae - vitepress: 1.0.0-alpha.27_tbpndr44ulefs3hehwpi2mkf2y + vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi dev: true - /vitepress-plugin-search/1.0.4-alpha.15_jqf4rwmsymnrb4kzh6io7s4tmi: + /vitepress-plugin-search/1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54: resolution: {integrity: sha512-Ef/VkhTVYlECVI0H9Ck6745UNPfYFppAqnlxVSMJXdxP2vjOZ5TYNczlTTQ2p9dh16MFw/IurbL1/GrG4nXdNw==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -13069,26 +13022,27 @@ packages: '@types/markdown-it': 12.2.3 flexsearch: 0.7.31 markdown-it: 13.0.1 - vite: 3.2.2 - vitepress: 1.0.0-alpha.27_tbpndr44ulefs3hehwpi2mkf2y + vite: 3.2.3_@types+node@18.11.9 + vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi vue: 3.2.41 dev: true - /vitepress/1.0.0-alpha.27_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-7/PwlIRZANvB2uyi8oi4oMXuH84g2/pAaoymb+ObBCs60m0oVxKMPO28w7R/svqSnnE+bNDOuLzTCXt7gn513g==} + /vitepress/1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi: + resolution: {integrity: sha512-pvbLssDMgLUN1terajmPlFBxHSDGO4DqwexKbjFyr7LeELerVuwGrG6F2J1hxmwOlbpLd1kHXEDqGm9JX/kTDQ==} hasBin: true dependencies: '@docsearch/css': 3.3.0 '@docsearch/js': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 3.1.2_vite@3.2.2+vue@3.2.41 + '@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.41 '@vue/devtools-api': 6.4.5 '@vueuse/core': 9.4.0_vue@3.2.41 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.2 + vite: 3.2.3_@types+node@18.11.9 vue: 3.2.41 transitivePeerDependencies: - '@algolia/client-search' + - '@types/node' - '@types/react' - '@vue/composition-api' - less @@ -13136,7 +13090,7 @@ packages: local-pkg: 0.4.2 tinypool: 0.2.4 tinyspy: 1.0.2 - vite: 3.2.2 + vite: 3.2.3_@types+node@18.11.9 transitivePeerDependencies: - less - sass @@ -13181,7 +13135,7 @@ packages: tinybench: 2.3.1 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.2.2 + vite: 3.2.3_@types+node@18.11.9 transitivePeerDependencies: - less - sass From a1e2df8466501a4a86cdaae19ad84a300ddf18ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 05:28:23 +0000 Subject: [PATCH 0612/1038] chore(deps): update all non-major dependencies --- package.json | 14 +- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 577 +++++++++++++++++----------------- 3 files changed, 300 insertions(+), 293 deletions(-) diff --git a/package.json b/package.json index 5b25579d0a..4ed75357aa 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", "type": "module", - "packageManager": "pnpm@7.14.2", + "packageManager": "pnpm@7.15.0", "exports": { ".": { "require": "./dist/mermaid.min.js", @@ -85,7 +85,7 @@ "@commitlint/config-conventional": "17.2.0", "@cspell/eslint-plugin": "6.14.2", "@types/d3": "7.4.0", - "@types/dompurify": "2.3.4", + "@types/dompurify": "2.4.0", "@types/eslint": "8.4.10", "@types/express": "4.17.14", "@types/jsdom": "20.0.1", @@ -95,8 +95,8 @@ "@types/stylis": "4.0.2", "@typescript-eslint/eslint-plugin": "5.42.1", "@typescript-eslint/parser": "5.42.1", - "@vitest/coverage-c8": "0.24.5", - "@vitest/ui": "0.24.5", + "@vitest/coverage-c8": "0.25.1", + "@vitest/ui": "0.25.1", "concurrently": "7.5.0", "coveralls": "3.1.1", "cypress": "10.11.0", @@ -116,13 +116,13 @@ "globby": "13.1.2", "husky": "8.0.2", "identity-obj-proxy": "3.0.0", - "jest": "29.2.2", + "jest": "29.3.1", "jison": "0.4.18", "jsdom": "20.0.2", "lint-staged": "13.0.3", "markdown-it": "13.0.1", "path-browserify": "1.0.1", - "pnpm": "7.14.2", + "pnpm": "7.15.0", "prettier": "2.7.1", "prettier-plugin-jsdoc": "0.4.2", "remark": "14.0.2", @@ -135,7 +135,7 @@ "vitepress": "1.0.0-alpha.28", "vitepress-plugin-mermaid": "2.0.8", "vitepress-plugin-search": "1.0.4-alpha.15", - "vitest": "0.24.5" + "vitest": "0.25.1" }, "resolutions": { "d3": "7.6.1" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 6406257279..50c79dd05d 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -83,7 +83,7 @@ "@commitlint/cli": "17.2.0", "@commitlint/config-conventional": "17.2.0", "@types/d3": "7.4.0", - "@types/dompurify": "2.3.4", + "@types/dompurify": "2.4.0", "@types/eslint": "8.4.10", "@types/express": "4.17.14", "@types/jsdom": "20.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 59d1bfb6be..95434a9a5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: '@commitlint/config-conventional': 17.2.0 '@cspell/eslint-plugin': 6.14.2 '@types/d3': 7.4.0 - '@types/dompurify': 2.3.4 + '@types/dompurify': 2.4.0 '@types/eslint': 8.4.10 '@types/express': 4.17.14 '@types/jsdom': 20.0.1 @@ -25,8 +25,8 @@ importers: '@types/uuid': 8.3.4 '@typescript-eslint/eslint-plugin': 5.42.1 '@typescript-eslint/parser': 5.42.1 - '@vitest/coverage-c8': 0.24.5 - '@vitest/ui': 0.24.5 + '@vitest/coverage-c8': 0.25.1 + '@vitest/ui': 0.25.1 concurrently: 7.5.0 coveralls: 3.1.1 cypress: 10.11.0 @@ -52,7 +52,7 @@ importers: graphlib: 2.1.8 husky: 8.0.2 identity-obj-proxy: 3.0.0 - jest: 29.2.2 + jest: 29.3.1 jison: 0.4.18 jsdom: 20.0.2 khroma: 2.0.0 @@ -62,7 +62,7 @@ importers: moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 path-browserify: 1.0.1 - pnpm: 7.14.2 + pnpm: 7.15.0 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2 remark: 14.0.2 @@ -78,7 +78,7 @@ importers: vitepress: 1.0.0-alpha.28 vitepress-plugin-mermaid: 2.0.8 vitepress-plugin-search: 1.0.4-alpha.15 - vitest: 0.24.5 + vitest: 0.25.1 dependencies: '@braintree/sanitize-url': 6.0.2 '@types/node': 18.11.9 @@ -102,7 +102,7 @@ importers: '@commitlint/config-conventional': 17.2.0 '@cspell/eslint-plugin': 6.14.2 '@types/d3': 7.4.0 - '@types/dompurify': 2.3.4 + '@types/dompurify': 2.4.0 '@types/eslint': 8.4.10 '@types/express': 4.17.14 '@types/jsdom': 20.0.1 @@ -112,18 +112,18 @@ importers: '@types/stylis': 4.0.2 '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - '@vitest/coverage-c8': 0.24.5_7l34rqjzi6dnvspyhao4gurgki - '@vitest/ui': 0.24.5 + '@vitest/coverage-c8': 0.25.1_iyb77cyw3lw7duusvxyjdsflhu + '@vitest/ui': 0.25.1 concurrently: 7.5.0 coveralls: 3.1.1 cypress: 10.11.0 - cypress-image-snapshot: 4.0.1_ubq66qitfkq2hjrkiw5tjmpgui + cypress-image-snapshot: 4.0.1_bg25yee4qeg7mpleuvd346a3tq esbuild: 0.15.13 eslint: 8.27.0 eslint-config-prettier: 8.5.0_eslint@8.27.0 eslint-plugin-cypress: 2.12.1_eslint@8.27.0 eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5_iokx7ekx3swgvwius64h34smqy + eslint-plugin-jest: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 eslint-plugin-json: 3.1.0 eslint-plugin-markdown: 3.0.0_eslint@8.27.0 @@ -133,13 +133,13 @@ importers: globby: 13.1.2 husky: 8.0.2 identity-obj-proxy: 3.0.0 - jest: 29.2.2_odkjkoia5xunhxkdrka32ib6vi + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi jison: 0.4.18 jsdom: 20.0.2 lint-staged: 13.0.3 markdown-it: 13.0.1 path-browserify: 1.0.1 - pnpm: 7.14.2 + pnpm: 7.15.0 prettier: 2.7.1 prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 remark: 14.0.2 @@ -152,7 +152,7 @@ importers: vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi vitepress-plugin-mermaid: 2.0.8_rrdem5zfx6mwymtnpoibog245q vitepress-plugin-search: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 - vitest: 0.24.5_7l34rqjzi6dnvspyhao4gurgki + vitest: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu packages/mermaid: specifiers: @@ -161,7 +161,7 @@ importers: '@commitlint/cli': 17.2.0 '@commitlint/config-conventional': 17.2.0 '@types/d3': 7.4.0 - '@types/dompurify': 2.3.4 + '@types/dompurify': 2.4.0 '@types/eslint': 8.4.10 '@types/express': 4.17.14 '@types/jsdom': 20.0.1 @@ -237,7 +237,7 @@ importers: '@commitlint/cli': 17.2.0 '@commitlint/config-conventional': 17.2.0 '@types/d3': 7.4.0 - '@types/dompurify': 2.3.4 + '@types/dompurify': 2.4.0 '@types/eslint': 8.4.10 '@types/express': 4.17.14 '@types/jsdom': 20.0.1 @@ -1732,15 +1732,15 @@ packages: slash: 3.0.0 dev: true - /@jest/console/29.2.1: - resolution: {integrity: sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==} + /@jest/console/29.3.1: + resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 - jest-message-util: 29.2.1 - jest-util: 29.2.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 slash: 3.0.0 dev: true @@ -1784,8 +1784,8 @@ packages: - utf-8-validate dev: true - /@jest/core/29.2.2_ts-node@10.9.1: - resolution: {integrity: sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A==} + /@jest/core/29.3.1_ts-node@10.9.1: + resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1793,11 +1793,11 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.2.1 - '@jest/reporters': 29.2.2 - '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.2 - '@jest/types': 29.2.1 + '@jest/console': 29.3.1 + '@jest/reporters': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -1805,20 +1805,20 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.2.0 - jest-config: 29.2.2_odkjkoia5xunhxkdrka32ib6vi - jest-haste-map: 29.2.1 - jest-message-util: 29.2.1 + jest-config: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 jest-regex-util: 29.2.0 - jest-resolve: 29.2.2 - jest-resolve-dependencies: 29.2.2 - jest-runner: 29.2.2 - jest-runtime: 29.2.2 - jest-snapshot: 29.2.2 - jest-util: 29.2.1 - jest-validate: 29.2.2 - jest-watcher: 29.2.2 + jest-resolve: 29.3.1 + jest-resolve-dependencies: 29.3.1 + jest-runner: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + jest-watcher: 29.3.1 micromatch: 4.0.5 - pretty-format: 29.2.1 + pretty-format: 29.3.1 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -1836,29 +1836,29 @@ packages: jest-mock: 26.6.2 dev: true - /@jest/environment/29.2.2: - resolution: {integrity: sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A==} + /@jest/environment/29.3.1: + resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.2.2 - '@jest/types': 29.2.1 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - jest-mock: 29.2.2 + jest-mock: 29.3.1 dev: true - /@jest/expect-utils/29.2.2: - resolution: {integrity: sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==} + /@jest/expect-utils/29.3.1: + resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 dev: true - /@jest/expect/29.2.2: - resolution: {integrity: sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg==} + /@jest/expect/29.3.1: + resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.2.2 - jest-snapshot: 29.2.2 + expect: 29.3.1 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true @@ -1875,16 +1875,16 @@ packages: jest-util: 26.6.2 dev: true - /@jest/fake-timers/29.2.2: - resolution: {integrity: sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA==} + /@jest/fake-timers/29.3.1: + resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@sinonjs/fake-timers': 9.1.2 '@types/node': 18.11.9 - jest-message-util: 29.2.1 - jest-mock: 29.2.2 - jest-util: 29.2.1 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true /@jest/globals/26.6.2: @@ -1896,14 +1896,14 @@ packages: expect: 26.6.2 dev: true - /@jest/globals/29.2.2: - resolution: {integrity: sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw==} + /@jest/globals/29.3.1: + resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.2 - '@jest/expect': 29.2.2 - '@jest/types': 29.2.1 - jest-mock: 29.2.2 + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/types': 29.3.1 + jest-mock: 29.3.1 transitivePeerDependencies: - supports-color dev: true @@ -1942,8 +1942,8 @@ packages: - supports-color dev: true - /@jest/reporters/29.2.2: - resolution: {integrity: sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA==} + /@jest/reporters/29.3.1: + resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1952,10 +1952,10 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.2.1 - '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.2 - '@jest/types': 29.2.1 + '@jest/console': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@jridgewell/trace-mapping': 0.3.15 '@types/node': 18.11.9 chalk: 4.1.2 @@ -1968,9 +1968,9 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.2.1 - jest-util: 29.2.1 - jest-worker: 29.2.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + jest-worker: 29.3.1 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -2014,12 +2014,12 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-result/29.2.1: - resolution: {integrity: sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==} + /@jest/test-result/29.3.1: + resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.2.1 - '@jest/types': 29.2.1 + '@jest/console': 29.3.1 + '@jest/types': 29.3.1 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -2041,13 +2041,13 @@ packages: - utf-8-validate dev: true - /@jest/test-sequencer/29.2.2: - resolution: {integrity: sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw==} + /@jest/test-sequencer/29.3.1: + resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.2.1 + '@jest/test-result': 29.3.1 graceful-fs: 4.2.10 - jest-haste-map: 29.2.1 + jest-haste-map: 29.3.1 slash: 3.0.0 dev: true @@ -2074,21 +2074,21 @@ packages: - supports-color dev: true - /@jest/transform/29.2.2: - resolution: {integrity: sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg==} + /@jest/transform/29.3.1: + resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@jridgewell/trace-mapping': 0.3.15 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 - convert-source-map: 1.8.0 + convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.2.1 + jest-haste-map: 29.3.1 jest-regex-util: 29.2.0 - jest-util: 29.2.1 + jest-util: 29.3.1 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -2108,8 +2108,8 @@ packages: chalk: 4.1.2 dev: true - /@jest/types/29.2.1: - resolution: {integrity: sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==} + /@jest/types/29.3.1: + resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -2533,8 +2533,8 @@ packages: '@types/ms': 0.7.31 dev: true - /@types/dompurify/2.3.4: - resolution: {integrity: sha512-EXzDatIb5EspL2eb/xPGmaC8pePcTHrkDCONjeisusLFrVfl38Pjea/R0YJGu3k9ZQadSvMqW0WXPI2hEo2Ajg==} + /@types/dompurify/2.4.0: + resolution: {integrity: sha512-IDBwO5IZhrKvHFUl+clZxgf3hn2b/lU6H1KaBShPkQyGJUQ0xwebezIPSuiyGwfz1UzJWQl4M7BDxtHtCCPlTg==} dependencies: '@types/trusted-types': 2.0.2 dev: true @@ -2931,11 +2931,11 @@ packages: vue: 3.2.41 dev: true - /@vitest/coverage-c8/0.24.5_7l34rqjzi6dnvspyhao4gurgki: - resolution: {integrity: sha512-955yK/SdSBZPYrSXgXB0F+0JnOX5EY9kSL7ywJ4rNajmkFUhwLjuKm13Xb6YKSyIY/g5WvbBnyowqfNRxBJ3ww==} + /@vitest/coverage-c8/0.25.1_iyb77cyw3lw7duusvxyjdsflhu: + resolution: {integrity: sha512-gpl5QNaNeIN0mfRiosCqBFoZcizb5GA458TDnOQXkGDc4kklazxn70u9evGfV62wiiAUfGGebgRhxlBkAa6m6g==} dependencies: c8: 7.12.0 - vitest: 0.24.5_7l34rqjzi6dnvspyhao4gurgki + vitest: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -2950,8 +2950,8 @@ packages: - terser dev: true - /@vitest/ui/0.24.5: - resolution: {integrity: sha512-hdj6cmlrVPt3Mpgn0ITytTqnxQLGB4hRgueFuzlKSrqAG30wUrrxQjrW55krE1NR15r1c2jzUBwjzvIJsyoUwg==} + /@vitest/ui/0.25.1: + resolution: {integrity: sha512-VjzyfLjNS5Zc7XCCFJW3cM2iVW305D65NG0PIWefA4A8mwOH/QJJ4nFj/4cwXzwL0/VT3/ppvpv3UDNZoh/YOQ==} dependencies: sirv: 2.0.2 dev: true @@ -3111,7 +3111,7 @@ packages: p-iteration: 1.1.8 dev: true - /@yankeeinlondon/builder-api/0.4.1_vy53ifq2abxgciwndsorrsdoqu: + /@yankeeinlondon/builder-api/0.4.1_dsigm6qpqe3mljd7p5w42sooza: resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} peerDependencies: fp-ts: ^2.12.1 @@ -3119,11 +3119,11 @@ packages: markdown-it: ^13.0.1 vite-plugin-md: '*' dependencies: - '@yankeeinlondon/happy-wrapper': 2.6.0_7l34rqjzi6dnvspyhao4gurgki + '@yankeeinlondon/happy-wrapper': 2.6.0_iyb77cyw3lw7duusvxyjdsflhu fp-ts: 2.13.1 - inferred-types: 0.22.8_7l34rqjzi6dnvspyhao4gurgki + inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu markdown-it: 13.0.1 - vite-plugin-md: 0.20.4_nbt6i7tbnkrbcx4lq4tinvsaae + vite-plugin-md: 0.20.4_ssclijsxphu2vue5hnv6ywl23u transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3139,13 +3139,13 @@ packages: - terser dev: true - /@yankeeinlondon/happy-wrapper/2.6.0_7l34rqjzi6dnvspyhao4gurgki: + /@yankeeinlondon/happy-wrapper/2.6.0_iyb77cyw3lw7duusvxyjdsflhu: resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} peerDependencies: happy-dom: ^6.0.4 dependencies: happy-dom: 6.0.4 - native-dash: 1.23.2_7l34rqjzi6dnvspyhao4gurgki + native-dash: 1.23.2_iyb77cyw3lw7duusvxyjdsflhu transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3555,14 +3555,14 @@ packages: - supports-color dev: true - /babel-jest/29.2.2_@babel+core@7.12.3: - resolution: {integrity: sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w==} + /babel-jest/29.3.1_@babel+core@7.12.3: + resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.12.3 - '@jest/transform': 29.2.2 + '@jest/transform': 29.3.1 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.2.0_@babel+core@7.12.3 @@ -3780,14 +3780,14 @@ packages: fill-range: 7.0.1 dev: true - /brilliant-errors/0.6.0_7l34rqjzi6dnvspyhao4gurgki: + /brilliant-errors/0.6.0_iyb77cyw3lw7duusvxyjdsflhu: resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} engines: {node: '>=12.0.0'} dependencies: callsites: 3.1.0 common-types: 1.31.1 - inferred-types: 0.22.8_7l34rqjzi6dnvspyhao4gurgki - vitest: 0.19.1_7l34rqjzi6dnvspyhao4gurgki + inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu + vitest: 0.19.1_iyb77cyw3lw7duusvxyjdsflhu transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -4544,6 +4544,10 @@ packages: safe-buffer: 5.1.2 dev: true + /convert-source-map/2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /cookie-signature/1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true @@ -4757,7 +4761,7 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: true - /cypress-image-snapshot/4.0.1_qb6t4atfexeiaiscfhsmxcgcni: + /cypress-image-snapshot/4.0.1_bg25yee4qeg7mpleuvd346a3tq: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -4767,14 +4771,14 @@ packages: cypress: 10.11.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 + jest-image-snapshot: 4.2.0_jest@29.3.1 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: - jest dev: true - /cypress-image-snapshot/4.0.1_ubq66qitfkq2hjrkiw5tjmpgui: + /cypress-image-snapshot/4.0.1_qb6t4atfexeiaiscfhsmxcgcni: resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} engines: {node: '>=8'} peerDependencies: @@ -4784,7 +4788,7 @@ packages: cypress: 10.11.0 fs-extra: 7.0.1 glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@29.2.2 + jest-image-snapshot: 4.2.0_jest@26.6.3 pkg-dir: 3.0.0 term-img: 4.1.0 transitivePeerDependencies: @@ -5376,8 +5380,8 @@ packages: engines: {node: '>= 10.14.2'} dev: true - /diff-sequences/29.2.0: - resolution: {integrity: sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==} + /diff-sequences/29.3.1: + resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -5930,7 +5934,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.5_iokx7ekx3swgvwius64h34smqy: + /eslint-plugin-jest/27.1.5_jrpxipm6pabmwsz6c3beohyxm4: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5946,13 +5950,13 @@ packages: '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 - jest: 29.2.2_odkjkoia5xunhxkdrka32ib6vi + jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jest/27.1.5_jrpxipm6pabmwsz6c3beohyxm4: + /eslint-plugin-jest/27.1.5_kdswgjmqcx7mthqz7ow2zlfevy: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5968,7 +5972,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 - jest: 26.6.3_ts-node@10.9.1 + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - supports-color - typescript @@ -6299,15 +6303,15 @@ packages: jest-regex-util: 26.0.0 dev: true - /expect/29.2.2: - resolution: {integrity: sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==} + /expect/29.3.1: + resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.2.2 + '@jest/expect-utils': 29.3.1 jest-get-type: 29.2.0 - jest-matcher-utils: 29.2.2 - jest-message-util: 29.2.1 - jest-util: 29.2.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 dev: true /express/4.18.2: @@ -7408,10 +7412,10 @@ packages: engines: {node: '>=8'} dev: true - /inferred-types/0.22.8_7l34rqjzi6dnvspyhao4gurgki: + /inferred-types/0.22.8_iyb77cyw3lw7duusvxyjdsflhu: resolution: {integrity: sha512-gs0zTE04eOBso5tFZPA2UoYiH9qMCqCJCUdH9K6P6cofqNkI1L5bx9QDE0XE0khJgLN7TmH+W0JhwBbnkdjzWQ==} dependencies: - brilliant-errors: 0.6.0_7l34rqjzi6dnvspyhao4gurgki + brilliant-errors: 0.6.0_iyb77cyw3lw7duusvxyjdsflhu transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -7875,27 +7879,27 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus/29.2.2: - resolution: {integrity: sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw==} + /jest-circus/29.3.1: + resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.2 - '@jest/expect': 29.2.2 - '@jest/test-result': 29.2.1 - '@jest/types': 29.2.1 + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 - jest-each: 29.2.1 - jest-matcher-utils: 29.2.2 - jest-message-util: 29.2.1 - jest-runtime: 29.2.2 - jest-snapshot: 29.2.2 - jest-util: 29.2.1 + jest-each: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 p-limit: 3.1.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: @@ -7928,8 +7932,8 @@ packages: - utf-8-validate dev: true - /jest-cli/29.2.2_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg==} + /jest-cli/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -7938,16 +7942,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.2.2_ts-node@10.9.1 - '@jest/test-result': 29.2.1 - '@jest/types': 29.2.1 + '@jest/core': 29.3.1_ts-node@10.9.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.2.2_odkjkoia5xunhxkdrka32ib6vi - jest-util: 29.2.1 - jest-validate: 29.2.2 + jest-config: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jest-util: 29.3.1 + jest-validate: 29.3.1 prompts: 2.4.2 yargs: 17.5.1 transitivePeerDependencies: @@ -7991,8 +7995,8 @@ packages: - utf-8-validate dev: true - /jest-config/29.2.2_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw==} + /jest-config/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -8004,26 +8008,26 @@ packages: optional: true dependencies: '@babel/core': 7.12.3 - '@jest/test-sequencer': 29.2.2 - '@jest/types': 29.2.1 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - babel-jest: 29.2.2_@babel+core@7.12.3 + babel-jest: 29.3.1_@babel+core@7.12.3 chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.2.2 - jest-environment-node: 29.2.2 + jest-circus: 29.3.1 + jest-environment-node: 29.3.1 jest-get-type: 29.2.0 jest-regex-util: 29.2.0 - jest-resolve: 29.2.2 - jest-runner: 29.2.2 - jest-util: 29.2.1 - jest-validate: 29.2.2 + jest-resolve: 29.3.1 + jest-runner: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 slash: 3.0.0 strip-json-comments: 3.1.1 ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 @@ -8041,14 +8045,14 @@ packages: pretty-format: 26.6.2 dev: true - /jest-diff/29.2.1: - resolution: {integrity: sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==} + /jest-diff/29.3.1: + resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 29.2.0 + diff-sequences: 29.3.1 jest-get-type: 29.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 dev: true /jest-docblock/26.0.0: @@ -8076,15 +8080,15 @@ packages: pretty-format: 26.6.2 dev: true - /jest-each/29.2.1: - resolution: {integrity: sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==} + /jest-each/29.3.1: + resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 chalk: 4.1.2 jest-get-type: 29.2.0 - jest-util: 29.2.1 - pretty-format: 29.2.1 + jest-util: 29.3.1 + pretty-format: 29.3.1 dev: true /jest-environment-jsdom/26.6.2: @@ -8117,16 +8121,16 @@ packages: jest-util: 26.6.2 dev: true - /jest-environment-node/29.2.2: - resolution: {integrity: sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw==} + /jest-environment-node/29.3.1: + resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.2 - '@jest/fake-timers': 29.2.2 - '@jest/types': 29.2.1 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - jest-mock: 29.2.2 - jest-util: 29.2.1 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true /jest-get-type/26.3.0: @@ -8162,19 +8166,19 @@ packages: - supports-color dev: true - /jest-haste-map/29.2.1: - resolution: {integrity: sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA==} + /jest-haste-map/29.3.1: + resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/graceful-fs': 4.1.5 '@types/node': 18.11.9 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 jest-regex-util: 29.2.0 - jest-util: 29.2.1 - jest-worker: 29.2.1 + jest-util: 29.3.1 + jest-worker: 29.3.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: @@ -8199,7 +8203,7 @@ packages: ssim.js: 3.5.0 dev: true - /jest-image-snapshot/4.2.0_jest@29.2.2: + /jest-image-snapshot/4.2.0_jest@29.3.1: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -8208,7 +8212,7 @@ packages: chalk: 1.1.3 get-stdin: 5.0.1 glur: 1.1.2 - jest: 29.2.2_odkjkoia5xunhxkdrka32ib6vi + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi lodash: 4.17.21 mkdirp: 0.5.6 pixelmatch: 5.3.0 @@ -8255,12 +8259,12 @@ packages: pretty-format: 26.6.2 dev: true - /jest-leak-detector/29.2.1: - resolution: {integrity: sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==} + /jest-leak-detector/29.3.1: + resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 dev: true /jest-matcher-utils/26.6.2: @@ -8273,14 +8277,14 @@ packages: pretty-format: 26.6.2 dev: true - /jest-matcher-utils/29.2.2: - resolution: {integrity: sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==} + /jest-matcher-utils/29.3.1: + resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.2.1 + jest-diff: 29.3.1 jest-get-type: 29.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 dev: true /jest-message-util/26.6.2: @@ -8298,17 +8302,17 @@ packages: stack-utils: 2.0.5 dev: true - /jest-message-util/29.2.1: - resolution: {integrity: sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==} + /jest-message-util/29.3.1: + resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.2.1 + pretty-format: 29.3.1 slash: 3.0.0 stack-utils: 2.0.5 dev: true @@ -8321,13 +8325,13 @@ packages: '@types/node': 18.11.9 dev: true - /jest-mock/29.2.2: - resolution: {integrity: sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ==} + /jest-mock/29.3.1: + resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 - jest-util: 29.2.1 + jest-util: 29.3.1 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: @@ -8342,7 +8346,7 @@ packages: jest-resolve: 26.6.2 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.2.2: + /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -8351,7 +8355,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.2.2 + jest-resolve: 29.3.1 dev: true /jest-regex-util/26.0.0: @@ -8375,12 +8379,12 @@ packages: - supports-color dev: true - /jest-resolve-dependencies/29.2.2: - resolution: {integrity: sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ==} + /jest-resolve-dependencies/29.3.1: + resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.2.0 - jest-snapshot: 29.2.2 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true @@ -8399,16 +8403,16 @@ packages: slash: 3.0.0 dev: true - /jest-resolve/29.2.2: - resolution: {integrity: sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA==} + /jest-resolve/29.3.1: + resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.2.1 - jest-pnp-resolver: 1.2.2_jest-resolve@29.2.2 - jest-util: 29.2.1 - jest-validate: 29.2.2 + jest-haste-map: 29.3.1 + jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 @@ -8446,29 +8450,29 @@ packages: - utf-8-validate dev: true - /jest-runner/29.2.2: - resolution: {integrity: sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg==} + /jest-runner/29.3.1: + resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.2.1 - '@jest/environment': 29.2.2 - '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.2 - '@jest/types': 29.2.1 + '@jest/console': 29.3.1 + '@jest/environment': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 jest-docblock: 29.2.0 - jest-environment-node: 29.2.2 - jest-haste-map: 29.2.1 - jest-leak-detector: 29.2.1 - jest-message-util: 29.2.1 - jest-resolve: 29.2.2 - jest-runtime: 29.2.2 - jest-util: 29.2.1 - jest-watcher: 29.2.2 - jest-worker: 29.2.1 + jest-environment-node: 29.3.1 + jest-haste-map: 29.3.1 + jest-leak-detector: 29.3.1 + jest-message-util: 29.3.1 + jest-resolve: 29.3.1 + jest-runtime: 29.3.1 + jest-util: 29.3.1 + jest-watcher: 29.3.1 + jest-worker: 29.3.1 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: @@ -8515,30 +8519,30 @@ packages: - utf-8-validate dev: true - /jest-runtime/29.2.2: - resolution: {integrity: sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA==} + /jest-runtime/29.3.1: + resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.2.2 - '@jest/fake-timers': 29.2.2 - '@jest/globals': 29.2.2 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/globals': 29.3.1 '@jest/source-map': 29.2.0 - '@jest/test-result': 29.2.1 - '@jest/transform': 29.2.2 - '@jest/types': 29.2.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.2.1 - jest-message-util: 29.2.1 - jest-mock: 29.2.2 + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 jest-regex-util: 29.2.0 - jest-resolve: 29.2.2 - jest-snapshot: 29.2.2 - jest-util: 29.2.1 + jest-resolve: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -8577,8 +8581,8 @@ packages: - supports-color dev: true - /jest-snapshot/29.2.2: - resolution: {integrity: sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA==} + /jest-snapshot/29.3.1: + resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.12.3 @@ -8587,23 +8591,23 @@ packages: '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.12.3 '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 - '@jest/expect-utils': 29.2.2 - '@jest/transform': 29.2.2 - '@jest/types': 29.2.1 + '@jest/expect-utils': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/babel__traverse': 7.18.2 '@types/prettier': 2.7.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 chalk: 4.1.2 - expect: 29.2.2 + expect: 29.3.1 graceful-fs: 4.2.10 - jest-diff: 29.2.1 + jest-diff: 29.3.1 jest-get-type: 29.2.0 - jest-haste-map: 29.2.1 - jest-matcher-utils: 29.2.2 - jest-message-util: 29.2.1 - jest-util: 29.2.1 + jest-haste-map: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 natural-compare: 1.4.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -8621,11 +8625,11 @@ packages: micromatch: 4.0.5 dev: true - /jest-util/29.2.1: - resolution: {integrity: sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==} + /jest-util/29.3.1: + resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 chalk: 4.1.2 ci-info: 3.4.0 @@ -8645,16 +8649,16 @@ packages: pretty-format: 26.6.2 dev: true - /jest-validate/29.2.2: - resolution: {integrity: sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==} + /jest-validate/29.3.1: + resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.2.0 leven: 3.1.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 dev: true /jest-watcher/26.6.2: @@ -8670,17 +8674,17 @@ packages: string-length: 4.0.2 dev: true - /jest-watcher/29.2.2: - resolution: {integrity: sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==} + /jest-watcher/29.3.1: + resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.2.1 - '@jest/types': 29.2.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.2.1 + jest-util: 29.3.1 string-length: 4.0.2 dev: true @@ -8693,12 +8697,12 @@ packages: supports-color: 7.2.0 dev: true - /jest-worker/29.2.1: - resolution: {integrity: sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==} + /jest-worker/29.3.1: + resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.11.9 - jest-util: 29.2.1 + jest-util: 29.3.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8719,8 +8723,8 @@ packages: - utf-8-validate dev: true - /jest/29.2.2_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ==} + /jest/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -8729,10 +8733,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.2.2_ts-node@10.9.1 - '@jest/types': 29.2.1 + '@jest/core': 29.3.1_ts-node@10.9.1 + '@jest/types': 29.3.1 import-local: 3.1.0 - jest-cli: 29.2.2_odkjkoia5xunhxkdrka32ib6vi + jest-cli: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - '@types/node' - supports-color @@ -10047,11 +10051,11 @@ packages: - supports-color dev: true - /native-dash/1.23.2_7l34rqjzi6dnvspyhao4gurgki: + /native-dash/1.23.2_iyb77cyw3lw7duusvxyjdsflhu: resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} dependencies: - brilliant-errors: 0.6.0_7l34rqjzi6dnvspyhao4gurgki - inferred-types: 0.22.8_7l34rqjzi6dnvspyhao4gurgki + brilliant-errors: 0.6.0_iyb77cyw3lw7duusvxyjdsflhu + inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -10690,8 +10694,8 @@ packages: engines: {node: '>=12.13.0'} dev: true - /pnpm/7.14.2: - resolution: {integrity: sha512-NSxrIaRW07jFQQ1fPFFOA8eMfuogsMeygOKd3zaFgyJBdo1oh61jl2JjWc+w0XNzWIMG7/v9HK7nP8RTL5NO3g==} + /pnpm/7.15.0: + resolution: {integrity: sha512-GGQ5+MCwD0bpq+65uitpgO1+ZusZ1keO5ebG/CH6ciu1ohnZj5Y3X374Ow/CBApa+Jw2/NUifVRz2fW4JChftA==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -10763,8 +10767,8 @@ packages: react-is: 17.0.2 dev: true - /pretty-format/29.2.1: - resolution: {integrity: sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==} + /pretty-format/29.3.1: + resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.0.0 @@ -12933,15 +12937,15 @@ packages: replace-ext: 1.0.1 dev: true - /vite-plugin-md/0.20.4_nbt6i7tbnkrbcx4lq4tinvsaae: + /vite-plugin-md/0.20.4_ssclijsxphu2vue5hnv6ywl23u: resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} peerDependencies: '@rollup/pluginutils': ^4.2.1 rollup: ^2.77.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@yankeeinlondon/builder-api': 0.4.1_vy53ifq2abxgciwndsorrsdoqu - '@yankeeinlondon/happy-wrapper': 2.6.0_7l34rqjzi6dnvspyhao4gurgki + '@yankeeinlondon/builder-api': 0.4.1_dsigm6qpqe3mljd7p5w42sooza + '@yankeeinlondon/happy-wrapper': 2.6.0_iyb77cyw3lw7duusvxyjdsflhu gray-matter: 4.0.3 markdown-it: 13.0.1 rollup: 2.79.1 @@ -13005,7 +13009,7 @@ packages: vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: mermaid: 9.1.7 - vite-plugin-md: 0.20.4_nbt6i7tbnkrbcx4lq4tinvsaae + vite-plugin-md: 0.20.4_ssclijsxphu2vue5hnv6ywl23u vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi dev: true @@ -13054,7 +13058,7 @@ packages: - terser dev: true - /vitest/0.19.1_7l34rqjzi6dnvspyhao4gurgki: + /vitest/0.19.1_iyb77cyw3lw7duusvxyjdsflhu: resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -13082,7 +13086,7 @@ packages: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 '@types/node': 18.11.9 - '@vitest/ui': 0.24.5 + '@vitest/ui': 0.25.1 chai: 4.3.6 debug: 4.3.4 happy-dom: 6.0.4 @@ -13100,8 +13104,8 @@ packages: - terser dev: true - /vitest/0.24.5_7l34rqjzi6dnvspyhao4gurgki: - resolution: {integrity: sha512-zw6JhPUHtLILQDe5Q39b/SzoITkG+R7hcFjuthp4xsi6zpmfQPOZcHodZ+3bqoWl4EdGK/p1fuMiEwdxgbGLOA==} + /vitest/0.25.1_iyb77cyw3lw7duusvxyjdsflhu: + resolution: {integrity: sha512-eH74h6MkuEgsqR4mAQZeMK9O0PROiKY+i+1GMz/fBi5A3L2ml5U7JQs7LfPU7+uWUziZyLHagl+rkyfR8SLhlA==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -13125,12 +13129,15 @@ packages: '@types/chai': 4.3.3 '@types/chai-subset': 1.3.3 '@types/node': 18.11.9 - '@vitest/ui': 0.24.5 + '@vitest/ui': 0.25.1 + acorn: 8.8.0 + acorn-walk: 8.2.0 chai: 4.3.6 debug: 4.3.4 happy-dom: 6.0.4 jsdom: 20.0.2 local-pkg: 0.4.2 + source-map: 0.6.1 strip-literal: 0.4.2 tinybench: 2.3.1 tinypool: 0.3.0 From 04a99a7cd35f28829bca4efa5d13ce9356531cc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 07:51:09 +0000 Subject: [PATCH 0613/1038] fix(deps): update dependency rollup to v3 --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 4ed75357aa..d6be95b2d5 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "lodash": "4.17.21", "moment-mini": "2.29.4", "non-layered-tidy-tree-layout": "2.0.2", - "rollup": "2.79.1", + "rollup": "3.3.0", "stylis": "4.1.3", "uuid": "9.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95434a9a5a..85994c441c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: prettier-plugin-jsdoc: 0.4.2 remark: 14.0.2 rimraf: 3.0.2 - rollup: 2.79.1 + rollup: 3.3.0 start-server-and-test: 1.14.0 stylis: 4.1.3 ts-node: 10.9.1 @@ -93,7 +93,7 @@ importers: lodash: 4.17.21 moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 - rollup: 2.79.1 + rollup: 3.3.0 stylis: 4.1.3 uuid: 9.0.0 devDependencies: @@ -3123,7 +3123,7 @@ packages: fp-ts: 2.13.1 inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu markdown-it: 13.0.1 - vite-plugin-md: 0.20.4_ssclijsxphu2vue5hnv6ywl23u + vite-plugin-md: 0.20.4_krtt2tiffmjktlbkmj4b37llue transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -11370,6 +11370,14 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 + dev: true + + /rollup/3.3.0: + resolution: {integrity: sha512-wqOV/vUJCYEbWsXvwCkgGWvgaEnsbn4jxBQWKpN816CqsmCimDmCNJI83c6if7QVD4v/zlyRzxN7U2yDT5rfoA==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 /rsvp/4.8.5: resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} @@ -12937,7 +12945,7 @@ packages: replace-ext: 1.0.1 dev: true - /vite-plugin-md/0.20.4_ssclijsxphu2vue5hnv6ywl23u: + /vite-plugin-md/0.20.4_krtt2tiffmjktlbkmj4b37llue: resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} peerDependencies: '@rollup/pluginutils': ^4.2.1 @@ -12948,7 +12956,7 @@ packages: '@yankeeinlondon/happy-wrapper': 2.6.0_iyb77cyw3lw7duusvxyjdsflhu gray-matter: 4.0.3 markdown-it: 13.0.1 - rollup: 2.79.1 + rollup: 3.3.0 source-map-js: 1.0.2 transitivePeerDependencies: - '@edge-runtime/vm' @@ -13009,7 +13017,7 @@ packages: vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha dependencies: mermaid: 9.1.7 - vite-plugin-md: 0.20.4_ssclijsxphu2vue5hnv6ywl23u + vite-plugin-md: 0.20.4_krtt2tiffmjktlbkmj4b37llue vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi dev: true From 82ac6675357276d249f45b1b6e691285ed03c5d6 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Mon, 14 Nov 2022 10:03:24 +0100 Subject: [PATCH 0614/1038] Service functions added --- packages/mermaid/src/diagrams/pie/amonts.csv | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 packages/mermaid/src/diagrams/pie/amonts.csv diff --git a/packages/mermaid/src/diagrams/pie/amonts.csv b/packages/mermaid/src/diagrams/pie/amonts.csv new file mode 100644 index 0000000000..25cf919ddb --- /dev/null +++ b/packages/mermaid/src/diagrams/pie/amonts.csv @@ -0,0 +1,10 @@ +name,amounts +Foo, 33 +Rishab, 12 +Alexis, 41 +Tom, 16 +Courtney, 59 +Christina, 38 +Jack, 21 +Mickey, 25 +Paul, 30 From 77a326dedf4f57849e3d4b54933a649b36ff9581 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 14:51:23 +0530 Subject: [PATCH 0615/1038] Merge Master --- .gitignore | 1 + .npmrc | 1 + .vite/build.ts | 6 +- .vite/tsconfig.json | 6 - docs/config/setup/modules/mermaidAPI.md | 70 +- docs/config/usage.md | 4 +- docs/index.html.todo | 8 +- docs/intro/index.md | 2 +- package.json | 27 +- packages/mermaid-mindmap/package.json | 14 +- packages/mermaid/package.json | 25 +- packages/mermaid/src/docs.mts | 12 +- packages/mermaid/src/docs/config/usage.md | 4 +- packages/mermaid/src/docs/index.html.todo | 8 +- packages/mermaid/src/docs/intro/index.md | 2 +- packages/mermaid/src/mermaid.ts | 4 +- pnpm-lock.yaml | 3222 +++++++---------- pnpm-workspace.yaml | 2 +- .../mermaid/src => scripts}/jison/lint.mts | 5 +- 19 files changed, 1422 insertions(+), 2001 deletions(-) delete mode 100644 .vite/tsconfig.json rename {packages/mermaid/src => scripts}/jison/lint.mts (86%) diff --git a/.gitignore b/.gitignore index 8cc09354bf..a888160fae 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo +knsv*.html knsv*.html local*.html diff --git a/.npmrc b/.npmrc index 4c2f52b3be..2896843026 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ auto-install-peers=true strict-peer-dependencies=false +use-inline-specifiers-lockfile-format=true diff --git a/.vite/build.ts b/.vite/build.ts index ba31c29078..50b7fb1ad5 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -2,9 +2,8 @@ import { build, InlineConfig } from 'vite'; import { resolve } from 'path'; import { fileURLToPath } from 'url'; import jisonPlugin from './jisonPlugin.js'; -import pkg from '../package.json' assert { type: 'json' }; +import { readFileSync } from 'fs'; -const { dependencies } = pkg; const watch = process.argv.includes('--watch'); const mermaidOnly = process.argv.includes('--mermaid'); const __dirname = fileURLToPath(new URL('.', import.meta.url)); @@ -59,6 +58,9 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) ]; if (core) { + const { dependencies } = JSON.parse( + readFileSync(resolve(__dirname, `../packages/${packageName}/package.json`), 'utf-8') + ); // Core build is used to generate file without bundled dependencies. // This is used by downstream projects to bundle dependencies themselves. external.push(...Object.keys(dependencies)); diff --git a/.vite/tsconfig.json b/.vite/tsconfig.json deleted file mode 100644 index 915436da1e..0000000000 --- a/.vite/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022" - } -} diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 17124ba41d..eb5accdff9 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -16,7 +16,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) ### mermaidAPI -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `container?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> ## mermaidAPI configuration defaults @@ -80,7 +80,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:835](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L835) +[mermaidAPI.ts:950](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L950) ## Functions @@ -111,7 +111,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:283](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L283) +[mermaidAPI.ts:293](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L293) --- @@ -137,7 +137,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:234](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L234) +[mermaidAPI.ts:244](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L244) --- @@ -163,7 +163,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:161](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L161) +[mermaidAPI.ts:171](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L171) --- @@ -186,7 +186,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:211](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L211) +[mermaidAPI.ts:221](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L221) --- @@ -213,7 +213,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:145](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L145) +[mermaidAPI.ts:155](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L155) --- @@ -233,7 +233,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:83](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L83) +[mermaidAPI.ts:129](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L129) --- @@ -253,4 +253,56 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:57](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L57) +[mermaidAPI.ts:100](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L100) + +--- + +### putIntoIFrame + +▸ **putIntoIFrame**(`svgCode?`, `svgElement?`): `string` + +Put the svgCode into an iFrame. Return the iFrame code + +#### Parameters + +| Name | Type | Default value | Description | +| :------------ | :------- | :------------ | :--------------------------------------------------------------------------- | +| `svgCode` | `string` | `''` | the svg code to put inside the iFrame | +| `svgElement?` | `any` | `undefined` | the d3 node that has the current svgElement so we can get the height from it | + +#### Returns + +`string` + +- the code with the iFrame that now contains the svgCode + TODO replace btoa(). Replace with buf.toString('base64')? + +#### Defined in + +[mermaidAPI.ts:272](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L272) + +--- + +### removeExistingElements + +▸ **removeExistingElements**(`doc`, `isSandboxed`, `id`, `divSelector`, `iFrameSelector`): `void` + +Remove any existing elements from the given document + +#### Parameters + +| Name | Type | Description | +| :--------------- | :--------- | :---------------------------------------------- | +| `doc` | `Document` | the document to removed elements from | +| `isSandboxed` | `boolean` | whether or not we are in sandboxed mode | +| `id` | `string` | id for any existing SVG element | +| `divSelector` | `string` | selector for any existing enclosing div element | +| `iFrameSelector` | `string` | selector for any existing iFrame element | + +#### Returns + +`void` + +#### Defined in + +[mermaidAPI.ts:344](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L344) diff --git a/docs/config/usage.md b/docs/config/usage.md index 9a2c63446e..a227b7a988 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -62,7 +62,7 @@ Example: ```html ``` @@ -85,7 +85,7 @@ Example: B-->D(fa:fa-spinner); diff --git a/docs/index.html.todo b/docs/index.html.todo index ce4cd2e0e2..8728338f90 100644 --- a/docs/index.html.todo +++ b/docs/index.html.todo @@ -49,8 +49,8 @@
    ``` diff --git a/package.json b/package.json index 5cca8c6050..d1506854bc 100644 --- a/package.json +++ b/package.json @@ -15,14 +15,16 @@ "git graph" ], "scripts": { - "build:vite": "ts-node-esm --transpileOnly --project=.vite/tsconfig.json .vite/build.ts", + "build:mermaid": "ts-node-esm --transpileOnly .vite/build.ts --mermaid", + "build:vite": "ts-node-esm --transpileOnly .vite/build.ts", "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm --filter mermaid run lint:jison && prettier --check .", + "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", + "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", "e2e": "start-server-and-test dev http://localhost:9000/ cypress", @@ -32,6 +34,7 @@ "test:coverage": "vitest --coverage", "prepublishOnly": "pnpm build && pnpm test", "prepare": "concurrently \"husky install\" \"pnpm build\"", + "postinstall": "./scripts/fixPnpmLock.sh", "pre-commit": "lint-staged" }, "repository": { @@ -50,24 +53,6 @@ "page" ] }, - "dependencies": { - "@braintree/sanitize-url": "6.0.2", - "@types/node": "18.11.9", - "@types/uuid": "8.3.4", - "d3": "7.6.1", - "dagre": "0.8.5", - "dagre-d3": "0.6.4", - "dompurify": "2.4.1", - "fast-clone": "1.5.13", - "graphlib": "2.1.8", - "khroma": "2.0.0", - "lodash": "4.17.21", - "moment-mini": "2.29.4", - "non-layered-tidy-tree-layout": "2.0.2", - "rollup": "2.79.1", - "stylis": "4.1.3", - "uuid": "9.0.0" - }, "devDependencies": { "@applitools/eyes-cypress": "3.27.6", "@commitlint/cli": "17.2.0", @@ -80,8 +65,10 @@ "@types/jsdom": "20.0.1", "@types/lodash": "4.14.188", "@types/mdast": "3.0.10", + "@types/node": "^18.11.9", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", + "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "5.42.1", "@typescript-eslint/parser": "5.42.1", "@vitest/coverage-c8": "0.25.1", diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index a5dc3fd11a..43dcf49fc5 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -19,18 +19,7 @@ "mermaid" ], "scripts": { - "clean": "rimraf dist", - "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:watch": "yarn build:code --watch", - "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:esbuild", - "dev": "node .esbuild/serve.cjs", - "release": "yarn build", - "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm src/jison/lint.mts", - "todo-prepare": "concurrently \"husky install ../../.husky\" \"yarn build\"", - "todo-pre-commit": "lint-staged" + "prepublishOnly": "pnpm -w run build" }, "repository": { "type": "git", @@ -54,6 +43,7 @@ "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.1.0", "d3": "^7.0.0", + "khroma": "^2.0.0", "non-layered-tidy-tree-layout": "^2.0.2" }, "devDependencies": { diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 07076bd64d..283ecefcf0 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -25,12 +25,6 @@ ], "scripts": { "clean": "rimraf dist", - "build:code": "node .esbuild/esbuild.cjs", - "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:watch": "pnpm build:code --watch", - "build:esbuild": "concurrently \"pnpm build:code\" \"pnpm build:types\"", - "build": "pnpm clean; pnpm build:esbuild", - "dev": "node .esbuild/serve.cjs", "docs:code": "typedoc src/defaultConfig.ts src/config.ts src/mermaidAPI.ts && prettier --write ./src/docs/config/setup", "docs:build": "rimraf ../../docs && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:code && ts-node-esm src/docs.mts --verify", @@ -39,14 +33,7 @@ "docs:dev": "pnpm docs:pre:vitepress && concurrently \"vitepress dev src/vitepress\" \"ts-node-esm src/docs.mts --watch --vitepress\"", "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm src/jison/lint.mts", - "cypress": "cypress run", - "cypress:open": "cypress open", - "e2e": "start-server-and-test dev http://localhost:9000/ cypress", - "todo-prepare": "concurrently \"husky install\" \"pnpm build\"", - "pre-commit": "lint-staged" + "prepublishOnly": "pnpm -w run build" }, "repository": { "type": "git", @@ -92,15 +79,12 @@ "@types/micromatch": "4.0.2", "@types/prettier": "2.7.1", "@types/stylis": "4.0.2", - "@types/uuid": "^8.3.4", + "@types/uuid": "8.3.4", "@typescript-eslint/eslint-plugin": "5.42.1", "@typescript-eslint/parser": "5.42.1", "chokidar": "3.5.3", "concurrently": "7.5.0", "coveralls": "3.1.1", - "cypress": "10.11.0", - "cypress-image-snapshot": "4.0.1", - "esbuild": "0.15.13", "eslint": "8.27.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-cypress": "2.12.1", @@ -111,7 +95,6 @@ "eslint-plugin-markdown": "3.0.0", "express": "4.18.2", "globby": "13.1.2", - "husky": "8.0.2", "identity-obj-proxy": "3.0.0", "jison": "0.4.18", "js-base64": "3.7.2", @@ -127,8 +110,8 @@ "shiki": "^0.11.1", "start-server-and-test": "1.14.0", "ts-node": "10.9.1", - "typedoc": "^0.23.18", - "typedoc-plugin-markdown": "^3.13.6", + "typedoc": "0.23.18", + "typedoc-plugin-markdown": "3.13.6", "typescript": "4.8.4", "unist-util-flatmap": "1.0.0" }, diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index f4dcf1344d..e2f46ff1ea 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -46,6 +46,7 @@ import flatmap from 'unist-util-flatmap'; const MERMAID_MAJOR_VERSION = ( JSON.parse(readFileSync('../mermaid/package.json', 'utf8')).version as string ).split('.')[0]; +const CDN_URL = 'https://unpkg.com'; // https://cdn.jsdelivr.net/npm const verifyOnly: boolean = process.argv.includes('--verify'); const git: boolean = process.argv.includes('--git'); @@ -147,6 +148,9 @@ const transformToBlockQuote = (content: string, type: string) => { return `> **${title}** \n> ${content.replace(/\n/g, '\n> ')}`; }; +const injectPlaceholders = (text: string): string => + text.replace(//g, MERMAID_MAJOR_VERSION).replace(//g, CDN_URL); + /** * Transform a markdown file and write the transformed file to the directory for published * documentation @@ -160,7 +164,8 @@ const transformToBlockQuote = (content: string, type: string) => { * @param file {string} name of the file that will be verified */ const transformMarkdown = (file: string) => { - const doc = readSyncedUTF8file(file).replace(//g, MERMAID_MAJOR_VERSION); + const doc = injectPlaceholders(readSyncedUTF8file(file)); + const ast: Root = remark.parse(doc); const out = flatmap(ast, (c: Code) => { if (c.type !== 'code' || !c.lang) { @@ -216,10 +221,7 @@ const transformHtml = (filename: string) => { * @returns {string} The contents of the file with the comment inserted */ const insertAutoGeneratedComment = (fileName: string): string => { - const fileContents = readSyncedUTF8file(fileName).replace( - //g, - MERMAID_MAJOR_VERSION - ); + const fileContents = injectPlaceholders(readSyncedUTF8file(fileName)); if (noHeader) { return fileContents; diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md index 63b80e5783..93f0429b7f 100644 --- a/packages/mermaid/src/docs/config/usage.md +++ b/packages/mermaid/src/docs/config/usage.md @@ -58,7 +58,7 @@ Example: ```html ``` @@ -81,7 +81,7 @@ Example: B-->D(fa:fa-spinner); diff --git a/packages/mermaid/src/docs/index.html.todo b/packages/mermaid/src/docs/index.html.todo index ce4cd2e0e2..8728338f90 100644 --- a/packages/mermaid/src/docs/index.html.todo +++ b/packages/mermaid/src/docs/index.html.todo @@ -49,8 +49,8 @@
    ``` diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 67f7068f2e..e055bf3bc0 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -12,7 +12,7 @@ import { isDetailedError, type DetailedError } from './utils'; import { registerDiagram } from './diagram-api/diagramAPI'; import { ExternalDiagramDefinition } from './diagram-api/types'; -export type { MermaidConfig, DetailedError, ExternalDiagramDefinition }; +export type { MermaidConfig, DetailedError, ExternalDiagramDefinition, ParseErrorFunction }; let externalDiagramsRegistered = false; /** @@ -379,7 +379,7 @@ if (typeof document !== 'undefined') { * This is provided for environments where the mermaid object can't directly have a new member added * to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid). * - * @param newParseErrorHandler - New parseError() callback. + * @param newParseErrorHandler New parseError() callback. */ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: any) => void) { mermaid.parseError = newParseErrorHandler; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d67225169f..3fbef7c8c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.4 +lockfileVersion: 5.4-inlineSpecifiers overrides: d3: 7.6.1 @@ -6,318 +6,427 @@ overrides: importers: .: - specifiers: - '@applitools/eyes-cypress': 3.27.6 - '@braintree/sanitize-url': 6.0.2 - '@commitlint/cli': 17.2.0 - '@commitlint/config-conventional': 17.2.0 - '@cspell/eslint-plugin': 6.14.2 - '@types/d3': 7.4.0 - '@types/dompurify': 2.4.0 - '@types/eslint': 8.4.10 - '@types/express': 4.17.14 - '@types/jsdom': 20.0.1 - '@types/lodash': 4.14.188 - '@types/mdast': 3.0.10 - '@types/node': 18.11.9 - '@types/prettier': 2.7.1 - '@types/stylis': 4.0.2 - '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.42.1 - '@typescript-eslint/parser': 5.42.1 - '@vitest/coverage-c8': 0.25.1 - '@vitest/ui': 0.25.1 - concurrently: 7.5.0 - coveralls: 3.1.1 - cypress: 10.11.0 - cypress-image-snapshot: 4.0.1 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.1 - esbuild: 0.15.13 - eslint: 8.27.0 - eslint-config-prettier: 8.5.0 - eslint-plugin-cypress: 2.12.1 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5 - eslint-plugin-jsdoc: 39.6.2 - eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0 - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-tsdoc: 0.2.17 - express: 4.18.2 - fast-clone: 1.5.13 - globby: 13.1.2 - graphlib: 2.1.8 - husky: 8.0.2 - identity-obj-proxy: 3.0.0 - jest: 29.3.1 - jison: 0.4.18 - jsdom: 20.0.2 - khroma: 2.0.0 - lint-staged: 13.0.3 - lodash: 4.17.21 - markdown-it: 13.0.1 - mermaid: '' - moment-mini: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - path-browserify: 1.0.1 - pnpm: 7.15.0 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2 - remark: 14.0.2 - rimraf: 3.0.2 - rollup: 2.79.1 - start-server-and-test: 1.14.0 - stylis: 4.1.3 - ts-node: 10.9.1 - typescript: 4.8.4 - unist-util-flatmap: 1.0.0 - uuid: 9.0.0 - vite: 3.2.3 - vitepress: 1.0.0-alpha.28 - vitepress-plugin-mermaid: 2.0.8 - vitepress-plugin-search: 1.0.4-alpha.15 - vitest: 0.25.1 - dependencies: - '@braintree/sanitize-url': 6.0.2 - '@types/node': 18.11.9 - '@types/uuid': 8.3.4 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.1 - fast-clone: 1.5.13 - graphlib: 2.1.8 - khroma: 2.0.0 - lodash: 4.17.21 - moment-mini: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - rollup: 2.79.1 - stylis: 4.1.3 - uuid: 9.0.0 devDependencies: - '@applitools/eyes-cypress': 3.27.6 - '@commitlint/cli': 17.2.0 - '@commitlint/config-conventional': 17.2.0 - '@cspell/eslint-plugin': 6.14.2 - '@types/d3': 7.4.0 - '@types/dompurify': 2.4.0 - '@types/eslint': 8.4.10 - '@types/express': 4.17.14 - '@types/jsdom': 20.0.1 - '@types/lodash': 4.14.188 - '@types/mdast': 3.0.10 - '@types/prettier': 2.7.1 - '@types/stylis': 4.0.2 - '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - '@vitest/coverage-c8': 0.25.1_iyb77cyw3lw7duusvxyjdsflhu - '@vitest/ui': 0.25.1 - concurrently: 7.5.0 - coveralls: 3.1.1 - cypress: 10.11.0 - cypress-image-snapshot: 4.0.1_bg25yee4qeg7mpleuvd346a3tq - esbuild: 0.15.13 - eslint: 8.27.0 - eslint-config-prettier: 8.5.0_eslint@8.27.0 - eslint-plugin-cypress: 2.12.1_eslint@8.27.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy - eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 - eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.27.0 - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-tsdoc: 0.2.17 - express: 4.18.2 - globby: 13.1.2 - husky: 8.0.2 - identity-obj-proxy: 3.0.0 - jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi - jison: 0.4.18 - jsdom: 20.0.2 - lint-staged: 13.0.3 - markdown-it: 13.0.1 - path-browserify: 1.0.1 - pnpm: 7.15.0 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 - remark: 14.0.2 - rimraf: 3.0.2 - start-server-and-test: 1.14.0 - ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - typescript: 4.8.4 - unist-util-flatmap: 1.0.0 - vite: 3.2.3_@types+node@18.11.9 - vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi - vitepress-plugin-mermaid: 2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe - vitepress-plugin-search: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 - vitest: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu + '@applitools/eyes-cypress': + specifier: 3.27.6 + version: 3.27.6 + '@commitlint/cli': + specifier: 17.2.0 + version: 17.2.0 + '@commitlint/config-conventional': + specifier: 17.2.0 + version: 17.2.0 + '@cspell/eslint-plugin': + specifier: 6.14.2 + version: 6.14.2 + '@types/d3': + specifier: 7.4.0 + version: 7.4.0 + '@types/dompurify': + specifier: 2.4.0 + version: 2.4.0 + '@types/eslint': + specifier: 8.4.10 + version: 8.4.10 + '@types/express': + specifier: 4.17.14 + version: 4.17.14 + '@types/jsdom': + specifier: 20.0.1 + version: 20.0.1 + '@types/lodash': + specifier: 4.14.188 + version: 4.14.188 + '@types/mdast': + specifier: 3.0.10 + version: 3.0.10 + '@types/node': + specifier: ^18.11.9 + version: 18.11.9 + '@types/prettier': + specifier: 2.7.1 + version: 2.7.1 + '@types/stylis': + specifier: 4.0.2 + version: 4.0.2 + '@types/uuid': + specifier: ^8.3.4 + version: 8.3.4 + '@typescript-eslint/eslint-plugin': + specifier: 5.42.1 + version: 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': + specifier: 5.42.1 + version: 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@vitest/coverage-c8': + specifier: 0.25.1 + version: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu + '@vitest/ui': + specifier: 0.25.1 + version: 0.25.1 + concurrently: + specifier: 7.5.0 + version: 7.5.0 + coveralls: + specifier: 3.1.1 + version: 3.1.1 + cypress: + specifier: 10.11.0 + version: 10.11.0 + cypress-image-snapshot: + specifier: 4.0.1 + version: 4.0.1_bg25yee4qeg7mpleuvd346a3tq + esbuild: + specifier: 0.15.13 + version: 0.15.13 + eslint: + specifier: 8.27.0 + version: 8.27.0 + eslint-config-prettier: + specifier: 8.5.0 + version: 8.5.0_eslint@8.27.0 + eslint-plugin-cypress: + specifier: 2.12.1 + version: 2.12.1_eslint@8.27.0 + eslint-plugin-html: + specifier: 7.1.0 + version: 7.1.0 + eslint-plugin-jest: + specifier: 27.1.5 + version: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy + eslint-plugin-jsdoc: + specifier: 39.6.2 + version: 39.6.2_eslint@8.27.0 + eslint-plugin-json: + specifier: 3.1.0 + version: 3.1.0 + eslint-plugin-markdown: + specifier: 3.0.0 + version: 3.0.0_eslint@8.27.0 + eslint-plugin-no-only-tests: + specifier: 3.1.0 + version: 3.1.0 + eslint-plugin-tsdoc: + specifier: 0.2.17 + version: 0.2.17 + express: + specifier: 4.18.2 + version: 4.18.2 + globby: + specifier: 13.1.2 + version: 13.1.2 + husky: + specifier: 8.0.2 + version: 8.0.2 + identity-obj-proxy: + specifier: 3.0.0 + version: 3.0.0 + jest: + specifier: 29.3.1 + version: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jison: + specifier: 0.4.18 + version: 0.4.18 + jsdom: + specifier: 20.0.2 + version: 20.0.2 + lint-staged: + specifier: 13.0.3 + version: 13.0.3 + markdown-it: + specifier: 13.0.1 + version: 13.0.1 + path-browserify: + specifier: 1.0.1 + version: 1.0.1 + pnpm: + specifier: 7.15.0 + version: 7.15.0 + prettier: + specifier: 2.7.1 + version: 2.7.1 + prettier-plugin-jsdoc: + specifier: 0.4.2 + version: 0.4.2_prettier@2.7.1 + remark: + specifier: 14.0.2 + version: 14.0.2 + rimraf: + specifier: 3.0.2 + version: 3.0.2 + start-server-and-test: + specifier: 1.14.0 + version: 1.14.0 + ts-node: + specifier: 10.9.1 + version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 + typescript: + specifier: 4.8.4 + version: 4.8.4 + unist-util-flatmap: + specifier: 1.0.0 + version: 1.0.0 + vite: + specifier: 3.2.3 + version: 3.2.3_@types+node@18.11.9 + vitepress: + specifier: 1.0.0-alpha.28 + version: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi + vitepress-plugin-mermaid: + specifier: 2.0.8 + version: 2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe + vitepress-plugin-search: + specifier: 1.0.4-alpha.15 + version: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 + vitest: + specifier: 0.25.1 + version: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu packages/mermaid: - specifiers: - '@applitools/eyes-cypress': 3.27.6 - '@braintree/sanitize-url': ^6.0.0 - '@commitlint/cli': 17.2.0 - '@commitlint/config-conventional': 17.2.0 - '@types/d3': 7.4.0 - '@types/dompurify': 2.4.0 - '@types/eslint': 8.4.10 - '@types/express': 4.17.14 - '@types/jsdom': 20.0.1 - '@types/lodash': 4.14.188 - '@types/micromatch': 4.0.2 - '@types/prettier': 2.7.1 - '@types/stylis': 4.0.2 - '@types/uuid': ^8.3.4 - '@typescript-eslint/eslint-plugin': 5.42.1 - '@typescript-eslint/parser': 5.42.1 - chokidar: 3.5.3 - concurrently: 7.5.0 - coveralls: 3.1.1 - cypress: 10.11.0 - cypress-image-snapshot: 4.0.1 - d3: 7.6.1 - dagre: ^0.8.5 - dagre-d3: ^0.6.4 - dompurify: 2.4.1 - esbuild: 0.15.13 - eslint: 8.27.0 - eslint-config-prettier: 8.5.0 - eslint-plugin-cypress: 2.12.1 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5 - eslint-plugin-jsdoc: 39.6.2 - eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0 - express: 4.18.2 - fast-clone: ^1.5.13 - globby: 13.1.2 - graphlib: ^2.1.8 - husky: 8.0.2 - identity-obj-proxy: 3.0.0 - jison: 0.4.18 - js-base64: 3.7.2 - jsdom: 20.0.2 - khroma: ^2.0.0 - lint-staged: 13.0.3 - lodash: ^4.17.21 - micromatch: ^4.0.5 - moment: 2.29.4 - moment-mini: ^2.24.0 - non-layered-tidy-tree-layout: ^2.0.2 - path-browserify: 1.0.1 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2 - remark: 14.0.2 - rimraf: 3.0.2 - shiki: ^0.11.1 - start-server-and-test: 1.14.0 - stylis: ^4.1.2 - ts-node: 10.9.1 - typedoc: ^0.23.18 - typedoc-plugin-markdown: ^3.13.6 - typescript: 4.8.4 - unist-util-flatmap: 1.0.0 - uuid: ^9.0.0 dependencies: - '@braintree/sanitize-url': 6.0.0 - d3: 7.6.1 - dagre: 0.8.5 - dagre-d3: 0.6.4 - dompurify: 2.4.1 - fast-clone: 1.5.13 - graphlib: 2.1.8 - khroma: 2.0.0 - lodash: 4.17.21 - moment-mini: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.1.2 - uuid: 9.0.0 + '@braintree/sanitize-url': + specifier: ^6.0.0 + version: 6.0.0 + d3: + specifier: 7.6.1 + version: 7.6.1 + dagre: + specifier: ^0.8.5 + version: 0.8.5 + dagre-d3: + specifier: ^0.6.4 + version: 0.6.4 + dompurify: + specifier: 2.4.1 + version: 2.4.1 + fast-clone: + specifier: ^1.5.13 + version: 1.5.13 + graphlib: + specifier: ^2.1.8 + version: 2.1.8 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + moment-mini: + specifier: ^2.24.0 + version: 2.29.4 + non-layered-tidy-tree-layout: + specifier: ^2.0.2 + version: 2.0.2 + stylis: + specifier: ^4.1.2 + version: 4.1.2 + uuid: + specifier: ^9.0.0 + version: 9.0.0 devDependencies: - '@applitools/eyes-cypress': 3.27.6 - '@commitlint/cli': 17.2.0 - '@commitlint/config-conventional': 17.2.0 - '@types/d3': 7.4.0 - '@types/dompurify': 2.4.0 - '@types/eslint': 8.4.10 - '@types/express': 4.17.14 - '@types/jsdom': 20.0.1 - '@types/lodash': 4.14.188 - '@types/micromatch': 4.0.2 - '@types/prettier': 2.7.1 - '@types/stylis': 4.0.2 - '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - chokidar: 3.5.3 - concurrently: 7.5.0 - coveralls: 3.1.1 - cypress: 10.11.0 - cypress-image-snapshot: 4.0.1_qb6t4atfexeiaiscfhsmxcgcni - esbuild: 0.15.13 - eslint: 8.27.0 - eslint-config-prettier: 8.5.0_eslint@8.27.0 - eslint-plugin-cypress: 2.12.1_eslint@8.27.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5_jrpxipm6pabmwsz6c3beohyxm4 - eslint-plugin-jsdoc: 39.6.2_eslint@8.27.0 - eslint-plugin-json: 3.1.0 - eslint-plugin-markdown: 3.0.0_eslint@8.27.0 - express: 4.18.2 - globby: 13.1.2 - husky: 8.0.2 - identity-obj-proxy: 3.0.0 - jison: 0.4.18 - js-base64: 3.7.2 - jsdom: 20.0.2 - lint-staged: 13.0.3 - micromatch: 4.0.5 - moment: 2.29.4 - path-browserify: 1.0.1 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 - remark: 14.0.2 - rimraf: 3.0.2 - shiki: 0.11.1 - start-server-and-test: 1.14.0 - ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - typedoc: 0.23.18_typescript@4.8.4 - typedoc-plugin-markdown: 3.13.6_typedoc@0.23.18 - typescript: 4.8.4 - unist-util-flatmap: 1.0.0 + '@applitools/eyes-cypress': + specifier: 3.27.6 + version: 3.27.6 + '@commitlint/cli': + specifier: 17.2.0 + version: 17.2.0 + '@commitlint/config-conventional': + specifier: 17.2.0 + version: 17.2.0 + '@types/d3': + specifier: 7.4.0 + version: 7.4.0 + '@types/dompurify': + specifier: 2.4.0 + version: 2.4.0 + '@types/eslint': + specifier: 8.4.10 + version: 8.4.10 + '@types/express': + specifier: 4.17.14 + version: 4.17.14 + '@types/jsdom': + specifier: 20.0.1 + version: 20.0.1 + '@types/lodash': + specifier: 4.14.188 + version: 4.14.188 + '@types/micromatch': + specifier: 4.0.2 + version: 4.0.2 + '@types/prettier': + specifier: 2.7.1 + version: 2.7.1 + '@types/stylis': + specifier: 4.0.2 + version: 4.0.2 + '@types/uuid': + specifier: 8.3.4 + version: 8.3.4 + '@typescript-eslint/eslint-plugin': + specifier: 5.42.1 + version: 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': + specifier: 5.42.1 + version: 5.42.1_rmayb2veg2btbq6mbmnyivgasy + chokidar: + specifier: 3.5.3 + version: 3.5.3 + concurrently: + specifier: 7.5.0 + version: 7.5.0 + coveralls: + specifier: 3.1.1 + version: 3.1.1 + eslint: + specifier: 8.27.0 + version: 8.27.0 + eslint-config-prettier: + specifier: 8.5.0 + version: 8.5.0_eslint@8.27.0 + eslint-plugin-cypress: + specifier: 2.12.1 + version: 2.12.1_eslint@8.27.0 + eslint-plugin-html: + specifier: 7.1.0 + version: 7.1.0 + eslint-plugin-jest: + specifier: 27.1.5 + version: 27.1.5_dh5zoy5tprom2j3yddxus2umce + eslint-plugin-jsdoc: + specifier: 39.6.2 + version: 39.6.2_eslint@8.27.0 + eslint-plugin-json: + specifier: 3.1.0 + version: 3.1.0 + eslint-plugin-markdown: + specifier: 3.0.0 + version: 3.0.0_eslint@8.27.0 + express: + specifier: 4.18.2 + version: 4.18.2 + globby: + specifier: 13.1.2 + version: 13.1.2 + identity-obj-proxy: + specifier: 3.0.0 + version: 3.0.0 + jison: + specifier: 0.4.18 + version: 0.4.18 + js-base64: + specifier: 3.7.2 + version: 3.7.2 + jsdom: + specifier: 20.0.2 + version: 20.0.2 + lint-staged: + specifier: 13.0.3 + version: 13.0.3 + micromatch: + specifier: ^4.0.5 + version: 4.0.5 + moment: + specifier: 2.29.4 + version: 2.29.4 + path-browserify: + specifier: 1.0.1 + version: 1.0.1 + prettier: + specifier: 2.7.1 + version: 2.7.1 + prettier-plugin-jsdoc: + specifier: 0.4.2 + version: 0.4.2_prettier@2.7.1 + remark: + specifier: 14.0.2 + version: 14.0.2 + rimraf: + specifier: 3.0.2 + version: 3.0.2 + shiki: + specifier: ^0.11.1 + version: 0.11.1 + start-server-and-test: + specifier: 1.14.0 + version: 1.14.0 + ts-node: + specifier: 10.9.1 + version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 + typedoc: + specifier: 0.23.18 + version: 0.23.18_typescript@4.8.4 + typedoc-plugin-markdown: + specifier: 3.13.6 + version: 3.13.6_typedoc@0.23.18 + typescript: + specifier: 4.8.4 + version: 4.8.4 + unist-util-flatmap: + specifier: 1.0.0 + version: 1.0.0 packages/mermaid-example-diagram: - specifiers: - concurrently: 7.5.0 - rimraf: 3.0.2 devDependencies: - concurrently: 7.5.0 - rimraf: 3.0.2 + concurrently: + specifier: 7.5.0 + version: 7.5.0 + rimraf: + specifier: 3.0.2 + version: 3.0.2 packages/mermaid-mindmap: - specifiers: - '@braintree/sanitize-url': ^6.0.0 - concurrently: 7.5.0 - cytoscape: ^3.23.0 - cytoscape-cose-bilkent: ^4.1.0 - cytoscape-fcose: ^2.1.0 - d3: 7.6.1 - mermaid: workspace:* - non-layered-tidy-tree-layout: ^2.0.2 - rimraf: 3.0.2 dependencies: - '@braintree/sanitize-url': 6.0.0 - cytoscape: 3.23.0 - cytoscape-cose-bilkent: 4.1.0_cytoscape@3.23.0 - cytoscape-fcose: 2.1.0_cytoscape@3.23.0 - d3: 7.6.1 - non-layered-tidy-tree-layout: 2.0.2 + '@braintree/sanitize-url': + specifier: ^6.0.0 + version: 6.0.0 + cytoscape: + specifier: ^3.23.0 + version: 3.23.0 + cytoscape-cose-bilkent: + specifier: ^4.1.0 + version: 4.1.0_cytoscape@3.23.0 + cytoscape-fcose: + specifier: ^2.1.0 + version: 2.1.0_cytoscape@3.23.0 + d3: + specifier: 7.6.1 + version: 7.6.1 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + non-layered-tidy-tree-layout: + specifier: ^2.0.2 + version: 2.0.2 devDependencies: - concurrently: 7.5.0 - mermaid: link:../mermaid - rimraf: 3.0.2 + concurrently: + specifier: 7.5.0 + version: 7.5.0 + mermaid: + specifier: workspace:* + version: link:../mermaid + rimraf: + specifier: 3.0.2 + version: 3.0.2 + + tests/webpack: + dependencies: + '@mermaid-js/mermaid-mindmap': + specifier: workspace:* + version: link:../../packages/mermaid-mindmap + mermaid: + specifier: workspace:* + version: link:../../packages/mermaid + devDependencies: + webpack: + specifier: ^5.74.0 + version: 5.75.0_webpack-cli@4.10.0 + webpack-cli: + specifier: ^4.10.0 + version: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: + specifier: ^4.11.1 + version: 4.11.1_pda42hcaj7d62cr262fr632kue packages: @@ -1110,19 +1219,6 @@ packages: resolution: {integrity: sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==} dev: false - /@braintree/sanitize-url/6.0.2: - resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==} - dev: false - - /@cnakazawa/watch/1.0.4: - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} - hasBin: true - dependencies: - exec-sh: 0.3.6 - minimist: 1.2.6 - dev: true - /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1577,6 +1673,11 @@ packages: - supports-color dev: true + /@discoveryjs/json-ext/0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true + /@docsearch/css/3.3.0: resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} dev: true @@ -1705,18 +1806,6 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console/26.6.2: - resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - chalk: 4.1.2 - jest-message-util: 26.6.2 - jest-util: 26.6.2 - slash: 3.0.0 - dev: true - /@jest/console/29.3.1: resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1729,46 +1818,6 @@ packages: slash: 3.0.0 dev: true - /@jest/core/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/reporters': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 26.6.2 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - jest-watcher: 26.6.2 - micromatch: 4.0.5 - p-each-series: 2.2.0 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/core/29.3.1_ts-node@10.9.1: resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1811,16 +1860,6 @@ packages: - ts-node dev: true - /@jest/environment/26.6.2: - resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - jest-mock: 26.6.2 - dev: true - /@jest/environment/29.3.1: resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1848,18 +1887,6 @@ packages: - supports-color dev: true - /@jest/fake-timers/26.6.2: - resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@sinonjs/fake-timers': 6.0.1 - '@types/node': 18.11.9 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - /@jest/fake-timers/29.3.1: resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1872,15 +1899,6 @@ packages: jest-util: 29.3.1 dev: true - /@jest/globals/26.6.2: - resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/types': 26.6.2 - expect: 26.6.2 - dev: true - /@jest/globals/29.3.1: resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1893,40 +1911,6 @@ packages: - supports-color dev: true - /@jest/reporters/26.6.2: - resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-haste-map: 26.6.2 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 7.1.2 - optionalDependencies: - node-notifier: 8.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/reporters/29.3.1: resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1971,15 +1955,6 @@ packages: '@sinclair/typebox': 0.24.43 dev: true - /@jest/source-map/26.6.2: - resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} - engines: {node: '>= 10.14.2'} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.10 - source-map: 0.6.1 - dev: true - /@jest/source-map/29.2.0: resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1989,16 +1964,6 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/test-result/26.6.2: - resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/types': 26.6.2 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - /@jest/test-result/29.3.1: resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2009,23 +1974,6 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-runner: 26.6.3_ts-node@10.9.1 - jest-runtime: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/test-sequencer/29.3.1: resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2036,29 +1984,6 @@ packages: slash: 3.0.0 dev: true - /@jest/transform/26.6.2: - resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/core': 7.12.3 - '@jest/types': 26.6.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 26.6.2 - jest-regex-util: 26.0.0 - jest-util: 26.6.2 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/transform/29.3.1: resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2082,17 +2007,6 @@ packages: - supports-color dev: true - /@jest/types/26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.9 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - dev: true - /@jest/types/29.3.1: resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2124,6 +2038,13 @@ packages: engines: {node: '>=6.0.0'} dev: true + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.15 + dev: true + /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true @@ -2142,6 +2063,10 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@leichtgewicht/ip-codec/2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + /@microsoft/tsdoc-config/0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: @@ -2217,12 +2142,6 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/6.0.1: - resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: @@ -2298,6 +2217,12 @@ packages: '@types/node': 18.11.9 dev: true + /@types/bonjour/3.5.10: + resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + dependencies: + '@types/node': 18.11.9 + dev: true + /@types/braces/3.0.1: resolution: {integrity: sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==} dev: true @@ -2327,6 +2252,13 @@ packages: '@types/node': 18.11.9 dev: true + /@types/connect-history-api-fallback/1.3.5: + resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + dependencies: + '@types/express-serve-static-core': 4.17.31 + '@types/node': 18.11.9 + dev: true + /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: @@ -2524,6 +2456,13 @@ packages: '@types/trusted-types': 2.0.2 dev: true + /@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + dependencies: + '@types/eslint': 8.4.10 + '@types/estree': 1.0.0 + dev: true + /@types/eslint/8.4.10: resolution: {integrity: sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==} dependencies: @@ -2531,6 +2470,10 @@ packages: '@types/json-schema': 7.0.11 dev: true + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true + /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: true @@ -2576,6 +2519,12 @@ packages: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true + /@types/http-proxy/1.17.9: + resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} + dependencies: + '@types/node': 18.11.9 + dev: true + /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -2674,6 +2623,7 @@ packages: /@types/node/18.11.9: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + dev: true /@types/node/8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} @@ -2705,10 +2655,20 @@ packages: '@types/node': 18.11.9 dev: true + /@types/retry/0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + /@types/semver/7.3.12: resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} dev: true + /@types/serve-index/1.9.1: + resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} + dependencies: + '@types/express': 4.17.14 + dev: true + /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: @@ -2724,6 +2684,12 @@ packages: resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} dev: true + /@types/sockjs/0.3.33: + resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} + dependencies: + '@types/node': 18.11.9 + dev: true + /@types/stack-utils/2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true @@ -2746,19 +2712,20 @@ packages: /@types/uuid/8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + dev: true /@types/web-bluetooth/0.0.16: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} dev: true - /@types/yargs-parser/21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + /@types/ws/8.5.3: + resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + dependencies: + '@types/node': 18.11.9 dev: true - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} - dependencies: - '@types/yargs-parser': 21.0.0 + /@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true /@types/yargs/17.0.13: @@ -3095,6 +3062,152 @@ packages: p-iteration: 1.1.8 dev: true + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + dev: true + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + dev: true + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + dev: true + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + dev: true + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + 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 + dev: true + + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + dev: true + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + 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 + dev: true + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + 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 + dev: true + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + dev: true + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + 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 + dev: true + + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webpack-cli/configtest/1.2.0_pda42hcaj7d62cr262fr632kue: + resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} + peerDependencies: + webpack: 4.x.x || 5.x.x + webpack-cli: 4.x.x + dependencies: + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + dev: true + + /@webpack-cli/info/1.5.0_webpack-cli@4.10.0: + resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} + peerDependencies: + webpack-cli: 4.x.x + dependencies: + envinfo: 7.8.1 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + dev: true + + /@webpack-cli/serve/1.7.0_ud4agclah7rahur6ntojouq57y: + resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} + peerDependencies: + webpack-cli: 4.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + dev: true + + /@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + /@yankeeinlondon/builder-api/0.4.1_dsigm6qpqe3mljd7p5w42sooza: resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} peerDependencies: @@ -3194,6 +3307,14 @@ packages: acorn-walk: 8.2.0 dev: true + /acorn-import-assertions/1.8.0_acorn@8.8.0: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.0 + dev: true + /acorn-jsx/5.3.2_acorn@8.8.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3241,6 +3362,34 @@ packages: indent-string: 4.0.0 dev: true + /ajv-formats/2.1.1_ajv@8.11.0: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + dev: true + + /ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords/5.1.0_ajv@8.11.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.11.0 + fast-deep-equal: 3.1.3 + dev: true + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -3296,6 +3445,12 @@ packages: type-fest: 0.21.3 dev: true + /ansi-html-community/0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + /ansi-regex/2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} @@ -3340,15 +3495,6 @@ packages: engines: {node: '>=12'} dev: true - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -3382,25 +3528,14 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /arr-diff/4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-flatten/1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-union/3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: true - /array-flatten/1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true + /array-flatten/2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true + /array-ify/1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true @@ -3414,11 +3549,6 @@ packages: engines: {node: '>=8'} dev: true - /array-unique/0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true - /arrify/1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -3443,11 +3573,6 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /assign-symbols/1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: true - /ast-types/0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -3473,12 +3598,6 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /atob/2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - dev: true - /aws-sign2/0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true @@ -3495,25 +3614,6 @@ packages: - debug dev: true - /babel-jest/26.6.3_@babel+core@7.12.3: - resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2_@babel+core@7.12.3 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-jest/29.3.1_@babel+core@7.12.3: resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3545,16 +3645,6 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/26.6.2: - resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.19.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.18.2 - dev: true - /babel-plugin-jest-hoist/29.2.0: resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3585,17 +3675,6 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.3 dev: true - /babel-preset-jest/26.6.2_@babel+core@7.12.3: - resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} - engines: {node: '>= 10.14.2'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.12.3 - babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.12.3 - dev: true - /babel-preset-jest/29.2.0_@babel+core@7.12.3: resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3615,23 +3694,14 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /base/0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.0 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: true - /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /batch/0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + /bcrypt-pbkdf/1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: @@ -3679,6 +3749,15 @@ packages: resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} dev: true + /bonjour-service/1.0.14: + resolution: {integrity: sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==} + dependencies: + array-flatten: 2.1.2 + dns-equal: 1.0.0 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -3692,24 +3771,6 @@ packages: balanced-match: 1.0.2 dev: true - /braces/2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - 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.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -3744,6 +3805,17 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001431 + electron-to-chromium: 1.4.284 + node-releases: 2.0.6 + update-browserslist-db: 1.0.10_browserslist@4.21.4 + dev: true + /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -3765,6 +3837,11 @@ packages: ieee754: 1.2.1 dev: true + /bytes/3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + /bytes/3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -3789,21 +3866,6 @@ packages: yargs-parser: 20.2.9 dev: true - /cache-base/1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.0 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: true - /cacheable-lookup/5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -3858,11 +3920,8 @@ packages: engines: {node: '>=10'} dev: true - /capture-exit/2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} - dependencies: - rsvp: 4.8.5 + /caniuse-lite/1.0.30001431: + resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==} dev: true /caseless/0.12.0: @@ -3963,18 +4022,15 @@ packages: fsevents: 2.3.2 dev: true - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} dev: true /ci-info/3.4.0: resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==} dev: true - /cjs-module-lexer/0.6.0: - resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} - dev: true - /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -3986,16 +4042,6 @@ packages: jsonlint: 1.6.0 dev: true - /class-utils/0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: true - /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -4041,14 +4087,6 @@ packages: string-width: 5.1.2 dev: true - /cliui/6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: true - /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -4057,6 +4095,15 @@ packages: wrap-ansi: 7.0.0 dev: true + /clone-deep/4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + /clone-response/1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: @@ -4072,14 +4119,6 @@ packages: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} dev: true - /collection-visit/1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: true - /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -4117,6 +4156,10 @@ packages: delayed-stream: 1.0.0 dev: true + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + /commander/5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -4125,7 +4168,6 @@ packages: /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - dev: false /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} @@ -4164,8 +4206,26 @@ packages: dot-prop: 5.3.0 dev: true - /component-emitter/1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + /compressible/2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression/1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true /concat-map/0.0.1: @@ -4210,6 +4270,11 @@ packages: xdg-basedir: 4.0.0 dev: true + /connect-history-api-fallback/2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + /content-disposition/0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -4271,11 +4336,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /copy-descriptor/0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true - /core-util-is/1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true @@ -4456,10 +4516,6 @@ packages: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true @@ -4492,23 +4548,6 @@ packages: - jest dev: true - /cypress-image-snapshot/4.0.1_qb6t4atfexeiaiscfhsmxcgcni: - resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==} - engines: {node: '>=8'} - peerDependencies: - cypress: ^4.5.0 - dependencies: - chalk: 2.4.2 - cypress: 10.11.0 - fs-extra: 7.0.1 - glob: 7.2.3 - jest-image-snapshot: 4.2.0_jest@26.6.3 - pkg-dir: 3.0.0 - term-img: 4.1.0 - transitivePeerDependencies: - - jest - dev: true - /cypress/10.11.0: resolution: {integrity: sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA==} engines: {node: '>=12.0.0'} @@ -4866,15 +4905,6 @@ packages: engines: {node: '>= 6'} dev: true - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -4976,11 +5006,6 @@ packages: character-entities: 2.0.2 dev: true - /decode-uri-component/0.2.0: - resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} - engines: {node: '>=0.10'} - dev: true - /decompress-response/6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -5008,31 +5033,21 @@ packages: engines: {node: '>=0.10.0'} dev: true - /defer-to-connect/2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: true - - /define-property/0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} + /default-gateway/6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} dependencies: - is-descriptor: 0.1.6 + execa: 5.1.1 dev: true - /define-property/1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.2 + /defer-to-connect/2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} dev: true - /define-property/2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.2 - isobject: 3.0.1 + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} dev: true /degenerator/3.0.2: @@ -5056,6 +5071,11 @@ packages: engines: {node: '>=0.4.0'} dev: true + /depd/1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + /depd/2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5076,9 +5096,8 @@ packages: engines: {node: '>=8'} dev: true - /diff-sequences/26.6.2: - resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} - engines: {node: '>= 10.14.2'} + /detect-node/2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true /diff-sequences/29.3.1: @@ -5103,6 +5122,17 @@ packages: path-type: 4.0.0 dev: true + /dns-equal/1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true + + /dns-packet/5.4.0: + resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -5122,13 +5152,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -5185,16 +5208,15 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + dev: true + /emittery/0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} dev: true - /emittery/0.7.2: - resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} - engines: {node: '>=10'} - dev: true - /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -5214,6 +5236,14 @@ packages: once: 1.4.0 dev: true + /enhanced-resolve/5.10.0: + resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + /enquirer/2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -5231,12 +5261,22 @@ packages: engines: {node: '>=0.12'} dev: true + /envinfo/7.8.1: + resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} + engines: {node: '>=4'} + hasBin: true + dev: true + /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true + /esbuild-android-64/0.15.13: resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} engines: {node: '>=12'} @@ -5533,7 +5573,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.5_jrpxipm6pabmwsz6c3beohyxm4: + /eslint-plugin-jest/27.1.5_dh5zoy5tprom2j3yddxus2umce: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5549,7 +5589,6 @@ packages: '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 - jest: 26.6.3_ts-node@10.9.1 transitivePeerDependencies: - supports-color - typescript @@ -5801,8 +5840,13 @@ packages: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} dev: true - /exec-sh/0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} + /eventemitter3/4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} dev: true /execa/1.0.0: @@ -5875,33 +5919,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expand-brackets/2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /expect/26.6.2: - resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - ansi-styles: 4.3.0 - jest-get-type: 26.3.0 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-regex-util: 26.0.0 - dev: true - /expect/29.3.1: resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5959,34 +5976,10 @@ packages: is-extendable: 0.1.1 dev: true - /extend-shallow/3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: true - /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true - /extglob/2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - 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.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /extract-zip/2.0.1_supports-color@8.1.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -6037,12 +6030,24 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fastest-levenshtein/1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 dev: true + /faye-websocket/0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + /fb-watchman/2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -6074,16 +6079,6 @@ packages: engines: {node: '>= 6'} dev: true - /fill-range/4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: true - /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -6157,11 +6152,6 @@ packages: debug: 4.3.2 dev: true - /for-in/1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: true - /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -6210,13 +6200,6 @@ packages: resolution: {integrity: sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ==} dev: true - /fragment-cache/0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: true - /fresh/0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -6263,6 +6246,10 @@ packages: universalify: 2.0.0 dev: true + /fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: true + /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -6272,6 +6259,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /ftp/0.3.10: @@ -6361,11 +6349,6 @@ packages: - supports-color dev: true - /get-value/2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: true - /getos/3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: @@ -6404,6 +6387,10 @@ packages: is-glob: 4.0.3 dev: true + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -6509,10 +6496,9 @@ packages: strip-bom-string: 1.0.0 dev: true - /growly/1.3.0: - resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + /handle-thing/2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} dev: true - optional: true /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} @@ -6591,37 +6577,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-value/0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: true - - /has-value/1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: true - - /has-values/0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: true - - /has-values/1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: true - /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -6649,11 +6604,13 @@ packages: lru-cache: 6.0.0 dev: true - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} + /hpack.js/2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} dependencies: - whatwg-encoding: 1.0.5 + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.7 + wbuf: 1.7.3 dev: true /html-encoding-sniffer/3.0.0: @@ -6663,6 +6620,10 @@ packages: whatwg-encoding: 2.0.0 dev: true + /html-entities/2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + dev: true + /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -6690,6 +6651,20 @@ packages: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true + /http-deceiver/1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors/1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + /http-errors/2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -6701,6 +6676,10 @@ packages: toidentifier: 1.0.1 dev: true + /http-parser-js/0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + /http-proxy-agent/4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} @@ -6723,6 +6702,36 @@ packages: - supports-color dev: true + /http-proxy-middleware/2.0.6_@types+express@4.17.14: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.14 + '@types/http-proxy': 1.17.9 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy/1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2_debug@4.3.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + /http-response-object/3.0.2: resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} dependencies: @@ -6868,6 +6877,10 @@ packages: wrappy: 1.0.2 dev: true + /inherits/2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true @@ -6886,6 +6899,11 @@ packages: engines: {node: '>=12'} dev: false + /interpret/2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + dev: true + /ip/1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: true @@ -6899,18 +6917,9 @@ packages: engines: {node: '>= 0.10'} dev: true - /is-accessor-descriptor/0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-accessor-descriptor/1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 + /ipaddr.js/2.0.1: + resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} + engines: {node: '>= 10'} dev: true /is-alphabetical/1.0.4: @@ -6935,22 +6944,11 @@ packages: binary-extensions: 2.2.0 dev: true - /is-buffer/1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: true - /is-buffer/2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} dev: true - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: true - /is-ci/3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true @@ -6964,61 +6962,21 @@ packages: has: 1.0.3 dev: true - /is-data-descriptor/0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-data-descriptor/1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: true - /is-decimal/1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} dev: true - /is-descriptor/0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} - dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 - dev: true - - /is-descriptor/1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} - engines: {node: '>=0.10.0'} - dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 - dev: true - /is-docker/2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true dev: true - optional: true /is-extendable/0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} dev: true - /is-extendable/1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: 2.0.4 - dev: true - /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -7058,13 +7016,6 @@ packages: is-path-inside: 3.0.3 dev: true - /is-number/3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -7085,6 +7036,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj/3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -7132,18 +7088,12 @@ packages: engines: {node: '>=10'} dev: true - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - /is-wsl/2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 dev: true - optional: true /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -7157,13 +7107,6 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /isobject/2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - dependencies: - isarray: 1.0.0 - dev: true - /isobject/3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -7178,18 +7121,6 @@ packages: engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.12.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-instrument/5.2.0: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} @@ -7239,15 +7170,6 @@ packages: plist: 3.0.6 dev: true - /jest-changed-files/26.6.2: - resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - execa: 4.1.0 - throat: 5.0.0 - dev: true - /jest-changed-files/29.2.0: resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7283,32 +7205,6 @@ packages: - supports-color dev: true - /jest-cli/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - is-ci: 2.0.0 - jest-config: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-validate: 26.6.2 - prompts: 2.4.2 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-cli/29.3.1_odkjkoia5xunhxkdrka32ib6vi: resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7337,60 +7233,25 @@ packages: - ts-node dev: true - /jest-config/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} - engines: {node: '>= 10.14.2'} + /jest-config/29.3.1_odkjkoia5xunhxkdrka32ib6vi: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: + '@types/node': '*' ts-node: '>=9.0.0' peerDependenciesMeta: + '@types/node': + optional: true ts-node: optional: true dependencies: '@babel/core': 7.12.3 - '@jest/test-sequencer': 26.6.3_ts-node@10.9.1 - '@jest/types': 26.6.2 - babel-jest: 26.6.3_@babel+core@7.12.3 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.9 + babel-jest: 29.3.1_@babel+core@7.12.3 chalk: 4.1.2 - deepmerge: 4.2.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-environment-jsdom: 26.6.2 - jest-environment-node: 26.6.2 - jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3_ts-node@10.9.1 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - micromatch: 4.0.5 - pretty-format: 26.6.2 - ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-config/29.3.1_odkjkoia5xunhxkdrka32ib6vi: - resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.12.3 - '@jest/test-sequencer': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.9 - babel-jest: 29.3.1_@babel+core@7.12.3 - chalk: 4.1.2 - ci-info: 3.4.0 + ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -7412,16 +7273,6 @@ packages: - supports-color dev: true - /jest-diff/26.6.2: - resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - diff-sequences: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-diff/29.3.1: resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7432,13 +7283,6 @@ packages: pretty-format: 29.3.1 dev: true - /jest-docblock/26.0.0: - resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} - engines: {node: '>= 10.14.2'} - dependencies: - detect-newline: 3.1.0 - dev: true - /jest-docblock/29.2.0: resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7446,17 +7290,6 @@ packages: detect-newline: 3.1.0 dev: true - /jest-each/26.6.2: - resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - jest-get-type: 26.3.0 - jest-util: 26.6.2 - pretty-format: 26.6.2 - dev: true - /jest-each/29.3.1: resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7468,36 +7301,6 @@ packages: pretty-format: 29.3.1 dev: true - /jest-environment-jsdom/26.6.2: - resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - jest-mock: 26.6.2 - jest-util: 26.6.2 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/26.6.2: - resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - jest-mock: 26.6.2 - jest-util: 26.6.2 - dev: true - /jest-environment-node/29.3.1: resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7510,39 +7313,11 @@ packages: jest-util: 29.3.1 dev: true - /jest-get-type/26.3.0: - resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-get-type/29.2.0: resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map/26.6.2: - resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.9 - anymatch: 3.1.2 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 26.0.0 - jest-serializer: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - micromatch: 4.0.5 - sane: 4.1.0 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-haste-map/29.3.1: resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7562,24 +7337,6 @@ packages: fsevents: 2.3.2 dev: true - /jest-image-snapshot/4.2.0_jest@26.6.3: - resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} - engines: {node: '>= 10.14.2'} - peerDependencies: - jest: '>=20 <=26' - dependencies: - chalk: 1.1.3 - get-stdin: 5.0.1 - glur: 1.1.2 - jest: 26.6.3_ts-node@10.9.1 - lodash: 4.17.21 - mkdirp: 0.5.6 - pixelmatch: 5.3.0 - pngjs: 3.4.0 - rimraf: 2.7.1 - ssim.js: 3.5.0 - dev: true - /jest-image-snapshot/4.2.0_jest@29.3.1: resolution: {integrity: sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==} engines: {node: '>= 10.14.2'} @@ -7598,44 +7355,6 @@ packages: ssim.js: 3.5.0 dev: true - /jest-jasmine2/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/traverse': 7.19.1 - '@jest/environment': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - chalk: 4.1.2 - co: 4.6.0 - expect: 26.6.2 - is-generator-fn: 2.1.0 - jest-each: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - pretty-format: 26.6.2 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-leak-detector/26.6.2: - resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} - engines: {node: '>= 10.14.2'} - dependencies: - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-leak-detector/29.3.1: resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7644,16 +7363,6 @@ packages: pretty-format: 29.3.1 dev: true - /jest-matcher-utils/26.6.2: - resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.2 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - /jest-matcher-utils/29.3.1: resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7664,21 +7373,6 @@ packages: pretty-format: 29.3.1 dev: true - /jest-message-util/26.6.2: - resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 26.6.2 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 26.6.2 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util/29.3.1: resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7694,14 +7388,6 @@ packages: stack-utils: 2.0.5 dev: true - /jest-mock/26.6.2: - resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - dev: true - /jest-mock/29.3.1: resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7711,18 +7397,6 @@ packages: jest-util: 29.3.1 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 26.6.2 - dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} @@ -7735,27 +7409,11 @@ packages: jest-resolve: 29.3.1 dev: true - /jest-regex-util/26.0.0: - resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} - engines: {node: '>= 10.14.2'} - dev: true - /jest-regex-util/29.2.0: resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies/26.6.3: - resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - jest-regex-util: 26.0.0 - jest-snapshot: 26.6.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-resolve-dependencies/29.3.1: resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7766,20 +7424,6 @@ packages: - supports-color dev: true - /jest-resolve/26.6.2: - resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 - jest-util: 26.6.2 - read-pkg-up: 7.0.1 - resolve: 1.22.1 - slash: 3.0.0 - dev: true - /jest-resolve/29.3.1: resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7795,38 +7439,6 @@ packages: slash: 3.0.0 dev: true - /jest-runner/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - chalk: 4.1.2 - emittery: 0.7.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-docblock: 26.0.0 - jest-haste-map: 26.6.2 - jest-leak-detector: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - jest-runtime: 26.6.3_ts-node@10.9.1 - jest-util: 26.6.2 - jest-worker: 26.6.2 - source-map-support: 0.5.13 - throat: 5.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-runner/29.3.1: resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7856,46 +7468,6 @@ packages: - supports-color dev: true - /jest-runtime/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/console': 26.6.2 - '@jest/environment': 26.6.2 - '@jest/fake-timers': 26.6.2 - '@jest/globals': 26.6.2 - '@jest/source-map': 26.6.2 - '@jest/test-result': 26.6.2 - '@jest/transform': 26.6.2 - '@jest/types': 26.6.2 - '@types/yargs': 15.0.14 - chalk: 4.1.2 - cjs-module-lexer: 0.6.0 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-config: 26.6.3_ts-node@10.9.1 - jest-haste-map: 26.6.2 - jest-message-util: 26.6.2 - jest-mock: 26.6.2 - jest-regex-util: 26.0.0 - jest-resolve: 26.6.2 - jest-snapshot: 26.6.2 - jest-util: 26.6.2 - jest-validate: 26.6.2 - slash: 3.0.0 - strip-bom: 4.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest-runtime/29.3.1: resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7926,38 +7498,6 @@ packages: - supports-color dev: true - /jest-serializer/26.6.2: - resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/node': 18.11.9 - graceful-fs: 4.2.10 - dev: true - - /jest-snapshot/26.6.2: - resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} - engines: {node: '>= 10.14.2'} - dependencies: - '@babel/types': 7.19.0 - '@jest/types': 26.6.2 - '@types/babel__traverse': 7.18.2 - '@types/prettier': 2.7.1 - chalk: 4.1.2 - expect: 26.6.2 - graceful-fs: 4.2.10 - jest-diff: 26.6.2 - jest-get-type: 26.3.0 - jest-haste-map: 26.6.2 - jest-matcher-utils: 26.6.2 - jest-message-util: 26.6.2 - jest-resolve: 26.6.2 - natural-compare: 1.4.0 - pretty-format: 26.6.2 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - dev: true - /jest-snapshot/29.3.1: resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7990,18 +7530,6 @@ packages: - supports-color dev: true - /jest-util/26.6.2: - resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - chalk: 4.1.2 - graceful-fs: 4.2.10 - is-ci: 2.0.0 - micromatch: 4.0.5 - dev: true - /jest-util/29.3.1: resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8014,18 +7542,6 @@ packages: picomatch: 2.3.1 dev: true - /jest-validate/26.6.2: - resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/types': 26.6.2 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 26.3.0 - leven: 3.1.0 - pretty-format: 26.6.2 - dev: true - /jest-validate/29.3.1: resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8038,19 +7554,6 @@ packages: pretty-format: 29.3.1 dev: true - /jest-watcher/26.6.2: - resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@jest/test-result': 26.6.2 - '@jest/types': 26.6.2 - '@types/node': 18.11.9 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 26.6.2 - string-length: 4.0.2 - dev: true - /jest-watcher/29.3.1: resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8065,13 +7568,13 @@ packages: string-length: 4.0.2 dev: true - /jest-worker/26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + /jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: '@types/node': 18.11.9 merge-stream: 2.0.0 - supports-color: 7.2.0 + supports-color: 8.1.1 dev: true /jest-worker/29.3.1: @@ -8084,22 +7587,6 @@ packages: supports-color: 8.1.1 dev: true - /jest/26.6.3_ts-node@10.9.1: - resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} - engines: {node: '>= 10.14.2'} - hasBin: true - dependencies: - '@jest/core': 26.6.3_ts-node@10.9.1 - import-local: 3.1.0 - jest-cli: 26.6.3_ts-node@10.9.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /jest/29.3.1_odkjkoia5xunhxkdrka32ib6vi: resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8198,48 +7685,6 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.4.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.4.6 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsdom/20.0.2: resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} engines: {node: '>=14'} @@ -8383,25 +7828,6 @@ packages: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} dev: false - /kind-of/3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of/4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of/5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true - /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -8542,6 +7968,11 @@ packages: wrap-ansi: 7.0.0 dev: true + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} @@ -8667,11 +8098,6 @@ packages: tmpl: 1.0.5 dev: true - /map-cache/0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: true - /map-obj/1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -8686,13 +8112,6 @@ packages: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: true - /map-visit/1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: true - /markdown-it/13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} hasBin: true @@ -8774,6 +8193,13 @@ packages: engines: {node: '>= 0.6'} dev: true + /memfs/3.4.11: + resolution: {integrity: sha512-GvsCITGAyDCxxsJ+X6prJexFQEhOCJaIlUbsAvjzSI5o5O7j2dle3jWvz5Z5aOdpOxW6ol3vI1+0ut+641F1+w==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: true + /meow/8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -8994,27 +8420,6 @@ packages: - supports-color dev: true - /micromatch/3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -9066,6 +8471,10 @@ packages: engines: {node: '>=4'} dev: true + /minimalistic-assert/1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -9092,14 +8501,6 @@ packages: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true - /mixin-deep/1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: true - /mkdirp/0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -9137,31 +8538,20 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true + /multicast-dns/7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.4.0 + thunky: 1.1.0 + dev: true + /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true - /nanomatch/1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - 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.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /native-dash/1.23.2_iyb77cyw3lw7duusvxyjdsflhu: resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} dependencies: @@ -9220,22 +8610,18 @@ packages: whatwg-url: 5.0.0 dev: true + /node-forge/1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + /node-int64/0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-notifier/8.0.2: - resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} - requiresBuild: true - dependencies: - growly: 1.3.0 - is-wsl: 2.2.0 - semver: 7.3.8 - shellwords: 0.1.1 - uuid: 8.3.2 - which: 2.0.2 + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true - optional: true /nomnom/1.5.2: resolution: {integrity: sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==} @@ -9268,13 +8654,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-path/2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: true - /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -9314,31 +8693,12 @@ packages: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true - /object-copy/0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: true - /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true - /object-visit/1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /object.pick/1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 + /obuf/1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true /on-finished/2.4.1: @@ -9348,6 +8708,11 @@ packages: ee-first: 1.1.1 dev: true + /on-headers/1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -9368,6 +8733,15 @@ packages: mimic-fn: 4.0.0 dev: true + /open/8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + /optionator/0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -9401,11 +8775,6 @@ packages: engines: {node: '>=8'} dev: true - /p-each-series/2.2.0: - resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} - engines: {node: '>=8'} - dev: true - /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -9458,6 +8827,14 @@ packages: aggregate-error: 3.1.0 dev: true + /p-retry/4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9547,11 +8924,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /pascalcase/0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true - /path-browserify/1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true @@ -9691,11 +9063,6 @@ packages: hasBin: true dev: true - /posix-character-classes/0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: true - /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true @@ -9748,16 +9115,6 @@ packages: engines: {node: '>=6'} dev: true - /pretty-format/26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: true - /pretty-format/29.3.1: resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9876,6 +9233,12 @@ packages: engines: {node: '>=10'} dev: true + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /range-parser/1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -9891,10 +9254,6 @@ packages: unpipe: 1.0.0 dev: true - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -9955,6 +9314,13 @@ packages: picomatch: 2.3.1 dev: true + /rechoir/0.7.1: + resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.1 + dev: true + /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -9963,14 +9329,6 @@ packages: strip-indent: 3.0.0 dev: true - /regex-not/1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: true - /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -10005,15 +9363,6 @@ packages: - supports-color dev: true - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: true - - /repeat-element/1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: true - /repeat-string/1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} @@ -10062,10 +9411,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-main-filename/2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true - /requires-port/1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true @@ -10098,11 +9443,6 @@ packages: global-dirs: 0.1.1 dev: true - /resolve-url/0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true - /resolve.exports/1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} engines: {node: '>=10'} @@ -10138,9 +9478,9 @@ packages: signal-exit: 3.0.7 dev: true - /ret/0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} + /retry/0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} dev: true /reusify/1.0.4: @@ -10176,10 +9516,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - - /rsvp/4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} dev: true /run-parallel/1.2.0: @@ -10213,34 +9549,9 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex/1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: true - /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sane/4.1.0: - resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} - engines: {node: 6.* || 8.* || >= 10.*} - deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added - hasBin: true - dependencies: - '@cnakazawa/watch': 1.0.4 - anymatch: 2.0.0 - capture-exit: 2.0.0 - exec-sh: 0.3.6 - execa: 1.0.0 - fb-watchman: 2.0.2 - micromatch: 3.1.10 - minimist: 1.2.6 - walker: 1.0.8 - transitivePeerDependencies: - - supports-color - dev: true - /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -10255,6 +9566,25 @@ packages: xmlchars: 2.2.0 dev: true + /schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: true + + /schema-utils/4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.11.0 + ajv-formats: 2.1.1_ajv@8.11.0 + ajv-keywords: 5.1.0_ajv@8.11.0 + dev: true + /section-matter/1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -10263,6 +9593,17 @@ packages: kind-of: 6.0.3 dev: true + /select-hose/2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selfsigned/2.1.1: + resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} + engines: {node: '>=10'} + dependencies: + node-forge: 1.3.1 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -10310,6 +9651,27 @@ packages: - supports-color dev: true + /serialize-javascript/6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-index/1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /serve-static/1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -10322,24 +9684,21 @@ packages: - supports-color dev: true - /set-blocking/2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true - - /set-value/2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 + /setprototypeof/1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} dev: true /setprototypeof/1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true + /shallow-clone/3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: true + /shebang-command/1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -10368,11 +9727,6 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true - /shellwords/0.1.1: - resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} - dev: true - optional: true - /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: @@ -10447,36 +9801,12 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: true - /snapdragon-node/2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: true - - /snapdragon-util/3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /snapdragon/0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} + /sockjs/0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 dev: true /socks-proxy-agent/5.0.1: @@ -10503,17 +9833,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map-resolve/0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.0 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: true - /source-map-support/0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: @@ -10521,9 +9840,11 @@ packages: source-map: 0.6.1 dev: true - /source-map-url/0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 dev: true /source-map/0.1.43: @@ -10545,11 +9866,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: true - /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true @@ -10580,11 +9896,30 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true - /split-string/3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} + /spdy-transport/3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.0 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy/4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} dependencies: - extend-shallow: 3.0.2 + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color dev: true /split/0.3.3: @@ -10646,12 +9981,9 @@ packages: - supports-color dev: true - /static-extend/0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 + /statuses/1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} dev: true /statuses/2.0.1: @@ -10780,10 +10112,6 @@ packages: resolution: {integrity: sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==} dev: false - /stylis/4.1.3: - resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} - dev: false - /supports-color/2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -10810,14 +10138,6 @@ packages: has-flag: 4.0.0 dev: true - /supports-hyperlinks/2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -10842,6 +10162,11 @@ packages: get-port: 3.2.0 dev: true + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -10850,12 +10175,39 @@ packages: iterm2-version: 4.2.0 dev: true - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} + /terser-webpack-plugin/5.3.6_webpack@5.75.0: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 + '@jridgewell/trace-mapping': 0.3.15 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.15.1 + webpack: 5.75.0_webpack-cli@4.10.0 + dev: true + + /terser/5.15.1: + resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.0 + commander: 2.20.3 + source-map-support: 0.5.21 dev: true /test-exclude/6.0.0: @@ -10893,10 +10245,6 @@ packages: qs: 6.11.0 dev: true - /throat/5.0.0: - resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} - dev: true - /throat/6.0.1: resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} dev: true @@ -10915,6 +10263,10 @@ packages: readable-stream: 3.6.0 dev: true + /thunky/1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + /tinybench/2.3.1: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true @@ -10950,21 +10302,6 @@ packages: engines: {node: '>=4'} dev: true - /to-object-path/0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /to-regex-range/2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: true - /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -10972,16 +10309,6 @@ packages: is-number: 7.0.0 dev: true - /to-regex/3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: true - /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -11014,13 +10341,6 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -11251,16 +10571,6 @@ packages: vfile: 5.3.5 dev: true - /union-value/1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: true - /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -11323,30 +10633,28 @@ packages: engines: {node: '>= 0.8'} dev: true - /unset-value/1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: true - /untildify/4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.4 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 dev: true - /urix/0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true - /url-parse/1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: @@ -11354,11 +10662,6 @@ packages: requires-port: 1.0.0 dev: true - /use/3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true - /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -11399,15 +10702,6 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul/7.1.2: - resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} - engines: {node: '>=10.10.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - source-map: 0.7.4 - dev: true - /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} @@ -11744,13 +11038,6 @@ packages: browser-process-hrtime: 1.0.0 dev: true - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - /w3c-xmlserializer/3.0.0: resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} engines: {node: '>=12'} @@ -11778,6 +11065,20 @@ packages: makeerror: 1.0.12 dev: true + /watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + dev: true + + /wbuf/1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + /webdriver/7.16.11: resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} engines: {node: '>=12.0.0'} @@ -11797,25 +11098,176 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} + /webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} dev: true - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} + /webpack-cli/4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi: + resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + '@webpack-cli/migrate': '*' + webpack: 4.x.x || 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + '@webpack-cli/migrate': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 1.2.0_pda42hcaj7d62cr262fr632kue + '@webpack-cli/info': 1.5.0_webpack-cli@4.10.0 + '@webpack-cli/serve': 1.7.0_ud4agclah7rahur6ntojouq57y + colorette: 2.0.19 + commander: 7.2.0 + cross-spawn: 7.0.3 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 2.2.0 + rechoir: 0.7.1 + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + webpack-merge: 5.8.0 dev: true - /webidl-conversions/7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + /webpack-dev-middleware/5.3.3_webpack@5.75.0: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.11 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.75.0_webpack-cli@4.10.0 dev: true - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + /webpack-dev-server/4.11.1_pda42hcaj7d62cr262fr632kue: + resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: - iconv-lite: 0.4.24 + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.14 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.0 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.3 + ansi-html-community: 0.0.8 + bonjour-service: 1.0.14 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.14 + ipaddr.js: 2.0.1 + open: 8.4.0 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-middleware: 5.3.3_webpack@5.75.0 + ws: 8.9.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-merge/5.8.0: + resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + wildcard: 2.0.0 + dev: true + + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack/5.75.0_webpack-cli@4.10.0: + resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.0 + acorn-import-assertions: 1.8.0_acorn@8.8.0 + browserslist: 4.21.4 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.10.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_webpack@5.75.0 + watchpack: 2.4.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /websocket-driver/0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions/0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} dev: true /whatwg-encoding/2.0.0: @@ -11825,10 +11277,6 @@ packages: iconv-lite: 0.6.3 dev: true - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -11857,19 +11305,6 @@ packages: webidl-conversions: 3.0.1 dev: true - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - - /which-module/2.0.0: - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: true - /which/1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -11885,6 +11320,10 @@ packages: isexe: 2.0.0 dev: true + /wildcard/2.0.0: + resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} + dev: true + /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} @@ -11977,10 +11416,6 @@ packages: engines: {node: '>=8'} dev: true - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} @@ -11999,10 +11434,6 @@ packages: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: true - /y18n/4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true - /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -12026,14 +11457,6 @@ packages: engines: {node: '>= 14'} dev: true - /yargs-parser/18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: true - /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -12044,23 +11467,6 @@ packages: engines: {node: '>=12'} dev: true - /yargs/15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.0 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: true - /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 066db53472..4b8be5cdc9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,4 @@ packages: # all packages in direct subdirs of packages/ - 'packages/*' - # - 'tests/*' + - 'tests/*' diff --git a/packages/mermaid/src/jison/lint.mts b/scripts/jison/lint.mts similarity index 86% rename from packages/mermaid/src/jison/lint.mts rename to scripts/jison/lint.mts index 6e17851f70..e834a8e4ff 100644 --- a/packages/mermaid/src/jison/lint.mts +++ b/scripts/jison/lint.mts @@ -11,6 +11,7 @@ const linter = new ESLint({ }); const lint = async (file: string): Promise => { + console.log(`Linting ${file}`); const jisonCode = await readFile(file, 'utf8'); // @ts-ignore no typings const jsCode = new jison.Generator(jisonCode, { moduleType: 'amd' }).generate(); @@ -23,7 +24,9 @@ const lint = async (file: string): Promise => { }; (async () => { - const jisonFiles = await globby(['./src/**/*.jison'], { dot: true }); + const jisonFiles = await globby(['./packages/**/*.jison', '!./**/node_modules/**'], { + dot: true, + }); const lintResults = await Promise.all(jisonFiles.map(lint)); if (lintResults.some((result) => result === false)) { process.exit(1); From 9144fa390f23c0073a0de21bbdfd6a5db49a893e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 15:05:58 +0530 Subject: [PATCH 0616/1038] cleanup --- .gitignore | 1 - package.json | 1 - packages/mermaid/src/docs/intro/n00b-gettingStarted.md | 4 ++-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index a888160fae..8cc09354bf 100644 --- a/.gitignore +++ b/.gitignore @@ -32,7 +32,6 @@ cypress/snapshots/ .eslintcache .tsbuildinfo tsconfig.tsbuildinfo -knsv*.html knsv*.html local*.html diff --git a/package.json b/package.json index d1506854bc..06f8e0c24d 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "test:coverage": "vitest --coverage", "prepublishOnly": "pnpm build && pnpm test", "prepare": "concurrently \"husky install\" \"pnpm build\"", - "postinstall": "./scripts/fixPnpmLock.sh", "pre-commit": "lint-staged" }, "repository": { diff --git a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md index 8c49d399ff..0516738755 100644 --- a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md +++ b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md @@ -111,7 +111,7 @@ b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm ```html @@ -151,7 +151,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac From 4decaf030816fc255c9875f8dd2da82f5fcdacb8 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 15:17:13 +0530 Subject: [PATCH 0617/1038] chore: Fix tsdoc --- packages/mermaid/src/mermaid.ts | 52 +++++------------------------- packages/mermaid/src/mermaidAPI.ts | 5 ++- 2 files changed, 10 insertions(+), 47 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index e055bf3bc0..993f2f9443 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -217,7 +217,7 @@ const loadExternalDiagrams = async (diagrams: ExternalDiagramDefinition[]) => { }; /** - * Equivalent to {@link init()}, except an error will be thrown on error. + * Equivalent to {@link init}, except an error will be thrown on error. * * @alpha * @deprecated This is an internal function and will very likely be modified in v10, or earlier. @@ -306,7 +306,9 @@ const initThrowsErrorsAsync = async function ( if (typeof callback !== 'undefined') { callback(id); } - if (bindFunctions) bindFunctions(element); + if (bindFunctions) { + bindFunctions(element); + } }, element ); @@ -327,8 +329,7 @@ const initialize = function (config: MermaidConfig) { /** * Used to register external diagram types. * @param diagrams - Array of {@link ExternalDiagramDefinition}. - * @param opts - * @param opts.lazyLoad - If true, the diagram will be loaded on demand. + * @param opts - If opts.lazyLoad is true, the diagram will be loaded on demand. */ const registerExternalDiagrams = async ( diagrams: ExternalDiagramDefinition[], @@ -379,7 +380,7 @@ if (typeof document !== 'undefined') { * This is provided for environments where the mermaid object can't directly have a new member added * to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid). * - * @param newParseErrorHandler New parseError() callback. + * @param newParseErrorHandler - New parseError() callback. */ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: any) => void) { mermaid.parseError = newParseErrorHandler; @@ -410,7 +411,7 @@ const executeQueue = async () => { }; /** - * @param txt + * @param txt - The mermaid code to be parsed. * @deprecated This is an internal function and should not be used. Will be removed in v10. */ const parseAsync = (txt: string): Promise => { @@ -438,44 +439,7 @@ const parseAsync = (txt: string): Promise => { }); }; -// const asynco = (id: string, delay: number) => -// new Promise((res) => { -// setTimeout(() => { -// // This resolves for the promise for the queue handling -// res(id); -// }, delay); -// }); - /** - * @param txt - * @param id - * @param delay - * @deprecated This is an internal function and should not be used. Will be removed in v10. - */ -// const test1 = (id: string, delay: number) => { -// const p = new Promise((resolve, reject) => { -// // This promise will resolve when the mermaidAPI.render call is done. -// // It will be queued first and will be executed when it is first in line -// const performCall = () => -// new Promise((res) => { -// asynco(id, delay).then((r) => { -// // This resolves for the promise for the queue handling -// res(r); -// // This fullfills the promise sent to the value back to the original caller -// resolve(r + ' result to caller'); -// }); -// }); -// executionQueue.push(performCall); -// }); -// return p; -// }; - -/** - * @param txt - * @param id - * @param text - * @param cb - * @param container * @deprecated This is an internal function and should not be used. Will be removed in v10. */ const renderAsync = ( @@ -493,7 +457,7 @@ const renderAsync = ( (r) => { // This resolves for the promise for the queue handling res(r); - // This fullfills the promise sent to the value back to the original caller + // This fulfills the promise sent to the value back to the original caller resolve(r); }, (e) => { diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 77365bc3ed..d87faf9bd4 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -83,9 +83,8 @@ function parse(text: string, parseError?: ParseErrorFunction): boolean { } /** - * - * @param text - * @param parseError + * @param text - The mermaid diagram definition. + * @param parseError - If set, handles errors. */ async function parseAsync(text: string, parseError?: ParseErrorFunction): Promise { addDiagrams(); From 051b4271d3d630cd6a373448d039ea7550dfc3a9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 15:24:47 +0530 Subject: [PATCH 0618/1038] Cleanup docs --- packages/mermaid-example-diagram/src/styles.js | 2 -- packages/mermaid-mindmap/src/mindmapRenderer.js | 11 ++--------- packages/mermaid-mindmap/src/svgDraw.js | 1 - packages/mermaid/package.json | 2 +- packages/mermaid/src/tests/util.ts | 2 +- 5 files changed, 4 insertions(+), 14 deletions(-) diff --git a/packages/mermaid-example-diagram/src/styles.js b/packages/mermaid-example-diagram/src/styles.js index 9ebb77ee50..02dc4db4ea 100644 --- a/packages/mermaid-example-diagram/src/styles.js +++ b/packages/mermaid-example-diagram/src/styles.js @@ -1,5 +1,3 @@ -import { darken, lighten, isDark } from 'khroma'; - const genSections = (options) => { let sections = ''; diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index bc45164b34..c0760e4ac0 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -25,11 +25,6 @@ function drawNodes(svg, mindmap, section, conf) { } /** - * @param edgesElem - * @param mindmap - * @param parent - * @param depth - * @param section * @param edgesEl * @param cy */ @@ -51,11 +46,9 @@ function drawEdges(edgesEl, cy) { } /** - * @param {any} svg The svg element to draw the diagram onto - * @param {object} mindmap The mindmap data and hierarchy - * @param section + * @param mindmap The mindmap data and hierarchy * @param cy - * @param {object} conf The configuration object + * @param conf The configuration object * @param level */ function addNodes(mindmap, cy, conf, level) { diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid-mindmap/src/svgDraw.js index 1246b1cb91..314503b206 100644 --- a/packages/mermaid-mindmap/src/svgDraw.js +++ b/packages/mermaid-mindmap/src/svgDraw.js @@ -159,7 +159,6 @@ const roundedRectBkg = function (elem, node) { /** * @param {object} elem The D3 dom element in which the node is to be added * @param {object} node The node to be added - * @param section * @param fullSection * @param {object} conf The configuration object * @returns {number} The height nodes dom element diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 283ecefcf0..c03b5bdae1 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -126,4 +126,4 @@ "**/*.css", "**/*.scss" ] -} \ No newline at end of file +} diff --git a/packages/mermaid/src/tests/util.ts b/packages/mermaid/src/tests/util.ts index 76f8572e3d..042f2cb432 100644 --- a/packages/mermaid/src/tests/util.ts +++ b/packages/mermaid/src/tests/util.ts @@ -26,7 +26,7 @@ ${'2w'} | ${moment.duration(2, 'w')} ``` */ -export const convert = (template: TemplateStringsArray, ...params: any[]) => { +export const convert = (template: TemplateStringsArray, ...params: unknown[]) => { const header = template[0] .trim() .split('|') From eae88c51d2c62bce6b51a18dbcc4b58e6b28e021 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 16:42:08 +0530 Subject: [PATCH 0619/1038] Cleanup --- docs/config/setup/modules/mermaidAPI.md | 20 +++--- package.json | 7 -- packages/mermaid/.lintstagedrc.json | 1 + packages/mermaid/package.json | 17 ----- pnpm-lock.yaml | 93 ------------------------- 5 files changed, 11 insertions(+), 127 deletions(-) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index eb5accdff9..0acfe4f979 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -80,7 +80,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:950](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L950) +[mermaidAPI.ts:949](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L949) ## Functions @@ -111,7 +111,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:293](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L293) +[mermaidAPI.ts:292](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L292) --- @@ -137,7 +137,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:244](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L244) +[mermaidAPI.ts:243](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L243) --- @@ -163,7 +163,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:171](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L171) +[mermaidAPI.ts:170](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L170) --- @@ -186,7 +186,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:221](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L221) +[mermaidAPI.ts:220](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L220) --- @@ -213,7 +213,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:155](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L155) +[mermaidAPI.ts:154](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L154) --- @@ -233,7 +233,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:129](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L129) +[mermaidAPI.ts:128](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L128) --- @@ -253,7 +253,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:100](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L100) +[mermaidAPI.ts:99](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L99) --- @@ -279,7 +279,7 @@ Put the svgCode into an iFrame. Return the iFrame code #### Defined in -[mermaidAPI.ts:272](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L272) +[mermaidAPI.ts:271](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L271) --- @@ -305,4 +305,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:344](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L344) +[mermaidAPI.ts:343](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L343) diff --git a/package.json b/package.json index 06f8e0c24d..c23f632dfb 100644 --- a/package.json +++ b/package.json @@ -57,8 +57,6 @@ "@commitlint/cli": "17.2.0", "@commitlint/config-conventional": "17.2.0", "@cspell/eslint-plugin": "6.14.2", - "@types/d3": "7.4.0", - "@types/dompurify": "2.4.0", "@types/eslint": "8.4.10", "@types/express": "4.17.14", "@types/jsdom": "20.0.1", @@ -66,8 +64,6 @@ "@types/mdast": "3.0.10", "@types/node": "^18.11.9", "@types/prettier": "2.7.1", - "@types/stylis": "4.0.2", - "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "5.42.1", "@typescript-eslint/parser": "5.42.1", "@vitest/coverage-c8": "0.25.1", @@ -95,17 +91,14 @@ "jison": "0.4.18", "jsdom": "20.0.2", "lint-staged": "13.0.3", - "markdown-it": "13.0.1", "path-browserify": "1.0.1", "pnpm": "7.15.0", "prettier": "2.7.1", "prettier-plugin-jsdoc": "0.4.2", - "remark": "14.0.2", "rimraf": "3.0.2", "start-server-and-test": "1.14.0", "ts-node": "10.9.1", "typescript": "4.8.4", - "unist-util-flatmap": "1.0.0", "vite": "3.2.3", "vitepress": "1.0.0-alpha.28", "vitepress-plugin-mermaid": "2.0.8", diff --git a/packages/mermaid/.lintstagedrc.json b/packages/mermaid/.lintstagedrc.json index 6f3d6d235f..c3cbb926bd 100644 --- a/packages/mermaid/.lintstagedrc.json +++ b/packages/mermaid/.lintstagedrc.json @@ -1,5 +1,6 @@ { "src/docs/**": ["pnpm --filter mermaid run docs:build --git"], "src/docs.mts": ["pnpm --filter mermaid run docs:build --git"], + "src/(defaultConfig|config|mermaidAPI).ts": ["pnpm --filter mermaid run docs:build --git"], "*.jison": ["pnpm run lint:jison"] } diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index c03b5bdae1..648c114e78 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -67,13 +67,8 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@applitools/eyes-cypress": "3.27.6", - "@commitlint/cli": "17.2.0", - "@commitlint/config-conventional": "17.2.0", "@types/d3": "7.4.0", "@types/dompurify": "2.4.0", - "@types/eslint": "8.4.10", - "@types/express": "4.17.14", "@types/jsdom": "20.0.1", "@types/lodash": "4.14.188", "@types/micromatch": "4.0.2", @@ -85,31 +80,19 @@ "chokidar": "3.5.3", "concurrently": "7.5.0", "coveralls": "3.1.1", - "eslint": "8.27.0", - "eslint-config-prettier": "8.5.0", - "eslint-plugin-cypress": "2.12.1", - "eslint-plugin-html": "7.1.0", - "eslint-plugin-jest": "27.1.5", - "eslint-plugin-jsdoc": "39.6.2", - "eslint-plugin-json": "3.1.0", - "eslint-plugin-markdown": "3.0.0", - "express": "4.18.2", "globby": "13.1.2", "identity-obj-proxy": "3.0.0", "jison": "0.4.18", "js-base64": "3.7.2", "jsdom": "20.0.2", - "lint-staged": "13.0.3", "micromatch": "^4.0.5", "moment": "2.29.4", "path-browserify": "1.0.1", "prettier": "2.7.1", - "prettier-plugin-jsdoc": "0.4.2", "remark": "14.0.2", "rimraf": "3.0.2", "shiki": "^0.11.1", "start-server-and-test": "1.14.0", - "ts-node": "10.9.1", "typedoc": "0.23.18", "typedoc-plugin-markdown": "3.13.6", "typescript": "4.8.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fbef7c8c7..e5b7f57791 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,12 +19,6 @@ importers: '@cspell/eslint-plugin': specifier: 6.14.2 version: 6.14.2 - '@types/d3': - specifier: 7.4.0 - version: 7.4.0 - '@types/dompurify': - specifier: 2.4.0 - version: 2.4.0 '@types/eslint': specifier: 8.4.10 version: 8.4.10 @@ -46,12 +40,6 @@ importers: '@types/prettier': specifier: 2.7.1 version: 2.7.1 - '@types/stylis': - specifier: 4.0.2 - version: 4.0.2 - '@types/uuid': - specifier: ^8.3.4 - version: 8.3.4 '@typescript-eslint/eslint-plugin': specifier: 5.42.1 version: 5.42.1_2udltptbznfmezdozpdoa2aemq @@ -133,9 +121,6 @@ importers: lint-staged: specifier: 13.0.3 version: 13.0.3 - markdown-it: - specifier: 13.0.1 - version: 13.0.1 path-browserify: specifier: 1.0.1 version: 1.0.1 @@ -148,9 +133,6 @@ importers: prettier-plugin-jsdoc: specifier: 0.4.2 version: 0.4.2_prettier@2.7.1 - remark: - specifier: 14.0.2 - version: 14.0.2 rimraf: specifier: 3.0.2 version: 3.0.2 @@ -163,9 +145,6 @@ importers: typescript: specifier: 4.8.4 version: 4.8.4 - unist-util-flatmap: - specifier: 1.0.0 - version: 1.0.0 vite: specifier: 3.2.3 version: 3.2.3_@types+node@18.11.9 @@ -224,27 +203,12 @@ importers: specifier: ^9.0.0 version: 9.0.0 devDependencies: - '@applitools/eyes-cypress': - specifier: 3.27.6 - version: 3.27.6 - '@commitlint/cli': - specifier: 17.2.0 - version: 17.2.0 - '@commitlint/config-conventional': - specifier: 17.2.0 - version: 17.2.0 '@types/d3': specifier: 7.4.0 version: 7.4.0 '@types/dompurify': specifier: 2.4.0 version: 2.4.0 - '@types/eslint': - specifier: 8.4.10 - version: 8.4.10 - '@types/express': - specifier: 4.17.14 - version: 4.17.14 '@types/jsdom': specifier: 20.0.1 version: 20.0.1 @@ -278,33 +242,6 @@ importers: coveralls: specifier: 3.1.1 version: 3.1.1 - eslint: - specifier: 8.27.0 - version: 8.27.0 - eslint-config-prettier: - specifier: 8.5.0 - version: 8.5.0_eslint@8.27.0 - eslint-plugin-cypress: - specifier: 2.12.1 - version: 2.12.1_eslint@8.27.0 - eslint-plugin-html: - specifier: 7.1.0 - version: 7.1.0 - eslint-plugin-jest: - specifier: 27.1.5 - version: 27.1.5_dh5zoy5tprom2j3yddxus2umce - eslint-plugin-jsdoc: - specifier: 39.6.2 - version: 39.6.2_eslint@8.27.0 - eslint-plugin-json: - specifier: 3.1.0 - version: 3.1.0 - eslint-plugin-markdown: - specifier: 3.0.0 - version: 3.0.0_eslint@8.27.0 - express: - specifier: 4.18.2 - version: 4.18.2 globby: specifier: 13.1.2 version: 13.1.2 @@ -320,9 +257,6 @@ importers: jsdom: specifier: 20.0.2 version: 20.0.2 - lint-staged: - specifier: 13.0.3 - version: 13.0.3 micromatch: specifier: ^4.0.5 version: 4.0.5 @@ -335,9 +269,6 @@ importers: prettier: specifier: 2.7.1 version: 2.7.1 - prettier-plugin-jsdoc: - specifier: 0.4.2 - version: 0.4.2_prettier@2.7.1 remark: specifier: 14.0.2 version: 14.0.2 @@ -350,9 +281,6 @@ importers: start-server-and-test: specifier: 1.14.0 version: 1.14.0 - ts-node: - specifier: 10.9.1 - version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 typedoc: specifier: 0.23.18 version: 0.23.18_typescript@4.8.4 @@ -5573,27 +5501,6 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.5_dh5zoy5tprom2j3yddxus2umce: - resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq - '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - eslint: 8.27.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /eslint-plugin-jest/27.1.5_kdswgjmqcx7mthqz7ow2zlfevy: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} From beab2278d808c65c563a0227bed7757421ea5b38 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 22:06:26 +0530 Subject: [PATCH 0620/1038] feat: Async mermaid docs --- cypress/integration/rendering/theme.spec.js | 1 + package.json | 3 - packages/mermaid/package.json | 9 +- .../mermaid/src/docs/.vitepress/config.ts | 3 +- .../docs/.vitepress/mermaid-markdown-all.ts | 20 +- .../src/docs/.vitepress/theme/Mermaid.vue | 78 +++ .../.vitepress/theme/{index.ts => index.js} | 9 +- packages/mermaid/src/docs/vite.config.ts | 5 + pnpm-lock.yaml | 447 ++---------------- 9 files changed, 155 insertions(+), 420 deletions(-) create mode 100644 packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue rename packages/mermaid/src/docs/.vitepress/theme/{index.ts => index.js} (51%) diff --git a/cypress/integration/rendering/theme.spec.js b/cypress/integration/rendering/theme.spec.js index 0eb8d111b0..ef3bd9a4b0 100644 --- a/cypress/integration/rendering/theme.spec.js +++ b/cypress/integration/rendering/theme.spec.js @@ -25,6 +25,7 @@ describe('themeCSS balancing, it', () => { }); }); +// TODO: Delete/Rename this describe, keeping the inner contents. describe('Pie Chart', () => { // beforeEach(()=>{ // cy.clock((new Date('2014-06-09')).getTime()); diff --git a/package.json b/package.json index c23f632dfb..4014081090 100644 --- a/package.json +++ b/package.json @@ -100,9 +100,6 @@ "ts-node": "10.9.1", "typescript": "4.8.4", "vite": "3.2.3", - "vitepress": "1.0.0-alpha.28", - "vitepress-plugin-mermaid": "2.0.8", - "vitepress-plugin-search": "1.0.4-alpha.15", "vitest": "0.25.1" }, "resolutions": { diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 648c114e78..aa7b15524a 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -57,7 +57,6 @@ "dagre": "^0.8.5", "dagre-d3": "^0.6.4", "dompurify": "2.4.1", - "fast-clone": "^1.5.13", "graphlib": "^2.1.8", "khroma": "^2.0.0", "lodash": "^4.17.21", @@ -91,12 +90,14 @@ "prettier": "2.7.1", "remark": "14.0.2", "rimraf": "3.0.2", - "shiki": "^0.11.1", + "shiki": "0.11.1", "start-server-and-test": "1.14.0", "typedoc": "0.23.18", "typedoc-plugin-markdown": "3.13.6", "typescript": "4.8.4", - "unist-util-flatmap": "1.0.0" + "unist-util-flatmap": "1.0.0", + "vitepress": "1.0.0-alpha.28", + "vitepress-plugin-search": "1.0.4-alpha.15" }, "resolutions": { "d3": "^7.0.0" @@ -109,4 +110,4 @@ "**/*.css", "**/*.scss" ] -} +} \ No newline at end of file diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 7d3ec40ddf..0304c2fe29 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -1,12 +1,10 @@ import { version } from '../../../package.json'; import MermaidExample from './mermaid-markdown-all'; -import { MermaidMarkdown } from 'vitepress-plugin-mermaid'; import { defineConfig, MarkdownOptions } from 'vitepress'; const allMarkdownTransformers: MarkdownOptions = { config: async (md) => { await MermaidExample(md); - MermaidMarkdown(md); }, }; @@ -106,6 +104,7 @@ function sidebarSyntax() { { text: 'Requirement Diagram', link: '/syntax/requirementDiagram' }, { text: 'Gitgraph (Git) Diagram 🔥', link: '/syntax/gitgraph' }, { text: 'C4C Diagram (Context) Diagram 🦺⚠️', link: '/syntax/c4c' }, + { text: 'Mindmaps 🔥', link: '/syntax/mindmap' }, { text: 'Other Examples', link: '/syntax/examples' }, ], }, diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index 7006f20e9d..a7c4f96c55 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -1,5 +1,5 @@ import type { MarkdownRenderer } from 'vitepress'; -import shiki from 'shiki'; +import { getHighlighter } from 'shiki'; const MermaidExample = async (md: MarkdownRenderer) => { const defaultRenderer = md.renderer.rules.fence; @@ -8,7 +8,7 @@ const MermaidExample = async (md: MarkdownRenderer) => { throw new Error('defaultRenderer is undefined'); } - const highlighter = await shiki.getHighlighter({ + const highlighter = await getHighlighter({ theme: 'material-palenight', langs: ['mermaid'], }); @@ -28,8 +28,20 @@ const MermaidExample = async (md: MarkdownRenderer) => { mermaid ${highlight} - -
    Diagram:
    `; + `; + } else if (token.info.trim() === 'mermaid') { + const key = index; + return ` ${key} + + + + + +`; } if (token.info.trim() === 'warning') { return `

    WARNING

    ${token.content}}

    `; diff --git a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue new file mode 100644 index 0000000000..fe2510efda --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue @@ -0,0 +1,78 @@ + + + diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.js similarity index 51% rename from packages/mermaid/src/docs/.vitepress/theme/index.ts rename to packages/mermaid/src/docs/.vitepress/theme/index.js index bcce341a2b..b565838a96 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.js @@ -1,12 +1,11 @@ import DefaultTheme from 'vitepress/theme'; -// @ts-ignore -import Mermaid from 'vitepress-plugin-mermaid/Mermaid.vue'; import './custom.css'; - +import Mermaid from './Mermaid.vue'; export default { ...DefaultTheme, - enhanceApp({ app }) { + enhanceApp(ctx) { // register global components - app.component('Mermaid', Mermaid); + DefaultTheme.enhanceApp(ctx); + ctx.app.component('Mermaid', Mermaid); }, }; diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts index bea6fe26d7..15652c21c6 100644 --- a/packages/mermaid/src/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -31,6 +31,11 @@ export default defineConfig({ resolve: { alias: { mermaid: path.join(__dirname, '../../dist/mermaid.esm.min.mjs'), // Use this one to build + + '@mermaid-js/mermaid-mindmap': path.join( + __dirname, + '../../../mermaid-mindmap/dist/mermaid-mindmap.esm.min.mjs' + ), // Use this one to build }, }, server: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e5b7f57791..be274e1666 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,7 +48,7 @@ importers: version: 5.42.1_rmayb2veg2btbq6mbmnyivgasy '@vitest/coverage-c8': specifier: 0.25.1 - version: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu + version: 0.25.1_oullksb5ic6y72oh2wekoaiuii '@vitest/ui': specifier: 0.25.1 version: 0.25.1 @@ -148,18 +148,9 @@ importers: vite: specifier: 3.2.3 version: 3.2.3_@types+node@18.11.9 - vitepress: - specifier: 1.0.0-alpha.28 - version: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi - vitepress-plugin-mermaid: - specifier: 2.0.8 - version: 2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe - vitepress-plugin-search: - specifier: 1.0.4-alpha.15 - version: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 vitest: specifier: 0.25.1 - version: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu + version: 0.25.1_oullksb5ic6y72oh2wekoaiuii packages/mermaid: dependencies: @@ -178,9 +169,6 @@ importers: dompurify: specifier: 2.4.1 version: 2.4.1 - fast-clone: - specifier: ^1.5.13 - version: 1.5.13 graphlib: specifier: ^2.1.8 version: 2.1.8 @@ -276,7 +264,7 @@ importers: specifier: 3.0.2 version: 3.0.2 shiki: - specifier: ^0.11.1 + specifier: 0.11.1 version: 0.11.1 start-server-and-test: specifier: 1.14.0 @@ -293,6 +281,12 @@ importers: unist-util-flatmap: specifier: 1.0.0 version: 1.0.0 + vitepress: + specifier: 1.0.0-alpha.28 + version: 1.0.0-alpha.28_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-search: + specifier: 1.0.4-alpha.15 + version: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 packages/mermaid-example-diagram: devDependencies: @@ -2033,14 +2027,6 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/pluginutils/4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -2174,12 +2160,6 @@ packages: resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} dev: true - /@types/concat-stream/1.6.1: - resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} - dependencies: - '@types/node': 18.11.9 - dev: true - /@types/connect-history-api-fallback/1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: @@ -2427,12 +2407,6 @@ packages: resolution: {integrity: sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==} dev: true - /@types/form-data/0.0.33: - resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} - dependencies: - '@types/node': 18.11.9 - dev: true - /@types/geojson/7946.0.10: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true @@ -2537,10 +2511,6 @@ packages: form-data: 3.0.1 dev: true - /@types/node/10.17.60: - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - dev: true - /@types/node/14.18.29: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true @@ -2553,10 +2523,6 @@ packages: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} dev: true - /@types/node/8.10.66: - resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} - dev: true - /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -2806,15 +2772,15 @@ packages: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.2.3_@types+node@18.11.9 + vite: 3.2.3 vue: 3.2.41 dev: true - /@vitest/coverage-c8/0.25.1_iyb77cyw3lw7duusvxyjdsflhu: + /@vitest/coverage-c8/0.25.1_oullksb5ic6y72oh2wekoaiuii: resolution: {integrity: sha512-gpl5QNaNeIN0mfRiosCqBFoZcizb5GA458TDnOQXkGDc4kklazxn70u9evGfV62wiiAUfGGebgRhxlBkAa6m6g==} dependencies: c8: 7.12.0 - vitest: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu + vitest: 0.25.1_oullksb5ic6y72oh2wekoaiuii transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3136,55 +3102,6 @@ packages: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} dev: true - /@yankeeinlondon/builder-api/0.4.1_dsigm6qpqe3mljd7p5w42sooza: - resolution: {integrity: sha512-O6LS9Zg4xqLVpAgea72mNhZvdy9B2BuIgNdsRvNkmnACG8XvlZtEKryGt2ECI/z+dbQICbHDQFCNtZRBrfSMlA==} - peerDependencies: - fp-ts: ^2.12.1 - inferred-types: ^0.22.0 - markdown-it: ^13.0.1 - vite-plugin-md: '*' - dependencies: - '@yankeeinlondon/happy-wrapper': 2.6.0_iyb77cyw3lw7duusvxyjdsflhu - fp-ts: 2.13.1 - inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu - markdown-it: 13.0.1 - vite-plugin-md: 0.20.4_ssclijsxphu2vue5hnv6ywl23u - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /@yankeeinlondon/happy-wrapper/2.6.0_iyb77cyw3lw7duusvxyjdsflhu: - resolution: {integrity: sha512-az+gEjG4Jl4GbM35ID5pn4v7FwfrgeA1br/B9STXlDLvIsV8q7mCxQ1oYa8bR1iHtNQg7kgW6s9DYheaTemrHQ==} - peerDependencies: - happy-dom: ^6.0.4 - dependencies: - happy-dom: 6.0.4 - native-dash: 1.23.2_iyb77cyw3lw7duusvxyjdsflhu - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /JSONSelect/0.4.0: resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} engines: {node: '>=0.4.7'} @@ -3482,10 +3399,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /asap/2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: true - /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -3706,29 +3619,6 @@ packages: fill-range: 7.0.1 dev: true - /brilliant-errors/0.6.0_iyb77cyw3lw7duusvxyjdsflhu: - resolution: {integrity: sha512-4+Va/hdXk7tROAmnZ8Vp9D23oOMg6IBJAiZdhRCufMApH0NIFLsvtTb7sL8YuV6gWdLsiXxzR834bh05lC8r8Q==} - engines: {node: '>=12.0.0'} - dependencies: - callsites: 3.1.0 - common-types: 1.31.1 - inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu - vitest: 0.19.1_iyb77cyw3lw7duusvxyjdsflhu - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true @@ -4123,10 +4013,6 @@ packages: engines: {node: '>=4.0.0'} dev: true - /common-types/1.31.1: - resolution: {integrity: sha512-eixAd22Gmek1dgsPgyqCSjzMAlp8rpSLkb44iEMfOzR9fwGFYEkH+AWOHmwSFxWmO8MvMND/m1jpZX0Wk4+yJA==} - dev: true - /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -4160,16 +4046,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concat-stream/1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.7 - typedarray: 0.0.6 - dev: true - /concurrently/7.5.0: resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} @@ -4436,10 +4312,6 @@ packages: source-map: 0.6.1 dev: true - /css.escape/1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - dev: true - /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true @@ -5876,13 +5748,6 @@ packages: - supports-color dev: true - /extend-shallow/2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - dev: true - /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true @@ -5906,10 +5771,6 @@ packages: engines: {'0': node >=0.6.0} dev: true - /fast-clone/1.5.13: - resolution: {integrity: sha512-0ez7coyFBQFjZtId+RJqJ+EQs61w9xARfqjqK0AD9vIUkSxWD4HvPt80+5evebZ1tTnv1GYKrPTipx7kOW5ipA==} - dev: false - /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -6103,10 +5964,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /fp-ts/2.13.1: - resolution: {integrity: sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ==} - dev: true - /fresh/0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -6213,11 +6070,6 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-port/3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} - dev: true - /get-stdin/5.0.1: resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==} engines: {node: '>=0.12.0'} @@ -6393,16 +6245,6 @@ packages: lodash: 4.17.21 dev: false - /gray-matter/4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - dev: true - /handle-thing/2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} dev: true @@ -6420,20 +6262,6 @@ packages: uglify-js: 3.17.3 dev: true - /happy-dom/6.0.4: - resolution: {integrity: sha512-b+ID23Ms0BY08UNLymsOMG7EI2jSlwEt4cbJs938GZfeNAg+fqgkSO3TokQMgSOFoHznpjWmpVjBUL5boJ9PWw==} - dependencies: - css.escape: 1.5.1 - he: 1.2.0 - node-fetch: 2.6.7 - sync-request: 6.1.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - transitivePeerDependencies: - - encoding - dev: true - /har-schema/2.0.0: resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} @@ -6491,11 +6319,6 @@ packages: function-bind: 1.1.1 dev: true - /he/1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - /heap/0.2.7: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false @@ -6544,16 +6367,6 @@ packages: entities: 4.4.0 dev: true - /http-basic/8.1.3: - resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} - engines: {node: '>=6.0.0'} - dependencies: - caseless: 0.12.0 - concat-stream: 1.6.2 - http-response-object: 3.0.2 - parse-cache-control: 1.0.1 - dev: true - /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -6639,12 +6452,6 @@ packages: - debug dev: true - /http-response-object/3.0.2: - resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} - dependencies: - '@types/node': 10.17.60 - dev: true - /http-signature/1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -6758,25 +6565,6 @@ packages: engines: {node: '>=8'} dev: true - /inferred-types/0.22.8_iyb77cyw3lw7duusvxyjdsflhu: - resolution: {integrity: sha512-gs0zTE04eOBso5tFZPA2UoYiH9qMCqCJCUdH9K6P6cofqNkI1L5bx9QDE0XE0khJgLN7TmH+W0JhwBbnkdjzWQ==} - dependencies: - brilliant-errors: 0.6.0_iyb77cyw3lw7duusvxyjdsflhu - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6879,11 +6667,6 @@ packages: hasBin: true dev: true - /is-extendable/0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: true - /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -8459,26 +8242,6 @@ packages: hasBin: true dev: true - /native-dash/1.23.2_iyb77cyw3lw7duusvxyjdsflhu: - resolution: {integrity: sha512-Ev5OPB5vDZ+HLj4MXfAwZRHJV/LJr2LHjsIr1UN7jZigMS2JRpF7Qy77t66GURhtzp7GSWLNSLeRwXOg1iwJkQ==} - dependencies: - brilliant-errors: 0.6.0_iyb77cyw3lw7duusvxyjdsflhu - inferred-types: 0.22.8_iyb77cyw3lw7duusvxyjdsflhu - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /natural-compare-lite/1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -8791,10 +8554,6 @@ packages: callsites: 3.1.0 dev: true - /parse-cache-control/1.0.1: - resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} - dev: true - /parse-entities/2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} dependencies: @@ -9035,12 +8794,6 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /promise/8.3.0: - resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} - dependencies: - asap: 2.0.6 - dev: true - /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -9492,14 +9245,6 @@ packages: ajv-keywords: 5.1.0_ajv@8.11.0 dev: true - /section-matter/1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - dev: true - /select-hose/2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true @@ -9972,11 +9717,6 @@ packages: ansi-regex: 6.0.1 dev: true - /strip-bom-string/1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: true - /strip-bom/4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} @@ -10054,21 +9794,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /sync-request/6.1.0: - resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} - engines: {node: '>=8.0.0'} - dependencies: - http-response-object: 3.0.2 - sync-rpc: 1.3.6 - then-request: 6.0.2 - dev: true - - /sync-rpc/1.3.6: - resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} - dependencies: - get-port: 3.2.0 - dev: true - /tapable/2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -10135,23 +9860,6 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /then-request/6.0.2: - resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} - engines: {node: '>=6.0.0'} - dependencies: - '@types/concat-stream': 1.6.1 - '@types/form-data': 0.0.33 - '@types/node': 8.10.66 - '@types/qs': 6.9.7 - caseless: 0.12.0 - concat-stream: 1.6.2 - form-data: 2.3.3 - http-basic: 8.1.3 - http-response-object: 3.0.2 - promise: 8.3.0 - qs: 6.11.0 - dev: true - /throat/6.0.1: resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} dev: true @@ -10178,11 +9886,6 @@ packages: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true - /tinypool/0.2.4: - resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} - engines: {node: '>=14.0.0'} - dev: true - /tinypool/0.3.0: resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} @@ -10417,10 +10120,6 @@ packages: is-typedarray: 1.0.0 dev: true - /typedarray/0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: true - /typedoc-plugin-markdown/3.13.6_typedoc@0.23.18: resolution: {integrity: sha512-ISSc9v3BK7HkokxSBuJPttXox4tJ6hP0N9wfSIk0fmLN67+eqtAxbk97gs2nDiuha+RTO5eW9gdeAb+RPP0mgg==} peerDependencies: @@ -10655,34 +10354,37 @@ packages: vfile-message: 3.1.2 dev: true - /vite-plugin-md/0.20.4_ssclijsxphu2vue5hnv6ywl23u: - resolution: {integrity: sha512-W3Z59/ROS2X6OIwPwV2PjE+QkfW0UVGxyf3Z2JR0OLqGJ+Iy2SGA503m/vmATJv+C3DjeU8Oy8diQx1R+IyRwQ==} + /vite/3.2.3: + resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true peerDependencies: - '@rollup/pluginutils': ^4.2.1 - rollup: ^2.77.0 + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: - '@rollup/pluginutils': 4.2.1 - '@yankeeinlondon/builder-api': 0.4.1_dsigm6qpqe3mljd7p5w42sooza - '@yankeeinlondon/happy-wrapper': 2.6.0_iyb77cyw3lw7duusvxyjdsflhu - gray-matter: 4.0.3 - markdown-it: 13.0.1 + esbuild: 0.15.13 + postcss: 8.4.18 + resolve: 1.22.1 rollup: 2.79.1 - source-map-js: 1.0.2 - transitivePeerDependencies: - - '@edge-runtime/vm' - - '@vitest/browser' - - '@vitest/ui' - - c8 - - fp-ts - - happy-dom - - inferred-types - - jsdom - - less - - sass - - stylus - - sugarss - - supports-color - - terser + optionalDependencies: + fsevents: 2.3.2 dev: true /vite/3.2.3_@types+node@18.11.9: @@ -10719,18 +10421,6 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-mermaid/2.0.8_2q5vfj2vm6nj3r62ddjdsi7aoe: - resolution: {integrity: sha512-ywWxTeg9kMv7ZPf/igCBF4ZHhWZAyRtbPnA12ICQuNK2AMp7r5IHOfnuX1EJQf8gNdsh8bcvvSvm8Ll92fdOTw==} - peerDependencies: - mermaid: ^8.0.0 || ^9.0.0 - vite-plugin-md: ^0.20.4 - vitepress: ^0.21.6 || ^1.0.0 || ^1.0.0-alpha - dependencies: - mermaid: link:packages/mermaid - vite-plugin-md: 0.20.4_ssclijsxphu2vue5hnv6ywl23u - vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi - dev: true - /vitepress-plugin-search/1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54: resolution: {integrity: sha512-Ef/VkhTVYlECVI0H9Ck6745UNPfYFppAqnlxVSMJXdxP2vjOZ5TYNczlTTQ2p9dh16MFw/IurbL1/GrG4nXdNw==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} @@ -10744,12 +10434,12 @@ packages: '@types/markdown-it': 12.2.3 flexsearch: 0.7.31 markdown-it: 13.0.1 - vite: 3.2.3_@types+node@18.11.9 - vitepress: 1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi + vite: 3.2.3 + vitepress: 1.0.0-alpha.28_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.41 dev: true - /vitepress/1.0.0-alpha.28_ysryt2e75uhznkanan6iyjk4mi: + /vitepress/1.0.0-alpha.28_tbpndr44ulefs3hehwpi2mkf2y: resolution: {integrity: sha512-pvbLssDMgLUN1terajmPlFBxHSDGO4DqwexKbjFyr7LeELerVuwGrG6F2J1hxmwOlbpLd1kHXEDqGm9JX/kTDQ==} hasBin: true dependencies: @@ -10760,7 +10450,7 @@ packages: '@vueuse/core': 9.4.0_vue@3.2.41 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.3_@types+node@18.11.9 + vite: 3.2.3 vue: 3.2.41 transitivePeerDependencies: - '@algolia/client-search' @@ -10776,53 +10466,7 @@ packages: - terser dev: true - /vitest/0.19.1_iyb77cyw3lw7duusvxyjdsflhu: - resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==} - engines: {node: '>=v14.16.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - c8: '*' - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - c8: - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@types/chai': 4.3.3 - '@types/chai-subset': 1.3.3 - '@types/node': 18.11.9 - '@vitest/ui': 0.25.1 - chai: 4.3.6 - debug: 4.3.4 - happy-dom: 6.0.4 - jsdom: 20.0.2 - local-pkg: 0.4.2 - tinypool: 0.2.4 - tinyspy: 1.0.2 - vite: 3.2.3_@types+node@18.11.9 - transitivePeerDependencies: - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vitest/0.25.1_iyb77cyw3lw7duusvxyjdsflhu: + /vitest/0.25.1_oullksb5ic6y72oh2wekoaiuii: resolution: {integrity: sha512-eH74h6MkuEgsqR4mAQZeMK9O0PROiKY+i+1GMz/fBi5A3L2ml5U7JQs7LfPU7+uWUziZyLHagl+rkyfR8SLhlA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -10852,7 +10496,6 @@ packages: acorn-walk: 8.2.0 chai: 4.3.6 debug: 4.3.4 - happy-dom: 6.0.4 jsdom: 20.0.2 local-pkg: 0.4.2 source-map: 0.6.1 From a88a467d4569837f491e67a97f1a70ca570e087b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 22:14:27 +0530 Subject: [PATCH 0621/1038] sync --- docs/syntax/classDiagram.md | 36 +++++++++---------- .../docs/.vitepress/mermaid-markdown-all.ts | 13 ++----- .../src/docs/.vitepress/theme/Mermaid.vue | 10 ++---- 3 files changed, 24 insertions(+), 35 deletions(-) diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index b825f86717..d57125c84d 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -255,16 +255,16 @@ A relationship is a general term covering the specific types of logical connecti There are eight different types of relations defined for classes under UML which are currently supported: -| Type | Description | -| ---- | ------------- | ----------- | -| < | -- | Inheritance | -| \*-- | Composition | -| o-- | Aggregation | -| --> | Association | -| -- | Link (Solid) | -| ..> | Dependency | -| .. | > | Realization | -| .. | Link (Dashed) | +| Type | Description | +| ------- | ------------- | +| `<\|--` | Inheritance | +| `\*--` | Composition | +| `o--` | Aggregation | +| `-->` | Association | +| `--` | Link (Solid) | +| `..>` | Dependency | +| `..\|>` | Realization | +| `..` | Link (Dashed) | ```mermaid-example classDiagram @@ -360,14 +360,14 @@ Here is the syntax: Where `Relation Type` can be one of: -| Type | Description | -| ---- | ----------- | ----------- | -| < | | Inheritance | -| \* | Composition | -| o | Aggregation | -| > | Association | -| < | Association | -| | > | Realization | +| Type | Description | +| ----- | ----------- | +| `<\|` | Inheritance | +| `\*` | Composition | +| `o` | Aggregation | +| `>` | Association | +| `<` | Association | +| `\|>` | Realization | And `Link` can be one of: diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index a7c4f96c55..e2178a6536 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -31,17 +31,10 @@ ${highlight} `; } else if (token.info.trim() === 'mermaid') { const key = index; - return ` ${key} - - - - - -`; + `; } if (token.info.trim() === 'warning') { return `

    WARNING

    ${token.content}}

    `; diff --git a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue index fe2510efda..90ece11a6a 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue +++ b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue @@ -5,11 +5,7 @@ From 846a03663c31f10b89643132305f692953386243 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 14 Nov 2022 22:15:34 +0530 Subject: [PATCH 0622/1038] fix(docs): ClassDiagram table --- docs/syntax/classDiagram.md | 36 +++++++++---------- .../mermaid/src/docs/syntax/classDiagram.md | 36 +++++++++---------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index b825f86717..d57125c84d 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -255,16 +255,16 @@ A relationship is a general term covering the specific types of logical connecti There are eight different types of relations defined for classes under UML which are currently supported: -| Type | Description | -| ---- | ------------- | ----------- | -| < | -- | Inheritance | -| \*-- | Composition | -| o-- | Aggregation | -| --> | Association | -| -- | Link (Solid) | -| ..> | Dependency | -| .. | > | Realization | -| .. | Link (Dashed) | +| Type | Description | +| ------- | ------------- | +| `<\|--` | Inheritance | +| `\*--` | Composition | +| `o--` | Aggregation | +| `-->` | Association | +| `--` | Link (Solid) | +| `..>` | Dependency | +| `..\|>` | Realization | +| `..` | Link (Dashed) | ```mermaid-example classDiagram @@ -360,14 +360,14 @@ Here is the syntax: Where `Relation Type` can be one of: -| Type | Description | -| ---- | ----------- | ----------- | -| < | | Inheritance | -| \* | Composition | -| o | Aggregation | -| > | Association | -| < | Association | -| | > | Realization | +| Type | Description | +| ----- | ----------- | +| `<\|` | Inheritance | +| `\*` | Composition | +| `o` | Aggregation | +| `>` | Association | +| `<` | Association | +| `\|>` | Realization | And `Link` can be one of: diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index d67aeec011..20bdd657f8 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -166,16 +166,16 @@ A relationship is a general term covering the specific types of logical connecti There are eight different types of relations defined for classes under UML which are currently supported: -| Type | Description | -| ----- | ------------- | -| <\|-- | Inheritance | -| \*-- | Composition | -| o-- | Aggregation | -| --> | Association | -| -- | Link (Solid) | -| ..> | Dependency | -| ..\|> | Realization | -| .. | Link (Dashed) | +| Type | Description | +| ------- | ------------- | +| `<\|--` | Inheritance | +| `\*--` | Composition | +| `o--` | Aggregation | +| `-->` | Association | +| `--` | Link (Solid) | +| `..>` | Dependency | +| `..\|>` | Realization | +| `..` | Link (Dashed) | ```mermaid-example classDiagram @@ -237,14 +237,14 @@ Here is the syntax: Where `Relation Type` can be one of: -| Type | Description | -| ---- | ----------- | -| <\| | Inheritance | -| \* | Composition | -| o | Aggregation | -| > | Association | -| < | Association | -| \|> | Realization | +| Type | Description | +| ----- | ----------- | +| `<\|` | Inheritance | +| `\*` | Composition | +| `o` | Aggregation | +| `>` | Association | +| `<` | Association | +| `\|>` | Realization | And `Link` can be one of: From ccd55a0bde2782546d49eb62c19478cf305c7bf3 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Mon, 14 Nov 2022 11:24:59 -0800 Subject: [PATCH 0623/1038] add stateDiagram-v2 to list of graphs with classDefs --- packages/mermaid/src/mermaidAPI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index b921655ab3..7a67c708ea 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -32,7 +32,7 @@ import { evaluate } from './diagrams/common/common'; import { isEmpty } from 'lodash'; // diagram names that support classDef statements -const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram']; +const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram', 'stateDiagram-v2']; const MAX_TEXTLENGTH_EXCEEDED_MSG = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; From 82f63b056f742247d6a1b43b1a7d334b559e2db8 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 15 Nov 2022 01:06:04 +0530 Subject: [PATCH 0624/1038] feat: Redirect old documentation links. --- cSpell.json | 5 +- .../mermaid/src/docs/.vitepress/config.ts | 4 +- .../src/docs/.vitepress/redirect.spec.ts | 27 ++++++++ .../mermaid/src/docs/.vitepress/redirect.ts | 65 +++++++++++++++++++ packages/mermaid/src/docs/index.md | 11 ++++ 5 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 packages/mermaid/src/docs/.vitepress/redirect.spec.ts create mode 100644 packages/mermaid/src/docs/.vitepress/redirect.ts diff --git a/cSpell.json b/cSpell.json index 08fce1d1c0..3cf8a1e548 100644 --- a/cSpell.json +++ b/cSpell.json @@ -116,5 +116,8 @@ "Multi-line code blocks", "HTML Tags" ], - "ignorePaths": ["packages/mermaid/src/docs/CHANGELOG.md"] + "ignorePaths": [ + "packages/mermaid/src/docs/CHANGELOG.md", + "packages/mermaid/src/docs/.vitepress/redirect.ts" + ] } diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 7d3ec40ddf..271737dfd8 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -35,7 +35,7 @@ function nav() { { text: 'Intro', link: '/intro/', activeMatch: '/intro/' }, { text: 'Configuration', - link: '/config/Tutorials', + link: '/config/configuration', activeMatch: '/config/', }, { text: 'Syntax', link: '/syntax/classDiagram', activeMatch: '/syntax/' }, @@ -118,6 +118,7 @@ function sidebarConfig() { text: '⚙️ Deployment and Configuration', collapsible: true, items: [ + { text: 'Configuration', link: '/config/configuration' }, { text: 'Tutorials', link: '/config/Tutorials' }, { text: 'API-Usage', link: '/config/usage' }, { text: 'Mermaid API Configuration', link: '/config/setup/README' }, @@ -126,7 +127,6 @@ function sidebarConfig() { { text: 'Accessibility', link: '/config/accessibility' }, { text: 'Mermaid CLI', link: '/config/mermaidCLI' }, { text: 'Advanced usage', link: '/config/n00b-advanced' }, - { text: 'Configuration', link: '/config/configuration' }, ], }, ]; diff --git a/packages/mermaid/src/docs/.vitepress/redirect.spec.ts b/packages/mermaid/src/docs/.vitepress/redirect.spec.ts new file mode 100644 index 0000000000..3239b21c2c --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/redirect.spec.ts @@ -0,0 +1,27 @@ +import { expect, test } from 'vitest'; +import { getBaseFile } from './redirect'; + +test.each([ + ['http://localhost:1234/mermaid/#/flowchart.md', 'flowchart'], + ['http://localhost/mermaid/#/flowchart.md', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/flowchart.md', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/./flowchart', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/flowchart', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#flowchart', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/flowchart', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/flowchart.md?id=no-id', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/./flowchart.md?id=no-id', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/flowchart?id=no-id', 'flowchart'], + ['https://mermaid-js.github.io/mermaid/#/language-highlight', 'language-highlight'], + ['https://mermaid-js.github.io/mermaid/#/language-highlight.md', 'language-highlight'], +])('should process url %s to %s', (link, expected) => { + expect(getBaseFile(link)).toBe(expected); +}); + +test('should throw for invalid URL', () => { + // Not mermaid domain + expect(() => getBaseFile('https://www.google.com')).toThrowError(); + + // Not `/mermaid/` path + expect(() => getBaseFile('http://localhost/#/flowchart.md')).toThrowError(); +}); diff --git a/packages/mermaid/src/docs/.vitepress/redirect.ts b/packages/mermaid/src/docs/.vitepress/redirect.ts new file mode 100644 index 0000000000..6036fcdd9e --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/redirect.ts @@ -0,0 +1,65 @@ +export const getBaseFile = (link: string): string => { + const url = new URL(link); + if ( + (url.hostname !== 'mermaid-js.github.io' && url.hostname !== 'localhost') || + url.pathname !== '/mermaid/' + ) { + throw new Error('Not mermaidjs url'); + } + const hash = url.hash + .toLowerCase() + .replace('.md', '') + .replace(/^#\/?/g, '') + .replace(/^\.\//g, '') + .split('?')[0]; + return hash; +}; + +const redirectMap: Record = { + '8.6.0_docs': '', + accessibility: 'config/theming', + breakingchanges: '', + c4c: 'syntax/c4c', + classdiagram: 'syntax/classDiagram', + configuration: 'config/configuration', + demos: 'misc/integrations', + development: 'community/development', + directives: 'config/directives', + entityrelationshipdiagram: 'syntax/entityRelationshipDiagram', + examples: 'syntax/examples', + faq: 'misc/faq', + flowchart: 'syntax/flowchart', + gantt: 'syntax/gantt', + gitgraph: 'syntax/gitgraph', + integrations: 'misc/integrations', + 'language-highlight': '', + markdown: '', + mermaidapi: 'config/usage', + mermaidcli: 'config/mermaidCLI', + mindmap: 'syntax/mindmap', + 'more-pages': '', + 'n00b-advanced': 'config/n00b-advanced', + 'n00b-gettingstarted': 'intro/n00b-gettingStarted', + 'n00b-overview': 'community/n00b-overview', + 'n00b-syntaxreference': '', + newdiagram: 'community/newDiagram', + pie: 'syntax/pie', + plugins: '', + quickstart: 'intro/n00b-gettingStarted', + requirementdiagram: 'syntax/requirementDiagram', + security: 'community/security', + sequencediagram: 'syntax/sequenceDiagram', + setup: '', + statediagram: 'syntax/stateDiagram', + themes: 'config/theming', + theming: 'config/theming', + tutorials: 'config/Tutorials', + upgrading: '', + usage: 'config/usage', + 'user-journey': 'syntax/userJourney', +}; + +export const getRedirect = (link: string): string | undefined => { + const base = getBaseFile(link); + return redirectMap[base]; +}; diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 975546f4b1..a87cd0ed3e 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -32,6 +32,17 @@ features: +``` + +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/docs/n00b-gettingStarted.md b/docs/n00b-gettingStarted.md index feac489195..e4e98d0827 100644 --- a/docs/n00b-gettingStarted.md +++ b/docs/n00b-gettingStarted.md @@ -119,6 +119,10 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac | ----------- | --------------------------------- | ------- | ----------- | | startOnLoad | Toggle for Rendering upon loading | Boolean | true, false | +### Adding external diagrams to mermaid + +Please refer to the [Mindmap](./mindmap.md?id=integrating-with-your-librarywebsite) section for more information. + ### Working Examples **Here is a full working example of the mermaidAPI being called through the CDN:** diff --git a/packages/mermaid/src/docs/mindmap.md b/packages/mermaid/src/docs/mindmap.md index 5aa6f4953d..2b47e3e198 100644 --- a/packages/mermaid/src/docs/mindmap.md +++ b/packages/mermaid/src/docs/mindmap.md @@ -153,3 +153,17 @@ Root B C ``` + +## Integrating with your library/website. + +Mindmap uses the experimental lazy loading & async rendering features which could change in the future. + +```html + +``` + +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/packages/mermaid/src/docs/n00b-gettingStarted.md b/packages/mermaid/src/docs/n00b-gettingStarted.md index 095cece249..398541eb1d 100644 --- a/packages/mermaid/src/docs/n00b-gettingStarted.md +++ b/packages/mermaid/src/docs/n00b-gettingStarted.md @@ -117,6 +117,10 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac | ----------- | --------------------------------- | ------- | ----------- | | startOnLoad | Toggle for Rendering upon loading | Boolean | true, false | +### Adding external diagrams to mermaid + +Please refer to the [Mindmap](./mindmap.md?id=integrating-with-your-librarywebsite) section for more information. + ### Working Examples **Here is a full working example of the mermaidAPI being called through the CDN:** From 6e234f135d51707b4d7787bf6319d563ff052ac0 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Fri, 18 Nov 2022 01:13:44 +0000 Subject: [PATCH 0668/1038] docs: create some basic mermaid mindmap demos --- demos/index.html | 3 ++ demos/mindmap.html | 108 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 demos/mindmap.html diff --git a/demos/index.html b/demos/index.html index a65681ddf1..da27cdcff3 100644 --- a/demos/index.html +++ b/demos/index.html @@ -48,6 +48,9 @@

    Git

  1. Journey

  2. +
  3. +

    Mindmap

    +
  4. Pie

  5. diff --git a/demos/mindmap.html b/demos/mindmap.html new file mode 100644 index 0000000000..a5b554a1a0 --- /dev/null +++ b/demos/mindmap.html @@ -0,0 +1,108 @@ + + + + + + Mindmap Mermaid Quick Test Page + + + + + +

    Mindmap diagram demo

    +
    +        mindmap
    +        root
    +            child1((Circle))
    +                grandchild 1
    +                grandchild 2
    +            child2(Round rectangle)
    +                grandchild 3
    +                grandchild 4
    +            child3[Square]
    +                grandchild 5
    +                ::icon(mdi mdi-fire)
    +                gc6((grand
    child 6)) + ::icon(mdi mdi-fire) + gc7((grand
    grand
    child 8)) +
    + +

    Mindmap with root wrapping text and a shape

    +
    +        mindmap
    +            root[A root with a long text that wraps to keep the node size in check]
    +    
    + + + + From b9dcdb00a55a1eeebba430613982129c28940573 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Fri, 18 Nov 2022 17:44:59 +0000 Subject: [PATCH 0669/1038] test(e2e): move mindmap tests to mindmap.spec.js Currently, we have mindmap tests in the cypress/integration/rendering/mermaid.spec.js which is a bit odd. They should probably all be in the mindmap.spec.js file. --- cypress/integration/rendering/mermaid.spec.js | 74 ------------------- cypress/integration/rendering/mindmap.spec.js | 72 +++++++++++++++++- 2 files changed, 71 insertions(+), 75 deletions(-) diff --git a/cypress/integration/rendering/mermaid.spec.js b/cypress/integration/rendering/mermaid.spec.js index 4b7de3027c..c75c59017f 100644 --- a/cypress/integration/rendering/mermaid.spec.js +++ b/cypress/integration/rendering/mermaid.spec.js @@ -1,75 +1 @@ import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; - -describe('Mindmap', () => { - it('square shape', () => { - imgSnapshotTest( - ` -mindmap - root[ - The root - ] - `, - {} - ); - cy.get('svg'); - }); - it('rounded rect shape', () => { - imgSnapshotTest( - ` -mindmap - root(( - The root - )) - `, - {} - ); - cy.get('svg'); - }); - it('circle shape', () => { - imgSnapshotTest( - ` -mindmap - root( - The root - ) - `, - {} - ); - cy.get('svg'); - }); - it('default shape', () => { - imgSnapshotTest( - ` -mindmap - The root - `, - {} - ); - cy.get('svg'); - }); - it('adding children', () => { - imgSnapshotTest( - ` -mindmap - The root - child1 - child2 - `, - {} - ); - cy.get('svg'); - }); - it('adding grand children', () => { - imgSnapshotTest( - ` -mindmap - The root - child1 - child2 - child3 - `, - {} - ); - cy.get('svg'); - }); -}); diff --git a/cypress/integration/rendering/mindmap.spec.js b/cypress/integration/rendering/mindmap.spec.js index f0cc2bc3f8..61179b238c 100644 --- a/cypress/integration/rendering/mindmap.spec.js +++ b/cypress/integration/rendering/mindmap.spec.js @@ -110,6 +110,76 @@ root {} ); }); - + it('square shape', () => { + imgSnapshotTest( + ` +mindmap + root[ + The root + ] + `, + {} + ); + cy.get('svg'); + }); + it('rounded rect shape', () => { + imgSnapshotTest( + ` +mindmap + root(( + The root + )) + `, + {} + ); + cy.get('svg'); + }); + it('circle shape', () => { + imgSnapshotTest( + ` +mindmap + root( + The root + ) + `, + {} + ); + cy.get('svg'); + }); + it('default shape', () => { + imgSnapshotTest( + ` +mindmap + The root + `, + {} + ); + cy.get('svg'); + }); + it('adding children', () => { + imgSnapshotTest( + ` +mindmap + The root + child1 + child2 + `, + {} + ); + cy.get('svg'); + }); + it('adding grand children', () => { + imgSnapshotTest( + ` +mindmap + The root + child1 + child2 + child3 + `, + {} + ); + cy.get('svg'); + }); /* The end */ }); From 57edcfe87d7dacd16f308d02651d9f9a976c33c5 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Fri, 18 Nov 2022 17:46:52 +0000 Subject: [PATCH 0670/1038] test(e2e): remove unused mermaid.spec.js file All tests have been moved to `mindmap.spec.js` in a previous commit. --- cypress/integration/rendering/mermaid.spec.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 cypress/integration/rendering/mermaid.spec.js diff --git a/cypress/integration/rendering/mermaid.spec.js b/cypress/integration/rendering/mermaid.spec.js deleted file mode 100644 index c75c59017f..0000000000 --- a/cypress/integration/rendering/mermaid.spec.js +++ /dev/null @@ -1 +0,0 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; From 537a627b754d4a9d4926968726d77bd533a719ad Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Fri, 18 Nov 2022 01:14:17 +0000 Subject: [PATCH 0671/1038] test(e2e): test for mindmap before snapshot Sometimes, the mindmap e2e tests take a snapshot when the mindmap SVG has been created, but hasn't yet been fully rendered. This adds a quick check for a mindmap section root, so that the snapshot is only taken after the mindmap diagram has started rendering. I was also running into JSDoc ESLint warnings, so I moved the file into a TypeScript file to fix those warnings. --- .../{mindmap.spec.js => mindmap.spec.ts} | 78 +++++++++++++++---- cypress/tsconfig.json | 8 ++ 2 files changed, 71 insertions(+), 15 deletions(-) rename cypress/integration/rendering/{mindmap.spec.js => mindmap.spec.ts} (66%) create mode 100644 cypress/tsconfig.json diff --git a/cypress/integration/rendering/mindmap.spec.js b/cypress/integration/rendering/mindmap.spec.ts similarity index 66% rename from cypress/integration/rendering/mindmap.spec.js rename to cypress/integration/rendering/mindmap.spec.ts index 61179b238c..62c7e785b6 100644 --- a/cypress/integration/rendering/mindmap.spec.js +++ b/cypress/integration/rendering/mindmap.spec.ts @@ -1,12 +1,32 @@ import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; +/** + * Check whether the SVG Element has a Mindmap root + * + * Sometimes, Cypress takes a snapshot before the mermaid mindmap has finished + * generating the SVG. + * + * @param $p - The element to check. + */ +function shouldHaveRoot($p: JQuery) { + // get HTML Element from jquery element + const svgElement = $p[0]; + expect(svgElement.nodeName).equal('svg'); + + const sectionRoots = svgElement.getElementsByClassName('mindmap-node section-root'); + // mindmap should have at least one root section + expect(sectionRoots).to.have.lengthOf.at.least(1); +} + describe('Mindmaps', () => { it('Only a root', () => { imgSnapshotTest( `mindmap root `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -15,7 +35,9 @@ root `mindmap root[root] `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -24,7 +46,9 @@ root[root] `mindmap root[A root with a long text that wraps to keep the node size in check] `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -34,7 +58,9 @@ root[A root with a long text that wraps to keep the node size in check] root[root] ::icon(mdi mdi-fire) `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -48,7 +74,9 @@ root))bang(( a)A cloud( ::icon(mdi mdi-fire) `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -60,7 +88,9 @@ root))bang(( a))Another bang(( a)A cloud( `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -78,7 +108,9 @@ root grandchild 5 grandchild 6 `, - {} + {}, + undefined, + shouldHaveRoot ); }); @@ -98,7 +130,9 @@ root gc6((grand
    child 6)) ::icon(mdi mdi-fire) `, - {} + {}, + undefined, + shouldHaveRoot ); }); it('text shouhld wrap with icon', () => { @@ -107,7 +141,9 @@ root root Child3(A node with an icon and with a long text that wraps to keep the node size in check) `, - {} + {}, + undefined, + shouldHaveRoot ); }); it('square shape', () => { @@ -118,7 +154,9 @@ mindmap The root ] `, - {} + {}, + undefined, + shouldHaveRoot ); cy.get('svg'); }); @@ -130,7 +168,9 @@ mindmap The root )) `, - {} + {}, + undefined, + shouldHaveRoot ); cy.get('svg'); }); @@ -142,7 +182,9 @@ mindmap The root ) `, - {} + {}, + undefined, + shouldHaveRoot ); cy.get('svg'); }); @@ -152,7 +194,9 @@ mindmap mindmap The root `, - {} + {}, + undefined, + shouldHaveRoot ); cy.get('svg'); }); @@ -164,7 +208,9 @@ mindmap child1 child2 `, - {} + {}, + undefined, + shouldHaveRoot ); cy.get('svg'); }); @@ -177,7 +223,9 @@ mindmap child2 child3 `, - {} + {}, + undefined, + shouldHaveRoot ); cy.get('svg'); }); diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json new file mode 100644 index 0000000000..e3351cebeb --- /dev/null +++ b/cypress/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es2020", + "lib": ["es2020", "dom"], + "types": ["cypress", "node"] + }, + "include": ["**/*.ts"] +} From fd76e0e27095997c2ac21902c0629cd6600e30d9 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 17 Nov 2022 23:54:25 +0000 Subject: [PATCH 0672/1038] chore: replace dagre/dagre-d3 with dagre-d3-es Replace the dagre and dagre-d3 libraries with dagre-d3-es. Both dagre and dagre-d3 are deprecated and unmaintained, and haven't been updated for more than 3 years. Since dagre-d3 still requires an old version of d3, this causes a bunch of security warnings, e.g. https://github.com/advisories/GHSA-36jr-mh4h-2g58 The [dagre-d3-es](https://github.com/tbo47/dagre-es) package is a fork that contains support for `"d3": "^7.6.1"`. Also, it's ESM, so we will hopefully get smaller bundle sizes too. The only issue is that this fork isn't very well used (only has 3000 weekly downloads), compared to `dagre-d3`'s 250,000 weekly downloads. (although to be fair, a large proportion of dagre-d3's downloads probably come from mermaid) Since it's is a less popular package, **I've pinned `dagre-d3-es` to `"7.0.2"` instead of `"^7.0.2"`**. This does mean if there is a bug in `dagre-d3-es`, we will have to manually bump it ourselves, but it also means we won't accidentally be sending a buggy version of `dagre-d3-es` out to users in cases something changes (it might be worth disabling renovate for this if we're feeling paranoid!) --- package.json | 3 -- packages/mermaid/package.json | 6 +--- packages/mermaid/src/dagre-wrapper/index.js | 4 +-- .../dagre-wrapper/mermaid-graphlib.spec.js | 1 - .../src/diagrams/class/classRenderer.js | 4 +-- .../mermaid/src/diagrams/er/erRenderer.js | 4 +-- .../src/diagrams/flowchart/flowChartShapes.js | 25 ++++++------- .../src/diagrams/flowchart/flowRenderer-v2.js | 2 +- .../src/diagrams/flowchart/flowRenderer.js | 8 ++--- .../requirement/requirementRenderer.js | 4 +-- .../src/diagrams/state/stateRenderer.js | 4 +-- packages/mermaid/src/tests/setup.ts | 2 +- pnpm-lock.yaml | 35 +++++++------------ 13 files changed, 42 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index 7bd6488777..70fac0ea97 100644 --- a/package.json +++ b/package.json @@ -105,9 +105,6 @@ "vitepress-plugin-search": "^1.0.4-alpha.15", "vitest": "^0.25.1" }, - "resolutions": { - "d3": "^7.6.1" - }, "sideEffects": [ "**/*.css", "**/*.scss" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 842e9ba9ab..f79ffe6f3b 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -54,8 +54,7 @@ "dependencies": { "@braintree/sanitize-url": "^6.0.0", "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", + "dagre-d3-es": "7.0.2", "dompurify": "2.4.1", "fast-clone": "^1.5.13", "graphlib": "^2.1.8", @@ -98,9 +97,6 @@ "typescript": "^4.8.4", "unist-util-flatmap": "^1.0.0" }, - "resolutions": { - "d3": "^7.0.0" - }, "files": [ "dist", "README.md" diff --git a/packages/mermaid/src/dagre-wrapper/index.js b/packages/mermaid/src/dagre-wrapper/index.js index 72652ff8c5..43fe311b39 100644 --- a/packages/mermaid/src/dagre-wrapper/index.js +++ b/packages/mermaid/src/dagre-wrapper/index.js @@ -1,4 +1,4 @@ -import dagre from 'dagre'; +import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import graphlib from 'graphlib'; import insertMarkers from './markers'; import { updateNodeBounds } from './shapes/util'; @@ -95,7 +95,7 @@ const recursiveRender = (_elem, graph, diagramtype, parentCluster) => { log.info('### Layout ###'); log.info('#############################################'); log.info(graph); - dagre.layout(graph); + dagreLayout(graph); log.info('Graph after layout:', graphlib.json.write(graph)); // Move the nodes to the correct place let diff = 0; diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js index 8155bbf700..a09e17f023 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js @@ -1,5 +1,4 @@ import graphlib from 'graphlib'; -import dagre from 'dagre'; import { validate, adjustClustersAndEdges, diff --git a/packages/mermaid/src/diagrams/class/classRenderer.js b/packages/mermaid/src/diagrams/class/classRenderer.js index 23b5861928..357647427e 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer.js +++ b/packages/mermaid/src/diagrams/class/classRenderer.js @@ -1,5 +1,5 @@ import { select } from 'd3'; -import dagre from 'dagre'; +import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import graphlib from 'graphlib'; import { log } from '../../logger'; import svgDraw from './svgDraw'; @@ -238,7 +238,7 @@ export const draw = function (text, id, _version, diagObj) { } }); - dagre.layout(g); + dagreLayout(g); g.nodes().forEach(function (v) { if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') { log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))); diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 323bb4607c..57aa737abb 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -1,6 +1,6 @@ import graphlib from 'graphlib'; import { line, curveBasis, select } from 'd3'; -import dagre from 'dagre'; +import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import { getConfig } from '../../config'; import { log } from '../../logger'; import erMarkers from './erMarkers'; @@ -637,7 +637,7 @@ export const draw = function (text, id, _version, diagObj) { // Add all the relationships to the graph const relationships = addRelationships(diagObj.db.getRelationships(), g); - dagre.layout(g); // Node and edge positions will be updated + dagreLayout(g); // Node and edge positions will be updated // Adjust the positions of the entities so that they adhere to the layout adjustEntities(svg, g); diff --git a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js index b66bfe730f..d02d484c4f 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js +++ b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.js @@ -1,4 +1,5 @@ -import dagreD3 from 'dagre-d3'; +import { intersectPolygon } from 'dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js'; +import { intersectRect } from 'dagre-d3-es/src/dagre-js/intersect/intersect-rect.js'; /** * @param parent @@ -17,7 +18,7 @@ function question(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, s, s, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -42,7 +43,7 @@ function hexagon(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -64,7 +65,7 @@ function rect_left_inv_arrow(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -85,7 +86,7 @@ function lean_right(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -106,7 +107,7 @@ function lean_left(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -127,7 +128,7 @@ function trapezoid(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -148,7 +149,7 @@ function inv_trapezoid(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -170,7 +171,7 @@ function rect_right_inv_arrow(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -194,7 +195,7 @@ function stadium(parent, bbox, node) { .attr('height', h); node.intersect = function (point) { - return dagreD3.intersect.rect(node, point); + return intersectRect(node, point); }; return shapeSvg; } @@ -221,7 +222,7 @@ function subroutine(parent, bbox, node) { ]; const shapeSvg = insertPolygonShape(parent, w, h, points); node.intersect = function (point) { - return dagreD3.intersect.polygon(node, points, point); + return intersectPolygon(node, points, point); }; return shapeSvg; } @@ -270,7 +271,7 @@ function cylinder(parent, bbox, node) { .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')'); node.intersect = function (point) { - const pos = dagreD3.intersect.rect(node, point); + const pos = intersectRect(node, point); const x = pos.x - node.x; if ( diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index 6b7c4c1bfe..86eb525040 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -5,7 +5,7 @@ import flowDb from './flowDb'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; -import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js'; +import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; import { log } from '../../logger'; import common, { evaluate } from '../common/common'; import { interpolateToCurve, getStylesFromArray } from '../../utils'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index c403b7fe32..0fcbce5451 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -1,8 +1,9 @@ import graphlib from 'graphlib'; import { select, curveLinear, selectAll } from 'd3'; import { getConfig } from '../../config'; -import dagreD3 from 'dagre-d3'; -import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js'; +import { render as Render } from 'dagre-d3-es'; +import { applyStyle } from 'dagre-d3-es/src/dagre-js/util.js'; +import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; import { log } from '../../logger'; import common, { evaluate } from '../common/common'; import { interpolateToCurve, getStylesFromArray } from '../../utils'; @@ -370,7 +371,6 @@ export const draw = function (text, id, _version, diagObj) { addEdges(edges, g, diagObj); // Create the renderer - const Render = dagreD3.render; const render = new Render(); // Add custom shapes @@ -390,7 +390,7 @@ export const draw = function (text, id, _version, diagObj) { .attr('orient', 'auto'); const path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z'); - dagreD3.util.applyStyle(path, edge[type + 'Style']); + applyStyle(path, edge[type + 'Style']); }; // Override normal arrowhead defined in d3. Remove style & add class to allow css styling. diff --git a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js index 79d67e76ed..0338ec50c8 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js +++ b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js @@ -1,5 +1,5 @@ import { line, select } from 'd3'; -import dagre from 'dagre'; +import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import graphlib from 'graphlib'; import { log } from '../../logger'; import { configureSvgSize } from '../../setupGraphViewbox'; @@ -348,7 +348,7 @@ export const draw = (text, id, _version, diagObj) => { drawReqs(requirements, g, svg); drawElements(elements, g, svg); addRelationships(relationships, g); - dagre.layout(g); + dagreLayout(g); adjustEntities(svg, g); relationships.forEach(function (rel) { diff --git a/packages/mermaid/src/diagrams/state/stateRenderer.js b/packages/mermaid/src/diagrams/state/stateRenderer.js index 73717a645c..783460cc69 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer.js @@ -1,5 +1,5 @@ import { select } from 'd3'; -import dagre from 'dagre'; +import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import graphlib from 'graphlib'; import { log } from '../../logger'; import common from '../common/common'; @@ -239,7 +239,7 @@ const renderDoc = (doc, diagram, parentId, altBkg, root, domDocument, diagObj) = ); }); - dagre.layout(graph); + dagreLayout(graph); log.debug('Graph after layout', graph.nodes()); const svgElem = diagram.node(); diff --git a/packages/mermaid/src/tests/setup.ts b/packages/mermaid/src/tests/setup.ts index e8058c5179..b3330787cc 100644 --- a/packages/mermaid/src/tests/setup.ts +++ b/packages/mermaid/src/tests/setup.ts @@ -1,3 +1,3 @@ import { vi } from 'vitest'; vi.mock('d3'); -vi.mock('dagre-d3'); +vi.mock('dagre-d3-es'); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11703bd03e..0a04f741e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,8 +1,5 @@ lockfileVersion: 5.4-inlineSpecifiers -overrides: - d3: ^7.6.1 - importers: .: @@ -167,14 +164,11 @@ importers: specifier: ^6.0.0 version: 6.0.0 d3: - specifier: ^7.6.1 + specifier: ^7.0.0 version: 7.6.1 - dagre: - specifier: ^0.8.5 - version: 0.8.5 - dagre-d3: - specifier: ^0.6.4 - version: 0.6.4 + dagre-d3-es: + specifier: 7.0.2 + version: 7.0.2 dompurify: specifier: 2.4.1 version: 2.4.1 @@ -318,7 +312,7 @@ importers: specifier: ^2.1.0 version: 2.1.0_cytoscape@3.23.0 d3: - specifier: ^7.6.1 + specifier: ^7.0.0 version: 7.6.1 khroma: specifier: ^2.0.0 @@ -4800,20 +4794,11 @@ packages: d3-zoom: 3.0.0 dev: false - /dagre-d3/0.6.4: - resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==} + /dagre-d3-es/7.0.2: + resolution: {integrity: sha512-m9+5yhzkf9gyklDMdWlQC/8bayGVlTF8GspmN6XC6nnZjas6kAmffvh0c/EcyFhQ+fp4QIl0fMpNdv76AJGlVQ==} dependencies: d3: 7.6.1 - dagre: 0.8.5 - graphlib: 2.1.8 - lodash: 4.17.21 - dev: false - - /dagre/0.8.5: - resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} - dependencies: - graphlib: 2.1.8 - lodash: 4.17.21 + lodash-es: 4.17.21 dev: false /dargs/7.0.0: @@ -7905,6 +7890,10 @@ packages: p-locate: 5.0.0 dev: true + /lodash-es/4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true From 70f024735b57ac5b29b5c339ac871078ab46fa5a Mon Sep 17 00:00:00 2001 From: Mason Malone <651224+MasonM@users.noreply.github.com> Date: Wed, 16 Nov 2022 19:36:51 -0800 Subject: [PATCH 0673/1038] Add title support using YAML frontmatter --- __mocks__/d3.ts | 12 ++++ .../rendering/classDiagram-v2.spec.js | 12 ++++ .../integration/rendering/erDiagram.spec.js | 13 ++++ .../rendering/flowchart-v2.spec.js | 11 +++ .../integration/rendering/gitGraph.spec.js | 11 +++ .../rendering/stateDiagram-v2.spec.js | 12 ++++ demos/classchart.html | 3 + demos/er.html | 3 + demos/flowchart.html | 6 ++ demos/git.html | 3 + demos/journey.html | 6 +- demos/state.html | 6 ++ docs/config/setup/modules/defaultConfig.md | 2 +- docs/syntax/classDiagram.md | 12 ++++ docs/syntax/entityRelationshipDiagram.md | 6 ++ docs/syntax/flowchart.md | 12 ++++ docs/syntax/gitgraph.md | 6 ++ docs/syntax/stateDiagram.md | 6 ++ package.json | 2 + packages/mermaid/src/Diagram.ts | 11 +++ packages/mermaid/src/config.type.ts | 5 ++ packages/mermaid/src/defaultConfig.ts | 52 ++++++++++++++ .../mermaid/src/diagram-api/detectType.ts | 3 +- .../src/diagram-api/frontmatter.spec.ts | 71 +++++++++++++++++++ .../mermaid/src/diagram-api/frontmatter.ts | 39 ++++++++++ .../mermaid/src/diagrams/class/classDb.js | 4 ++ .../src/diagrams/class/classRenderer-v2.js | 3 + packages/mermaid/src/diagrams/class/styles.js | 5 ++ packages/mermaid/src/diagrams/er/erDb.js | 4 ++ .../mermaid/src/diagrams/er/erRenderer.js | 3 + packages/mermaid/src/diagrams/er/styles.js | 6 ++ .../mermaid/src/diagrams/flowchart/flowDb.js | 4 ++ .../src/diagrams/flowchart/flowRenderer-v2.js | 3 + .../mermaid/src/diagrams/flowchart/styles.ts | 6 ++ .../mermaid/src/diagrams/git/gitGraphAst.js | 4 ++ .../src/diagrams/git/gitGraphRenderer.js | 7 ++ packages/mermaid/src/diagrams/git/styles.js | 5 ++ .../mermaid/src/diagrams/state/stateDb.js | 4 ++ .../src/diagrams/state/stateRenderer-v2.js | 4 +- packages/mermaid/src/diagrams/state/styles.js | 6 ++ .../mermaid/src/docs/syntax/classDiagram.md | 6 ++ .../docs/syntax/entityRelationshipDiagram.md | 3 + packages/mermaid/src/docs/syntax/flowchart.md | 6 ++ packages/mermaid/src/docs/syntax/gitgraph.md | 3 + .../mermaid/src/docs/syntax/stateDiagram.md | 3 + packages/mermaid/src/utils.spec.js | 31 ++++++++ packages/mermaid/src/utils.ts | 27 +++++++ pnpm-lock.yaml | 10 +++ 48 files changed, 477 insertions(+), 5 deletions(-) create mode 100644 packages/mermaid/src/diagram-api/frontmatter.spec.ts create mode 100644 packages/mermaid/src/diagram-api/frontmatter.ts diff --git a/__mocks__/d3.ts b/__mocks__/d3.ts index 67f09b6f4f..f90d93557b 100644 --- a/__mocks__/d3.ts +++ b/__mocks__/d3.ts @@ -53,6 +53,18 @@ export const MockD3 = (name, parent) => { get __parent() { return parent; }, + node() { + return { + getBBox() { + return { + x: 5, + y: 10, + height: 15, + width: 20, + }; + }, + }; + }, }; elem.append = (name) => { const mockElem = MockD3(name, elem); diff --git a/cypress/integration/rendering/classDiagram-v2.spec.js b/cypress/integration/rendering/classDiagram-v2.spec.js index e36693a652..f9ed7c64b1 100644 --- a/cypress/integration/rendering/classDiagram-v2.spec.js +++ b/cypress/integration/rendering/classDiagram-v2.spec.js @@ -496,4 +496,16 @@ describe('Class diagram V2', () => { ); cy.get('svg'); }); + + it('1433: should render a simple class with a title', () => { + imgSnapshotTest( + `--- + title: simple class diagram + --- + classDiagram-v2 + class Class10 + `, + {} + ); + }); }); diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js index 057b36dc13..dea3c76204 100644 --- a/cypress/integration/rendering/erDiagram.spec.js +++ b/cypress/integration/rendering/erDiagram.spec.js @@ -273,4 +273,17 @@ describe('Entity Relationship Diagram', () => { ); cy.get('svg'); }); + + it('1433: should render a simple ER diagram with a title', () => { + imgSnapshotTest( + `--- + title: simple ER diagram + --- + erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + `, + {} + ); + }); }); diff --git a/cypress/integration/rendering/flowchart-v2.spec.js b/cypress/integration/rendering/flowchart-v2.spec.js index 61dccfb84b..cdf0d07cad 100644 --- a/cypress/integration/rendering/flowchart-v2.spec.js +++ b/cypress/integration/rendering/flowchart-v2.spec.js @@ -663,4 +663,15 @@ flowchart RL { htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' } ); }); + it('1433: should render a titled flowchart with titleTopMargin set to 0', () => { + imgSnapshotTest( + `--- + title: Simple flowchart + --- + flowchart TD + A --> B + `, + { titleTopMargin: 0 } + ); + }); }); diff --git a/cypress/integration/rendering/gitGraph.spec.js b/cypress/integration/rendering/gitGraph.spec.js index afb39b62e6..cb70f72725 100644 --- a/cypress/integration/rendering/gitGraph.spec.js +++ b/cypress/integration/rendering/gitGraph.spec.js @@ -322,4 +322,15 @@ describe('Git Graph diagram', () => { {} ); }); + it('1433: should render a simple gitgraph with a title', () => { + imgSnapshotTest( + `--- + title: simple gitGraph + --- + gitGraph + commit + `, + {} + ); + }); }); diff --git a/cypress/integration/rendering/stateDiagram-v2.spec.js b/cypress/integration/rendering/stateDiagram-v2.spec.js index 5b43c890cb..7c322c1b3f 100644 --- a/cypress/integration/rendering/stateDiagram-v2.spec.js +++ b/cypress/integration/rendering/stateDiagram-v2.spec.js @@ -559,4 +559,16 @@ stateDiagram-v2 ); }); }); + it('1433: should render a simple state diagram with a title', () => { + imgSnapshotTest( + `--- + title: simple state diagram + --- + stateDiagram-v2 + [*] --> State1 + State1 --> [*] + `, + {} + ); + }); }); diff --git a/demos/classchart.html b/demos/classchart.html index 5979152d6d..3481bbad59 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -17,6 +17,9 @@

    Class diagram demos

    +    ---
    +    title: Demo Class Diagram
    +    ---
     		classDiagram
           accTitle: Demo Class Diagram
           accDescr: This class diagram show the abstract Animal class, and 3 classes that inherit from it: Duck, Fish, and Zebra.
    diff --git a/demos/er.html b/demos/er.html
    index 4c1a72c20c..06fbf020e7 100644
    --- a/demos/er.html
    +++ b/demos/er.html
    @@ -20,6 +20,9 @@
       
         
     
    +---
    +title: This is a title
    +---
     erDiagram
       %% title This is a title
       %% accDescription Test a description
    diff --git a/demos/flowchart.html b/demos/flowchart.html
    index e11bfcb262..60e6160c38 100644
    --- a/demos/flowchart.html
    +++ b/demos/flowchart.html
    @@ -17,6 +17,9 @@ 

    Comparison "graph vs. flowchart"

    Sample 1

    graph

    +    ---
    +    title: This is a complicated flow
    +    ---
         graph LR
           accTitle: This is a complicated flow
           accDescr: This is the descriptoin for the complicated flow.
    @@ -221,6 +224,9 @@ 

    flowchart

    Sample 2

    graph

    +    ---
    +    title: What to buy
    +    ---
         graph TD
           accTitle: What to buy
           accDescr: Options of what to buy with Christmas money
    diff --git a/demos/git.html b/demos/git.html
    index 15b4401dba..5e683152aa 100644
    --- a/demos/git.html
    +++ b/demos/git.html
    @@ -16,6 +16,9 @@
       
         

    Git diagram demo

    +    ---
    +    title: Simple Git diagram
    +    ---
         gitGraph:
         options
         {
    diff --git a/demos/journey.html b/demos/journey.html
    index c5c6c25e8d..71eecb5842 100644
    --- a/demos/journey.html
    +++ b/demos/journey.html
    @@ -16,8 +16,10 @@
       
         

    Journey diagram demo

    -         journey
    -    title My working day
    +     ---
    +     title: My working day 
    +     ---
    +     journey
           accTitle: Very simple journey demo
           accDescr: 2 main sections: work and home, each with just a few tasks
     
    diff --git a/demos/state.html b/demos/state.html
    index dbe2286a30..9f126cbc25 100644
    --- a/demos/state.html
    +++ b/demos/state.html
    @@ -17,6 +17,9 @@
         

    State diagram demos

    Very simple showing change from State1 to State2

    +    ---
    +    title: Very simple diagram
    +    ---
     		stateDiagram
     		  accTitle: This is the accessible title
           accDescr:This is an accessible description
    @@ -43,6 +46,9 @@ 

    And these are how they are applied:

    +    ---
    +    title: Very simple diagram
    +    ---
     		stateDiagram-v2
     		  accTitle: This is the accessible title
           accDescr: This is an accessible description
    diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md
    index c7ad1402f9..05f6f8a2c6 100644
    --- a/docs/config/setup/modules/defaultConfig.md
    +++ b/docs/config/setup/modules/defaultConfig.md
    @@ -14,7 +14,7 @@
     
     #### Defined in
     
    -[defaultConfig.ts:1881](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1881)
    +[defaultConfig.ts:1933](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1933)
     
     ---
     
    diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md
    index d57125c84d..e29c7295e8 100644
    --- a/docs/syntax/classDiagram.md
    +++ b/docs/syntax/classDiagram.md
    @@ -14,6 +14,9 @@ The class diagram is the main building block of object-oriented modeling. It is
     Mermaid can render class diagrams.
     
     ```mermaid-example
    +---
    +title: Animal example
    +---
     classDiagram
         note "From Duck till Zebra"
         Animal <|-- Duck
    @@ -40,6 +43,9 @@ classDiagram
     ```
     
     ```mermaid
    +---
    +title: Animal example
    +---
     classDiagram
         note "From Duck till Zebra"
         Animal <|-- Duck
    @@ -77,6 +83,9 @@ A single instance of a class in the diagram contains three compartments:
     - The bottom compartment contains the operations the class can execute. They are also left-aligned and the first letter is lowercase.
     
     ```mermaid-example
    +---
    +title: Bank example
    +---
     classDiagram
         class BankAccount
         BankAccount : +String owner
    @@ -87,6 +96,9 @@ classDiagram
     ```
     
     ```mermaid
    +---
    +title: Bank example
    +---
     classDiagram
         class BankAccount
         BankAccount : +String owner
    diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md
    index fef7b6fee7..9b938bc368 100644
    --- a/docs/syntax/entityRelationshipDiagram.md
    +++ b/docs/syntax/entityRelationshipDiagram.md
    @@ -13,6 +13,9 @@ Note that practitioners of ER modelling almost always refer to _entity types_ si
     Mermaid can render ER diagrams
     
     ```mermaid-example
    +---
    +title: Order example
    +---
     erDiagram
         CUSTOMER ||--o{ ORDER : places
         ORDER ||--|{ LINE-ITEM : contains
    @@ -20,6 +23,9 @@ erDiagram
     ```
     
     ```mermaid
    +---
    +title: Order example
    +---
     erDiagram
         CUSTOMER ||--o{ ORDER : places
         ORDER ||--|{ LINE-ITEM : contains
    diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md
    index 234f46236d..a6094499a6 100644
    --- a/docs/syntax/flowchart.md
    +++ b/docs/syntax/flowchart.md
    @@ -15,11 +15,17 @@ It can also accommodate different arrow types, multi directional arrows, and lin
     ### A node (default)
     
     ```mermaid-example
    +---
    +title: Node
    +---
     flowchart LR
         id
     ```
     
     ```mermaid
    +---
    +title: Node
    +---
     flowchart LR
         id
     ```
    @@ -33,11 +39,17 @@ found for the node that will be used. Also if you define edges for the node late
     one previously defined will be used when rendering the box.
     
     ```mermaid-example
    +---
    +title: Node with text
    +---
     flowchart LR
         id1[This is the text in the box]
     ```
     
     ```mermaid
    +---
    +title: Node with text
    +---
     flowchart LR
         id1[This is the text in the box]
     ```
    diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md
    index cd1a3f12a3..051e7ce39e 100644
    --- a/docs/syntax/gitgraph.md
    +++ b/docs/syntax/gitgraph.md
    @@ -13,6 +13,9 @@ These kind of diagram are particularly helpful to developers and devops teams to
     Mermaid can render Git diagrams
     
     ```mermaid-example
    +    ---
    +    title: Example Git diagram
    +    ---
         gitGraph
            commit
            commit
    @@ -27,6 +30,9 @@ Mermaid can render Git diagrams
     ```
     
     ```mermaid
    +    ---
    +    title: Example Git diagram
    +    ---
         gitGraph
            commit
            commit
    diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md
    index ec91411f61..1cec5afca1 100644
    --- a/docs/syntax/stateDiagram.md
    +++ b/docs/syntax/stateDiagram.md
    @@ -11,6 +11,9 @@
     Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml.
     
     ```mermaid-example
    +---
    +title: Simple sample
    +---
     stateDiagram-v2
         [*] --> Still
         Still --> [*]
    @@ -22,6 +25,9 @@ stateDiagram-v2
     ```
     
     ```mermaid
    +---
    +title: Simple sample
    +---
     stateDiagram-v2
         [*] --> Still
         Still --> [*]
    diff --git a/package.json b/package.json
    index 7bd6488777..1b904cb171 100644
    --- a/package.json
    +++ b/package.json
    @@ -60,6 +60,7 @@
         "@types/eslint": "^8.4.10",
         "@types/express": "^4.17.14",
         "@types/jsdom": "^20.0.1",
    +    "@types/js-yaml": "^4.0.5",
         "@types/lodash": "^4.14.188",
         "@types/mdast": "^3.0.10",
         "@types/node": "^18.11.9",
    @@ -90,6 +91,7 @@
         "jest": "^29.3.1",
         "jison": "^0.4.18",
         "jsdom": "^20.0.2",
    +    "js-yaml": "^4.1.0",
         "lint-staged": "^13.0.3",
         "path-browserify": "^1.0.1",
         "pnpm": "^7.15.0",
    diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts
    index 798adf5012..574dd0facd 100644
    --- a/packages/mermaid/src/Diagram.ts
    +++ b/packages/mermaid/src/Diagram.ts
    @@ -2,6 +2,7 @@ import * as configApi from './config';
     import { log } from './logger';
     import { getDiagram, registerDiagram } from './diagram-api/diagramAPI';
     import { detectType, getDiagramLoader } from './diagram-api/detectType';
    +import { extractFrontMatter } from './diagram-api/frontmatter';
     import { isDetailedError, type DetailedError } from './utils';
     
     export type ParseErrorFunction = (err: string | DetailedError, hash?: any) => void;
    @@ -29,6 +30,16 @@ export class Diagram {
         this.db.clear?.();
         this.renderer = diagram.renderer;
         this.parser = diagram.parser;
    +    const originalParse = this.parser.parse.bind(this.parser);
    +    // Wrap the jison parse() method to handle extracting frontmatter.
    +    //
    +    // This can't be done in this.parse() because some code
    +    // directly calls diagram.parser.parse(), bypassing this.parse().
    +    //
    +    // Similarly, we can't do this in getDiagramFromText() because some code
    +    // calls diagram.db.clear(), which would reset anything set by
    +    // extractFrontMatter().
    +    this.parser.parse = (text: string) => originalParse(extractFrontMatter(text, this.db));
         this.parser.parser.yy = this.db;
         if (diagram.init) {
           diagram.init(cnf);
    diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts
    index cbcd2f661a..ff199ca8b1 100644
    --- a/packages/mermaid/src/config.type.ts
    +++ b/packages/mermaid/src/config.type.ts
    @@ -189,6 +189,7 @@ export interface C4DiagramConfig extends BaseDiagramConfig {
     }
     
     export interface GitGraphDiagramConfig extends BaseDiagramConfig {
    +  titleTopMargin?: number;
       diagramPadding?: number;
       nodeLabel?: NodeLabel;
       mainBranchName?: string;
    @@ -227,6 +228,7 @@ export interface MindmapDiagramConfig extends BaseDiagramConfig {
     export type PieDiagramConfig = BaseDiagramConfig;
     
     export interface ErDiagramConfig extends BaseDiagramConfig {
    +  titleTopMargin?: number;
       diagramPadding?: number;
       layoutDirection?: string;
       minEntityWidth?: number;
    @@ -238,6 +240,7 @@ export interface ErDiagramConfig extends BaseDiagramConfig {
     }
     
     export interface StateDiagramConfig extends BaseDiagramConfig {
    +  titleTopMargin?: number;
       arrowMarkerAbsolute?: boolean;
       dividerMargin?: number;
       sizeUnit?: number;
    @@ -258,6 +261,7 @@ export interface StateDiagramConfig extends BaseDiagramConfig {
     }
     
     export interface ClassDiagramConfig extends BaseDiagramConfig {
    +  titleTopMargin?: number;
       arrowMarkerAbsolute?: boolean;
       dividerMargin?: number;
       padding?: number;
    @@ -343,6 +347,7 @@ export interface SequenceDiagramConfig extends BaseDiagramConfig {
     }
     
     export interface FlowchartDiagramConfig extends BaseDiagramConfig {
    +  titleTopMargin?: number;
       arrowMarkerAbsolute?: boolean;
       diagramPadding?: number;
       htmlLabels?: boolean;
    diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts
    index 2ddae580ca..37d4f71fff 100644
    --- a/packages/mermaid/src/defaultConfig.ts
    +++ b/packages/mermaid/src/defaultConfig.ts
    @@ -154,6 +154,17 @@ const config: Partial = {
     
       /** The object containing configurations specific for flowcharts */
       flowchart: {
    +    /**
    +     * ### titleTopMargin
    +     *
    +     * | Parameter      | Description                                    | Type    | Required | Values             |
    +     * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
    +     * | titleTopMargin | Margin top for the text over the flowchart     | Integer | Required | Any Positive Value |
    +     *
    +     * **Notes:** Default value: 25
    +     */
    +    titleTopMargin: 25,
    +
         /**
          * | Parameter      | Description                                     | Type    | Required | Values             |
          * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
    @@ -851,6 +862,16 @@ const config: Partial = {
         sectionColours: ['#fff'],
       },
       class: {
    +    /**
    +     * ### titleTopMargin
    +     *
    +     * | Parameter      | Description                                    | Type    | Required | Values             |
    +     * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
    +     * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
    +     *
    +     * **Notes:** Default value: 25
    +     */
    +    titleTopMargin: 25,
         arrowMarkerAbsolute: false,
         dividerMargin: 10,
         padding: 5,
    @@ -884,6 +905,16 @@ const config: Partial = {
         defaultRenderer: 'dagre-wrapper',
       },
       state: {
    +    /**
    +     * ### titleTopMargin
    +     *
    +     * | Parameter      | Description                                    | Type    | Required | Values             |
    +     * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
    +     * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
    +     *
    +     * **Notes:** Default value: 25
    +     */
    +    titleTopMargin: 25,
         dividerMargin: 10,
         sizeUnit: 5,
         padding: 8,
    @@ -932,6 +963,17 @@ const config: Partial = {
     
       /** The object containing configurations specific for entity relationship diagrams */
       er: {
    +    /**
    +     * ### titleTopMargin
    +     *
    +     * | Parameter      | Description                                    | Type    | Required | Values             |
    +     * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
    +     * | titleTopMargin | Margin top for the text over the diagram       | Integer | Required | Any Positive Value |
    +     *
    +     * **Notes:** Default value: 25
    +     */
    +    titleTopMargin: 25,
    +
         /**
          * | Parameter      | Description                                     | Type    | Required | Values             |
          * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
    @@ -1085,6 +1127,16 @@ const config: Partial = {
         line_height: 20,
       },
       gitGraph: {
    +    /**
    +     * ### titleTopMargin
    +     *
    +     * | Parameter      | Description                                    | Type    | Required | Values             |
    +     * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
    +     * | titleTopMargin | Margin top for the text over the Git diagram   | Integer | Required | Any Positive Value |
    +     *
    +     * **Notes:** Default value: 25
    +     */
    +    titleTopMargin: 25,
         diagramPadding: 8,
         nodeLabel: {
           width: 75,
    diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts
    index 1c1abc51c9..6f98572212 100644
    --- a/packages/mermaid/src/diagram-api/detectType.ts
    +++ b/packages/mermaid/src/diagram-api/detectType.ts
    @@ -1,6 +1,7 @@
     import { MermaidConfig } from '../config.type';
     import { log } from '../logger';
     import { DetectorRecord, DiagramDetector, DiagramLoader } from './types';
    +import { frontMatterRegex } from './frontmatter';
     
     const directive =
       /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
    @@ -31,7 +32,7 @@ const detectors: Record = {};
      * @returns A graph definition key
      */
     export const detectType = function (text: string, config?: MermaidConfig): string {
    -  text = text.replace(directive, '').replace(anyComment, '\n');
    +  text = text.replace(frontMatterRegex, '').replace(directive, '').replace(anyComment, '\n');
       for (const [key, { detector }] of Object.entries(detectors)) {
         const diagram = detector(text, config);
         if (diagram) {
    diff --git a/packages/mermaid/src/diagram-api/frontmatter.spec.ts b/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    new file mode 100644
    index 0000000000..92aa70573d
    --- /dev/null
    +++ b/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    @@ -0,0 +1,71 @@
    +import { vi } from 'vitest';
    +import { extractFrontMatter } from './frontmatter';
    +
    +const dbMock = () => ({ setDiagramTitle: vi.fn() });
    +
    +describe('extractFrontmatter', () => {
    +  it('returns text unchanged if no frontmatter', () => {
    +    expect(extractFrontMatter('diagram', null)).toEqual('diagram');
    +  });
    +
    +  it('returns text unchanged if frontmatter lacks closing delimiter', () => {
    +    const text = `---\ntitle: foo\ndiagram`;
    +    expect(extractFrontMatter(text, null)).toEqual(text);
    +  });
    +
    +  it('handles empty frontmatter', () => {
    +    const db = dbMock();
    +    const text = `---\n\n---\ndiagram`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram');
    +    expect(db.setDiagramTitle).not.toHaveBeenCalled();
    +  });
    +
    +  it('handles frontmatter without mappings', () => {
    +    const db = dbMock();
    +    const text = `---\n1\n---\ndiagram`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram');
    +    expect(db.setDiagramTitle).not.toHaveBeenCalled();
    +  });
    +
    +  it('does not try to parse frontmatter at the end', () => {
    +    const db = dbMock();
    +    const text = `diagram\n---\ntitle: foo\n---\n`;
    +    expect(extractFrontMatter(text, db)).toEqual(text);
    +    expect(db.setDiagramTitle).not.toHaveBeenCalled();
    +  });
    +
    +  it('handles frontmatter with multiple delimiters', () => {
    +    const db = dbMock();
    +    const text = `---\ntitle: foo---bar\n---\ndiagram\n---\ntest`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram\n---\ntest');
    +    expect(db.setDiagramTitle).toHaveBeenCalledWith('foo---bar');
    +  });
    +
    +  it('handles frontmatter with title', () => {
    +    const db = dbMock();
    +    const text = `---\ntitle: foo\n---\ndiagram`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram');
    +    expect(db.setDiagramTitle).toHaveBeenCalledWith('foo');
    +  });
    +
    +  it('handles booleans in frontmatter properly', () => {
    +    const db = dbMock();
    +    const text = `---\ntitle: true\n---\ndiagram`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram');
    +    expect(db.setDiagramTitle).toHaveBeenCalledWith('true');
    +  });
    +
    +  it('ignores unspecified frontmatter keys', () => {
    +    const db = dbMock();
    +    const text = `---\ninvalid: true\ntitle: foo\ntest: bar\n---\ndiagram`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram');
    +    expect(db.setDiagramTitle).toHaveBeenCalledWith('foo');
    +  });
    +
    +  it('throws exception for invalid YAML syntax', () => {
    +    const text = `---\n!!!\n---\ndiagram`;
    +    expect(() => extractFrontMatter(text, null)).toThrow(
    +      'tag suffix cannot contain exclamation marks'
    +    );
    +  });
    +});
    diff --git a/packages/mermaid/src/diagram-api/frontmatter.ts b/packages/mermaid/src/diagram-api/frontmatter.ts
    new file mode 100644
    index 0000000000..46b161582a
    --- /dev/null
    +++ b/packages/mermaid/src/diagram-api/frontmatter.ts
    @@ -0,0 +1,39 @@
    +// The "* as yaml" part is necessary for tree-shaking
    +import * as yaml from 'js-yaml';
    +
    +// Match Jekyll-style front matter blocks (https://jekyllrb.com/docs/front-matter/).
    +// Based on regex used by Jekyll: https://github.com/jekyll/jekyll/blob/6dd3cc21c40b98054851846425af06c64f9fb466/lib/jekyll/document.rb#L10
    +// Note that JS doesn't support the "\A" anchor, which means we can't use
    +// multiline mode.
    +// Relevant YAML spec: https://yaml.org/spec/1.2.2/#914-explicit-documents
    +export const frontMatterRegex = /^(?:\s*---\s*[\r\n])(.*?)(?:[\r\n]\s*---\s*[\r\n]+)/s;
    +
    +type FrontMatterMetadata = {
    +  title?: string;
    +};
    +
    +/**
    + * Extract and parse frontmatter from text, if present, and sets appropriate
    + * properties in the provided db.
    + * @param text -
    + * @param db -
    + * @returns text with frontmatter stripped out
    + */
    +export function extractFrontMatter(text: string, db: any): string {
    +  const matches = text.match(frontMatterRegex);
    +  if (matches) {
    +    const parsed: FrontMatterMetadata = yaml.load(matches[1], {
    +      // To keep things simple, only allow strings, arrays, and plain objects.
    +      // https://www.yaml.org/spec/1.2/spec.html#id2802346
    +      schema: yaml.FAILSAFE_SCHEMA,
    +    }) as FrontMatterMetadata;
    +
    +    if (parsed && parsed.title) {
    +      db?.setDiagramTitle(parsed.title);
    +    }
    +
    +    return text.slice(matches[0].length);
    +  } else {
    +    return text;
    +  }
    +}
    diff --git a/packages/mermaid/src/diagrams/class/classDb.js b/packages/mermaid/src/diagrams/class/classDb.js
    index 83ef6072b4..9830c059e7 100644
    --- a/packages/mermaid/src/diagrams/class/classDb.js
    +++ b/packages/mermaid/src/diagrams/class/classDb.js
    @@ -10,6 +10,8 @@ import {
       getAccDescription,
       setAccDescription,
       clear as commonClear,
    +  setDiagramTitle,
    +  getDiagramTitle,
     } from '../../commonDb';
     
     const MERMAID_DOM_ID_PREFIX = 'classid-';
    @@ -408,4 +410,6 @@ export default {
       getTooltip,
       setTooltip,
       lookUpDomId,
    +  setDiagramTitle,
    +  getDiagramTitle,
     };
    diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js
    index fbc2e4833a..bca3c01c83 100644
    --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js
    +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js
    @@ -3,6 +3,7 @@ import graphlib from 'graphlib';
     import { log } from '../../logger';
     import { getConfig } from '../../config';
     import { render } from '../../dagre-wrapper/index.js';
    +import utils from '../../utils';
     import { curveLinear } from 'd3';
     import { interpolateToCurve, getStylesFromArray } from '../../utils';
     import { setupGraphViewbox } from '../../setupGraphViewbox';
    @@ -429,6 +430,8 @@ export const draw = function (text, id, _version, diagObj) {
         id
       );
     
    +  utils.insertTitle(svg, 'classTitleText', conf.titleTopMargin, diagObj.db.getDiagramTitle());
    +
       setupGraphViewbox(g, svg, conf.diagramPadding, conf.useMaxWidth);
     
       // Add label rects for non html labels
    diff --git a/packages/mermaid/src/diagrams/class/styles.js b/packages/mermaid/src/diagrams/class/styles.js
    index bc391114ed..981cd7b730 100644
    --- a/packages/mermaid/src/diagrams/class/styles.js
    +++ b/packages/mermaid/src/diagrams/class/styles.js
    @@ -148,6 +148,11 @@ g.classGroup line {
       font-size: 11px;
     }
     
    +.classTitleText {
    +  text-anchor: middle;
    +  font-size: 18px;
    +  fill: ${options.textColor};
    +}
     `;
     
     export default getStyles;
    diff --git a/packages/mermaid/src/diagrams/er/erDb.js b/packages/mermaid/src/diagrams/er/erDb.js
    index ad3454f846..96b60836bc 100644
    --- a/packages/mermaid/src/diagrams/er/erDb.js
    +++ b/packages/mermaid/src/diagrams/er/erDb.js
    @@ -8,6 +8,8 @@ import {
       getAccDescription,
       setAccDescription,
       clear as commonClear,
    +  setDiagramTitle,
    +  getDiagramTitle,
     } from '../../commonDb';
     
     let entities = {};
    @@ -94,4 +96,6 @@ export default {
       getAccTitle,
       setAccDescription,
       getAccDescription,
    +  setDiagramTitle,
    +  getDiagramTitle,
     };
    diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js
    index 323bb4607c..c6d00d4a70 100644
    --- a/packages/mermaid/src/diagrams/er/erRenderer.js
    +++ b/packages/mermaid/src/diagrams/er/erRenderer.js
    @@ -3,6 +3,7 @@ import { line, curveBasis, select } from 'd3';
     import dagre from 'dagre';
     import { getConfig } from '../../config';
     import { log } from '../../logger';
    +import utils from '../../utils';
     import erMarkers from './erMarkers';
     import { configureSvgSize } from '../../setupGraphViewbox';
     import addSVGAccessibilityFields from '../../accessibility';
    @@ -649,6 +650,8 @@ export const draw = function (text, id, _version, diagObj) {
     
       const padding = conf.diagramPadding;
     
    +  utils.insertTitle(svg, 'entityTitleText', conf.titleTopMargin, diagObj.db.getDiagramTitle());
    +
       const svgBounds = svg.node().getBBox();
       const width = svgBounds.width + padding * 2;
       const height = svgBounds.height + padding * 2;
    diff --git a/packages/mermaid/src/diagrams/er/styles.js b/packages/mermaid/src/diagrams/er/styles.js
    index 907d813b67..42dbcebdee 100644
    --- a/packages/mermaid/src/diagrams/er/styles.js
    +++ b/packages/mermaid/src/diagrams/er/styles.js
    @@ -27,6 +27,12 @@ const getStyles = (options) =>
         .relationshipLine {
           stroke: ${options.lineColor};
         }
    +
    +  .entityTitleText {
    +    text-anchor: middle;
    +    font-size: 18px;
    +    fill: ${options.textColor};
    +  }    
     `;
     
     export default getStyles;
    diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js
    index 6abc22659a..38754c667a 100644
    --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js
    +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js
    @@ -10,6 +10,8 @@ import {
       getAccDescription,
       setAccDescription,
       clear as commonClear,
    +  setDiagramTitle,
    +  getDiagramTitle,
     } from '../../commonDb';
     
     const MERMAID_DOM_ID_PREFIX = 'flowchart-';
    @@ -785,4 +787,6 @@ export default {
       },
       exists,
       makeUniq,
    +  setDiagramTitle,
    +  getDiagramTitle,
     };
    diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js
    index 6b7c4c1bfe..5f0288b035 100644
    --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js
    +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js
    @@ -3,6 +3,7 @@ import { select, curveLinear, selectAll } from 'd3';
     
     import flowDb from './flowDb';
     import { getConfig } from '../../config';
    +import utils from '../../utils';
     
     import { render } from '../../dagre-wrapper/index.js';
     import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';
    @@ -437,6 +438,8 @@ export const draw = function (text, id, _version, diagObj) {
       const element = root.select('#' + id + ' g');
       render(element, g, ['point', 'circle', 'cross'], 'flowchart', id);
     
    +  utils.insertTitle(svg, 'flowchartTitleText', conf.titleTopMargin, diagObj.db.getDiagramTitle());
    +
       setupGraphViewbox(g, svg, conf.diagramPadding, conf.useMaxWidth);
     
       // Index nodes
    diff --git a/packages/mermaid/src/diagrams/flowchart/styles.ts b/packages/mermaid/src/diagrams/flowchart/styles.ts
    index 82fb1f8759..a89d33d3dc 100644
    --- a/packages/mermaid/src/diagrams/flowchart/styles.ts
    +++ b/packages/mermaid/src/diagrams/flowchart/styles.ts
    @@ -103,6 +103,12 @@ const getStyles = (options: FlowChartStyleOptions) =>
         pointer-events: none;
         z-index: 100;
       }
    +
    +  .flowchartTitleText {
    +    text-anchor: middle;
    +    font-size: 18px;
    +    fill: ${options.textColor};
    +  }
     `;
     
     export default getStyles;
    diff --git a/packages/mermaid/src/diagrams/git/gitGraphAst.js b/packages/mermaid/src/diagrams/git/gitGraphAst.js
    index 496e578b71..65980933d4 100644
    --- a/packages/mermaid/src/diagrams/git/gitGraphAst.js
    +++ b/packages/mermaid/src/diagrams/git/gitGraphAst.js
    @@ -10,6 +10,8 @@ import {
       getAccDescription,
       setAccDescription,
       clear as commonClear,
    +  setDiagramTitle,
    +  getDiagramTitle,
     } from '../../commonDb';
     
     let mainBranchName = getConfig().gitGraph.mainBranchName;
    @@ -529,5 +531,7 @@ export default {
       getAccTitle,
       getAccDescription,
       setAccDescription,
    +  setDiagramTitle,
    +  getDiagramTitle,
       commitType,
     };
    diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js
    index 71698a5007..75e8d445dc 100644
    --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js
    +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js
    @@ -1,6 +1,7 @@
     import { select } from 'd3';
     import { getConfig, setupGraphViewbox } from '../../diagram-api/diagramAPI';
     import { log } from '../../logger';
    +import utils from '../../utils';
     import addSVGAccessibilityFields from '../../accessibility';
     
     let allCommitsDict = {};
    @@ -521,6 +522,12 @@ export const draw = function (txt, id, ver, diagObj) {
       }
       drawArrows(diagram, allCommitsDict);
       drawCommits(diagram, allCommitsDict, true);
    +  utils.insertTitle(
    +    diagram,
    +    'gitTitleText',
    +    gitGraphConfig.titleTopMargin,
    +    diagObj.db.getDiagramTitle()
    +  );
     
       // Setup the view box and size of the svg element
       setupGraphViewbox(
    diff --git a/packages/mermaid/src/diagrams/git/styles.js b/packages/mermaid/src/diagrams/git/styles.js
    index 7e09ff7e0e..7417602356 100644
    --- a/packages/mermaid/src/diagrams/git/styles.js
    +++ b/packages/mermaid/src/diagrams/git/styles.js
    @@ -51,6 +51,11 @@ const getStyles = (options) =>
       }
     
       .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
    +  .gitTitleText {
    +    text-anchor: middle;
    +    font-size: 18px;
    +    fill: ${options.textColor};
    +  }
       }
     `;
     
    diff --git a/packages/mermaid/src/diagrams/state/stateDb.js b/packages/mermaid/src/diagrams/state/stateDb.js
    index 5e82eaf78b..19ecbe65f5 100644
    --- a/packages/mermaid/src/diagrams/state/stateDb.js
    +++ b/packages/mermaid/src/diagrams/state/stateDb.js
    @@ -9,6 +9,8 @@ import {
       getAccDescription,
       setAccDescription,
       clear as commonClear,
    +  setDiagramTitle,
    +  getDiagramTitle,
     } from '../../commonDb';
     
     import {
    @@ -571,4 +573,6 @@ export default {
       addStyleClass,
       setCssClass,
       addDescription,
    +  setDiagramTitle,
    +  getDiagramTitle,
     };
    diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js
    index 752b70e445..03c6787892 100644
    --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js
    +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js
    @@ -5,6 +5,7 @@ import { render } from '../../dagre-wrapper/index.js';
     import { log } from '../../logger';
     import { configureSvgSize } from '../../setupGraphViewbox';
     import common from '../common/common';
    +import utils from '../../utils';
     import addSVGAccessibilityFields from '../../accessibility';
     import {
       DEFAULT_DIAGRAM_DIRECTION,
    @@ -437,8 +438,9 @@ export const draw = function (text, id, _version, diag) {
     
       const padding = 8;
     
    -  const bounds = svg.node().getBBox();
    +  utils.insertTitle(svg, 'statediagramTitleText', conf.titleTopMargin, diag.db.getDiagramTitle());
     
    +  const bounds = svg.node().getBBox();
       const width = bounds.width + padding * 2;
       const height = bounds.height + padding * 2;
     
    diff --git a/packages/mermaid/src/diagrams/state/styles.js b/packages/mermaid/src/diagrams/state/styles.js
    index 4a1c465122..f4783b477b 100644
    --- a/packages/mermaid/src/diagrams/state/styles.js
    +++ b/packages/mermaid/src/diagrams/state/styles.js
    @@ -194,6 +194,12 @@ g.stateGroup line {
       stroke: ${options.lineColor};
       stroke-width: 1;
     }
    +
    +.statediagramTitleText {
    +  text-anchor: middle;
    +  font-size: 18px;
    +  fill: ${options.textColor};
    +}
     `;
     
     export default getStyles;
    diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md
    index 20bdd657f8..6ef0b82c99 100644
    --- a/packages/mermaid/src/docs/syntax/classDiagram.md
    +++ b/packages/mermaid/src/docs/syntax/classDiagram.md
    @@ -8,6 +8,9 @@ The class diagram is the main building block of object-oriented modeling. It is
     Mermaid can render class diagrams.
     
     ```mermaid-example
    +---
    +title: Animal example
    +---
     classDiagram
         note "From Duck till Zebra"
         Animal <|-- Duck
    @@ -45,6 +48,9 @@ A single instance of a class in the diagram contains three compartments:
     - The bottom compartment contains the operations the class can execute. They are also left-aligned and the first letter is lowercase.
     
     ```mermaid-example
    +---
    +title: Bank example
    +---
     classDiagram
         class BankAccount
         BankAccount : +String owner
    diff --git a/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md
    index e52b0df4c1..c666877c5f 100644
    --- a/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md
    +++ b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md
    @@ -7,6 +7,9 @@ Note that practitioners of ER modelling almost always refer to _entity types_ si
     Mermaid can render ER diagrams
     
     ```mermaid-example
    +---
    +title: Order example
    +---
     erDiagram
         CUSTOMER ||--o{ ORDER : places
         ORDER ||--|{ LINE-ITEM : contains
    diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md
    index 25252e54d7..5888db105c 100644
    --- a/packages/mermaid/src/docs/syntax/flowchart.md
    +++ b/packages/mermaid/src/docs/syntax/flowchart.md
    @@ -9,6 +9,9 @@ It can also accommodate different arrow types, multi directional arrows, and lin
     ### A node (default)
     
     ```mermaid-example
    +---
    +title: Node
    +---
     flowchart LR
         id
     ```
    @@ -22,6 +25,9 @@ found for the node that will be used. Also if you define edges for the node late
     one previously defined will be used when rendering the box.
     
     ```mermaid-example
    +---
    +title: Node with text
    +---
     flowchart LR
         id1[This is the text in the box]
     ```
    diff --git a/packages/mermaid/src/docs/syntax/gitgraph.md b/packages/mermaid/src/docs/syntax/gitgraph.md
    index b19c1e2cda..c3210af313 100644
    --- a/packages/mermaid/src/docs/syntax/gitgraph.md
    +++ b/packages/mermaid/src/docs/syntax/gitgraph.md
    @@ -7,6 +7,9 @@ These kind of diagram are particularly helpful to developers and devops teams to
     Mermaid can render Git diagrams
     
     ```mermaid-example
    +    ---
    +    title: Example Git diagram
    +    ---
         gitGraph
            commit
            commit
    diff --git a/packages/mermaid/src/docs/syntax/stateDiagram.md b/packages/mermaid/src/docs/syntax/stateDiagram.md
    index e28819e7a2..9293e10839 100644
    --- a/packages/mermaid/src/docs/syntax/stateDiagram.md
    +++ b/packages/mermaid/src/docs/syntax/stateDiagram.md
    @@ -5,6 +5,9 @@
     Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml.
     
     ```mermaid-example
    +---
    +title: Simple sample
    +---
     stateDiagram-v2
         [*] --> Still
         Still --> [*]
    diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js
    index 4a511b3c04..04cf9b7695 100644
    --- a/packages/mermaid/src/utils.spec.js
    +++ b/packages/mermaid/src/utils.spec.js
    @@ -4,6 +4,7 @@ import assignWithDepth from './assignWithDepth';
     import { detectType } from './diagram-api/detectType';
     import { addDiagrams } from './diagram-api/diagram-orchestration';
     import memoize from 'lodash/memoize';
    +import { MockD3 } from 'd3';
     addDiagrams();
     
     describe('when assignWithDepth: should merge objects within objects', function () {
    @@ -232,6 +233,16 @@ Alice->Bob: hi`;
         const type = detectType(str);
         expect(type).toBe('gitGraph');
       });
    +  it('should handle frontmatter', function () {
    +    const str = '---\ntitle: foo\n---\n  gitGraph TB:\nbfs1:queue';
    +    const type = detectType(str);
    +    expect(type).toBe('gitGraph');
    +  });
    +  it('should handle frontmatter with leading spaces', function () {
    +    const str = '    ---\ntitle: foo\n---\n  gitGraph TB:\nbfs1:queue';
    +    const type = detectType(str);
    +    expect(type).toBe('gitGraph');
    +  });
     });
     describe('when finding substring in array ', function () {
       it('should return the array index that contains the substring', function () {
    @@ -340,3 +351,23 @@ describe('when initializing the id generator', function () {
         expect(idGenerator.next()).toEqual(lastId + 1);
       });
     });
    +
    +describe('when inserting titles', function () {
    +  it('should do nothing when title is empty', function () {
    +    const svg = MockD3('svg');
    +    utils.insertTitle(svg, 'testClass', 0, '');
    +    expect(svg.__children.length).toBe(0);
    +  });
    +
    +  it('should insert title centered', function () {
    +    const svg = MockD3('svg');
    +    utils.insertTitle(svg, 'testClass', 5, 'test title');
    +    expect(svg.__children.length).toBe(1);
    +    const text = svg.__children[0];
    +    expect(text.__name).toBe('text');
    +    expect(text.text).toHaveBeenCalledWith('test title');
    +    expect(text.attr).toHaveBeenCalledWith('x', 15);
    +    expect(text.attr).toHaveBeenCalledWith('y', -5);
    +    expect(text.attr).toHaveBeenCalledWith('class', 'testClass');
    +  });
    +});
    diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts
    index 3eecd5f4fb..82f89d61ab 100644
    --- a/packages/mermaid/src/utils.ts
    +++ b/packages/mermaid/src/utils.ts
    @@ -885,6 +885,32 @@ export function getErrorMessage(error: unknown): string {
       return String(error);
     }
     
    +/**
    + * Appends  element with the given title, centered.
    + *
    + * @param parent - d3 svg object to append title to
    + * @param cssClass - CSS class for the  element containing the title
    + * @param titleTopMargin - Margin in pixels between title and rest of the graph
    + * @param title - The title. If empty, returns immediately.
    + */
    +export const insertTitle = (
    +  parent,
    +  cssClass: string,
    +  titleTopMargin: number,
    +  title?: string
    +): void => {
    +  if (!title) {
    +    return;
    +  }
    +  const bounds = parent.node().getBBox();
    +  parent
    +    .append('text')
    +    .text(title)
    +    .attr('x', bounds.x + bounds.width / 2)
    +    .attr('y', -titleTopMargin)
    +    .attr('class', cssClass);
    +};
    +
     export default {
       assignWithDepth,
       wrapLabel,
    @@ -907,4 +933,5 @@ export default {
       initIdGenerator: initIdGenerator,
       directiveSanitizer,
       sanitizeCss,
    +  insertTitle,
     };
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index 85afcb31dc..3fa800f719 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -25,6 +25,9 @@ importers:
           '@types/express':
             specifier: ^4.17.14
             version: 4.17.14
    +      '@types/js-yaml':
    +        specifier: ^4.0.5
    +        version: 4.0.5
           '@types/jsdom':
             specifier: ^20.0.1
             version: 20.0.1
    @@ -115,6 +118,9 @@ importers:
           jison:
             specifier: ^0.4.18
             version: 0.4.18
    +      js-yaml:
    +        specifier: ^4.1.0
    +        version: 4.1.0
           jsdom:
             specifier: ^20.0.2
             version: 20.0.2
    @@ -2466,6 +2472,10 @@ packages:
           '@types/istanbul-lib-report': 3.0.0
         dev: true
     
    +  /@types/js-yaml/4.0.5:
    +    resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==}
    +    dev: true
    +
       /@types/jsdom/20.0.1:
         resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
         dependencies:
    
    From e3b9dbdf1338424bcbca3f89cf27eba1ac0f05eb Mon Sep 17 00:00:00 2001
    From: endolith 
    Date: Sat, 19 Nov 2022 09:08:35 -0500
    Subject: [PATCH 0674/1038] Fix typos
    
    ---
     packages/mermaid/src/docs/config/usage.md           | 2 +-
     packages/mermaid/src/docs/syntax/c4c.md             | 2 +-
     packages/mermaid/src/docs/syntax/classDiagram.md    | 2 +-
     packages/mermaid/src/docs/syntax/flowchart.md       | 2 +-
     packages/mermaid/src/docs/syntax/mindmap.md         | 2 +-
     packages/mermaid/src/docs/syntax/pie.md             | 2 +-
     packages/mermaid/src/docs/syntax/sequenceDiagram.md | 2 +-
     7 files changed, 7 insertions(+), 7 deletions(-)
    
    diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md
    index 187f3f89ce..3eac4ad6f3 100644
    --- a/packages/mermaid/src/docs/config/usage.md
    +++ b/packages/mermaid/src/docs/config/usage.md
    @@ -347,7 +347,7 @@ This is the preferred way of configuring mermaid.
     
     ## Using the mermaid object
     
    -Is it possible to set some configuration via the mermaid object. The two parameters that are supported using this
    +It is possible to set some configuration via the mermaid object. The two parameters that are supported using this
     approach are:
     
     - mermaid.startOnLoad
    diff --git a/packages/mermaid/src/docs/syntax/c4c.md b/packages/mermaid/src/docs/syntax/c4c.md
    index f9850f2cd3..78528f7b99 100644
    --- a/packages/mermaid/src/docs/syntax/c4c.md
    +++ b/packages/mermaid/src/docs/syntax/c4c.md
    @@ -318,7 +318,7 @@ UpdateRelStyle(customerA, bankA, $offsetY="60")
             Container(mobile, "Mobile App", "Xamarin", "Provides a limited subset of the Internet Banking functionality to customers via their mobile device.")
         }
     
    -    Deployment_Node(comp, "Customer's computer", "Mircosoft Windows or Apple macOS"){
    +    Deployment_Node(comp, "Customer's computer", "Microsoft Windows or Apple macOS"){
             Deployment_Node(browser, "Web Browser", "Google Chrome, Mozilla Firefox,
    Apple Safari or Microsoft Edge"){ Container(spa, "Single Page Application", "JavaScript and Angular", "Provides all of the Internet Banking functionality to customers via their web browser.") } diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index 20bdd657f8..b827d62b1c 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -379,7 +379,7 @@ click className href "url" "tooltip" ## Notes -It is possible to add notes on digram using `note "line1\nline2"` or note for class using `note for class "line1\nline2"` +It is possible to add notes on diagram using `note "line1\nline2"` or note for class using `note for class "line1\nline2"` ### Examples diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md index 25252e54d7..a6b3e9a04c 100644 --- a/packages/mermaid/src/docs/syntax/flowchart.md +++ b/packages/mermaid/src/docs/syntax/flowchart.md @@ -665,7 +665,7 @@ flowchart LR ## Configuration... -Is it possible to adjust the width of the rendered flowchart. +It is possible to adjust the width of the rendered flowchart. This is done by defining **mermaid.flowchartConfig** or by the CLI to use a JSON file with the configuration. How to use the CLI is described in the mermaidCLI page. mermaid.flowchartConfig can be set to a JSON string with config parameters or the corresponding object. diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md index af7a3df85e..bd73a76b76 100644 --- a/packages/mermaid/src/docs/syntax/mindmap.md +++ b/packages/mermaid/src/docs/syntax/mindmap.md @@ -15,7 +15,7 @@ mindmap Popularisation British popular psychology author Tony Buzan Research - On effectivness
    and eatures + On effectiveness
    and features On Automatic creation Uses Creative techniques diff --git a/packages/mermaid/src/docs/syntax/pie.md b/packages/mermaid/src/docs/syntax/pie.md index 4e14efce1b..2fe8c3e544 100644 --- a/packages/mermaid/src/docs/syntax/pie.md +++ b/packages/mermaid/src/docs/syntax/pie.md @@ -22,7 +22,7 @@ Drawing a pie chart is really simple in mermaid. - Followed by dataSet. Pie slices will be ordered clockwise in the same order as the labels. - `label` for a section in the pie diagram within `" "` quotes. - Followed by `:` colon as separator - - Followed by `positive numeric value` (supported upto two decimal places) + - Followed by `positive numeric value` (supported up to two decimal places) [pie] [showData] (OPTIONAL) [title] [titlevalue] (OPTIONAL) diff --git a/packages/mermaid/src/docs/syntax/sequenceDiagram.md b/packages/mermaid/src/docs/syntax/sequenceDiagram.md index beb417ee23..9c28883c96 100644 --- a/packages/mermaid/src/docs/syntax/sequenceDiagram.md +++ b/packages/mermaid/src/docs/syntax/sequenceDiagram.md @@ -534,7 +534,7 @@ text.actor { ## Configuration -Is it possible to adjust the margins for rendering the sequence diagram. +It is possible to adjust the margins for rendering the sequence diagram. This is done by defining `mermaid.sequenceConfig` or by the CLI to use a json file with the configuration. How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.md) page. From 2a0f6d4cc98f936ffc4a814cf78dff8ca32a5652 Mon Sep 17 00:00:00 2001 From: Doug Finke Date: Sat, 19 Nov 2022 11:20:13 -0500 Subject: [PATCH 0675/1038] Integrations added - Visual Studio Code [Polyglot Interactive Notebooks] --- packages/mermaid/src/docs/misc/integrations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md index 4c87d170eb..31f2d09d05 100644 --- a/packages/mermaid/src/docs/misc/integrations.md +++ b/packages/mermaid/src/docs/misc/integrations.md @@ -33,6 +33,7 @@ They also serve as proof of concept, for the variety of things that can be built - [markdown-for-mermaid-plugin](https://github.com/jamieh-mongolian/markdown-for-mermaid-plugin) - [JetBrains IDE eg Pycharm](https://www.jetbrains.com/go/guide/tips/mermaid-js-support-in-markdown/) - [mermerd](https://github.com/KarnerTh/mermerd) +- Visual Studio Code [Polyglot Interactive Notebooks](https://github.com/dotnet/interactive#net-interactive) ## CRM/ERP/Similar From a11ab3d5ea1477c02101eb7c4279b1dc0d2ef126 Mon Sep 17 00:00:00 2001 From: Mason Malone <651224+MasonM@users.noreply.github.com> Date: Sat, 19 Nov 2022 12:48:17 -0800 Subject: [PATCH 0676/1038] Disallow leading whitespace before delimiter --- .../integration/rendering/classDiagram-v2.spec.js | 10 +++++----- cypress/integration/rendering/erDiagram.spec.js | 12 ++++++------ cypress/integration/rendering/flowchart-v2.spec.js | 10 +++++----- cypress/integration/rendering/gitGraph.spec.js | 10 +++++----- .../integration/rendering/stateDiagram-v2.spec.js | 12 ++++++------ demos/classchart.html | 6 +++--- demos/flowchart.html | 12 ++++++------ demos/git.html | 6 +++--- demos/journey.html | 6 +++--- demos/state.html | 12 ++++++------ packages/mermaid/src/diagram-api/frontmatter.spec.ts | 7 +++++++ packages/mermaid/src/diagram-api/frontmatter.ts | 2 +- packages/mermaid/src/utils.spec.js | 5 ++--- 13 files changed, 58 insertions(+), 52 deletions(-) diff --git a/cypress/integration/rendering/classDiagram-v2.spec.js b/cypress/integration/rendering/classDiagram-v2.spec.js index f9ed7c64b1..f97458857e 100644 --- a/cypress/integration/rendering/classDiagram-v2.spec.js +++ b/cypress/integration/rendering/classDiagram-v2.spec.js @@ -500,11 +500,11 @@ describe('Class diagram V2', () => { it('1433: should render a simple class with a title', () => { imgSnapshotTest( `--- - title: simple class diagram - --- - classDiagram-v2 - class Class10 - `, +title: simple class diagram +--- +classDiagram-v2 +class Class10 +`, {} ); }); diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js index dea3c76204..8e8946170b 100644 --- a/cypress/integration/rendering/erDiagram.spec.js +++ b/cypress/integration/rendering/erDiagram.spec.js @@ -277,12 +277,12 @@ describe('Entity Relationship Diagram', () => { it('1433: should render a simple ER diagram with a title', () => { imgSnapshotTest( `--- - title: simple ER diagram - --- - erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - `, +title: simple ER diagram +--- +erDiagram +CUSTOMER ||--o{ ORDER : places +ORDER ||--|{ LINE-ITEM : contains +`, {} ); }); diff --git a/cypress/integration/rendering/flowchart-v2.spec.js b/cypress/integration/rendering/flowchart-v2.spec.js index cdf0d07cad..30ae4f0d25 100644 --- a/cypress/integration/rendering/flowchart-v2.spec.js +++ b/cypress/integration/rendering/flowchart-v2.spec.js @@ -666,11 +666,11 @@ flowchart RL it('1433: should render a titled flowchart with titleTopMargin set to 0', () => { imgSnapshotTest( `--- - title: Simple flowchart - --- - flowchart TD - A --> B - `, +title: Simple flowchart +--- +flowchart TD +A --> B +`, { titleTopMargin: 0 } ); }); diff --git a/cypress/integration/rendering/gitGraph.spec.js b/cypress/integration/rendering/gitGraph.spec.js index cb70f72725..0b5048b44b 100644 --- a/cypress/integration/rendering/gitGraph.spec.js +++ b/cypress/integration/rendering/gitGraph.spec.js @@ -325,11 +325,11 @@ describe('Git Graph diagram', () => { it('1433: should render a simple gitgraph with a title', () => { imgSnapshotTest( `--- - title: simple gitGraph - --- - gitGraph - commit - `, +title: simple gitGraph +--- +gitGraph + commit +`, {} ); }); diff --git a/cypress/integration/rendering/stateDiagram-v2.spec.js b/cypress/integration/rendering/stateDiagram-v2.spec.js index 7c322c1b3f..0eca018739 100644 --- a/cypress/integration/rendering/stateDiagram-v2.spec.js +++ b/cypress/integration/rendering/stateDiagram-v2.spec.js @@ -562,12 +562,12 @@ stateDiagram-v2 it('1433: should render a simple state diagram with a title', () => { imgSnapshotTest( `--- - title: simple state diagram - --- - stateDiagram-v2 - [*] --> State1 - State1 --> [*] - `, +title: simple state diagram +--- +stateDiagram-v2 +[*] --> State1 +State1 --> [*] +`, {} ); }); diff --git a/demos/classchart.html b/demos/classchart.html index 3481bbad59..031f3b608f 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -17,9 +17,9 @@

    Class diagram demos

    -    ---
    -    title: Demo Class Diagram
    -    ---
    +---
    +title: Demo Class Diagram
    +---
     		classDiagram
           accTitle: Demo Class Diagram
           accDescr: This class diagram show the abstract Animal class, and 3 classes that inherit from it: Duck, Fish, and Zebra.
    diff --git a/demos/flowchart.html b/demos/flowchart.html
    index 60e6160c38..7251e586e5 100644
    --- a/demos/flowchart.html
    +++ b/demos/flowchart.html
    @@ -17,9 +17,9 @@ 

    Comparison "graph vs. flowchart"

    Sample 1

    graph

    -    ---
    -    title: This is a complicated flow
    -    ---
    +---
    +title: This is a complicated flow
    +---
         graph LR
           accTitle: This is a complicated flow
           accDescr: This is the descriptoin for the complicated flow.
    @@ -224,9 +224,9 @@ 

    flowchart

    Sample 2

    graph

    -    ---
    -    title: What to buy
    -    ---
    +---
    +title: What to buy
    +---
         graph TD
           accTitle: What to buy
           accDescr: Options of what to buy with Christmas money
    diff --git a/demos/git.html b/demos/git.html
    index 5e683152aa..99c53d7d0a 100644
    --- a/demos/git.html
    +++ b/demos/git.html
    @@ -16,9 +16,9 @@
       
         

    Git diagram demo

    -    ---
    -    title: Simple Git diagram
    -    ---
    +---
    +title: Simple Git diagram
    +---
         gitGraph:
         options
         {
    diff --git a/demos/journey.html b/demos/journey.html
    index 71eecb5842..dadcfb13c0 100644
    --- a/demos/journey.html
    +++ b/demos/journey.html
    @@ -16,9 +16,9 @@
       
         

    Journey diagram demo

    -     ---
    -     title: My working day 
    -     ---
    +---
    +title: My working day 
    +---
          journey
           accTitle: Very simple journey demo
           accDescr: 2 main sections: work and home, each with just a few tasks
    diff --git a/demos/state.html b/demos/state.html
    index 9f126cbc25..c13da84d88 100644
    --- a/demos/state.html
    +++ b/demos/state.html
    @@ -17,9 +17,9 @@
         

    State diagram demos

    Very simple showing change from State1 to State2

    -    ---
    -    title: Very simple diagram
    -    ---
    +---
    +title: Very simple diagram
    +---
     		stateDiagram
     		  accTitle: This is the accessible title
           accDescr:This is an accessible description
    @@ -46,9 +46,9 @@ 

    And these are how they are applied:

    -    ---
    -    title: Very simple diagram
    -    ---
    +---
    +title: Very simple diagram
    +---
     		stateDiagram-v2
     		  accTitle: This is the accessible title
           accDescr: This is an accessible description
    diff --git a/packages/mermaid/src/diagram-api/frontmatter.spec.ts b/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    index 92aa70573d..4f8848f259 100644
    --- a/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    +++ b/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    @@ -41,6 +41,13 @@ describe('extractFrontmatter', () => {
         expect(db.setDiagramTitle).toHaveBeenCalledWith('foo---bar');
       });
     
    +  it('handles frontmatter with multi-line string and multiple delimiters', () => {
    +    const db = dbMock();
    +    const text = `---\ntitle: |\n   multi-line string\n   ---\n---\ndiagram`;
    +    expect(extractFrontMatter(text, db)).toEqual('diagram');
    +    expect(db.setDiagramTitle).toHaveBeenCalledWith('multi-line string\n---\n');
    +  });
    +
       it('handles frontmatter with title', () => {
         const db = dbMock();
         const text = `---\ntitle: foo\n---\ndiagram`;
    diff --git a/packages/mermaid/src/diagram-api/frontmatter.ts b/packages/mermaid/src/diagram-api/frontmatter.ts
    index 46b161582a..b73440a7d7 100644
    --- a/packages/mermaid/src/diagram-api/frontmatter.ts
    +++ b/packages/mermaid/src/diagram-api/frontmatter.ts
    @@ -6,7 +6,7 @@ import * as yaml from 'js-yaml';
     // Note that JS doesn't support the "\A" anchor, which means we can't use
     // multiline mode.
     // Relevant YAML spec: https://yaml.org/spec/1.2.2/#914-explicit-documents
    -export const frontMatterRegex = /^(?:\s*---\s*[\r\n])(.*?)(?:[\r\n]\s*---\s*[\r\n]+)/s;
    +export const frontMatterRegex = /^(?:---\s*[\r\n])(.*?)(?:[\r\n]---\s*[\r\n]+)/s;
     
     type FrontMatterMetadata = {
       title?: string;
    diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js
    index 04cf9b7695..4d3e07e6b5 100644
    --- a/packages/mermaid/src/utils.spec.js
    +++ b/packages/mermaid/src/utils.spec.js
    @@ -238,10 +238,9 @@ Alice->Bob: hi`;
         const type = detectType(str);
         expect(type).toBe('gitGraph');
       });
    -  it('should handle frontmatter with leading spaces', function () {
    +  it('should not allow frontmatter with leading spaces', function () {
         const str = '    ---\ntitle: foo\n---\n  gitGraph TB:\nbfs1:queue';
    -    const type = detectType(str);
    -    expect(type).toBe('gitGraph');
    +    expect(() => detectType(str)).toThrow('No diagram type detected for text');
       });
     });
     describe('when finding substring in array ', function () {
    
    From 3316aa5f4f8c93f3410ca74c2fa5390087f26ef9 Mon Sep 17 00:00:00 2001
    From: Mason Malone <651224+MasonM@users.noreply.github.com>
    Date: Sat, 19 Nov 2022 12:48:40 -0800
    Subject: [PATCH 0677/1038] Add interface for DiagramDb and other minor changes
    
    ---
     packages/mermaid/src/diagram-api/frontmatter.ts | 11 ++++++-----
     packages/mermaid/src/diagram-api/types.ts       | 10 +++++++++-
     2 files changed, 15 insertions(+), 6 deletions(-)
    
    diff --git a/packages/mermaid/src/diagram-api/frontmatter.ts b/packages/mermaid/src/diagram-api/frontmatter.ts
    index b73440a7d7..800e7399b4 100644
    --- a/packages/mermaid/src/diagram-api/frontmatter.ts
    +++ b/packages/mermaid/src/diagram-api/frontmatter.ts
    @@ -1,3 +1,4 @@
    +import { DiagramDb } from './types';
     // The "* as yaml" part is necessary for tree-shaking
     import * as yaml from 'js-yaml';
     
    @@ -15,11 +16,11 @@ type FrontMatterMetadata = {
     /**
      * Extract and parse frontmatter from text, if present, and sets appropriate
      * properties in the provided db.
    - * @param text -
    - * @param db -
    + * @param text - The text that may have a YAML frontmatter.
    + * @param db - Diagram database, could be of any diagram.
      * @returns text with frontmatter stripped out
      */
    -export function extractFrontMatter(text: string, db: any): string {
    +export function extractFrontMatter(text: string, db: DiagramDb): string {
       const matches = text.match(frontMatterRegex);
       if (matches) {
         const parsed: FrontMatterMetadata = yaml.load(matches[1], {
    @@ -28,8 +29,8 @@ export function extractFrontMatter(text: string, db: any): string {
           schema: yaml.FAILSAFE_SCHEMA,
         }) as FrontMatterMetadata;
     
    -    if (parsed && parsed.title) {
    -      db?.setDiagramTitle(parsed.title);
    +    if (parsed?.title) {
    +      db.setDiagramTitle?.(parsed.title);
         }
     
         return text.slice(matches[0].length);
    diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts
    index d45eac6aa0..23810d1330 100644
    --- a/packages/mermaid/src/diagram-api/types.ts
    +++ b/packages/mermaid/src/diagram-api/types.ts
    @@ -8,8 +8,16 @@ export interface InjectUtils {
       _setupGraphViewbox: any;
     }
     
    +/**
    + * Generic Diagram DB that may apply to any diagram type.
    + */
    +export interface DiagramDb {
    +  clear?: () => void;
    +  setDiagramTitle?: (title: string) => void;
    +}
    +
     export interface DiagramDefinition {
    -  db: any;
    +  db: DiagramDb;
       renderer: any;
       parser: any;
       styles: any;
    
    From 1b201bf462aff405e38001e886e96d0adfb3986c Mon Sep 17 00:00:00 2001
    From: Mason Malone <651224+MasonM@users.noreply.github.com>
    Date: Sat, 19 Nov 2022 13:01:21 -0800
    Subject: [PATCH 0678/1038] Fix TS errors
    
    ---
     packages/mermaid/src/Diagram.ts                      | 2 +-
     packages/mermaid/src/diagram-api/frontmatter.spec.ts | 6 +++---
     2 files changed, 4 insertions(+), 4 deletions(-)
    
    diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts
    index 574dd0facd..a2349c2556 100644
    --- a/packages/mermaid/src/Diagram.ts
    +++ b/packages/mermaid/src/Diagram.ts
    @@ -56,7 +56,7 @@ export class Diagram {
         }
         try {
           text = text + '\n';
    -      this.db.clear();
    +      this.db.clear?.();
           this.parser.parse(text);
           return true;
         } catch (error) {
    diff --git a/packages/mermaid/src/diagram-api/frontmatter.spec.ts b/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    index 4f8848f259..4eb9789e2b 100644
    --- a/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    +++ b/packages/mermaid/src/diagram-api/frontmatter.spec.ts
    @@ -5,12 +5,12 @@ const dbMock = () => ({ setDiagramTitle: vi.fn() });
     
     describe('extractFrontmatter', () => {
       it('returns text unchanged if no frontmatter', () => {
    -    expect(extractFrontMatter('diagram', null)).toEqual('diagram');
    +    expect(extractFrontMatter('diagram', dbMock())).toEqual('diagram');
       });
     
       it('returns text unchanged if frontmatter lacks closing delimiter', () => {
         const text = `---\ntitle: foo\ndiagram`;
    -    expect(extractFrontMatter(text, null)).toEqual(text);
    +    expect(extractFrontMatter(text, dbMock())).toEqual(text);
       });
     
       it('handles empty frontmatter', () => {
    @@ -71,7 +71,7 @@ describe('extractFrontmatter', () => {
     
       it('throws exception for invalid YAML syntax', () => {
         const text = `---\n!!!\n---\ndiagram`;
    -    expect(() => extractFrontMatter(text, null)).toThrow(
    +    expect(() => extractFrontMatter(text, dbMock())).toThrow(
           'tag suffix cannot contain exclamation marks'
         );
       });
    
    From bdf8b01185aee526e1059bc3ca63fa696e734de8 Mon Sep 17 00:00:00 2001
    From: Mason Malone <651224+MasonM@users.noreply.github.com>
    Date: Sat, 19 Nov 2022 13:20:12 -0800
    Subject: [PATCH 0679/1038] Fix example for Git diagrams
    
    ---
     docs/syntax/gitgraph.md                      | 56 ++++++++++----------
     packages/mermaid/src/docs/syntax/gitgraph.md | 28 +++++-----
     2 files changed, 42 insertions(+), 42 deletions(-)
    
    diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md
    index 051e7ce39e..964fe3886c 100644
    --- a/docs/syntax/gitgraph.md
    +++ b/docs/syntax/gitgraph.md
    @@ -13,37 +13,37 @@ These kind of diagram are particularly helpful to developers and devops teams to
     Mermaid can render Git diagrams
     
     ```mermaid-example
    -    ---
    -    title: Example Git diagram
    -    ---
    -    gitGraph
    -       commit
    -       commit
    -       branch develop
    -       checkout develop
    -       commit
    -       commit
    -       checkout main
    -       merge develop
    -       commit
    -       commit
    +---
    +title: Example Git diagram
    +---
    +gitGraph
    +   commit
    +   commit
    +   branch develop
    +   checkout develop
    +   commit
    +   commit
    +   checkout main
    +   merge develop
    +   commit
    +   commit
     ```
     
     ```mermaid
    -    ---
    -    title: Example Git diagram
    -    ---
    -    gitGraph
    -       commit
    -       commit
    -       branch develop
    -       checkout develop
    -       commit
    -       commit
    -       checkout main
    -       merge develop
    -       commit
    -       commit
    +---
    +title: Example Git diagram
    +---
    +gitGraph
    +   commit
    +   commit
    +   branch develop
    +   checkout develop
    +   commit
    +   commit
    +   checkout main
    +   merge develop
    +   commit
    +   commit
     ```
     
     In Mermaid, we support the basic git operations like:
    diff --git a/packages/mermaid/src/docs/syntax/gitgraph.md b/packages/mermaid/src/docs/syntax/gitgraph.md
    index c3210af313..f1930bb275 100644
    --- a/packages/mermaid/src/docs/syntax/gitgraph.md
    +++ b/packages/mermaid/src/docs/syntax/gitgraph.md
    @@ -7,20 +7,20 @@ These kind of diagram are particularly helpful to developers and devops teams to
     Mermaid can render Git diagrams
     
     ```mermaid-example
    -    ---
    -    title: Example Git diagram
    -    ---
    -    gitGraph
    -       commit
    -       commit
    -       branch develop
    -       checkout develop
    -       commit
    -       commit
    -       checkout main
    -       merge develop
    -       commit
    -       commit
    +---
    +title: Example Git diagram
    +---
    +gitGraph
    +   commit
    +   commit
    +   branch develop
    +   checkout develop
    +   commit
    +   commit
    +   checkout main
    +   merge develop
    +   commit
    +   commit
     ```
     
     In Mermaid, we support the basic git operations like:
    
    From 49a931f7129b8ab5628115808a3ceebe938d728e Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 20 Nov 2022 12:13:00 +0530
    Subject: [PATCH 0680/1038] feat: Add bundle visualization
    
    ---
     .vite/build.ts |  5 +++--
     package.json   |  2 ++
     pnpm-lock.yaml | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
     3 files changed, 52 insertions(+), 3 deletions(-)
    
    diff --git a/.vite/build.ts b/.vite/build.ts
    index 50b7fb1ad5..fb5f171e27 100644
    --- a/.vite/build.ts
    +++ b/.vite/build.ts
    @@ -1,8 +1,9 @@
    -import { build, InlineConfig } from 'vite';
    +import { build, InlineConfig, type PluginOption } from 'vite';
     import { resolve } from 'path';
     import { fileURLToPath } from 'url';
     import jisonPlugin from './jisonPlugin.js';
     import { readFileSync } from 'fs';
    +import { visualizer } from 'rollup-plugin-visualizer';
     
     const watch = process.argv.includes('--watch');
     const mermaidOnly = process.argv.includes('--mermaid');
    @@ -95,7 +96,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
         resolve: {
           extensions: ['.jison', '.js', '.ts', '.json'],
         },
    -    plugins: [jisonPlugin()],
    +    plugins: [jisonPlugin(), visualizer({ template: 'network' }) as PluginOption],
       };
     
       if (watch && config.build) {
    diff --git a/package.json b/package.json
    index 7bd6488777..52b756f99b 100644
    --- a/package.json
    +++ b/package.json
    @@ -64,6 +64,7 @@
         "@types/mdast": "^3.0.10",
         "@types/node": "^18.11.9",
         "@types/prettier": "^2.7.1",
    +    "@types/rollup-plugin-visualizer": "^4.2.1",
         "@typescript-eslint/eslint-plugin": "^5.42.1",
         "@typescript-eslint/parser": "^5.42.1",
         "@vitest/coverage-c8": "^0.25.1",
    @@ -96,6 +97,7 @@
         "prettier": "^2.7.1",
         "prettier-plugin-jsdoc": "^0.4.2",
         "rimraf": "^3.0.2",
    +    "rollup-plugin-visualizer": "^5.8.3",
         "start-server-and-test": "^1.14.0",
         "ts-node": "^10.9.1",
         "typescript": "^4.8.4",
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index 85afcb31dc..683958bb66 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -40,6 +40,9 @@ importers:
           '@types/prettier':
             specifier: ^2.7.1
             version: 2.7.1
    +      '@types/rollup-plugin-visualizer':
    +        specifier: ^4.2.1
    +        version: 4.2.1
           '@typescript-eslint/eslint-plugin':
             specifier: ^5.42.1
             version: 5.42.1_2udltptbznfmezdozpdoa2aemq
    @@ -136,6 +139,9 @@ importers:
           rimraf:
             specifier: ^3.0.2
             version: 3.0.2
    +      rollup-plugin-visualizer:
    +        specifier: ^5.8.3
    +        version: 5.8.3_rollup@2.79.1
           start-server-and-test:
             specifier: ^1.14.0
             version: 1.14.0
    @@ -2584,6 +2590,13 @@ packages:
         resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
         dev: true
     
    +  /@types/rollup-plugin-visualizer/4.2.1:
    +    resolution: {integrity: sha512-Fk4y0EgmsSbvbayYhtSI9+cGvgw1rcQ9RlbExkQt4ivXRdiEwFKuRpxNuJCr0JktXIvOPUuPR7GSmtyZu0dujQ==}
    +    dependencies:
    +      '@types/node': 18.11.9
    +      rollup: 2.79.1
    +    dev: true
    +
       /@types/semver/7.3.12:
         resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==}
         dev: true
    @@ -3534,7 +3547,7 @@ packages:
       /axios/0.21.4_debug@4.3.2:
         resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
         dependencies:
    -      follow-redirects: 1.15.2
    +      follow-redirects: 1.15.2_debug@4.3.2
         transitivePeerDependencies:
           - debug
         dev: true
    @@ -6054,6 +6067,18 @@ packages:
             optional: true
         dev: true
     
    +  /follow-redirects/1.15.2_debug@4.3.2:
    +    resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
    +    engines: {node: '>=4.0'}
    +    peerDependencies:
    +      debug: '*'
    +    peerDependenciesMeta:
    +      debug:
    +        optional: true
    +    dependencies:
    +      debug: 4.3.2
    +    dev: true
    +
       /foreground-child/2.0.0:
         resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
         engines: {node: '>=8.0.0'}
    @@ -9412,6 +9437,22 @@ packages:
         resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==}
         dev: false
     
    +  /rollup-plugin-visualizer/5.8.3_rollup@2.79.1:
    +    resolution: {integrity: sha512-QGJk4Bqe4AOat5AjipOh8esZH1nck5X2KFpf4VytUdSUuuuSwvIQZjMGgjcxe/zXexltqaXp5Vx1V3LmnQH15Q==}
    +    engines: {node: '>=14'}
    +    hasBin: true
    +    peerDependencies:
    +      rollup: 2.x || 3.x
    +    peerDependenciesMeta:
    +      rollup:
    +        optional: true
    +    dependencies:
    +      open: 8.4.0
    +      rollup: 2.79.1
    +      source-map: 0.7.4
    +      yargs: 17.5.1
    +    dev: true
    +
       /rollup/2.79.1:
         resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
         engines: {node: '>=10.0.0'}
    @@ -9768,6 +9809,11 @@ packages:
         engines: {node: '>=0.10.0'}
         dev: true
     
    +  /source-map/0.7.4:
    +    resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
    +    engines: {node: '>= 8'}
    +    dev: true
    +
       /sourcemap-codec/1.4.8:
         resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
         dev: true
    
    From fc859528e4e2845d7952f1a68ee23d181cc95815 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 20 Nov 2022 12:10:05 +0530
    Subject: [PATCH 0681/1038] Ignore stats.html
    
    ---
     .gitignore | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/.gitignore b/.gitignore
    index 8cc09354bf..6813b82b43 100644
    --- a/.gitignore
    +++ b/.gitignore
    @@ -35,3 +35,4 @@ tsconfig.tsbuildinfo
     
     knsv*.html
     local*.html
    +stats.html
    
    From 4ad99a25d09c698a947ff0234c9899bf89835d55 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 20 Nov 2022 14:16:22 +0530
    Subject: [PATCH 0682/1038] feat: Add package visualization
    
    ---
     .gitignore     |  2 +-
     .vite/build.ts | 20 ++++++++++++++++++--
     cSpell.json    |  2 ++
     package.json   |  3 ++-
     4 files changed, 23 insertions(+), 4 deletions(-)
    
    diff --git a/.gitignore b/.gitignore
    index 6813b82b43..f29286825a 100644
    --- a/.gitignore
    +++ b/.gitignore
    @@ -35,4 +35,4 @@ tsconfig.tsbuildinfo
     
     knsv*.html
     local*.html
    -stats.html
    +stats/
    diff --git a/.vite/build.ts b/.vite/build.ts
    index fb5f171e27..c441dc0abf 100644
    --- a/.vite/build.ts
    +++ b/.vite/build.ts
    @@ -4,7 +4,9 @@ import { fileURLToPath } from 'url';
     import jisonPlugin from './jisonPlugin.js';
     import { readFileSync } from 'fs';
     import { visualizer } from 'rollup-plugin-visualizer';
    +import type { TemplateType } from 'rollup-plugin-visualizer/dist/plugin/template-types.js';
     
    +const visualize = process.argv.includes('--visualize');
     const watch = process.argv.includes('--watch');
     const mermaidOnly = process.argv.includes('--mermaid');
     const __dirname = fileURLToPath(new URL('.', import.meta.url));
    @@ -14,6 +16,20 @@ type OutputOptions = Exclude<
       undefined
     >['output'];
     
    +const visualizerOptions = (packageName: string): PluginOption[] => {
    +  if (packageName !== 'mermaid' || !visualize) {
    +    return [];
    +  }
    +  return ['network', 'treemap', 'sunburst'].map((chartType) =>
    +    visualizer({
    +      filename: `./stats/${chartType}.html`,
    +      template: chartType as TemplateType,
    +      gzipSize: true,
    +      brotliSize: true,
    +    })
    +  );
    +};
    +
     const packageOptions = {
       mermaid: {
         name: 'mermaid',
    @@ -96,7 +112,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
         resolve: {
           extensions: ['.jison', '.js', '.ts', '.json'],
         },
    -    plugins: [jisonPlugin(), visualizer({ template: 'network' }) as PluginOption],
    +    plugins: [jisonPlugin(), ...visualizerOptions(packageName)],
       };
     
       if (watch && config.build) {
    @@ -122,7 +138,7 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => {
     
     const main = async () => {
       const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
    -  for (const pkg of packageNames) {
    +  for (const pkg of packageNames.filter((pkg) => !mermaidOnly || pkg === 'mermaid')) {
         await buildPackage(pkg);
       }
     };
    diff --git a/cSpell.json b/cSpell.json
    index 3cf8a1e548..03891165f5 100644
    --- a/cSpell.json
    +++ b/cSpell.json
    @@ -14,6 +14,7 @@
         "bilkent",
         "bisheng",
         "brolin",
    +    "brotli",
         "codedoc",
         "colour",
         "cpettitt",
    @@ -70,6 +71,7 @@
         "substate",
         "sveidqvist",
         "techn",
    +    "treemap",
         "ts-nocheck",
         "tuleap",
         "verdana",
    diff --git a/package.json b/package.json
    index 52b756f99b..10ca11bec2 100644
    --- a/package.json
    +++ b/package.json
    @@ -15,8 +15,9 @@
         "git graph"
       ],
       "scripts": {
    -    "build:mermaid": "ts-node-esm --transpileOnly .vite/build.ts --mermaid",
         "build:vite": "ts-node-esm --transpileOnly .vite/build.ts",
    +    "build:mermaid": "pnpm build:vite --mermaid",
    +    "build:viz": "pnpm build:mermaid --visualize",
         "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly",
         "build:watch": "pnpm build:vite --watch",
         "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"",
    
    From 29342ea726aeaa0b77aaf91c766c66d8b2022d6e Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 20 Nov 2022 17:16:09 +0530
    Subject: [PATCH 0683/1038] fix: Viz build
    
    ---
     .vite/build.ts | 9 ++++++---
     1 file changed, 6 insertions(+), 3 deletions(-)
    
    diff --git a/.vite/build.ts b/.vite/build.ts
    index c441dc0abf..f2dd7db050 100644
    --- a/.vite/build.ts
    +++ b/.vite/build.ts
    @@ -16,13 +16,13 @@ type OutputOptions = Exclude<
       undefined
     >['output'];
     
    -const visualizerOptions = (packageName: string): PluginOption[] => {
    +const visualizerOptions = (packageName: string, core = false): PluginOption[] => {
       if (packageName !== 'mermaid' || !visualize) {
         return [];
       }
       return ['network', 'treemap', 'sunburst'].map((chartType) =>
         visualizer({
    -      filename: `./stats/${chartType}.html`,
    +      filename: `./stats/${chartType}${core ? '.core' : ''}.html`,
           template: chartType as TemplateType,
           gzipSize: true,
           brotliSize: true,
    @@ -112,7 +112,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
         resolve: {
           extensions: ['.jison', '.js', '.ts', '.json'],
         },
    -    plugins: [jisonPlugin(), ...visualizerOptions(packageName)],
    +    plugins: [jisonPlugin(), ...visualizerOptions(packageName, core)],
       };
     
       if (watch && config.build) {
    @@ -149,6 +149,9 @@ if (watch) {
         build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
         // build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
       }
    +} else if (visualize) {
    +  await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' }));
    +  await build(getBuildConfig({ minify: false, core: false, entryName: 'mermaid' }));
     } else {
       void main();
     }
    
    From 8a2d3a400c2e9c7c661377cfc40fa9916b80567d Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 20 Nov 2022 19:12:52 +0530
    Subject: [PATCH 0684/1038] Fix Lodash import
    
    ---
     packages/mermaid/src/mermaidAPI.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
    index 0df1da305f..25ba03f874 100644
    --- a/packages/mermaid/src/mermaidAPI.ts
    +++ b/packages/mermaid/src/mermaidAPI.ts
    @@ -29,7 +29,7 @@ import utils, { directiveSanitizer } from './utils';
     import DOMPurify from 'dompurify';
     import { MermaidConfig } from './config.type';
     import { evaluate } from './diagrams/common/common';
    -import { isEmpty } from 'lodash';
    +import isEmpty from 'lodash/isEmpty';
     
     // diagram names that support classDef statements
     const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram', 'stateDiagram-v2'];
    
    From 2a98791ec9005d0ec0c8f2e0a71f1452ea7c993e Mon Sep 17 00:00:00 2001
    From: Ashley Engelund 
    Date: Sun, 20 Nov 2022 12:17:21 -0800
    Subject: [PATCH 0685/1038] use optional chaining check for get acc title and
     get acc description
    
    Co-authored-by: Alois Klink 
    ---
     packages/mermaid/src/mermaidAPI.ts | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
    index 072ff595a4..c1b2f25562 100644
    --- a/packages/mermaid/src/mermaidAPI.ts
    +++ b/packages/mermaid/src/mermaidAPI.ts
    @@ -529,8 +529,8 @@ const render = function (
       // This is the d3 node for the svg element
       const svgNode = root.select(`${enclosingDivID_selector} svg`);
       setA11yDiagramInfo(svgNode, graphType);
    -  const a11yTitle = diag.db.getAccTitle !== undefined ? diag.db.getAccTitle() : null;
    -  const a11yDescr = diag.db.getAccDescription !== undefined ? diag.db.getAccDescription() : null;
    +  const a11yTitle = diag.db.getAccTitle?.();
    +  const a11yDescr = diag.db.getAccDescription?.();
       addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr('id'));
     
       // -------------------------------------------------------------------------------
    
    From a9c337302a5204dd3413659aa9ebacf34ecf779c Mon Sep 17 00:00:00 2001
    From: "Ashley Engelund (weedySeaDragon @ github)" 
    Date: Sun, 20 Nov 2022 12:27:29 -0800
    Subject: [PATCH 0686/1038] export D3Element from mermaidAPI; use in
     accessibility
    
    ---
     docs/config/setup/modules/mermaidAPI.md    | 10 ++++++++++
     packages/mermaid/src/accessibility.spec.ts | 11 ++++++-----
     packages/mermaid/src/accessibility.ts      | 10 ++++------
     packages/mermaid/src/mermaidAPI.ts         |  2 +-
     4 files changed, 21 insertions(+), 12 deletions(-)
    
    diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md
    index baa4a939c5..ef8a08b917 100644
    --- a/docs/config/setup/modules/mermaidAPI.md
    +++ b/docs/config/setup/modules/mermaidAPI.md
    @@ -12,6 +12,16 @@
     
     Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi)
     
    +## Type Aliases
    +
    +### D3Element
    +
    +Ƭ **D3Element**: `any`
    +
    +#### Defined in
    +
    +[mermaidAPI.ts:73](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L73)
    +
     ## Variables
     
     ### mermaidAPI
    diff --git a/packages/mermaid/src/accessibility.spec.ts b/packages/mermaid/src/accessibility.spec.ts
    index 87d9a1cd09..57d5e89335 100644
    --- a/packages/mermaid/src/accessibility.spec.ts
    +++ b/packages/mermaid/src/accessibility.spec.ts
    @@ -1,5 +1,6 @@
     import { MockedD3 } from './tests/MockedD3';
     import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility';
    +import { D3Element } from './mermaidAPI';
     
     describe('accessibility', () => {
       const fauxSvgNode = new MockedD3();
    @@ -37,7 +38,7 @@ describe('accessibility', () => {
           // Convenience functions to DRY up the spec
     
           function expectAriaLabelledByIsTitleId(
    -        svgD3Node: any,
    +        svgD3Node: D3Element,
             title: string | null | undefined,
             desc: string | null | undefined,
             givenId: string
    @@ -49,7 +50,7 @@ describe('accessibility', () => {
           }
     
           function expectAriaDescribedByIsDescId(
    -        svgD3Node: any,
    +        svgD3Node: D3Element,
             title: string | null | undefined,
             desc: string | null | undefined,
             givenId: string
    @@ -61,7 +62,7 @@ describe('accessibility', () => {
           }
     
           function a11yTitleTagInserted(
    -        svgD3Node: any,
    +        svgD3Node: D3Element,
             title: string | null | undefined,
             desc: string | null | undefined,
             givenId: string,
    @@ -71,7 +72,7 @@ describe('accessibility', () => {
           }
     
           function a11yDescTagInserted(
    -        svgD3Node: any,
    +        svgD3Node: D3Element,
             title: string | null | undefined,
             desc: string | null | undefined,
             givenId: string,
    @@ -81,7 +82,7 @@ describe('accessibility', () => {
           }
     
           function a11yTagInserted(
    -        svgD3Node: any,
    +        svgD3Node: D3Element,
             title: string | null | undefined,
             desc: string | null | undefined,
             givenId: string,
    diff --git a/packages/mermaid/src/accessibility.ts b/packages/mermaid/src/accessibility.ts
    index 2940de959d..a84edec0cf 100644
    --- a/packages/mermaid/src/accessibility.ts
    +++ b/packages/mermaid/src/accessibility.ts
    @@ -2,11 +2,9 @@
      * Accessibility (a11y) functions, types, helpers
      *
      */
    +import { D3Element } from './mermaidAPI';
     
    -import { isEmpty, compact } from 'lodash';
    -
    -// This is just a convenience alias to make it clear the type is a d3 object. (It's easier to make it 'any' instead of the complete typing set in d3)
    -type D3object = any;
    +import { isEmpty } from 'lodash';
     
     /**
      * Add aria-roledescription to the svg element to the diagramType
    @@ -14,7 +12,7 @@ type D3object = any;
      * @param svg - d3 object that contains the SVG HTML element
      * @param diagramType - diagram name for to the aria-roledescription
      */
    -export function setA11yDiagramInfo(svg: D3object, diagramType: string | null | undefined) {
    +export function setA11yDiagramInfo(svg: D3Element, diagramType: string | null | undefined) {
       if (!isEmpty(diagramType)) {
         svg.attr('aria-roledescription', diagramType);
       }
    @@ -31,7 +29,7 @@ export function setA11yDiagramInfo(svg: D3object, diagramType: string | null | u
      * @param baseId - id used to construct the a11y title and description id
      */
     export function addSVGa11yTitleDescription(
    -  svg: D3object,
    +  svg: D3Element,
       a11yTitle: string | null | undefined,
       a11yDesc: string | null | undefined,
       baseId: string
    diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
    index c1b2f25562..808dec8097 100644
    --- a/packages/mermaid/src/mermaidAPI.ts
    +++ b/packages/mermaid/src/mermaidAPI.ts
    @@ -70,7 +70,7 @@ interface DiagramStyleClassDef {
     
     // This makes it clear that we're working with a d3 selected element of some kind, even though it's hard to specify the exact type.
     // @ts-ignore Could replicate the type definition in d3. This also makes it possible to use the untyped info from the js diagram files.
    -type D3Element = any;
    +export type D3Element = any;
     
     // ----------------------------------------------------------------------------
     
    
    From 4411aa9905fc5d584caabbb8d38609ffc45e6656 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 20 Nov 2022 19:16:28 +0530
    Subject: [PATCH 0687/1038] Cleanup
    
    ---
     docs/CHANGELOG.md                             | 1054 ----------
     docs/community/development.md                 |  141 --
     docs/community/img/er.png                     |  Bin 56576 -> 0 bytes
     docs/community/n00b-overview.md               |   74 -
     docs/community/newDiagram.md                  |  264 ---
     docs/community/security.md                    |   29 -
     docs/config/8.6.0_docs.md                     |  222 ---
     docs/config/Tutorials.md                      |   78 -
     docs/config/accessibility.md                  |  360 ----
     docs/config/configuration.md                  |   41 -
     docs/config/directives.md                     |  329 ----
     .../img/accessibility-div-example-2.png       |  Bin 122847 -> 0 bytes
     docs/config/img/accessibility-div-example.png |  Bin 122202 -> 0 bytes
     docs/config/img/assignWithDepth.png           |  Bin 6595 -> 0 bytes
     .../img/object.assign without depth.png       |  Bin 6067 -> 0 bytes
     .../config/img/python-mermaid-integration.png |  Bin 39043 -> 0 bytes
     docs/config/img/wrapped text.png              |  Bin 105313 -> 0 bytes
     docs/config/mermaidCLI.md                     |    9 -
     docs/config/n00b-advanced.md                  |   26 -
     docs/config/setup/README.md                   |   13 -
     docs/config/setup/modules/config.md           |  276 ---
     docs/config/setup/modules/defaultConfig.md    |   56 -
     docs/config/setup/modules/mermaidAPI.md       |  308 ---
     docs/config/theming.md                        |  743 -------
     docs/config/usage.md                          |  391 ----
     docs/img/er.png                               |  Bin 56576 -> 0 bytes
     docs/index.html.todo                          |  179 --
     docs/intro/img/Code-Preview-Config.png        |  Bin 148873 -> 0 bytes
     docs/intro/img/Live-Editor-Choices.png        |  Bin 53011 -> 0 bytes
     docs/intro/img/book-banner-post-release.jpg   |  Bin 75158 -> 0 bytes
     docs/intro/index.md                           |  405 ----
     docs/intro/n00b-gettingStarted.md             |  224 ---
     docs/intro/n00b-syntaxReference.md            |   85 -
     docs/misc/faq.md                              |   17 -
     docs/misc/integrations.md                     |  186 --
     docs/public/.nojekyll                         |    0
     docs/public/favicon.ico                       |  Bin 1150 -> 0 bytes
     docs/public/favicon.png                       |  Bin 12392 -> 0 bytes
     docs/public/favicon.svg                       |    6 -
     docs/public/header.png                        |  Bin 69565 -> 0 bytes
     docs/public/manifest.json                     |   14 -
     docs/public/mermaid-logo.svg                  |    6 -
     docs/syntax/c4c.md                            |  664 -------
     docs/syntax/classDiagram.md                   |  848 --------
     docs/syntax/entityRelationshipDiagram.md      |  299 ---
     docs/syntax/examples.md                       |  299 ---
     docs/syntax/flowchart.md                      |  992 ----------
     docs/syntax/gantt.md                          |  423 ----
     docs/syntax/gitgraph.md                       | 1729 -----------------
     .../syntax/img/Gantt-excluded-days-within.png |  Bin 79453 -> 0 bytes
     docs/syntax/img/Gantt-long-weekend-look.png   |  Bin 79092 -> 0 bytes
     docs/syntax/mindmap.md                        |  243 ---
     docs/syntax/pie.md                            |   66 -
     docs/syntax/requirementDiagram.md             |  243 ---
     docs/syntax/sequenceDiagram.md                |  762 --------
     docs/syntax/stateDiagram.md                   |  450 -----
     docs/syntax/userJourney.md                    |   40 -
     57 files changed, 12594 deletions(-)
     delete mode 100644 docs/CHANGELOG.md
     delete mode 100644 docs/community/development.md
     delete mode 100644 docs/community/img/er.png
     delete mode 100644 docs/community/n00b-overview.md
     delete mode 100644 docs/community/newDiagram.md
     delete mode 100644 docs/community/security.md
     delete mode 100644 docs/config/8.6.0_docs.md
     delete mode 100644 docs/config/Tutorials.md
     delete mode 100644 docs/config/accessibility.md
     delete mode 100644 docs/config/configuration.md
     delete mode 100644 docs/config/directives.md
     delete mode 100644 docs/config/img/accessibility-div-example-2.png
     delete mode 100644 docs/config/img/accessibility-div-example.png
     delete mode 100644 docs/config/img/assignWithDepth.png
     delete mode 100644 docs/config/img/object.assign without depth.png
     delete mode 100644 docs/config/img/python-mermaid-integration.png
     delete mode 100644 docs/config/img/wrapped text.png
     delete mode 100644 docs/config/mermaidCLI.md
     delete mode 100644 docs/config/n00b-advanced.md
     delete mode 100644 docs/config/setup/README.md
     delete mode 100644 docs/config/setup/modules/config.md
     delete mode 100644 docs/config/setup/modules/defaultConfig.md
     delete mode 100644 docs/config/setup/modules/mermaidAPI.md
     delete mode 100644 docs/config/theming.md
     delete mode 100644 docs/config/usage.md
     delete mode 100644 docs/img/er.png
     delete mode 100644 docs/index.html.todo
     delete mode 100644 docs/intro/img/Code-Preview-Config.png
     delete mode 100644 docs/intro/img/Live-Editor-Choices.png
     delete mode 100644 docs/intro/img/book-banner-post-release.jpg
     delete mode 100644 docs/intro/index.md
     delete mode 100644 docs/intro/n00b-gettingStarted.md
     delete mode 100644 docs/intro/n00b-syntaxReference.md
     delete mode 100644 docs/misc/faq.md
     delete mode 100644 docs/misc/integrations.md
     delete mode 100644 docs/public/.nojekyll
     delete mode 100644 docs/public/favicon.ico
     delete mode 100644 docs/public/favicon.png
     delete mode 100644 docs/public/favicon.svg
     delete mode 100644 docs/public/header.png
     delete mode 100644 docs/public/manifest.json
     delete mode 100644 docs/public/mermaid-logo.svg
     delete mode 100644 docs/syntax/c4c.md
     delete mode 100644 docs/syntax/classDiagram.md
     delete mode 100644 docs/syntax/entityRelationshipDiagram.md
     delete mode 100644 docs/syntax/examples.md
     delete mode 100644 docs/syntax/flowchart.md
     delete mode 100644 docs/syntax/gantt.md
     delete mode 100644 docs/syntax/gitgraph.md
     delete mode 100644 docs/syntax/img/Gantt-excluded-days-within.png
     delete mode 100644 docs/syntax/img/Gantt-long-weekend-look.png
     delete mode 100644 docs/syntax/mindmap.md
     delete mode 100644 docs/syntax/pie.md
     delete mode 100644 docs/syntax/requirementDiagram.md
     delete mode 100644 docs/syntax/sequenceDiagram.md
     delete mode 100644 docs/syntax/stateDiagram.md
     delete mode 100644 docs/syntax/userJourney.md
    
    diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
    deleted file mode 100644
    index 520adc7d9b..0000000000
    --- a/docs/CHANGELOG.md
    +++ /dev/null
    @@ -1,1054 +0,0 @@
    -> **Warning**
    ->
    -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
    ->
    -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/CHANGELOG.md](../packages/mermaid/src/docs/CHANGELOG.md).
    -
    -# Change Log
    -
    -All changes are in descending order, beginning with the newest (latest) version.
    -
    -## Unreleased
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/8.7.0...HEAD)
    -
    -## 8.7.0 (2020-08-09)
    -
    -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) |
    -📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0)
    -
    -This version brings with it a system for [dynamic and integrated configuration of the diagram themes](config/theming.md).
    -The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls.
    -
    -Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](config/8.6.0_docs.md).
    -
    -**These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.**
    -
    -### Site-wide Themes
    -
    -Site-wide themes are still declared via `initialize` by site owners.
    -
    -Example of `Initalize` call setting `theme` to `base`:
    -
    -```javascript
    -mermaidAPI.initialize({
    -  securityLevel: 'loose',
    -  theme: 'base',
    -});
    -```
    -
    -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams.
    -
    -### Themes at the Local or Current Level
    -
    -When Generating a diagram using on a webpage that supports mermaid.
    -It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array.
    -
    -**Following is an example:**
    -
    -```mermaid-example
    -%%{init: {'theme':'base'}}%%
    -  graph TD
    -    a --> b
    -```
    -
    -```mermaid
    -%%{init: {'theme':'base'}}%%
    -  graph TD
    -    a --> b
    -```
    -
    -### Making a Custom Theme with `themeVariables`
    -
    -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`.
    -
    -| Parameter      | Description                                                        | Type  | Required | Objects contained                  |
    -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- |
    -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor |
    -
    -Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`.
    -
    -```mermaid-example
    -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
    -        graph TD
    -          A[Christmas] -->|Get money| B(Go shopping)
    -          B --> C{Let me think}
    -          B --> G[/Another/]
    -          C ==>|One| D[Laptop]
    -          C -->|Two| E[iPhone]
    -          C -->|Three| F[fa:fa-car Car]
    -          subgraph section
    -            C
    -            D
    -            E
    -            F
    -            G
    -          end
    -```
    -
    -```mermaid
    -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
    -        graph TD
    -          A[Christmas] -->|Get money| B(Go shopping)
    -          B --> C{Let me think}
    -          B --> G[/Another/]
    -          C ==>|One| D[Laptop]
    -          C -->|Two| E[iPhone]
    -          C -->|Three| F[fa:fa-car Car]
    -          subgraph section
    -            C
    -            D
    -            E
    -            F
    -            G
    -          end
    -```
    -
    -**Notes:**
    -Leaving it empty will set all variable values to default.
    -
    -## 8.6.0 (2020-07-13)
    -
    -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.6.0)
    -
    -[Version 8.6.0](../getting-started/8.6.0_docs.md) introduces New Configuration Protocols and Directives and a Beta for the [New Mermaid Live-Editor](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ)
    -
    -**With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation.**
    -
    -Directives allow for a diagram specific overriding of config, as it has been discussed in Configurations.
    -This allows site users to input modifications to config alongside diagram definitions, when creating diagrams on a private webpage that supports Mermaid.
    -
    -## 8.5.0 (2020-04-11)
    -
    -🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/untagged-31c93788afe260d914bb)
    -
    -This version introduces New diagrams!
    -
    -**New diagrams in 8.5**
    -
    -With version 8.5 there are some bug fixes and enhancements, plus a new diagram type, entity relationship diagrams.
    -
    -![Image showing the new ER diagram type](./img/er.png)
    -
    -## 8.2.0 (2019-07-17)
    -
    -🏷️ [Tag](https://github.com/mermaid-js/mermaid/tree/8.2.0)
    -
    -Version 8.2.0, introduces a security improvement.
    -
    -A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality.
    -This was introduced in version 8.2 as a security improvement, aimed at preventing malicious use.
    -
    -### securityLevel
    -
    -| Parameter     | Description                       | Type   | Required | Values                    |
    -| ------------- | --------------------------------- | ------ | -------- | ------------------------- |
    -| securitylevel | Level of trust for parsed diagram | String | Required | Strict, Loose, antiscript |
    -
    -**Notes:**
    -
    -- **strict**: (**default**) tags in text are encoded, click functionality is disabled
    -- **loose**: tags in text are allowed, click functionality is enabled
    -- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled
    -
    -⚠️ **Note**: This changes the default behaviour of mermaid so that after upgrade to 8.2, if the `securityLevel` is not configured, tags in flowcharts are encoded as tags and clicking is prohibited.
    -
    -If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing.
    -By doing this clicks and tags are again allowed.
    -
    -### To change `securityLevel` with `mermaidAPI.initialize`:
    -
    -```javascript
    -mermaidAPI.initialize({
    -  securityLevel: 'loose',
    -});
    -```
    -
    -**Closed issues:**
    -
    -- please add tag for 8.0.0 release [#863](https://github.com/knsv/mermaid/issues/863)
    -- classDiagram breaks on any edit [#858](https://github.com/knsv/mermaid/issues/858)
    -
    -## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0)
    -
    -**Implemented enhancements:**
    -
    -- Theme for dark background [#301](https://github.com/knsv/mermaid/issues/301)
    -- \[Feature request] gantt diagram axis format [#269](https://github.com/knsv/mermaid/issues/269)
    -- Implement render function for server side rendering using phantomjs [#169](https://github.com/knsv/mermaid/issues/169)
    -
    -**Fixed bugs:**
    -
    -- mermaid -v filename.mmd gives You must specify at least one source file. [#328](https://github.com/knsv/mermaid/issues/328)
    -- Not Able to See Labels even htmlLabels:false added [#268](https://github.com/knsv/mermaid/issues/268)
    -
    -**Closed issues:**
    -
    -- Gantt and sequence diagram do not render [#853](https://github.com/knsv/mermaid/issues/853)
    -- margins around flowchart are not balanced [#852](https://github.com/knsv/mermaid/issues/852)
    -- Smaller bundles [#843](https://github.com/knsv/mermaid/issues/843)
    -- unicode in labels [#776](https://github.com/knsv/mermaid/issues/776)
    -- Hard-changing drawing of arrows per edge type [#775](https://github.com/knsv/mermaid/issues/775)
    -- SequenceDiagram wrong [#773](https://github.com/knsv/mermaid/issues/773)
    -- Render mermaid on github pages with simple code [#772](https://github.com/knsv/mermaid/issues/772)
    -- FlowChart - large space between text and the image [#754](https://github.com/knsv/mermaid/issues/754)
    -- Class Diagram Issues when using Mermaid in Stackedit [#748](https://github.com/knsv/mermaid/issues/748)
    -- Multi-platform CI [#744](https://github.com/knsv/mermaid/issues/744)
    -- gantt: sections can't have a colon [#742](https://github.com/knsv/mermaid/issues/742)
    -- Yarn build does not add mermaid.min.css to dist [#732](https://github.com/knsv/mermaid/issues/732)
    -- Is there a grammar / keyword / more than just the basic examples? [#718](https://github.com/knsv/mermaid/issues/718)
    -- Click event and react component [#717](https://github.com/knsv/mermaid/issues/717)
    -- Long text going outside the box [#706](https://github.com/knsv/mermaid/issues/706)
    -- How to migrate from yUML to mermaid? [#704](https://github.com/knsv/mermaid/issues/704)
    -- Issue on Dynamic Creation in PHP [#690](https://github.com/knsv/mermaid/issues/690)
    -- `click "\#target"` and `click "http://url"` should create regular links [#689](https://github.com/knsv/mermaid/issues/689)
    -- Support Chinese punctuation [#687](https://github.com/knsv/mermaid/issues/687)
    -- \[Question] Proper way to install on Mac? [#681](https://github.com/knsv/mermaid/issues/681)
    -- Has Mermaid a graphical interface to make diagrams? [#668](https://github.com/knsv/mermaid/issues/668)
    -- mermaid installation on debian [#649](https://github.com/knsv/mermaid/issues/649)
    -- "Cannot activate" in sequenceDiagram [#647](https://github.com/knsv/mermaid/issues/647)
    -- Link ("click" statement) in flowchart does not work in exported SVG [#646](https://github.com/knsv/mermaid/issues/646)
    -- How to pass styling [#639](https://github.com/knsv/mermaid/issues/639)
    -- The live editor cant show seq diagram with notes for 8.0.0-alpha.3 [#638](https://github.com/knsv/mermaid/issues/638)
    -- import mermaid.css with ES6 + NPM [#634](https://github.com/knsv/mermaid/issues/634)
    -- Actor line cuts through other elements [#633](https://github.com/knsv/mermaid/issues/633)
    -- Graph TD line out of the picture (left side) [#630](https://github.com/knsv/mermaid/issues/630)
    -- Flowchart labels appear "cutoff" [#628](https://github.com/knsv/mermaid/issues/628)
    -- Uncaught TypeError: \_.constant is not a function (mermaid.js) [#626](https://github.com/knsv/mermaid/issues/626)
    -- Missing tags and releases for newer versions [#623](https://github.com/knsv/mermaid/issues/623)
    -- Mermaid and Leo / Leo Vue [#622](https://github.com/knsv/mermaid/issues/622)
    -- mermaidAPI gantt Vue.js [#621](https://github.com/knsv/mermaid/issues/621)
    -- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [#620](https://github.com/knsv/mermaid/issues/620)
    -- how to get mermaidAPI? [#617](https://github.com/knsv/mermaid/issues/617)
    -- Error in startOnLoad documentation? [#616](https://github.com/knsv/mermaid/issues/616)
    -- Example export to SVG generates error [#614](https://github.com/knsv/mermaid/issues/614)
    -- The new online editor does not support previously generated links [#613](https://github.com/knsv/mermaid/issues/613)
    -- Grammar / Syntax documentation for flowcharts [#607](https://github.com/knsv/mermaid/issues/607)
    -- Mermaid does not work with d3.js [#606](https://github.com/knsv/mermaid/issues/606)
    -- Why does this code's flowchart lines get cut-off on screen? [#604](https://github.com/knsv/mermaid/issues/604)
    -- click keyword does not fire my callback (on the demo Website too) [#603](https://github.com/knsv/mermaid/issues/603)
    -- Online Editor fails to show exported SVG [#601](https://github.com/knsv/mermaid/issues/601)
    -- Just saying thanks! [#597](https://github.com/knsv/mermaid/issues/597)
    -- stylesheet crashed with other library like abcjs [#596](https://github.com/knsv/mermaid/issues/596)
    -- Missing connection [#594](https://github.com/knsv/mermaid/issues/594)
    -- How to use mermaid on node.js restful api? [#593](https://github.com/knsv/mermaid/issues/593)
    -- Remove status code [#589](https://github.com/knsv/mermaid/issues/589)
    -- Golang based editor [#588](https://github.com/knsv/mermaid/issues/588)
    -- sequenceDiagram -> notetext css font is hardcoded [#587](https://github.com/knsv/mermaid/issues/587)
    -- Multiple graph in the live editor [#586](https://github.com/knsv/mermaid/issues/586)
    -- All \ elements in page are colored black [#584](https://github.com/knsv/mermaid/issues/584)
    -- Styling: classes aren't applied to elements. [#582](https://github.com/knsv/mermaid/issues/582)
    -- Rounded connections [#580](https://github.com/knsv/mermaid/issues/580)
    -- Arrows are not being shown correctly in the dark theme [#578](https://github.com/knsv/mermaid/issues/578)
    -- The documentation for CLI seems outdated. [#572](https://github.com/knsv/mermaid/issues/572)
    -- No effect of click event:can not open link [#571](https://github.com/knsv/mermaid/issues/571)
    -- Text colors are not correct in VSCODE [#570](https://github.com/knsv/mermaid/issues/570)
    -- Nodes aren't aligned properly (just need an explanation) [#568](https://github.com/knsv/mermaid/issues/568)
    -- setting margin around figure in R [#567](https://github.com/knsv/mermaid/issues/567)
    -- Arrows should Come out in upward and Downward direction from decision Node [#566](https://github.com/knsv/mermaid/issues/566)
    -- TypeError: Cannot read property 'select' of undefined [#563](https://github.com/knsv/mermaid/issues/563)
    -- A little bug [#557](https://github.com/knsv/mermaid/issues/557)
    -- Japanese text appears garbled [#554](https://github.com/knsv/mermaid/issues/554)
    -- classdiagram not works in mermaid live_editor [#553](https://github.com/knsv/mermaid/issues/553)
    -- font awesome in link text? [#546](https://github.com/knsv/mermaid/issues/546)
    -- q: heard of the cosmogol standard? [#545](https://github.com/knsv/mermaid/issues/545)
    -- Arrow heads missing (cli, 7.0.3) [#544](https://github.com/knsv/mermaid/issues/544)
    -- No Edge Boxes if useHtmlLabels=false [#541](https://github.com/knsv/mermaid/issues/541)
    -- how to change mermaid text color or line text block color? [#534](https://github.com/knsv/mermaid/issues/534)
    -- FlowChart visualization broken when downloading from live editor [#533](https://github.com/knsv/mermaid/issues/533)
    -- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [#532](https://github.com/knsv/mermaid/issues/532)
    -- live editor make browser(safari on macOS\&iOS) not longer respond [#531](https://github.com/knsv/mermaid/issues/531)
    -- css classes need a prefix/namespace [#527](https://github.com/knsv/mermaid/issues/527)
    -- input activate/deactivate cause safari unresponding [#521](https://github.com/knsv/mermaid/issues/521)
    -- Cannot Render the Mermaid Graph to PDF ? [#520](https://github.com/knsv/mermaid/issues/520)
    -- clicking links works from inset in subgraph but not from nodes [#516](https://github.com/knsv/mermaid/issues/516)
    -- Strange syntax error - when importing mermaid.js [#515](https://github.com/knsv/mermaid/issues/515)
    -- gantt x-axis display [#510](https://github.com/knsv/mermaid/issues/510)
    -- phantomjs renamed to phantomjs-prebuilt [#508](https://github.com/knsv/mermaid/issues/508)
    -- issue when using sphinxcontrib-mermaid extension for sphinx [#507](https://github.com/knsv/mermaid/issues/507)
    -- layout of docs page looks broken [#504](https://github.com/knsv/mermaid/issues/504)
    -- Problem showing graph with php on localhost [#502](https://github.com/knsv/mermaid/issues/502)
    -- logLevel's option doesn't work at 7.0.0 [#501](https://github.com/knsv/mermaid/issues/501)
    -- How do I get the log for a render or parse attempt? [#500](https://github.com/knsv/mermaid/issues/500)
    -- Mermaid neutral style style to built in latest release [#499](https://github.com/knsv/mermaid/issues/499)
    -- Any plans for adding a typescript definition file? [#495](https://github.com/knsv/mermaid/issues/495)
    -- Gantt diagrams too narrow [#493](https://github.com/knsv/mermaid/issues/493)
    -- Flowchart edge labels placement [#490](https://github.com/knsv/mermaid/issues/490)
    -- Very different styles when rendering as png vs. svg [#489](https://github.com/knsv/mermaid/issues/489)
    -- New editor that supports mermaid: Caret [#488](https://github.com/knsv/mermaid/issues/488)
    -- Gant PNG margin [#486](https://github.com/knsv/mermaid/issues/486)
    -- ReferenceError: window is not defined [#485](https://github.com/knsv/mermaid/issues/485)
    -- Menu and layout bugs in docs [#484](https://github.com/knsv/mermaid/issues/484)
    -- Mermaid resets some of the page CSS styles [#482](https://github.com/knsv/mermaid/issues/482)
    -- Arrows rendering incorrectly in online editor [#480](https://github.com/knsv/mermaid/issues/480)
    -- CSS stroke-dasharray ignored by browsers but not other viewers [#474](https://github.com/knsv/mermaid/issues/474)
    -- mermaid - Browser Support issue [#472](https://github.com/knsv/mermaid/issues/472)
    -- Totally love mermaid I might pop! [#471](https://github.com/knsv/mermaid/issues/471)
    -- Sequence Diagram: Missing x on async arrows (png) [#469](https://github.com/knsv/mermaid/issues/469)
    -- live editor: the svg file rendered from graph is not supported by browsers [#468](https://github.com/knsv/mermaid/issues/468)
    -- Not found css [#462](https://github.com/knsv/mermaid/issues/462)
    -- Phantomjs Dependency [#461](https://github.com/knsv/mermaid/issues/461)
    -- Mermaid cli not working for subgraphs [#459](https://github.com/knsv/mermaid/issues/459)
    -- Support for notes across multiple participants? [#458](https://github.com/knsv/mermaid/issues/458)
    -- Related to Issue #329: Phantomjs issues. [#455](https://github.com/knsv/mermaid/issues/455)
    -- Add a click style [#426](https://github.com/knsv/mermaid/issues/426)
    -- Add Parallel block (par) to sequence diagrams [#425](https://github.com/knsv/mermaid/issues/425)
    -- updating shapes after the flow chart rendering complete [#424](https://github.com/knsv/mermaid/issues/424)
    -- can't catch parse error Maximum call stack size exceeded on safari [#421](https://github.com/knsv/mermaid/issues/421)
    -- Arrows endings are missing [#419](https://github.com/knsv/mermaid/issues/419)
    -- shouldn't mermaid become more like Markdown ? [#417](https://github.com/knsv/mermaid/issues/417)
    -- Live editor show rendered diagram if syntax invalid [#415](https://github.com/knsv/mermaid/issues/415)
    -- Linkstyle stroke does not work [#410](https://github.com/knsv/mermaid/issues/410)
    -- flowchart id's with dots in them .. break links [#408](https://github.com/knsv/mermaid/issues/408)
    -- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [#407](https://github.com/knsv/mermaid/issues/407)
    -- Some Chinese character will case Safari no responding. [#405](https://github.com/knsv/mermaid/issues/405)
    -- Cannot center-justify text in nodes? [#397](https://github.com/knsv/mermaid/issues/397)
    -- Edge labels should have white background in live editor [#396](https://github.com/knsv/mermaid/issues/396)
    -- Live editor does not support activate/deactivate [#394](https://github.com/knsv/mermaid/issues/394)
    -- Styling subgraph? [#391](https://github.com/knsv/mermaid/issues/391)
    -- Update live editor to version 6.0.0 [#387](https://github.com/knsv/mermaid/issues/387)
    -- sequence diagram config issue [#385](https://github.com/knsv/mermaid/issues/385)
    -- How to add newline in the text [#384](https://github.com/knsv/mermaid/issues/384)
    -- PhantomJS crashes on a large graph [#380](https://github.com/knsv/mermaid/issues/380)
    -- Finnish support for class diagrams using plantuml syntax [#377](https://github.com/knsv/mermaid/issues/377)
    -- mermaidAPI.render generated different svg code from mermaid.int() [#374](https://github.com/knsv/mermaid/issues/374)
    -- Put your own action on the chart [#372](https://github.com/knsv/mermaid/issues/372)
    -- when declaring participants the elements are generated twice [#370](https://github.com/knsv/mermaid/issues/370)
    -- Example Flowchart is cut in display (Chrome). [#368](https://github.com/knsv/mermaid/issues/368)
    -- Add shebang support to diagrams [#365](https://github.com/knsv/mermaid/issues/365)
    -- Silencing CLI output [#352](https://github.com/knsv/mermaid/issues/352)
    -- SequenceDiagram: 3+ Alternative Paths [#348](https://github.com/knsv/mermaid/issues/348)
    -- Smaller height of actor boxes [#342](https://github.com/knsv/mermaid/issues/342)
    -- Question: lib/phantomscript.js - foreignObjects in SVG - related to #58 [#340](https://github.com/knsv/mermaid/issues/340)
    -- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [#337](https://github.com/knsv/mermaid/issues/337)
    -- Tabs & subgraphs cause rendering error [#336](https://github.com/knsv/mermaid/issues/336)
    -- Display question: right angles [#335](https://github.com/knsv/mermaid/issues/335)
    -- No Arrows rendered v0.5.8 [#330](https://github.com/knsv/mermaid/issues/330)
    -- You had errors in your syntax. Use --help for further information. [#327](https://github.com/knsv/mermaid/issues/327)
    -- Allow alternate arrow syntax that doesn't close html comments [#322](https://github.com/knsv/mermaid/issues/322)
    -- Comment in subgraph [#319](https://github.com/knsv/mermaid/issues/319)
    -- Update graph [#311](https://github.com/knsv/mermaid/issues/311)
    -- css conflicts with boostrap's css [#308](https://github.com/knsv/mermaid/issues/308)
    -- Can not get click event to fire. [#306](https://github.com/knsv/mermaid/issues/306)
    -- Fix phantomjs2 compatibility [#304](https://github.com/knsv/mermaid/issues/304)
    -- Flowcharts do not work in native IE11 [#303](https://github.com/knsv/mermaid/issues/303)
    -- Integration with remark.js - tutorial added [#302](https://github.com/knsv/mermaid/issues/302)
    -- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#299](https://github.com/knsv/mermaid/issues/299)
    -- src/mermaid.js generates bad code [#297](https://github.com/knsv/mermaid/issues/297)
    -- Fresh fork: jasmine tests fail [#294](https://github.com/knsv/mermaid/issues/294)
    -- CSS clash [#292](https://github.com/knsv/mermaid/issues/292)
    -- Mermaid does not work in Chrome 48 [#281](https://github.com/knsv/mermaid/issues/281)
    -- circle and ellipse cannot change color by classDef [#271](https://github.com/knsv/mermaid/issues/271)
    -- npm run watch doesn't work due missing dependencies [#266](https://github.com/knsv/mermaid/issues/266)
    -- label out of node [#262](https://github.com/knsv/mermaid/issues/262)
    -- IE11 Support issue [#261](https://github.com/knsv/mermaid/issues/261)
    -- mermaid without browser [#260](https://github.com/knsv/mermaid/issues/260)
    -- Insufficient capacity of gantt diagrams [#226](https://github.com/knsv/mermaid/issues/226)
    -- some WARN about installation [#222](https://github.com/knsv/mermaid/issues/222)
    -- Live editor offline access [#217](https://github.com/knsv/mermaid/issues/217)
    -- suggest: code highlight mode config for editors [#212](https://github.com/knsv/mermaid/issues/212)
    -- Uncaught RangeError: Maximum call stack size exceeded [#189](https://github.com/knsv/mermaid/issues/189)
    -- Styling label texts [#50](https://github.com/knsv/mermaid/issues/50)
    -
    -**Merged pull requests:**
    -
    -- Remove console.log in classDB. [#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey))
    -- Bump sshpk from 1.13.1 to 1.16.1 [#851](https://github.com/knsv/mermaid/pull/851) ([dependabot\[bot\]](https://github.com/apps/dependabot))
    -- Significantly smaller bundles [#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato))
    -- Support styling of subgraphs [#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-))
    -- fix dark theme loop labels not visible [#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn))
    -- fix draw function can only call once [#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship))
    -- Fix dotted lines not appearing in flowcharts when HTML labels disabled [#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu))
    -- Fix issue with XML line breaks inside vertex labels [#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang))
    -- fixed diagrams [#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus))
    -- Clickable gantt tasks [#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht))
    -- linkStyle now supports list of indexes with a few tests [#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov))
    -- fix class diagram mermaid [#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai))
    -- Added exclude weekdays to definition [#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo))
    -- SVG link rendering [#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep))
    -- Gantt milestones [#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs))
    -- Remove duplicate code [#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030))
    -- Render nodes as real links [#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep))
    -- Fix issue with marker-end. [#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen))
    -- Make Class Diagrams usable in Stackedit and Live Editor [#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe))
    -- Adding trapezoid and inverse trapezoid vertex options. [#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf))
    -- Add option for right angles [#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland))
    -- Add nested activation classes [#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland))
    -- wip: class diagram cardinality display [#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz))
    -- add comments about CSS in config [#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90))
    -- SequenceDiagram: Add support for multiple alt else statements [#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel))
    -- fix #426 - add class .clickable on nodes with click function or link [#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil))
    -- Spec fix 1 [#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt))
    -
    -## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5)
    -
    -**Closed issues:**
    -
    -- live editor latin error after update [#560](https://github.com/knsv/mermaid/issues/560)
    -- Simple full example in online documentation is broken [#558](https://github.com/knsv/mermaid/issues/558)
    -- Graph No Arrow Head v7.0.3 [#543](https://github.com/knsv/mermaid/issues/543)
    -- Conflict while using mermaid along with core-js [#512](https://github.com/knsv/mermaid/issues/512)
    -- Export to pdf on website [#496](https://github.com/knsv/mermaid/issues/496)
    -- New downstream project: Mermaid Preview for VSCode [#442](https://github.com/knsv/mermaid/issues/442)
    -- Can't Zoom the flowchart ? [#399](https://github.com/knsv/mermaid/issues/399)
    -- line labels are not rendered correctly in live editor [#366](https://github.com/knsv/mermaid/issues/366)
    -- mermaid-loader [#361](https://github.com/knsv/mermaid/issues/361)
    -- Are there any documentation or examples for classDiagram and gitGraph? [#359](https://github.com/knsv/mermaid/issues/359)
    -- \# character broken in 0.5.8 [#347](https://github.com/knsv/mermaid/issues/347)
    -- Documentation issue: CSS example is not visible [#345](https://github.com/knsv/mermaid/issues/345)
    -- Include documentation for command line usage [#326](https://github.com/knsv/mermaid/issues/326)
    -- Fresh fork: can't build dist [#296](https://github.com/knsv/mermaid/issues/296)
    -- Invalid value for \ attribute viewBox="0 0 -Infinity -Infinity" [#291](https://github.com/knsv/mermaid/issues/291)
    -- Webpack require fails [#277](https://github.com/knsv/mermaid/issues/277)
    -- New documentation - need improved logo [#216](https://github.com/knsv/mermaid/issues/216)
    -
    -## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3)
    -
    -**Closed issues:**
    -
    -- the documentation website is down [#539](https://github.com/knsv/mermaid/issues/539)
    -- Good example of interactivity with mermaidAPI [#514](https://github.com/knsv/mermaid/issues/514)
    -
    -## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2)
    -
    -**Closed issues:**
    -
    -- CDN is not working [#511](https://github.com/knsv/mermaid/issues/511)
    -- A sampe sequenceDiagram crashes mermaid-cli [#492](https://github.com/knsv/mermaid/issues/492)
    -- Mermaid doesn't delete nodes when called multiple times [#491](https://github.com/knsv/mermaid/issues/491)
    -- API crashes on 2nd render() call [#478](https://github.com/knsv/mermaid/issues/478)
    -- sequenceDiagram: dotted line for alt and empty bracket should be hidden [#456](https://github.com/knsv/mermaid/issues/456)
    -- SVG output (almost) not correct [#434](https://github.com/knsv/mermaid/issues/434)
    -- How to set axisFormatter of gantt in mermaid CLI? [#428](https://github.com/knsv/mermaid/issues/428)
    -- customizing link style with any color sets `fill` property to `black` instead of `none` [#416](https://github.com/knsv/mermaid/issues/416)
    -- New line at the end of SVG file [#400](https://github.com/knsv/mermaid/issues/400)
    -- CLI doesn't work [#389](https://github.com/knsv/mermaid/issues/389)
    -- Can't render subgraphs with htmlLabels: false [#367](https://github.com/knsv/mermaid/issues/367)
    -- Color arrowhead [#362](https://github.com/knsv/mermaid/issues/362)
    -- CLI: Invisible text, lines in SVG output [#341](https://github.com/knsv/mermaid/issues/341)
    -
    -**Merged pull requests:**
    -
    -- Support Multi-line Actor Descriptions [#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj))
    -- Update Travis config [#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong))
    -- Fix spelling of 'you' in sequenceDiagram docs [#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson))
    -- Improve CLI output [#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042))
    -- Modernize mermaid [#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong))
    -- Modernize mermaid [#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong))
    -- Update CLI instructions [#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps))
    -- Add style for classDiagram to dark/default theme [#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel))
    -- Fix documentation for git graph. [#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs))
    -- Fix links in documentations [#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71))
    -- Update README.md with git graph sample [#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur))
    -- Fix misspelling of “another” [#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert))
    -- Fixed #456 sequenceDiagram: dotted line for alt and empty bracket sho… [#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong))
    -- Add viewbox attr to class diagram [#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm))
    -- add par statement to sequenceDiagram [#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor))
    -
    -## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0)
    -
    -**Implemented enhancements:**
    -
    -- npm install -g mermaid does not install phantomjs [#329](https://github.com/knsv/mermaid/issues/329)
    -- activation boxes [#313](https://github.com/knsv/mermaid/issues/313)
    -
    -**Closed issues:**
    -
    -- demos on io site not working [#466](https://github.com/knsv/mermaid/issues/466)
    -- Can not be generated PNG pictures through CLI with Chinese [#451](https://github.com/knsv/mermaid/issues/451)
    -- Round nodes cannot be styled with CSS classes [#443](https://github.com/knsv/mermaid/issues/443)
    -- webpack gulp UglifyJsPlugin error. [#440](https://github.com/knsv/mermaid/issues/440)
    -- String concatenation isn't working [#432](https://github.com/knsv/mermaid/issues/432)
    -- text flow/wrap in actor box of sequence diagram [#422](https://github.com/knsv/mermaid/issues/422)
    -- Online live editor still use old version [#402](https://github.com/knsv/mermaid/issues/402)
    -- uncaught TypeError: t.getTransformToElement is not a function [#401](https://github.com/knsv/mermaid/issues/401)
    -- Only works when using browserify'd code [#373](https://github.com/knsv/mermaid/issues/373)
    -- document the use of shebang line in mmd files [#364](https://github.com/knsv/mermaid/issues/364)
    -- Diagrams are small and unreadable in IE 11 - since 0.5.1 [#356](https://github.com/knsv/mermaid/issues/356)
    -- \[Feature Request] ER-Diagram Support [#354](https://github.com/knsv/mermaid/issues/354)
    -- The need for mermaid.css should be mentioned explicitly in the intro docs... [#273](https://github.com/knsv/mermaid/issues/273)
    -
    -**Merged pull requests:**
    -
    -- Update index.html [#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight))
    -- Fix for #416, customizing link style with any color sets `fill` property to `black` instead of `none` [#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin))
    -- Allow .node>circle to receive css styles [#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz))
    -- Fix spelling [#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn))
    -- added tests and fix cli css style selector lowercase problem [#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev))
    -- Update d3.js [#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz))
    -- added tests to reproduce #434 in flowchart [#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev))
    -- Code Climate config [#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott))
    -- fix gantt and sequence digram cli cfg [#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev))
    -- fix gantt chart cli configuration broken [#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev))
    -- fix gantt chart cli configuration parsing including functions [#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev))
    -- Uses an empty text node instead of a string for svg group labels [#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick))
    -- use tspan via d3.textwrap to place actor text in sequence diagram [#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev))
    -- \#422 use foreignObject/div to place actor label in sequence diagram [#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev))
    -- Clarify the need for a CSS stylesheet [#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb))
    -- Added hads downstream project [#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied))
    -- update usage and fix #273 [#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance))
    -- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur))
    -- New neutral theme [#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied))
    -- fix cli issues [#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page))
    -- Add missing space for 'Labels out of bounds' section [#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist))
    -- Fix typo: `pats` -> `paths` [#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon))
    -- Added class diagram example to README.md [#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion))
    -- override normal flowchart arrowhead to allow css styling [#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue))
    -- added sphinx extension [#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan))
    -- Fix typo in the sequence diagram documentation [#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino))
    -
    -## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0)
    -
    -**Closed issues:**
    -
    -- Docs css: code hard to read [#324](https://github.com/knsv/mermaid/issues/324)
    -- About Markpad integration [#323](https://github.com/knsv/mermaid/issues/323)
    -- How to link backwards in flowchart? [#321](https://github.com/knsv/mermaid/issues/321)
    -- Help with editor [#310](https://github.com/knsv/mermaid/issues/310)
    -- \+1 [#293](https://github.com/knsv/mermaid/issues/293)
    -- Basic chart does not render on Chome, but does in Firefox [#290](https://github.com/knsv/mermaid/issues/290)
    -- Live editor is broken [#285](https://github.com/knsv/mermaid/issues/285)
    -- "No such file or directory" trying to run mermaid 0.5.7 on OS X [#284](https://github.com/knsv/mermaid/issues/284)
    -- participant name as "Long Long Name" [#283](https://github.com/knsv/mermaid/issues/283)
    -- Windows - cli - could not find phantomjs at the specified path [#236](https://github.com/knsv/mermaid/issues/236)
    -
    -**Merged pull requests:**
    -
    -- The option of gantt for the spaces for the section names. [#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi))
    -- Gitgraph: Make reset work with parent ref carets [#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur))
    -- Remove the text-shadows that make the text look blurry [#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers))
    -- add line interpolation to linkStyle in flowchart [#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn))
    -- Support git graph diagrams in mermaid [#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur))
    -- Build and test execution changes [#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea))
    -- Reformatting of css files [#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr))
    -- (WIP) Sequence Diagram Title Support [#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja))
    -- activations doc + few fixes [#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy))
    -- Dark theme for better contrast on darker backgrounds [#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a))
    -- Activations [#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy))
    -- Support leading comments for sequenceDiagrams [#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle))
    -- Show a little lenience for white-space around names [#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle))
    -- Update list of downstream projects [#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo))
    -- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
    -- Issue 297 - src/mermaid.js generates bad code [#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
    -- Updated instructions for running tests [#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
    -- Add Markdown Plus to Downstream projects [#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong))
    -- Quote phantomPath so that it doesn't fail on window [#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur))
    -
    -## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8)
    -
    -## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7)
    -
    -**Closed issues:**
    -
    -- Mermaid + LightPaper = ❤️ [#280](https://github.com/knsv/mermaid/issues/280)
    -- Bower Integration [#278](https://github.com/knsv/mermaid/issues/278)
    -- Mermaid breaks when variables end in 'v' [#276](https://github.com/knsv/mermaid/issues/276)
    -- sequence diagrams don't support participant aliasing [#263](https://github.com/knsv/mermaid/issues/263)
    -- One diagram that fails to render stops further execution on the page [#259](https://github.com/knsv/mermaid/issues/259)
    -- Where to find line layout algorithm? [#258](https://github.com/knsv/mermaid/issues/258)
    -- Compatibility with node.js [#257](https://github.com/knsv/mermaid/issues/257)
    -- Label resizing with dynamically loaded fonts [#255](https://github.com/knsv/mermaid/issues/255)
    -- SVG arrowheads are broken in the CLI [#249](https://github.com/knsv/mermaid/issues/249)
    -- Cannot read property 'replace' of undefined [#239](https://github.com/knsv/mermaid/issues/239)
    -
    -**Merged pull requests:**
    -
    -- gh-50 Allow styling of edge labels in css [#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia))
    -- Allow sequenceDiagram participant aliasing [#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042))
    -
    -## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6)
    -
    -**Implemented enhancements:**
    -
    -- Add download SVG link to the live editor [#144](https://github.com/knsv/mermaid/issues/144)
    -
    -**Fixed bugs:**
    -
    -- Live Editor: Permalink address not being parsed [#202](https://github.com/knsv/mermaid/issues/202)
    -
    -**Closed issues:**
    -
    -- title doesn't work in sequenceDiagram [#248](https://github.com/knsv/mermaid/issues/248)
    -- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [#247](https://github.com/knsv/mermaid/issues/247)
    -- Broken in firefox? [#245](https://github.com/knsv/mermaid/issues/245)
    -- When there is a Chinese symbol in the flowchart, it will crash。 [#238](https://github.com/knsv/mermaid/issues/238)
    -- Non-alpha characters included in ALPHA token (flow graph jison) [#232](https://github.com/knsv/mermaid/issues/232)
    -- subgraph not rendering with change to sample [#231](https://github.com/knsv/mermaid/issues/231)
    -- sequence diagram requires a new line at the end? [#229](https://github.com/knsv/mermaid/issues/229)
    -
    -**Merged pull requests:**
    -
    -- Make sequenceDiagram terminal newline optional [#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042))
    -- Support sequenceDiagram "over" notes [#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042))
    -- Properly handle "rest of line" statements [#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042))
    -- CLI: Propagate exit code from lib (i.e., phantomjs) [#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042))
    -- flowRender.js - Fix FontAwesome icon insert [#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal))
    -- updated sequence diagram link in live editor [#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s))
    -- updated links in README.md [#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s))
    -- Ellipse syntax [#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88))
    -- Allow keywords as suffixes of node ids [#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88))
    -- Highlighted the editor in the nav [#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv))
    -- Live editor tweaks [#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88))
    -- Add a Gitter chat badge to README.md [#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger))
    -
    -## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5)
    -
    -**Closed issues:**
    -
    -- sequence diagram, arrowhead instead of crosshead [#227](https://github.com/knsv/mermaid/issues/227)
    -
    -**Merged pull requests:**
    -
    -- Fix a typo: crosshead --> arrowhead [#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong))
    -
    -## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4)
    -
    -**Implemented enhancements:**
    -
    -- Set log level from mermaid configuration [#220](https://github.com/knsv/mermaid/issues/220)
    -- Links in sequence diagrams [#159](https://github.com/knsv/mermaid/issues/159)
    -- Add syntax for double headed arrows [#123](https://github.com/knsv/mermaid/issues/123)
    -
    -**Fixed bugs:**
    -
    -- comment characters `%%` cause parse error [#141](https://github.com/knsv/mermaid/issues/141)
    -
    -**Closed issues:**
    -
    -- Marker-end arrow cannot be shown for URL with query parameter [#225](https://github.com/knsv/mermaid/issues/225)
    -- Please update bower's D3 version [#221](https://github.com/knsv/mermaid/issues/221)
    -- Width fixed to 400px [#204](https://github.com/knsv/mermaid/issues/204)
    -- render to png from the cli does not display the marker-end arrow heads [#181](https://github.com/knsv/mermaid/issues/181)
    -
    -**Merged pull requests:**
    -
    -- Allow `end` as a substring of vertex id [#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88))
    -- Remove duplicate npm dependencies: d3 and he [#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88))
    -
    -## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3)
    -
    -## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2)
    -
    -**Implemented enhancements:**
    -
    -- Support for hyperlink and tooltip [#34](https://github.com/knsv/mermaid/issues/34)
    -
    -**Closed issues:**
    -
    -- Installing “atom-mermaid@0.1.3” failed [#218](https://github.com/knsv/mermaid/issues/218)
    -- node feature request [#211](https://github.com/knsv/mermaid/issues/211)
    -- Please add prefix for styles [#208](https://github.com/knsv/mermaid/issues/208)
    -- Bad handling of block arguments [#207](https://github.com/knsv/mermaid/issues/207)
    -- please consider port to mac osx [#203](https://github.com/knsv/mermaid/issues/203)
    -- allow phantomjs >=1.9.x [#201](https://github.com/knsv/mermaid/issues/201)
    -- syntax for venn diagrams? [#200](https://github.com/knsv/mermaid/issues/200)
    -- Broken CLI Graphs? (v0.5.1) [#196](https://github.com/knsv/mermaid/issues/196)
    -- Static site does not render under HTTPS [#194](https://github.com/knsv/mermaid/issues/194)
    -- Error on simple graph [#192](https://github.com/knsv/mermaid/issues/192)
    -- Escape "~" [#191](https://github.com/knsv/mermaid/issues/191)
    -- Trying to add link using 'click' to flowchart [#188](https://github.com/knsv/mermaid/issues/188)
    -- cli: no lines and arrowheads rendered / only dotted lines [#187](https://github.com/knsv/mermaid/issues/187)
    -- text of mermaid div displayed on page [#186](https://github.com/knsv/mermaid/issues/186)
    -- using mermaid with laravel [#185](https://github.com/knsv/mermaid/issues/185)
    -- Atom editor package [#183](https://github.com/knsv/mermaid/issues/183)
    -- Auto linewrap for notes in sequence diagrams [#178](https://github.com/knsv/mermaid/issues/178)
    -- Execute code after initialize [#176](https://github.com/knsv/mermaid/issues/176)
    -- Autoscaling for all diagram types [#175](https://github.com/knsv/mermaid/issues/175)
    -- Problem wit click event callback [#174](https://github.com/knsv/mermaid/issues/174)
    -- How to escape characters? [#170](https://github.com/knsv/mermaid/issues/170)
    -- it can not work [#167](https://github.com/knsv/mermaid/issues/167)
    -- Broken subgraph using the CLI [#153](https://github.com/knsv/mermaid/issues/153)
    -- IE Support issue [#142](https://github.com/knsv/mermaid/issues/142)
    -- Flowchart truncated [#140](https://github.com/knsv/mermaid/issues/140)
    -- Double Quote as text is not working [#219](https://github.com/knsv/mermaid/issues/219)
    -- classDef / class not working with htmlLabels? [#210](https://github.com/knsv/mermaid/issues/210)
    -- Links in graph missing [#209](https://github.com/knsv/mermaid/issues/209)
    -- Last word in comment boxes getting cut off by word wrap library : ( [#195](https://github.com/knsv/mermaid/issues/195)
    -- Escaping characters in sequence diagram [#193](https://github.com/knsv/mermaid/issues/193)
    -- SVG foreignObject rendering [#180](https://github.com/knsv/mermaid/issues/180)
    -- IE9 issue [#179](https://github.com/knsv/mermaid/issues/179)
    -- inoperable in an AMD/requirejs environment: IPython Notebook [#127](https://github.com/knsv/mermaid/issues/127)
    -- \[Parser] Hyphen in participant name bring TypeError [#74](https://github.com/knsv/mermaid/issues/74)
    -
    -**Merged pull requests:**
    -
    -- Update flowchart.md [#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro))
    -- Default style when using the CLI [#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey))
    -- Gantt chart - add minutes and seconds durations [#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans))
    -- Using QUnit for AMD testing [#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl))
    -- Update phantomscript.js [#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow))
    -
    -## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1)
    -
    -**Implemented enhancements:**
    -
    -- To SVG Export [#146](https://github.com/knsv/mermaid/issues/146)
    -- Possibility to set the width of the generated flowchart [#129](https://github.com/knsv/mermaid/issues/129)
    -- Special characters break parsing [#54](https://github.com/knsv/mermaid/issues/54)
    -- Responsive graph layout for mobile viewers [#51](https://github.com/knsv/mermaid/issues/51)
    -- Styling connector lines [#31](https://github.com/knsv/mermaid/issues/31)
    -
    -**Fixed bugs:**
    -
    -- flowchart - styling of edges via css overrides specific styles set in the graph definition [#128](https://github.com/knsv/mermaid/issues/128)
    -
    -**Closed issues:**
    -
    -- Live editor is broken [#173](https://github.com/knsv/mermaid/issues/173)
    -- 0.5.0 no longer respects custom date definitions in Gantt diagrams [#171](https://github.com/knsv/mermaid/issues/171)
    -- Drop label character restrictions [#162](https://github.com/knsv/mermaid/issues/162)
    -- can't nest subgraphs in flowchart [#161](https://github.com/knsv/mermaid/issues/161)
    -- Unable to generate gantt diagram with mermaid CLI [#158](https://github.com/knsv/mermaid/issues/158)
    -- Inline css by "mermaid" [#157](https://github.com/knsv/mermaid/issues/157)
    -- Finite State Machine Diagram [#152](https://github.com/knsv/mermaid/issues/152)
    -- How to center align gantt diagram [#150](https://github.com/knsv/mermaid/issues/150)
    -- Security concern regarding class definition [#148](https://github.com/knsv/mermaid/issues/148)
    -- File Extension [#147](https://github.com/knsv/mermaid/issues/147)
    -- `setTimeout` with clusters problematic with programmatic edits and no callback [#133](https://github.com/knsv/mermaid/issues/133)
    -- module.exports.cloneCssStyles() in combination with Angularjs breaks display in Chrome and IE [#126](https://github.com/knsv/mermaid/issues/126)
    -- Gantt - suitable xAxis for longer project [#125](https://github.com/knsv/mermaid/issues/125)
    -- How to get started with this project ? [#64](https://github.com/knsv/mermaid/issues/64)
    -
    -**Merged pull requests:**
    -
    -- Remove moot `version` property from bower.json [#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche))
    -
    -## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0)
    -
    -**Implemented enhancements:**
    -
    -- Add a css file, mermaid.css, with default styling [#122](https://github.com/knsv/mermaid/issues/122)
    -- software architecture diagram [#36](https://github.com/knsv/mermaid/issues/36)
    -- Support for bar charts and pie diagrams [#22](https://github.com/knsv/mermaid/issues/22)
    -
    -**Closed issues:**
    -
    -- uglifyjs wanrings which means we can improve the code [#156](https://github.com/knsv/mermaid/issues/156)
    -- New(er) features unavailable in downloadable js files? [#151](https://github.com/knsv/mermaid/issues/151)
    -- Add gh-gapes link to description [#143](https://github.com/knsv/mermaid/issues/143)
    -- Some examples not displayed on Firefox 36.0.1 [#138](https://github.com/knsv/mermaid/issues/138)
    -- tags ending in a "v" don't render [#132](https://github.com/knsv/mermaid/issues/132)
    -- Links in flowchart [#131](https://github.com/knsv/mermaid/issues/131)
    -- Using the library for iOS development [#130](https://github.com/knsv/mermaid/issues/130)
    -- Add capability for gantt diagrams [#118](https://github.com/knsv/mermaid/issues/118)
    -- lower case v causes error in the parser [#108](https://github.com/knsv/mermaid/issues/108)
    -- Label's css conflict with boostrap's .label [#67](https://github.com/knsv/mermaid/issues/67)
    -- TypeError: Cannot read property 'layout' of undefined [#37](https://github.com/knsv/mermaid/issues/37)
    -
    -**Merged pull requests:**
    -
    -- Dev 0.5.0 [#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv))
    -- Fix spacing [#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho))
    -- Fixing typo: "Think" -> "Thick" [#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a))
    -- IE, local html, cssRules access is denied [#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong))
    -- Add automatically generated change log file. [#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder))
    -- Adding init argument to the global API [#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl))
    -- Add description of manual calling of init [#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl))
    -- Allow other forms of node selection for init() [#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl))
    -- Use a library-level variable for assigning ids [#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl))
    -
    -## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0)
    -
    -**Implemented enhancements:**
    -
    -- Assymetric shapes not documented [#82](https://github.com/knsv/mermaid/issues/82)
    -- Improve arrows [#3](https://github.com/knsv/mermaid/issues/3)
    -
    -**Fixed bugs:**
    -
    -- NoModificationAllowedError [#23](https://github.com/knsv/mermaid/issues/23)
    -
    -**Closed issues:**
    -
    -- subgraph background is black in rendered flowchart PNG via CLI [#121](https://github.com/knsv/mermaid/issues/121)
    -- Integrate editor at https://github.com/naseer/mermaid-webapp [#110](https://github.com/knsv/mermaid/issues/110)
    -- Internet Explorer Support [#99](https://github.com/knsv/mermaid/issues/99)
    -
    -## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5)
    -
    -## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4)
    -
    -**Implemented enhancements:**
    -
    -- Apply styling from css when using the CLI utility [#85](https://github.com/knsv/mermaid/issues/85)
    -- Generated SVG works poorly outside web browsers [#58](https://github.com/knsv/mermaid/issues/58)
    -- Generating SVG text blob for use in Node [#2](https://github.com/knsv/mermaid/issues/2)
    -
    -**Closed issues:**
    -
    -- Subgraph syntax bug? [#120](https://github.com/knsv/mermaid/issues/120)
    -- Live editor [#115](https://github.com/knsv/mermaid/issues/115)
    -- Error in "Basic Syntax" wiki page [#113](https://github.com/knsv/mermaid/issues/113)
    -- semicolons, anyone? [#111](https://github.com/knsv/mermaid/issues/111)
    -- undefined `sequenceConfig` fails [#109](https://github.com/knsv/mermaid/issues/109)
    -- Sequence Diagrams: Show Actors below as well [#106](https://github.com/knsv/mermaid/issues/106)
    -- Allow overriding sequence diagram configuration (SVG properties) [#103](https://github.com/knsv/mermaid/issues/103)
    -- Error when rendering A-- This is the text -- B [#102](https://github.com/knsv/mermaid/issues/102)
    -- Clipping in documentation [#97](https://github.com/knsv/mermaid/issues/97)
    -- isolate class styling to the svg container [#92](https://github.com/knsv/mermaid/issues/92)
    -- Make the new graph declaration more visual [#40](https://github.com/knsv/mermaid/issues/40)
    -
    -**Merged pull requests:**
    -
    -- Add live editor [#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer))
    -- Adds CSS option to the CLI [#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog))
    -- Update flowchart.md in response Issue #113 [#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40))
    -- Ignore all files except the license and dist/ folder when installing with Bower. [#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy))
    -
    -## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3)
    -
    -**Implemented enhancements:**
    -
    -- Support for dotted links [#26](https://github.com/knsv/mermaid/issues/26)
    -
    -**Closed issues:**
    -
    -- Missing arrows in sequence diagram [#98](https://github.com/knsv/mermaid/issues/98)
    -- Error with >9 linkStyles [#95](https://github.com/knsv/mermaid/issues/95)
    -
    -**Merged pull requests:**
    -
    -- Require d3 directly to better support Node usage [#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish))
    -- update doc with -c option [#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr))
    -- Add new parameter to the console client to override the svg configuration in sequence diagrams [#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr))
    -- Text based labels, new shape [#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes))
    -- fix html tags in example usage [#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin))
    -
    -## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11)
    -
    -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2)
    -
    -**Implemented enhancements:**
    -
    -- Make link text look like it is on the line [#53](https://github.com/knsv/mermaid/issues/53)
    -
    -**Closed issues:**
    -
    -- disable auto render [#91](https://github.com/knsv/mermaid/issues/91)
    -- Tidy breaks mermaid (linebreaks in \
    ) [#87](https://github.com/knsv/mermaid/issues/87) -- Bug: \
    being rendered as text in node [#73](https://github.com/knsv/mermaid/issues/73) -- Graph edges appear to render outside of the canvas [#70](https://github.com/knsv/mermaid/issues/70) - -**Merged pull requests:** - -- Merge pull request #1 from knsv/master [#96](https://github.com/knsv/mermaid/pull/96) ([gkchic](https://github.com/gkchic)) -- Removed duplicated section in flowchart docs [#94](https://github.com/knsv/mermaid/pull/94) ([kaime](https://github.com/kaime)) -- Grammar changes to sequence page [#93](https://github.com/knsv/mermaid/pull/93) ([gkchic](https://github.com/gkchic)) -- Github buttons [#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic)) -- Template change [#88](https://github.com/knsv/mermaid/pull/88) ([gkchic](https://github.com/gkchic)) - -## [0.3.1](https://github.com/knsv/mermaid/tree/0.3.1) (2015-01-05) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1) - -**Implemented enhancements:** - -- Support for sequence diagrams [#16](https://github.com/knsv/mermaid/issues/16) -- Client utility for mermaid [#6](https://github.com/knsv/mermaid/issues/6) - -**Closed issues:** - -- Non ASCII chars in labels [#84](https://github.com/knsv/mermaid/issues/84) -- 'undefined' titles of Quicklinks on the usage page [#80](https://github.com/knsv/mermaid/issues/80) -- \[cli] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [#71](https://github.com/knsv/mermaid/issues/71) - -**Merged pull requests:** - -- Flowchart doc: Text in the circle now in a circle [#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack)) -- Fix for issue #73 [#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a)) -- Ink template [#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic)) -- Show help and version even if phantom isn't present. Fixes #71 [#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog)) -- Add apostrophe & 'and' [#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki)) - -## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0) - -**Implemented enhancements:** - -- How do I do comments? [#47](https://github.com/knsv/mermaid/issues/47) -- Improve readability with new line as terminator and whitespace [#38](https://github.com/knsv/mermaid/issues/38) - -**Fixed bugs:** - -- This characters failed the lexical parsing [#46](https://github.com/knsv/mermaid/issues/46) - -**Closed issues:** - -- Trailing whitespace at the end of lines is not ignored [#55](https://github.com/knsv/mermaid/issues/55) -- Use classes instead of inline style for easy styling [#24](https://github.com/knsv/mermaid/issues/24) - -**Merged pull requests:** - -- Adds Command Line Interface for generating PNGs from mermaid description files [#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog)) -- Allow special symbols for direction along with acronyms [#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40)) - -## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16) - -**Fixed bugs:** - -- Lines routed outside visible area [#19](https://github.com/knsv/mermaid/issues/19) - -**Closed issues:** - -- Mermaid not rendering properly on Wordpress pages [#59](https://github.com/knsv/mermaid/issues/59) -- Improve example page with live demo [#52](https://github.com/knsv/mermaid/issues/52) -- Does not render upon AngularJS Updates [#45](https://github.com/knsv/mermaid/issues/45) -- Download link in README.MD doesn't work. [#42](https://github.com/knsv/mermaid/issues/42) -- linkStyle usage is not obvious [#41](https://github.com/knsv/mermaid/issues/41) -- Move \*.spec.js in src/ to test/ [#35](https://github.com/knsv/mermaid/issues/35) - -**Merged pull requests:** - -- New grammar will allow statements ending without semicolon as disccused in Issue #38 [#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40)) -- Class based styling [#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes)) -- Fix typos [#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino)) -- Included .DS_Store in gitignore [#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq)) -- Improves readability discussed in issue #38 [#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40)) -- Added a linting task for gulp [#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv)) - -## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15) - -**Fixed bugs:** - -- Error with some characters [#25](https://github.com/knsv/mermaid/issues/25) -- Cap-cased words break parser [#8](https://github.com/knsv/mermaid/issues/8) - -**Closed issues:** - -- Question marks don't render properly with /dist/mermaid.full.min.js [#30](https://github.com/knsv/mermaid/issues/30) -- Provide parse function in browser widthout `require`? [#21](https://github.com/knsv/mermaid/issues/21) -- Better label text support [#18](https://github.com/knsv/mermaid/issues/18) - -**Merged pull requests:** - -- Include bower_components/ to .gitignore [#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv)) -- Fixed reference to Git repo. [#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis)) - -## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14) - -## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13) - -**Implemented enhancements:** - -- Publish to NPM [#7](https://github.com/knsv/mermaid/issues/7) - -**Closed issues:** - -- modified init to be applied more than once [#29](https://github.com/knsv/mermaid/issues/29) -- Wanted to know build process for the project. [#28](https://github.com/knsv/mermaid/issues/28) -- can not support Chinese description [#20](https://github.com/knsv/mermaid/issues/20) -- Support unicode chars in labels [#9](https://github.com/knsv/mermaid/issues/9) - -## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10) - -## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9) - -**Closed issues:** - -- Add link to jsbin playground to README [#11](https://github.com/knsv/mermaid/issues/11) -- What are the requirements ? [#10](https://github.com/knsv/mermaid/issues/10) - -**Merged pull requests:** - -- Allow unicode chars in labels [#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige)) - -## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8) - -## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7) - -**Closed issues:** - -- Provide parser as separate module [#4](https://github.com/knsv/mermaid/issues/4) - -## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6) - -## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5) - -**Merged pull requests:** - -- Added new shapes! [#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes)) - -## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4) - -## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3) - -## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2) - -## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1) - -## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0) - -## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17) - -[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1) - -## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16) diff --git a/docs/community/development.md b/docs/community/development.md deleted file mode 100644 index 58ca4670bc..0000000000 --- a/docs/community/development.md +++ /dev/null @@ -1,141 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/development.md](../../packages/mermaid/src/docs/community/development.md). - -# Development and Contribution 🙌 - -So you want to help? That's great! - -![Image of happy people jumping with excitement](https://media.giphy.com/media/BlVnrxJgTGsUw/giphy.gif) - -Here are a few things to get you started on the right path. - -**The Docs Structure is dictated by [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**. - -**Note: Commits and Pull Requests should be directed to the develop branch.** - -## Branching - -Mermaid uses a [Git Flow](https://guides.github.com/introduction/flow/)–inspired approach to branching. So development is done in the `develop` branch. - -Once development is done we branch a `release` branch from `develop` for testing. - -Once the release happens we merge the `release` branch with `master` and kill the `release` branch. - -This means that **you should branch off your pull request from develop** and direct all Pull Requests to it. - -## Contributing Code - -We make all changes via Pull Requests. As we have many Pull Requests from developers new to mermaid, we have put in place a process, wherein _knsv, Knut Sveidqvist_ is the primary reviewer of changes and merging pull requests. The process is as follows: - -- Large changes reviewed by knsv or other developer asked to review by knsv -- Smaller, low-risk changes like dependencies, documentation, etc. can be merged by active collaborators -- Documentation (we encourage updates to the `/packages/mermaid/src/docs` folder; you can submit them via direct commits) - -When you commit code, create a branch with the following naming convention: - -Start with the type, such as **feature** or **bug**, followed by the issue number for reference, and a text that describes the issue. - -**One example:** - -`feature/945_state_diagrams` - -**Another example:** - -`bug/123_nasty_bug_branch` - -## Contributing to Documentation - -If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature? - -The docs are located in the `src/docs` folder and are written in Markdown. Just pick the right section and start typing. If you want to propose changes to the structure of the documentation, such as adding a new section or a new file you do that via **[.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**. - -> **All the documents displayed in the GitHub.io page are listed in [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**. - -The contents of are based on the docs from the `master` branch. Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid-js.github.io/mermaid/) once released. - -## How to Contribute to Documentation - -We are a little less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator. - -The documentation is located in the `src/docs` directory and organized according to relevant subfolder. - -The `docs` folder will be automatically generated when committing to `src/docs` and should not be edited manually. - -We encourage contributions to the documentation at [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs). We publish documentation using GitHub Pages with [Docsify](https://www.youtube.com/watch?v=TV88lp7egMw&t=3s) - -### Add Unit Tests for Parsing - -This is important so that, if someone that does not know about this great feature suggests a change to the grammar, they get notified early on when that change breaks the parser. Another important aspect is that, without proper parsing, tests refactoring is pretty much impossible. - -### Add E2E Tests - -This tests the rendering and visual appearance of the diagrams. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks! - -To start working with the e2e tests: - -1. Run `pnpm run dev` to start the dev server -2. Start **Cypress** by running `pnpm exec cypress open` in the **mermaid** folder. - -The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. - -When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs. - -This is what a rendering test looks like: - -```js -it('should render forks and joins', () => { - imgSnapshotTest( - ` - stateDiagram - state fork_state <<fork>> - [*] --> fork_state - fork_state --> State2 - fork_state --> State3 - - state join_state <<join>> - State2 --> join_state - State3 --> join_state - join_state --> State4 - State4 --> [*] - `, - { logLevel: 0 } - ); - cy.get('svg'); -}); -``` - -### Any Questions or Suggestions? - -After logging in at [GitHub.com](https://www.github.com), open or append to an issue [using the GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Documentation%22). - -### How to Contribute a Suggestion - -Markdown is used to format the text, for more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). - -To edit Docs on your computer: - -1. Find the Markdown file (.md) to edit in the [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs) directory in the `develop` branch. -2. Create a fork of the develop branch. -3. Make changes or add new documentation. -4. Commit changes to your fork and push it to GitHub. -5. Create a Pull Request of your fork. - -To edit Docs on GitHub: - -1. Login to [GitHub.com](https://www.github.com). -2. Navigate to [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs). -3. To edit a file, click the pencil icon at the top-right of the file contents panel. -4. Describe what you changed in the **Propose file change** section, located at the bottom of the page. -5. Submit your changes by clicking the button **Propose file change** at the bottom (by automatic creation of a fork and a new branch). -6. Create a Pull Request of your newly forked branch by clicking the green **Create Pull Request** button. - -## Last Words - -Don't get daunted if it is hard in the beginning. We have a great community with only encouraging words. So, if you get stuck, ask for help and hints in the Slack forum. If you want to show off something good, show it off there. - -[Join our Slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) - -![Image of superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif) diff --git a/docs/community/img/er.png b/docs/community/img/er.png deleted file mode 100644 index 21c44c257a3e0ee3e782dd5b6696602f6d9f5172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56576 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 **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/n00b-overview.md](../../packages/mermaid/src/docs/community/n00b-overview.md). - -# Overview for Beginners - -**Explaining with a Diagram** - -A picture is worth a thousand words, a good diagram is undoubtedly worth more. They make understanding easier. - -## Creating and Maintaining Diagrams - -Anyone who has used Visio, or (God Forbid) Excel to make a Gantt Chart, knows how hard it is to create, edit and maintain good visualizations. - -Diagrams/Charts are significant but also become obsolete/inaccurate very fast. This catch-22 hobbles the productivity of teams. - -# Doc Rot in Diagrams - -Doc-Rot kills diagrams as quickly as it does text, but it takes hours in a desktop application to produce a diagram. - -Mermaid seeks to change using markdown-inspired syntax. The process is a quicker, less complicated, and more convenient way of going from concept to visualization. - -It is a relatively straightforward solution to a significant hurdle with the software teams. - -# Definition of Terms/ Dictionary - -**Mermaid text definitions can be saved for later reuse and editing.** - -> These are the Mermaid diagram definitions inside `
    ` tags, with the `class=mermaid`. - -```html -
    -    graph TD
    -    A[Client] --> B[Load Balancer]
    -    B --> C[Server01]
    -    B --> D[Server02]
    -
    -``` - -**render** - -> This is the core function of the Mermaid API. It reads all the `Mermaid Definitions` inside `div` tags and returns an SVG file, based on the definition. - -**Nodes** - -> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](../intro/n00b-syntaxReference.md) - -## Advantages of using Mermaid - -- Ease to generate, modify and render diagrams when you make them. -- The number of integrations and plugins it has. -- You can add it to your or companies website. -- Diagrams can be created through comments like this in a script: - -## The catch-22 of Diagrams and Charts: - -**Diagramming and charting is a large waste of developer's time, but not having diagrams ruins productivity.** - -Mermaid solves this by reducing the time and effort required to create diagrams and charts. - -Because, the text base for the diagrams allows it to be updated easily. Also, it can be made part of production scripts (and other pieces of code). So less time is spent on documenting, as a separate task. - -## Catching up with Development - -Being based on markdown, Mermaid can be used, not only by accomplished front-end developers, but by most computer savvy people to render diagrams, at much faster speeds. -In fact one can pick up the syntax for it quite easily from the examples given and there are many tutorials available in the internet. - -## Mermaid is for everyone. - -Video [Tutorials](https://mermaid-js.github.io/mermaid/#/../config/Tutorials) are also available for the mermaid [live editor](https://mermaid.live/). - -Alternatively you can use Mermaid [Plug-Ins](https://mermaid-js.github.io/mermaid/#/./integrations), with tools you already use, like Google Docs. diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md deleted file mode 100644 index da86f98381..0000000000 --- a/docs/community/newDiagram.md +++ /dev/null @@ -1,264 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/newDiagram.md](../../packages/mermaid/src/docs/community/newDiagram.md). - -# Adding a New Diagram/Chart 📊 - -### Step 1: Grammar & Parsing - -#### Grammar - -This would be to define a jison grammar for the new diagram type. That should start with a way to identify that the text in the mermaid tag is a diagram of that type. Create a new folder under diagrams for your new diagram type and a parser folder in it. This leads us to step 2. - -For instance: - -- the flowchart starts with the keyword graph. -- the sequence diagram starts with the keyword sequenceDiagram - -#### Store data found during parsing - -There are some jison specific sub steps here where the parser stores the data encountered when parsing the diagram, this data is later used by the renderer. You can during the parsing call a object provided to the parser by the user of the parser. This object can be called during parsing for storing data. - -```jison -statement - : 'participant' actor { $$='actor'; } - | signal { $$='signal'; } - | note_statement { $$='note'; } - | 'title' message { yy.setTitle($2); } - ; -``` - -In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. - -> **Note** -> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. - -For more info look in the example diagram type: - -The `yy` object has the following function: - -```javascript -exports.parseError = function (err, hash) { - mermaid.parseError(err, hash); -}; -``` - -when parsing the `yy` object is initialized as per below: - -```javascript -const parser = exampleParser.parser; -parser.yy = db; -``` - -### Step 2: Rendering - -Write a renderer that given the data found during parsing renders the diagram. To look at an example look at sequenceRenderer.js rather then the flowchart renderer as this is a more generic example. - -Place the renderer in the diagram folder. - -### Step 3: Detection of the new diagram type - -The second thing to do is to add the capability to detect the new new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type. - -### Step 4: The final piece - triggering the rendering - -At this point when mermaid is trying to render the diagram, it will detect it as being of the new type but there will be no match when trying to render the diagram. To fix this add a new case in the switch statement in main.js:init this should match the diagram type returned from step #2. The code in this new case statement should call the renderer for the diagram type with the data found by the parser as an argument. - -## Usage of the parser as a separate module - -### Setup - -```javascript -const graph = require('./graphDb'); -const flow = require('./parser/flow'); -flow.parser.yy = graph; -``` - -### Parsing - -```javascript -flow.parser.parse(text); -``` - -### Data extraction - -```javascript -graph.getDirection(); -graph.getVertices(); -graph.getEdges(); -``` - -The parser is also exposed in the mermaid api by calling: - -```javascript -const parser = mermaid.getParser(); -``` - -Note that the parse needs a graph object to store the data as per: - -```javascript -flow.parser.yy = graph; -``` - -Look at `graphDb.js` for more details on that object. - -## Layout - -If you are using a dagre based layout, please use flowchart-v2 as a template and by doing that you will be using dagre-wrapper instead of dagreD3 which we are migrating away from. - -### Common parts of a diagram - -There are a few features that are common between the different types of diagrams. We try to standardize the diagrams that work as similar as possible for the end user. The commonalities are: - -- Directives, a way of modifying the diagram configuration from within the diagram code. -- Accessibility, a way for an author to provide additional information like titles and descriptions to people accessing a text with diagrams using a screen reader. -- Themes, there is a common way to modify the styling of diagrams in Mermaid. -- Comments should follow mermaid standards - -Here some pointers on how to handle these different areas. - -#### [Directives](../config/directives.md) - -Here is example handling from flowcharts: -Jison: - -```jison -/* lexical grammar */ -%lex -%x open_directive -%x type_directive -%x arg_directive -%x close_directive - -\%\%\{ { this.begin('open_directive'); return 'open_directive'; } -((?:(?!\}\%\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; } -":" { this.popState(); this.begin('arg_directive'); return ':'; } -\}\%\% { this.popState(); this.popState(); return 'close_directive'; } -((?:(?!\}\%\%).|\n)*) return 'arg_directive'; - -/* language grammar */ - -/* ... */ - -directive - : openDirective typeDirective closeDirective separator - | openDirective typeDirective ':' argDirective closeDirective separator - ; - -openDirective - : open_directive { yy.parseDirective('%%{', 'open_directive'); } - ; - -typeDirective - : type_directive { yy.parseDirective($1, 'type_directive'); } - ; - -argDirective - : arg_directive { $1 = $1.trim().replace(/'/g, '"'); yy.parseDirective($1, 'arg_directive'); } - ; - -closeDirective - : close_directive { yy.parseDirective('}%%', 'close_directive', 'flowchart'); } - ; -``` - -It is probably a good idea to keep the handling similar to this in your new diagram. The parseDirective function is provided by the mermaidAPI. - -## Accessibility - -The syntax for adding title and description looks like this: - - accTitle: The title - accDescr: The description - - accDescr { - Syntax for a description text - written on multiple lines. - } - -In a similar way to the directives the jison syntax are quite similar between the diagrams. - -```jison - -* lexical grammar */ -%lex -%x acc_title -%x acc_descr -%x acc_descr_multiline - -%% -accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } -(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } -accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } -(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } -accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} -[\}] { this.popState(); } -[^\}]* return "acc_descr_multiline_value"; - -statement - : acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); } - | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } - | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } - -``` - -The functions for setting title and description are provided by a common module. This is the import from flowDb.js: - - import { - setAccTitle, - getAccTitle, - getAccDescription, - setAccDescription, - clear as commonClear, - } from '../../commonDb'; - -For rendering the accessibility tags you have again an existing function you can use. - -**In the renderer:** - -```js -import addSVGAccessibilityFields from '../../accessibility'; - -/* ... */ - -// Adds title and description to the flow chart -addSVGAccessibilityFields(parser.yy, svg, id); -``` - -## Theming - -Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](../config/theming.md). - -When adding themes to a diagram it comes down to a few important locations in the code. - -The entry point for the styling engine is in **src/styles.js**. The getStyles function will be called by Mermaid when the styles are being applied to the diagram. - -This function will in turn call a function _your diagram should provide_ returning the css for the new diagram. The diagram specific, also which is commonly also called getStyles and located in the folder for your diagram under src/diagrams and should be named styles.js. The getStyles function will be called with the theme options as an argument like in the following example: - -```js -const getStyles = (options) => - ` - .line { - stroke-width: 1; - stroke: ${options.lineColor}; - stroke-dasharray: 2; - } - // ... - `; -``` - -Note that you need to provide your function to the main getStyles by adding it into the themes object in **src/styles.js** like in the xyzDiagram in the provided example: - -```js -const themes = { - flowchart, - 'flowchart-v2': flowchart, - sequence, - xyzDiagram, - //... -}; -``` - -The actual options and values for the colors are defined in **src/theme/theme-\[xyz].js**. If you provide the options your diagram needs in the existing theme files then the theming will work smoothly without hiccups. diff --git a/docs/community/security.md b/docs/community/security.md deleted file mode 100644 index 07adbfbf8b..0000000000 --- a/docs/community/security.md +++ /dev/null @@ -1,29 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/security.md](../../packages/mermaid/src/docs/community/security.md). - -# Security - -The Mermaid team takes the security of Mermaid and the applications that use Mermaid seriously. This page describes how to report any vulnerabilities you may find, and lists best practices to minimize the risk of introducing a vulnerability. - -## Reporting vulnerabilities - -To report a vulnerability, please e-mail with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. - -We aim to reply within three working days, probably much sooner. - -You should expect a close collaboration as we work to resolve the issue you have reported. Please reach out to again if you do not receive prompt attention and regular updates. - -You may also reach out to the team via our public Slack chat channels; however, please make sure to e-mail when reporting an issue, and avoid revealing information about vulnerabilities in public as that could that could put users at risk. - -## Best practices - -Keep current with the latest Mermaid releases. We regularly update Mermaid, and these updates may fix security defects discovered in previous versions. Check the Mermaid release notes for security-related updates. - -Keep your application’s dependencies up to date. Make sure you upgrade your package dependencies to keep the dependencies up to date. Avoid pinning to specific versions for your dependencies and, if you do, make sure you check periodically to see if your dependencies have had security updates, and update the pin accordingly. - -## Configuring DomPurify - -By default Mermaid uses a baseline [DOMPurify](https://github.com/cure53/DOMPurify) config. It is possible to override the options passed to DOMPurify by adding a `dompurifyConfig` key to the Mermaid options. This could potentially break the output of Mermaid so use this with caution. diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md deleted file mode 100644 index abd1587129..0000000000 --- a/docs/config/8.6.0_docs.md +++ /dev/null @@ -1,222 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/8.6.0_docs.md](../../packages/mermaid/src/docs/config/8.6.0_docs.md). - -# Version 8.6.0 Changes - -## [New Mermaid Live-Editor Beta](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) - -## [CDN](https://unpkg.com/mermaid/) - -With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. - -`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](../config/configuration.md). -This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](directives.md), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams. - -**A likely application for this is in the creation of diagrams/charts inside company/organizational webpages, that rely on mermaid for diagram and chart rendering.** - -the `init` directive is the main method of configuration for Site and Current Levels. - -The three levels of are Configuration, Global, Site and Current. - -| Level of Configuration | Description | -| ---------------------- | ----------------------------------- | -| Global Configuration | Default Mermaid Configurations | -| Site Configuration | Configurations made by site owner | -| Current Configuration | Configurations made by Implementors | - -# Limits to Modifying Configurations - -**secure Array** - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------------------------------ | ----- | -------- | -------------- | -| secure | Array of parameters excluded from init directive | Array | Required | Any parameters | - -The modifiable parts of the Configuration are limited by the secure array, which is an array of immutable parameters, this array can be expanded by site owners. - -**Notes**: secure arrays work like nesting dolls, with the Global Configurations’ secure array holding the default and immutable list of immutable parameters, or the smallest doll, to which site owners may add to, but implementors may not modify it. - -# Secure Arrays - -Site owners can add to the **secure** array using this command: -mermaidAPI.initialize( { startOnLoad: true, secure: \['parameter1', 'parameter2'] } ); - -Default values for the `secure array` consists of: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']. These default values are immutable. - -Implementors can only modify configurations using directives, and cannot change the `secure` array. - -# Modifying Configurations and directives: - -The Two types of directives: are `init` (or `initialize`) and `wrap`. - -> **Note** -> All directives are enclosed in `%%{ }%%` - -Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. - -# Init - -`init`, or `initialize`: this directive gives the user the ability to overwrite and change the values for any configuration parameters not set in the secure array. - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | -| init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | - -> **Note** -> init would be an argument-directive: `%%{init: { **insert argument here**}}%%` -> -> The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. -> **for example**: -> -> `%%{init: {"theme": "default", "logLevel": 1 }}%%` -> -> Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. -> -> When deployed within code, init is called before the graph/diagram description. - -**for example**: - -```mermaid-example -%%{init: {"theme": "default", "logLevel": 1 }}%% - graph LR - a-->b - b-->c - c-->d - d-->e - e-->f - f-->g - g--> -``` - -```mermaid -%%{init: {"theme": "default", "logLevel": 1 }}%% - graph LR - a-->b - b-->c - c-->d - d-->e - e-->f - f-->g - g--> -``` - -# Wrap - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------- | --------- | -------- | ---------- | -| wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | - -> **Note** -> Wrap is a function that is currently only deployable for sequence diagrams. -> -> `Wrap respects a manually added
    , so if the user wants to break up their text, they have full control over line breaks by adding
    tags.` -> -> It is a non-argument directive and can be executed thusly: -> -> `%%{wrap}%%` . - -**An example of text wrapping in a sequence diagram**: - -!\[Image showing wrapped text]\(img/wrapped text.png) - -# Resetting Configurations: - -There are two more functions in the mermaidAPI that can be called by site owners: **reset** and **globalReset**. - -**reset**: resets the configuration to whatever the last configuration was. This can be done to undo more recent changes set from the last mermaidAPI.initialize({...}) configuration. - -**globalReset** will reset both the current configuration AND the site configuration back to the global defaults. - -**Notes**: Both `reset` and `globalReset` are only available to site owners, and as such implementors have to edit their configs using `init`. - -# Additional Utils to mermaid - -• **memoize**: simple caching for computationally expensive functions, reducing rendering time by about 90%. - -• **assignWithDepth** - an improvement on previous functions with config.js and `Object.assign`. The purpose of this function is to provide a sane mechanism for merging objects, similar to `object.assign`, but with depth. - -Example of **assignWithDepth**: - -![Image showing assignWithDepth](img/assignWithDepth.png) - -Example of **object.Assign**: - -!\[Image showing object.assign without depth]\(img/object.assign without depth.png) - -• **calculateTextDimensions**, **calculateTextWidth**, and **calculateTextHeight** - for measuring text dimensions, width and height. - -**Notes**: For more information on usage, parameters, and return info for these new functions take a look at the jsdocs for them in the utils package. - -# New API Requests Introduced in Version 8.6.0 - -## setSiteConfig - -| Function | Description | Type | Values | Parameters | Returns | -| --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | -| `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | - -> **Note** -> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset -> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig -> to the defaultConfig -> Note: currentConfig is set in this function。 -> Default value: will mirror Global Config - -## getSiteConfig - -| Function | Description | Type | Values | -| --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | -| `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | - -> **Note** -> Returns any values in siteConfig. - -## setConfig - -| Function | Description | Type | Values | Parameters | Returns | -| ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | -| `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | - -> **Note** -> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any -> values found in conf with key found in siteConfig.secure will be replaced with the corresponding -> siteConfig value. - -## getConfig - -| Function | Description | Type | Return Values | -| ----------- | --------------------------- | ----------- | ------------------------------- | -| `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | - -> **Note** -> Returns any values in currentConfig. - -## sanitize - -| Function | Description | Type | Values | -| ---------- | ---------------------------------------- | -------------- | ------ | -| `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | - -> **Note** -> modifies options in-place -> Ensures options parameter does not attempt to override siteConfig secure keys. - -## reset - -| Function | Description | Type | Required | Values | Parameter | -| -------- | ------------------------------ | ----------- | -------- | ------ | --------- | -| `reset` | Resets `currentConfig` to conf | Put Request | Required | None | conf | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | -| `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | - -> **Note** -> default: current siteConfig (optional, default `getSiteConfig()`) - -## For more information, read [Setup](./setup/README.md). diff --git a/docs/config/Tutorials.md b/docs/config/Tutorials.md deleted file mode 100644 index 41e0508cbe..0000000000 --- a/docs/config/Tutorials.md +++ /dev/null @@ -1,78 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/Tutorials.md](../../packages/mermaid/src/docs/config/Tutorials.md). - -# Tutorials - -This is list of publicly available Tutorials for using Mermaid.JS . This is intended as a basic introduction for the use of the Live Editor for generating diagrams, and deploying Mermaid.JS through HTML. - -**Note that these tutorials might display an older interface, but the usage of the live-editor will largely be the same.** - -For most purposes, you can use the [Live Editor](https://mermaid.live), to quickly and easily render a diagram. - -## Live-Editor Tutorials - -The definitions that can be generated the Live-Editor are also backwards-compatible as of version 8.7.0. - -[Chris Chinchilla: Hands on - Text-based diagrams with Mermaid](https://www.youtube.com/watch?v=4_LdV1cs2sA) - -[GitLab Unfiltered: How to Create Mermaid Diagrams](https://www.youtube.com/watch?v=SQ9QmuTHuSI&t=438s) - -[GitLab Unfiltered: Emilie adds a mermaid diagram to the handbook](https://www.youtube.com/watch?v=5RQqht3NNSE) - -[World of Zero: I Learn How To Build Flowcharts and Signal Diagram's in Mermaid.JS](https://www.youtube.com/watch?v=7_2IroEs6Is&t=207s) - -[Eddie Jaoude: Can you code your diagrams?](https://www.youtube.com/watch?v=9HZzKkAqrX8) - -## Mermaid with HTML - -Examples are provided in [Getting Started](../intro/n00b-gettingStarted.md) - -**CodePen Examples:** - -https://codepen.io/CarlBoneri/pen/BQwZzq - -https://codepen.io/tdkn/pen/vZxQzd - -https://codepen.io/janzeteachesit/pen/OWWZKN - -## Mermaid with Text Area - -https://codepen.io/Ryuno-Ki/pen/LNxwgR - -## Mermaid in open source docs - -[K8s.io Diagram Guide](https://kubernetes.io/docs/contribute/style/diagram-guide/) - -[K8s.dev blog: Improve your documentation with Mermaid.js diagrams](https://www.kubernetes.dev/blog/2021/12/01/improve-your-documentation-with-mermaid.js-diagrams/) - -## Jupyter Integration with mermaid-js - -Here's an example of Python integration with mermaid-js which uses the mermaid.ink service, that displays the graph in a Jupyter notebook. - -```python -import base64 -from IPython.display import Image, display -import matplotlib.pyplot as plt - -def mm(graph): - graphbytes = graph.encode("ascii") - base64_bytes = base64.b64encode(graphbytes) - base64_string = base64_bytes.decode("ascii") - display(Image(url="https://mermaid.ink/img/" + base64_string)) - -mm(""" -graph LR; - A--> B & C & D; - B--> A & E; - C--> A & E; - D--> A & E; - E--> B & C & D; -""") -``` - -**Output** - -![Example graph of the Python integration](img/python-mermaid-integration.png) diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md deleted file mode 100644 index 8fa4aa3ac8..0000000000 --- a/docs/config/accessibility.md +++ /dev/null @@ -1,360 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/accessibility.md](../../packages/mermaid/src/docs/config/accessibility.md). - -# Accessibility Options - -## Accessibility - -Now with Mermaid library in much wider use, we have started to work towards more accessible features, based on the feedback from the community. - -To begin with, we have added a new feature to Mermaid library, which is to support accessibility options, **Accessibility Title** and **Accessibility Description**. - -This support for accessibility options is available for all the diagrams/chart types. Also, we have tired to keep the same format for the accessibility options, so that it is easy to understand and maintain. - -## Defining Accessibility Options - -### Single line accessibility values - -The diagram authors can now add the accessibility options in the diagram definition, using the `accTitle` and `accDescr` keywords, where each keyword is followed by `:` and the string value for title and description like: - -- `accTitle: "Your Accessibility Title"` or -- `accDescr: "Your Accessibility Description"` - -**When these two options are defined, they will add a corresponding `` and `<desc>` tag in the SVG.** - -Let us take a look at the following example with a flowchart diagram: - -```mermaid-example - graph LR - accTitle: Big decisions - accDescr: Flow chart of the decision making process - A[Hard] -->|Text| B(Round) - B --> C{Decision} - C -->|One| D[Result 1] - -``` - -```mermaid - graph LR - accTitle: Big decisions - accDescr: Flow chart of the decision making process - A[Hard] -->|Text| B(Round) - B --> C{Decision} - C -->|One| D[Result 1] - -``` - -See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code: - -![Accessibility options rendered inside SVG](img/accessibility-div-example.png) - -### Multi-line Accessibility title/description - -You can also define the accessibility options in a multi-line format, where the keyword is followed by opening curly bracket `{` and then multiple lines, followed by a closing `}`. - -`accTitle: My single line title value` (**_single line format_**) - -vs - -`accDescr: { My multi-line description of the diagram }` (**_multi-line format_**) - -Let us look at it in the following example, with same flowchart: - -```mermaid-example - graph LR - accTitle: Big decisions - - accDescr { - My multi-line description - of the diagram - } - - A[Hard] -->|Text| B(Round) - B --> C{Decision} - C -->|One| D[Result 1] - -``` - -```mermaid - graph LR - accTitle: Big decisions - - accDescr { - My multi-line description - of the diagram - } - - A[Hard] -->|Text| B(Round) - B --> C{Decision} - C -->|One| D[Result 1] - -``` - -See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code: - -![Accessibility options rendered inside SVG](img/accessibility-div-example-2.png) - -### Sample Code Snippet for other diagram types - -#### Sequence Diagram - -```mermaid-example - sequenceDiagram - accTitle: My Sequence Diagram - accDescr: My Sequence Diagram Description - - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid - sequenceDiagram - accTitle: My Sequence Diagram - accDescr: My Sequence Diagram Description - - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -#### Class Diagram - -```mermaid-example - classDiagram - accTitle: My Class Diagram - accDescr: My Class Diagram Description - - Vehicle <|-- Car -``` - -```mermaid - classDiagram - accTitle: My Class Diagram - accDescr: My Class Diagram Description - - Vehicle <|-- Car -``` - -#### State Diagram - -```mermaid-example - stateDiagram - accTitle: My State Diagram - accDescr: My State Diagram Description - - s1 --> s2 - -``` - -```mermaid - stateDiagram - accTitle: My State Diagram - accDescr: My State Diagram Description - - s1 --> s2 - -``` - -#### Entity Relationship Diagram - -```mermaid-example - erDiagram - accTitle: My Entity Relationship Diagram - accDescr: My Entity Relationship Diagram Description - - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -```mermaid - erDiagram - accTitle: My Entity Relationship Diagram - accDescr: My Entity Relationship Diagram Description - - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -#### User Journey Diagram - -```mermaid-example - journey - accTitle: My User Journey Diagram - accDescr: My User Journey Diagram Description - - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me - -``` - -```mermaid - journey - accTitle: My User Journey Diagram - accDescr: My User Journey Diagram Description - - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me - -``` - -#### Gantt Chart - -```mermaid-example - gantt - accTitle: My Gantt Chart Accessibility Title - accDescr: My Gantt Chart Accessibility Description - - title A Gantt Diagram - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d - -``` - -```mermaid - gantt - accTitle: My Gantt Chart Accessibility Title - accDescr: My Gantt Chart Accessibility Description - - title A Gantt Diagram - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d - -``` - -#### Pie Chart - -```mermaid-example - pie - accTitle: My Pie Chart Accessibility Title - accDescr: My Pie Chart Accessibility Description - - title Key elements in Product X - "Calcium" : 42.96 - "Potassium" : 50.05 - "Magnesium" : 10.01 - "Iron" : 5 - -``` - -```mermaid - pie - accTitle: My Pie Chart Accessibility Title - accDescr: My Pie Chart Accessibility Description - - title Key elements in Product X - "Calcium" : 42.96 - "Potassium" : 50.05 - "Magnesium" : 10.01 - "Iron" : 5 - -``` - -#### Requirement Diagram - -```mermaid-example - requirementDiagram - accTitle: My Requirement Diagram - accDescr: My Requirement Diagram Description - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - element test_entity { - type: simulation - } - - test_entity - satisfies -> test_req - -``` - -```mermaid - requirementDiagram - accTitle: My Requirement Diagram - accDescr: My Requirement Diagram Description - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - element test_entity { - type: simulation - } - - test_entity - satisfies -> test_req - -``` - -#### Gitgraph - -```mermaid-example - gitGraph - accTitle: My Gitgraph Accessibility Title - accDescr: My Gitgraph Accessibility Description - - commit - commit - branch develop - checkout develop - commit - commit - checkout main - merge develop - commit - commit - -``` - -```mermaid - gitGraph - accTitle: My Gitgraph Accessibility Title - accDescr: My Gitgraph Accessibility Description - - commit - commit - branch develop - checkout develop - commit - commit - checkout main - merge develop - commit - commit - -``` diff --git a/docs/config/configuration.md b/docs/config/configuration.md deleted file mode 100644 index c7b780143d..0000000000 --- a/docs/config/configuration.md +++ /dev/null @@ -1,41 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/configuration.md](../../packages/mermaid/src/docs/config/configuration.md). - -# Configuration - -When mermaid starts, configuration is extracted to determine a configuration to be used for a diagram. There are 3 sources for configuration: - -- The default configuration -- Overrides at the site level are set by the initialize call, and will be applied to all diagrams in the site/app. The term for this is the **siteConfig**. -- Directives - diagram authors can update select configuration parameters directly in the diagram code via directives. These are applied to the render config. - -**The render config** is configuration that is used when rendering by applying these configurations. - -## Theme configuration - -## Starting mermaid - -```mermaid-example -sequenceDiagram - Site->>mermaid: initialize - Site->>mermaid: content loaded - mermaid->>mermaidAPI: init -``` - -```mermaid -sequenceDiagram - Site->>mermaid: initialize - Site->>mermaid: content loaded - mermaid->>mermaidAPI: init -``` - -## Initialize - -The initialize call is applied **only once**. It is called by the site integrator in order to override the default configuration at a site level. - -## configApi.reset - -This method resets the configuration for a diagram to the overall site configuration, which is the configuration provided by the site integrator. Before each rendering of a diagram, reset is called at the very beginning. diff --git a/docs/config/directives.md b/docs/config/directives.md deleted file mode 100644 index 5507070801..0000000000 --- a/docs/config/directives.md +++ /dev/null @@ -1,329 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/directives.md](../../packages/mermaid/src/docs/config/directives.md). - -# Directives - -## Directives - -Directives gives a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration. - -The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram specific configurations. So, directives are applied on top of the default configurations. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level. - -While directives allow you to change most of the default configuration settings, there are some that are not available, that too for security reasons. Also, you do have the _option to define the set of configurations_ that you would allow to be available to the diagram author for overriding with help of directives. - -## Types of Directives options - -Mermaid basically supports two types of configuration options to be overridden by directives. - -1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are: - -- theme -- fontFamily -- logLevel -- securityLevel -- startOnLoad -- secure - -2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves. - For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type. - -**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. - - Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs - -## Declaring directives - -Now that we have defined the types of configurations that are available, we can learn how to declare directives. -A directive always starts and end `%%` sign with directive text in between, like `%% {directive_text} %%`. - -Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section. - -Following code snippet shows the structure of a directive: - - %%{ - init: { - "theme": "dark", - "fontFamily": "monospace", - "logLevel": "info", - "flowchart": { - "htmlLabels": true, - "curve": "linear" - }, - "sequence": { - "mirrorActors": true - } - } - }%% - -You can also define the directives in a single line, like this: - - %%{init: { **insert argument here**}}%% - -For example, the following code snippet: - - %%{init: { "sequence": { "mirrorActors":false }}}%% - -**Notes:** -The json object that is passed as {**argument** } must be valid key value pairs and encased in quotation marks or it will be ignored. -Valid Key Value pairs can be found in config. - -Example with a simple graph: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% -graph LR -A-->B -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% -graph LR -A-->B -``` - -Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself. - -Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% -%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% -... -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% -%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% -... -``` - -parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: - -```json -{ - "logLevel": "fatal", - "theme": "dark", - "startOnLoad": true -} -``` - -This will then be sent to `mermaid.initialize(...)` for rendering. - -## Directive Examples - -More directive examples for diagram specific configuration overrides -Now that the concept of directives has been explained, Let us see some more examples for directives usage: - -### Changing Theme via directive - -The following code snippet changes theme to forest: - -`%%{init: { "theme": "forest" } }%%` - -Possible themes value are: `default`,`base`, `dark`, `forest` and `neutral`. -Default Value is `default`. - -Example: - -```mermaid-example -%%{init: { "theme": "forest" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -```mermaid -%%{init: { "theme": "forest" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -### Changing fontFamily via directive - -The following code snippet changes fontFamily to rebuchet MS, Verdana, Arial, Sans-Serif: - -`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%` - -Example: - -```mermaid-example -%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -```mermaid -%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end - -``` - -### Changing logLevel via directive - -The following code snippet changes logLevel to 2: - -`%%{init: { "logLevel": 2 } }%%` - -Possible logLevel values are: - -- `1` for _debug_, -- `2` for _info_ -- `3` for _warn_ -- `4` for _error_ -- `5` for _only fatal errors_ - -Default Value is `5`. - -Example: - -```mermaid-example -%%{init: { "logLevel": 2 } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -```mermaid -%%{init: { "logLevel": 2 } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing flowchart config via directive - -Some common flowchart configurations are: - -- _htmlLabels_: true/false -- _curve_: linear/curve -- _diagramPadding_: number -- _useMaxWidth_: number - -For complete list of flowchart configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. -_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ - -The following code snippet changes flowchart config: - -`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%` - -Here were are overriding only the flowchart config, and not the general config, where HtmlLabels is set to true and curve is set to linear. - -```mermaid-example -%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -```mermaid -%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% -graph TD -A(Forest) --> B[/Another/] -A --> C[End] - subgraph section - B - C - end -``` - -### Changing Sequence diagram config via directive - -Some common sequence configurations are: - -- _width_: number -- _height_: number -- _messageAlign_: left, center, right -- _mirrorActors_: boolean -- _useMaxWidth_: boolean -- _rightAngles_: boolean -- _showSequenceNumbers_: boolean -- _wrap_: boolean - -For complete list of sequence diagram configurations, see _defaultConfig.ts_ in the source code. -_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ - -So, `wrap` by default has a value of `false` for sequence diagrams. - -Let us see an example: - -```mermaid-example -sequenceDiagram - -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` - -```mermaid -sequenceDiagram - -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` - -Now let us enable wrap for sequence diagrams. - -The following code snippet changes sequence diagram config for `wrap` to `true`: - -`%%{init: { "sequence": { "wrap": true} } }%%` - -Using in the diagram above, the wrap will be enabled. - -```mermaid-example -%%{init: { "sequence": { "wrap": true, "width":300 } } }%% -sequenceDiagram -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` - -```mermaid -%%{init: { "sequence": { "wrap": true, "width":300 } } }%% -sequenceDiagram -Alice->Bob: Hello Bob, how are you? -Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? -Alice->Bob: Good. -Bob->Alice: Cool -``` diff --git a/docs/config/img/accessibility-div-example-2.png b/docs/config/img/accessibility-div-example-2.png deleted file mode 100644 index b257edbd03f5270e5ccd3bf52878b9e7030913ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122847 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 QBjBF^uP6_g>&y551BwyAjsO4v diff --git a/docs/config/img/accessibility-div-example.png b/docs/config/img/accessibility-div-example.png deleted file mode 100644 index 2b3478f0bd4ab650690d736c4e9dbe3cddf3d7ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122202 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 Km%KIf|Nj6|=%H5t diff --git a/docs/config/img/assignWithDepth.png b/docs/config/img/assignWithDepth.png deleted file mode 100644 index d00e8eb7c9aa5cc48b0c2d1b102e57977b7b4845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6595 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 diff --git a/docs/config/img/object.assign without depth.png b/docs/config/img/object.assign without depth.png deleted file mode 100644 index c87505c1c1f990915ddba0b61d378483e3736e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6067 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 H`p16(Z19u5 diff --git a/docs/config/img/python-mermaid-integration.png b/docs/config/img/python-mermaid-integration.png deleted file mode 100644 index d54a0e97d567ce61a36127cf05f278316d0a3d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39043 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 DW0KD` diff --git a/docs/config/img/wrapped text.png b/docs/config/img/wrapped text.png deleted file mode 100644 index cf8dd12386e32d52b3f282ef45838920d37a70cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105313 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 diff --git a/docs/config/mermaidCLI.md b/docs/config/mermaidCLI.md deleted file mode 100644 index 530ac93ab3..0000000000 --- a/docs/config/mermaidCLI.md +++ /dev/null @@ -1,9 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/mermaidCLI.md](../../packages/mermaid/src/docs/config/mermaidCLI.md). - -# mermaid CLI - -mermaid CLI has been moved to [mermaid-cli](https://github.com/mermaid-js/mermaid-cli). Please read its documentation instead. diff --git a/docs/config/n00b-advanced.md b/docs/config/n00b-advanced.md deleted file mode 100644 index 5dd9074297..0000000000 --- a/docs/config/n00b-advanced.md +++ /dev/null @@ -1,26 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/n00b-advanced.md](../../packages/mermaid/src/docs/config/n00b-advanced.md). - -# Advanced n00b mermaid (Coming soon..) - -## splitting mermaid code from html - -A more condensed html code can be achieved by embedding the mermaid code in its own .js file, which is referenced like so: - - stuff stuff - </div> - </body> - </html> - -The actual mermaid file could for example look like this: - - mermaid content... - ---- - -## mermaid configuration options - -... diff --git a/docs/config/setup/README.md b/docs/config/setup/README.md deleted file mode 100644 index 1cf82797de..0000000000 --- a/docs/config/setup/README.md +++ /dev/null @@ -1,13 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/README.md](../../../packages/mermaid/src/docs/config/setup/README.md). - -# mermaid - -## Modules - -- [config](modules/config.md) -- [defaultConfig](modules/defaultConfig.md) -- [mermaidAPI](modules/mermaidAPI.md) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md deleted file mode 100644 index 993a7627b2..0000000000 --- a/docs/config/setup/modules/config.md +++ /dev/null @@ -1,276 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/config.md](../../../../packages/mermaid/src/docs/config/setup/modules/config.md). - -# Module: config - -## Variables - -### defaultConfig - -• `Const` **defaultConfig**: `MermaidConfig` - -#### Defined in - -[config.ts:7](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L7) - -## Functions - -### addDirective - -▸ **addDirective**(`directive`): `void` - -Pushes in a directive to the configuration - -#### Parameters - -| Name | Type | Description | -| :---------- | :---- | :----------------------- | -| `directive` | `any` | The directive to push in | - -#### Returns - -`void` - -#### Defined in - -[config.ts:193](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L193) - ---- - -### getConfig - -▸ **getConfig**(): `MermaidConfig` - -## getConfig - -| Function | Description | Type | Return Values | -| --------- | ------------------------- | ----------- | ------------------------------ | -| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | - -**Notes**: Returns **any** the currentConfig - -#### Returns - -`MermaidConfig` - -The currentConfig - -#### Defined in - -[config.ts:138](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L138) - ---- - -### getSiteConfig - -▸ **getSiteConfig**(): `MermaidConfig` - -## getSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | -| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | - -**Notes**: Returns **any** values in siteConfig. - -#### Returns - -`MermaidConfig` - -The siteConfig - -#### Defined in - -[config.ts:97](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L97) - ---- - -### reset - -▸ **reset**(`config?`): `void` - -## reset - -| Function | Description | Type | Required | Values | -| -------- | ---------------------------- | ----------- | -------- | ------ | -| reset | Resets currentConfig to conf | Put Request | Required | None | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | -| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | - -**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) - -#### Parameters - -| Name | Type | Default value | Description | -| :------- | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `config` | `MermaidConfig` | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). | - -#### Returns - -`void` - -#### Defined in - -[config.ts:225](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L225) - ---- - -### sanitize - -▸ **sanitize**(`options`): `void` - -## sanitize - -| Function | Description | Type | Values | -| -------- | -------------------------------------- | ----------- | ------ | -| sanitize | Sets the siteConfig to desired values. | Put Request | None | - -Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies -options in-place - -#### Parameters - -| Name | Type | Description | -| :-------- | :---- | :-------------------------------- | -| `options` | `any` | The potential setConfig parameter | - -#### Returns - -`void` - -#### Defined in - -[config.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L153) - ---- - -### saveConfigFromInitialize - -▸ **saveConfigFromInitialize**(`conf`): `void` - -#### Parameters - -| Name | Type | -| :----- | :-------------- | -| `conf` | `MermaidConfig` | - -#### Returns - -`void` - -#### Defined in - -[config.ts:76](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L76) - ---- - -### setConfig - -▸ **setConfig**(`conf`): `MermaidConfig` - -## setConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure -keys. Any values found in conf with key found in siteConfig.secure will be replaced with the -corresponding siteConfig value. - -#### Parameters - -| Name | Type | Description | -| :----- | :-------------- | :-------------------------- | -| `conf` | `MermaidConfig` | The potential currentConfig | - -#### Returns - -`MermaidConfig` - -The currentConfig merged with the sanitized conf - -#### Defined in - -[config.ts:114](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L114) - ---- - -### setSiteConfig - -▸ **setSiteConfig**(`conf`): `MermaidConfig` - -## setSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls -to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) -will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this -function _Default value: At default, will mirror Global Config_ - -#### Parameters - -| Name | Type | Description | -| :----- | :-------------- | :------------------------------------------ | -| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig | - -#### Returns - -`MermaidConfig` - -The new siteConfig - -#### Defined in - -[config.ts:62](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L62) - ---- - -### updateCurrentConfig - -▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig` - -#### Parameters - -| Name | Type | -| :------------ | :-------------- | -| `siteCfg` | `MermaidConfig` | -| `_directives` | `any`\[] | - -#### Returns - -`MermaidConfig` - -#### Defined in - -[config.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L14) - ---- - -### updateSiteConfig - -▸ **updateSiteConfig**(`conf`): `MermaidConfig` - -#### Parameters - -| Name | Type | -| :----- | :-------------- | -| `conf` | `MermaidConfig` | - -#### Returns - -`MermaidConfig` - -#### Defined in - -[config.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L80) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md deleted file mode 100644 index c7ad1402f9..0000000000 --- a/docs/config/setup/modules/defaultConfig.md +++ /dev/null @@ -1,56 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md](../../../../packages/mermaid/src/docs/config/setup/modules/defaultConfig.md). - -# Module: defaultConfig - -## Variables - -### configKeys - -• `Const` **configKeys**: `string`\[] - -#### Defined in - -[defaultConfig.ts:1881](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1881) - ---- - -### default - -• `Const` **default**: `Partial`<`MermaidConfig`> - -**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click -here](8.6.0_docs.md)].** - -## **What follows are config instructions for older versions** - -These are the default options which can be overridden with the initialization call like so: - -**Example 1:** - -```js -mermaid.initialize({ flowchart: { htmlLabels: false } }); -``` - -**Example 2:** - -```html -<script> - const config = { - startOnLoad: true, - flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, - securityLevel: 'loose', - }; - mermaid.initialize(config); -</script> -``` - -A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). -A description of each option follows below. - -#### Defined in - -[defaultConfig.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md deleted file mode 100644 index 0acfe4f979..0000000000 --- a/docs/config/setup/modules/mermaidAPI.md +++ /dev/null @@ -1,308 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md](../../../../packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md). - -# Module: mermaidAPI - -## References - -### default - -Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) - -## Variables - -### mermaidAPI - -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> - -## mermaidAPI configuration defaults - -```ts -const config = { - theme: 'default', - logLevel: 'fatal', - securityLevel: 'strict', - startOnLoad: true, - arrowMarkerAbsolute: false, - - er: { - diagramPadding: 20, - layoutDirection: 'TB', - minEntityWidth: 100, - minEntityHeight: 75, - entityPadding: 15, - stroke: 'gray', - fill: 'honeydew', - fontSize: 12, - useMaxWidth: true, - }, - flowchart: { - diagramPadding: 8, - htmlLabels: true, - curve: 'basis', - }, - sequence: { - diagramMarginX: 50, - diagramMarginY: 10, - actorMargin: 50, - width: 150, - height: 65, - boxMargin: 10, - boxTextMargin: 5, - noteMargin: 10, - messageMargin: 35, - messageAlign: 'center', - mirrorActors: true, - bottomMarginAdj: 1, - useMaxWidth: true, - rightAngles: false, - showSequenceNumbers: false, - }, - gantt: { - titleTopMargin: 25, - barHeight: 20, - barGap: 4, - topPadding: 50, - leftPadding: 75, - gridLineStartPadding: 35, - fontSize: 11, - fontFamily: '"Open Sans", sans-serif', - numberSectionStyles: 4, - axisFormat: '%Y-%m-%d', - topAxis: false, - }, -}; -mermaid.initialize(config); -``` - -#### Defined in - -[mermaidAPI.ts:949](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L949) - -## Functions - -### appendDivSvgG - -▸ **appendDivSvgG**(`parentRoot`, `id`, `enclosingDivId`, `divStyle?`, `svgXlink?`): `any` - -Append an enclosing div, then svg, then g (group) to the d3 parentRoot. Set attributes. -Only set the style attribute on the enclosing div if divStyle is given. -Only set the xmlns:xlink attribute on svg if svgXlink is given. -Return the last node appended - -#### Parameters - -| Name | Type | Description | -| :--------------- | :------- | :----------------------------------------------- | -| `parentRoot` | `any` | the d3 node to append things to | -| `id` | `string` | the value to set the id attr to | -| `enclosingDivId` | `string` | the id to set the enclosing div to | -| `divStyle?` | `string` | if given, the style to set the enclosing div to | -| `svgXlink?` | `string` | if given, the link to set the new svg element to | - -#### Returns - -`any` - -- returns the parentRoot that had nodes appended - -#### Defined in - -[mermaidAPI.ts:292](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L292) - ---- - -### cleanUpSvgCode - -▸ **cleanUpSvgCode**(`svgCode?`, `inSandboxMode`, `useArrowMarkerUrls`): `string` - -Clean up svgCode. Do replacements needed - -#### Parameters - -| Name | Type | Default value | Description | -| :------------------- | :-------- | :------------ | :---------------------------------------------------------- | -| `svgCode` | `string` | `''` | the code to clean up | -| `inSandboxMode` | `boolean` | `undefined` | security level | -| `useArrowMarkerUrls` | `boolean` | `undefined` | should arrow marker's use full urls? (vs. just the anchors) | - -#### Returns - -`string` - -the cleaned up svgCode - -#### Defined in - -[mermaidAPI.ts:243](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L243) - ---- - -### createCssStyles - -▸ **createCssStyles**(`config`, `graphType`, `classDefs?`): `string` - -Create the user styles - -#### Parameters - -| Name | Type | Description | -| :---------- | :-------------- | :----------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | -| `config` | `MermaidConfig` | configuration that has style and theme settings to use | -| `graphType` | `string` | used for checking if classDefs should be applied | -| `classDefs` | `undefined` | `null` | `Record`<`string`, `DiagramStyleClassDef`> | the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) | - -#### Returns - -`string` - -the string with all the user styles - -#### Defined in - -[mermaidAPI.ts:170](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L170) - ---- - -### createUserStyles - -▸ **createUserStyles**(`config`, `graphType`, `classDefs`, `svgId`): `string` - -#### Parameters - -| Name | Type | -| :---------- | :----------------------------------------- | -| `config` | `MermaidConfig` | -| `graphType` | `string` | -| `classDefs` | `Record`<`string`, `DiagramStyleClassDef`> | -| `svgId` | `string` | - -#### Returns - -`string` - -#### Defined in - -[mermaidAPI.ts:220](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L220) - ---- - -### cssImportantStyles - -▸ **cssImportantStyles**(`cssClass`, `element`, `cssClasses?`): `string` - -Create a CSS style that starts with the given class name, then the element, -with an enclosing block that has each of the cssClasses followed by !important; - -#### Parameters - -| Name | Type | Default value | Description | -| :----------- | :---------- | :------------ | :--------------------------------------------- | -| `cssClass` | `string` | `undefined` | CSS class name | -| `element` | `string` | `undefined` | CSS element | -| `cssClasses` | `string`\[] | `[]` | list of CSS styles to append after the element | - -#### Returns - -`string` - -- the constructed string - -#### Defined in - -[mermaidAPI.ts:154](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L154) - ---- - -### decodeEntities - -▸ **decodeEntities**(`text`): `string` - -#### Parameters - -| Name | Type | Description | -| :----- | :------- | :----------------- | -| `text` | `string` | text to be decoded | - -#### Returns - -`string` - -#### Defined in - -[mermaidAPI.ts:128](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L128) - ---- - -### encodeEntities - -▸ **encodeEntities**(`text`): `string` - -#### Parameters - -| Name | Type | Description | -| :----- | :------- | :----------------- | -| `text` | `string` | text to be encoded | - -#### Returns - -`string` - -#### Defined in - -[mermaidAPI.ts:99](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L99) - ---- - -### putIntoIFrame - -▸ **putIntoIFrame**(`svgCode?`, `svgElement?`): `string` - -Put the svgCode into an iFrame. Return the iFrame code - -#### Parameters - -| Name | Type | Default value | Description | -| :------------ | :------- | :------------ | :--------------------------------------------------------------------------- | -| `svgCode` | `string` | `''` | the svg code to put inside the iFrame | -| `svgElement?` | `any` | `undefined` | the d3 node that has the current svgElement so we can get the height from it | - -#### Returns - -`string` - -- the code with the iFrame that now contains the svgCode - TODO replace btoa(). Replace with buf.toString('base64')? - -#### Defined in - -[mermaidAPI.ts:271](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L271) - ---- - -### removeExistingElements - -▸ **removeExistingElements**(`doc`, `isSandboxed`, `id`, `divSelector`, `iFrameSelector`): `void` - -Remove any existing elements from the given document - -#### Parameters - -| Name | Type | Description | -| :--------------- | :--------- | :---------------------------------------------- | -| `doc` | `Document` | the document to removed elements from | -| `isSandboxed` | `boolean` | whether or not we are in sandboxed mode | -| `id` | `string` | id for any existing SVG element | -| `divSelector` | `string` | selector for any existing enclosing div element | -| `iFrameSelector` | `string` | selector for any existing iFrame element | - -#### Returns - -`void` - -#### Defined in - -[mermaidAPI.ts:343](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L343) diff --git a/docs/config/theming.md b/docs/config/theming.md deleted file mode 100644 index cfd86caa0b..0000000000 --- a/docs/config/theming.md +++ /dev/null @@ -1,743 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md). - -# Theme Configuration - -With Version 8.7.0 Mermaid comes out with a system for dynamic and integrated configuration of themes. The intent is to increase the customizability and ease of styling for mermaid diagrams. - -The theme can be altered by changing the root level variable `theme` variable in the configuration. To change it for the whole site you must use the `initialize` call. To do it for just for a single diagram you can use the `%%init%%` directive - -Themes follow and build upon the Levels of Configuration, and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](./8.6.0_docs.md). - -## Deployable Themes - -The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls. - -1. **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes. - -2. **forest**- A theme full of light greens that is easy on the eyes. - -3. **dark**- A theme that would go well with other dark-colored elements. - -4. **default**- The default theme for all diagrams. - -5. **neutral**- The theme to be used for black and white printing. - -## Site-wide Themes - -Site-wide themes are declared via `initialize` by site owners. - -Example of `Initialize` call setting `theme` to `base`: - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', - theme: 'base', -}); -``` - -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. - -## Themes at the Local or Current Level - -When Generating a diagram using on a webpage that supports mermaid. It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. - -```mermaid-example -%%{init: {'theme':'base'}}%% - graph TD - a --> b -``` - -```mermaid -%%{init: {'theme':'base'}}%% - graph TD - a --> b -``` - -Here is an example of how `%%init%%` can set the theme to 'base', this assumes that `themeVariables` are set to default: - -```mermaid-example -%%{init: {'theme':'base'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'theme':'base'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -# List of Themes - -# Customizing Themes with `themeVariables` - -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. - -| Parameter | Description | Type | Required | Objects contained | -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | - -**Here is an example of overriding `primaryColor` through `themeVariables` and giving everything a different look, using `%%init%%`.** - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -**Notes:** -Leaving it empty will set all variable values to default. - -## Color and Color Calculation: - -Color definitions have certain interactions in mermaid, this is in order to ensure visibility for diagrams. Mermaid will adjust some variables automatically, when colors are changed in order to compensate and maintain readability. - -**The Default Value Column** to the right of the Variable column will denote the Variable paired/associated with the Variable on the left and the nature of this pairing or association. If it for instance says primaryColor it means that it gets primaryColor as default value. If it says "based on primaryColor" it means that it is calculated/ derived from primaryColor. This calculation can be primary color inversion, a change of hue, darkening or lightening by 10%, etc. - -You can create your own themes, by changing any of the given variables below. If you are using a dark background, set dark mode to true to adjust the colors. It is possible to override the calculations using the variable names below, with `%%init%%` if you wish to style it differently. - -## Theme Variables Reference Table - -> **Note** -> Variables that are unique to some diagrams can be affected by changes in Theme Variables - -| Variable | Default/Base/Factor value | Calc | Description | -| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | -| darkMode | false | | Boolean Value that dictates how to calculate colors. "true" will activate darkmode. | -| background | #f4f4f4 | | Used to calculate color for items that should either be background colored or contrasting to the background. | -| fontFamily | "trebuchet ms", verdana, arial | | | -| fontSize | 16px | | Font Size, in pixels | -| primaryColor | #fff4dd | | Color to be used as background in nodes, other colors will be derived from this | -| primaryBorderColor | based on primaryColor | \* | Color to be used as border in nodes using primaryColor | -| primaryTextColor | based on darkMode #ddd/#333 | \* | Color to be used as text color in nodes using primaryColor | -| secondaryColor | based on primaryColor | \* | | -| secondaryBorderColor | based on secondaryColor | \* | Color to be used as border in nodes using secondaryColor | -| secondaryTextColor | based on secondaryColor | \* | Color to be used as text color in nodes using secondaryColor | -| tertiaryColor | based on primaryColor | \* | | -| tertiaryBorderColor | based on tertiaryColor | \* | Color to be used as border in nodes using tertiaryColor | -| tertiaryTextColor | based on tertiaryColor | \* | Color to be used as text color in nodes using tertiaryColor | -| noteBkgColor | #fff5ad | | Color used as background in notes | -| noteTextColor | #333 | | Text color in note rectangles. | -| noteBorderColor | based on noteBkgColor | \* | Border color in note rectangles. | -| lineColor | based on background | \* | | -| textColor | based on primaryTextColor | \* | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in gantt diagram | -| mainBkg | based on primaryColor | \* | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc | -| errorBkgColor | tertiaryColor | \* | Color for syntax error message | -| errorTextColor | tertiaryTextColor | \* | Color for syntax error message | - -# What follows are Variables, specific to different diagrams and charts. - -## Some Theme Variables serve as, or affect the Default Values for Specific Diagram Variables, unless changed using `%%init%%` . - -## Flowchart - -| Variable | Default/ Associated Value | Calc | Description | -| ------------------- | ------------------------- | ---- | ---------------------------- | -| nodeBorder | primaryBorderColor | \* | Node Border Color | -| clusterBkg | tertiaryColor | \* | Background in subgraphs | -| clusterBorder | tertiaryBorderColor | \* | Cluster Border Color | -| defaultLinkColor | lineColor | \* | Link Color | -| titleColor | tertiaryTextColor | \* | Title Color | -| edgeLabelBackground | based on secondaryColor | \* | | -| nodeTextColor | primaryTextColor | \* | Color for text inside Nodes. | - -# sequence diagram - -| name | Default value | Calc | Description | -| --------------------- | ----------------------- | ---- | --------------------------- | -| actorBorder | primaryBorderColor | \* | Actor Border Color | -| actorBkg | mainBkg | \* | Actor Background Color | -| actorTextColor | primaryTextColor | \* | Actor Text Color | -| actorLineColor | grey | \* | Actor Line Color | -| signalColor | textColor | \* | Signal Color | -| signalTextColor | textColor | \* | Signal Text Color | -| labelBoxBkgColor | actorBkg | \* | Label Box Background Color | -| labelBoxBorderColor | actorBorder | \* | Label Box Border Color | -| labelTextColor | actorTextColor | \* | Label Text Color | -| loopTextColor | actorTextColor | \* | Loop ext Color | -| activationBorderColor | based on secondaryColor | \* | Activation Border Color | -| activationBkgColor | secondaryColor | \* | Activation Background Color | -| sequenceNumberColor | based on lineColor | \* | Sequence Number Color | - -# state colors - -| name | Default value | Calc | Description | -| ------------- | ---------------- | ---- | -------------------------------------------- | -| labelColor | primaryTextColor | \* | | -| altBackground | tertiaryColor | \* | Used for background in deep composite states | - -# class colors - -| name | Default value | Calc | Description | -| --------- | ------------- | ---- | ------------------------------- | -| classText | textColor | \* | Color of Text in class diagrams | - -# User journey colors - -| name | Default value | Calc | Description | -| --------- | ----------------------- | ---- | --------------------------------------- | -| fillType0 | primaryColor | \* | Fill for 1st section in journey diagram | -| fillType1 | secondaryColor | \* | Fill for 2nd section in journey diagram | -| fillType2 | based on primaryColor | \* | Fill for 3rd section in journey diagram | -| fillType3 | based on secondaryColor | \* | Fill for 4th section in journey diagram | -| fillType4 | based on primaryColor | \* | Fill for 5th section in journey diagram | -| fillType5 | based on secondaryColor | \* | Fill for 6th section in journey diagram | -| fillType6 | based on primaryColor | \* | Fill for 7th section in journey diagram | -| fillType7 | based on secondaryColor | \* | Fill for 8th section in journey diagram | - -\*\*Notes: Values are meant to create an alternating look. - -# Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -\*\*This got a bit too dark and bit too colorful. With some easy steps this can be fixed: - -- Make the primary color a little lighter -- set the tertiary color to a reddish shade as well -- make the edge label background differ from the subgraph by setting the edgeLabelBackground - -```mermaid-example -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -The Theming Engine does not admit color codes and will only accept proper color values. Color Names is not supported so for instance, the color value 'red' will not work, but '#ff0000' will work. - -# Common theming activities - -## How to change the color of the arrows - -# Examples: - -When adjusting a theme it might be helpful to look at how your preferred theme goes with the diagrams, to evaluate whether everything is visible and looks good. -In the following examples, the directive `init` is used, with the `theme` being declared as `base`. For more information on using directives, read the documentation for [Version 8.6.0](/8.6.0_docs.md) - -### Flowchart - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[/Another/] - C ==>|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -### Flowchart (beta) - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - flowchart TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[Another] - C ==>|One| D[Laptop] - C x--x|Two| E[iPhone] - C o--o|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - flowchart TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - B --> G[Another] - C ==>|One| D[Laptop] - C x--x|Two| E[iPhone] - C o--o|Three| F[fa:fa-car Car] - subgraph section - C - D - E - F - G - end -``` - -### Sequence diagram - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - sequenceDiagram - autonumber - par Action 1 - Alice->>John: Hello John, how are you? - and Action 2 - Alice->>Bob: Hello Bob, how are you? - end - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - Note right of John: John is perceptive - John-->>-Alice: I feel great! - loop Every minute - John-->Alice: Great! - end -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - sequenceDiagram - autonumber - par Action 1 - Alice->>John: Hello John, how are you? - and Action 2 - Alice->>Bob: Hello Bob, how are you? - end - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - Note right of John: John is perceptive - John-->>-Alice: I feel great! - loop Every minute - John-->Alice: Great! - end -``` - -### Class diagram - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - -classDiagram - Animal "1" <|-- Duck - Animal <|-- Fish - Animal <--o Zebra - Animal : +int age - Animal : +String gender - Animal: +isMammal() - Animal: +mate() - class Duck{ - +String beakColor - +swim() - +quack() - } - class Fish{ - -int sizeInFeet - -canEat() - } - class Zebra{ - +bool is_wild - +run() - } -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - -classDiagram - Animal "1" <|-- Duck - Animal <|-- Fish - Animal <--o Zebra - Animal : +int age - Animal : +String gender - Animal: +isMammal() - Animal: +mate() - class Duck{ - +String beakColor - +swim() - +quack() - } - class Fish{ - -int sizeInFeet - -canEat() - } - class Zebra{ - +bool is_wild - +run() - } -``` - -### Gantt - -```mermaid-example -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram functionality to mermaid - excludes :excludes the named dates/days from being included in a charted task.. - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d - - section Critical tasks - Completed task in the critical line :crit, done, 2014-01-06,24h - Implement parser and jison :crit, done, after des1, 2d - Create tests for parser :crit, active, 3d - Future task in critical line :crit, 5d - Create tests for renderer :2d - Add to mermaid :1d - - section Documentation - Describe gantt syntax :active, a1, after des1, 3d - Add gantt diagram to demo page :after a1 , 20h - Add another diagram to demo page :doc1, after a1 , 48h - - section Last section - Describe gantt syntax :after doc1, 3d - Add gantt diagram to demo page :20h - Add another diagram to demo page :48h -``` - -```mermaid -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram functionality to mermaid - excludes :excludes the named dates/days from being included in a charted task.. - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d - - section Critical tasks - Completed task in the critical line :crit, done, 2014-01-06,24h - Implement parser and jison :crit, done, after des1, 2d - Create tests for parser :crit, active, 3d - Future task in critical line :crit, 5d - Create tests for renderer :2d - Add to mermaid :1d - - section Documentation - Describe gantt syntax :active, a1, after des1, 3d - Add gantt diagram to demo page :after a1 , 20h - Add another diagram to demo page :doc1, after a1 , 48h - - section Last section - Describe gantt syntax :after doc1, 3d - Add gantt diagram to demo page :20h - Add another diagram to demo page :48h -``` - -### State diagram - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - stateDiagram - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvCapsLockPressed - ScrollLockOn --> ScrollLockOff : EvCapsLockPressed - } - state SomethingElse { - A --> B - B --> A - } - - Active --> SomethingElse - note right of SomethingElse : This is the note to the right. - - SomethingElse --> [*] - -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% - stateDiagram - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvCapsLockPressed - ScrollLockOn --> ScrollLockOff : EvCapsLockPressed - } - state SomethingElse { - A --> B - B --> A - } - - Active --> SomethingElse - note right of SomethingElse : This is the note to the right. - - SomethingElse --> [*] - -``` - -### State diagram (beta) - -```mermaid-example -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% -stateDiagram-v2 - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvCapsLockPressed - ScrollLockOn --> ScrollLockOff : EvCapsLockPressed - } - state SomethingElse { - A --> B - B --> A - } - - Active --> SomethingElse2 - note right of SomethingElse2 : This is the note to the right. - - SomethingElse2 --> [*] -``` - -```mermaid -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% -stateDiagram-v2 - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvCapsLockPressed - ScrollLockOn --> ScrollLockOff : EvCapsLockPressed - } - state SomethingElse { - A --> B - B --> A - } - - Active --> SomethingElse2 - note right of SomethingElse2 : This is the note to the right. - - SomethingElse2 --> [*] -``` - -### Entity Relations diagram - -```mermaid-example - erDiagram - CUSTOMER }|..|{ DELIVERY-ADDRESS : has - CUSTOMER ||--o{ ORDER : places - CUSTOMER ||--o{ INVOICE : "liable for" - DELIVERY-ADDRESS ||--o{ ORDER : receives - INVOICE ||--|{ ORDER : covers - ORDER ||--|{ ORDER-ITEM : includes - PRODUCT-CATEGORY ||--|{ PRODUCT : contains - PRODUCT ||--o{ ORDER-ITEM : "ordered in" -``` - -```mermaid - erDiagram - CUSTOMER }|..|{ DELIVERY-ADDRESS : has - CUSTOMER ||--o{ ORDER : places - CUSTOMER ||--o{ INVOICE : "liable for" - DELIVERY-ADDRESS ||--o{ ORDER : receives - INVOICE ||--|{ ORDER : covers - ORDER ||--|{ ORDER-ITEM : includes - PRODUCT-CATEGORY ||--|{ PRODUCT : contains - PRODUCT ||--o{ ORDER-ITEM : "ordered in" -``` - -### User journey diagram - -```mermaid-example -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -```mermaid -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` diff --git a/docs/config/usage.md b/docs/config/usage.md deleted file mode 100644 index a0fb371cd2..0000000000 --- a/docs/config/usage.md +++ /dev/null @@ -1,391 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/usage.md](../../packages/mermaid/src/docs/config/usage.md). - -# Usage - -Mermaid is a JavaScript tool that makes use of a Markdown based syntax to render customizable diagrams, charts and visualizations. - -Diagrams can be re-rendered/modified by modifying their descriptions. - -### CDN - -<https://unpkg.com/mermaid/> - -Please note that you can switch versions through the dropdown box at the top right. - -## Using mermaid - -For the majority of users, Using the [Live Editor](https://mermaid.live/) would be sufficient, however you may also opt to deploy mermaid as a dependency or using the [Mermaid API](./setup/README.md). - -We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermaid Live Editor. - -**Installing and Hosting Mermaid on a Webpage** - -**Using the npm package** - - 1. You will need to install node v16, which would have npm. - - 2. download yarn using npm. - - 3. enter the following command: - yarn add mermaid - - 4. At this point, you can add mermaid as a dev dependency using this command: - yarn add --dev mermaid - - 5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions. - as is shown in the example below - -**Hosting mermaid on a web page.** - -> Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted.md) - -The easiest way to integrate mermaid on a web page requires two elements: - -- A graph definition, inside `<pre>` tags labeled `class=mermaid`. Example: - -```html -<pre class="mermaid"> - graph LR - A --- B - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); -</pre> -``` - -- Inclusion of the mermaid address in the html page body using a `script` tag as an ESM import, and the `mermaidAPI` call. - -Example: - -```html -<script type="module"> - import mermaid from 'https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs'; - mermaid.initialize({ startOnLoad: true }); -</script> -``` - -**Following these directions, mermaid starts at page load and (when the page has loaded) it will locate the graph definitions inside the `pre` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** - -## Simple full example: - -```html -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - </head> - <body> - <pre class="mermaid"> - graph LR - A --- B - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner); - </pre> - <script type="module"> - import mermaid from 'https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs'; - mermaid.initialize({ startOnLoad: true }); - </script> - </body> -</html> -``` - -## Notes: - -An id attribute is also added to mermaid tags without one. - -Mermaid can load multiple diagrams, in the same page. - -> Try it out, save this code as HTML and load it using any browser.(Except Internet Explorer, please don't use Internet Explorer.) - -## Enabling Click Event and Tags in Nodes - -A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. This was introduce in version 8.2 as a security improvement, aimed at preventing malicious use. - -**It is the site owner's responsibility to discriminate between trustworthy and untrustworthy user-bases and we encourage the use of discretion.** - -## securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | String | Required | 'sandbox', 'strict', 'loose', 'antiscript' | - -Values: - -- **strict**: (**default**) tags in text are encoded, click functionality is disabled -- **loose**: tags in text are allowed, click functionality is enabled -- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled -- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. - -> **Note** -> This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. -> **sandbox** security level is still in the beta version. - -**If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** - -**To change `securityLevel`, you have to call `mermaidAPI.initialize`:** - -```javascript -mermaidAPI.initialize({ - securityLevel: 'loose', -}); -``` - -### Labels out of bounds - -If you use dynamically loaded fonts that are loaded through CSS, such as Google fonts, mermaid should wait for the -whole page to load (dom + assets, particularly the fonts file). - -```javascript -$(document).load(function () { - mermaid.initialize(); -}); -``` - -or - -```javascript -$(document).ready(function () { - mermaid.initialize(); -}); -``` - -Not doing so will most likely result in mermaid rendering graphs that have labels out of bounds. The default integration in mermaid uses the window.load event to start rendering. - -If your page has other fonts in its body those might be used instead of the mermaid font. Specifying the font in your styling is a workaround for this. - -```css -div.mermaid { - font-family: 'trebuchet ms', verdana, arial; -} -``` - -### Calling `mermaid.init` - -By default, `mermaid.init` will be called when the document is ready, finding all elements with -`class="mermaid"`. If you are adding content after mermaid is loaded, or otherwise need -finer-grained control of this behavior, you can call `init` yourself with: - -- a configuration object -- some nodes, as - - a node - - an array-like of nodes - - or W3C selector that will find your nodes - -Example: - -```javascript -mermaid.init({ noteMargin: 10 }, '.someOtherClass'); -``` - -Or with no config object, and a jQuery selection: - -```javascript -mermaid.init(undefined, $('#someId .yetAnotherClass')); -``` - -> **Warning** -> This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. - -## Usage with webpack - -mermaid fully supports webpack. Here is a [working demo](https://github.com/mermaidjs/mermaid-webpack-demo). - -## API usage - -The main idea of the API is to be able to call a render function with the graph definition as a string. The render function -will render the graph and call a callback with the resulting SVG code. With this approach it is up to the site creator to -fetch the graph definition from the site (perhaps from a textarea), render it and place the graph somewhere in the site. - -The example below show an outline of how this could be used. The example just logs the resulting SVG to the JavaScript console. - -```html -<script type="module"> - import mermaid from './mermaid.mjs'; - mermaid.mermaidAPI.initialize({ startOnLoad: false }); - $(async function () { - // Example of using the API var - element = document.querySelector('#graphDiv'); - const insertSvg = function (svgCode, bindFunctions) { - element.innerHTML = svgCode; - }; - const graphDefinition = 'graph TB\na-->b'; - const graph = await mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); - }); -</script> -``` - -### Binding events - -Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must -add those events after the graph has been inserted into the DOM. - -The example code below is an extract of what mermaid does when using the API. The example shows how it is possible to -bind events to an SVG when using the API for rendering. - -```javascript -const insertSvg = function (svgCode, bindFunctions) { - element.innerHTML = svgCode; - if (typeof callback !== 'undefined') { - callback(id); - } - bindFunctions(element); -}; - -const id = 'theGraph'; - -mermaidAPI.render(id, txt, insertSvg, element); -``` - -1. The graph is generated using the render call. -2. After generation the render function calls the provided callback function, in this case it's called insertSvg. -3. The callback function is called with two parameters, the SVG code of the generated graph and a function. This function binds events to the SVG **after** it is inserted into the DOM. -4. Insert the SVG code into the DOM for presentation. -5. Call the binding function that binds the events. - -## Example of a marked renderer - -This is the renderer used for transforming the documentation from Markdown to html with mermaid diagrams in the html. - -```javascript -const renderer = new marked.Renderer(); -renderer.code = function (code, language) { - if (code.match(/^sequenceDiagram/) || code.match(/^graph/)) { - return '<pre class="mermaid">' + code + '</pre>'; - } else { - return '<pre><code>' + code + '</code></pre>'; - } -}; -``` - -Another example in CoffeeScript that also includes the mermaid script tag in the generated markup. - -```coffee -marked = require 'marked' - -module.exports = (options) -> - hasMermaid = false - renderer = new marked.Renderer() - renderer.defaultCode = renderer.code - renderer.code = (code, language) -> - if language is 'mermaid' - html = '' - if not hasMermaid - hasMermaid = true - html += '<script src="'+options.mermaidPath+'"></script>' - html + '<pre class="mermaid">'+code+'</pre>' - else - @defaultCode(code, language) - - renderer -``` - -## Advanced usage - -**Syntax validation without rendering (Work in Progress)** - -The **mermaid.parse(txt)** function validates graph definitions without rendering a graph. **[This function is still a work in progress](https://github.com/mermaid-js/mermaid/issues/1066), find alternatives below.** - -The function **mermaid.parse(txt)**, takes a text string as an argument and returns true if the definition follows mermaid's syntax and -false if it does not. The parseError function will be called when the parse function returns false. - -When the parser encounters invalid syntax the **mermaid.parseError** function is called. It is possible to override this -function in order to handle the error in an application-specific way. - -The code-example below in meta code illustrates how this could work: - -```javascript -mermaid.parseError = function (err, hash) { - displayErrorInGui(err); -}; - -const textFieldUpdated = function () { - const textStr = getTextFromFormField('code'); - - if (mermaid.parse(textStr)) { - reRender(textStr); - } -}; - -bindEventHandler('change', 'code', textFieldUpdated); -``` - -**Alternative to mermaid.parse():** -One effective and more future-proof method of validating your graph definitions, is to paste and render them via the [Mermaid Live Editor](https://mermaid.live/). This will ensure that your code is compliant with the syntax of Mermaid's most recent version. - -## Configuration - -Mermaid takes a number of options which lets you tweak the rendering of the diagrams. Currently there are three ways of -setting the options in mermaid. - -1. Instantiation of the configuration using the initialize call -2. _Using the global mermaid object_ - **Deprecated** -3. _using the global mermaid_config object_ - **Deprecated** -4. Instantiation of the configuration using the **mermaid.init** call- **Deprecated** - -The list above has two ways too many of doing this. Three are deprecated and will eventually be removed. The list of -configuration objects are described [in the mermaidAPI documentation](./setup/README.md). - -## Using the `mermaidAPI.initialize`/`mermaid.initialize` call - -The future proof way of setting the configuration is by using the initialization call to mermaid or mermaidAPI depending -on what kind of integration you use. - -```html -<script src="../dist/mermaid.js"></script> -<script> - let config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; - mermaid.initialize(config); -</script> -``` - -> **Note** -> This is the preferred way of configuring mermaid. - -### The following methods are deprecated and are kept only for backwards compatibility. - -## Using the mermaid object - -Is it possible to set some configuration via the mermaid object. The two parameters that are supported using this -approach are: - -- mermaid.startOnLoad -- mermaid.htmlLabels - -```javascript -mermaid.startOnLoad = true; -``` - -> **Warning** -> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. - -## Using the mermaid_config - -It is possible to set some configuration via the mermaid object. The two parameters that are supported using this -approach are: - -- mermaid_config.startOnLoad -- mermaid_config.htmlLabels - -```javascript -mermaid_config.startOnLoad = true; -``` - -> **Warning** -> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. - -## Using the mermaid.init call - -To set some configuration via the mermaid object. The two parameters that are supported using this approach are: - -- mermaid_config.startOnLoad -- mermaid_config.htmlLabels - -```javascript -mermaid_config.startOnLoad = true; -``` - -> **Warning** -> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. diff --git a/docs/img/er.png b/docs/img/er.png deleted file mode 100644 index 21c44c257a3e0ee3e782dd5b6696602f6d9f5172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56576 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�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 G_~T!k%VIVF diff --git a/docs/index.html.todo b/docs/index.html.todo deleted file mode 100644 index 8728338f90..0000000000 --- a/docs/index.html.todo +++ /dev/null @@ -1,179 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <title> - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, - gantt charts and git graphs. - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - diff --git a/docs/intro/img/Code-Preview-Config.png b/docs/intro/img/Code-Preview-Config.png deleted file mode 100644 index 426e6bf63304aba149b046e6e7c78f58dcbaf1ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148873 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
    nY% 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≦O_^+~1=%YCo=H`jgY~#| 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

      KB*h9!e*iWSe7ty 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

      W1Ig~ z?qeWLoAmx|3w?9^G-fG~n!jmT3`o?c;f!(K22S{#&$#)`XQkE*2+1D!#0b4P_W{7% z7_^dArkcY6@dzU{;<1;deV$M1f>`T(j`~O2*l@fn3(jXEt$f5HyUTUYGUGL2ab8sB zJBU!uz^p1iefl;(pNHb|Whn~jOyI3ynUAB?7Vj&L@XOb_dAexj028z@R6*&vH!yO{ z^7j)22#%bA&zx2>=KWtkB`hd}rrNJ~Hx&p~$jrYXx|P(`PXRk_IaHnq@95!kD~D5= z!e(t!PN&qG2sXlfFg1*jkN3YS8L&CrcbUZFrNGE%*c@R3L|W0kZ&B6(QI}29np!

      =y=yYzYG7cCpc!G8_w~(LwT&0#Zel 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

      lEX$px{cOh$5Q+B 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 C;wEkY diff --git a/docs/intro/img/book-banner-post-release.jpg b/docs/intro/img/book-banner-post-release.jpg deleted file mode 100644 index 9ce3cc6fc7fc025b55f357403f572a6860d17625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75158 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%0A0K`3D|4*_4WyPt)PO+ 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 **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/index.md](../../packages/mermaid/src/docs/intro/index.md). - -# About Mermaid - -**Mermaid lets you create diagrams and visualizations using text and code.** - -It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. - -> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](n00b-syntaxReference.md). - - - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) - - - -[![Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!](img/book-banner-post-release.jpg)](https://mermaid-js.github.io/mermaid/landing/) - - - -Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. - -> Doc-Rot is a Catch-22 that Mermaid helps to solve. - -Diagramming and documentation costs precious developer time and gets outdated quickly. -But not having diagrams or docs ruins productivity and hurts organizational learning.
      -Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).

      -Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
      -[Tutorials](../config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). - -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). - -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) - -> 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). - -:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!!** - -**Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project 🙏** - -In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. - -
      - - - -## Diagram Types - -### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) - -```mermaid-example -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -``` - -```mermaid -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -``` - -### [Sequence diagram](../syntax/sequenceDiagram.md) - -```mermaid-example -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
      prevail! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
      prevail! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -### [Gantt diagram](../syntax/gantt.md) - -```mermaid-example -gantt -dateFormat YYYY-MM-DD -title Adding GANTT diagram to mermaid -excludes weekdays 2014-01-10 - -section A section -Completed task :done, des1, 2014-01-06,2014-01-08 -Active task :active, des2, 2014-01-09, 3d -Future task : des3, after des2, 5d -Future task2 : des4, after des3, 5d -``` - -```mermaid -gantt -dateFormat YYYY-MM-DD -title Adding GANTT diagram to mermaid -excludes weekdays 2014-01-10 - -section A section -Completed task :done, des1, 2014-01-06,2014-01-08 -Active task :active, des2, 2014-01-09, 3d -Future task : des3, after des2, 5d -Future task2 : des4, after des3, 5d -``` - -### [Class diagram](../syntax/classDiagram.md) - -```mermaid-example -classDiagram -Class01 <|-- AveryLongClass : Cool -Class03 *-- Class04 -Class05 o-- Class06 -Class07 .. Class08 -Class09 --> C2 : Where am i? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -Class08 <--> C2: Cool label -``` - -```mermaid -classDiagram -Class01 <|-- AveryLongClass : Cool -Class03 *-- Class04 -Class05 o-- Class06 -Class07 .. Class08 -Class09 --> C2 : Where am i? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -Class08 <--> C2: Cool label -``` - -### [Git graph](../syntax/gitgraph.md) - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -```mermaid - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) - -```mermaid-example -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -```mermaid -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -### [User Journey Diagram](../syntax/userJourney.md) - -```mermaid-example -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -```mermaid -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -## Installation - -**In depth guides and examples can be found at [Getting Started](./n00b-gettingStarted.md) and [Usage](../config/usage.md).** - -**It would also be helpful to learn more about mermaid's [Syntax](./n00b-syntaxReference.md).** - -### CDN - - https://unpkg.com/mermaid@/dist/ - -To select a version: - -Replace `` with the desired version number. - -Latest Version: - -## Deploying Mermaid - -To Deploy Mermaid: - -1. You will need to install node v16, which would have npm -2. Install mermaid - - NPM: `npm i mermaid` - - Yarn: `yarn add mermaid` - - Pnpm: `pnpm add mermaid` - -### [Mermaid API](../config/setup/README.md): - -**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** - -```html - -``` - -**Doing so will command the mermaid parser to look for the `

      ` or `
      ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
      -
      -**Examples can be found at** [Other examples](../syntax/examples.md)
      -
      -## Sibling projects
      -
      -- [Mermaid Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
      -- [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli)
      -- [Mermaid Webpack Demo](https://github.com/mermaidjs/mermaid-webpack-demo)
      -- [Mermaid Parcel Demo](https://github.com/mermaidjs/mermaid-parcel-demo)
      -
      -## Request for Assistance
      -
      -Things are piling up and I have a hard time keeping up. It would be great if we could form a core team of developers to cooperate
      -with the future development of mermaid.
      -
      -As part of this team you would get write access to the repository and would
      -represent the project when answering questions and issues.
      -
      -Together we could continue the work with things like:
      -
      -- Adding more types of diagrams like mindmaps, ert diagrams, etc.
      -- Improving existing diagrams
      -
      -Don't hesitate to contact me if you want to get involved!
      -
      -## For contributors
      -
      -### Requirements
      -
      -- [volta](https://volta.sh/) to manage node versions.
      -- [Node.js](https://nodejs.org/en/). `volta install node`
      -- [pnpm](https://pnpm.io/) package manager. `volta install pnpm`
      -
      -## Development Installation
      -
      -```bash
      -git clone git@github.com:mermaid-js/mermaid.git
      -cd mermaid
      -# npx is required for first install as volta support for pnpm is not added yet.
      -npx pnpm install
      -pnpm test
      -```
      -
      -### Lint
      -
      -```sh
      -pnpm lint
      -```
      -
      -We use [eslint](https://eslint.org/).
      -We recommend you to install [editor plugins](https://eslint.org/docs/user-guide/integrations) to get real time lint result.
      -
      -### Test
      -
      -```sh
      -pnpm test
      -```
      -
      -Manual test in browser: open `dist/index.html`
      -
      -### Release
      -
      -For those who have the permission to do so:
      -
      -Update version number in `package.json`.
      -
      -```sh
      -npm publish
      -```
      -
      -The above command generates files into the `dist` folder and publishes them to \.
      -
      -## Related projects
      -
      -- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli)
      -- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
      -- [HTTP Server](https://github.com/TomWright/mermaid-server)
      -
      -## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)
      -
      -Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.
      -
      -Detailed information about how to contribute can be found in the [contribution guide](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md)
      -
      -## Security and safe diagrams
      -
      -For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitize the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.
      -
      -As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security.
      -
      -_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
      -
      -## Reporting vulnerabilities
      -
      -To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
      -
      -## Appreciation
      -
      -A quick note from Knut Sveidqvist:
      -
      -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_
      ->
      -> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._
      ->
      -> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._
      ->
      -> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_
      -
      ----
      -
      -_Mermaid was created by Knut Sveidqvist for easier documentation._
      -
      -
      diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md
      deleted file mode 100644
      index 498aa15955..0000000000
      --- a/docs/intro/n00b-gettingStarted.md
      +++ /dev/null
      @@ -1,224 +0,0 @@
      -> **Warning**
      ->
      -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
      ->
      -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/n00b-gettingStarted.md](../../packages/mermaid/src/docs/intro/n00b-gettingStarted.md).
      -
      -# A Mermaid User-Guide for Beginners
      -
      -Mermaid is composed of three parts: Deployment, Syntax and Configuration.
      -
      -This section talks about the different ways to deploy Mermaid. Learning the [Syntax](n00b-syntaxReference.md) would be of great help to the beginner.
      -
      -> Generally the live editor is enough for most general uses of mermaid, and is a good place to start learning.
      -
      -**Absolute beginners are advised to view the Video [Tutorials](../config/Tutorials.md) on the Live Editor, to gain a better understanding of mermaid.**
      -
      -## Four ways of using mermaid:
      -
      -1.  Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live).
      -2.  Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with.
      -3.  Calling the Mermaid JavaScript API.
      -4.  Deploying Mermaid as a dependency.
      -
      -**Note: It is our recommendation that you review all approaches, and choose the one that is best for your project.**
      -
      -> More in depth information can be found at [Usage](../config/usage.md).
      -
      -## 1. Using the Live Editor
      -
      -Available at [mermaid.live](https://mermaid.live)
      -
      -```mermaid-example
      -graph TD
      -    A[Enter Chart Definition] --> B(Preview)
      -    B --> C{decide}
      -    C --> D[Keep]
      -    C --> E[Edit Definition]
      -    E --> B
      -    D --> F[Save Image and Code]
      -    F --> B
      -```
      -
      -```mermaid
      -graph TD
      -    A[Enter Chart Definition] --> B(Preview)
      -    B --> C{decide}
      -    C --> D[Keep]
      -    C --> E[Edit Definition]
      -    E --> B
      -    D --> F[Save Image and Code]
      -    F --> B
      -```
      -
      -In the `Code` section one can write or edit raw mermaid code, and instantly `Preview` the rendered result on the panel beside it.
      -
      -The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](../config/n00b-advanced.md) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](../config/setup/README.md) page.
      -
      -![Code,Config and Preview](./img/Code-Preview-Config.png)
      -
      -### Editing History
      -
      -Your code will be autosaved every minute into the Timeline tab of History which shows the most recent 30 items.
      -
      -You can manually save code by clicking the Save icon in the History section. It can also be accessed in the Saved tab. This is stored in the browser storage only.
      -
      -### Saving a Diagram:
      -
      -You may choose any of the methods below, to save it
      -
      -**We recommend that you save your diagram code on top of any method you choose, in order to make edits and modifications further down the line.**
      -
      -![Flowchart](./img/Live-Editor-Choices.png)
      -
      -### Editing your diagrams
      -
      -Editing is as easy as pasting your **Diagram code**, into the `code` section of the `Live Editor`.
      -
      -### Loading from Gists
      -
      -The Gist you create should have a code.mmd file and optionally a config.json. [Example](https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a)
      -
      -To load a gist into the Editor, you can use https://mermaid.live/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a
      -
      -and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a
      -
      -## 2. Using Mermaid Plugins:
      -
      -You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations.md).
      -
      -**This is covered in greater detail in the [Usage section](../config/usage.md)**
      -
      -## 3. Calling the JavaScript API
      -
      -This method can be used with any common web server like Apache, IIS, nginx, node express.
      -
      -You will also need a text editing tool like Notepad++ to generate a .html file. It is then deployed by a web browser (such as Firefox, Chrome, Safari, but not Internet Explorer).
      -
      -The API works by pulling rendering instructions from the source `mermaid.js` in order to render diagrams on the page.
      -
      -### Requirements for the Mermaid API.
      -
      -When writing the .html file, we give two instructions inside the html code to the web browser:
      -
      -a. The mermaid code for the diagram we want to create.
      -
      -b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm.min.mjs` and the `mermaid.initialize()` call, which dictates the appearance of diagrams and also starts the rendering process .
      -
      -**a. The embedded mermaid diagram definition inside a `
      `:**
      -
      -```html
      -
      -  Here is a mermaid diagram:
      -  
      -        graph TD 
      -        A[Client] --> B[Load Balancer] 
      -        B --> C[Server01] 
      -        B --> D[Server02]
      -  
      - -``` - -**Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
      ` tags.
      -
      -**b. The import of mermaid and the `mermaid.initialize()` call.**
      -
      -`mermaid.initialize()` call takes all the definitions contained in all the `
      ` tags that it finds in the html body and renders them into diagrams. Example:
      -
      -```html
      -
      -  
      -
      -```
      -
      -**Notes**:
      -Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.min.js` for brevity. However, doing the opposite lets you control when it starts looking for `
      `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
      ` tags may have loaded on the execution of `mermaid.min.js` file. - -`startOnLoad` is one of the parameters that can be defined by `mermaid.initialize()` - -| Parameter | Description | Type | Values | -| ----------- | --------------------------------- | ------- | ----------- | -| startOnLoad | Toggle for Rendering upon loading | Boolean | true, false | - -### Working Examples - -**Here is a full working example of the mermaidAPI being called through the CDN:** - -```html - - - Here is one mermaid diagram: -
      -            graph TD 
      -            A[Client] --> B[Load Balancer] 
      -            B --> C[Server1] 
      -            B --> D[Server2]
      -    
      - - And here is another: -
      -            graph TD 
      -            A[Client] -->|tcp_123| B
      -            B(Load Balancer) 
      -            B -->|tcp_456| C[Server1] 
      -            B -->|tcp_456| D[Server2]
      -    
      - - - - -``` - -**Another Option:** -In this example mermaid.js is referenced in `src` as a separate JavaScript file, in an example Path. - -```html - - - - - -
      -            graph LR 
      -            A --- B 
      -            B-->C[fa:fa-ban forbidden] 
      -            B-->D(fa:fa-spinner);
      -    
      -
      -            graph TD 
      -            A[Client] --> B[Load Balancer] 
      -            B --> C[Server1] 
      -            B --> D[Server2]
      -    
      - - - -``` - ---- - -## 4. Adding Mermaid as a dependency. - -1. install node v16, which would have npm - -2. download yarn using npm by entering the command below: - npm install -g yarn - -3. After yarn installs, enter the following command: - yarn add mermaid - -4. To add Mermaid as a Dev Dependency - yarn add --dev mermaid - -**Comments from Knut Sveidqvist, creator of mermaid:** - -- In early versions of mermaid, the ` -``` - -```mermaid-example -classDiagram - class Class01 - class Class02 - callback Class01 "callbackFunction" "Callback tooltip" - link Class02 "https://www.github.com" "This is a link" - class Class03 - class Class04 - click Class03 call callbackFunction() "Callback tooltip" - click Class04 href "https://www.github.com" "This is a link" -``` - -```mermaid -classDiagram - class Class01 - class Class02 - callback Class01 "callbackFunction" "Callback tooltip" - link Class02 "https://www.github.com" "This is a link" - class Class03 - class Class04 - click Class03 call callbackFunction() "Callback tooltip" - click Class04 href "https://www.github.com" "This is a link" -``` - -> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. - -Beginner's tip—a full example using interactive links in an HTML page: - -```html - -
      -    classDiagram
      -    Animal <|-- Duck
      -    Animal <|-- Fish
      -    Animal <|-- Zebra
      -    Animal : +int age
      -    Animal : +String gender
      -    Animal: +isMammal()
      -    Animal: +mate()
      -    class Duck{
      -      +String beakColor
      -      +swim()
      -      +quack()
      -      }
      -    class Fish{
      -      -int sizeInFeet
      -      -canEat()
      -      }
      -    class Zebra{
      -      +bool is_wild
      -      +run()
      -      }
      -
      -      callback Duck callback "Tooltip"
      -      link Zebra "https://www.github.com" "This is a link"
      -  
      - - - -``` - -## Styling - -### Styling a node - -It is possible to apply specific styles such as a thicker border or a different background color to individual nodes. This is done by predefining classes in css styles that can be applied from the graph definition: - -```html - -``` - -Then attaching that class to a specific node: - - cssClass "nodeId1" cssClass; - -It is also possible to attach a class to a list of nodes in one statement: - - cssClass "nodeId1,nodeId2" cssClass; - -A shorter form of adding a class is to attach the classname to the node using the `:::` operator: - -```mermaid-example -classDiagram - class Animal:::cssClass -``` - -```mermaid -classDiagram - class Animal:::cssClass -``` - -Or: - -```mermaid-example -classDiagram - class Animal:::cssClass { - -int sizeInFeet - -canEat() - } -``` - -```mermaid -classDiagram - class Animal:::cssClass { - -int sizeInFeet - -canEat() - } -``` - -?> cssClasses cannot be added using this shorthand method at the same time as a relation statement. - -?> Due to limitations with existing markup for class diagrams, it is not currently possible to define css classes within the diagram itself. **_Coming soon!_** - -### Default Styles - -The main styling of the class diagram is done with a preset number of css classes. During rendering these classes are extracted from the file located at src/themes/class.scss. The classes used here are described below: - -| Class | Description | -| ------------------ | ----------------------------------------------------------------- | -| g.classGroup text | Styles for general class text | -| classGroup .title | Styles for general class title | -| g.classGroup rect | Styles for class diagram rectangle | -| g.classGroup line | Styles for class diagram line | -| .classLabel .box | Styles for class label box | -| .classLabel .label | Styles for class label text | -| composition | Styles for composition arrow head and arrow line | -| aggregation | Styles for aggregation arrow head and arrow line(dashed or solid) | -| dependency | Styles for dependency arrow head and arrow line | - -#### Sample stylesheet - -```scss -body { - background: white; -} - -g.classGroup text { - fill: $nodeBorder; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-family: var(--mermaid-font-family); - font-size: 10px; - - .title { - font-weight: bolder; - } -} - -g.classGroup rect { - fill: $nodeBkg; - stroke: $nodeBorder; -} - -g.classGroup line { - stroke: $nodeBorder; - stroke-width: 1; -} - -.classLabel .box { - stroke: none; - stroke-width: 0; - fill: $nodeBkg; - opacity: 0.5; -} - -.classLabel .label { - fill: $nodeBorder; - font-size: 10px; -} - -.relation { - stroke: $nodeBorder; - stroke-width: 1; - fill: none; -} - -@mixin composition { - fill: $nodeBorder; - stroke: $nodeBorder; - stroke-width: 1; -} - -#compositionStart { - @include composition; -} - -#compositionEnd { - @include composition; -} - -@mixin aggregation { - fill: $nodeBkg; - stroke: $nodeBorder; - stroke-width: 1; -} - -#aggregationStart { - @include aggregation; -} - -#aggregationEnd { - @include aggregation; -} - -#dependencyStart { - @include composition; -} - -#dependencyEnd { - @include composition; -} - -#extensionStart { - @include composition; -} - -#extensionEnd { - @include composition; -} -``` - -## Configuration - -`Coming soon!` diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md deleted file mode 100644 index fef7b6fee7..0000000000 --- a/docs/syntax/entityRelationshipDiagram.md +++ /dev/null @@ -1,299 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md](../../packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md). - -# Entity Relationship Diagrams - -> An entity–relationship model (or ER model) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between entities (instances of those entity types). Wikipedia. - -Note that practitioners of ER modelling almost always refer to _entity types_ simply as _entities_. For example the `CUSTOMER` entity _type_ would be referred to simply as the `CUSTOMER` entity. This is so common it would be inadvisable to do anything else, but technically an entity is an abstract _instance_ of an entity type, and this is what an ER diagram shows - abstract instances, and the relationships between them. This is why entities are always named using singular nouns. - -Mermaid can render ER diagrams - -```mermaid-example -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses -``` - -```mermaid -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses -``` - -Entity names are often capitalised, although there is no accepted standard on this, and it is not required in Mermaid. - -Relationships between entities are represented by lines with end markers representing cardinality. Mermaid uses the most popular crow's foot notation. The crow's foot intuitively conveys the possibility of many instances of the entity that it connects to. - -ER diagrams can be used for various purposes, ranging from abstract logical models devoid of any implementation details, through to physical models of relational database tables. It can be useful to include attribute definitions on ER diagrams to aid comprehension of the purpose and meaning of entities. These do not necessarily need to be exhaustive; often a small subset of attributes is enough. Mermaid allows them to be defined in terms of their _type_ and _name_. - -```mermaid-example -erDiagram - CUSTOMER ||--o{ ORDER : places - CUSTOMER { - string name - string custNumber - string sector - } - ORDER ||--|{ LINE-ITEM : contains - ORDER { - int orderNumber - string deliveryAddress - } - LINE-ITEM { - string productCode - int quantity - float pricePerUnit - } -``` - -```mermaid -erDiagram - CUSTOMER ||--o{ ORDER : places - CUSTOMER { - string name - string custNumber - string sector - } - ORDER ||--|{ LINE-ITEM : contains - ORDER { - int orderNumber - string deliveryAddress - } - LINE-ITEM { - string productCode - int quantity - float pricePerUnit - } -``` - -When including attributes on ER diagrams, you must decide whether to include foreign keys as attributes. This probably depends on how closely you are trying to represent relational table structures. If your diagram is a _logical_ model which is not meant to imply a relational implementation, then it is better to leave these out because the associative relationships already convey the way that entities are associated. For example, a JSON data structure can implement a one-to-many relationship without the need for foreign key properties, using arrays. Similarly an object-oriented programming language may use pointers or references to collections. Even for models that are intended for relational implementation, you might decide that inclusion of foreign key attributes duplicates information already portrayed by the relationships, and does not add meaning to entities. Ultimately, it's your choice. - -## Syntax - -### Entities and Relationships - -Mermaid syntax for ER diagrams is compatible with PlantUML, with an extension to label the relationship. Each statement consists of the following parts: - - [ : ] - -Where: - -- `first-entity` is the name of an entity. Names must begin with an alphabetic character and may also contain digits, hyphens, and underscores. -- `relationship` describes the way that both entities inter-relate. See below. -- `second-entity` is the name of the other entity. -- `relationship-label` describes the relationship from the perspective of the first entity. - -For example: - - PROPERTY ||--|{ ROOM : contains - -This statement can be read as _a property contains one or more rooms, and a room is part of one and only one property_. You can see that the label here is from the first entity's perspective: a property contains a room, but a room does not contain a property. When considered from the perspective of the second entity, the equivalent label is usually very easy to infer. (Some ER diagrams label relationships from both perspectives, but this is not supported here, and is usually superfluous). - -Only the `first-entity` part of a statement is mandatory. This makes it possible to show an entity with no relationships, which can be useful during iterative construction of diagrams. If any other parts of a statement are specified, then all parts are mandatory. - -### Relationship Syntax - -The `relationship` part of each statement can be broken down into three sub-components: - -- the cardinality of the first entity with respect to the second, -- whether the relationship confers identity on a 'child' entity -- the cardinality of the second entity with respect to the first - -Cardinality is a property that describes how many elements of another entity can be related to the entity in question. In the above example a `PROPERTY` can have one or more `ROOM` instances associated to it, whereas a `ROOM` can only be associated with one `PROPERTY`. In each cardinality marker there are two characters. The outermost character represents a maximum value, and the innermost character represents a minimum value. The table below summarises possible cardinalities. - -| Value (left) | Value (right) | Meaning | -| :----------: | :-----------: | ----------------------------- | -| `\|o` | `o\|` | Zero or one | -| `\|\|` | `\|\|` | Exactly one | -| `}o` | `o{` | Zero or more (no upper limit) | -| `}\|` | `\|{` | One or more (no upper limit) | - -**Aliases** - -| Value (left) | Value (right) | Alias for | -| :----------: | :-----------: | ------------ | -| one or zero | one or zero | Zero or one | -| zero or one | zero or one | Zero or one | -| one or more | one or more | One or more | -| one or many | one or many | One or more | -| many(1) | many(1) | One or more | -| 1+ | 1+ | One or more | -| zero or more | zero or more | Zero or more | -| zero or many | zero or many | Zero or more | -| many(0) | many(1) | Zero or more | -| 0+ | 0+ | Zero or more | -| only one | only one | Exactly one | -| 1 | 1 | Exactly one | - -### Identification - -Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line: - -**Aliases** - -| Value | Alias for | -| :-----------: | :---------------: | -| to | _identifying_ | -| optionally to | _non-identifying_ | - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - PERSON ||--o{ NAMED-DRIVER : is -``` - -```mermaid -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - PERSON ||--o{ NAMED-DRIVER : is -``` - -### Attributes - -Attributes can be defined for entities by specifying the entity name followed by a block containing multiple `type name` pairs, where a block is delimited by an opening `{` and a closing `}`. For example: - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string firstName - string lastName - int age - } -``` - -```mermaid -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string firstName - string lastName - int age - } -``` - -The attributes are rendered inside the entity boxes: - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string firstName - string lastName - int age - } -``` - -```mermaid -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string firstName - string lastName - int age - } -``` - -The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens or underscores. Other than that, there are no restrictions, and there is no implicit set of valid data types. - -#### Attribute Keys and Comments - -Attributes may also have a `key` or comment defined. Keys can be "PK" or "FK", for Primary Key or Foreign Key. And a `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. - -```mermaid-example -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string allowedDriver FK "The license of the allowed driver" - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string driversLicense PK "The license #" - string firstName - string lastName - int age - } - MANUFACTURER only one to zero or more CAR -``` - -```mermaid -erDiagram - CAR ||--o{ NAMED-DRIVER : allows - CAR { - string allowedDriver FK "The license of the allowed driver" - string registrationNumber - string make - string model - } - PERSON ||--o{ NAMED-DRIVER : is - PERSON { - string driversLicense PK "The license #" - string firstName - string lastName - int age - } - MANUFACTURER only one to zero or more CAR -``` - -### Other Things - -- If you want the relationship label to be more than one word, you must use double quotes around the phrase -- If you don't want a label at all on a relationship, you must use an empty double-quoted string - -## Styling - -### Config options - -For simple color customization: - -| Name | Used as | -| :------- | :------------------------------------------------------------------- | -| `fill` | Background color of an entity or attribute | -| `stroke` | Border color of an entity or attribute, line color of a relationship | - -### Classes used - -The following CSS class selectors are available for richer styling: - -| Selector | Description | -| :------------------------- | :---------------------------------------------------- | -| `.er.attributeBoxEven` | The box containing attributes on even-numbered rows | -| `.er.attributeBoxOdd` | The box containing attributes on odd-numbered rows | -| `.er.entityBox` | The box representing an entity | -| `.er.entityLabel` | The label for an entity | -| `.er.relationshipLabel` | The label for a relationship | -| `.er.relationshipLabelBox` | The box surrounding a relationship label | -| `.er.relationshipLine` | The line representing a relationship between entities | diff --git a/docs/syntax/examples.md b/docs/syntax/examples.md deleted file mode 100644 index ae2ba0ed38..0000000000 --- a/docs/syntax/examples.md +++ /dev/null @@ -1,299 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/examples.md](../../packages/mermaid/src/docs/syntax/examples.md). - -# Examples - -This page contains a collection of examples of diagrams and charts that can be created through mermaid and its myriad applications. - -**If you wish to learn how to support mermaid on your webpage, read the [Beginner's Guide](../config/usage.md?id=usage).** - -**If you wish to learn about mermaid's syntax, Read the [Diagram Syntax](../syntax/flowchart.md?id=flowcharts-basic-syntax) section.** - -## Basic Pie Chart - -```mermaid-example -pie title NETFLIX - "Time spent looking for movie" : 90 - "Time spent watching it" : 10 -``` - -```mermaid -pie title NETFLIX - "Time spent looking for movie" : 90 - "Time spent watching it" : 10 -``` - -```mermaid-example -pie title What Voldemort doesn't have? - "FRIENDS" : 2 - "FAMILY" : 3 - "NOSE" : 45 -``` - -```mermaid -pie title What Voldemort doesn't have? - "FRIENDS" : 2 - "FAMILY" : 3 - "NOSE" : 45 -``` - -## Basic sequence diagram - -```mermaid-example -sequenceDiagram - Alice ->> Bob: Hello Bob, how are you? - Bob-->>John: How about you John? - Bob--x Alice: I am good thanks! - Bob-x John: I am good thanks! - Note right of John: Bob thinks a long
      long time, so long
      that the text does
      not fit on a row. - - Bob-->Alice: Checking with John... - Alice->John: Yes... John, how are you? -``` - -```mermaid -sequenceDiagram - Alice ->> Bob: Hello Bob, how are you? - Bob-->>John: How about you John? - Bob--x Alice: I am good thanks! - Bob-x John: I am good thanks! - Note right of John: Bob thinks a long
      long time, so long
      that the text does
      not fit on a row. - - Bob-->Alice: Checking with John... - Alice->John: Yes... John, how are you? -``` - -## Basic flowchart - -```mermaid-example -graph LR - A[Square Rect] -- Link text --> B((Circle)) - A --> C(Round Rect) - B --> D{Rhombus} - C --> D -``` - -```mermaid -graph LR - A[Square Rect] -- Link text --> B((Circle)) - A --> C(Round Rect) - B --> D{Rhombus} - C --> D -``` - -## Larger flowchart with some styling - -```mermaid-example -graph TB - sq[Square shape] --> ci((Circle shape)) - - subgraph A - od>Odd shape]-- Two line
      edge comment --> ro - di{Diamond with
      line break} -.-> ro(Rounded
      square
      shape) - di==>ro2(Rounded square shape) - end - - %% Notice that no text in shape are added here instead that is appended further down - e --> od3>Really long text with linebreak
      in an Odd shape] - - %% Comments after double percent signs - e((Inner / circle
      and some odd
      special characters)) --> f(,.?!+-*ز) - - cyr[Cyrillic]-->cyr2((Circle shape Начало)); - - classDef green fill:#9f6,stroke:#333,stroke-width:2px; - classDef orange fill:#f96,stroke:#333,stroke-width:4px; - class sq,e green - class di orange -``` - -```mermaid -graph TB - sq[Square shape] --> ci((Circle shape)) - - subgraph A - od>Odd shape]-- Two line
      edge comment --> ro - di{Diamond with
      line break} -.-> ro(Rounded
      square
      shape) - di==>ro2(Rounded square shape) - end - - %% Notice that no text in shape are added here instead that is appended further down - e --> od3>Really long text with linebreak
      in an Odd shape] - - %% Comments after double percent signs - e((Inner / circle
      and some odd
      special characters)) --> f(,.?!+-*ز) - - cyr[Cyrillic]-->cyr2((Circle shape Начало)); - - classDef green fill:#9f6,stroke:#333,stroke-width:2px; - classDef orange fill:#f96,stroke:#333,stroke-width:4px; - class sq,e green - class di orange -``` - -## SequenceDiagram: Loops, alt and opt - -```mermaid-example -sequenceDiagram - loop Daily query - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - - opt Extra response - Bob->>Alice: Thanks for asking - end - end -``` - -```mermaid -sequenceDiagram - loop Daily query - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - - opt Extra response - Bob->>Alice: Thanks for asking - end - end -``` - -## SequenceDiagram: Message to self in loop - -```mermaid-example -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
      prevail... - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
      prevail... - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -## Sequence Diagram: Blogging app service communication - -```mermaid-example -sequenceDiagram - participant web as Web Browser - participant blog as Blog Service - participant account as Account Service - participant mail as Mail Service - participant db as Storage - - Note over web,db: The user must be logged in to submit blog posts - web->>+account: Logs in using credentials - account->>db: Query stored accounts - db->>account: Respond with query result - - alt Credentials not found - account->>web: Invalid credentials - else Credentials found - account->>-web: Successfully logged in - - Note over web,db: When the user is authenticated, they can now submit new posts - web->>+blog: Submit new post - blog->>db: Store post data - - par Notifications - blog--)mail: Send mail to blog subscribers - blog--)db: Store in-site notifications - and Response - blog-->>-web: Successfully posted - end - end - -``` - -```mermaid -sequenceDiagram - participant web as Web Browser - participant blog as Blog Service - participant account as Account Service - participant mail as Mail Service - participant db as Storage - - Note over web,db: The user must be logged in to submit blog posts - web->>+account: Logs in using credentials - account->>db: Query stored accounts - db->>account: Respond with query result - - alt Credentials not found - account->>web: Invalid credentials - else Credentials found - account->>-web: Successfully logged in - - Note over web,db: When the user is authenticated, they can now submit new posts - web->>+blog: Submit new post - blog->>db: Store post data - - par Notifications - blog--)mail: Send mail to blog subscribers - blog--)db: Store in-site notifications - and Response - blog-->>-web: Successfully posted - end - end - -``` - -## A commit flow diagram. - -```mermaid-example -gitGraph: - commit "Ashish" - branch newbranch - checkout newbranch - commit id:"1111" - commit tag:"test" - checkout main - commit type: HIGHLIGHT - commit - merge newbranch - commit - branch b2 - commit -``` - -```mermaid -gitGraph: - commit "Ashish" - branch newbranch - checkout newbranch - commit id:"1111" - commit tag:"test" - checkout main - commit type: HIGHLIGHT - commit - merge newbranch - commit - branch b2 - commit -``` diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md deleted file mode 100644 index 234f46236d..0000000000 --- a/docs/syntax/flowchart.md +++ /dev/null @@ -1,992 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/flowchart.md](../../packages/mermaid/src/docs/syntax/flowchart.md). - -# Flowcharts - Basic Syntax - -All Flowcharts are composed of **nodes**, the geometric shapes and **edges**, the arrows or lines. The mermaid code defines the way that these **nodes** and **edges** are made and interact. - -It can also accommodate different arrow types, multi directional arrows, and linking to and from subgraphs. - -> **Important note**: Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897). - -### A node (default) - -```mermaid-example -flowchart LR - id -``` - -```mermaid -flowchart LR - id -``` - -> **Note** The id is what is displayed in the box. - -### A node with text - -It is also possible to set text in the box that differs from the id. If this is done several times, it is the last text -found for the node that will be used. Also if you define edges for the node later on, you can omit text definitions. The -one previously defined will be used when rendering the box. - -```mermaid-example -flowchart LR - id1[This is the text in the box] -``` - -```mermaid -flowchart LR - id1[This is the text in the box] -``` - -## Graph - -This statement declares the direction of the Flowchart. - -This declares the flowchart is oriented from top to bottom (`TD` or `TB`). - -```mermaid-example -flowchart TD - Start --> Stop -``` - -```mermaid -flowchart TD - Start --> Stop -``` - -This declares the flowchart is oriented from left to right (`LR`). - -```mermaid-example -flowchart LR - Start --> Stop -``` - -```mermaid -flowchart LR - Start --> Stop -``` - -## Flowchart Orientation - -Possible FlowChart orientations are: - -- TB - top to bottom -- TD - top-down/ same as top to bottom -- BT - bottom to top -- RL - right to left -- LR - left to right - -## Node shapes - -### A node with round edges - -```mermaid-example -flowchart LR - id1(This is the text in the box) -``` - -```mermaid -flowchart LR - id1(This is the text in the box) -``` - -### A stadium-shaped node - -```mermaid-example -flowchart LR - id1([This is the text in the box]) -``` - -```mermaid -flowchart LR - id1([This is the text in the box]) -``` - -### A node in a subroutine shape - -```mermaid-example -flowchart LR - id1[[This is the text in the box]] -``` - -```mermaid -flowchart LR - id1[[This is the text in the box]] -``` - -### A node in a cylindrical shape - -```mermaid-example -flowchart LR - id1[(Database)] -``` - -```mermaid -flowchart LR - id1[(Database)] -``` - -### A node in the form of a circle - -```mermaid-example -flowchart LR - id1((This is the text in the circle)) -``` - -```mermaid -flowchart LR - id1((This is the text in the circle)) -``` - -### A node in an asymmetric shape - -```mermaid-example -flowchart LR - id1>This is the text in the box] -``` - -```mermaid -flowchart LR - id1>This is the text in the box] -``` - -Currently only the shape above is possible and not its mirror. _This might change with future releases._ - -### A node (rhombus) - -```mermaid-example -flowchart LR - id1{This is the text in the box} -``` - -```mermaid -flowchart LR - id1{This is the text in the box} -``` - -### A hexagon node - -Code: - -```mermaid-example -flowchart LR - id1{{This is the text in the box}} -``` - -```mermaid -flowchart LR - id1{{This is the text in the box}} -``` - -Render: - -```mermaid-example -flowchart LR - id1{{This is the text in the box}} -``` - -```mermaid -flowchart LR - id1{{This is the text in the box}} -``` - -### Parallelogram - -```mermaid-example -flowchart TD - id1[/This is the text in the box/] -``` - -```mermaid -flowchart TD - id1[/This is the text in the box/] -``` - -### Parallelogram alt - -```mermaid-example -flowchart TD - id1[\This is the text in the box\] -``` - -```mermaid -flowchart TD - id1[\This is the text in the box\] -``` - -### Trapezoid - -```mermaid-example -flowchart TD - A[/Christmas\] -``` - -```mermaid -flowchart TD - A[/Christmas\] -``` - -### Trapezoid alt - -```mermaid-example -flowchart TD - B[\Go shopping/] -``` - -```mermaid -flowchart TD - B[\Go shopping/] -``` - -### Double circle - -```mermaid-example -flowchart TD - id1(((This is the text in the circle))) -``` - -```mermaid -flowchart TD - id1(((This is the text in the circle))) -``` - -## Links between nodes - -Nodes can be connected with links/edges. It is possible to have different types of links or attach a text string to a link. - -### A link with arrow head - -```mermaid-example -flowchart LR - A-->B -``` - -```mermaid -flowchart LR - A-->B -``` - -### An open link - -```mermaid-example -flowchart LR - A --- B -``` - -```mermaid -flowchart LR - A --- B -``` - -### Text on links - -```mermaid-example -flowchart LR - A-- This is the text! ---B -``` - -```mermaid -flowchart LR - A-- This is the text! ---B -``` - -or - -```mermaid-example -flowchart LR - A---|This is the text|B -``` - -```mermaid -flowchart LR - A---|This is the text|B -``` - -### A link with arrow head and text - -```mermaid-example -flowchart LR - A-->|text|B -``` - -```mermaid -flowchart LR - A-->|text|B -``` - -or - -```mermaid-example -flowchart LR - A-- text -->B -``` - -```mermaid -flowchart LR - A-- text -->B -``` - -### Dotted link - -```mermaid-example -flowchart LR - A-.->B; -``` - -```mermaid -flowchart LR - A-.->B; -``` - -### Dotted link with text - -```mermaid-example -flowchart LR - A-. text .-> B -``` - -```mermaid -flowchart LR - A-. text .-> B -``` - -### Thick link - -```mermaid-example -flowchart LR - A ==> B -``` - -```mermaid -flowchart LR - A ==> B -``` - -### Thick link with text - -```mermaid-example -flowchart LR - A == text ==> B -``` - -```mermaid -flowchart LR - A == text ==> B -``` - -### Chaining of links - -It is possible declare many links in the same line as per below: - -```mermaid-example -flowchart LR - A -- text --> B -- text2 --> C -``` - -```mermaid -flowchart LR - A -- text --> B -- text2 --> C -``` - -It is also possible to declare multiple nodes links in the same line as per below: - -```mermaid-example -flowchart LR - a --> b & c--> d -``` - -```mermaid -flowchart LR - a --> b & c--> d -``` - -You can then describe dependencies in a very expressive way. Like the one-liner below: - -```mermaid-example -flowchart TB - A & B--> C & D -``` - -```mermaid -flowchart TB - A & B--> C & D -``` - -If you describe the same diagram using the the basic syntax, it will take four lines. A -word of warning, one could go overboard with this making the flowchart harder to read in -markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little. -This goes for expressive syntaxes as well. - -```mermaid-example -flowchart TB - A --> C - A --> D - B --> C - B --> D -``` - -```mermaid -flowchart TB - A --> C - A --> D - B --> C - B --> D -``` - -### New arrow types - -There are new types of arrows supported as per below: - -```mermaid-example -flowchart LR - A --o B - B --x C -``` - -```mermaid -flowchart LR - A --o B - B --x C -``` - -### Multi directional arrows - -There is the possibility to use multidirectional arrows. - -```mermaid-example -flowchart LR - A o--o B - B <--> C - C x--x D -``` - -```mermaid -flowchart LR - A o--o B - B <--> C - C x--x D -``` - -### Minimum length of a link - -Each node in the flowchart is ultimately assigned to a rank in the rendered -graph, i.e. to a vertical or horizontal level (depending on the flowchart -orientation), based on the nodes to which it is linked. By default, links -can span any number of ranks, but you can ask for any link to be longer -than the others by adding extra dashes in the link definition. - -In the following example, two extra dashes are added in the link from node _B_ -to node _E_, so that it spans two more ranks than regular links: - -```mermaid-example -flowchart TD - A[Start] --> B{Is it?} - B -->|Yes| C[OK] - C --> D[Rethink] - D --> B - B ---->|No| E[End] -``` - -```mermaid -flowchart TD - A[Start] --> B{Is it?} - B -->|Yes| C[OK] - C --> D[Rethink] - D --> B - B ---->|No| E[End] -``` - -> **Note** Links may still be made longer than the requested number of ranks -> by the rendering engine to accommodate other requests. - -When the link label is written in the middle of the link, the extra dashes must -be added on the right side of the link. The following example is equivalent to -the previous one: - -```mermaid-example -flowchart TD - A[Start] --> B{Is it?} - B -- Yes --> C[OK] - C --> D[Rethink] - D --> B - B -- No ----> E[End] -``` - -```mermaid -flowchart TD - A[Start] --> B{Is it?} - B -- Yes --> C[OK] - C --> D[Rethink] - D --> B - B -- No ----> E[End] -``` - -For dotted or thick links, the characters to add are equals signs or dots, -as summed up in the following table: - -| Length | 1 | 2 | 3 | -| ----------------- | :----: | :-----: | :------: | -| Normal | `---` | `----` | `-----` | -| Normal with arrow | `-->` | `--->` | `---->` | -| Thick | `===` | `====` | `=====` | -| Thick with arrow | `==>` | `===>` | `====>` | -| Dotted | `-.-` | `-..-` | `-...-` | -| Dotted with arrow | `-.->` | `-..->` | `-...->` | - -## Special characters that break syntax - -It is possible to put text within quotes in order to render more troublesome characters. As in the example below: - -```mermaid-example -flowchart LR - id1["This is the (text) in the box"] -``` - -```mermaid -flowchart LR - id1["This is the (text) in the box"] -``` - -### Entity codes to escape characters - -It is possible to escape characters using the syntax exemplified here. - -```mermaid-example - flowchart LR - A["A double quote:#quot;"] -->B["A dec char:#9829;"] -``` - -```mermaid - flowchart LR - A["A double quote:#quot;"] -->B["A dec char:#9829;"] -``` - -Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. - -## Subgraphs - - subgraph title - graph definition - end - -An example below: - -```mermaid-example -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end -``` - -```mermaid -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end -``` - -You can also set an explicit id for the subgraph. - -```mermaid-example -flowchart TB - c1-->a2 - subgraph ide1 [one] - a1-->a2 - end -``` - -```mermaid -flowchart TB - c1-->a2 - subgraph ide1 [one] - a1-->a2 - end -``` - -## flowcharts - -With the graphtype flowchart it is also possible to set edges to and from subgraphs as in the flowchart below. - -```mermaid-example -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end - one --> two - three --> two - two --> c2 -``` - -```mermaid -flowchart TB - c1-->a2 - subgraph one - a1-->a2 - end - subgraph two - b1-->b2 - end - subgraph three - c1-->c2 - end - one --> two - three --> two - two --> c2 -``` - -## Direction in subgraphs - -With the graphtype flowcharts you can use the direction statement to set the direction which the subgraph will render like in this example. - -```mermaid-example -flowchart LR - subgraph TOP - direction TB - subgraph B1 - direction RL - i1 -->f1 - end - subgraph B2 - direction BT - i2 -->f2 - end - end - A --> TOP --> B - B1 --> B2 -``` - -```mermaid -flowchart LR - subgraph TOP - direction TB - subgraph B1 - direction RL - i1 -->f1 - end - subgraph B2 - direction BT - i2 -->f2 - end - end - A --> TOP --> B - B1 --> B2 -``` - -## Interaction - -It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - - click nodeId callback - click nodeId call callback() - -- nodeId is the id of the node -- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the nodeId as parameter. - -Examples of tooltip usage below: - -```html - -``` - -The tooltip text is surrounded in double quotes. The styles of the tooltip are set by the class `.mermaidTooltip`. - -```mermaid-example -flowchart LR - A-->B - B-->C - C-->D - click A callback "Tooltip for a callback" - click B "https://www.github.com" "This is a tooltip for a link" - click A call callback() "Tooltip for a callback" - click B href "https://www.github.com" "This is a tooltip for a link" -``` - -```mermaid -flowchart LR - A-->B - B-->C - C-->D - click A callback "Tooltip for a callback" - click B "https://www.github.com" "This is a tooltip for a link" - click A call callback() "Tooltip for a callback" - click B href "https://www.github.com" "This is a tooltip for a link" -``` - -> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. - -?> Due to limitations with how Docsify handles JavaScript callback functions, an alternate working demo for the above code can be viewed at [this jsfiddle](https://jsfiddle.net/s37cjoau/3/). - -Links are opened in the same browser tab/window by default. It is possible to change this by adding a link target to the click definition (`_self`, `_blank`, `_parent` and `_top` are supported): - -```mermaid-example -flowchart LR - A-->B - B-->C - C-->D - D-->E - click A "https://www.github.com" _blank - click B "https://www.github.com" "Open this in a new tab" _blank - click C href "https://www.github.com" _blank - click D href "https://www.github.com" "Open this in a new tab" _blank -``` - -```mermaid -flowchart LR - A-->B - B-->C - C-->D - D-->E - click A "https://www.github.com" _blank - click B "https://www.github.com" "Open this in a new tab" _blank - click C href "https://www.github.com" _blank - click D href "https://www.github.com" "Open this in a new tab" _blank -``` - -Beginner's tip—a full example using interactive links in a html context: - -```html - -
      -    flowchart LR
      -        A-->B
      -        B-->C
      -        C-->D
      -        click A callback "Tooltip"
      -        click B "https://www.github.com" "This is a link"
      -        click C call callback() "Tooltip"
      -        click D href "https://www.github.com" "This is a link"
      -  
      - - - -``` - -### Comments - -Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any flow syntax - -```mermaid-example -flowchart LR -%% this is a comment A -- text --> B{node} - A -- text --> B -- text2 --> C -``` - -```mermaid -flowchart LR -%% this is a comment A -- text --> B{node} - A -- text --> B -- text2 --> C -``` - -## Styling and classes - -### Styling links - -It is possible to style links. For instance, you might want to style a link that is going backwards in the flow. As links -have no ids in the same way as nodes, some other way of deciding what style the links should be attached to is required. -Instead of ids, the order number of when the link was defined in the graph is used, or use default to apply to all links. -In the example below the style defined in the linkStyle statement will belong to the fourth link in the graph: - - linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; - -### Styling line curves - -It is possible to style the type of curve used for lines between items, if the default method does not meet your needs. -Available curve styles include `basis`, `bump`, `linear`, `monotoneX`, `monotoneY`, `natural`, `step`, `stepAfter`, -and `stepBefore`. - -In this example, a left-to-right graph uses the `stepBefore` curve style: - - %%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% - graph LR - -For a full list of available curves, including an explanation of custom curves, refer to -the [Shapes](https://github.com/d3/d3-shape/blob/main/README.md#curves) documentation in the -[d3-shape](https://github.com/d3/d3-shape/) project. - -### Styling a node - -It is possible to apply specific styles such as a thicker border or a different background color to a node. - -```mermaid-example -flowchart LR - id1(Start)-->id2(Stop) - style id1 fill:#f9f,stroke:#333,stroke-width:4px - style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 -``` - -```mermaid -flowchart LR - id1(Start)-->id2(Stop) - style id1 fill:#f9f,stroke:#333,stroke-width:4px - style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 -``` - -#### Classes - -More convenient than defining the style every time is to define a class of styles and attach this class to the nodes that -should have a different look. - -a class definition looks like the example below: - - classDef className fill:#f9f,stroke:#333,stroke-width:4px; - -Attachment of a class to a node is done as per below: - - class nodeId1 className; - -It is also possible to attach a class to a list of nodes in one statement: - - class nodeId1,nodeId2 className; - -A shorter form of adding a class is to attach the classname to the node using the `:::`operator as per below: - -```mermaid-example -flowchart LR - A:::someclass --> B - classDef someclass fill:#f96 -``` - -```mermaid -flowchart LR - A:::someclass --> B - classDef someclass fill:#f96 -``` - -### Css classes - -It is also possible to predefine classes in css styles that can be applied from the graph definition as in the example -below: - -**Example style** - -```html - -``` - -**Example definition** - -```mermaid-example -flowchart LR - A-->B[AAABBB] - B-->D - class A cssClass -``` - -```mermaid -flowchart LR - A-->B[AAABBB] - B-->D - class A cssClass -``` - -### Default class - -If a class is named default it will be assigned to all classes without specific class definitions. - - classDef default fill:#f9f,stroke:#333,stroke-width:4px; - -## Basic support for fontawesome - -It is possible to add icons from fontawesome. - -The icons are accessed via the syntax fa:#icon class name#. - -```mermaid-example -flowchart TD - B["fab:fa-twitter for peace"] - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner) - B-->E(A fa:fa-camera-retro perhaps?) -``` - -```mermaid -flowchart TD - B["fab:fa-twitter for peace"] - B-->C[fa:fa-ban forbidden] - B-->D(fa:fa-spinner) - B-->E(A fa:fa-camera-retro perhaps?) -``` - -?> Mermaid is now only compatible with Font Awesome versions 4 and 5. Check that you are using the correct version of Font Awesome. - -## Graph declarations with spaces between vertices and link and without semicolon - -- In graph declarations, the statements also can now end without a semicolon. After release 0.2.16, ending a graph statement with semicolon is just optional. So the below graph declaration is also valid along with the old declarations of the graph. - -- A single space is allowed between vertices and the link. However there should not be any space between a vertex and its text and a link and its text. The old syntax of graph declaration will also work and hence this new feature is optional and is introduced to improve readability. - -Below is the new declaration of the graph edges which is also valid along with the old declaration of the graph edges. - -```mermaid-example -flowchart LR - A[Hard edge] -->|Link text| B(Round edge) - B --> C{Decision} - C -->|One| D[Result one] - C -->|Two| E[Result two] -``` - -```mermaid -flowchart LR - A[Hard edge] -->|Link text| B(Round edge) - B --> C{Decision} - C -->|One| D[Result one] - C -->|Two| E[Result two] -``` - -## Configuration... - -Is it possible to adjust the width of the rendered flowchart. - -This is done by defining **mermaid.flowchartConfig** or by the CLI to use a JSON file with the configuration. How to use the CLI is described in the mermaidCLI page. -mermaid.flowchartConfig can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.flowchartConfig = { - width: 100% -} -``` diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md deleted file mode 100644 index b20b6b7760..0000000000 --- a/docs/syntax/gantt.md +++ /dev/null @@ -1,423 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gantt.md](../../packages/mermaid/src/docs/syntax/gantt.md). - -# Gantt diagrams - -> A Gantt chart is a type of bar chart, first developed by Karol Adamiecki in 1896, and independently by Henry Gantt in the 1910s, that illustrates a project schedule and the amount of time it would take for any one project to finish. Gantt charts illustrate number of days between the start and finish dates of the terminal elements and summary elements of a project. - -## A note to users - -Gantt Charts will record each scheduled task as one continuous bar that extends from the left to the right. The x axis represents time and the y records the different tasks and the order in which they are to be completed. - -It is important to remember that when a date, day, or collection of dates specific to a task are "excluded", the Gantt Chart will accommodate those changes by extending an equal number of days, towards the right, not by creating a gap inside the task. -As shown here ![](./img/Gantt-excluded-days-within.png) - -However, if the excluded dates are between two tasks that are set to start consecutively, the excluded dates will be skipped graphically and left blank, and the following task will begin after the end of the excluded dates. -As shown here ![](./img/Gantt-long-weekend-look.png) - -A Gantt chart is useful for tracking the amount of time it would take before a project is finished, but it can also be used to graphically represent "non-working days", with a few tweaks. - -Mermaid can render Gantt diagrams as SVG, PNG or a MarkDown link that can be pasted into docs. - -```mermaid-example -gantt - title A Gantt Diagram - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d -``` - -```mermaid -gantt - title A Gantt Diagram - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d -``` - -## Syntax - -```mermaid-example -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram functionality to mermaid - excludes weekends - %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) - - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d - - section Critical tasks - Completed task in the critical line :crit, done, 2014-01-06,24h - Implement parser and jison :crit, done, after des1, 2d - Create tests for parser :crit, active, 3d - Future task in critical line :crit, 5d - Create tests for renderer :2d - Add to mermaid :1d - Functionality added :milestone, 2014-01-25, 0d - - section Documentation - Describe gantt syntax :active, a1, after des1, 3d - Add gantt diagram to demo page :after a1 , 20h - Add another diagram to demo page :doc1, after a1 , 48h - - section Last section - Describe gantt syntax :after doc1, 3d - Add gantt diagram to demo page :20h - Add another diagram to demo page :48h -``` - -```mermaid -gantt - dateFormat YYYY-MM-DD - title Adding GANTT diagram functionality to mermaid - excludes weekends - %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) - - section A section - Completed task :done, des1, 2014-01-06,2014-01-08 - Active task :active, des2, 2014-01-09, 3d - Future task : des3, after des2, 5d - Future task2 : des4, after des3, 5d - - section Critical tasks - Completed task in the critical line :crit, done, 2014-01-06,24h - Implement parser and jison :crit, done, after des1, 2d - Create tests for parser :crit, active, 3d - Future task in critical line :crit, 5d - Create tests for renderer :2d - Add to mermaid :1d - Functionality added :milestone, 2014-01-25, 0d - - section Documentation - Describe gantt syntax :active, a1, after des1, 3d - Add gantt diagram to demo page :after a1 , 20h - Add another diagram to demo page :doc1, after a1 , 48h - - section Last section - Describe gantt syntax :after doc1, 3d - Add gantt diagram to demo page :20h - Add another diagram to demo page :48h -``` - -It is possible to set multiple dependencies separated by space: - -```mermaid-example - gantt - apple :a, 2017-07-20, 1w - banana :crit, b, 2017-07-23, 1d - cherry :active, c, after b a, 1d -``` - -```mermaid - gantt - apple :a, 2017-07-20, 1w - banana :crit, b, 2017-07-23, 1d - cherry :active, c, after b a, 1d -``` - -### Title - -The `title` is an _optional_ string to be displayed at the top of the Gantt chart to describe the chart as a whole. - -### Section statements - -You can divide the chart into various sections, for example to separate different parts of a project like development and documentation. - -To do so, start a line with the `section` keyword and give it a name. (Note that unlike with the [title for the entire chart](#title), this name is _required_. - -### Milestones - -You can add milestones to the diagrams. Milestones differ from tasks as they represent a single instant in time and are identified by the keyword `milestone`. Below is an example on how to use milestones. As you may notice, the exact location of the milestone is determined by the initial date for the milestone and the "duration" of the task this way: _initial date_+_duration_/2. - -```mermaid-example -gantt -dateFormat HH:mm -axisFormat %H:%M -Initial milestone : milestone, m1, 17:49,2min -taska2 : 10min -taska3 : 5min -Final milestone : milestone, m2, 18:14, 2min -``` - -```mermaid -gantt -dateFormat HH:mm -axisFormat %H:%M -Initial milestone : milestone, m1, 17:49,2min -taska2 : 10min -taska3 : 5min -Final milestone : milestone, m2, 18:14, 2min -``` - -## Setting dates - -`dateFormat` defines the format of the date **input** of your gantt elements. How these dates are represented in the rendered chart **output** are defined by `axisFormat`. - -### Input date format - -The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`. - - dateFormat YYYY-MM-DD - -The following formatting options are supported: - - Input Example Description: - YYYY 2014 4 digit year - YY 14 2 digit year - Q 1..4 Quarter of year. Sets month to first month in quarter. - M MM 1..12 Month number - MMM MMMM January..Dec Month name in locale set by moment.locale() - D DD 1..31 Day of month - Do 1st..31st Day of month with ordinal - DDD DDDD 1..365 Day of year - X 1410715640.579 Unix timestamp - x 1410715640579 Unix ms timestamp - H HH 0..23 24 hour time - h hh 1..12 12 hour time used with a A. - a A am pm Post or ante meridiem - m mm 0..59 Minutes - s ss 0..59 Seconds - S 0..9 Tenths of a second - SS 0..99 Hundreds of a second - SSS 0..999 Thousandths of a second - Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z - -More info in: https://momentjs.com/docs/#/parsing/string-format/ - -### Output date format on the axis - -The default output date format is `YYYY-MM-DD`. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020. - - axisFormat %Y-%m-%d - -The following formatting strings are supported: - - %a - abbreviated weekday name. - %A - full weekday name. - %b - abbreviated month name. - %B - full month name. - %c - date and time, as "%a %b %e %H:%M:%S %Y". - %d - zero-padded day of the month as a decimal number [01,31]. - %e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %_d. - %H - hour (24-hour clock) as a decimal number [00,23]. - %I - hour (12-hour clock) as a decimal number [01,12]. - %j - day of the year as a decimal number [001,366]. - %m - month as a decimal number [01,12]. - %M - minute as a decimal number [00,59]. - %L - milliseconds as a decimal number [000, 999]. - %p - either AM or PM. - %S - second as a decimal number [00,61]. - %U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. - %w - weekday as a decimal number [0(Sunday),6]. - %W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. - %x - date, as "%m/%d/%Y". - %X - time, as "%H:%M:%S". - %y - year without century as a decimal number [00,99]. - %Y - year with century as a decimal number. - %Z - time zone offset, such as "-0700". - %% - a literal "%" character. - -More info in: - -### Axis ticks - -The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`. - - tickInterval 1day - -The pattern is: - - /^([1-9][0-9]*)(minute|hour|day|week|month)$/ - -More info in: - -## Comments - -Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax - -```mermaid-example -gantt - title A Gantt Diagram - %% this is a comment - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d - -``` - -```mermaid -gantt - title A Gantt Diagram - %% this is a comment - dateFormat YYYY-MM-DD - section Section - A task :a1, 2014-01-01, 30d - Another task :after a1 , 20d - section Another - Task in sec :2014-01-12 , 12d - another task : 24d - -``` - -## Styling - -Styling of the Gantt diagram is done by defining a number of CSS classes. During rendering, these classes are extracted from the file located at src/diagrams/gantt/styles.js - -### Classes used - -| Class | Description | -| --------------------- | ---------------------------------------------------------------------- | -| grid.tick | Styling for the Grid Lines | -| grid.path | Styling for the Grid's borders | -| .taskText | Task Text Styling | -| .taskTextOutsideRight | Styling for Task Text that exceeds the activity bar towards the right. | -| .taskTextOutsideLeft | Styling for Task Text that exceeds the activity bar, towards the left. | -| todayMarker | Toggle and Styling for the "Today Marker" | - -### Sample stylesheet - -```css -.grid .tick { - stroke: lightgrey; - opacity: 0.3; - shape-rendering: crispEdges; -} -.grid path { - stroke-width: 0; -} - -#tag { - color: white; - background: #fa283d; - width: 150px; - position: absolute; - display: none; - padding: 3px 6px; - margin-left: -80px; - font-size: 11px; -} - -#tag:before { - border: solid transparent; - content: ' '; - height: 0; - left: 50%; - margin-left: -5px; - position: absolute; - width: 0; - border-width: 10px; - border-bottom-color: #fa283d; - top: -20px; -} -.taskText { - fill: white; - text-anchor: middle; -} -.taskTextOutsideRight { - fill: black; - text-anchor: start; -} -.taskTextOutsideLeft { - fill: black; - text-anchor: end; -} -``` - -## Today marker - -You can style or hide the marker for the current date. To style it, add a value for the `todayMarker` key. - - todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5 - -To hide the marker, set `todayMarker` to `off`. - - todayMarker off - -## Configuration - -It is possible to adjust the margins for rendering the gantt diagram. - -This is done by defining the `ganttConfig` part of the configuration object. -How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.md) page. - -mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.ganttConfig = { - titleTopMargin: 25, - barHeight: 20, - barGap: 4, - topPadding: 75, - sidePadding: 75, -}; -``` - -### Possible configuration params: - -| Param | Description | Default value | -| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------- | -| mirrorActor | Turns on/off the rendering of actors below the diagram as well as above it | false | -| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | - -## Interaction - -It is possible to bind a click event to a task. The click can lead to either a javascript callback or to a link which will be opened in the current browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. - - click taskId call callback(arguments) - click taskId href URL - -- taskId is the id of the task -- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the taskId as the parameter if no other arguments are specified. - -Beginner's tip—a full example using interactive links in an html context: - -```html - -
      -    gantt
      -      dateFormat  YYYY-MM-DD
      -
      -      section Clickable
      -      Visit mermaidjs           :active, cl1, 2014-01-07, 3d
      -      Print arguments         :cl2, after cl1, 3d
      -      Print task              :cl3, after cl2, 3d
      -
      -      click cl1 href "https://mermaidjs.github.io/"
      -      click cl2 call printArguments("test1", "test2", test3)
      -      click cl3 call printTask()
      -  
      - - - -``` diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md deleted file mode 100644 index cd1a3f12a3..0000000000 --- a/docs/syntax/gitgraph.md +++ /dev/null @@ -1,1729 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gitgraph.md](../../packages/mermaid/src/docs/syntax/gitgraph.md). - -# Gitgraph Diagrams - -> A Git Graph is a pictorial representation of git commits and git actions(commands) on various branches. - -These kind of diagram are particularly helpful to developers and devops teams to share their Git branching strategies. For example, it makes it easier to visualize how git flow works. - -Mermaid can render Git diagrams - -```mermaid-example - gitGraph - commit - commit - branch develop - checkout develop - commit - commit - checkout main - merge develop - commit - commit -``` - -```mermaid - gitGraph - commit - commit - branch develop - checkout develop - commit - commit - checkout main - merge develop - commit - commit -``` - -In Mermaid, we support the basic git operations like: - -- _commit_ : Representing a new commit on the current branch. -- _branch_ : To create & switch to a new branch, setting it as the current branch. -- _checkout_ : To checking out an existing branch and setting it as the current branch. -- _merge_ : To merge an existing branch onto the current branch. - -With the help of these key git commands, you will be able to draw a gitgraph in Mermaid very easily and quickly. -Entity names are often capitalized, although there is no accepted standard on this, and it is not required in Mermaid. - -## Syntax - -Mermaid syntax for a gitgraph is very straight-forward and simple. It follows a declarative-approach, where each commit is drawn on the timeline in the diagram, in order of its occurrences/presence in code. Basically, it follows the insertion order for each command. - -First thing you do is to declare your diagram type using the **gitgraph** keyword. This `gitgraph` keyword, tells Mermaid that you wish to draw a gitgraph, and parse the diagram code accordingly. - -Each gitgraph, is initialized with **_main_** branch. So unless you create a different branch, by-default the commits will go to the main branch. This is driven with how git works, where in the beginning you always start with the main branch (formerly called as **_master_** branch). And by-default, `main` branch is set as your **_current branch_**. - -You make use of **_commit_** keyword to register a commit on the current branch. Let see how this works: - -A simple gitgraph showing three commits on the default (**_main_**) branch: - -```mermaid-example - gitGraph - commit - commit - commit -``` - -```mermaid - gitGraph - commit - commit - commit -``` - -If you look closely at the previous example, you can see the default branch `main` along with three commits. Also, notice that by default each commit has been given a unique & random ID. What if you wanted to give your own custom ID to a commit? Yes, it is possible to do that with Mermaid. - -### Adding custom commit id - -For a given commit you may specify a custom ID at the time of declaring it using the `id` attribute, followed by `:` and your custom value within a `""` quote. For example: `commit id: "your_custom_id"` - -Let us see how this works with the help of the following diagram: - -```mermaid-example - gitGraph - commit id: "Alpha" - commit id: "Beta" - commit id: "Gamma" -``` - -```mermaid - gitGraph - commit id: "Alpha" - commit id: "Beta" - commit id: "Gamma" -``` - -In this example, we have given our custom IDs to the commits. - -### Modifying commit type - -In Mermaid, a commit can be of three type, which render a bit different in the diagram. These types are: - -- `NORMAL` : Default commit type. Represented by a solid circle in the diagram -- `REVERSE` : To emphasize a commit as a reverse commit. Represented by a crossed solid circle in the diagram. -- `HIGHLIGHT` : To highlight a particular commit in the diagram. Represented by a filled rectangle in the diagram. - -For a given commit you may specify its type at the time of declaring it using the `type` attribute, followed by `:` and the required type option discussed above. For example: `commit type: HIGHLIGHT` - -NOTE: If no commit type is specified, `NORMAL` is picked as default. - -Let us see how these different commit type look with the help of the following diagram: - -```mermaid-example - gitGraph - commit id: "Normal" - commit - commit id: "Reverse" type: REVERSE - commit - commit id: "Highlight" type: HIGHLIGHT - commit -``` - -```mermaid - gitGraph - commit id: "Normal" - commit - commit id: "Reverse" type: REVERSE - commit - commit id: "Highlight" type: HIGHLIGHT - commit -``` - -In this example, we have specified different types to each commit. Also, see how we have included both `id` and `type` together at the time of declaring our commits. - -### Adding Tags - -For a given commit you may decorate it as a **tag**, similar to the concept of tags or release version in git world. -You can attach a custom tag at the time of declaring a commit using the `tag` attribute, followed by `:` and your custom value within `""` quote. For example: `commit tag: "your_custom_tag"` - -Let us see how this works with the help of the following diagram: - -```mermaid-example - gitGraph - commit - commit id: "Normal" tag: "v1.0.0" - commit - commit id: "Reverse" type: REVERSE tag: "RC_1" - commit - commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4" - commit -``` - -```mermaid - gitGraph - commit - commit id: "Normal" tag: "v1.0.0" - commit - commit id: "Reverse" type: REVERSE tag: "RC_1" - commit - commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4" - commit -``` - -In this example, we have given custom tags to the commits. Also, see how we have combined all these attributes in a single commit declaration. You can mix-match these attributes as you like. - -### Create a new branch - -In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage examples: `branch develop`, `branch "cherry-pick"` - -When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. - -Let see this in an example: - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit -``` - -```mermaid - gitGraph - commit - commit - branch develop - commit - commit - commit -``` - -In this example, see how we started with default `main` branch, and pushed two commits on that. -Then we created the `develop` branch, and all commits afterwards are put on the `develop` branch as it became the current branch. - -### Checking out an existing branch - -In Mermaid, in order to switch to an existing branch, you make use of the `checkout` keyword. You also need to provide a name of an existing branch. If no branch is found with the given name, it will result in console error. Usage example: `checkout develop` - -When Mermaid, reads the `checkout` keyword, it finds the given branch and sets it as the current branch. Equivalent to checking out a branch in the Git world. - -Let see modify our previous example: - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -```mermaid - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -In this example, see how we started with default `main` branch, and pushed two commits on that. -Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. -After this we made use of the `checkout` keyword to set the current branch as `main`, and all commit that follow are registered against the current branch, i.e. `main`. - -### Merging two branches - -In Mermaid, in order to merge or join to an existing branch, you make use of the `merge` keyword. You also need to provide the name of an existing branch to merge from. If no branch is found with the given name, it will result in console error. Also, you can only merge two separate branches, and cannot merge a branch with itself. In such case an error is throw. - -Usage example: `merge develop` - -When Mermaid, reads the `merge` keyword, it finds the given branch and its head commit (the last commit on that branch), and joins it with the head commit on the **current branch**. Each merge results in a **_merge commit_**, represented in the diagram with **filled double circle**. - -Let us modify our previous example to merge our two branches: - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit - merge develop - commit - commit -``` - -```mermaid - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit - merge develop - commit - commit -``` - -In this example, see how we started with default `main` branch, and pushed two commits on that. -Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. -After this we made use of the `checkout` keyword to set the current branch as `main`, and all commits that follow are registered against the current branch, i.e. `main`. -After this we merge the `develop` branch onto the current branch `main`, resulting in a merge commit. -Since the current branch at this point is still `main`, the last two commits are registered against that. - -You can also decorate your merge with similar attributes as you did for the commit using: - -- `id`--> To override the default ID with custom ID -- `tag`--> To add a custom tag to your merge commit -- `type`--> To override the default shape of merge commit. Here you can use other commit type mentioned earlier. - -And you can choose to use none, some or all of these attributes together. -For example: `merge develop id: "my_custom_id" tag: "my_custom_tag" type: REVERSE` - -Let us see how this works with the help of the following diagram: - -```mermaid-example - gitGraph - commit id: "1" - commit id: "2" - branch nice_feature - checkout nice_feature - commit id: "3" - checkout main - commit id: "4" - checkout nice_feature - branch very_nice_feature - checkout very_nice_feature - commit id: "5" - checkout main - commit id: "6" - checkout nice_feature - commit id: "7" - checkout main - merge nice_feature id: "customID" tag: "customTag" type: REVERSE - checkout very_nice_feature - commit id: "8" - checkout main - commit id: "9" -``` - -```mermaid - gitGraph - commit id: "1" - commit id: "2" - branch nice_feature - checkout nice_feature - commit id: "3" - checkout main - commit id: "4" - checkout nice_feature - branch very_nice_feature - checkout very_nice_feature - commit id: "5" - checkout main - commit id: "6" - checkout nice_feature - commit id: "7" - checkout main - merge nice_feature id: "customID" tag: "customTag" type: REVERSE - checkout very_nice_feature - commit id: "8" - checkout main - commit id: "9" -``` - -### Cherry Pick commit from another branch - -Similar to how 'git' allows you to cherry-pick a commit from **another branch** onto the **current** branch, Mermaid also supports this functionality. You can also cherry-pick a commit from another branch using the `cherry-pick` keyword. - -To use the `cherry-pick` keyword, you must specify the id using the `id` attribute, followed by `:` and your desired commit id within a `""` quote. For example: - -`cherry-pick id: "your_custom_id"` - -Here, a new commit representing the cherry-pick is created on the current branch, and is visually highlighted in the diagram with a **cherry** and a tag depicting the commit id from which it is cherry-picked from. - -A few important rules to note here are: - -1. You need to provide the `id` for an existing commit to be cherry-picked. If given commit id does not exist it will result in an error. For this, make use of the `commit id:$value` format of declaring commits. See the examples from above. -2. The given commit must not exist on the current branch. The cherry-picked commit must always be a different branch than the current branch. -3. Current branch must have at least one commit, before you can cherry-pick, otherwise it will cause an error is throw. - -Let see an example: - -```mermaid-example - gitGraph - commit id: "ZERO" - branch develop - commit id:"A" - checkout main - commit id:"ONE" - checkout develop - commit id:"B" - checkout main - commit id:"TWO" - cherry-pick id:"A" - commit id:"THREE" - checkout develop - commit id:"C" -``` - -```mermaid - gitGraph - commit id: "ZERO" - branch develop - commit id:"A" - checkout main - commit id:"ONE" - checkout develop - commit id:"B" - checkout main - commit id:"TWO" - cherry-pick id:"A" - commit id:"THREE" - checkout develop - commit id:"C" -``` - -## Gitgraph specific configuration options - -In Mermaid, you have the option to configure the gitgraph diagram. You can configure the following options: - -- `showBranches` : Boolean, default is `true`. If set to `false`, the branches are not shown in the diagram. -- `showCommitLabel` : Boolean, default is `true`. If set to `false`, the commit labels are not shown in the diagram. -- `mainBranchName` : String, default is `main`. The name of the default/root branch. -- `mainBranchOrder` : Position of the main branch in the list of branches. default is `0`, meaning, by default `main` branch is the first in the order. - -Let's look at them one by one. - -## Hiding Branch names and lines - -Sometimes you may want to hide the branch names and lines from the diagram. You can do this by using the `showBranches` keyword. By default its value is `true`. You can set it to `false` using directives. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false}} }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false}} }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -## Commit labels Layout: Rotated or Horizontal - -Mermaid supports two types of commit labels layout. The default layout is **rotated**, which means the labels are placed below the commit circle, rotated at 45 degrees for better readability. This is particularly useful for commits with long labels. - -The other option is **horizontal**, which means the labels are placed below the commit circle centred horizontally, and are not rotated. This is particularly useful for commits with short labels. - -You can change the layout of the commit labels by using the `rotateCommitLabel` keyword in the directive. It defaults to `true`, which means the commit labels are rotated. - -Usage example: Rotated commit labels - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': true}} }%% -gitGraph - commit id: "feat(api): ..." - commit id: "a" - commit id: "b" - commit id: "fix(client): .extra long label.." - branch c2 - commit id: "feat(modules): ..." - commit id: "test(client): ..." - checkout main - commit id: "fix(api): ..." - commit id: "ci: ..." - branch b1 - commit - branch b2 - commit -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': true}} }%% -gitGraph - commit id: "feat(api): ..." - commit id: "a" - commit id: "b" - commit id: "fix(client): .extra long label.." - branch c2 - commit id: "feat(modules): ..." - commit id: "test(client): ..." - checkout main - commit id: "fix(api): ..." - commit id: "ci: ..." - branch b1 - commit - branch b2 - commit -``` - -Usage example: Horizontal commit labels - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': false}} }%% -gitGraph - commit id: "feat(api): ..." - commit id: "a" - commit id: "b" - commit id: "fix(client): .extra long label.." - branch c2 - commit id: "feat(modules): ..." - commit id: "test(client): ..." - checkout main - commit id: "fix(api): ..." - commit id: "ci: ..." - branch b1 - commit - branch b2 - commit -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': false}} }%% -gitGraph - commit id: "feat(api): ..." - commit id: "a" - commit id: "b" - commit id: "fix(client): .extra long label.." - branch c2 - commit id: "feat(modules): ..." - commit id: "test(client): ..." - checkout main - commit id: "fix(api): ..." - commit id: "ci: ..." - branch b1 - commit - branch b2 - commit -``` - -## Hiding commit labels - -Sometimes you may want to hide the commit labels from the diagram. You can do this by using the `showCommitLabel` keyword. By default its value is `true`. You can set it to `false` using directives. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false,'showCommitLabel': false}} }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false,'showCommitLabel': false}} }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -## Customizing main branch name - -Sometimes you may want to customize the name of the main/default branch. You can do this by using the `mainBranchName` keyword. By default its value is `main`. You can set it to any string using directives. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'MetroLine1'}} }%% - gitGraph - commit id:"NewYork" - commit id:"Dallas" - branch MetroLine2 - commit id:"LosAngeles" - commit id:"Chicago" - commit id:"Houston" - branch MetroLine3 - commit id:"Phoenix" - commit type: HIGHLIGHT id:"Denver" - commit id:"Boston" - checkout MetroLine1 - commit id:"Atlanta" - merge MetroLine3 - commit id:"Miami" - commit id:"Washington" - merge MetroLine2 tag:"MY JUNCTION" - commit id:"Boston" - commit id:"Detroit" - commit type:REVERSE id:"SanFrancisco" -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'MetroLine1'}} }%% - gitGraph - commit id:"NewYork" - commit id:"Dallas" - branch MetroLine2 - commit id:"LosAngeles" - commit id:"Chicago" - commit id:"Houston" - branch MetroLine3 - commit id:"Phoenix" - commit type: HIGHLIGHT id:"Denver" - commit id:"Boston" - checkout MetroLine1 - commit id:"Atlanta" - merge MetroLine3 - commit id:"Miami" - commit id:"Washington" - merge MetroLine2 tag:"MY JUNCTION" - commit id:"Boston" - commit id:"Detroit" - commit type:REVERSE id:"SanFrancisco" -``` - -Look at the imaginary railroad map created using Mermaid. Here, we have changed the default main branch name to `MetroLine1`. - -## Customizing branch ordering - -In Mermaid, by default the branches are shown in the order of their definition or appearance in the diagram code. - -Sometimes you may want to customize the order of the branches. You can do this by using the `order` keyword next the branch definition. You can set it to a positive number. - -Mermaid follows the given precedence order of the `order` keyword. - -- Main branch is always shown first as it has default order value of `0`. (unless its order is modified and changed from `0` using the `mainBranchOrder` keyword in the config) -- Next, All branches without an `order` are shown in the order of their appearance in the diagram code. -- Next, All branches with an `order` are shown in the order of their `order` value. - -To fully control the order of all the branches, you must define `order` for all the branches. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true}} }%% - gitGraph - commit - branch test1 order: 3 - branch test2 order: 2 - branch test3 order: 1 - -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true}} }%% - gitGraph - commit - branch test1 order: 3 - branch test2 order: 2 - branch test3 order: 1 - -``` - -Look at the diagram, all the branches are following the order defined. - -Usage example: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%% - gitGraph - commit - branch test1 order: 3 - branch test2 - branch test3 - branch test4 order: 1 - -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%% - gitGraph - commit - branch test1 order: 3 - branch test2 - branch test3 - branch test4 order: 1 - -``` - -Look at the diagram, here, all the branches without a specified order are drawn in their order of definition. -Then, `test4` branch is drawn because the order of `1`. -Then, `main` branch is drawn because the order of `2`. -And, lastly `test1`is drawn because the order of `3`. - -NOTE: Because we have overridden the `mainBranchOrder` to `2`, the `main` branch is not drawn in the beginning, instead follows the ordering. - -Here, we have changed the default main branch name to `MetroLine1`. - -## Themes - -Mermaid supports a bunch of pre-defined themes which you can use to find the right one for you. PS: you can actually override an existing theme's variable to get your own custom theme going. Learn more about theming your diagram [here](../config/theming.md). - -The following are the different pre-defined theme options: - -- `base` -- `forest` -- `dark` -- `default` -- `neutral` - -**NOTE**: To change theme you can either use the `initialize` call or _directives_. Learn more about [directives](../config/directives.md) -Let's put them to use, and see how our sample diagram looks in different themes: - -### Base Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Forest Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Default Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% - gitGraph - commit type:HIGHLIGHT - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% - gitGraph - commit type:HIGHLIGHT - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Dark Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -### Neutral Theme - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%% - gitGraph - commit - branch hotfix - checkout hotfix - commit - branch develop - checkout develop - commit id:"ash" tag:"abc" - branch featureB - checkout featureB - commit type:HIGHLIGHT - checkout main - checkout hotfix - commit type:NORMAL - checkout develop - commit type:REVERSE - checkout featureB - commit - checkout main - merge hotfix - checkout featureB - commit - checkout develop - branch featureA - commit - checkout develop - merge hotfix - checkout featureA - commit - checkout featureB - commit - checkout develop - merge featureA - branch release - checkout release - commit - checkout main - commit - checkout release - merge main - checkout develop - merge release -``` - -## Customize using Theme Variables - -Mermaid allows you to customize your diagram using theme variables which govern the look and feel of various elements of the diagram. - -For understanding let us take a sample diagram with theme `default`, the default values of the theme variables is picked automatically from the theme. Later on we will see how to override the default values of the theme variables. - -See how the default theme is used to set the colors for the branches: - -```mermaid-example -%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit -``` - -```mermaid -%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit -``` - -> #### IMPORTANT: -> -> Mermaid supports the theme variables to override the default values for **up to 8 branches**, i.e., you can set the color/styling of up to 8 branches using theme variables. After this threshold of 8 branches, the theme variables are reused in the cyclic manner, i.e. the 9th branch will use the color/styling of the 1st branch, or the branch at index position '8' will use the color/styling of the branch at index position '0'. -> _More on this in the next section. See examples on **Customizing branch label colors** below_ - -### Customizing branch colors - -You can customize the branch colors using the `git0` to `git7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `git0` variable will drive the value of the first branch, `git1` will drive the value of the second branch and so on. - -NOTE: Default values for these theme variables are picked from the selected theme. If you want to override the default values, you can use the `initialize` call to add your custom theme variable values. - -Example: - -Now let's override the default values for the `git0` to `git3` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'git0': '#ff0000', - 'git1': '#00ff00', - 'git2': '#0000ff', - 'git3': '#ff00ff', - 'git4': '#00ffff', - 'git5': '#ffff00', - 'git6': '#ff00ff', - 'git7': '#00ffff' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'git0': '#ff0000', - 'git1': '#00ff00', - 'git2': '#0000ff', - 'git3': '#ff00ff', - 'git4': '#00ffff', - 'git5': '#ffff00', - 'git6': '#ff00ff', - 'git7': '#00ffff' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the branch colors are changed to the values specified in the theme variables. - -### Customizing branch label colors - -You can customize the branch label colors using the `gitBranchLabel0` to `gitBranchLabel7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `gitBranchLabel0` variable will drive the value of the first branch label, `gitBranchLabel1` will drive the value of the second branch label and so on. - -Lets see how the default theme is used to set the colors for the branch labels: - -Now let's override the default values for the `gitBranchLabel0` to `gitBranchLabel2` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'gitBranchLabel0': '#ffffff', - 'gitBranchLabel1': '#ffffff', - 'gitBranchLabel2': '#ffffff', - 'gitBranchLabel3': '#ffffff', - 'gitBranchLabel4': '#ffffff', - 'gitBranchLabel5': '#ffffff', - 'gitBranchLabel6': '#ffffff', - 'gitBranchLabel7': '#ffffff', - 'gitBranchLabel8': '#ffffff', - 'gitBranchLabel9': '#ffffff' - } } }%% - gitGraph - checkout main - branch branch1 - branch branch2 - branch branch3 - branch branch4 - branch branch5 - branch branch6 - branch branch7 - branch branch8 - branch branch9 - checkout branch1 - commit -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'gitBranchLabel0': '#ffffff', - 'gitBranchLabel1': '#ffffff', - 'gitBranchLabel2': '#ffffff', - 'gitBranchLabel3': '#ffffff', - 'gitBranchLabel4': '#ffffff', - 'gitBranchLabel5': '#ffffff', - 'gitBranchLabel6': '#ffffff', - 'gitBranchLabel7': '#ffffff', - 'gitBranchLabel8': '#ffffff', - 'gitBranchLabel9': '#ffffff' - } } }%% - gitGraph - checkout main - branch branch1 - branch branch2 - branch branch3 - branch branch4 - branch branch5 - branch branch6 - branch branch7 - branch branch8 - branch branch9 - checkout branch1 - commit -``` - -Here, you can see that `branch8` and `branch9` colors and the styles are being picked from branch at index position `0` (`main`) and `1`(`branch1`) respectively, i.e., **branch themeVariables are repeated cyclically**. - -### Customizing Commit colors - -You can customize commit using the `commitLabelColor` and `commitLabelBackground` theme variables for changes in the commit label color and background color respectively. - -Example: -Now let's override the default values for the `commitLabelColor` to `commitLabelBackground` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the commit label color and background color are changed to the values specified in the theme variables. - -### Customizing Commit Label Font Size - -You can customize commit using the `commitLabelFontSize` theme variables for changing in the font soze of the commit label . - -Example: -Now let's override the default values for the `commitLabelFontSize` variable: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00', - 'commitLabelFontSize': '16px' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00', - 'commitLabelFontSize': '16px' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the commit label font size changed. - -### Customizing Tag Label Font Size - -You can customize commit using the `tagLabelFontSize` theme variables for changing in the font soze of the tag label . - -Example: -Now let's override the default values for the `tagLabelFontSize` variable: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00', - 'tagLabelFontSize': '16px' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'commitLabelColor': '#ff0000', - 'commitLabelBackground': '#00ff00', - 'tagLabelFontSize': '16px' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the tag label font size changed. - -### Customizing Tag colors - -You can customize tag using the `tagLabelColor`,`tagLabelBackground` and `tagLabelBorder` theme variables for changes in the tag label color,tag label background color and tag label border respectively. -Example: -Now let's override the default values for the `tagLabelColor`, `tagLabelBackground` and to `tagLabelBorder` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'tagLabelColor': '#ff0000', - 'tagLabelBackground': '#00ff00', - 'tagLabelBorder': '#0000ff' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'tagLabelColor': '#ff0000', - 'tagLabelBackground': '#00ff00', - 'tagLabelBorder': '#0000ff' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the tag colors are changed to the values specified in the theme variables. - -### Customizing Highlight commit colors - -You can customize the highlight commit colors in relation to the branch it is on using the `gitInv0` to `gitInv7` theme variables. Mermaid allows you to set the colors for up-to 8 branches specific highlight commit, where `gitInv0` variable will drive the value of the first branch's highlight commits, `gitInv1` will drive the value of the second branch's highlight commit label and so on. - -Example: - -Now let's override the default values for the `git0` to `git3` variables: - -```mermaid-example - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'gitInv0': '#ff0000' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -```mermaid - %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { - 'gitInv0': '#ff0000' - } } }%% - gitGraph - commit - branch develop - commit tag:"v1.0.0" - commit - checkout main - commit type: HIGHLIGHT - commit - merge develop - commit - branch featureA - commit - -``` - -See how the highlighted commit color on the first branch is changed to the value specified in the theme variable `gitInv0`. diff --git a/docs/syntax/img/Gantt-excluded-days-within.png b/docs/syntax/img/Gantt-excluded-days-within.png deleted file mode 100644 index 2283bf99d8d6ed1b721541ce1f0f8b38d6e19887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79453 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

      eQe(Y%!Xg7+4bDT&Bc0< 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 **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/mindmap.md](../../packages/mermaid/src/docs/syntax/mindmap.md). - -# Mindmap - -> Mindmap: This is an experimental diagram for now. The syntax and properties can change in future releases. The syntax is stable except for the icon integration which is the experimental part. - -"A mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those major ideas." Wikipedia - -### An example of a mindmap. - -```mermaid-example -mindmap - root((mindmap)) - Origins - Long history - ::icon(fa fa-book) - Popularisation - British popular psychology author Tony Buzan - Research - On effectivness
      and eatures - On Automatic creation - Uses - Creative techniques - Strategic planning - Argument mapping - Tools - Pen and paper - Mermaid - -``` - -```mermaid -mindmap - root((mindmap)) - Origins - Long history - ::icon(fa fa-book) - Popularisation - British popular psychology author Tony Buzan - Research - On effectivness
      and eatures - On Automatic creation - Uses - Creative techniques - Strategic planning - Argument mapping - Tools - Pen and paper - Mermaid - -``` - -## Syntax - -The syntax for creating Mindmaps is simple and relies on indentation for setting the levels in the hierarchy. - -In the following example you can see how there are 3 different levels. One with starting at the left of the text and another level with two rows starting at the same column, defining the node A. At the end there is one more level where the text is indented further then the previous lines defining the nodes B and C. - - mindmap - Root - A - B - C - -In summary is a simple text outline where there are one node at the root level called `Root` which has one child `A`. `A` in turn has two children `B`and `C`. In the diagram below we can see this rendered as a mindmap. - -```mermaid-example -mindmap -Root - A - B - C -``` - -```mermaid -mindmap -Root - A - B - C -``` - -In this way we can use a text outline to generate a hierarchical mindmap. - -## Different shapes - -Mermaids mindmaps can show node using different shapes. When specifying a shape for a node the syntax for the is similar to flowchart nodes, with an id followed by the shape definition and with the text within the shape delimiters. Where possible we try/will try to keep the same shapes as for flowcharts even though they are not all supported from the start. - -Mindmap can show the following shapes: - -### Square - -```mermaid-example -mindmap - id[I am a square] -``` - -```mermaid -mindmap - id[I am a square] -``` - -### Rounded square - -```mermaid-example -mindmap - id(I am a rounded square) -``` - -```mermaid -mindmap - id(I am a rounded square) -``` - -### Circle - -```mermaid-example -mindmap - id((I am a circle)) -``` - -```mermaid -mindmap - id((I am a circle)) -``` - -### Bang - -```mermaid-example -mindmap - id))I am a bang(( -``` - -```mermaid -mindmap - id))I am a bang(( -``` - -### Cloud - -```mermaid-example -mindmap - id)I am a cloud( -``` - -```mermaid -mindmap - id)I am a cloud( -``` - -### Default - -```mermaid-example -mindmap - I am the default shape -``` - -```mermaid -mindmap - I am the default shape -``` - -More shapes will be added, beginning with the shapes available in flowcharts. - -# Icons and classes - -## icons - -As with flowcharts you can add icons to your nodes but with an updated syntax. The styling for the font based icons are added during the integration so that they are available for the web page. _This is not something a diagram author can do but has to be done with the site administrator or the integrator_. Once the icon fonts are in place you add them to the mind map nodes using the `::icon()` syntax. You place the classes for the icon within the parenthesis like in the following example where icons for material design and fontawesome 4 are displayed. The intention is that this approach should be used for all diagrams supporting icons. **Experimental feature:** This wider scope is also the reason Mindmaps are experimental as this syntax and approach could change. - -```mermaid-example -mindmap - Root - A - ::icon(fa fa-book) - B(B) - ::icon(mdi mdi-skull-outline) -``` - -```mermaid -mindmap - Root - A - ::icon(fa fa-book) - B(B) - ::icon(mdi mdi-skull-outline) -``` - -## Classes - -Again the syntax for adding classes is similar to flowcharts. You can add classes using a triple colon following a number of css classes separated by space. In the following example one of the nodes has two custom classes attached urgent turning the background red and the text white and large increasing the font size: - -```mermaid-example -mindmap - Root - A[A] - :::urgent large - B(B) - C -``` - -```mermaid -mindmap - Root - A[A] - :::urgent large - B(B) - C -``` - -_These classes needs top be supplied by the site administrator._ - -## Unclear indentation - -The actual indentation does not really matter only compared with the previous rows. If we take the previous example and disrupt it a little we can se how the calculations are performed. Let us start with placing C with a smaller indentation than `B`but larger then `A`. - - mindmap - Root - A - B - C - -This outline is unclear as `B` clearly is a child of `A` but when we move on to `C` the clarity is lost. `C` is not a child of `B` with a higher indentation nor does it have the same indentation as `B`. The only thing that is clear is that the first node with smaller indentation, indicating a parent, is A. Then Mermaid relies on this known truth and compensates for the unclear indentation and selects `A` as a parent of `C` leading till the same diagram with `B` and `C` as siblings. - -```mermaid-example -mindmap -Root - A - B - C -``` - -```mermaid -mindmap -Root - A - B - C -``` diff --git a/docs/syntax/pie.md b/docs/syntax/pie.md deleted file mode 100644 index 6801b3619f..0000000000 --- a/docs/syntax/pie.md +++ /dev/null @@ -1,66 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/pie.md](../../packages/mermaid/src/docs/syntax/pie.md). - -# Pie chart diagrams - -> A pie chart (or a circle chart) is a circular statistical graphic, which is divided into slices to illustrate numerical proportion. In a pie chart, the arc length of each slice (and consequently its central angle and area), is proportional to the quantity it represents. While it is named for its resemblance to a pie which has been sliced, there are variations on the way it can be presented. The earliest known pie chart is generally credited to William Playfair's Statistical Breviary of 1801 -> \-Wikipedia - -Mermaid can render Pie Chart diagrams. - -```mermaid-example -pie title Pets adopted by volunteers - "Dogs" : 386 - "Cats" : 85 - "Rats" : 15 -``` - -```mermaid -pie title Pets adopted by volunteers - "Dogs" : 386 - "Cats" : 85 - "Rats" : 15 -``` - -## Syntax - -Drawing a pie chart is really simple in mermaid. - -- Start with `pie` keyword to begin the diagram - - `showData` to render the actual data values after the legend text. This is **_OPTIONAL_** -- Followed by `title` keyword and its value in string to give a title to the pie-chart. This is **_OPTIONAL_** -- Followed by dataSet. Pie slices will be ordered clockwise in the same order as the labels. - - `label` for a section in the pie diagram within `" "` quotes. - - Followed by `:` colon as separator - - Followed by `positive numeric value` (supported upto two decimal places) - -\[pie] \[showData] (OPTIONAL) -\[title] \[titlevalue] (OPTIONAL) -"\[datakey1]" : \[dataValue1] -"\[datakey2]" : \[dataValue2] -"\[datakey3]" : \[dataValue3] -. -. - -## Example - -```mermaid-example -pie showData - title Key elements in Product X - "Calcium" : 42.96 - "Potassium" : 50.05 - "Magnesium" : 10.01 - "Iron" : 5 -``` - -```mermaid -pie showData - title Key elements in Product X - "Calcium" : 42.96 - "Potassium" : 50.05 - "Magnesium" : 10.01 - "Iron" : 5 -``` diff --git a/docs/syntax/requirementDiagram.md b/docs/syntax/requirementDiagram.md deleted file mode 100644 index f8a0cafa95..0000000000 --- a/docs/syntax/requirementDiagram.md +++ /dev/null @@ -1,243 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/requirementDiagram.md](../../packages/mermaid/src/docs/syntax/requirementDiagram.md). - -# Requirement Diagram - -> A Requirement diagram provides a visualization for requirements and their connections, to each other and other documented elements. The modeling specs follow those defined by SysML v1.6. - -Rendering requirements is straightforward. - -```mermaid-example - requirementDiagram - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - element test_entity { - type: simulation - } - - test_entity - satisfies -> test_req -``` - -```mermaid - requirementDiagram - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - element test_entity { - type: simulation - } - - test_entity - satisfies -> test_req -``` - -## Syntax - -There are three types of components to a requirement diagram: requirement, element, and relationship. - -The grammar for defining each is defined below. Words denoted in angle brackets, such as ``, are enumerated keywords that have options elaborated in a table. `user_defined_...` is use in any place where user input is expected. - -An important note on user text: all input can be surrounded in quotes or not. For example, both `Id: "here is an example"` and `Id: here is an example` are both valid. However, users must be careful with unquoted input. The parser will fail if another keyword is detected. - -### Requirement - -A requirement definition contains a requirement type, name, id, text, risk, and verification method. The syntax follows: - - user_defined_name { - id: user_defined_id - text: user_defined text - risk: - verifymethod: - } - -Type, risk, and method are enumerations defined in SysML. - -| Keyword | Options | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| Type | requirement, functionalRequirement, interfaceRequirement, performanceRequirement, physicalRequirement, designConstraint | -| Risk | Low, Medium, High | -| VerificationMethod | Analysis, Inspection, Test, Demonstration | - -### Element - -An element definition contains an element name, type, and document reference. These three are all user defined. The element feature is intended to be lightweight but allow requirements to be connected to portions of other documents. - - element user_defined_name { - type: user_defined_type - docref: user_defined_ref - } - -### Relationship - -Relationships are comprised of a source node, destination node, and relationship type. - -Each follows the definition format of - - {name of source} - -> {name of destination} - -or - - {name of destination} <- - {name of source} - -"name of source" and "name of destination" should be names of requirement or element nodes defined elsewhere. - -A relationship type can be one of contains, copies, derives, satisfies, verifies, refines, or traces. - -Each relationship is labeled in the diagram. - -## Larger Example - -This example uses all features of the diagram. - -```mermaid-example - requirementDiagram - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - functionalRequirement test_req2 { - id: 1.1 - text: the second test text. - risk: low - verifymethod: inspection - } - - performanceRequirement test_req3 { - id: 1.2 - text: the third test text. - risk: medium - verifymethod: demonstration - } - - interfaceRequirement test_req4 { - id: 1.2.1 - text: the fourth test text. - risk: medium - verifymethod: analysis - } - - physicalRequirement test_req5 { - id: 1.2.2 - text: the fifth test text. - risk: medium - verifymethod: analysis - } - - designConstraint test_req6 { - id: 1.2.3 - text: the sixth test text. - risk: medium - verifymethod: analysis - } - - element test_entity { - type: simulation - } - - element test_entity2 { - type: word doc - docRef: reqs/test_entity - } - - element test_entity3 { - type: "test suite" - docRef: github.com/all_the_tests - } - - - test_entity - satisfies -> test_req2 - test_req - traces -> test_req2 - test_req - contains -> test_req3 - test_req3 - contains -> test_req4 - test_req4 - derives -> test_req5 - test_req5 - refines -> test_req6 - test_entity3 - verifies -> test_req5 - test_req <- copies - test_entity2 -``` - -```mermaid - requirementDiagram - - requirement test_req { - id: 1 - text: the test text. - risk: high - verifymethod: test - } - - functionalRequirement test_req2 { - id: 1.1 - text: the second test text. - risk: low - verifymethod: inspection - } - - performanceRequirement test_req3 { - id: 1.2 - text: the third test text. - risk: medium - verifymethod: demonstration - } - - interfaceRequirement test_req4 { - id: 1.2.1 - text: the fourth test text. - risk: medium - verifymethod: analysis - } - - physicalRequirement test_req5 { - id: 1.2.2 - text: the fifth test text. - risk: medium - verifymethod: analysis - } - - designConstraint test_req6 { - id: 1.2.3 - text: the sixth test text. - risk: medium - verifymethod: analysis - } - - element test_entity { - type: simulation - } - - element test_entity2 { - type: word doc - docRef: reqs/test_entity - } - - element test_entity3 { - type: "test suite" - docRef: github.com/all_the_tests - } - - - test_entity - satisfies -> test_req2 - test_req - traces -> test_req2 - test_req - contains -> test_req3 - test_req3 - contains -> test_req4 - test_req4 - derives -> test_req5 - test_req5 - refines -> test_req6 - test_entity3 - verifies -> test_req5 - test_req <- copies - test_entity2 -``` diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md deleted file mode 100644 index 4e89eb0c60..0000000000 --- a/docs/syntax/sequenceDiagram.md +++ /dev/null @@ -1,762 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/sequenceDiagram.md](../../packages/mermaid/src/docs/syntax/sequenceDiagram.md). - -# Sequence diagrams - -> A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order. - -Mermaid can render sequence diagrams. - -```mermaid-example -sequenceDiagram - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -> **Note** -> A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. -> -> If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. - -## Syntax - -### Participants - -The participants can be defined implicitly as in the first example on this page. The participants or actors are -rendered in order of appearance in the diagram source text. Sometimes you might want to show the participants in a -different order than how they appear in the first message. It is possible to specify the actor's order of -appearance by doing the following: - -```mermaid-example -sequenceDiagram - participant Alice - participant Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -```mermaid -sequenceDiagram - participant Alice - participant Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -### Actors - -If you specifically want to use the actor symbol instead of a rectangle with text you can do so by using actor statements as per below. - -```mermaid-example -sequenceDiagram - actor Alice - actor Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -```mermaid -sequenceDiagram - actor Alice - actor Bob - Alice->>Bob: Hi Bob - Bob->>Alice: Hi Alice -``` - -### Aliases - -The actor can have a convenient identifier and a descriptive label. - -```mermaid-example -sequenceDiagram - participant A as Alice - participant J as John - A->>J: Hello John, how are you? - J->>A: Great! -``` - -```mermaid -sequenceDiagram - participant A as Alice - participant J as John - A->>J: Hello John, how are you? - J->>A: Great! -``` - -## Messages - -Messages can be of two displayed either solid or with a dotted line. - - [Actor][Arrow][Actor]:Message text - -There are six types of arrows currently supported: - -| Type | Description | -| ---- | ------------------------------------------------ | -| -> | Solid line without arrow | -| --> | Dotted line without arrow | -| ->> | Solid line with arrowhead | -| -->> | Dotted line with arrowhead | -| -x | Solid line with a cross at the end | -| --x | Dotted line with a cross at the end. | -| -) | Solid line with an open arrow at the end (async) | -| --) | Dotted line with a open arrow at the end (async) | - -## Activations - -It is possible to activate and deactivate an actor. (de)activation can be dedicated declarations: - -```mermaid-example -sequenceDiagram - Alice->>John: Hello John, how are you? - activate John - John-->>Alice: Great! - deactivate John -``` - -```mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - activate John - John-->>Alice: Great! - deactivate John -``` - -There is also a shortcut notation by appending `+`/`-` suffix to the message arrow: - -```mermaid-example -sequenceDiagram - Alice->>+John: Hello John, how are you? - John-->>-Alice: Great! -``` - -```mermaid -sequenceDiagram - Alice->>+John: Hello John, how are you? - John-->>-Alice: Great! -``` - -Activations can be stacked for same actor: - -```mermaid-example -sequenceDiagram - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - John-->>-Alice: I feel great! -``` - -```mermaid -sequenceDiagram - Alice->>+John: Hello John, how are you? - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - John-->>-Alice: I feel great! -``` - -## Notes - -It is possible to add notes to a sequence diagram. This is done by the notation -Note \[ right of | left of | over ] \[Actor]: Text in note content - -See the example below: - -```mermaid-example -sequenceDiagram - participant John - Note right of John: Text in note -``` - -```mermaid -sequenceDiagram - participant John - Note right of John: Text in note -``` - -It is also possible to create notes spanning two participants: - -```mermaid-example -sequenceDiagram - Alice->John: Hello John, how are you? - Note over Alice,John: A typical interaction -``` - -```mermaid -sequenceDiagram - Alice->John: Hello John, how are you? - Note over Alice,John: A typical interaction -``` - -## Loops - -It is possible to express loops in a sequence diagram. This is done by the notation - - loop Loop text - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - Alice->John: Hello John, how are you? - loop Every minute - John-->Alice: Great! - end -``` - -```mermaid -sequenceDiagram - Alice->John: Hello John, how are you? - loop Every minute - John-->Alice: Great! - end -``` - -## Alt - -It is possible to express alternative paths in a sequence diagram. This is done by the notation - - alt Describing text - ... statements ... - else - ... statements ... - end - -or if there is sequence that is optional (if without else). - - opt Describing text - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - opt Extra response - Bob->>Alice: Thanks for asking - end -``` - -```mermaid -sequenceDiagram - Alice->>Bob: Hello Bob, how are you? - alt is sick - Bob->>Alice: Not so good :( - else is well - Bob->>Alice: Feeling fresh like a daisy - end - opt Extra response - Bob->>Alice: Thanks for asking - end -``` - -## Parallel - -It is possible to show actions that are happening in parallel. - -This is done by the notation - - par [Action 1] - ... statements ... - and [Action 2] - ... statements ... - and [Action N] - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - par Alice to Bob - Alice->>Bob: Hello guys! - and Alice to John - Alice->>John: Hello guys! - end - Bob-->>Alice: Hi Alice! - John-->>Alice: Hi Alice! -``` - -```mermaid -sequenceDiagram - par Alice to Bob - Alice->>Bob: Hello guys! - and Alice to John - Alice->>John: Hello guys! - end - Bob-->>Alice: Hi Alice! - John-->>Alice: Hi Alice! -``` - -It is also possible to nest parallel blocks. - -```mermaid-example -sequenceDiagram - par Alice to Bob - Alice->>Bob: Go help John - and Alice to John - Alice->>John: I want this done today - par John to Charlie - John->>Charlie: Can we do this today? - and John to Diana - John->>Diana: Can you help us today? - end - end -``` - -```mermaid -sequenceDiagram - par Alice to Bob - Alice->>Bob: Go help John - and Alice to John - Alice->>John: I want this done today - par John to Charlie - John->>Charlie: Can we do this today? - and John to Diana - John->>Diana: Can you help us today? - end - end -``` - -## Critical Region - -It is possible to show actions that must happen automatically with conditional handling of circumstances. - -This is done by the notation - - critical [Action that must be performed] - ... statements ... - option [Circumstance A] - ... statements ... - option [Circumstance B] - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - option Network timeout - Service-->Service: Log error - option Credentials rejected - Service-->Service: Log different error - end -``` - -```mermaid -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - option Network timeout - Service-->Service: Log error - option Credentials rejected - Service-->Service: Log different error - end -``` - -It is also possible to have no options at all - -```mermaid-example -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - end -``` - -```mermaid -sequenceDiagram - critical Establish a connection to the DB - Service-->DB: connect - end -``` - -This critical block can also be nested, equivalently to the `par` statement as seen above. - -## Break - -It is possible to indicate a stop of the sequence within the flow (usually used to model exceptions). - -This is done by the notation - - break [something happened] - ... statements ... - end - -See the example below: - -```mermaid-example -sequenceDiagram - Consumer-->API: Book something - API-->BookingService: Start booking process - break when the booking process fails - API-->Consumer: show failure - end - API-->BillingService: Start billing process -``` - -```mermaid -sequenceDiagram - Consumer-->API: Book something - API-->BookingService: Start booking process - break when the booking process fails - API-->Consumer: show failure - end - API-->BillingService: Start billing process -``` - -## Background Highlighting - -It is possible to highlight flows by providing colored background rects. This is done by the notation - -The colors are defined using rgb and rgba syntax. - - rect rgb(0, 255, 0) - ... content ... - end - - - - rect rgba(0, 0, 255, .1) - ... content ... - end - -See the examples below: - -```mermaid-example -sequenceDiagram - participant Alice - participant John - - rect rgb(191, 223, 255) - note right of Alice: Alice calls John. - Alice->>+John: Hello John, how are you? - rect rgb(200, 150, 255) - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - end - John-->>-Alice: I feel great! - end - Alice ->>+ John: Did you want to go to the game tonight? - John -->>- Alice: Yeah! See you there. - -``` - -```mermaid -sequenceDiagram - participant Alice - participant John - - rect rgb(191, 223, 255) - note right of Alice: Alice calls John. - Alice->>+John: Hello John, how are you? - rect rgb(200, 150, 255) - Alice->>+John: John, can you hear me? - John-->>-Alice: Hi Alice, I can hear you! - end - John-->>-Alice: I feel great! - end - Alice ->>+ John: Did you want to go to the game tonight? - John -->>- Alice: Yeah! See you there. - -``` - -## Comments - -Comments can be entered within a sequence diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax - -```mermaid-example -sequenceDiagram - Alice->>John: Hello John, how are you? - %% this is a comment - John-->>Alice: Great! -``` - -```mermaid -sequenceDiagram - Alice->>John: Hello John, how are you? - %% this is a comment - John-->>Alice: Great! -``` - -## Entity codes to escape characters - -It is possible to escape characters using the syntax exemplified here. - -```mermaid-example -sequenceDiagram - A->>B: I #9829; you! - B->>A: I #9829; you #infin; times more! -``` - -```mermaid -sequenceDiagram - A->>B: I #9829; you! - B->>A: I #9829; you #infin; times more! -``` - -Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. - -Because semicolons can be used instead of line breaks to define the markup, you need to use `#59;` to include a semicolon in message text. - -## sequenceNumbers - -It is possible to get a sequence number attached to each arrow in a sequence diagram. This can be configured when adding mermaid to the website as shown below: - -```html - -``` - -It can also be be turned on via the diagram code as in the diagram: - -```mermaid-example -sequenceDiagram - autonumber - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram - autonumber - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -## Actor Menus - -Actors can have popup-menus containing individualized links to external pages. For example, if an actor represented a web service, useful links might include a link to the service health dashboard, repo containing the code for the service, or a wiki page describing the service. - -This can be configured by adding one or more link lines with the format: - - link : @ - -```mermaid-example -sequenceDiagram - participant Alice - participant John - link Alice: Dashboard @ https://dashboard.contoso.com/alice - link Alice: Wiki @ https://wiki.contoso.com/alice - link John: Dashboard @ https://dashboard.contoso.com/john - link John: Wiki @ https://wiki.contoso.com/john - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid -sequenceDiagram - participant Alice - participant John - link Alice: Dashboard @ https://dashboard.contoso.com/alice - link Alice: Wiki @ https://wiki.contoso.com/alice - link John: Dashboard @ https://dashboard.contoso.com/john - link John: Wiki @ https://wiki.contoso.com/john - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -#### Advanced Menu Syntax - -There is an advanced syntax that relies on JSON formatting. If you are comfortable with JSON format, then this exists as well. - -This can be configured by adding the links lines with the format: - - links : - -An example is below: - -```mermaid-example -sequenceDiagram - participant Alice - participant John - links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} - links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -```mermaid -sequenceDiagram - participant Alice - participant John - links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} - links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} - Alice->>John: Hello John, how are you? - John-->>Alice: Great! - Alice-)John: See you later! -``` - -## Styling - -Styling of a sequence diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/sequence.scss - -### Classes used - -| Class | Description | -| ------------ | ----------------------------------------------------------- | -| actor | Style for the actor box at the top of the diagram. | -| text.actor | Styles for text in the actor box at the top of the diagram. | -| actor-line | The vertical line for an actor. | -| messageLine0 | Styles for the solid message line. | -| messageLine1 | Styles for the dotted message line. | -| messageText | Defines styles for the text on the message arrows. | -| labelBox | Defines styles label to left in a loop. | -| labelText | Styles for the text in label for loops. | -| loopText | Styles for the text in the loop box. | -| loopLine | Defines styles for the lines in the loop box. | -| note | Styles for the note box. | -| noteText | Styles for the text on in the note boxes. | - -### Sample stylesheet - -```css -body { - background: white; -} - -.actor { - stroke: #ccccff; - fill: #ececff; -} -text.actor { - fill: black; - stroke: none; - font-family: Helvetica; -} - -.actor-line { - stroke: grey; -} - -.messageLine0 { - stroke-width: 1.5; - stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; - stroke: black; -} - -.messageLine1 { - stroke-width: 1.5; - stroke-dasharray: '2 2'; - stroke: black; -} - -#arrowhead { - fill: black; -} - -.messageText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-size: 14px; -} - -.labelBox { - stroke: #ccccff; - fill: #ececff; -} - -.labelText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; -} - -.loopText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; -} - -.loopLine { - stroke-width: 2; - stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; - stroke: #ccccff; -} - -.note { - stroke: #decc93; - fill: #fff5ad; -} - -.noteText { - fill: black; - stroke: none; - font-family: 'trebuchet ms', verdana, arial; - font-size: 14px; -} -``` - -## Configuration - -Is it possible to adjust the margins for rendering the sequence diagram. - -This is done by defining `mermaid.sequenceConfig` or by the CLI to use a json file with the configuration. -How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.md) page. -`mermaid.sequenceConfig` can be set to a JSON string with config parameters or the corresponding object. - -```javascript -mermaid.sequenceConfig = { - diagramMarginX: 50, - diagramMarginY: 10, - boxTextMargin: 5, - noteMargin: 10, - messageMargin: 35, - mirrorActors: true, -}; -``` - -### Possible configuration parameters: - -| Parameter | Description | Default value | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ | -| mirrorActors | Turns on/off the rendering of actors below the diagram as well as above it | false | -| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | -| actorFontSize | Sets the font size for the actor's description | 14 | -| actorFontFamily | Sets the font family for the actor's description | "Open Sans", sans-serif | -| actorFontWeight | Sets the font weight for the actor's description | "Open Sans", sans-serif | -| noteFontSize | Sets the font size for actor-attached notes | 14 | -| noteFontFamily | Sets the font family for actor-attached notes | "trebuchet ms", verdana, arial | -| noteFontWeight | Sets the font weight for actor-attached notes | "trebuchet ms", verdana, arial | -| noteAlign | Sets the text alignment for text in actor-attached notes | center | -| messageFontSize | Sets the font size for actor<->actor messages | 16 | -| messageFontFamily | Sets the font family for actor<->actor messages | "trebuchet ms", verdana, arial | -| messageFontWeight | Sets the font weight for actor<->actor messages | "trebuchet ms", verdana, arial | diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md deleted file mode 100644 index ec91411f61..0000000000 --- a/docs/syntax/stateDiagram.md +++ /dev/null @@ -1,450 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/stateDiagram.md](../../packages/mermaid/src/docs/syntax/stateDiagram.md). - -# State diagrams - -> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction." Wikipedia - -Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml. - -```mermaid-example -stateDiagram-v2 - [*] --> Still - Still --> [*] - - Still --> Moving - Moving --> Still - Moving --> Crash - Crash --> [*] -``` - -```mermaid -stateDiagram-v2 - [*] --> Still - Still --> [*] - - Still --> Moving - Moving --> Still - Moving --> Crash - Crash --> [*] -``` - -Older renderer: - -```mermaid-example -stateDiagram - [*] --> Still - Still --> [*] - - Still --> Moving - Moving --> Still - Moving --> Crash - Crash --> [*] -``` - -```mermaid -stateDiagram - [*] --> Still - Still --> [*] - - Still --> Moving - Moving --> Still - Moving --> Crash - Crash --> [*] -``` - -In state diagrams systems are described in terms of its states and how the systems state can change to another state via a transitions. The example diagram above shows three states **Still**, **Moving** and **Crash**. You start in the state of Still. From Still you can change the state to Moving. In Moving you can change the state either back to Still or to Crash. There is no transition from Still to Crash. - -## States - -A state can be declared in multiple ways. The simplest way is to define a state id as a description. - -```mermaid-example -stateDiagram-v2 - s1 -``` - -```mermaid -stateDiagram-v2 - s1 -``` - -Another way is by using the state keyword with a description as per below: - -```mermaid-example -stateDiagram-v2 - state "This is a state description" as s2 -``` - -```mermaid -stateDiagram-v2 - state "This is a state description" as s2 -``` - -Another way to define a state with a description is to define the state id followed by a colon and the description: - -```mermaid-example -stateDiagram-v2 - s2 : This is a state description -``` - -```mermaid -stateDiagram-v2 - s2 : This is a state description -``` - -## Transitions - -Transitions are path/edges when one state passes into another. This is represented using text arrow, "-->". - -When you define a transition between two states and the states are not already defined the undefined states are defined with the id from the transition. You can later add descriptions to states defined this way. - -```mermaid-example -stateDiagram-v2 - s1 --> s2 -``` - -```mermaid -stateDiagram-v2 - s1 --> s2 -``` - -It is possible to add text to a transition. To describe what it represents. - -```mermaid-example -stateDiagram-v2 - s1 --> s2: A transition -``` - -```mermaid -stateDiagram-v2 - s1 --> s2: A transition -``` - -## Start and End - -There are two special states indicating the start and stop of the diagram. These are written with the \[\*] syntax and the direction of the transition to it defines it either as a start or a stop state. - -```mermaid-example -stateDiagram-v2 - [*] --> s1 - s1 --> [*] -``` - -```mermaid -stateDiagram-v2 - [*] --> s1 - s1 --> [*] -``` - -## Composite states - -In a real world use of state diagrams you often end up with diagrams that are multi-dimensional as one state can -have several internal states. These are called composite states in this terminology. - -In order to define a composite state you need to use the state keyword followed by an id and the body of the composite state between {}. See the example below: - -```mermaid-example -stateDiagram-v2 - [*] --> First - state First { - [*] --> second - second --> [*] - } -``` - -```mermaid -stateDiagram-v2 - [*] --> First - state First { - [*] --> second - second --> [*] - } -``` - -You can do this in several layers: - -```mermaid-example -stateDiagram-v2 - [*] --> First - - state First { - [*] --> Second - - state Second { - [*] --> second - second --> Third - - state Third { - [*] --> third - third --> [*] - } - } - } -``` - -```mermaid -stateDiagram-v2 - [*] --> First - - state First { - [*] --> Second - - state Second { - [*] --> second - second --> Third - - state Third { - [*] --> third - third --> [*] - } - } - } -``` - -You can also define transitions also between composite states: - -```mermaid-example -stateDiagram-v2 - [*] --> First - First --> Second - First --> Third - - state First { - [*] --> fir - fir --> [*] - } - state Second { - [*] --> sec - sec --> [*] - } - state Third { - [*] --> thi - thi --> [*] - } -``` - -```mermaid -stateDiagram-v2 - [*] --> First - First --> Second - First --> Third - - state First { - [*] --> fir - fir --> [*] - } - state Second { - [*] --> sec - sec --> [*] - } - state Third { - [*] --> thi - thi --> [*] - } -``` - -_You can not define transitions between internal states belonging to different composite states_ - -## Choice - -Sometimes you need to model a choice between two or more paths, you can do so using <\>. - -```mermaid-example -stateDiagram-v2 - state if_state <> - [*] --> IsPositive - IsPositive --> if_state - if_state --> False: if n < 0 - if_state --> True : if n >= 0 -``` - -```mermaid -stateDiagram-v2 - state if_state <> - [*] --> IsPositive - IsPositive --> if_state - if_state --> False: if n < 0 - if_state --> True : if n >= 0 -``` - -## Forks - -It is possible to specify a fork in the diagram using <\> <\>. - -```mermaid-example - stateDiagram-v2 - state fork_state <> - [*] --> fork_state - fork_state --> State2 - fork_state --> State3 - - state join_state <> - State2 --> join_state - State3 --> join_state - join_state --> State4 - State4 --> [*] -``` - -```mermaid - stateDiagram-v2 - state fork_state <> - [*] --> fork_state - fork_state --> State2 - fork_state --> State3 - - state join_state <> - State2 --> join_state - State3 --> join_state - join_state --> State4 - State4 --> [*] -``` - -## Notes - -Sometimes nothing says it better then a Post-it note. That is also the case in state diagrams. - -Here you can choose to put the note to the _right of_ or to the _left of_ a node. - -```mermaid-example - stateDiagram-v2 - State1: The state with a note - note right of State1 - Important information! You can write - notes. - end note - State1 --> State2 - note left of State2 : This is the note to the left. -``` - -```mermaid - stateDiagram-v2 - State1: The state with a note - note right of State1 - Important information! You can write - notes. - end note - State1 --> State2 - note left of State2 : This is the note to the left. -``` - -## Concurrency - -As in plantUml you can specify concurrency using the -- symbol. - -```mermaid-example -stateDiagram-v2 - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvScrollLockPressed - ScrollLockOn --> ScrollLockOff : EvScrollLockPressed - } -``` - -```mermaid -stateDiagram-v2 - [*] --> Active - - state Active { - [*] --> NumLockOff - NumLockOff --> NumLockOn : EvNumLockPressed - NumLockOn --> NumLockOff : EvNumLockPressed - -- - [*] --> CapsLockOff - CapsLockOff --> CapsLockOn : EvCapsLockPressed - CapsLockOn --> CapsLockOff : EvCapsLockPressed - -- - [*] --> ScrollLockOff - ScrollLockOff --> ScrollLockOn : EvScrollLockPressed - ScrollLockOn --> ScrollLockOff : EvScrollLockPressed - } -``` - -## Setting the direction of the diagram - -With state diagrams you can use the direction statement to set the direction which the diagram will render like in this example. - -```mermaid-example -stateDiagram - direction LR - [*] --> A - A --> B - B --> C - state B { - direction LR - a --> b - } - B --> D -``` - -```mermaid -stateDiagram - direction LR - [*] --> A - A --> B - B --> C - state B { - direction LR - a --> b - } - B --> D -``` - -## Comments - -Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax - -```mermaid-example -stateDiagram-v2 - [*] --> Still - Still --> [*] -%% this is a comment - Still --> Moving - Moving --> Still %% another comment - Moving --> Crash - Crash --> [*] -``` - -```mermaid -stateDiagram-v2 - [*] --> Still - Still --> [*] -%% this is a comment - Still --> Moving - Moving --> Still %% another comment - Moving --> Crash - Crash --> [*] -``` - -## Styling - -Styling of the a state diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/state.scss - -## Spaces in state names - -Spaces can be added to a state by defining it at the top and referencing the acronym later. - -```mermaid-example -stateDiagram-v2 - Yswsii: Your state with spaces in it - [*] --> Yswsii -``` - -```mermaid -stateDiagram-v2 - Yswsii: Your state with spaces in it - [*] --> Yswsii -``` diff --git a/docs/syntax/userJourney.md b/docs/syntax/userJourney.md deleted file mode 100644 index 73fcb7468e..0000000000 --- a/docs/syntax/userJourney.md +++ /dev/null @@ -1,40 +0,0 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/userJourney.md](../../packages/mermaid/src/docs/syntax/userJourney.md). - -# User Journey Diagram - -> User journeys describe at a high level of detail exactly what steps different users take to complete a specific task within a system, application or website. This technique shows the current (as-is) user workflow, and reveals areas of improvement for the to-be workflow. (Wikipedia) - -Mermaid can render user journey diagrams: - -```mermaid-example -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -```mermaid -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` - -Each user journey is split into sections, these describe the part of the task -the user is trying to complete. - -Tasks syntax is `Task name: : ` From 7d3a0577d273e110da6637c2e3c3c91eaf1b4be0 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 20 Nov 2022 22:38:07 +0530 Subject: [PATCH 0688/1038] chore: Replace lodash with lodash-es --- packages/mermaid/package.json | 6 +++--- .../flowchart/parser/flow-direction.spec.js | 2 +- .../src/diagrams/flowchart/parser/subgraph.spec.js | 2 +- packages/mermaid/src/mermaidAPI.ts | 2 +- packages/mermaid/src/utils.spec.js | 2 +- packages/mermaid/src/utils.ts | 2 +- pnpm-lock.yaml | 14 ++++++++++---- 7 files changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 0b4c7aad1f..c3864226d7 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -59,7 +59,7 @@ "fast-clone": "^1.5.13", "graphlib": "^2.1.8", "khroma": "^2.0.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "moment-mini": "^2.24.0", "non-layered-tidy-tree-layout": "^2.0.2", "stylis": "^4.1.2", @@ -69,7 +69,7 @@ "@types/d3": "^7.4.0", "@types/dompurify": "^2.4.0", "@types/jsdom": "^20.0.1", - "@types/lodash": "^4.14.188", + "@types/lodash-es": "^4.17.6", "@types/micromatch": "^4.0.2", "@types/prettier": "^2.7.1", "@types/stylis": "^4.0.2", @@ -104,4 +104,4 @@ "**/*.css", "**/*.scss" ] -} +} \ No newline at end of file diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js index 6b741fc12f..6cba33f885 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js @@ -1,6 +1,6 @@ import flowDb from '../flowDb'; import flow from './flow'; -import filter from 'lodash/filter'; +import filter from 'lodash-es/filter'; import { setConfig } from '../../../config'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js index aa8e9217fe..6fec233e76 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js @@ -1,6 +1,6 @@ import flowDb from '../flowDb'; import flow from './flow'; -import filter from 'lodash/filter'; +import filter from 'lodash-es/filter'; import { setConfig } from '../../../config'; setConfig({ diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 25ba03f874..2732836279 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -29,7 +29,7 @@ import utils, { directiveSanitizer } from './utils'; import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; -import isEmpty from 'lodash/isEmpty'; +import isEmpty from 'lodash-es/isEmpty'; // diagram names that support classDef statements const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram', 'stateDiagram-v2']; diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js index 4a511b3c04..ca2dfeab99 100644 --- a/packages/mermaid/src/utils.spec.js +++ b/packages/mermaid/src/utils.spec.js @@ -3,7 +3,7 @@ import utils from './utils'; import assignWithDepth from './assignWithDepth'; import { detectType } from './diagram-api/detectType'; import { addDiagrams } from './diagram-api/diagram-orchestration'; -import memoize from 'lodash/memoize'; +import memoize from 'lodash-es/memoize'; addDiagrams(); describe('when assignWithDepth: should merge objects within objects', function () { diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 3eecd5f4fb..f8b56a596c 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -21,7 +21,7 @@ import { log } from './logger'; import { detectType } from './diagram-api/detectType'; import assignWithDepth from './assignWithDepth'; import { MermaidConfig } from './config.type'; -import memoize from 'lodash/memoize'; +import memoize from 'lodash-es/memoize'; // Effectively an enum of the supported curve types, accessible by name const d3CurveTypes = { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3b97f67a3..030a33283a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -187,7 +187,7 @@ importers: khroma: specifier: ^2.0.0 version: 2.0.0 - lodash: + lodash-es: specifier: ^4.17.21 version: 4.17.21 moment-mini: @@ -212,9 +212,9 @@ importers: '@types/jsdom': specifier: ^20.0.1 version: 20.0.1 - '@types/lodash': - specifier: ^4.14.188 - version: 4.14.188 + '@types/lodash-es': + specifier: ^4.17.6 + version: 4.17.6 '@types/micromatch': specifier: ^4.0.2 version: 4.0.2 @@ -2488,6 +2488,12 @@ packages: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} dev: true + /@types/lodash-es/4.17.6: + resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} + dependencies: + '@types/lodash': 4.14.188 + dev: true + /@types/lodash/4.14.188: resolution: {integrity: sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==} dev: true From 931661ed67e3bb05b20d072a63b9200fd30a1a90 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 20 Nov 2022 22:46:12 +0530 Subject: [PATCH 0689/1038] fix: Add types to memoized functions --- packages/mermaid/src/utils.ts | 127 +++++++++++++++++++++------------- 1 file changed, 78 insertions(+), 49 deletions(-) diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index f8b56a596c..934e0a2d27 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -561,54 +561,77 @@ export const drawSimpleText = function ( return textElem; }; -export const wrapLabel = memoize( - (label, maxWidth, config) => { - if (!label) { - return label; - } - config = Object.assign( - { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
      ' }, - config - ); - if (common.lineBreakRegex.test(label)) { - return label; - } - const words = label.split(' '); - const completedLines = []; - let nextLine = ''; - words.forEach((word, index) => { - const wordLength = calculateTextWidth(`${word} `, config); - const nextLineLength = calculateTextWidth(nextLine, config); - if (wordLength > maxWidth) { - const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config); - completedLines.push(nextLine, ...hyphenatedStrings); - nextLine = remainingWord; - } else if (nextLineLength + wordLength >= maxWidth) { - completedLines.push(nextLine); - nextLine = word; - } else { - nextLine = [nextLine, word].filter(Boolean).join(' '); +interface WrapLabelConfig { + fontSize: number; + fontFamily: string; + fontWeight: number; + joinWith: string; +} + +export const wrapLabel: (label: string, maxWidth: string, config: WrapLabelConfig) => string = + memoize( + (label: string, maxWidth: string, config: WrapLabelConfig): string => { + if (!label) { + return label; } - const currentWord = index + 1; - const isLastWord = currentWord === words.length; - if (isLastWord) { - completedLines.push(nextLine); + config = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
      ' }, + config + ); + if (common.lineBreakRegex.test(label)) { + return label; } - }); - return completedLines.filter((line) => line !== '').join(config.joinWith); - }, - (label, maxWidth, config) => - `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}` -); + const words = label.split(' '); + const completedLines = []; + let nextLine = ''; + words.forEach((word, index) => { + const wordLength = calculateTextWidth(`${word} `, config); + const nextLineLength = calculateTextWidth(nextLine, config); + if (wordLength > maxWidth) { + const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config); + completedLines.push(nextLine, ...hyphenatedStrings); + nextLine = remainingWord; + } else if (nextLineLength + wordLength >= maxWidth) { + completedLines.push(nextLine); + nextLine = word; + } else { + nextLine = [nextLine, word].filter(Boolean).join(' '); + } + const currentWord = index + 1; + const isLastWord = currentWord === words.length; + if (isLastWord) { + completedLines.push(nextLine); + } + }); + return completedLines.filter((line) => line !== '').join(config.joinWith); + }, + (label, maxWidth, config) => + `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}` + ); -const breakString = memoize( - (word, maxWidth, hyphenCharacter = '-', config) => { +interface BreakStringOutput { + hyphenatedStrings: string[]; + remainingWord: string; +} + +const breakString: ( + word: string, + maxWidth: number, + hyphenCharacter: string, + config: WrapLabelConfig +) => BreakStringOutput = memoize( + ( + word: string, + maxWidth: number, + hyphenCharacter = '-', + config: WrapLabelConfig + ): BreakStringOutput => { config = Object.assign( { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 }, config ); const characters = word.split(''); - const lines = []; + const lines: string[] = []; let currentLine = ''; characters.forEach((character, index) => { const nextLine = `${currentLine}${character}`; @@ -667,6 +690,16 @@ export function calculateTextWidth( return calculateTextDimensions(text, config).width; } +interface TextDimensionConfig { + fontSize?: number; + fontWeight?: number; + fontFamily?: string; +} +interface TextDimensions { + width: number; + height: number; + lineHeight?: number; +} /** * This calculates the dimensions of the given text, font size, font family, font weight, and * margins. @@ -676,15 +709,11 @@ export function calculateTextWidth( * the resulting size * @returns The dimensions for the given text */ -export const calculateTextDimensions = memoize( - function ( - text: string, - config: { - fontSize?: number; - fontWeight?: number; - fontFamily?: string; - } - ) { +export const calculateTextDimensions: ( + text: string, + config: TextDimensionConfig +) => TextDimensions = memoize( + (text: string, config: TextDimensionConfig): TextDimensions => { config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config); const { fontSize, fontFamily, fontWeight } = config; if (!text) { From f687abb165795dfe959e87216bb111ebc7bc71cc Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 20 Nov 2022 23:13:55 +0530 Subject: [PATCH 0690/1038] chore: Use `graphlib` from `dagre-d3-es` --- packages/mermaid/src/dagre-wrapper/index.js | 12 +++---- .../src/dagre-wrapper/mermaid-graphlib.js | 13 ++++---- .../dagre-wrapper/mermaid-graphlib.spec.js | 31 ++++++++++--------- .../src/diagrams/class/classRenderer-v2.js | 2 +- .../src/diagrams/class/classRenderer.js | 2 +- .../mermaid/src/diagrams/er/erRenderer.js | 2 +- .../src/diagrams/flowchart/flowRenderer-v2.js | 2 +- .../src/diagrams/flowchart/flowRenderer.js | 2 +- .../requirement/requirementRenderer.js | 2 +- .../src/diagrams/state/stateRenderer-v2.js | 2 +- .../src/diagrams/state/stateRenderer.js | 2 +- 11 files changed, 37 insertions(+), 35 deletions(-) diff --git a/packages/mermaid/src/dagre-wrapper/index.js b/packages/mermaid/src/dagre-wrapper/index.js index 43fe311b39..8b77c85200 100644 --- a/packages/mermaid/src/dagre-wrapper/index.js +++ b/packages/mermaid/src/dagre-wrapper/index.js @@ -1,5 +1,5 @@ import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; -import graphlib from 'graphlib'; +import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; import insertMarkers from './markers'; import { updateNodeBounds } from './shapes/util'; import { @@ -15,7 +15,7 @@ import { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } f import { log } from '../logger'; const recursiveRender = (_elem, graph, diagramtype, parentCluster) => { - log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster); + log.info('Graph in recursive render: XXX', graphlibJson.write(graph), parentCluster); const dir = graph.graph().rankdir; log.trace('Dir in recursive render - dir:', dir); @@ -96,7 +96,7 @@ const recursiveRender = (_elem, graph, diagramtype, parentCluster) => { log.info('#############################################'); log.info(graph); dagreLayout(graph); - log.info('Graph after layout:', graphlib.json.write(graph)); + log.info('Graph after layout:', graphlibJson.write(graph)); // Move the nodes to the correct place let diff = 0; sortNodesByHierarchy(graph).forEach(function (v) { @@ -153,10 +153,10 @@ export const render = (elem, graph, markers, diagramtype, id) => { clearClusters(); clearGraphlib(); - log.warn('Graph at first:', graphlib.json.write(graph)); + log.warn('Graph at first:', graphlibJson.write(graph)); adjustClustersAndEdges(graph); - log.warn('Graph after:', graphlib.json.write(graph)); - // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph)); + log.warn('Graph after:', graphlibJson.write(graph)); + // log.warn('Graph ever after:', graphlibJson.write(graph.node('A').graph)); recursiveRender(elem, graph, diagramtype); }; diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 56f6564300..15fadc940a 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -1,6 +1,7 @@ /** Decorates with functions required by mermaids dagre-wrapper. */ import { log } from '../logger'; -import graphlib from 'graphlib'; +import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; export let clusterDb = {}; let decendants = {}; @@ -322,7 +323,7 @@ export const adjustClustersAndEdges = (graph, depth) => { graph.setEdge(v, w, edge, e.name); } }); - log.warn('Adjusted Graph', graphlib.json.write(graph)); + log.warn('Adjusted Graph', graphlibJson.write(graph)); extractor(graph, 0); log.trace(clusterDb); @@ -336,7 +337,7 @@ export const adjustClustersAndEdges = (graph, depth) => { }; export const extractor = (graph, depth) => { - log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D')); + log.warn('extractor - ', depth, graphlibJson.write(graph), graph.children('D')); if (depth > 10) { log.error('Bailing out'); return; @@ -415,7 +416,7 @@ export const extractor = (graph, depth) => { return {}; }); - log.warn('Old graph before copy', graphlib.json.write(graph)); + log.warn('Old graph before copy', graphlibJson.write(graph)); copy(node, graph, clusterGraph, node); graph.setNode(node, { clusterNode: true, @@ -424,8 +425,8 @@ export const extractor = (graph, depth) => { labelText: clusterDb[node].labelText, graph: clusterGraph, }); - log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph)); - log.debug('Old graph after copy', graphlib.json.write(graph)); + log.warn('New graph after copy node: (', node, ')', graphlibJson.write(clusterGraph)); + log.debug('Old graph after copy', graphlibJson.write(graph)); } else { log.warn( 'Cluster ** ', diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js index a09e17f023..49b022f4d5 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js @@ -1,4 +1,5 @@ -import graphlib from 'graphlib'; +import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; import { validate, adjustClustersAndEdges, @@ -232,9 +233,9 @@ describe('Graphlib decorations', () => { g.setParent('D', 'C'); // log.info('Graph before', g.node('D')) - // log.info('Graph before', graphlib.json.write(g)) + // log.info('Graph before', graphlibJson.write(g)) adjustClustersAndEdges(g); - // log.info('Graph after', graphlib.json.write(g), g.node('C').graph) + // log.info('Graph after', graphlibJson.write(g), g.node('C').graph) const CGraph = g.node('C').graph; const DGraph = CGraph.node('D').graph; @@ -278,9 +279,9 @@ describe('Graphlib decorations', () => { g.setEdge('A', 'C', { data: 'link2' }, '2'); log.info('Graph before', g.node('D')); - log.info('Graph before', graphlib.json.write(g)); + log.info('Graph before', graphlibJson.write(g)); adjustClustersAndEdges(g); - log.trace('Graph after', graphlib.json.write(g)); + log.trace('Graph after', graphlibJson.write(g)); expect(g.nodes()).toEqual(['C', 'B', 'A']); expect(g.nodes().length).toBe(3); expect(g.edges().length).toBe(2); @@ -333,11 +334,11 @@ describe('Graphlib decorations', () => { g.setEdge('c', 'd', { data: 'link2' }, '2'); g.setEdge('d', 'e', { data: 'link2' }, '2'); - log.info('Graph before', graphlib.json.write(g)); + log.info('Graph before', graphlibJson.write(g)); adjustClustersAndEdges(g); const bGraph = g.node('b').graph; - // log.trace('Graph after', graphlib.json.write(g)) - log.info('Graph after', graphlib.json.write(bGraph)); + // log.trace('Graph after', graphlibJson.write(g)) + log.info('Graph after', graphlibJson.write(bGraph)); expect(bGraph.nodes().length).toBe(3); expect(bGraph.edges().length).toBe(2); }); @@ -359,13 +360,13 @@ describe('Graphlib decorations', () => { g.setParent('c', 'b'); g.setParent('e', 'c'); - log.info('Graph before', graphlib.json.write(g)); + log.info('Graph before', graphlibJson.write(g)); adjustClustersAndEdges(g); const aGraph = g.node('a').graph; const bGraph = aGraph.node('b').graph; - log.info('Graph after', graphlib.json.write(aGraph)); + log.info('Graph after', graphlibJson.write(aGraph)); const cGraph = bGraph.node('c').graph; - // log.trace('Graph after', graphlib.json.write(g)) + // log.trace('Graph after', graphlibJson.write(g)) expect(aGraph.nodes().length).toBe(1); expect(bGraph.nodes().length).toBe(1); expect(cGraph.nodes().length).toBe(1); @@ -387,14 +388,14 @@ flowchart TB const exportedGraph = JSON.parse( '{"options":{"directed":true,"multigraph":true,"compound":true},"nodes":[{"v":"A","value":{"labelStyle":"","shape":"rect","labelText":"A","rx":0,"ry":0,"class":"default","style":"","id":"A","width":500,"type":"group","padding":15}},{"v":"B","value":{"labelStyle":"","shape":"rect","labelText":"B","rx":0,"ry":0,"class":"default","style":"","id":"B","width":500,"type":"group","padding":15},"parent":"A"},{"v":"b","value":{"labelStyle":"","shape":"rect","labelText":"b","rx":0,"ry":0,"class":"default","style":"","id":"b","padding":15},"parent":"A"},{"v":"c","value":{"labelStyle":"","shape":"rect","labelText":"c","rx":0,"ry":0,"class":"default","style":"","id":"c","padding":15},"parent":"B"},{"v":"a","value":{"labelStyle":"","shape":"rect","labelText":"a","rx":0,"ry":0,"class":"default","style":"","id":"a","padding":15},"parent":"A"}],"edges":[{"v":"b","w":"B","name":"1","value":{"minlen":1,"arrowhead":"normal","arrowTypeStart":"arrow_open","arrowTypeEnd":"arrow_point","thickness":"normal","pattern":"solid","style":"fill:none","labelStyle":"","arrowheadStyle":"fill: #333","labelpos":"c","labelType":"text","label":"","id":"L-b-B","classes":"flowchart-link LS-b LE-B"}},{"v":"a","w":"c","name":"2","value":{"minlen":1,"arrowhead":"normal","arrowTypeStart":"arrow_open","arrowTypeEnd":"arrow_point","thickness":"normal","pattern":"solid","style":"fill:none","labelStyle":"","arrowheadStyle":"fill: #333","labelpos":"c","labelType":"text","label":"","id":"L-a-c","classes":"flowchart-link LS-a LE-c"}}],"value":{"rankdir":"TB","nodesep":50,"ranksep":50,"marginx":8,"marginy":8}}' ); - const gr = graphlib.json.read(exportedGraph); + const gr = graphlibJson.read(exportedGraph); - log.info('Graph before', graphlib.json.write(gr)); + log.info('Graph before', graphlibJson.write(gr)); adjustClustersAndEdges(gr); const aGraph = gr.node('A').graph; const bGraph = aGraph.node('B').graph; - log.info('Graph after', graphlib.json.write(aGraph)); - // log.trace('Graph after', graphlib.json.write(g)) + log.info('Graph after', graphlibJson.write(aGraph)); + // log.trace('Graph after', graphlibJson.write(g)) expect(aGraph.parent('c')).toBe('B'); expect(aGraph.parent('B')).toBe(undefined); }); diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js index fbc2e4833a..ca203bc8ae 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js @@ -1,5 +1,5 @@ import { select } from 'd3'; -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; import { log } from '../../logger'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; diff --git a/packages/mermaid/src/diagrams/class/classRenderer.js b/packages/mermaid/src/diagrams/class/classRenderer.js index 357647427e..74e2a48c2e 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer.js +++ b/packages/mermaid/src/diagrams/class/classRenderer.js @@ -1,6 +1,6 @@ import { select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { log } from '../../logger'; import svgDraw from './svgDraw'; import { configureSvgSize } from '../../setupGraphViewbox'; diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 57aa737abb..bbc487ab43 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -1,4 +1,4 @@ -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; import { line, curveBasis, select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import { getConfig } from '../../config'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index 86eb525040..4d433b5d5f 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -1,4 +1,4 @@ -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; import { select, curveLinear, selectAll } from 'd3'; import flowDb from './flowDb'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index 0fcbce5451..7febc4034c 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -1,4 +1,4 @@ -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; import { select, curveLinear, selectAll } from 'd3'; import { getConfig } from '../../config'; import { render as Render } from 'dagre-d3-es'; diff --git a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js index 0338ec50c8..10469d50dd 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js +++ b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js @@ -1,6 +1,6 @@ import { line, select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { log } from '../../logger'; import { configureSvgSize } from '../../setupGraphViewbox'; import common from '../common/common'; diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 752b70e445..bf29c6ce1f 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -1,4 +1,4 @@ -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib'; import { select } from 'd3'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; diff --git a/packages/mermaid/src/diagrams/state/stateRenderer.js b/packages/mermaid/src/diagrams/state/stateRenderer.js index 783460cc69..57b1d1665d 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer.js @@ -1,6 +1,6 @@ import { select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; -import graphlib from 'graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { log } from '../../logger'; import common from '../common/common'; import { drawState, addTitleAndBox, drawEdge } from './shapes'; From 13ef40392194509ea028645ec1f1688229fd28c4 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 00:31:23 +0530 Subject: [PATCH 0691/1038] chore: Update dagre-d3-es --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 20 +++++--------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index c3864226d7..74ff6b9025 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -54,7 +54,7 @@ "dependencies": { "@braintree/sanitize-url": "^6.0.0", "d3": "^7.0.0", - "dagre-d3-es": "7.0.2", + "dagre-d3-es": "7.0.4", "dompurify": "2.4.1", "fast-clone": "^1.5.13", "graphlib": "^2.1.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 030a33283a..f135551080 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -173,8 +173,8 @@ importers: specifier: ^7.0.0 version: 7.6.1 dagre-d3-es: - specifier: 7.0.2 - version: 7.0.2 + specifier: 7.0.4 + version: 7.0.4 dompurify: specifier: 2.4.1 version: 2.4.1 @@ -4810,8 +4810,8 @@ packages: d3-zoom: 3.0.0 dev: false - /dagre-d3-es/7.0.2: - resolution: {integrity: sha512-m9+5yhzkf9gyklDMdWlQC/8bayGVlTF8GspmN6XC6nnZjas6kAmffvh0c/EcyFhQ+fp4QIl0fMpNdv76AJGlVQ==} + /dagre-d3-es/7.0.4: + resolution: {integrity: sha512-fQL8ldFR9UYpecz48d1smrXNJ9zGUK38Vl5OzX6Fhn9LR+oQh0GzHRPQylP5kWawmMTKm1QtqcHMVySMJ5CYaQ==} dependencies: d3: 7.6.1 lodash-es: 4.17.21 @@ -6048,16 +6048,6 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -6644,7 +6634,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 requires-port: 1.0.0 transitivePeerDependencies: - debug From 0e34caa1b0f5ad43d9a6a5f1f8b1dcb1ae2a8982 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 02:06:44 +0530 Subject: [PATCH 0692/1038] fix: Core build externals --- .vite/build.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index f2dd7db050..07b20a3859 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -56,7 +56,7 @@ interface BuildOptions { } export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => { - const external = ['require', 'fs', 'path']; + const external: (string | RegExp)[] = ['require', 'fs', 'path']; console.log(entryName, packageOptions[entryName]); const { name, file, packageName } = packageOptions[entryName]; let output: OutputOptions = [ @@ -80,7 +80,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) ); // Core build is used to generate file without bundled dependencies. // This is used by downstream projects to bundle dependencies themselves. - external.push(...Object.keys(dependencies)); + external.push(new RegExp('^(?:' + Object.keys(dependencies).join('|') + ')(?:/.+)?$')); // This needs to be an array. Otherwise vite will build esm & umd with same name and overwrite esm with umd. output = [ { From bdace6a4d65ffc586e6ed0a9aa0952a08f230ddc Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 02:12:33 +0530 Subject: [PATCH 0693/1038] Add docs back --- docs/CHANGELOG.md | 1054 ++++++++++ docs/community/development.md | 141 ++ docs/community/img/er.png | Bin 0 -> 56576 bytes docs/community/n00b-overview.md | 74 + docs/community/newDiagram.md | 264 +++ docs/community/security.md | 29 + docs/config/8.6.0_docs.md | 222 +++ docs/config/Tutorials.md | 78 + docs/config/accessibility.md | 360 ++++ docs/config/configuration.md | 41 + docs/config/directives.md | 329 ++++ .../img/accessibility-div-example-2.png | Bin 0 -> 122847 bytes docs/config/img/accessibility-div-example.png | Bin 0 -> 122202 bytes docs/config/img/assignWithDepth.png | Bin 0 -> 6595 bytes .../img/object.assign without depth.png | Bin 0 -> 6067 bytes .../config/img/python-mermaid-integration.png | Bin 0 -> 39043 bytes docs/config/img/wrapped text.png | Bin 0 -> 105313 bytes docs/config/mermaidCLI.md | 9 + docs/config/n00b-advanced.md | 26 + docs/config/setup/README.md | 13 + docs/config/setup/modules/config.md | 276 +++ docs/config/setup/modules/defaultConfig.md | 56 + docs/config/setup/modules/mermaidAPI.md | 308 +++ docs/config/theming.md | 743 +++++++ docs/config/usage.md | 391 ++++ docs/img/er.png | Bin 0 -> 56576 bytes docs/index.html.todo | 179 ++ docs/intro/img/Code-Preview-Config.png | Bin 0 -> 148873 bytes docs/intro/img/Live-Editor-Choices.png | Bin 0 -> 53011 bytes docs/intro/img/book-banner-post-release.jpg | Bin 0 -> 75158 bytes docs/intro/index.md | 405 ++++ docs/intro/n00b-gettingStarted.md | 224 +++ docs/intro/n00b-syntaxReference.md | 85 + docs/misc/faq.md | 17 + docs/misc/integrations.md | 186 ++ docs/public/.nojekyll | 0 docs/public/favicon.ico | Bin 0 -> 1150 bytes docs/public/favicon.png | Bin 0 -> 12392 bytes docs/public/favicon.svg | 6 + docs/public/header.png | Bin 0 -> 69565 bytes docs/public/manifest.json | 14 + docs/public/mermaid-logo.svg | 6 + docs/syntax/c4c.md | 664 +++++++ docs/syntax/classDiagram.md | 848 ++++++++ docs/syntax/entityRelationshipDiagram.md | 299 +++ docs/syntax/examples.md | 299 +++ docs/syntax/flowchart.md | 992 ++++++++++ docs/syntax/gantt.md | 423 ++++ docs/syntax/gitgraph.md | 1729 +++++++++++++++++ .../syntax/img/Gantt-excluded-days-within.png | Bin 0 -> 79453 bytes docs/syntax/img/Gantt-long-weekend-look.png | Bin 0 -> 79092 bytes docs/syntax/mindmap.md | 243 +++ docs/syntax/pie.md | 66 + docs/syntax/requirementDiagram.md | 243 +++ docs/syntax/sequenceDiagram.md | 762 ++++++++ docs/syntax/stateDiagram.md | 450 +++++ docs/syntax/userJourney.md | 40 + 57 files changed, 12594 insertions(+) create mode 100644 docs/CHANGELOG.md create mode 100644 docs/community/development.md create mode 100644 docs/community/img/er.png create mode 100644 docs/community/n00b-overview.md create mode 100644 docs/community/newDiagram.md create mode 100644 docs/community/security.md create mode 100644 docs/config/8.6.0_docs.md create mode 100644 docs/config/Tutorials.md create mode 100644 docs/config/accessibility.md create mode 100644 docs/config/configuration.md create mode 100644 docs/config/directives.md create mode 100644 docs/config/img/accessibility-div-example-2.png create mode 100644 docs/config/img/accessibility-div-example.png create mode 100644 docs/config/img/assignWithDepth.png create mode 100644 docs/config/img/object.assign without depth.png create mode 100644 docs/config/img/python-mermaid-integration.png create mode 100644 docs/config/img/wrapped text.png create mode 100644 docs/config/mermaidCLI.md create mode 100644 docs/config/n00b-advanced.md create mode 100644 docs/config/setup/README.md create mode 100644 docs/config/setup/modules/config.md create mode 100644 docs/config/setup/modules/defaultConfig.md create mode 100644 docs/config/setup/modules/mermaidAPI.md create mode 100644 docs/config/theming.md create mode 100644 docs/config/usage.md create mode 100644 docs/img/er.png create mode 100644 docs/index.html.todo create mode 100644 docs/intro/img/Code-Preview-Config.png create mode 100644 docs/intro/img/Live-Editor-Choices.png create mode 100644 docs/intro/img/book-banner-post-release.jpg create mode 100644 docs/intro/index.md create mode 100644 docs/intro/n00b-gettingStarted.md create mode 100644 docs/intro/n00b-syntaxReference.md create mode 100644 docs/misc/faq.md create mode 100644 docs/misc/integrations.md create mode 100644 docs/public/.nojekyll create mode 100644 docs/public/favicon.ico create mode 100644 docs/public/favicon.png create mode 100644 docs/public/favicon.svg create mode 100644 docs/public/header.png create mode 100644 docs/public/manifest.json create mode 100644 docs/public/mermaid-logo.svg create mode 100644 docs/syntax/c4c.md create mode 100644 docs/syntax/classDiagram.md create mode 100644 docs/syntax/entityRelationshipDiagram.md create mode 100644 docs/syntax/examples.md create mode 100644 docs/syntax/flowchart.md create mode 100644 docs/syntax/gantt.md create mode 100644 docs/syntax/gitgraph.md create mode 100644 docs/syntax/img/Gantt-excluded-days-within.png create mode 100644 docs/syntax/img/Gantt-long-weekend-look.png create mode 100644 docs/syntax/mindmap.md create mode 100644 docs/syntax/pie.md create mode 100644 docs/syntax/requirementDiagram.md create mode 100644 docs/syntax/sequenceDiagram.md create mode 100644 docs/syntax/stateDiagram.md create mode 100644 docs/syntax/userJourney.md diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000000..520adc7d9b --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,1054 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/CHANGELOG.md](../packages/mermaid/src/docs/CHANGELOG.md). + +# Change Log + +All changes are in descending order, beginning with the newest (latest) version. + +## Unreleased + +[Full Changelog](https://github.com/knsv/mermaid/compare/8.7.0...HEAD) + +## 8.7.0 (2020-08-09) + +🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.7.0) | +📜 [Full Changelog](https://github.com/mermaid-js/mermaid/compare/8.6.0...8.7.0) + +This version brings with it a system for [dynamic and integrated configuration of the diagram themes](config/theming.md). +The objective of this is to increase the customizability of mermaid and the ease of Styling, with the customization of themes through the `%%init%%` directive and `initialize` calls. + +Themes follow and build upon the Levels of Configuration and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](config/8.6.0_docs.md). + +**These Theming Configurations, similar to directives, will also be made applicable in the Live-Editor, for easier styling.** + +### Site-wide Themes + +Site-wide themes are still declared via `initialize` by site owners. + +Example of `Initalize` call setting `theme` to `base`: + +```javascript +mermaidAPI.initialize({ + securityLevel: 'loose', + theme: 'base', +}); +``` + +**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. + +### Themes at the Local or Current Level + +When Generating a diagram using on a webpage that supports mermaid. +It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. + +**Following is an example:** + +```mermaid-example +%%{init: {'theme':'base'}}%% + graph TD + a --> b +``` + +```mermaid +%%{init: {'theme':'base'}}%% + graph TD + a --> b +``` + +### Making a Custom Theme with `themeVariables` + +The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. + +| Parameter | Description | Type | Required | Objects contained | +| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | +| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | + +Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. + +```mermaid-example +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +**Notes:** +Leaving it empty will set all variable values to default. + +## 8.6.0 (2020-07-13) + +🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/8.6.0) + +[Version 8.6.0](../getting-started/8.6.0_docs.md) introduces New Configuration Protocols and Directives and a Beta for the [New Mermaid Live-Editor](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) + +**With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation.** + +Directives allow for a diagram specific overriding of config, as it has been discussed in Configurations. +This allows site users to input modifications to config alongside diagram definitions, when creating diagrams on a private webpage that supports Mermaid. + +## 8.5.0 (2020-04-11) + +🔖 [Release Notes](https://github.com/mermaid-js/mermaid/releases/tag/untagged-31c93788afe260d914bb) + +This version introduces New diagrams! + +**New diagrams in 8.5** + +With version 8.5 there are some bug fixes and enhancements, plus a new diagram type, entity relationship diagrams. + +![Image showing the new ER diagram type](./img/er.png) + +## 8.2.0 (2019-07-17) + +🏷️ [Tag](https://github.com/mermaid-js/mermaid/tree/8.2.0) + +Version 8.2.0, introduces a security improvement. + +A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. +This was introduced in version 8.2 as a security improvement, aimed at preventing malicious use. + +### securityLevel + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------------------- | ------ | -------- | ------------------------- | +| securitylevel | Level of trust for parsed diagram | String | Required | Strict, Loose, antiscript | + +**Notes:** + +- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **loose**: tags in text are allowed, click functionality is enabled +- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled + +⚠️ **Note**: This changes the default behaviour of mermaid so that after upgrade to 8.2, if the `securityLevel` is not configured, tags in flowcharts are encoded as tags and clicking is prohibited. + +If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing. +By doing this clicks and tags are again allowed. + +### To change `securityLevel` with `mermaidAPI.initialize`: + +```javascript +mermaidAPI.initialize({ + securityLevel: 'loose', +}); +``` + +**Closed issues:** + +- please add tag for 8.0.0 release [#863](https://github.com/knsv/mermaid/issues/863) +- classDiagram breaks on any edit [#858](https://github.com/knsv/mermaid/issues/858) + +## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0) + +**Implemented enhancements:** + +- Theme for dark background [#301](https://github.com/knsv/mermaid/issues/301) +- \[Feature request] gantt diagram axis format [#269](https://github.com/knsv/mermaid/issues/269) +- Implement render function for server side rendering using phantomjs [#169](https://github.com/knsv/mermaid/issues/169) + +**Fixed bugs:** + +- mermaid -v filename.mmd gives You must specify at least one source file. [#328](https://github.com/knsv/mermaid/issues/328) +- Not Able to See Labels even htmlLabels:false added [#268](https://github.com/knsv/mermaid/issues/268) + +**Closed issues:** + +- Gantt and sequence diagram do not render [#853](https://github.com/knsv/mermaid/issues/853) +- margins around flowchart are not balanced [#852](https://github.com/knsv/mermaid/issues/852) +- Smaller bundles [#843](https://github.com/knsv/mermaid/issues/843) +- unicode in labels [#776](https://github.com/knsv/mermaid/issues/776) +- Hard-changing drawing of arrows per edge type [#775](https://github.com/knsv/mermaid/issues/775) +- SequenceDiagram wrong [#773](https://github.com/knsv/mermaid/issues/773) +- Render mermaid on github pages with simple code [#772](https://github.com/knsv/mermaid/issues/772) +- FlowChart - large space between text and the image [#754](https://github.com/knsv/mermaid/issues/754) +- Class Diagram Issues when using Mermaid in Stackedit [#748](https://github.com/knsv/mermaid/issues/748) +- Multi-platform CI [#744](https://github.com/knsv/mermaid/issues/744) +- gantt: sections can't have a colon [#742](https://github.com/knsv/mermaid/issues/742) +- Yarn build does not add mermaid.min.css to dist [#732](https://github.com/knsv/mermaid/issues/732) +- Is there a grammar / keyword / more than just the basic examples? [#718](https://github.com/knsv/mermaid/issues/718) +- Click event and react component [#717](https://github.com/knsv/mermaid/issues/717) +- Long text going outside the box [#706](https://github.com/knsv/mermaid/issues/706) +- How to migrate from yUML to mermaid? [#704](https://github.com/knsv/mermaid/issues/704) +- Issue on Dynamic Creation in PHP [#690](https://github.com/knsv/mermaid/issues/690) +- `click "\#target"` and `click "http://url"` should create regular links [#689](https://github.com/knsv/mermaid/issues/689) +- Support Chinese punctuation [#687](https://github.com/knsv/mermaid/issues/687) +- \[Question] Proper way to install on Mac? [#681](https://github.com/knsv/mermaid/issues/681) +- Has Mermaid a graphical interface to make diagrams? [#668](https://github.com/knsv/mermaid/issues/668) +- mermaid installation on debian [#649](https://github.com/knsv/mermaid/issues/649) +- "Cannot activate" in sequenceDiagram [#647](https://github.com/knsv/mermaid/issues/647) +- Link ("click" statement) in flowchart does not work in exported SVG [#646](https://github.com/knsv/mermaid/issues/646) +- How to pass styling [#639](https://github.com/knsv/mermaid/issues/639) +- The live editor cant show seq diagram with notes for 8.0.0-alpha.3 [#638](https://github.com/knsv/mermaid/issues/638) +- import mermaid.css with ES6 + NPM [#634](https://github.com/knsv/mermaid/issues/634) +- Actor line cuts through other elements [#633](https://github.com/knsv/mermaid/issues/633) +- Graph TD line out of the picture (left side) [#630](https://github.com/knsv/mermaid/issues/630) +- Flowchart labels appear "cutoff" [#628](https://github.com/knsv/mermaid/issues/628) +- Uncaught TypeError: \_.constant is not a function (mermaid.js) [#626](https://github.com/knsv/mermaid/issues/626) +- Missing tags and releases for newer versions [#623](https://github.com/knsv/mermaid/issues/623) +- Mermaid and Leo / Leo Vue [#622](https://github.com/knsv/mermaid/issues/622) +- mermaidAPI gantt Vue.js [#621](https://github.com/knsv/mermaid/issues/621) +- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [#620](https://github.com/knsv/mermaid/issues/620) +- how to get mermaidAPI? [#617](https://github.com/knsv/mermaid/issues/617) +- Error in startOnLoad documentation? [#616](https://github.com/knsv/mermaid/issues/616) +- Example export to SVG generates error [#614](https://github.com/knsv/mermaid/issues/614) +- The new online editor does not support previously generated links [#613](https://github.com/knsv/mermaid/issues/613) +- Grammar / Syntax documentation for flowcharts [#607](https://github.com/knsv/mermaid/issues/607) +- Mermaid does not work with d3.js [#606](https://github.com/knsv/mermaid/issues/606) +- Why does this code's flowchart lines get cut-off on screen? [#604](https://github.com/knsv/mermaid/issues/604) +- click keyword does not fire my callback (on the demo Website too) [#603](https://github.com/knsv/mermaid/issues/603) +- Online Editor fails to show exported SVG [#601](https://github.com/knsv/mermaid/issues/601) +- Just saying thanks! [#597](https://github.com/knsv/mermaid/issues/597) +- stylesheet crashed with other library like abcjs [#596](https://github.com/knsv/mermaid/issues/596) +- Missing connection [#594](https://github.com/knsv/mermaid/issues/594) +- How to use mermaid on node.js restful api? [#593](https://github.com/knsv/mermaid/issues/593) +- Remove status code [#589](https://github.com/knsv/mermaid/issues/589) +- Golang based editor [#588](https://github.com/knsv/mermaid/issues/588) +- sequenceDiagram -> notetext css font is hardcoded [#587](https://github.com/knsv/mermaid/issues/587) +- Multiple graph in the live editor [#586](https://github.com/knsv/mermaid/issues/586) +- All \ elements in page are colored black [#584](https://github.com/knsv/mermaid/issues/584) +- Styling: classes aren't applied to elements. [#582](https://github.com/knsv/mermaid/issues/582) +- Rounded connections [#580](https://github.com/knsv/mermaid/issues/580) +- Arrows are not being shown correctly in the dark theme [#578](https://github.com/knsv/mermaid/issues/578) +- The documentation for CLI seems outdated. [#572](https://github.com/knsv/mermaid/issues/572) +- No effect of click event:can not open link [#571](https://github.com/knsv/mermaid/issues/571) +- Text colors are not correct in VSCODE [#570](https://github.com/knsv/mermaid/issues/570) +- Nodes aren't aligned properly (just need an explanation) [#568](https://github.com/knsv/mermaid/issues/568) +- setting margin around figure in R [#567](https://github.com/knsv/mermaid/issues/567) +- Arrows should Come out in upward and Downward direction from decision Node [#566](https://github.com/knsv/mermaid/issues/566) +- TypeError: Cannot read property 'select' of undefined [#563](https://github.com/knsv/mermaid/issues/563) +- A little bug [#557](https://github.com/knsv/mermaid/issues/557) +- Japanese text appears garbled [#554](https://github.com/knsv/mermaid/issues/554) +- classdiagram not works in mermaid live_editor [#553](https://github.com/knsv/mermaid/issues/553) +- font awesome in link text? [#546](https://github.com/knsv/mermaid/issues/546) +- q: heard of the cosmogol standard? [#545](https://github.com/knsv/mermaid/issues/545) +- Arrow heads missing (cli, 7.0.3) [#544](https://github.com/knsv/mermaid/issues/544) +- No Edge Boxes if useHtmlLabels=false [#541](https://github.com/knsv/mermaid/issues/541) +- how to change mermaid text color or line text block color? [#534](https://github.com/knsv/mermaid/issues/534) +- FlowChart visualization broken when downloading from live editor [#533](https://github.com/knsv/mermaid/issues/533) +- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [#532](https://github.com/knsv/mermaid/issues/532) +- live editor make browser(safari on macOS\&iOS) not longer respond [#531](https://github.com/knsv/mermaid/issues/531) +- css classes need a prefix/namespace [#527](https://github.com/knsv/mermaid/issues/527) +- input activate/deactivate cause safari unresponding [#521](https://github.com/knsv/mermaid/issues/521) +- Cannot Render the Mermaid Graph to PDF ? [#520](https://github.com/knsv/mermaid/issues/520) +- clicking links works from inset in subgraph but not from nodes [#516](https://github.com/knsv/mermaid/issues/516) +- Strange syntax error - when importing mermaid.js [#515](https://github.com/knsv/mermaid/issues/515) +- gantt x-axis display [#510](https://github.com/knsv/mermaid/issues/510) +- phantomjs renamed to phantomjs-prebuilt [#508](https://github.com/knsv/mermaid/issues/508) +- issue when using sphinxcontrib-mermaid extension for sphinx [#507](https://github.com/knsv/mermaid/issues/507) +- layout of docs page looks broken [#504](https://github.com/knsv/mermaid/issues/504) +- Problem showing graph with php on localhost [#502](https://github.com/knsv/mermaid/issues/502) +- logLevel's option doesn't work at 7.0.0 [#501](https://github.com/knsv/mermaid/issues/501) +- How do I get the log for a render or parse attempt? [#500](https://github.com/knsv/mermaid/issues/500) +- Mermaid neutral style style to built in latest release [#499](https://github.com/knsv/mermaid/issues/499) +- Any plans for adding a typescript definition file? [#495](https://github.com/knsv/mermaid/issues/495) +- Gantt diagrams too narrow [#493](https://github.com/knsv/mermaid/issues/493) +- Flowchart edge labels placement [#490](https://github.com/knsv/mermaid/issues/490) +- Very different styles when rendering as png vs. svg [#489](https://github.com/knsv/mermaid/issues/489) +- New editor that supports mermaid: Caret [#488](https://github.com/knsv/mermaid/issues/488) +- Gant PNG margin [#486](https://github.com/knsv/mermaid/issues/486) +- ReferenceError: window is not defined [#485](https://github.com/knsv/mermaid/issues/485) +- Menu and layout bugs in docs [#484](https://github.com/knsv/mermaid/issues/484) +- Mermaid resets some of the page CSS styles [#482](https://github.com/knsv/mermaid/issues/482) +- Arrows rendering incorrectly in online editor [#480](https://github.com/knsv/mermaid/issues/480) +- CSS stroke-dasharray ignored by browsers but not other viewers [#474](https://github.com/knsv/mermaid/issues/474) +- mermaid - Browser Support issue [#472](https://github.com/knsv/mermaid/issues/472) +- Totally love mermaid I might pop! [#471](https://github.com/knsv/mermaid/issues/471) +- Sequence Diagram: Missing x on async arrows (png) [#469](https://github.com/knsv/mermaid/issues/469) +- live editor: the svg file rendered from graph is not supported by browsers [#468](https://github.com/knsv/mermaid/issues/468) +- Not found css [#462](https://github.com/knsv/mermaid/issues/462) +- Phantomjs Dependency [#461](https://github.com/knsv/mermaid/issues/461) +- Mermaid cli not working for subgraphs [#459](https://github.com/knsv/mermaid/issues/459) +- Support for notes across multiple participants? [#458](https://github.com/knsv/mermaid/issues/458) +- Related to Issue #329: Phantomjs issues. [#455](https://github.com/knsv/mermaid/issues/455) +- Add a click style [#426](https://github.com/knsv/mermaid/issues/426) +- Add Parallel block (par) to sequence diagrams [#425](https://github.com/knsv/mermaid/issues/425) +- updating shapes after the flow chart rendering complete [#424](https://github.com/knsv/mermaid/issues/424) +- can't catch parse error Maximum call stack size exceeded on safari [#421](https://github.com/knsv/mermaid/issues/421) +- Arrows endings are missing [#419](https://github.com/knsv/mermaid/issues/419) +- shouldn't mermaid become more like Markdown ? [#417](https://github.com/knsv/mermaid/issues/417) +- Live editor show rendered diagram if syntax invalid [#415](https://github.com/knsv/mermaid/issues/415) +- Linkstyle stroke does not work [#410](https://github.com/knsv/mermaid/issues/410) +- flowchart id's with dots in them .. break links [#408](https://github.com/knsv/mermaid/issues/408) +- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [#407](https://github.com/knsv/mermaid/issues/407) +- Some Chinese character will case Safari no responding. [#405](https://github.com/knsv/mermaid/issues/405) +- Cannot center-justify text in nodes? [#397](https://github.com/knsv/mermaid/issues/397) +- Edge labels should have white background in live editor [#396](https://github.com/knsv/mermaid/issues/396) +- Live editor does not support activate/deactivate [#394](https://github.com/knsv/mermaid/issues/394) +- Styling subgraph? [#391](https://github.com/knsv/mermaid/issues/391) +- Update live editor to version 6.0.0 [#387](https://github.com/knsv/mermaid/issues/387) +- sequence diagram config issue [#385](https://github.com/knsv/mermaid/issues/385) +- How to add newline in the text [#384](https://github.com/knsv/mermaid/issues/384) +- PhantomJS crashes on a large graph [#380](https://github.com/knsv/mermaid/issues/380) +- Finnish support for class diagrams using plantuml syntax [#377](https://github.com/knsv/mermaid/issues/377) +- mermaidAPI.render generated different svg code from mermaid.int() [#374](https://github.com/knsv/mermaid/issues/374) +- Put your own action on the chart [#372](https://github.com/knsv/mermaid/issues/372) +- when declaring participants the elements are generated twice [#370](https://github.com/knsv/mermaid/issues/370) +- Example Flowchart is cut in display (Chrome). [#368](https://github.com/knsv/mermaid/issues/368) +- Add shebang support to diagrams [#365](https://github.com/knsv/mermaid/issues/365) +- Silencing CLI output [#352](https://github.com/knsv/mermaid/issues/352) +- SequenceDiagram: 3+ Alternative Paths [#348](https://github.com/knsv/mermaid/issues/348) +- Smaller height of actor boxes [#342](https://github.com/knsv/mermaid/issues/342) +- Question: lib/phantomscript.js - foreignObjects in SVG - related to #58 [#340](https://github.com/knsv/mermaid/issues/340) +- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [#337](https://github.com/knsv/mermaid/issues/337) +- Tabs & subgraphs cause rendering error [#336](https://github.com/knsv/mermaid/issues/336) +- Display question: right angles [#335](https://github.com/knsv/mermaid/issues/335) +- No Arrows rendered v0.5.8 [#330](https://github.com/knsv/mermaid/issues/330) +- You had errors in your syntax. Use --help for further information. [#327](https://github.com/knsv/mermaid/issues/327) +- Allow alternate arrow syntax that doesn't close html comments [#322](https://github.com/knsv/mermaid/issues/322) +- Comment in subgraph [#319](https://github.com/knsv/mermaid/issues/319) +- Update graph [#311](https://github.com/knsv/mermaid/issues/311) +- css conflicts with boostrap's css [#308](https://github.com/knsv/mermaid/issues/308) +- Can not get click event to fire. [#306](https://github.com/knsv/mermaid/issues/306) +- Fix phantomjs2 compatibility [#304](https://github.com/knsv/mermaid/issues/304) +- Flowcharts do not work in native IE11 [#303](https://github.com/knsv/mermaid/issues/303) +- Integration with remark.js - tutorial added [#302](https://github.com/knsv/mermaid/issues/302) +- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#299](https://github.com/knsv/mermaid/issues/299) +- src/mermaid.js generates bad code [#297](https://github.com/knsv/mermaid/issues/297) +- Fresh fork: jasmine tests fail [#294](https://github.com/knsv/mermaid/issues/294) +- CSS clash [#292](https://github.com/knsv/mermaid/issues/292) +- Mermaid does not work in Chrome 48 [#281](https://github.com/knsv/mermaid/issues/281) +- circle and ellipse cannot change color by classDef [#271](https://github.com/knsv/mermaid/issues/271) +- npm run watch doesn't work due missing dependencies [#266](https://github.com/knsv/mermaid/issues/266) +- label out of node [#262](https://github.com/knsv/mermaid/issues/262) +- IE11 Support issue [#261](https://github.com/knsv/mermaid/issues/261) +- mermaid without browser [#260](https://github.com/knsv/mermaid/issues/260) +- Insufficient capacity of gantt diagrams [#226](https://github.com/knsv/mermaid/issues/226) +- some WARN about installation [#222](https://github.com/knsv/mermaid/issues/222) +- Live editor offline access [#217](https://github.com/knsv/mermaid/issues/217) +- suggest: code highlight mode config for editors [#212](https://github.com/knsv/mermaid/issues/212) +- Uncaught RangeError: Maximum call stack size exceeded [#189](https://github.com/knsv/mermaid/issues/189) +- Styling label texts [#50](https://github.com/knsv/mermaid/issues/50) + +**Merged pull requests:** + +- Remove console.log in classDB. [#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey)) +- Bump sshpk from 1.13.1 to 1.16.1 [#851](https://github.com/knsv/mermaid/pull/851) ([dependabot\[bot\]](https://github.com/apps/dependabot)) +- Significantly smaller bundles [#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato)) +- Support styling of subgraphs [#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-)) +- fix dark theme loop labels not visible [#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn)) +- fix draw function can only call once [#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship)) +- Fix dotted lines not appearing in flowcharts when HTML labels disabled [#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu)) +- Fix issue with XML line breaks inside vertex labels [#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang)) +- fixed diagrams [#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus)) +- Clickable gantt tasks [#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht)) +- linkStyle now supports list of indexes with a few tests [#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov)) +- fix class diagram mermaid [#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai)) +- Added exclude weekdays to definition [#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo)) +- SVG link rendering [#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep)) +- Gantt milestones [#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs)) +- Remove duplicate code [#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030)) +- Render nodes as real links [#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep)) +- Fix issue with marker-end. [#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen)) +- Make Class Diagrams usable in Stackedit and Live Editor [#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe)) +- Adding trapezoid and inverse trapezoid vertex options. [#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf)) +- Add option for right angles [#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland)) +- Add nested activation classes [#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland)) +- wip: class diagram cardinality display [#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz)) +- add comments about CSS in config [#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90)) +- SequenceDiagram: Add support for multiple alt else statements [#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel)) +- fix #426 - add class .clickable on nodes with click function or link [#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil)) +- Spec fix 1 [#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt)) + +## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5) + +**Closed issues:** + +- live editor latin error after update [#560](https://github.com/knsv/mermaid/issues/560) +- Simple full example in online documentation is broken [#558](https://github.com/knsv/mermaid/issues/558) +- Graph No Arrow Head v7.0.3 [#543](https://github.com/knsv/mermaid/issues/543) +- Conflict while using mermaid along with core-js [#512](https://github.com/knsv/mermaid/issues/512) +- Export to pdf on website [#496](https://github.com/knsv/mermaid/issues/496) +- New downstream project: Mermaid Preview for VSCode [#442](https://github.com/knsv/mermaid/issues/442) +- Can't Zoom the flowchart ? [#399](https://github.com/knsv/mermaid/issues/399) +- line labels are not rendered correctly in live editor [#366](https://github.com/knsv/mermaid/issues/366) +- mermaid-loader [#361](https://github.com/knsv/mermaid/issues/361) +- Are there any documentation or examples for classDiagram and gitGraph? [#359](https://github.com/knsv/mermaid/issues/359) +- \# character broken in 0.5.8 [#347](https://github.com/knsv/mermaid/issues/347) +- Documentation issue: CSS example is not visible [#345](https://github.com/knsv/mermaid/issues/345) +- Include documentation for command line usage [#326](https://github.com/knsv/mermaid/issues/326) +- Fresh fork: can't build dist [#296](https://github.com/knsv/mermaid/issues/296) +- Invalid value for \ attribute viewBox="0 0 -Infinity -Infinity" [#291](https://github.com/knsv/mermaid/issues/291) +- Webpack require fails [#277](https://github.com/knsv/mermaid/issues/277) +- New documentation - need improved logo [#216](https://github.com/knsv/mermaid/issues/216) + +## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3) + +**Closed issues:** + +- the documentation website is down [#539](https://github.com/knsv/mermaid/issues/539) +- Good example of interactivity with mermaidAPI [#514](https://github.com/knsv/mermaid/issues/514) + +## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2) + +**Closed issues:** + +- CDN is not working [#511](https://github.com/knsv/mermaid/issues/511) +- A sampe sequenceDiagram crashes mermaid-cli [#492](https://github.com/knsv/mermaid/issues/492) +- Mermaid doesn't delete nodes when called multiple times [#491](https://github.com/knsv/mermaid/issues/491) +- API crashes on 2nd render() call [#478](https://github.com/knsv/mermaid/issues/478) +- sequenceDiagram: dotted line for alt and empty bracket should be hidden [#456](https://github.com/knsv/mermaid/issues/456) +- SVG output (almost) not correct [#434](https://github.com/knsv/mermaid/issues/434) +- How to set axisFormatter of gantt in mermaid CLI? [#428](https://github.com/knsv/mermaid/issues/428) +- customizing link style with any color sets `fill` property to `black` instead of `none` [#416](https://github.com/knsv/mermaid/issues/416) +- New line at the end of SVG file [#400](https://github.com/knsv/mermaid/issues/400) +- CLI doesn't work [#389](https://github.com/knsv/mermaid/issues/389) +- Can't render subgraphs with htmlLabels: false [#367](https://github.com/knsv/mermaid/issues/367) +- Color arrowhead [#362](https://github.com/knsv/mermaid/issues/362) +- CLI: Invisible text, lines in SVG output [#341](https://github.com/knsv/mermaid/issues/341) + +**Merged pull requests:** + +- Support Multi-line Actor Descriptions [#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj)) +- Update Travis config [#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong)) +- Fix spelling of 'you' in sequenceDiagram docs [#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson)) +- Improve CLI output [#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042)) +- Modernize mermaid [#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong)) +- Modernize mermaid [#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong)) +- Update CLI instructions [#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps)) +- Add style for classDiagram to dark/default theme [#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel)) +- Fix documentation for git graph. [#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs)) +- Fix links in documentations [#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71)) +- Update README.md with git graph sample [#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur)) +- Fix misspelling of “another” [#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert)) +- Fixed #456 sequenceDiagram: dotted line for alt and empty bracket sho… [#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong)) +- Add viewbox attr to class diagram [#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm)) +- add par statement to sequenceDiagram [#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor)) + +## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29) + +[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0) + +**Implemented enhancements:** + +- npm install -g mermaid does not install phantomjs [#329](https://github.com/knsv/mermaid/issues/329) +- activation boxes [#313](https://github.com/knsv/mermaid/issues/313) + +**Closed issues:** + +- demos on io site not working [#466](https://github.com/knsv/mermaid/issues/466) +- Can not be generated PNG pictures through CLI with Chinese [#451](https://github.com/knsv/mermaid/issues/451) +- Round nodes cannot be styled with CSS classes [#443](https://github.com/knsv/mermaid/issues/443) +- webpack gulp UglifyJsPlugin error. [#440](https://github.com/knsv/mermaid/issues/440) +- String concatenation isn't working [#432](https://github.com/knsv/mermaid/issues/432) +- text flow/wrap in actor box of sequence diagram [#422](https://github.com/knsv/mermaid/issues/422) +- Online live editor still use old version [#402](https://github.com/knsv/mermaid/issues/402) +- uncaught TypeError: t.getTransformToElement is not a function [#401](https://github.com/knsv/mermaid/issues/401) +- Only works when using browserify'd code [#373](https://github.com/knsv/mermaid/issues/373) +- document the use of shebang line in mmd files [#364](https://github.com/knsv/mermaid/issues/364) +- Diagrams are small and unreadable in IE 11 - since 0.5.1 [#356](https://github.com/knsv/mermaid/issues/356) +- \[Feature Request] ER-Diagram Support [#354](https://github.com/knsv/mermaid/issues/354) +- The need for mermaid.css should be mentioned explicitly in the intro docs... [#273](https://github.com/knsv/mermaid/issues/273) + +**Merged pull requests:** + +- Update index.html [#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight)) +- Fix for #416, customizing link style with any color sets `fill` property to `black` instead of `none` [#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin)) +- Allow .node>circle to receive css styles [#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz)) +- Fix spelling [#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn)) +- added tests and fix cli css style selector lowercase problem [#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev)) +- Update d3.js [#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz)) +- added tests to reproduce #434 in flowchart [#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev)) +- Code Climate config [#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott)) +- fix gantt and sequence digram cli cfg [#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev)) +- fix gantt chart cli configuration broken [#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev)) +- fix gantt chart cli configuration parsing including functions [#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev)) +- Uses an empty text node instead of a string for svg group labels [#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick)) +- use tspan via d3.textwrap to place actor text in sequence diagram [#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev)) +- \#422 use foreignObject/div to place actor label in sequence diagram [#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev)) +- Clarify the need for a CSS stylesheet [#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb)) +- Added hads downstream project [#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied)) +- update usage and fix #273 [#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance)) +- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur)) +- New neutral theme [#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied)) +- fix cli issues [#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page)) +- Add missing space for 'Labels out of bounds' section [#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist)) +- Fix typo: `pats` -> `paths` [#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon)) +- Added class diagram example to README.md [#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion)) +- override normal flowchart arrowhead to allow css styling [#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue)) +- added sphinx extension [#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan)) +- Fix typo in the sequence diagram documentation [#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino)) + +## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0) + +**Closed issues:** + +- Docs css: code hard to read [#324](https://github.com/knsv/mermaid/issues/324) +- About Markpad integration [#323](https://github.com/knsv/mermaid/issues/323) +- How to link backwards in flowchart? [#321](https://github.com/knsv/mermaid/issues/321) +- Help with editor [#310](https://github.com/knsv/mermaid/issues/310) +- \+1 [#293](https://github.com/knsv/mermaid/issues/293) +- Basic chart does not render on Chome, but does in Firefox [#290](https://github.com/knsv/mermaid/issues/290) +- Live editor is broken [#285](https://github.com/knsv/mermaid/issues/285) +- "No such file or directory" trying to run mermaid 0.5.7 on OS X [#284](https://github.com/knsv/mermaid/issues/284) +- participant name as "Long Long Name" [#283](https://github.com/knsv/mermaid/issues/283) +- Windows - cli - could not find phantomjs at the specified path [#236](https://github.com/knsv/mermaid/issues/236) + +**Merged pull requests:** + +- The option of gantt for the spaces for the section names. [#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi)) +- Gitgraph: Make reset work with parent ref carets [#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur)) +- Remove the text-shadows that make the text look blurry [#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers)) +- add line interpolation to linkStyle in flowchart [#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn)) +- Support git graph diagrams in mermaid [#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur)) +- Build and test execution changes [#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea)) +- Reformatting of css files [#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr)) +- (WIP) Sequence Diagram Title Support [#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja)) +- activations doc + few fixes [#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy)) +- Dark theme for better contrast on darker backgrounds [#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a)) +- Activations [#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy)) +- Support leading comments for sequenceDiagrams [#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle)) +- Show a little lenience for white-space around names [#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle)) +- Update list of downstream projects [#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo)) +- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) +- Issue 297 - src/mermaid.js generates bad code [#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) +- Updated instructions for running tests [#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS)) +- Add Markdown Plus to Downstream projects [#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong)) +- Quote phantomPath so that it doesn't fail on window [#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur)) + +## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8) + +## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7) + +**Closed issues:** + +- Mermaid + LightPaper = ❤️ [#280](https://github.com/knsv/mermaid/issues/280) +- Bower Integration [#278](https://github.com/knsv/mermaid/issues/278) +- Mermaid breaks when variables end in 'v' [#276](https://github.com/knsv/mermaid/issues/276) +- sequence diagrams don't support participant aliasing [#263](https://github.com/knsv/mermaid/issues/263) +- One diagram that fails to render stops further execution on the page [#259](https://github.com/knsv/mermaid/issues/259) +- Where to find line layout algorithm? [#258](https://github.com/knsv/mermaid/issues/258) +- Compatibility with node.js [#257](https://github.com/knsv/mermaid/issues/257) +- Label resizing with dynamically loaded fonts [#255](https://github.com/knsv/mermaid/issues/255) +- SVG arrowheads are broken in the CLI [#249](https://github.com/knsv/mermaid/issues/249) +- Cannot read property 'replace' of undefined [#239](https://github.com/knsv/mermaid/issues/239) + +**Merged pull requests:** + +- gh-50 Allow styling of edge labels in css [#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia)) +- Allow sequenceDiagram participant aliasing [#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042)) + +## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6) + +**Implemented enhancements:** + +- Add download SVG link to the live editor [#144](https://github.com/knsv/mermaid/issues/144) + +**Fixed bugs:** + +- Live Editor: Permalink address not being parsed [#202](https://github.com/knsv/mermaid/issues/202) + +**Closed issues:** + +- title doesn't work in sequenceDiagram [#248](https://github.com/knsv/mermaid/issues/248) +- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [#247](https://github.com/knsv/mermaid/issues/247) +- Broken in firefox? [#245](https://github.com/knsv/mermaid/issues/245) +- When there is a Chinese symbol in the flowchart, it will crash。 [#238](https://github.com/knsv/mermaid/issues/238) +- Non-alpha characters included in ALPHA token (flow graph jison) [#232](https://github.com/knsv/mermaid/issues/232) +- subgraph not rendering with change to sample [#231](https://github.com/knsv/mermaid/issues/231) +- sequence diagram requires a new line at the end? [#229](https://github.com/knsv/mermaid/issues/229) + +**Merged pull requests:** + +- Make sequenceDiagram terminal newline optional [#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042)) +- Support sequenceDiagram "over" notes [#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042)) +- Properly handle "rest of line" statements [#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042)) +- CLI: Propagate exit code from lib (i.e., phantomjs) [#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042)) +- flowRender.js - Fix FontAwesome icon insert [#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal)) +- updated sequence diagram link in live editor [#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) +- updated links in README.md [#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s)) +- Ellipse syntax [#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88)) +- Allow keywords as suffixes of node ids [#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88)) +- Highlighted the editor in the nav [#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv)) +- Live editor tweaks [#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88)) +- Add a Gitter chat badge to README.md [#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger)) + +## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5) + +**Closed issues:** + +- sequence diagram, arrowhead instead of crosshead [#227](https://github.com/knsv/mermaid/issues/227) + +**Merged pull requests:** + +- Fix a typo: crosshead --> arrowhead [#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong)) + +## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4) + +**Implemented enhancements:** + +- Set log level from mermaid configuration [#220](https://github.com/knsv/mermaid/issues/220) +- Links in sequence diagrams [#159](https://github.com/knsv/mermaid/issues/159) +- Add syntax for double headed arrows [#123](https://github.com/knsv/mermaid/issues/123) + +**Fixed bugs:** + +- comment characters `%%` cause parse error [#141](https://github.com/knsv/mermaid/issues/141) + +**Closed issues:** + +- Marker-end arrow cannot be shown for URL with query parameter [#225](https://github.com/knsv/mermaid/issues/225) +- Please update bower's D3 version [#221](https://github.com/knsv/mermaid/issues/221) +- Width fixed to 400px [#204](https://github.com/knsv/mermaid/issues/204) +- render to png from the cli does not display the marker-end arrow heads [#181](https://github.com/knsv/mermaid/issues/181) + +**Merged pull requests:** + +- Allow `end` as a substring of vertex id [#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88)) +- Remove duplicate npm dependencies: d3 and he [#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88)) + +## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3) + +## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2) + +**Implemented enhancements:** + +- Support for hyperlink and tooltip [#34](https://github.com/knsv/mermaid/issues/34) + +**Closed issues:** + +- Installing “atom-mermaid@0.1.3” failed [#218](https://github.com/knsv/mermaid/issues/218) +- node feature request [#211](https://github.com/knsv/mermaid/issues/211) +- Please add prefix for styles [#208](https://github.com/knsv/mermaid/issues/208) +- Bad handling of block arguments [#207](https://github.com/knsv/mermaid/issues/207) +- please consider port to mac osx [#203](https://github.com/knsv/mermaid/issues/203) +- allow phantomjs >=1.9.x [#201](https://github.com/knsv/mermaid/issues/201) +- syntax for venn diagrams? [#200](https://github.com/knsv/mermaid/issues/200) +- Broken CLI Graphs? (v0.5.1) [#196](https://github.com/knsv/mermaid/issues/196) +- Static site does not render under HTTPS [#194](https://github.com/knsv/mermaid/issues/194) +- Error on simple graph [#192](https://github.com/knsv/mermaid/issues/192) +- Escape "~" [#191](https://github.com/knsv/mermaid/issues/191) +- Trying to add link using 'click' to flowchart [#188](https://github.com/knsv/mermaid/issues/188) +- cli: no lines and arrowheads rendered / only dotted lines [#187](https://github.com/knsv/mermaid/issues/187) +- text of mermaid div displayed on page [#186](https://github.com/knsv/mermaid/issues/186) +- using mermaid with laravel [#185](https://github.com/knsv/mermaid/issues/185) +- Atom editor package [#183](https://github.com/knsv/mermaid/issues/183) +- Auto linewrap for notes in sequence diagrams [#178](https://github.com/knsv/mermaid/issues/178) +- Execute code after initialize [#176](https://github.com/knsv/mermaid/issues/176) +- Autoscaling for all diagram types [#175](https://github.com/knsv/mermaid/issues/175) +- Problem wit click event callback [#174](https://github.com/knsv/mermaid/issues/174) +- How to escape characters? [#170](https://github.com/knsv/mermaid/issues/170) +- it can not work [#167](https://github.com/knsv/mermaid/issues/167) +- Broken subgraph using the CLI [#153](https://github.com/knsv/mermaid/issues/153) +- IE Support issue [#142](https://github.com/knsv/mermaid/issues/142) +- Flowchart truncated [#140](https://github.com/knsv/mermaid/issues/140) +- Double Quote as text is not working [#219](https://github.com/knsv/mermaid/issues/219) +- classDef / class not working with htmlLabels? [#210](https://github.com/knsv/mermaid/issues/210) +- Links in graph missing [#209](https://github.com/knsv/mermaid/issues/209) +- Last word in comment boxes getting cut off by word wrap library : ( [#195](https://github.com/knsv/mermaid/issues/195) +- Escaping characters in sequence diagram [#193](https://github.com/knsv/mermaid/issues/193) +- SVG foreignObject rendering [#180](https://github.com/knsv/mermaid/issues/180) +- IE9 issue [#179](https://github.com/knsv/mermaid/issues/179) +- inoperable in an AMD/requirejs environment: IPython Notebook [#127](https://github.com/knsv/mermaid/issues/127) +- \[Parser] Hyphen in participant name bring TypeError [#74](https://github.com/knsv/mermaid/issues/74) + +**Merged pull requests:** + +- Update flowchart.md [#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro)) +- Default style when using the CLI [#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey)) +- Gantt chart - add minutes and seconds durations [#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans)) +- Using QUnit for AMD testing [#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl)) +- Update phantomscript.js [#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow)) + +## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1) + +**Implemented enhancements:** + +- To SVG Export [#146](https://github.com/knsv/mermaid/issues/146) +- Possibility to set the width of the generated flowchart [#129](https://github.com/knsv/mermaid/issues/129) +- Special characters break parsing [#54](https://github.com/knsv/mermaid/issues/54) +- Responsive graph layout for mobile viewers [#51](https://github.com/knsv/mermaid/issues/51) +- Styling connector lines [#31](https://github.com/knsv/mermaid/issues/31) + +**Fixed bugs:** + +- flowchart - styling of edges via css overrides specific styles set in the graph definition [#128](https://github.com/knsv/mermaid/issues/128) + +**Closed issues:** + +- Live editor is broken [#173](https://github.com/knsv/mermaid/issues/173) +- 0.5.0 no longer respects custom date definitions in Gantt diagrams [#171](https://github.com/knsv/mermaid/issues/171) +- Drop label character restrictions [#162](https://github.com/knsv/mermaid/issues/162) +- can't nest subgraphs in flowchart [#161](https://github.com/knsv/mermaid/issues/161) +- Unable to generate gantt diagram with mermaid CLI [#158](https://github.com/knsv/mermaid/issues/158) +- Inline css by "mermaid" [#157](https://github.com/knsv/mermaid/issues/157) +- Finite State Machine Diagram [#152](https://github.com/knsv/mermaid/issues/152) +- How to center align gantt diagram [#150](https://github.com/knsv/mermaid/issues/150) +- Security concern regarding class definition [#148](https://github.com/knsv/mermaid/issues/148) +- File Extension [#147](https://github.com/knsv/mermaid/issues/147) +- `setTimeout` with clusters problematic with programmatic edits and no callback [#133](https://github.com/knsv/mermaid/issues/133) +- module.exports.cloneCssStyles() in combination with Angularjs breaks display in Chrome and IE [#126](https://github.com/knsv/mermaid/issues/126) +- Gantt - suitable xAxis for longer project [#125](https://github.com/knsv/mermaid/issues/125) +- How to get started with this project ? [#64](https://github.com/knsv/mermaid/issues/64) + +**Merged pull requests:** + +- Remove moot `version` property from bower.json [#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche)) + +## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0) + +**Implemented enhancements:** + +- Add a css file, mermaid.css, with default styling [#122](https://github.com/knsv/mermaid/issues/122) +- software architecture diagram [#36](https://github.com/knsv/mermaid/issues/36) +- Support for bar charts and pie diagrams [#22](https://github.com/knsv/mermaid/issues/22) + +**Closed issues:** + +- uglifyjs wanrings which means we can improve the code [#156](https://github.com/knsv/mermaid/issues/156) +- New(er) features unavailable in downloadable js files? [#151](https://github.com/knsv/mermaid/issues/151) +- Add gh-gapes link to description [#143](https://github.com/knsv/mermaid/issues/143) +- Some examples not displayed on Firefox 36.0.1 [#138](https://github.com/knsv/mermaid/issues/138) +- tags ending in a "v" don't render [#132](https://github.com/knsv/mermaid/issues/132) +- Links in flowchart [#131](https://github.com/knsv/mermaid/issues/131) +- Using the library for iOS development [#130](https://github.com/knsv/mermaid/issues/130) +- Add capability for gantt diagrams [#118](https://github.com/knsv/mermaid/issues/118) +- lower case v causes error in the parser [#108](https://github.com/knsv/mermaid/issues/108) +- Label's css conflict with boostrap's .label [#67](https://github.com/knsv/mermaid/issues/67) +- TypeError: Cannot read property 'layout' of undefined [#37](https://github.com/knsv/mermaid/issues/37) + +**Merged pull requests:** + +- Dev 0.5.0 [#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv)) +- Fix spacing [#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho)) +- Fixing typo: "Think" -> "Thick" [#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a)) +- IE, local html, cssRules access is denied [#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong)) +- Add automatically generated change log file. [#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder)) +- Adding init argument to the global API [#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl)) +- Add description of manual calling of init [#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl)) +- Allow other forms of node selection for init() [#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl)) +- Use a library-level variable for assigning ids [#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl)) + +## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0) + +**Implemented enhancements:** + +- Assymetric shapes not documented [#82](https://github.com/knsv/mermaid/issues/82) +- Improve arrows [#3](https://github.com/knsv/mermaid/issues/3) + +**Fixed bugs:** + +- NoModificationAllowedError [#23](https://github.com/knsv/mermaid/issues/23) + +**Closed issues:** + +- subgraph background is black in rendered flowchart PNG via CLI [#121](https://github.com/knsv/mermaid/issues/121) +- Integrate editor at https://github.com/naseer/mermaid-webapp [#110](https://github.com/knsv/mermaid/issues/110) +- Internet Explorer Support [#99](https://github.com/knsv/mermaid/issues/99) + +## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5) + +## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4) + +**Implemented enhancements:** + +- Apply styling from css when using the CLI utility [#85](https://github.com/knsv/mermaid/issues/85) +- Generated SVG works poorly outside web browsers [#58](https://github.com/knsv/mermaid/issues/58) +- Generating SVG text blob for use in Node [#2](https://github.com/knsv/mermaid/issues/2) + +**Closed issues:** + +- Subgraph syntax bug? [#120](https://github.com/knsv/mermaid/issues/120) +- Live editor [#115](https://github.com/knsv/mermaid/issues/115) +- Error in "Basic Syntax" wiki page [#113](https://github.com/knsv/mermaid/issues/113) +- semicolons, anyone? [#111](https://github.com/knsv/mermaid/issues/111) +- undefined `sequenceConfig` fails [#109](https://github.com/knsv/mermaid/issues/109) +- Sequence Diagrams: Show Actors below as well [#106](https://github.com/knsv/mermaid/issues/106) +- Allow overriding sequence diagram configuration (SVG properties) [#103](https://github.com/knsv/mermaid/issues/103) +- Error when rendering A-- This is the text -- B [#102](https://github.com/knsv/mermaid/issues/102) +- Clipping in documentation [#97](https://github.com/knsv/mermaid/issues/97) +- isolate class styling to the svg container [#92](https://github.com/knsv/mermaid/issues/92) +- Make the new graph declaration more visual [#40](https://github.com/knsv/mermaid/issues/40) + +**Merged pull requests:** + +- Add live editor [#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer)) +- Adds CSS option to the CLI [#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog)) +- Update flowchart.md in response Issue #113 [#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40)) +- Ignore all files except the license and dist/ folder when installing with Bower. [#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy)) + +## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3) + +**Implemented enhancements:** + +- Support for dotted links [#26](https://github.com/knsv/mermaid/issues/26) + +**Closed issues:** + +- Missing arrows in sequence diagram [#98](https://github.com/knsv/mermaid/issues/98) +- Error with >9 linkStyles [#95](https://github.com/knsv/mermaid/issues/95) + +**Merged pull requests:** + +- Require d3 directly to better support Node usage [#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish)) +- update doc with -c option [#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr)) +- Add new parameter to the console client to override the svg configuration in sequence diagrams [#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr)) +- Text based labels, new shape [#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes)) +- fix html tags in example usage [#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin)) + +## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2) + +**Implemented enhancements:** + +- Make link text look like it is on the line [#53](https://github.com/knsv/mermaid/issues/53) + +**Closed issues:** + +- disable auto render [#91](https://github.com/knsv/mermaid/issues/91) +- Tidy breaks mermaid (linebreaks in \

      ) [#87](https://github.com/knsv/mermaid/issues/87) +- Bug: \
      being rendered as text in node [#73](https://github.com/knsv/mermaid/issues/73) +- Graph edges appear to render outside of the canvas [#70](https://github.com/knsv/mermaid/issues/70) + +**Merged pull requests:** + +- Merge pull request #1 from knsv/master [#96](https://github.com/knsv/mermaid/pull/96) ([gkchic](https://github.com/gkchic)) +- Removed duplicated section in flowchart docs [#94](https://github.com/knsv/mermaid/pull/94) ([kaime](https://github.com/kaime)) +- Grammar changes to sequence page [#93](https://github.com/knsv/mermaid/pull/93) ([gkchic](https://github.com/gkchic)) +- Github buttons [#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic)) +- Template change [#88](https://github.com/knsv/mermaid/pull/88) ([gkchic](https://github.com/gkchic)) + +## [0.3.1](https://github.com/knsv/mermaid/tree/0.3.1) (2015-01-05) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1) + +**Implemented enhancements:** + +- Support for sequence diagrams [#16](https://github.com/knsv/mermaid/issues/16) +- Client utility for mermaid [#6](https://github.com/knsv/mermaid/issues/6) + +**Closed issues:** + +- Non ASCII chars in labels [#84](https://github.com/knsv/mermaid/issues/84) +- 'undefined' titles of Quicklinks on the usage page [#80](https://github.com/knsv/mermaid/issues/80) +- \[cli] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [#71](https://github.com/knsv/mermaid/issues/71) + +**Merged pull requests:** + +- Flowchart doc: Text in the circle now in a circle [#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack)) +- Fix for issue #73 [#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a)) +- Ink template [#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic)) +- Show help and version even if phantom isn't present. Fixes #71 [#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog)) +- Add apostrophe & 'and' [#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki)) + +## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0) + +**Implemented enhancements:** + +- How do I do comments? [#47](https://github.com/knsv/mermaid/issues/47) +- Improve readability with new line as terminator and whitespace [#38](https://github.com/knsv/mermaid/issues/38) + +**Fixed bugs:** + +- This characters failed the lexical parsing [#46](https://github.com/knsv/mermaid/issues/46) + +**Closed issues:** + +- Trailing whitespace at the end of lines is not ignored [#55](https://github.com/knsv/mermaid/issues/55) +- Use classes instead of inline style for easy styling [#24](https://github.com/knsv/mermaid/issues/24) + +**Merged pull requests:** + +- Adds Command Line Interface for generating PNGs from mermaid description files [#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog)) +- Allow special symbols for direction along with acronyms [#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40)) + +## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16) + +**Fixed bugs:** + +- Lines routed outside visible area [#19](https://github.com/knsv/mermaid/issues/19) + +**Closed issues:** + +- Mermaid not rendering properly on Wordpress pages [#59](https://github.com/knsv/mermaid/issues/59) +- Improve example page with live demo [#52](https://github.com/knsv/mermaid/issues/52) +- Does not render upon AngularJS Updates [#45](https://github.com/knsv/mermaid/issues/45) +- Download link in README.MD doesn't work. [#42](https://github.com/knsv/mermaid/issues/42) +- linkStyle usage is not obvious [#41](https://github.com/knsv/mermaid/issues/41) +- Move \*.spec.js in src/ to test/ [#35](https://github.com/knsv/mermaid/issues/35) + +**Merged pull requests:** + +- New grammar will allow statements ending without semicolon as disccused in Issue #38 [#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40)) +- Class based styling [#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes)) +- Fix typos [#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino)) +- Included .DS_Store in gitignore [#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq)) +- Improves readability discussed in issue #38 [#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40)) +- Added a linting task for gulp [#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv)) + +## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15) + +**Fixed bugs:** + +- Error with some characters [#25](https://github.com/knsv/mermaid/issues/25) +- Cap-cased words break parser [#8](https://github.com/knsv/mermaid/issues/8) + +**Closed issues:** + +- Question marks don't render properly with /dist/mermaid.full.min.js [#30](https://github.com/knsv/mermaid/issues/30) +- Provide parse function in browser widthout `require`? [#21](https://github.com/knsv/mermaid/issues/21) +- Better label text support [#18](https://github.com/knsv/mermaid/issues/18) + +**Merged pull requests:** + +- Include bower_components/ to .gitignore [#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv)) +- Fixed reference to Git repo. [#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis)) + +## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14) + +## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13) + +**Implemented enhancements:** + +- Publish to NPM [#7](https://github.com/knsv/mermaid/issues/7) + +**Closed issues:** + +- modified init to be applied more than once [#29](https://github.com/knsv/mermaid/issues/29) +- Wanted to know build process for the project. [#28](https://github.com/knsv/mermaid/issues/28) +- can not support Chinese description [#20](https://github.com/knsv/mermaid/issues/20) +- Support unicode chars in labels [#9](https://github.com/knsv/mermaid/issues/9) + +## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10) + +## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9) + +**Closed issues:** + +- Add link to jsbin playground to README [#11](https://github.com/knsv/mermaid/issues/11) +- What are the requirements ? [#10](https://github.com/knsv/mermaid/issues/10) + +**Merged pull requests:** + +- Allow unicode chars in labels [#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige)) + +## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8) + +## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7) + +**Closed issues:** + +- Provide parser as separate module [#4](https://github.com/knsv/mermaid/issues/4) + +## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6) + +## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5) + +**Merged pull requests:** + +- Added new shapes! [#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes)) + +## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4) + +## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3) + +## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2) + +## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1) + +## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0) + +## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17) + +[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1) + +## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16) diff --git a/docs/community/development.md b/docs/community/development.md new file mode 100644 index 0000000000..58ca4670bc --- /dev/null +++ b/docs/community/development.md @@ -0,0 +1,141 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/development.md](../../packages/mermaid/src/docs/community/development.md). + +# Development and Contribution 🙌 + +So you want to help? That's great! + +![Image of happy people jumping with excitement](https://media.giphy.com/media/BlVnrxJgTGsUw/giphy.gif) + +Here are a few things to get you started on the right path. + +**The Docs Structure is dictated by [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**. + +**Note: Commits and Pull Requests should be directed to the develop branch.** + +## Branching + +Mermaid uses a [Git Flow](https://guides.github.com/introduction/flow/)–inspired approach to branching. So development is done in the `develop` branch. + +Once development is done we branch a `release` branch from `develop` for testing. + +Once the release happens we merge the `release` branch with `master` and kill the `release` branch. + +This means that **you should branch off your pull request from develop** and direct all Pull Requests to it. + +## Contributing Code + +We make all changes via Pull Requests. As we have many Pull Requests from developers new to mermaid, we have put in place a process, wherein _knsv, Knut Sveidqvist_ is the primary reviewer of changes and merging pull requests. The process is as follows: + +- Large changes reviewed by knsv or other developer asked to review by knsv +- Smaller, low-risk changes like dependencies, documentation, etc. can be merged by active collaborators +- Documentation (we encourage updates to the `/packages/mermaid/src/docs` folder; you can submit them via direct commits) + +When you commit code, create a branch with the following naming convention: + +Start with the type, such as **feature** or **bug**, followed by the issue number for reference, and a text that describes the issue. + +**One example:** + +`feature/945_state_diagrams` + +**Another example:** + +`bug/123_nasty_bug_branch` + +## Contributing to Documentation + +If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature? + +The docs are located in the `src/docs` folder and are written in Markdown. Just pick the right section and start typing. If you want to propose changes to the structure of the documentation, such as adding a new section or a new file you do that via **[.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**. + +> **All the documents displayed in the GitHub.io page are listed in [.vitepress/config.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/docs/.vitepress/config.ts)**. + +The contents of are based on the docs from the `master` branch. Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid-js.github.io/mermaid/) once released. + +## How to Contribute to Documentation + +We are a little less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator. + +The documentation is located in the `src/docs` directory and organized according to relevant subfolder. + +The `docs` folder will be automatically generated when committing to `src/docs` and should not be edited manually. + +We encourage contributions to the documentation at [mermaid-js/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs). We publish documentation using GitHub Pages with [Docsify](https://www.youtube.com/watch?v=TV88lp7egMw&t=3s) + +### Add Unit Tests for Parsing + +This is important so that, if someone that does not know about this great feature suggests a change to the grammar, they get notified early on when that change breaks the parser. Another important aspect is that, without proper parsing, tests refactoring is pretty much impossible. + +### Add E2E Tests + +This tests the rendering and visual appearance of the diagrams. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks! + +To start working with the e2e tests: + +1. Run `pnpm run dev` to start the dev server +2. Start **Cypress** by running `pnpm exec cypress open` in the **mermaid** folder. + +The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. + +When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs. + +This is what a rendering test looks like: + +```js +it('should render forks and joins', () => { + imgSnapshotTest( + ` + stateDiagram + state fork_state <<fork>> + [*] --> fork_state + fork_state --> State2 + fork_state --> State3 + + state join_state <<join>> + State2 --> join_state + State3 --> join_state + join_state --> State4 + State4 --> [*] + `, + { logLevel: 0 } + ); + cy.get('svg'); +}); +``` + +### Any Questions or Suggestions? + +After logging in at [GitHub.com](https://www.github.com), open or append to an issue [using the GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Documentation%22). + +### How to Contribute a Suggestion + +Markdown is used to format the text, for more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). + +To edit Docs on your computer: + +1. Find the Markdown file (.md) to edit in the [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs) directory in the `develop` branch. +2. Create a fork of the develop branch. +3. Make changes or add new documentation. +4. Commit changes to your fork and push it to GitHub. +5. Create a Pull Request of your fork. + +To edit Docs on GitHub: + +1. Login to [GitHub.com](https://www.github.com). +2. Navigate to [packages/mermaid/src/docs](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs). +3. To edit a file, click the pencil icon at the top-right of the file contents panel. +4. Describe what you changed in the **Propose file change** section, located at the bottom of the page. +5. Submit your changes by clicking the button **Propose file change** at the bottom (by automatic creation of a fork and a new branch). +6. Create a Pull Request of your newly forked branch by clicking the green **Create Pull Request** button. + +## Last Words + +Don't get daunted if it is hard in the beginning. We have a great community with only encouraging words. So, if you get stuck, ask for help and hints in the Slack forum. If you want to show off something good, show it off there. + +[Join our Slack community if you want closer contact!](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) + +![Image of superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif) diff --git a/docs/community/img/er.png b/docs/community/img/er.png new file mode 100644 index 0000000000000000000000000000000000000000..21c44c257a3e0ee3e782dd5b6696602f6d9f5172 GIT binary patch literal 56576 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 **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/n00b-overview.md](../../packages/mermaid/src/docs/community/n00b-overview.md). + +# Overview for Beginners + +**Explaining with a Diagram** + +A picture is worth a thousand words, a good diagram is undoubtedly worth more. They make understanding easier. + +## Creating and Maintaining Diagrams + +Anyone who has used Visio, or (God Forbid) Excel to make a Gantt Chart, knows how hard it is to create, edit and maintain good visualizations. + +Diagrams/Charts are significant but also become obsolete/inaccurate very fast. This catch-22 hobbles the productivity of teams. + +# Doc Rot in Diagrams + +Doc-Rot kills diagrams as quickly as it does text, but it takes hours in a desktop application to produce a diagram. + +Mermaid seeks to change using markdown-inspired syntax. The process is a quicker, less complicated, and more convenient way of going from concept to visualization. + +It is a relatively straightforward solution to a significant hurdle with the software teams. + +# Definition of Terms/ Dictionary + +**Mermaid text definitions can be saved for later reuse and editing.** + +> These are the Mermaid diagram definitions inside `
      ` tags, with the `class=mermaid`. + +```html +
      +    graph TD
      +    A[Client] --> B[Load Balancer]
      +    B --> C[Server01]
      +    B --> D[Server02]
      +
      +``` + +**render** + +> This is the core function of the Mermaid API. It reads all the `Mermaid Definitions` inside `div` tags and returns an SVG file, based on the definition. + +**Nodes** + +> These are the boxes that contain text or otherwise discrete pieces of each diagram, separated generally by arrows, except for Gantt Charts and User Journey Diagrams. They will be referred often in the instructions. Read for Diagram Specific [Syntax](../intro/n00b-syntaxReference.md) + +## Advantages of using Mermaid + +- Ease to generate, modify and render diagrams when you make them. +- The number of integrations and plugins it has. +- You can add it to your or companies website. +- Diagrams can be created through comments like this in a script: + +## The catch-22 of Diagrams and Charts: + +**Diagramming and charting is a large waste of developer's time, but not having diagrams ruins productivity.** + +Mermaid solves this by reducing the time and effort required to create diagrams and charts. + +Because, the text base for the diagrams allows it to be updated easily. Also, it can be made part of production scripts (and other pieces of code). So less time is spent on documenting, as a separate task. + +## Catching up with Development + +Being based on markdown, Mermaid can be used, not only by accomplished front-end developers, but by most computer savvy people to render diagrams, at much faster speeds. +In fact one can pick up the syntax for it quite easily from the examples given and there are many tutorials available in the internet. + +## Mermaid is for everyone. + +Video [Tutorials](https://mermaid-js.github.io/mermaid/#/../config/Tutorials) are also available for the mermaid [live editor](https://mermaid.live/). + +Alternatively you can use Mermaid [Plug-Ins](https://mermaid-js.github.io/mermaid/#/./integrations), with tools you already use, like Google Docs. diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md new file mode 100644 index 0000000000..da86f98381 --- /dev/null +++ b/docs/community/newDiagram.md @@ -0,0 +1,264 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/newDiagram.md](../../packages/mermaid/src/docs/community/newDiagram.md). + +# Adding a New Diagram/Chart 📊 + +### Step 1: Grammar & Parsing + +#### Grammar + +This would be to define a jison grammar for the new diagram type. That should start with a way to identify that the text in the mermaid tag is a diagram of that type. Create a new folder under diagrams for your new diagram type and a parser folder in it. This leads us to step 2. + +For instance: + +- the flowchart starts with the keyword graph. +- the sequence diagram starts with the keyword sequenceDiagram + +#### Store data found during parsing + +There are some jison specific sub steps here where the parser stores the data encountered when parsing the diagram, this data is later used by the renderer. You can during the parsing call a object provided to the parser by the user of the parser. This object can be called during parsing for storing data. + +```jison +statement + : 'participant' actor { $$='actor'; } + | signal { $$='signal'; } + | note_statement { $$='note'; } + | 'title' message { yy.setTitle($2); } + ; +``` + +In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. + +> **Note** +> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. + +For more info look in the example diagram type: + +The `yy` object has the following function: + +```javascript +exports.parseError = function (err, hash) { + mermaid.parseError(err, hash); +}; +``` + +when parsing the `yy` object is initialized as per below: + +```javascript +const parser = exampleParser.parser; +parser.yy = db; +``` + +### Step 2: Rendering + +Write a renderer that given the data found during parsing renders the diagram. To look at an example look at sequenceRenderer.js rather then the flowchart renderer as this is a more generic example. + +Place the renderer in the diagram folder. + +### Step 3: Detection of the new diagram type + +The second thing to do is to add the capability to detect the new new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type. + +### Step 4: The final piece - triggering the rendering + +At this point when mermaid is trying to render the diagram, it will detect it as being of the new type but there will be no match when trying to render the diagram. To fix this add a new case in the switch statement in main.js:init this should match the diagram type returned from step #2. The code in this new case statement should call the renderer for the diagram type with the data found by the parser as an argument. + +## Usage of the parser as a separate module + +### Setup + +```javascript +const graph = require('./graphDb'); +const flow = require('./parser/flow'); +flow.parser.yy = graph; +``` + +### Parsing + +```javascript +flow.parser.parse(text); +``` + +### Data extraction + +```javascript +graph.getDirection(); +graph.getVertices(); +graph.getEdges(); +``` + +The parser is also exposed in the mermaid api by calling: + +```javascript +const parser = mermaid.getParser(); +``` + +Note that the parse needs a graph object to store the data as per: + +```javascript +flow.parser.yy = graph; +``` + +Look at `graphDb.js` for more details on that object. + +## Layout + +If you are using a dagre based layout, please use flowchart-v2 as a template and by doing that you will be using dagre-wrapper instead of dagreD3 which we are migrating away from. + +### Common parts of a diagram + +There are a few features that are common between the different types of diagrams. We try to standardize the diagrams that work as similar as possible for the end user. The commonalities are: + +- Directives, a way of modifying the diagram configuration from within the diagram code. +- Accessibility, a way for an author to provide additional information like titles and descriptions to people accessing a text with diagrams using a screen reader. +- Themes, there is a common way to modify the styling of diagrams in Mermaid. +- Comments should follow mermaid standards + +Here some pointers on how to handle these different areas. + +#### [Directives](../config/directives.md) + +Here is example handling from flowcharts: +Jison: + +```jison +/* lexical grammar */ +%lex +%x open_directive +%x type_directive +%x arg_directive +%x close_directive + +\%\%\{ { this.begin('open_directive'); return 'open_directive'; } +((?:(?!\}\%\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; } +":" { this.popState(); this.begin('arg_directive'); return ':'; } +\}\%\% { this.popState(); this.popState(); return 'close_directive'; } +((?:(?!\}\%\%).|\n)*) return 'arg_directive'; + +/* language grammar */ + +/* ... */ + +directive + : openDirective typeDirective closeDirective separator + | openDirective typeDirective ':' argDirective closeDirective separator + ; + +openDirective + : open_directive { yy.parseDirective('%%{', 'open_directive'); } + ; + +typeDirective + : type_directive { yy.parseDirective($1, 'type_directive'); } + ; + +argDirective + : arg_directive { $1 = $1.trim().replace(/'/g, '"'); yy.parseDirective($1, 'arg_directive'); } + ; + +closeDirective + : close_directive { yy.parseDirective('}%%', 'close_directive', 'flowchart'); } + ; +``` + +It is probably a good idea to keep the handling similar to this in your new diagram. The parseDirective function is provided by the mermaidAPI. + +## Accessibility + +The syntax for adding title and description looks like this: + + accTitle: The title + accDescr: The description + + accDescr { + Syntax for a description text + written on multiple lines. + } + +In a similar way to the directives the jison syntax are quite similar between the diagrams. + +```jison + +* lexical grammar */ +%lex +%x acc_title +%x acc_descr +%x acc_descr_multiline + +%% +accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } +(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } +accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } +(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } +accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} +[\}] { this.popState(); } +[^\}]* return "acc_descr_multiline_value"; + +statement + : acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); } + | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } + | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } + +``` + +The functions for setting title and description are provided by a common module. This is the import from flowDb.js: + + import { + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + clear as commonClear, + } from '../../commonDb'; + +For rendering the accessibility tags you have again an existing function you can use. + +**In the renderer:** + +```js +import addSVGAccessibilityFields from '../../accessibility'; + +/* ... */ + +// Adds title and description to the flow chart +addSVGAccessibilityFields(parser.yy, svg, id); +``` + +## Theming + +Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](../config/theming.md). + +When adding themes to a diagram it comes down to a few important locations in the code. + +The entry point for the styling engine is in **src/styles.js**. The getStyles function will be called by Mermaid when the styles are being applied to the diagram. + +This function will in turn call a function _your diagram should provide_ returning the css for the new diagram. The diagram specific, also which is commonly also called getStyles and located in the folder for your diagram under src/diagrams and should be named styles.js. The getStyles function will be called with the theme options as an argument like in the following example: + +```js +const getStyles = (options) => + ` + .line { + stroke-width: 1; + stroke: ${options.lineColor}; + stroke-dasharray: 2; + } + // ... + `; +``` + +Note that you need to provide your function to the main getStyles by adding it into the themes object in **src/styles.js** like in the xyzDiagram in the provided example: + +```js +const themes = { + flowchart, + 'flowchart-v2': flowchart, + sequence, + xyzDiagram, + //... +}; +``` + +The actual options and values for the colors are defined in **src/theme/theme-\[xyz].js**. If you provide the options your diagram needs in the existing theme files then the theming will work smoothly without hiccups. diff --git a/docs/community/security.md b/docs/community/security.md new file mode 100644 index 0000000000..07adbfbf8b --- /dev/null +++ b/docs/community/security.md @@ -0,0 +1,29 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/security.md](../../packages/mermaid/src/docs/community/security.md). + +# Security + +The Mermaid team takes the security of Mermaid and the applications that use Mermaid seriously. This page describes how to report any vulnerabilities you may find, and lists best practices to minimize the risk of introducing a vulnerability. + +## Reporting vulnerabilities + +To report a vulnerability, please e-mail with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. + +We aim to reply within three working days, probably much sooner. + +You should expect a close collaboration as we work to resolve the issue you have reported. Please reach out to again if you do not receive prompt attention and regular updates. + +You may also reach out to the team via our public Slack chat channels; however, please make sure to e-mail when reporting an issue, and avoid revealing information about vulnerabilities in public as that could that could put users at risk. + +## Best practices + +Keep current with the latest Mermaid releases. We regularly update Mermaid, and these updates may fix security defects discovered in previous versions. Check the Mermaid release notes for security-related updates. + +Keep your application’s dependencies up to date. Make sure you upgrade your package dependencies to keep the dependencies up to date. Avoid pinning to specific versions for your dependencies and, if you do, make sure you check periodically to see if your dependencies have had security updates, and update the pin accordingly. + +## Configuring DomPurify + +By default Mermaid uses a baseline [DOMPurify](https://github.com/cure53/DOMPurify) config. It is possible to override the options passed to DOMPurify by adding a `dompurifyConfig` key to the Mermaid options. This could potentially break the output of Mermaid so use this with caution. diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md new file mode 100644 index 0000000000..abd1587129 --- /dev/null +++ b/docs/config/8.6.0_docs.md @@ -0,0 +1,222 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/8.6.0_docs.md](../../packages/mermaid/src/docs/config/8.6.0_docs.md). + +# Version 8.6.0 Changes + +## [New Mermaid Live-Editor Beta](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) + +## [CDN](https://unpkg.com/mermaid/) + +With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. + +`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](../config/configuration.md). +This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](directives.md), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams. + +**A likely application for this is in the creation of diagrams/charts inside company/organizational webpages, that rely on mermaid for diagram and chart rendering.** + +the `init` directive is the main method of configuration for Site and Current Levels. + +The three levels of are Configuration, Global, Site and Current. + +| Level of Configuration | Description | +| ---------------------- | ----------------------------------- | +| Global Configuration | Default Mermaid Configurations | +| Site Configuration | Configurations made by site owner | +| Current Configuration | Configurations made by Implementors | + +# Limits to Modifying Configurations + +**secure Array** + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------------------------------ | ----- | -------- | -------------- | +| secure | Array of parameters excluded from init directive | Array | Required | Any parameters | + +The modifiable parts of the Configuration are limited by the secure array, which is an array of immutable parameters, this array can be expanded by site owners. + +**Notes**: secure arrays work like nesting dolls, with the Global Configurations’ secure array holding the default and immutable list of immutable parameters, or the smallest doll, to which site owners may add to, but implementors may not modify it. + +# Secure Arrays + +Site owners can add to the **secure** array using this command: +mermaidAPI.initialize( { startOnLoad: true, secure: \['parameter1', 'parameter2'] } ); + +Default values for the `secure array` consists of: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']. These default values are immutable. + +Implementors can only modify configurations using directives, and cannot change the `secure` array. + +# Modifying Configurations and directives: + +The Two types of directives: are `init` (or `initialize`) and `wrap`. + +> **Note** +> All directives are enclosed in `%%{ }%%` + +Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. + +# Init + +`init`, or `initialize`: this directive gives the user the ability to overwrite and change the values for any configuration parameters not set in the secure array. + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | +| init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | + +> **Note** +> init would be an argument-directive: `%%{init: { **insert argument here**}}%%` +> +> The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. +> **for example**: +> +> `%%{init: {"theme": "default", "logLevel": 1 }}%%` +> +> Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. +> +> When deployed within code, init is called before the graph/diagram description. + +**for example**: + +```mermaid-example +%%{init: {"theme": "default", "logLevel": 1 }}%% + graph LR + a-->b + b-->c + c-->d + d-->e + e-->f + f-->g + g--> +``` + +```mermaid +%%{init: {"theme": "default", "logLevel": 1 }}%% + graph LR + a-->b + b-->c + c-->d + d-->e + e-->f + f-->g + g--> +``` + +# Wrap + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------- | --------- | -------- | ---------- | +| wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | + +> **Note** +> Wrap is a function that is currently only deployable for sequence diagrams. +> +> `Wrap respects a manually added
      , so if the user wants to break up their text, they have full control over line breaks by adding
      tags.` +> +> It is a non-argument directive and can be executed thusly: +> +> `%%{wrap}%%` . + +**An example of text wrapping in a sequence diagram**: + +!\[Image showing wrapped text]\(img/wrapped text.png) + +# Resetting Configurations: + +There are two more functions in the mermaidAPI that can be called by site owners: **reset** and **globalReset**. + +**reset**: resets the configuration to whatever the last configuration was. This can be done to undo more recent changes set from the last mermaidAPI.initialize({...}) configuration. + +**globalReset** will reset both the current configuration AND the site configuration back to the global defaults. + +**Notes**: Both `reset` and `globalReset` are only available to site owners, and as such implementors have to edit their configs using `init`. + +# Additional Utils to mermaid + +• **memoize**: simple caching for computationally expensive functions, reducing rendering time by about 90%. + +• **assignWithDepth** - an improvement on previous functions with config.js and `Object.assign`. The purpose of this function is to provide a sane mechanism for merging objects, similar to `object.assign`, but with depth. + +Example of **assignWithDepth**: + +![Image showing assignWithDepth](img/assignWithDepth.png) + +Example of **object.Assign**: + +!\[Image showing object.assign without depth]\(img/object.assign without depth.png) + +• **calculateTextDimensions**, **calculateTextWidth**, and **calculateTextHeight** - for measuring text dimensions, width and height. + +**Notes**: For more information on usage, parameters, and return info for these new functions take a look at the jsdocs for them in the utils package. + +# New API Requests Introduced in Version 8.6.0 + +## setSiteConfig + +| Function | Description | Type | Values | Parameters | Returns | +| --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | +| `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | + +> **Note** +> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset +> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig +> to the defaultConfig +> Note: currentConfig is set in this function。 +> Default value: will mirror Global Config + +## getSiteConfig + +| Function | Description | Type | Values | +| --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | +| `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | + +> **Note** +> Returns any values in siteConfig. + +## setConfig + +| Function | Description | Type | Values | Parameters | Returns | +| ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | +| `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | + +> **Note** +> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any +> values found in conf with key found in siteConfig.secure will be replaced with the corresponding +> siteConfig value. + +## getConfig + +| Function | Description | Type | Return Values | +| ----------- | --------------------------- | ----------- | ------------------------------- | +| `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | + +> **Note** +> Returns any values in currentConfig. + +## sanitize + +| Function | Description | Type | Values | +| ---------- | ---------------------------------------- | -------------- | ------ | +| `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | + +> **Note** +> modifies options in-place +> Ensures options parameter does not attempt to override siteConfig secure keys. + +## reset + +| Function | Description | Type | Required | Values | Parameter | +| -------- | ------------------------------ | ----------- | -------- | ------ | --------- | +| `reset` | Resets `currentConfig` to conf | Put Request | Required | None | conf | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | +| `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | + +> **Note** +> default: current siteConfig (optional, default `getSiteConfig()`) + +## For more information, read [Setup](./setup/README.md). diff --git a/docs/config/Tutorials.md b/docs/config/Tutorials.md new file mode 100644 index 0000000000..41e0508cbe --- /dev/null +++ b/docs/config/Tutorials.md @@ -0,0 +1,78 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/Tutorials.md](../../packages/mermaid/src/docs/config/Tutorials.md). + +# Tutorials + +This is list of publicly available Tutorials for using Mermaid.JS . This is intended as a basic introduction for the use of the Live Editor for generating diagrams, and deploying Mermaid.JS through HTML. + +**Note that these tutorials might display an older interface, but the usage of the live-editor will largely be the same.** + +For most purposes, you can use the [Live Editor](https://mermaid.live), to quickly and easily render a diagram. + +## Live-Editor Tutorials + +The definitions that can be generated the Live-Editor are also backwards-compatible as of version 8.7.0. + +[Chris Chinchilla: Hands on - Text-based diagrams with Mermaid](https://www.youtube.com/watch?v=4_LdV1cs2sA) + +[GitLab Unfiltered: How to Create Mermaid Diagrams](https://www.youtube.com/watch?v=SQ9QmuTHuSI&t=438s) + +[GitLab Unfiltered: Emilie adds a mermaid diagram to the handbook](https://www.youtube.com/watch?v=5RQqht3NNSE) + +[World of Zero: I Learn How To Build Flowcharts and Signal Diagram's in Mermaid.JS](https://www.youtube.com/watch?v=7_2IroEs6Is&t=207s) + +[Eddie Jaoude: Can you code your diagrams?](https://www.youtube.com/watch?v=9HZzKkAqrX8) + +## Mermaid with HTML + +Examples are provided in [Getting Started](../intro/n00b-gettingStarted.md) + +**CodePen Examples:** + +https://codepen.io/CarlBoneri/pen/BQwZzq + +https://codepen.io/tdkn/pen/vZxQzd + +https://codepen.io/janzeteachesit/pen/OWWZKN + +## Mermaid with Text Area + +https://codepen.io/Ryuno-Ki/pen/LNxwgR + +## Mermaid in open source docs + +[K8s.io Diagram Guide](https://kubernetes.io/docs/contribute/style/diagram-guide/) + +[K8s.dev blog: Improve your documentation with Mermaid.js diagrams](https://www.kubernetes.dev/blog/2021/12/01/improve-your-documentation-with-mermaid.js-diagrams/) + +## Jupyter Integration with mermaid-js + +Here's an example of Python integration with mermaid-js which uses the mermaid.ink service, that displays the graph in a Jupyter notebook. + +```python +import base64 +from IPython.display import Image, display +import matplotlib.pyplot as plt + +def mm(graph): + graphbytes = graph.encode("ascii") + base64_bytes = base64.b64encode(graphbytes) + base64_string = base64_bytes.decode("ascii") + display(Image(url="https://mermaid.ink/img/" + base64_string)) + +mm(""" +graph LR; + A--> B & C & D; + B--> A & E; + C--> A & E; + D--> A & E; + E--> B & C & D; +""") +``` + +**Output** + +![Example graph of the Python integration](img/python-mermaid-integration.png) diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md new file mode 100644 index 0000000000..8fa4aa3ac8 --- /dev/null +++ b/docs/config/accessibility.md @@ -0,0 +1,360 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/accessibility.md](../../packages/mermaid/src/docs/config/accessibility.md). + +# Accessibility Options + +## Accessibility + +Now with Mermaid library in much wider use, we have started to work towards more accessible features, based on the feedback from the community. + +To begin with, we have added a new feature to Mermaid library, which is to support accessibility options, **Accessibility Title** and **Accessibility Description**. + +This support for accessibility options is available for all the diagrams/chart types. Also, we have tired to keep the same format for the accessibility options, so that it is easy to understand and maintain. + +## Defining Accessibility Options + +### Single line accessibility values + +The diagram authors can now add the accessibility options in the diagram definition, using the `accTitle` and `accDescr` keywords, where each keyword is followed by `:` and the string value for title and description like: + +- `accTitle: "Your Accessibility Title"` or +- `accDescr: "Your Accessibility Description"` + +**When these two options are defined, they will add a corresponding `` and `<desc>` tag in the SVG.** + +Let us take a look at the following example with a flowchart diagram: + +```mermaid-example + graph LR + accTitle: Big decisions + accDescr: Flow chart of the decision making process + A[Hard] -->|Text| B(Round) + B --> C{Decision} + C -->|One| D[Result 1] + +``` + +```mermaid + graph LR + accTitle: Big decisions + accDescr: Flow chart of the decision making process + A[Hard] -->|Text| B(Round) + B --> C{Decision} + C -->|One| D[Result 1] + +``` + +See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code: + +![Accessibility options rendered inside SVG](img/accessibility-div-example.png) + +### Multi-line Accessibility title/description + +You can also define the accessibility options in a multi-line format, where the keyword is followed by opening curly bracket `{` and then multiple lines, followed by a closing `}`. + +`accTitle: My single line title value` (**_single line format_**) + +vs + +`accDescr: { My multi-line description of the diagram }` (**_multi-line format_**) + +Let us look at it in the following example, with same flowchart: + +```mermaid-example + graph LR + accTitle: Big decisions + + accDescr { + My multi-line description + of the diagram + } + + A[Hard] -->|Text| B(Round) + B --> C{Decision} + C -->|One| D[Result 1] + +``` + +```mermaid + graph LR + accTitle: Big decisions + + accDescr { + My multi-line description + of the diagram + } + + A[Hard] -->|Text| B(Round) + B --> C{Decision} + C -->|One| D[Result 1] + +``` + +See in the code snippet above, the `accTitle` and `accDescr` are defined in the diagram definition. They result in the following tags in SVG code: + +![Accessibility options rendered inside SVG](img/accessibility-div-example-2.png) + +### Sample Code Snippet for other diagram types + +#### Sequence Diagram + +```mermaid-example + sequenceDiagram + accTitle: My Sequence Diagram + accDescr: My Sequence Diagram Description + + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +```mermaid + sequenceDiagram + accTitle: My Sequence Diagram + accDescr: My Sequence Diagram Description + + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +#### Class Diagram + +```mermaid-example + classDiagram + accTitle: My Class Diagram + accDescr: My Class Diagram Description + + Vehicle <|-- Car +``` + +```mermaid + classDiagram + accTitle: My Class Diagram + accDescr: My Class Diagram Description + + Vehicle <|-- Car +``` + +#### State Diagram + +```mermaid-example + stateDiagram + accTitle: My State Diagram + accDescr: My State Diagram Description + + s1 --> s2 + +``` + +```mermaid + stateDiagram + accTitle: My State Diagram + accDescr: My State Diagram Description + + s1 --> s2 + +``` + +#### Entity Relationship Diagram + +```mermaid-example + erDiagram + accTitle: My Entity Relationship Diagram + accDescr: My Entity Relationship Diagram Description + + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +```mermaid + erDiagram + accTitle: My Entity Relationship Diagram + accDescr: My Entity Relationship Diagram Description + + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +#### User Journey Diagram + +```mermaid-example + journey + accTitle: My User Journey Diagram + accDescr: My User Journey Diagram Description + + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me + +``` + +```mermaid + journey + accTitle: My User Journey Diagram + accDescr: My User Journey Diagram Description + + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me + +``` + +#### Gantt Chart + +```mermaid-example + gantt + accTitle: My Gantt Chart Accessibility Title + accDescr: My Gantt Chart Accessibility Description + + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +```mermaid + gantt + accTitle: My Gantt Chart Accessibility Title + accDescr: My Gantt Chart Accessibility Description + + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +#### Pie Chart + +```mermaid-example + pie + accTitle: My Pie Chart Accessibility Title + accDescr: My Pie Chart Accessibility Description + + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 + +``` + +```mermaid + pie + accTitle: My Pie Chart Accessibility Title + accDescr: My Pie Chart Accessibility Description + + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 + +``` + +#### Requirement Diagram + +```mermaid-example + requirementDiagram + accTitle: My Requirement Diagram + accDescr: My Requirement Diagram Description + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req + +``` + +```mermaid + requirementDiagram + accTitle: My Requirement Diagram + accDescr: My Requirement Diagram Description + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req + +``` + +#### Gitgraph + +```mermaid-example + gitGraph + accTitle: My Gitgraph Accessibility Title + accDescr: My Gitgraph Accessibility Description + + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit + +``` + +```mermaid + gitGraph + accTitle: My Gitgraph Accessibility Title + accDescr: My Gitgraph Accessibility Description + + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit + +``` diff --git a/docs/config/configuration.md b/docs/config/configuration.md new file mode 100644 index 0000000000..c7b780143d --- /dev/null +++ b/docs/config/configuration.md @@ -0,0 +1,41 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/configuration.md](../../packages/mermaid/src/docs/config/configuration.md). + +# Configuration + +When mermaid starts, configuration is extracted to determine a configuration to be used for a diagram. There are 3 sources for configuration: + +- The default configuration +- Overrides at the site level are set by the initialize call, and will be applied to all diagrams in the site/app. The term for this is the **siteConfig**. +- Directives - diagram authors can update select configuration parameters directly in the diagram code via directives. These are applied to the render config. + +**The render config** is configuration that is used when rendering by applying these configurations. + +## Theme configuration + +## Starting mermaid + +```mermaid-example +sequenceDiagram + Site->>mermaid: initialize + Site->>mermaid: content loaded + mermaid->>mermaidAPI: init +``` + +```mermaid +sequenceDiagram + Site->>mermaid: initialize + Site->>mermaid: content loaded + mermaid->>mermaidAPI: init +``` + +## Initialize + +The initialize call is applied **only once**. It is called by the site integrator in order to override the default configuration at a site level. + +## configApi.reset + +This method resets the configuration for a diagram to the overall site configuration, which is the configuration provided by the site integrator. Before each rendering of a diagram, reset is called at the very beginning. diff --git a/docs/config/directives.md b/docs/config/directives.md new file mode 100644 index 0000000000..5507070801 --- /dev/null +++ b/docs/config/directives.md @@ -0,0 +1,329 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/directives.md](../../packages/mermaid/src/docs/config/directives.md). + +# Directives + +## Directives + +Directives gives a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration. + +The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram specific configurations. So, directives are applied on top of the default configurations. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level. + +While directives allow you to change most of the default configuration settings, there are some that are not available, that too for security reasons. Also, you do have the _option to define the set of configurations_ that you would allow to be available to the diagram author for overriding with help of directives. + +## Types of Directives options + +Mermaid basically supports two types of configuration options to be overridden by directives. + +1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are: + +- theme +- fontFamily +- logLevel +- securityLevel +- startOnLoad +- secure + +2. _Diagram specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves. + For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alter whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type. + +**NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. + + Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs + +## Declaring directives + +Now that we have defined the types of configurations that are available, we can learn how to declare directives. +A directive always starts and end `%%` sign with directive text in between, like `%% {directive_text} %%`. + +Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section. + +Following code snippet shows the structure of a directive: + + %%{ + init: { + "theme": "dark", + "fontFamily": "monospace", + "logLevel": "info", + "flowchart": { + "htmlLabels": true, + "curve": "linear" + }, + "sequence": { + "mirrorActors": true + } + } + }%% + +You can also define the directives in a single line, like this: + + %%{init: { **insert argument here**}}%% + +For example, the following code snippet: + + %%{init: { "sequence": { "mirrorActors":false }}}%% + +**Notes:** +The json object that is passed as {**argument** } must be valid key value pairs and encased in quotation marks or it will be ignored. +Valid Key Value pairs can be found in config. + +Example with a simple graph: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% +graph LR +A-->B +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% +graph LR +A-->B +``` + +Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself. + +Note: You can use 'init' or 'initialize' as both acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. This means: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% +%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% +... +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% +%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% +... +``` + +parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: + +```json +{ + "logLevel": "fatal", + "theme": "dark", + "startOnLoad": true +} +``` + +This will then be sent to `mermaid.initialize(...)` for rendering. + +## Directive Examples + +More directive examples for diagram specific configuration overrides +Now that the concept of directives has been explained, Let us see some more examples for directives usage: + +### Changing Theme via directive + +The following code snippet changes theme to forest: + +`%%{init: { "theme": "forest" } }%%` + +Possible themes value are: `default`,`base`, `dark`, `forest` and `neutral`. +Default Value is `default`. + +Example: + +```mermaid-example +%%{init: { "theme": "forest" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +```mermaid +%%{init: { "theme": "forest" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +### Changing fontFamily via directive + +The following code snippet changes fontFamily to rebuchet MS, Verdana, Arial, Sans-Serif: + +`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%` + +Example: + +```mermaid-example +%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +```mermaid +%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +### Changing logLevel via directive + +The following code snippet changes logLevel to 2: + +`%%{init: { "logLevel": 2 } }%%` + +Possible logLevel values are: + +- `1` for _debug_, +- `2` for _info_ +- `3` for _warn_ +- `4` for _error_ +- `5` for _only fatal errors_ + +Default Value is `5`. + +Example: + +```mermaid-example +%%{init: { "logLevel": 2 } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +```mermaid +%%{init: { "logLevel": 2 } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing flowchart config via directive + +Some common flowchart configurations are: + +- _htmlLabels_: true/false +- _curve_: linear/curve +- _diagramPadding_: number +- _useMaxWidth_: number + +For complete list of flowchart configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. +_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ + +The following code snippet changes flowchart config: + +`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%` + +Here were are overriding only the flowchart config, and not the general config, where HtmlLabels is set to true and curve is set to linear. + +```mermaid-example +%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +```mermaid +%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing Sequence diagram config via directive + +Some common sequence configurations are: + +- _width_: number +- _height_: number +- _messageAlign_: left, center, right +- _mirrorActors_: boolean +- _useMaxWidth_: boolean +- _rightAngles_: boolean +- _showSequenceNumbers_: boolean +- _wrap_: boolean + +For complete list of sequence diagram configurations, see _defaultConfig.ts_ in the source code. +_Soon we plan to publish a complete list all diagram specific configurations updated in the docs_ + +So, `wrap` by default has a value of `false` for sequence diagrams. + +Let us see an example: + +```mermaid-example +sequenceDiagram + +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +```mermaid +sequenceDiagram + +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +Now let us enable wrap for sequence diagrams. + +The following code snippet changes sequence diagram config for `wrap` to `true`: + +`%%{init: { "sequence": { "wrap": true} } }%%` + +Using in the diagram above, the wrap will be enabled. + +```mermaid-example +%%{init: { "sequence": { "wrap": true, "width":300 } } }%% +sequenceDiagram +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +```mermaid +%%{init: { "sequence": { "wrap": true, "width":300 } } }%% +sequenceDiagram +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, How did you mother like the book I suggested? And did you catch with the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` diff --git a/docs/config/img/accessibility-div-example-2.png b/docs/config/img/accessibility-div-example-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b257edbd03f5270e5ccd3bf52878b9e7030913ee GIT binary patch literal 122847 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 QBjBF^uP6_g>&y551BwyAjsO4v literal 0 HcmV?d00001 diff --git a/docs/config/img/accessibility-div-example.png b/docs/config/img/accessibility-div-example.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3478f0bd4ab650690d736c4e9dbe3cddf3d7ed GIT binary patch literal 122202 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 Km%KIf|Nj6|=%H5t literal 0 HcmV?d00001 diff --git a/docs/config/img/assignWithDepth.png b/docs/config/img/assignWithDepth.png new file mode 100644 index 0000000000000000000000000000000000000000..d00e8eb7c9aa5cc48b0c2d1b102e57977b7b4845 GIT binary patch literal 6595 zcmb7JXH=8fx&|FVkzzxLG#%{J5IO;@Ac%m{q)HDp2odB11sN2SB329pf{K9j5+R0! zq8MsIKuAIo2~EOK0%#zJ5xAK%bJv-<>&)DHf9>^td#`V=x9n%X&$I8@+geIV?2`}? z5s|Vwcjl6a$R<EUM09TJX5p8dC+F9NgNwb5<Jpak4JMPx=kqxnj;pJylA_Xw4<D#h z>e(}AGtx6kUzg6$&qrU24uS=_UUn@gC?J!`csxGoRuY@de*XM9rVc}+(XyXrkBp4K z0%22AQ!Ey1X=y1@>0y|N2<V8_nUjvOOm2R9%=p{769R8_Rfg_xP8Y!5*ys&4)o20N zmg>$m1seZ!`+!f$L59=EER_vIQD}h*Qv7Fc<<48c{>_{uNu;<A^c`W`<M_17?q;Q% zyt4DSkb9avh}y|RZ?e}9j49}307P5_`<w#i0)C(rem7P-5Cfo8hZgUOWP^BN*ia9O zo3t_A8y&JhuUd1PN(Z!wZvg7qdaT>B*n!?SXSXBNq7eK=uEL~J&2_!ROVPtarfu%p z;po~KWHFi>KHM_naa3*ilA~HL|ES36VlwYxD4Wn&`=#c)tC7jt^)Vk`<xj*@B*YCp z4!Actn9~8E`>pmwpp~W=V6?*2G*McX=bhFJ9Jbm2=@Ts>JpSV}u5w!zE2T%(h?IQn zeoI_?jz4mI8$BEsC${?mSVZT+p)ERp3Bg~CIXL>l<EckmD(bKRmC{{gFRG5g0{W({ zdxJ#OF}~;v6ij}}TFB#*)z~^5!+*s-Phb7b)vnmGSNu)1%U~^kL)=kX%*)Ea7EQPO z^eV$}Z+5-$G-rhtay8bRM&d~``cWE7!KdBgF^zjYBi#zd%iL6C!7{YV3RA()=H?}C zGDVQ2*|dT0dtfGbZKQZ;1w}i|&P0h<e03P3f8<ucJd)L*gNsBP$#oHg|F`e1WUk&d zFZZ?nkql&$5f1L5&X>&&<<MnIq~vzm!*|`N!(8Ejv?-A;l$n%%WfCF}NMrBaYuHU_ zDB#R!sGq2k_)|UnB^c0tLgQGO*g<9e>PAwKE~@YpP1!$8j}kD0Q-E-&Dp*ikCo?%C zm5d5s{6deevuX|%YfS?VXjQ`#4D^*K0h0^`egY(96#H>&niRrGTP7--oX*O{k#;`| z$@4|amC{=cw>Zi7Ns-m61`|(r)B%y{DkV8AFK=(J>ZF^bNj1Br&gj!AI-k{1a#+3X zoScV1lNcWy-?7A2`vC1^?BM0utAQ!9@TKdY(zSb&^Gw=-#?pMfcK5wMy4r!-Bn{~( zUt^UVpVnP!2v$v{YuQO&`4iAe1c>euDMbJhqLXSGB{=V(EBO=_abNGj)9t&-6Eh%x zXg^d(Y=5%)u?M2O6Jn&zAZ;1{R_I@iv6H+@`Zq@Jrz=Lc6+8BQxk{SFH^9A?c_~2O z7j<5UXU$F(VYuvw850jcaZWIIgtGzGK0bS22F<D++Bp>D^#yxDtUiU9_u09Gz^@3s z1=M`l+*Em8Gq=Pe+^*U<sCbqrTo;1YY?D^U0j^X(y7y0<lkFC~8{m~zs0(6mxw1p@ zPNX<Ufjn?QX>WQrsV9U|CziqUzE=s!h&fyy?Ghi@q807DMOh((#1lNKGui%AbL?_h zoRR1)VLE<uDak|juWtR@;mcsk6ZL87)S7*~H_ZztL{OLY>}o$AQ55|hJ1TOqjX2d- z)rtbAQiYewb24BVfA2i;Kb<ZQ)6Jkxc@a?OqfP%QfWn<pnuQ4CF??3STP6jZbqyLT zeVR9uQY1eH5>}!%4DH)0o~o0}N~t(XO7;U4I9&{L6Sec!<cKP6he$r~Nk}<4m#mrt zscw8ACS$1s^BVS6R_yvj#mu~Sl{I{nlOal;h8pgzd-ZoY{I|3JGrRx48ML=oWMDlY z-)~Ue_@pNrS<L>it3qF9x1^s}<UGotk0Z*v9Ijk!$R>>K6jg_C7;yT~*-#CJ+i)@N zX;D2zzvfCkc=Bs^15(_<2Ib=E7~dnImjM*T$P8kc27Q%@tLV3E>JKaG)3Y2O(i@<? zY$A?U%BI~G%=tBz$`!grCV1O!ifDZUm_?Cu>Fa){f)s2$?g3X-wu33)0I&FhM#lr3 zO0<qop11=kiw7-kk$s>?F$-F7KE!#~wnRqUe4Ss$EG<XX(Jn;5%bED_x0ve&2BhRv zqxBgO?2%8}5fAL-49Mn0yGZAW>^=X48LqZoDcErzURh6uMPP5W<qT~!fDz)=eWL(U zz5bRgUwkjN?@JAUkuqCvwAC+FASK_I<)vZHQ_4{znPfU5IG&%<G?KCJ+cnN}<i4dw zq_|NJ2lrJ6p~>t@`U+Y+#sMD2No6?L-w_?|BaAoh(ip3}tZ&D-_IbP_FHn<+_#HiH z0-NQ|XhiXjtvW(r>@TlBj)YlomiG;HkiujSf@PxgKR}NRT9Yu#pyaZStrO5roL^oE zis|Y{2zXZzmM5q1h68}}vq;+B_nzXyFPjnX=p^Ra;&7E|FEsQPImhUoXDvy|hvrQR zu<3evRw)@rayzJy&e)fLzvKxq*GvC>$^HdYe>d7Jc+F8;Y*wO9Q$31<uq({ho#!5V zem5544x#`U?(SCQNphN`DZ14wpG-)sW$GBJmH};9aE)A}zB)V3s_q`4B><~kOw8S$ zWrs?jz-&@Wam@dXL>GxoaAb36FD!8`e&vAA2*!E)#Hl_QwZ|$(=_SP-4W>*_E5k$R z+KMksmvDD`OZx^t90?kX*HfMj&%|m)Bl+d5ht^ZkCn2Bhtb5w=s&8|x3VaJtQ!&+U z8rrGmnW-d9|8Ys82N#=(pm#f;{VtGezuML9?*%<o5;_7ch)sM)kek@adt)1Qt=0}T zQ<$)yQ>04D>9~Khx@$9Ml^ii~PbQva?RfK3-ZgG`ODL0MSZ$aZ>7}iu<kL$q)V@vk zEd(M*FoUcH2S!gxrgh{_QO}g!?+^%g6Ie8Y)yHaAJ;NJkhn5mF)NUlxlgeTL5a~Y} zoeCsuK(A=zXTrg9u-)Thn=ETW&_AF5>AuMC@a{}5<cmrBtW{VK?^yOuyen*wCjJcf zqcfn+|E2PUX9y)F0!{KEsVd2!+xnpRdXd&Ie}S=?w;CYMyN4N+ve%E+_uhy7J&t`k zAu}q^sX{x+^_I0hB>77Q*-pKy{pa50Ka|-Y&i~(M7E@6rd{+l-(B<N<jEWo=gA2n6 z-~e2-RR46n%2N}Y$jTI{nfBY&lii`9mHR*XHJ^GeEv%m<rX!4SBG+PUVx=LRB0C6D z?kS^nn6r9whcS;?&C#h}xYAdM`OwlM#i3@hzlkUkbAfwg&IJe0$H2pFJlnYAVwof! zRv&3F^2AiL;KB%0aIrz9iTl`^t}$IV*8z1Zj#q3zToWw|pLTvLB{g>-&wBlGF+2gQ z@pSFB`zkZiDeU?1`TX=o98Qc46@*ZU^+&5_!c?@Yd<1UAxK&L^#bK{JbI;9*>H*yK zDWI|KJ|}06JhO<9-?($9tKh>c0Jy4c%CmSehWRRbTz_`oH_FEtKfZHlkQxOSRG5GK zY5EOtHxW6d@DoqdDf%LprOn--=?iASocg*U@rlqPv9cygYyfr8%i=hWrC*oY(Dq@7 zlDnv>y<iol7ZI`;sFJ3NsY-I`TrO{C!JL9yHs}}Za;Fpy^716O<#_D4%)oL(mDAQX z&*aD0{$L{`*rIuM;=P8X_{pn#IP!LZg+SGIQinA^o{k|hB0~CzPz5jJ+Jw;MFSCVS z`qi1%%?kH9`P4K3Hfh4=Yk4P-vhAz}S4ZZHPKA=<b==7&cN{>XYEE%SZMWY@4nnI~ zNBa)1J0*U~4d7K&TXa0Tt2En37-W?#+9>(5(|`eRRu>mBje?nP!OB`(&-MvJZ+K@a z<O<$hj(u%T;}ujF^l*IZQw@B686_k9-ZlfwOd8=w@7^QP_GUS9(mNEs^)b_dz?w?S zZ^=4ii~L*j5l2uy9>@u^)Mh~c6o{LF8?v7~QXDg+($0ZDm^U{yKNe=f=$Wd&I$#}Y zANIVCQOkumJoq?&v@vwlOP8ch$o1jR8AnZwByX7X`M}+;`^*mBak}0~35Bz-t~AJZ zw;ePjN8)pKy7xiT3#-vMd(e2dpL$-EyD8jQrr9E+WiDV{_r5+Qx~O*I#@(Xb#E_y0 z0;^EBr7zD3*p&*C{B_XWymS0e8ZkrkdfH+$eJg15T;+G@`l5&IH@|m(hJ=4N4Cr95 zwJ)R8Z{N;5gYPF|W(LM*Uq@X{3M?_kFT79Y6#1_lX#3G5S+KE7Yxk!s^oKf|-s@>T zvwGepC7Ay9B$@C2%=#)lV7uPR;Q=bd^z|(S{qDfzF!w{_rs3+tziPjzc#eN0m-q>h zJ<l_SD)IsoWiT%I@rc0^t&wmq!NU$mwS2FSfwZ&ndHt1ODrLhF!pXce;X;PAVM}-) zs#4FHZ@dDimib?a@9~-DG0zs(o|Zot$(+hDc)J1Tg;}**n#Nkqp439rn8q#hiWl@E zo{mAj=Cz5t>T3yPi5Zna>|eKPy=#TiF{O@ACTE)CiUN)mY7||Pj?Y@0O%L#V!LMj4 z9I?qaznQqVoSxxa>!9?R6-q6a!5H#RLA37CsCLvnro6E0H#9E+?s4}F589I>Hs&W# za}vzcch6h()Sl?v+Zo^#N?dkvusuYQ5BJ!-;-8->JFl&^o~O#Yw2QAMZ%C3{E{Ig` zjtcMuf?X?^-974J#M&3#2NVy`(3vmqMoqsoF82yGzqawI87MjG?^QG_U3|K-@XN}Z zg7k|x!1IYz^>EXf*vA1R|N9X-VtpS`K`lK41)lu$9{+U{j-UILBWLbzi9(UmJ#Tc9 zRF;)XNxWr}!|D}+go=Z+TXxYVSl9eoqxgov+Hz|>tnhw!)01vvo89J<V5VE2+POin z6(i+MFJY$e*PIdo8UO6=*%MyrONYf<MCqipYk+QA6e}Vw`lt~&GA<n`g-2+*FBWm+ zCnTOP?Pl&H26_FOS|_9Kc%*$7O`3jKN$3?BDJRkB>0&5I{gg1+`@@H1vWirQbN9Q# zop52Zib1iu5jC0?gFiQQy#Smo3++zxY|feJ_6(F}a_ZaC);qL!^1NsS26Ad%lDel5 zNiR|1H9Gv<#?~K%m%Og^W?N2fqIl;`1r<=q+GUR$r2^#>%-)809bcA5x_EAU?=0S1 zs;Ol`Q6kU&d~Gh=vgMPB9cT@-L{2xqsop)4155NfEPE$lg0MKaW3@37ZF*{jrLbgm zJVV}L*{#8&d-REA|DML}n35|_D@g)_>5g0)VSHld8BTjT9QSadCKn&!#osAIGMV1^ z{PFu_N|?-oSTPQm5A(Iur8FONu+4d9&4;>nb$*wekku&>N4Og_I0s7z6I2vX8=~fP zzvxn}H+q{NPj{QNFdxlr(RDA@dz`AtIVIzwU#G7b*BKQRb=|lCXXMDG(QT(a5Z~u8 z+ioM&Wjl*%PwQ%-zin4()Wmny&~QNVpullI-Rv}~DorcFG+!(LUTkAN#dLit!2D=| z*j1Q9vet`=dn~>`_vt;A<dHTQ7j72Z;5^ftPqs}?djSL=hG|FSSMcY?^kzujpKpFf zDfSWH)Jyb`ON;~MWcGQO_MpATGwCMfQ6jEfMjL4J!!{kUK#9-H`NsIB$qZ2k_z%n_ z$g>DKL@cmi6?XFPTWrN3G?U;XOW3JEW?fwi>51`QOi+Ze&&(*F@Ffyn1S^nO!G*f9 z7iqri=et_DMuA)mE`ndK-#*ovc}YuKCi_=Z$?5m7?BXHH7D&L*$0=t4;eh9N|Iu0? zEPT`XiY#8-Y&o8-Z(MYmI5Ft)3w6yWhl-?M(HcfgrR{icp@w;wi4;Fy(GG<i*Q#m2 zWgcC63H-)6$&d_YQ6`@29}ms~iG}%2xXL=kY){qu7mJwx7mK(zK@!qy^^^ZhB5s88 z4CU6|-=IRBj@J`@nVd6D?$$CgNc^d)rAg<C{=%iwt^l{k`WVhMs^=Kebd!;|7P(!$ zbZ3m<aX~tVd{H+Mca{&!I)SF1$ABT%vf(Q_4vnVy<Kth9HRjNIS5X1F(dI95BwMh) zeq4qkd^wyI+&=zBopUGCy-o}c4ht6xx!A;a4y!OlsdD=trwxb+dBfXbL=`nE%VwDw zimBy?Nvkw5*$|=3LYmdP%hIWwn>b5~56~B$+Wsuy`+Z~y1PAlZTj`$DZM)iLxLZFq zs_iX&<SG0QUJ?J;El@s!=t3zwGv}{AXR$A4N3B}*HNnkjp)RrR;aQC*60p7t<*<18 z4r0z{7mf+4gNpfWuxxKt<5eP@M(_O1eIz9ILo7mLu!Q?p#0GVp!Gzq@{A!c4>Ti}` zS1FdGm#o@)-8Yf<#_mST2m!~03=bOP_hO$|gandiRYaS2#|Ky)dJ}W+#R|&6J)YLw zzzAZ0-8pJf>%wL1h+bb>jScqGMcuBr5p6#-*h+tX$YK?kzN`u0;P4C6jgyO{@$co^ zaJLTcQM)6#*(v*az@_B<CRB8$eXs0rct)|K))5BvMKsWpZNxiu#lxUzB(?CH;PXdx zIwJTb;y~T%xzK{quP?_GFb-VCH&>b{RpMbpMxfNSjVs$*9=4m_jG7A=rVnZ1XY>@z z)^>j91k3pzQ~A!GbBx!2kGih;NK{jU&2<e3yO^^Q92l9Te38`)UD3RNHe^C5v?nt0 zQQu;ITYHL_o9>OCy_|1QcFgR3ac~w9x_jo(6p06xX*TL0Yp2zSRvA#j(^zja%gxNp zL(JuQ1DTzl3@IOkRK*Tod0395Q1Gf$(<ZV-0bk&>ZKxX}r{Nb7I)y55DL-@fWwE+I zwUZ%KBM~fbG#6VxPfDK*Z+=!!W6)>rgcz74MG#RQrjTdLqKBYQSG21Q2UrOP?Dx>N zGb@5GdpYk6e)@am=`|B`TUou$wEHA-WW^?OdhCu-8DG7v0x3)wzu%iZ8|BDl%z-T| z^U6&firWctoYy4#XV0e&ZO8BW0rxON2gA)AnnHKTPfq!;)ew$c*PG>j-I3bWrnb!s zuC)DTTX^hyg&`EhW|kBOB*?OM%5qIM(q4Ef+=is$>+gjXIMTeOh4n67Zi;uDK*H3H ze6^17Wh)>CCEKd6fVH)*`0WqfA*_FAMW^_{?eB6?^KvOfrE`@)?aB2gXrL;t@>RmP z6F{S4o>qp9asTM1qMZItsTnKh<UHc$kM3+%=3QP_Q68J+9Q$ZBD%y-bbO%`6dW9lM zgvQ>krlW^3Su(8;ltP4Z=WB7)Y8)2?mJzP5hh^|acgCQ6_P}h9wTbaf%3rEnNf%*1 zSnEBgreB{dH5aoS7E@wz>lnXV-hR-(?eO2LR=){?%^~a`RRNpJ(t|fpv8@{JJ<D0x zi5?D_>!$yz@hD!jN50ZEO`x<Il0EpTDnK<2Q-|7RqqKj{M<jv>$L|_C6UWNgw^9#> zKjXosX-O(E#cS%Y7H25PIikZ$fF_OxVR1)$i{ZT+P=l5P=PFg|+OV>K!wBz7z@&X; z)zX_`?JLg`4!{R~V8IRXP0rN%%bL4%m_x%lcY%d=xBv~pk92p*ObQu5KXmf`8|@5C zygB-?<*mh!bGQXpR;g_V;gAQ^BYcZi2U>t;)Cxs)Cpjle-eFthl4nEoxUeHW&1bII z;D^cYrJ}7l`5#kY!(hS1LH!eimE`{m=?>GaHpJ*0oqNwgc3fJl*^VNs-jt8=L1gdY zyweQp6=rPc4!0gQ2iqRMc!CRJ$+Sv`Rhz1E-YJJwnfm34<69*+`;S&gbhhUBKlm5T t2W{TJ`JaUq;Y)|We0oJ>p>tz1r%z3F;IkG<_$nh}b=LMw)hX{^{tK+1AKw4~ literal 0 HcmV?d00001 diff --git a/docs/config/img/object.assign without depth.png b/docs/config/img/object.assign without depth.png new file mode 100644 index 0000000000000000000000000000000000000000..c87505c1c1f990915ddba0b61d378483e3736e35 GIT binary patch literal 6067 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 H`p16(Z19u5 literal 0 HcmV?d00001 diff --git a/docs/config/img/python-mermaid-integration.png b/docs/config/img/python-mermaid-integration.png new file mode 100644 index 0000000000000000000000000000000000000000..d54a0e97d567ce61a36127cf05f278316d0a3d07 GIT binary patch literal 39043 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 DW0KD` literal 0 HcmV?d00001 diff --git a/docs/config/img/wrapped text.png b/docs/config/img/wrapped text.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8dd12386e32d52b3f282ef45838920d37a70cc GIT binary patch literal 105313 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 literal 0 HcmV?d00001 diff --git a/docs/config/mermaidCLI.md b/docs/config/mermaidCLI.md new file mode 100644 index 0000000000..530ac93ab3 --- /dev/null +++ b/docs/config/mermaidCLI.md @@ -0,0 +1,9 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/mermaidCLI.md](../../packages/mermaid/src/docs/config/mermaidCLI.md). + +# mermaid CLI + +mermaid CLI has been moved to [mermaid-cli](https://github.com/mermaid-js/mermaid-cli). Please read its documentation instead. diff --git a/docs/config/n00b-advanced.md b/docs/config/n00b-advanced.md new file mode 100644 index 0000000000..5dd9074297 --- /dev/null +++ b/docs/config/n00b-advanced.md @@ -0,0 +1,26 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/n00b-advanced.md](../../packages/mermaid/src/docs/config/n00b-advanced.md). + +# Advanced n00b mermaid (Coming soon..) + +## splitting mermaid code from html + +A more condensed html code can be achieved by embedding the mermaid code in its own .js file, which is referenced like so: + + stuff stuff + </div> + </body> + </html> + +The actual mermaid file could for example look like this: + + mermaid content... + +--- + +## mermaid configuration options + +... diff --git a/docs/config/setup/README.md b/docs/config/setup/README.md new file mode 100644 index 0000000000..1cf82797de --- /dev/null +++ b/docs/config/setup/README.md @@ -0,0 +1,13 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/README.md](../../../packages/mermaid/src/docs/config/setup/README.md). + +# mermaid + +## Modules + +- [config](modules/config.md) +- [defaultConfig](modules/defaultConfig.md) +- [mermaidAPI](modules/mermaidAPI.md) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md new file mode 100644 index 0000000000..993a7627b2 --- /dev/null +++ b/docs/config/setup/modules/config.md @@ -0,0 +1,276 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/config.md](../../../../packages/mermaid/src/docs/config/setup/modules/config.md). + +# Module: config + +## Variables + +### defaultConfig + +• `Const` **defaultConfig**: `MermaidConfig` + +#### Defined in + +[config.ts:7](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L7) + +## Functions + +### addDirective + +▸ **addDirective**(`directive`): `void` + +Pushes in a directive to the configuration + +#### Parameters + +| Name | Type | Description | +| :---------- | :---- | :----------------------- | +| `directive` | `any` | The directive to push in | + +#### Returns + +`void` + +#### Defined in + +[config.ts:193](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L193) + +--- + +### getConfig + +▸ **getConfig**(): `MermaidConfig` + +## getConfig + +| Function | Description | Type | Return Values | +| --------- | ------------------------- | ----------- | ------------------------------ | +| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | + +**Notes**: Returns **any** the currentConfig + +#### Returns + +`MermaidConfig` + +The currentConfig + +#### Defined in + +[config.ts:138](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L138) + +--- + +### getSiteConfig + +▸ **getSiteConfig**(): `MermaidConfig` + +## getSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | +| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | + +**Notes**: Returns **any** values in siteConfig. + +#### Returns + +`MermaidConfig` + +The siteConfig + +#### Defined in + +[config.ts:97](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L97) + +--- + +### reset + +▸ **reset**(`config?`): `void` + +## reset + +| Function | Description | Type | Required | Values | +| -------- | ---------------------------- | ----------- | -------- | ------ | +| reset | Resets currentConfig to conf | Put Request | Required | None | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | +| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | + +**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) + +#### Parameters + +| Name | Type | Default value | Description | +| :------- | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `config` | `MermaidConfig` | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). | + +#### Returns + +`void` + +#### Defined in + +[config.ts:225](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L225) + +--- + +### sanitize + +▸ **sanitize**(`options`): `void` + +## sanitize + +| Function | Description | Type | Values | +| -------- | -------------------------------------- | ----------- | ------ | +| sanitize | Sets the siteConfig to desired values. | Put Request | None | + +Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies +options in-place + +#### Parameters + +| Name | Type | Description | +| :-------- | :---- | :-------------------------------- | +| `options` | `any` | The potential setConfig parameter | + +#### Returns + +`void` + +#### Defined in + +[config.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L153) + +--- + +### saveConfigFromInitialize + +▸ **saveConfigFromInitialize**(`conf`): `void` + +#### Parameters + +| Name | Type | +| :----- | :-------------- | +| `conf` | `MermaidConfig` | + +#### Returns + +`void` + +#### Defined in + +[config.ts:76](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L76) + +--- + +### setConfig + +▸ **setConfig**(`conf`): `MermaidConfig` + +## setConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure +keys. Any values found in conf with key found in siteConfig.secure will be replaced with the +corresponding siteConfig value. + +#### Parameters + +| Name | Type | Description | +| :----- | :-------------- | :-------------------------- | +| `conf` | `MermaidConfig` | The potential currentConfig | + +#### Returns + +`MermaidConfig` + +The currentConfig merged with the sanitized conf + +#### Defined in + +[config.ts:114](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L114) + +--- + +### setSiteConfig + +▸ **setSiteConfig**(`conf`): `MermaidConfig` + +## setSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls +to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) +will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this +function _Default value: At default, will mirror Global Config_ + +#### Parameters + +| Name | Type | Description | +| :----- | :-------------- | :------------------------------------------ | +| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig | + +#### Returns + +`MermaidConfig` + +The new siteConfig + +#### Defined in + +[config.ts:62](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L62) + +--- + +### updateCurrentConfig + +▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig` + +#### Parameters + +| Name | Type | +| :------------ | :-------------- | +| `siteCfg` | `MermaidConfig` | +| `_directives` | `any`\[] | + +#### Returns + +`MermaidConfig` + +#### Defined in + +[config.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L14) + +--- + +### updateSiteConfig + +▸ **updateSiteConfig**(`conf`): `MermaidConfig` + +#### Parameters + +| Name | Type | +| :----- | :-------------- | +| `conf` | `MermaidConfig` | + +#### Returns + +`MermaidConfig` + +#### Defined in + +[config.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L80) diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md new file mode 100644 index 0000000000..c7ad1402f9 --- /dev/null +++ b/docs/config/setup/modules/defaultConfig.md @@ -0,0 +1,56 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/defaultConfig.md](../../../../packages/mermaid/src/docs/config/setup/modules/defaultConfig.md). + +# Module: defaultConfig + +## Variables + +### configKeys + +• `Const` **configKeys**: `string`\[] + +#### Defined in + +[defaultConfig.ts:1881](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1881) + +--- + +### default + +• `Const` **default**: `Partial`<`MermaidConfig`> + +**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click +here](8.6.0_docs.md)].** + +## **What follows are config instructions for older versions** + +These are the default options which can be overridden with the initialization call like so: + +**Example 1:** + +```js +mermaid.initialize({ flowchart: { htmlLabels: false } }); +``` + +**Example 2:** + +```html +<script> + const config = { + startOnLoad: true, + flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'cardinal' }, + securityLevel: 'loose', + }; + mermaid.initialize(config); +</script> +``` + +A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). +A description of each option follows below. + +#### Defined in + +[defaultConfig.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L33) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md new file mode 100644 index 0000000000..0acfe4f979 --- /dev/null +++ b/docs/config/setup/modules/mermaidAPI.md @@ -0,0 +1,308 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md](../../../../packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md). + +# Module: mermaidAPI + +## References + +### default + +Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) + +## Variables + +### mermaidAPI + +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> + +## mermaidAPI configuration defaults + +```ts +const config = { + theme: 'default', + logLevel: 'fatal', + securityLevel: 'strict', + startOnLoad: true, + arrowMarkerAbsolute: false, + + er: { + diagramPadding: 20, + layoutDirection: 'TB', + minEntityWidth: 100, + minEntityHeight: 75, + entityPadding: 15, + stroke: 'gray', + fill: 'honeydew', + fontSize: 12, + useMaxWidth: true, + }, + flowchart: { + diagramPadding: 8, + htmlLabels: true, + curve: 'basis', + }, + sequence: { + diagramMarginX: 50, + diagramMarginY: 10, + actorMargin: 50, + width: 150, + height: 65, + boxMargin: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + messageAlign: 'center', + mirrorActors: true, + bottomMarginAdj: 1, + useMaxWidth: true, + rightAngles: false, + showSequenceNumbers: false, + }, + gantt: { + titleTopMargin: 25, + barHeight: 20, + barGap: 4, + topPadding: 50, + leftPadding: 75, + gridLineStartPadding: 35, + fontSize: 11, + fontFamily: '"Open Sans", sans-serif', + numberSectionStyles: 4, + axisFormat: '%Y-%m-%d', + topAxis: false, + }, +}; +mermaid.initialize(config); +``` + +#### Defined in + +[mermaidAPI.ts:949](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L949) + +## Functions + +### appendDivSvgG + +▸ **appendDivSvgG**(`parentRoot`, `id`, `enclosingDivId`, `divStyle?`, `svgXlink?`): `any` + +Append an enclosing div, then svg, then g (group) to the d3 parentRoot. Set attributes. +Only set the style attribute on the enclosing div if divStyle is given. +Only set the xmlns:xlink attribute on svg if svgXlink is given. +Return the last node appended + +#### Parameters + +| Name | Type | Description | +| :--------------- | :------- | :----------------------------------------------- | +| `parentRoot` | `any` | the d3 node to append things to | +| `id` | `string` | the value to set the id attr to | +| `enclosingDivId` | `string` | the id to set the enclosing div to | +| `divStyle?` | `string` | if given, the style to set the enclosing div to | +| `svgXlink?` | `string` | if given, the link to set the new svg element to | + +#### Returns + +`any` + +- returns the parentRoot that had nodes appended + +#### Defined in + +[mermaidAPI.ts:292](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L292) + +--- + +### cleanUpSvgCode + +▸ **cleanUpSvgCode**(`svgCode?`, `inSandboxMode`, `useArrowMarkerUrls`): `string` + +Clean up svgCode. Do replacements needed + +#### Parameters + +| Name | Type | Default value | Description | +| :------------------- | :-------- | :------------ | :---------------------------------------------------------- | +| `svgCode` | `string` | `''` | the code to clean up | +| `inSandboxMode` | `boolean` | `undefined` | security level | +| `useArrowMarkerUrls` | `boolean` | `undefined` | should arrow marker's use full urls? (vs. just the anchors) | + +#### Returns + +`string` + +the cleaned up svgCode + +#### Defined in + +[mermaidAPI.ts:243](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L243) + +--- + +### createCssStyles + +▸ **createCssStyles**(`config`, `graphType`, `classDefs?`): `string` + +Create the user styles + +#### Parameters + +| Name | Type | Description | +| :---------- | :-------------- | :----------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | +| `config` | `MermaidConfig` | configuration that has style and theme settings to use | +| `graphType` | `string` | used for checking if classDefs should be applied | +| `classDefs` | `undefined` | `null` | `Record`<`string`, `DiagramStyleClassDef`> | the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) | + +#### Returns + +`string` + +the string with all the user styles + +#### Defined in + +[mermaidAPI.ts:170](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L170) + +--- + +### createUserStyles + +▸ **createUserStyles**(`config`, `graphType`, `classDefs`, `svgId`): `string` + +#### Parameters + +| Name | Type | +| :---------- | :----------------------------------------- | +| `config` | `MermaidConfig` | +| `graphType` | `string` | +| `classDefs` | `Record`<`string`, `DiagramStyleClassDef`> | +| `svgId` | `string` | + +#### Returns + +`string` + +#### Defined in + +[mermaidAPI.ts:220](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L220) + +--- + +### cssImportantStyles + +▸ **cssImportantStyles**(`cssClass`, `element`, `cssClasses?`): `string` + +Create a CSS style that starts with the given class name, then the element, +with an enclosing block that has each of the cssClasses followed by !important; + +#### Parameters + +| Name | Type | Default value | Description | +| :----------- | :---------- | :------------ | :--------------------------------------------- | +| `cssClass` | `string` | `undefined` | CSS class name | +| `element` | `string` | `undefined` | CSS element | +| `cssClasses` | `string`\[] | `[]` | list of CSS styles to append after the element | + +#### Returns + +`string` + +- the constructed string + +#### Defined in + +[mermaidAPI.ts:154](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L154) + +--- + +### decodeEntities + +▸ **decodeEntities**(`text`): `string` + +#### Parameters + +| Name | Type | Description | +| :----- | :------- | :----------------- | +| `text` | `string` | text to be decoded | + +#### Returns + +`string` + +#### Defined in + +[mermaidAPI.ts:128](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L128) + +--- + +### encodeEntities + +▸ **encodeEntities**(`text`): `string` + +#### Parameters + +| Name | Type | Description | +| :----- | :------- | :----------------- | +| `text` | `string` | text to be encoded | + +#### Returns + +`string` + +#### Defined in + +[mermaidAPI.ts:99](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L99) + +--- + +### putIntoIFrame + +▸ **putIntoIFrame**(`svgCode?`, `svgElement?`): `string` + +Put the svgCode into an iFrame. Return the iFrame code + +#### Parameters + +| Name | Type | Default value | Description | +| :------------ | :------- | :------------ | :--------------------------------------------------------------------------- | +| `svgCode` | `string` | `''` | the svg code to put inside the iFrame | +| `svgElement?` | `any` | `undefined` | the d3 node that has the current svgElement so we can get the height from it | + +#### Returns + +`string` + +- the code with the iFrame that now contains the svgCode + TODO replace btoa(). Replace with buf.toString('base64')? + +#### Defined in + +[mermaidAPI.ts:271](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L271) + +--- + +### removeExistingElements + +▸ **removeExistingElements**(`doc`, `isSandboxed`, `id`, `divSelector`, `iFrameSelector`): `void` + +Remove any existing elements from the given document + +#### Parameters + +| Name | Type | Description | +| :--------------- | :--------- | :---------------------------------------------- | +| `doc` | `Document` | the document to removed elements from | +| `isSandboxed` | `boolean` | whether or not we are in sandboxed mode | +| `id` | `string` | id for any existing SVG element | +| `divSelector` | `string` | selector for any existing enclosing div element | +| `iFrameSelector` | `string` | selector for any existing iFrame element | + +#### Returns + +`void` + +#### Defined in + +[mermaidAPI.ts:343](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L343) diff --git a/docs/config/theming.md b/docs/config/theming.md new file mode 100644 index 0000000000..cfd86caa0b --- /dev/null +++ b/docs/config/theming.md @@ -0,0 +1,743 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md). + +# Theme Configuration + +With Version 8.7.0 Mermaid comes out with a system for dynamic and integrated configuration of themes. The intent is to increase the customizability and ease of styling for mermaid diagrams. + +The theme can be altered by changing the root level variable `theme` variable in the configuration. To change it for the whole site you must use the `initialize` call. To do it for just for a single diagram you can use the `%%init%%` directive + +Themes follow and build upon the Levels of Configuration, and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](./8.6.0_docs.md). + +## Deployable Themes + +The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls. + +1. **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes. + +2. **forest**- A theme full of light greens that is easy on the eyes. + +3. **dark**- A theme that would go well with other dark-colored elements. + +4. **default**- The default theme for all diagrams. + +5. **neutral**- The theme to be used for black and white printing. + +## Site-wide Themes + +Site-wide themes are declared via `initialize` by site owners. + +Example of `Initialize` call setting `theme` to `base`: + +```javascript +mermaidAPI.initialize({ + securityLevel: 'loose', + theme: 'base', +}); +``` + +**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams. + +## Themes at the Local or Current Level + +When Generating a diagram using on a webpage that supports mermaid. It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array. + +```mermaid-example +%%{init: {'theme':'base'}}%% + graph TD + a --> b +``` + +```mermaid +%%{init: {'theme':'base'}}%% + graph TD + a --> b +``` + +Here is an example of how `%%init%%` can set the theme to 'base', this assumes that `themeVariables` are set to default: + +```mermaid-example +%%{init: {'theme':'base'}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'theme':'base'}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +# List of Themes + +# Customizing Themes with `themeVariables` + +The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`. + +| Parameter | Description | Type | Required | Objects contained | +| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- | +| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor | + +**Here is an example of overriding `primaryColor` through `themeVariables` and giving everything a different look, using `%%init%%`.** + +```mermaid-example +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +**Notes:** +Leaving it empty will set all variable values to default. + +## Color and Color Calculation: + +Color definitions have certain interactions in mermaid, this is in order to ensure visibility for diagrams. Mermaid will adjust some variables automatically, when colors are changed in order to compensate and maintain readability. + +**The Default Value Column** to the right of the Variable column will denote the Variable paired/associated with the Variable on the left and the nature of this pairing or association. If it for instance says primaryColor it means that it gets primaryColor as default value. If it says "based on primaryColor" it means that it is calculated/ derived from primaryColor. This calculation can be primary color inversion, a change of hue, darkening or lightening by 10%, etc. + +You can create your own themes, by changing any of the given variables below. If you are using a dark background, set dark mode to true to adjust the colors. It is possible to override the calculations using the variable names below, with `%%init%%` if you wish to style it differently. + +## Theme Variables Reference Table + +> **Note** +> Variables that are unique to some diagrams can be affected by changes in Theme Variables + +| Variable | Default/Base/Factor value | Calc | Description | +| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- | +| darkMode | false | | Boolean Value that dictates how to calculate colors. "true" will activate darkmode. | +| background | #f4f4f4 | | Used to calculate color for items that should either be background colored or contrasting to the background. | +| fontFamily | "trebuchet ms", verdana, arial | | | +| fontSize | 16px | | Font Size, in pixels | +| primaryColor | #fff4dd | | Color to be used as background in nodes, other colors will be derived from this | +| primaryBorderColor | based on primaryColor | \* | Color to be used as border in nodes using primaryColor | +| primaryTextColor | based on darkMode #ddd/#333 | \* | Color to be used as text color in nodes using primaryColor | +| secondaryColor | based on primaryColor | \* | | +| secondaryBorderColor | based on secondaryColor | \* | Color to be used as border in nodes using secondaryColor | +| secondaryTextColor | based on secondaryColor | \* | Color to be used as text color in nodes using secondaryColor | +| tertiaryColor | based on primaryColor | \* | | +| tertiaryBorderColor | based on tertiaryColor | \* | Color to be used as border in nodes using tertiaryColor | +| tertiaryTextColor | based on tertiaryColor | \* | Color to be used as text color in nodes using tertiaryColor | +| noteBkgColor | #fff5ad | | Color used as background in notes | +| noteTextColor | #333 | | Text color in note rectangles. | +| noteBorderColor | based on noteBkgColor | \* | Border color in note rectangles. | +| lineColor | based on background | \* | | +| textColor | based on primaryTextColor | \* | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in gantt diagram | +| mainBkg | based on primaryColor | \* | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc | +| errorBkgColor | tertiaryColor | \* | Color for syntax error message | +| errorTextColor | tertiaryTextColor | \* | Color for syntax error message | + +# What follows are Variables, specific to different diagrams and charts. + +## Some Theme Variables serve as, or affect the Default Values for Specific Diagram Variables, unless changed using `%%init%%` . + +## Flowchart + +| Variable | Default/ Associated Value | Calc | Description | +| ------------------- | ------------------------- | ---- | ---------------------------- | +| nodeBorder | primaryBorderColor | \* | Node Border Color | +| clusterBkg | tertiaryColor | \* | Background in subgraphs | +| clusterBorder | tertiaryBorderColor | \* | Cluster Border Color | +| defaultLinkColor | lineColor | \* | Link Color | +| titleColor | tertiaryTextColor | \* | Title Color | +| edgeLabelBackground | based on secondaryColor | \* | | +| nodeTextColor | primaryTextColor | \* | Color for text inside Nodes. | + +# sequence diagram + +| name | Default value | Calc | Description | +| --------------------- | ----------------------- | ---- | --------------------------- | +| actorBorder | primaryBorderColor | \* | Actor Border Color | +| actorBkg | mainBkg | \* | Actor Background Color | +| actorTextColor | primaryTextColor | \* | Actor Text Color | +| actorLineColor | grey | \* | Actor Line Color | +| signalColor | textColor | \* | Signal Color | +| signalTextColor | textColor | \* | Signal Text Color | +| labelBoxBkgColor | actorBkg | \* | Label Box Background Color | +| labelBoxBorderColor | actorBorder | \* | Label Box Border Color | +| labelTextColor | actorTextColor | \* | Label Text Color | +| loopTextColor | actorTextColor | \* | Loop ext Color | +| activationBorderColor | based on secondaryColor | \* | Activation Border Color | +| activationBkgColor | secondaryColor | \* | Activation Background Color | +| sequenceNumberColor | based on lineColor | \* | Sequence Number Color | + +# state colors + +| name | Default value | Calc | Description | +| ------------- | ---------------- | ---- | -------------------------------------------- | +| labelColor | primaryTextColor | \* | | +| altBackground | tertiaryColor | \* | Used for background in deep composite states | + +# class colors + +| name | Default value | Calc | Description | +| --------- | ------------- | ---- | ------------------------------- | +| classText | textColor | \* | Color of Text in class diagrams | + +# User journey colors + +| name | Default value | Calc | Description | +| --------- | ----------------------- | ---- | --------------------------------------- | +| fillType0 | primaryColor | \* | Fill for 1st section in journey diagram | +| fillType1 | secondaryColor | \* | Fill for 2nd section in journey diagram | +| fillType2 | based on primaryColor | \* | Fill for 3rd section in journey diagram | +| fillType3 | based on secondaryColor | \* | Fill for 4th section in journey diagram | +| fillType4 | based on primaryColor | \* | Fill for 5th section in journey diagram | +| fillType5 | based on secondaryColor | \* | Fill for 6th section in journey diagram | +| fillType6 | based on primaryColor | \* | Fill for 7th section in journey diagram | +| fillType7 | based on secondaryColor | \* | Fill for 8th section in journey diagram | + +\*\*Notes: Values are meant to create an alternating look. + +# Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`. + +```mermaid-example +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +\*\*This got a bit too dark and bit too colorful. With some easy steps this can be fixed: + +- Make the primary color a little lighter +- set the tertiary color to a reddish shade as well +- make the edge label background differ from the subgraph by setting the edgeLabelBackground + +```mermaid-example +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +The Theming Engine does not admit color codes and will only accept proper color values. Color Names is not supported so for instance, the color value 'red' will not work, but '#ff0000' will work. + +# Common theming activities + +## How to change the color of the arrows + +# Examples: + +When adjusting a theme it might be helpful to look at how your preferred theme goes with the diagrams, to evaluate whether everything is visible and looks good. +In the following examples, the directive `init` is used, with the `theme` being declared as `base`. For more information on using directives, read the documentation for [Version 8.6.0](/8.6.0_docs.md) + +### Flowchart + +```mermaid-example +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[/Another/] + C ==>|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +### Flowchart (beta) + +```mermaid-example +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + flowchart TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[Another] + C ==>|One| D[Laptop] + C x--x|Two| E[iPhone] + C o--o|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +```mermaid +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + flowchart TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + B --> G[Another] + C ==>|One| D[Laptop] + C x--x|Two| E[iPhone] + C o--o|Three| F[fa:fa-car Car] + subgraph section + C + D + E + F + G + end +``` + +### Sequence diagram + +```mermaid-example +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + sequenceDiagram + autonumber + par Action 1 + Alice->>John: Hello John, how are you? + and Action 2 + Alice->>Bob: Hello Bob, how are you? + end + Alice->>+John: Hello John, how are you? + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + Note right of John: John is perceptive + John-->>-Alice: I feel great! + loop Every minute + John-->Alice: Great! + end +``` + +```mermaid +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + sequenceDiagram + autonumber + par Action 1 + Alice->>John: Hello John, how are you? + and Action 2 + Alice->>Bob: Hello Bob, how are you? + end + Alice->>+John: Hello John, how are you? + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + Note right of John: John is perceptive + John-->>-Alice: I feel great! + loop Every minute + John-->Alice: Great! + end +``` + +### Class diagram + +```mermaid-example +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + +classDiagram + Animal "1" <|-- Duck + Animal <|-- Fish + Animal <--o Zebra + Animal : +int age + Animal : +String gender + Animal: +isMammal() + Animal: +mate() + class Duck{ + +String beakColor + +swim() + +quack() + } + class Fish{ + -int sizeInFeet + -canEat() + } + class Zebra{ + +bool is_wild + +run() + } +``` + +```mermaid +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + +classDiagram + Animal "1" <|-- Duck + Animal <|-- Fish + Animal <--o Zebra + Animal : +int age + Animal : +String gender + Animal: +isMammal() + Animal: +mate() + class Duck{ + +String beakColor + +swim() + +quack() + } + class Fish{ + -int sizeInFeet + -canEat() + } + class Zebra{ + +bool is_wild + +run() + } +``` + +### Gantt + +```mermaid-example +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + excludes :excludes the named dates/days from being included in a charted task.. + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page :20h + Add another diagram to demo page :48h +``` + +```mermaid +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + excludes :excludes the named dates/days from being included in a charted task.. + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page :20h + Add another diagram to demo page :48h +``` + +### State diagram + +```mermaid-example +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + stateDiagram + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvCapsLockPressed + ScrollLockOn --> ScrollLockOff : EvCapsLockPressed + } + state SomethingElse { + A --> B + B --> A + } + + Active --> SomethingElse + note right of SomethingElse : This is the note to the right. + + SomethingElse --> [*] + +``` + +```mermaid +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% + stateDiagram + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvCapsLockPressed + ScrollLockOn --> ScrollLockOff : EvCapsLockPressed + } + state SomethingElse { + A --> B + B --> A + } + + Active --> SomethingElse + note right of SomethingElse : This is the note to the right. + + SomethingElse --> [*] + +``` + +### State diagram (beta) + +```mermaid-example +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% +stateDiagram-v2 + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvCapsLockPressed + ScrollLockOn --> ScrollLockOff : EvCapsLockPressed + } + state SomethingElse { + A --> B + B --> A + } + + Active --> SomethingElse2 + note right of SomethingElse2 : This is the note to the right. + + SomethingElse2 --> [*] +``` + +```mermaid +%%{init: {'securityLevel': 'loose', 'theme':'base'}}%% +stateDiagram-v2 + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvCapsLockPressed + ScrollLockOn --> ScrollLockOff : EvCapsLockPressed + } + state SomethingElse { + A --> B + B --> A + } + + Active --> SomethingElse2 + note right of SomethingElse2 : This is the note to the right. + + SomethingElse2 --> [*] +``` + +### Entity Relations diagram + +```mermaid-example + erDiagram + CUSTOMER }|..|{ DELIVERY-ADDRESS : has + CUSTOMER ||--o{ ORDER : places + CUSTOMER ||--o{ INVOICE : "liable for" + DELIVERY-ADDRESS ||--o{ ORDER : receives + INVOICE ||--|{ ORDER : covers + ORDER ||--|{ ORDER-ITEM : includes + PRODUCT-CATEGORY ||--|{ PRODUCT : contains + PRODUCT ||--o{ ORDER-ITEM : "ordered in" +``` + +```mermaid + erDiagram + CUSTOMER }|..|{ DELIVERY-ADDRESS : has + CUSTOMER ||--o{ ORDER : places + CUSTOMER ||--o{ INVOICE : "liable for" + DELIVERY-ADDRESS ||--o{ ORDER : receives + INVOICE ||--|{ ORDER : covers + ORDER ||--|{ ORDER-ITEM : includes + PRODUCT-CATEGORY ||--|{ PRODUCT : contains + PRODUCT ||--o{ ORDER-ITEM : "ordered in" +``` + +### User journey diagram + +```mermaid-example +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +```mermaid +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` diff --git a/docs/config/usage.md b/docs/config/usage.md new file mode 100644 index 0000000000..a0fb371cd2 --- /dev/null +++ b/docs/config/usage.md @@ -0,0 +1,391 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/usage.md](../../packages/mermaid/src/docs/config/usage.md). + +# Usage + +Mermaid is a JavaScript tool that makes use of a Markdown based syntax to render customizable diagrams, charts and visualizations. + +Diagrams can be re-rendered/modified by modifying their descriptions. + +### CDN + +<https://unpkg.com/mermaid/> + +Please note that you can switch versions through the dropdown box at the top right. + +## Using mermaid + +For the majority of users, Using the [Live Editor](https://mermaid.live/) would be sufficient, however you may also opt to deploy mermaid as a dependency or using the [Mermaid API](./setup/README.md). + +We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermaid Live Editor. + +**Installing and Hosting Mermaid on a Webpage** + +**Using the npm package** + + 1. You will need to install node v16, which would have npm. + + 2. download yarn using npm. + + 3. enter the following command: + yarn add mermaid + + 4. At this point, you can add mermaid as a dev dependency using this command: + yarn add --dev mermaid + + 5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions. + as is shown in the example below + +**Hosting mermaid on a web page.** + +> Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted.md) + +The easiest way to integrate mermaid on a web page requires two elements: + +- A graph definition, inside `<pre>` tags labeled `class=mermaid`. Example: + +```html +<pre class="mermaid"> + graph LR + A --- B + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner); +</pre> +``` + +- Inclusion of the mermaid address in the html page body using a `script` tag as an ESM import, and the `mermaidAPI` call. + +Example: + +```html +<script type="module"> + import mermaid from 'https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs'; + mermaid.initialize({ startOnLoad: true }); +</script> +``` + +**Following these directions, mermaid starts at page load and (when the page has loaded) it will locate the graph definitions inside the `pre` tags with `class="mermaid"` and return diagrams in SVG form, following given definitions.** + +## Simple full example: + +```html +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8" /> + </head> + <body> + <pre class="mermaid"> + graph LR + A --- B + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner); + </pre> + <script type="module"> + import mermaid from 'https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs'; + mermaid.initialize({ startOnLoad: true }); + </script> + </body> +</html> +``` + +## Notes: + +An id attribute is also added to mermaid tags without one. + +Mermaid can load multiple diagrams, in the same page. + +> Try it out, save this code as HTML and load it using any browser.(Except Internet Explorer, please don't use Internet Explorer.) + +## Enabling Click Event and Tags in Nodes + +A `securityLevel` configuration has to first be cleared, `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. This was introduce in version 8.2 as a security improvement, aimed at preventing malicious use. + +**It is the site owner's responsibility to discriminate between trustworthy and untrustworthy user-bases and we encourage the use of discretion.** + +## securityLevel + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | +| securityLevel | Level of trust for parsed diagram | String | Required | 'sandbox', 'strict', 'loose', 'antiscript' | + +Values: + +- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **loose**: tags in text are allowed, click functionality is enabled +- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled +- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This prevent any JavaScript running in the context. This may hinder interactive functionality of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. + +> **Note** +> This changes the default behaviour of mermaid so that after upgrade to 8.2, unless the `securityLevel` is not changed, tags in flowcharts are encoded as tags and clicking is disabled. +> **sandbox** security level is still in the beta version. + +**If you are taking responsibility for the diagram source security you can set the `securityLevel` to a value of your choosing . This allows clicks and tags are allowed.** + +**To change `securityLevel`, you have to call `mermaidAPI.initialize`:** + +```javascript +mermaidAPI.initialize({ + securityLevel: 'loose', +}); +``` + +### Labels out of bounds + +If you use dynamically loaded fonts that are loaded through CSS, such as Google fonts, mermaid should wait for the +whole page to load (dom + assets, particularly the fonts file). + +```javascript +$(document).load(function () { + mermaid.initialize(); +}); +``` + +or + +```javascript +$(document).ready(function () { + mermaid.initialize(); +}); +``` + +Not doing so will most likely result in mermaid rendering graphs that have labels out of bounds. The default integration in mermaid uses the window.load event to start rendering. + +If your page has other fonts in its body those might be used instead of the mermaid font. Specifying the font in your styling is a workaround for this. + +```css +div.mermaid { + font-family: 'trebuchet ms', verdana, arial; +} +``` + +### Calling `mermaid.init` + +By default, `mermaid.init` will be called when the document is ready, finding all elements with +`class="mermaid"`. If you are adding content after mermaid is loaded, or otherwise need +finer-grained control of this behavior, you can call `init` yourself with: + +- a configuration object +- some nodes, as + - a node + - an array-like of nodes + - or W3C selector that will find your nodes + +Example: + +```javascript +mermaid.init({ noteMargin: 10 }, '.someOtherClass'); +``` + +Or with no config object, and a jQuery selection: + +```javascript +mermaid.init(undefined, $('#someId .yetAnotherClass')); +``` + +> **Warning** +> This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead. + +## Usage with webpack + +mermaid fully supports webpack. Here is a [working demo](https://github.com/mermaidjs/mermaid-webpack-demo). + +## API usage + +The main idea of the API is to be able to call a render function with the graph definition as a string. The render function +will render the graph and call a callback with the resulting SVG code. With this approach it is up to the site creator to +fetch the graph definition from the site (perhaps from a textarea), render it and place the graph somewhere in the site. + +The example below show an outline of how this could be used. The example just logs the resulting SVG to the JavaScript console. + +```html +<script type="module"> + import mermaid from './mermaid.mjs'; + mermaid.mermaidAPI.initialize({ startOnLoad: false }); + $(async function () { + // Example of using the API var + element = document.querySelector('#graphDiv'); + const insertSvg = function (svgCode, bindFunctions) { + element.innerHTML = svgCode; + }; + const graphDefinition = 'graph TB\na-->b'; + const graph = await mermaid.mermaidAPI.render('graphDiv', graphDefinition, insertSvg); + }); +</script> +``` + +### Binding events + +Sometimes the generated graph also has defined interactions like tooltip and click events. When using the API one must +add those events after the graph has been inserted into the DOM. + +The example code below is an extract of what mermaid does when using the API. The example shows how it is possible to +bind events to an SVG when using the API for rendering. + +```javascript +const insertSvg = function (svgCode, bindFunctions) { + element.innerHTML = svgCode; + if (typeof callback !== 'undefined') { + callback(id); + } + bindFunctions(element); +}; + +const id = 'theGraph'; + +mermaidAPI.render(id, txt, insertSvg, element); +``` + +1. The graph is generated using the render call. +2. After generation the render function calls the provided callback function, in this case it's called insertSvg. +3. The callback function is called with two parameters, the SVG code of the generated graph and a function. This function binds events to the SVG **after** it is inserted into the DOM. +4. Insert the SVG code into the DOM for presentation. +5. Call the binding function that binds the events. + +## Example of a marked renderer + +This is the renderer used for transforming the documentation from Markdown to html with mermaid diagrams in the html. + +```javascript +const renderer = new marked.Renderer(); +renderer.code = function (code, language) { + if (code.match(/^sequenceDiagram/) || code.match(/^graph/)) { + return '<pre class="mermaid">' + code + '</pre>'; + } else { + return '<pre><code>' + code + '</code></pre>'; + } +}; +``` + +Another example in CoffeeScript that also includes the mermaid script tag in the generated markup. + +```coffee +marked = require 'marked' + +module.exports = (options) -> + hasMermaid = false + renderer = new marked.Renderer() + renderer.defaultCode = renderer.code + renderer.code = (code, language) -> + if language is 'mermaid' + html = '' + if not hasMermaid + hasMermaid = true + html += '<script src="'+options.mermaidPath+'"></script>' + html + '<pre class="mermaid">'+code+'</pre>' + else + @defaultCode(code, language) + + renderer +``` + +## Advanced usage + +**Syntax validation without rendering (Work in Progress)** + +The **mermaid.parse(txt)** function validates graph definitions without rendering a graph. **[This function is still a work in progress](https://github.com/mermaid-js/mermaid/issues/1066), find alternatives below.** + +The function **mermaid.parse(txt)**, takes a text string as an argument and returns true if the definition follows mermaid's syntax and +false if it does not. The parseError function will be called when the parse function returns false. + +When the parser encounters invalid syntax the **mermaid.parseError** function is called. It is possible to override this +function in order to handle the error in an application-specific way. + +The code-example below in meta code illustrates how this could work: + +```javascript +mermaid.parseError = function (err, hash) { + displayErrorInGui(err); +}; + +const textFieldUpdated = function () { + const textStr = getTextFromFormField('code'); + + if (mermaid.parse(textStr)) { + reRender(textStr); + } +}; + +bindEventHandler('change', 'code', textFieldUpdated); +``` + +**Alternative to mermaid.parse():** +One effective and more future-proof method of validating your graph definitions, is to paste and render them via the [Mermaid Live Editor](https://mermaid.live/). This will ensure that your code is compliant with the syntax of Mermaid's most recent version. + +## Configuration + +Mermaid takes a number of options which lets you tweak the rendering of the diagrams. Currently there are three ways of +setting the options in mermaid. + +1. Instantiation of the configuration using the initialize call +2. _Using the global mermaid object_ - **Deprecated** +3. _using the global mermaid_config object_ - **Deprecated** +4. Instantiation of the configuration using the **mermaid.init** call- **Deprecated** + +The list above has two ways too many of doing this. Three are deprecated and will eventually be removed. The list of +configuration objects are described [in the mermaidAPI documentation](./setup/README.md). + +## Using the `mermaidAPI.initialize`/`mermaid.initialize` call + +The future proof way of setting the configuration is by using the initialization call to mermaid or mermaidAPI depending +on what kind of integration you use. + +```html +<script src="../dist/mermaid.js"></script> +<script> + let config = { startOnLoad: true, flowchart: { useMaxWidth: false, htmlLabels: true } }; + mermaid.initialize(config); +</script> +``` + +> **Note** +> This is the preferred way of configuring mermaid. + +### The following methods are deprecated and are kept only for backwards compatibility. + +## Using the mermaid object + +Is it possible to set some configuration via the mermaid object. The two parameters that are supported using this +approach are: + +- mermaid.startOnLoad +- mermaid.htmlLabels + +```javascript +mermaid.startOnLoad = true; +``` + +> **Warning** +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. + +## Using the mermaid_config + +It is possible to set some configuration via the mermaid object. The two parameters that are supported using this +approach are: + +- mermaid_config.startOnLoad +- mermaid_config.htmlLabels + +```javascript +mermaid_config.startOnLoad = true; +``` + +> **Warning** +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. + +## Using the mermaid.init call + +To set some configuration via the mermaid object. The two parameters that are supported using this approach are: + +- mermaid_config.startOnLoad +- mermaid_config.htmlLabels + +```javascript +mermaid_config.startOnLoad = true; +``` + +> **Warning** +> This way of setting the configuration is deprecated. Instead the preferred way is to use the initialize method. This functionality is only kept for backwards compatibility. diff --git a/docs/img/er.png b/docs/img/er.png new file mode 100644 index 0000000000000000000000000000000000000000..21c44c257a3e0ee3e782dd5b6696602f6d9f5172 GIT binary patch literal 56576 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�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 G_~T!k%VIVF literal 0 HcmV?d00001 diff --git a/docs/index.html.todo b/docs/index.html.todo new file mode 100644 index 0000000000..8728338f90 --- /dev/null +++ b/docs/index.html.todo @@ -0,0 +1,179 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <title> + mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, + gantt charts and git graphs. + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + diff --git a/docs/intro/img/Code-Preview-Config.png b/docs/intro/img/Code-Preview-Config.png new file mode 100644 index 0000000000000000000000000000000000000000..426e6bf63304aba149b046e6e7c78f58dcbaf1ee GIT binary patch literal 148873 zcmdSBWmr}3+V%@5A|N1=k_t$7H%f@aq?<`iV$$8IC|x2siAjTWcXzk6G)%fXeTQrP z*R$92e&5Hj_ZRhm$zY889`_aJ`MV5JQjo^NAi+RFLc)^yB&mXggqn_o^yKyPXTVo3 zt78;_ztEgzKvHO%&qy+rXA_C z0F+U=fKet+U0FSK(YA3RA9|lV(=<~9UGnnfg7Z|u(~KJzTpPbGwofgp=cuUX%c`K} z$4aRT;nK8|A-zPxwG*^x6}xOELPG!k20b)=_exui3jMd&p}^fYuMxXHmv)7IC#8Wr z;?LiHd->ey(I zSpJ`@etWsr^8Nq27wPaAV|w$y?)Gt_;TpQ*hoN@jCcC)E3H`qw_yjkn8l62)B{YdK zEVQb_g&@G+j5+J|prlDf!+paXEwcH4FUECn(u`rbS&rNSBxs%lvlm&8A@dX7H+D`E z2L!mSzvMIA>a7uf;}`S)y@*}X!P6@ZWk#TIa$VzJQ}R3n=~U0MfA9{US@RY}l>aH~ zU3x+RD}qNg&{L1()m$*cz@{^;KPWf3hKPZA%%!hjPBEww6 ze{8y$?Z5WWTP=3CEuNMc&#gpwZh^ceV|x8h$j~67aklVU!XnLlD6<-drdM5aa7AtCQ_bpv=#oHa=u29UuNs{ z^7rha&R5e9_`?Smg#Y|rhoemM+hvA#qXF+Wp->)*t-9nZMeEVaci2n`0x6A#mK`HG zNDJ~`L#D~I!3tB)t{NiGNSJv`!Z?IqIjjUn9WDFj*kJDNS(Ekt+8`hN?bWGhUAi-p z3~Mqgf%S6~;Q!LlrHKjk&wEW4YU`m_kC(&iq-ReqmEC@33-7XnEGW3ikGS4hVPO*S z3s>+2+9ao+UKtF3;oRgWteWlaN23O7Dr;x-5v^=Hq@5+8xLSt*yEs^|$?EffdvwU~ z`;5o%Bl32L5VRpMvEK@TftCFul!X++kG(Ip!6nS;B3o~q9J5?we*|2fBXgh{8z)iInGqh{@mUHDWY1E;MGnzf~IqH;rZ3L}Rt(6uyOyqVYAC7>9Ir zpdxs-*aA~p@rOblL>760x5kC6TQ#azd-`z9iDhGfZL@Erqr8YGdoq+jPLFV;HorjS zDf0P6P>Lw2{f?|wk7>Hv}Z4VdQ5OR*EmFixV?W;)aS{S#$|_#(b?_V1zw+5 z(xKH`YU(7+1aZa*jM2$!WUT?RKguS8A{{T|YmyD&rtP;pti6i2FJ3Gy2rlv>={0O? zX3HDH`CZO}dLW@#R$vvGfUVB*k)0v( z7b!J07q)qM9Ug47mM-vge!Wy+^LJ}xRaYmp(rlhOisLey?wd7{5W@$MSuHv!`LAcg0@io*cg>>iRHq>8%7j~wobNSV!@PiB0SuN zMXo-V!g};%f!AT_$2>_`&H?t5yCyHoTHR;qc@5i4sCGw;u?BcjwA(i!skynqTNWkG zXfLAV^%eSyv44i3ZAAFBp17zsyEWL?Tm-lku7m!`uw7sA2-3zY1VCA#1q9bV zL}1WA@5JZqbvf}bf@Pv_N~$)|@{;Z?W=9{QRH2}Fk9;iKnHE`?VVbGLiUje_niYt2 z3$rptYLV|Hkm%mye_+fpx2Py*CMFIiuA?wws1wCES_ln|mC<54Fjxq5=lH06%pJ)k zMM{(9$becrytnRvBt@KL!-}e1yynYDi8jzQeU-6i-FER|5^iifo^8yHtEm-F73wT- z=6!#iqQ!l=1bPw1J*~@ZUM}E5OJ6#AZ z%qD;`(e!gjtpN7ZF9OoEz9lN_tuymg7CXeDRJkG_@f@U>%>)Z*BU5JhtQQtTyXD(_ zEgI4DFE0a9L@0rJYunuEQy#ve2qDy-oipb{=uueaj#z6|WTi4i*S>0)n&UljgY!F@ znDLmk%v#Ssb7#nV8n73ZIflxGonJadeeJJU_$yzL;l;OBEgCHwm8MkKE|e85GN3{8 zESa6!=-aQYa>28nfm(EatO;>znEg=Xq&ja?!Gs*omTKh@56p zp2w4nerM4mzI!IF@5vLS61w+wod{)+lZbu6-#cU0Nqq^EYhfHAXK|k?y0~Y1kD@jJ zp7pmsC7LW=;+s0kTfi|~T5z$wr%LRX%>IF4`hocOagOf&+H;9xjHGQ|A~-`->Y8V4 z%X8V%O8j#$CY_BcV~)M`S$B3dtAVrJuy4`imZhROMxIyFfNWTxXEJao+5HDFr0|pA zW&MNPz54B3L|qetb&(wr$}PmSuMlTWH*=(p)c;goYfIogOphID0q@bLV6hgi_5oAu zsW?K?nV#*#e%xGP zrIn{BT;hJHDq~s5f=zkm?pLZg^25hkH{2hsv;|K0oIA~j_5)|e_CChX(n_tWw)QKY zpr|`wPs@Cq!UKwVjh=6fp#9ANS{%>0Tj$Ica)~jCX89wjlDXOoe9%Nb_HxS+!qD58 zQRx~{fJ%XTv=SW!G*kcC&6VJ1e$DkSx>stNu$9$&!eoPM+0ey1;Y-R>^Pjb|H4HtO z8p$Rd;aW#KSaZ#z>pFgYKmwX8qkWe6eoZy1Tf6%A=G4ro^)gwOO*H7LI+*g$5RKPj zh0h)JEA(zCTw!e1&}mgg3EnqUk?!|qEp-u{`fowT_?#J2-4Sc3#b_IT%V9m)hL+t%GD*lxkb%fm8&CZk^bT7 zgQk;-Q_?0mb~0aA;*4R2nuAy>_N-f_XaY323MB!YiikVr|}qP%X(Z24`PH7{fV zK@1B=poxue3BQV4u>TMS63(T^=T0aI++Wg7|KrKcggl`e(v3ejPd<`@GeC|nw~%Uq zhjz5VFXAPdUf!PT0q<^X6zNc^G`319FAr9QqVN{+AP;BY4mUPpc7bQh-zli)K$wjM zMIzzsn;NPz-MJSW8q6*~KSibG-C=vA2;vzogi6a;&B0xE$@aqm+T~m9L`SHy+ zRXyYzf4H&~TF%PE=J!EO2@PhR1#NW;NG;s&N+#J&7=5+rV;JgiZf$mz@`0SKe)u%) zb)#?fV8axvIsswy^!cUK=8$HN;a)EBo<{wP2uW}YNrfZq>vSxe`x(h_08^;pjS5;o zzVul;a?}(PnFgy{Im>oE;mPG4s%Hr-Z0<(@uP$$oxg|GI4_LwJQKhe>88uLvJ4}aM z^ih&*A<)g0Xj_=zy8=UvZFsq3y_~Qa>vt&IQ!d+NNpN}9A_tM5jY4F}88V!&o~YLa zq|;)<5SexwLZvEXHszS$tb+T^{=~6uvyd-)^NC9}A+R+Hsp!OH4QH|U^#1CDWHmOC z9P#5#ml|JsYkSSD%j&0zP6wx#H~PoE`lF|gcZ`To}*|r4gd*=-xwBLQi)s`-$;WO zs%bFlblCB`*p23&;31|sw4qO%L7y^`z{0)$KM6*Ro>k1OR|h1C&GdlZ>^JCO4syCAemJ>~B;M0({52IBMN?WD5#4XGtXG;d60+;lmW&FT%UL~X_rL_aIP(wYI-72Aatc&P;( zs%ijL);&nt`U8o#c8QZ>&b>xlRa}9;^1XQb0>qg@x$WpZTJ=sVzQ+Y06hRn)MVJLU zF$7ELj89l+eICFF8?cyft1$Ek>I80{CXO3O{Xsmp-l(sEo{jD= zVqbBvB$3!~T0|Hp^IqTQz4{yXsAIkXM`OCYM&~4za>I_1u$)i@xy5&us89Duk zyV4DQH;(k0`4nrc3qo=^`O#Uek9bi`Nr*Y_=_rFb=0WgF-lA%)rm@_D2}T?bASKva zUytB8{+iYjzS^PTnIimv^ubVJH`jwVjv(}?)l%Wd%`jr)XA%40TscqAy3pFDkBX`d z%y9491ZmD&V%0bgt@DCIoe`sM_>yR4T^RIO= zq&cgUyT-|7q|?QXnHy}Bl}*v6s$@43e3fvkoh)P=mMWtv9*^!h8}9l>VBz!w+#fh( zS7V`Ty)GDImN{y#})y0;I}2dO>idQb*Cx9RSS z&acYD5f3;RYU&I?>yGP0u*2Q-=n7~5Mn@46Bg+`iTy^s%L#uW^Cx2XC_Oh}TGo{(E zBB$0mxZJY7b6la9#+pDH6(`Ev^y73Ub|+4HXLqU-md53?rv^hN-Ep4+f=hZ zX#cM9nJKatu>Y0(OSJKdVEZ6!wqcy6f@fOy*Nl!yWhK{!dja%vXP{8wceEg9ugc5B zSCt>!ok-1XDx6ehq*zNmpqgLyzT!sNhE@KYGMmB(!ppPn;cRFc{_s=4zAMk~O=cq> zGn%U$_1>NpXn$YUt*@P$BB4)xH0$`;Z=KagkKT0O~1Sz{t|Wi90y2$2@pnk})FrLJqZ_uh^;FX7cOx z?E)$zBYxVwmVbjz*f1%$z(VD6^c#`mJ79^TR^p;hR# zhe8_;)pRCz2x1lxFX+trhm4d&vs6ZUy}f|R@`orOQbmbSVYgx_zT(Q6=yL?R&2^;~_4`Cvkp;lN~#z~sKNn0?wb#A`77g*9j4FEq} z3Pxq&wbF!P4#gdQcXK29Sy17A8qJ>{3%Nri-iU|vL^ZGC4oBnVR>>#3q>QP)T&oVa0x zf+kL$Dl2BW3Mr>IE1#u7)sO?(ge1%EoI$gVnvU>TTZ8@Y@;Yj2;iZK~$>G0&V$~e4 zExcR)O73;@5kxt{{}gEF@JTPe{ywkDb@7n3&W(6 zc19?5J_sd!+G!o8o0Vt%6-ZPFo+Nn(_UaTd{uKhbc1E3~S6$#3ZUIkM;STpTwYDg~ zc)I8EWLA)Bq@0zG&Cf*op+7$*zd!OPY)o;7>e4zr_zob3PRfDSBj|R?GLx2dVrKm98k7MG3E@AOOz)zFjVs6^0iyB_ih7M+NKQV_hZPm zfXk$$V#&gAQ4Bc`olt#Ly;)xvsql3Kc^65KZ+Onfn^x4|P+r+-i@UAe6&9!o^kC+Y zTwcY?_(~&hGcCR~GM|`VAe?i)VkBf?7ZHVy25rVvs^R5O**ua5noUcaGMsjQ1iF3@ zp*=@I;-Ho9Z7$3PU*0GB2Yl(f$epnN*slcb@?S>IL*OAzpg7N&};UB-@?Q%e!lFGxiYk$mJ;tk<+oUCGh?Zh1hVMppQ ztCfI;H|9o$)G=5MfI2wRyom2WOF3hpGEM>KY=M<8sJ?O&G+RH~MT6u9crnh0FFV zHjbe+S~fA{Ss`OD+pb+xOx{X6P*Ns{r7p~q|ilmeS6#O6hxm?)Nwc5(OC{>W12$Wf;Am{giUM97sR^J9I*Ec6JvRpQM| zjo+@F!n7GoQIs&xxLl%w|4Pe)q7o-V zsqEQE3Z_+sSasMbsF*?e=v@2?VGDfRnS)M+pp=9m9Qn)~Q<%W0 zEb^{@UU_Wh%8pEFEk4k%R@kV97Zj-M1nKr#Fw5aGX|NGfMD%TP*VsVpv$B%rcjqiR z*~xGY0qwVeB#cS3S4fR^M2awQ9t@>;kG1{y<@+1nK1;qer&Cm5~IKCsRcC{w7=PAUPYGPmDSI4g-01ZzS`HbK*g? zy&30Ep&1o3ZxSM_6qK?Xc4)%ZC%YE*qp3}YZo#BlbKYnz761+E$f{)8c zCmvnn&&KdQ=)<~OtjKne)MSJiCp|CI2k2}nBnnQoj_oh4Q^5ADL#6;GCNgRqJaA=k;b z2@@NxOxgzr)$_L#4d9m3Tcxf;ABq+`2x*D&s~lE?*NVqXwvQmc#YbI zqz%l56!}D1*wweUY8pEH-J#g+_*0y=1S(p!f;~OetRKuP{Jcs7Hc#1iB|gQd4|M6V z>Z1c0d9`199k4G(CXpYWjAzG1Q9U>FOo{j3cGGJ0EMS?QSEHD{`I+x)4@eC8B}k?g z6mukLymG=5NpHB*(iC*+SWTSFCdNs*ZjYuuaf}_#=2CT>#P|w0RFzDx$))kU`!Wh> zGwo51d^QI71nb)2ly;Re3|xv!$HBQZA05uWDVpZ2agEXdl4G5-K>D4|r$6u2L~(wg z#{|#+GOw&!WPrvbOy8`_NO_Q}gIvs$%hc+}VKE=s6%(ScA7zv@>R#L_Z3en!Ocq8;>ohTMXEe zy($hGJJ%26cOGIxyOCpxm7U*Y%O5!Z7Umg{zbULbV11g6joq6otXp6jakUf>E$}$N zl0$bjg8q-=nkb~gpn9fd#g#wXlM)sRz)20tTdJgM|L0#RyHXk-uE=naw>?e9fZ6^#(0Q-&RH= zAJB^q*>M9l&rSuyO_^(4*xpZ>FB!=R_D@6}Qw%h%#sPz7l2k?A)PL)y39*8kR@nSj zh%!VGTa@cjznA0PTUG-e>Seltt!nKp-D*2K$@WRrqN5v?+L$c`scHRg-m@<5}Zu%VsmqTEChIvD?BOb6A45p$`h&pwaa{c*s z(6}tdq_X{O(P(H6_70?J<6PTMMPAVeLaXUTorG8%cJREa3heQ0Bufx-5;a_Y8$}?O zs_TkEfRU?atC|JUOYN=!aYUxQ(5f8BC^5SJCj?ri}uyv z>9z32cOi8Qnrk<132P;>fchiFdK4QpCW-58fN9rI!GNmS2wKcScFt<39M(sFf&5_Kv5JSxx2Wla<6RP69wwka z!ow{Y8RbI;R&is_;}r5wKbi9kSK#M1b&n}^H9ZRhS}22i$56f{7IuDoT#K0CiyOsv zCq8=Egb4{*p{CT{5qn8SS7Ahg-bZmKMWD(N`}1$GD9eUR5eG|0pE=T*o5#3@6!u-8 zHF_^apwu(5Xp|7lxt@T=NUnafo<%=`6=1boG&7?`-3s5uf?VRdHANG;aO8iGw%vpw zLq||^<=gQWyw_VW#6$63G^nZ3x7>nX6*C;g^k*TCRI4)UZ~zzdH5o7RFW|AAh&uZ3 z@`&4jN}28GOh`n5j`y>QyeMTZDaB`oR)^x{u60Hxd?DUmt;&g<0!UL=V1ok@qpHpY zpr>rgk*{%dXDzH*FTJFuP>qS~_p;Ge7uI(@x^PD@#6&-wk35aC9_PQjK5@wr+URqj z6nQ(&O`$3LpoT&oF;hB<;9kDBwVk+kuY4Q2GREOF!kTC|$+3OhBZNA_^1^{!6{R-z zX`vd20`IFu{Lk27F_GBV(pOEkTo~^ae`~|h^tzW`4RXRNJE?Kck`H7qoPhL{B8*q& zP#jWHJHppK-#~(yV>qKf`a&}iA(^T*xb4c7%xUq!Eiyv|v6{bp#u2q zbtM8wJzO^G9x5HH(ZN%LvAn-lng>mX{AZ0O{MVfI6=U4xHyAu%K_9c06SC z3yPRmV_V3isLMg}i@5nX~994PHh31DOO1P*2e254mu!cLspaBUW)iTNY{5y*>cM zVhTfF()VE*HC_Pd8Z8<;3^8_C1mC~ zorq-tGteK`=RPZuPH7|_7hLW+lg)|)+03zLr*IVWgqv}fC+0`UI}CFPfM^R}4<>$Y z>mFRqb}24azD5Su;U6DTL>)q&o%Q`>V9-u7QOcrYk+V|ubi8^*Ir)|^ZKZ4W)P8H{ zb3AQS+#nb{Q*?HsDvFt818ATtFvI2UHIooP0k1oB?~j(RITtV!0(2O=xfUQ2asBXQ zrh+M%R5pNT>Q*cQrKvN=gnLI3XKpXeKYrxN-?;Xr7jPcRvw#n0YLNB@mZu+#p~)86Rxm1#u3H- z%X-0jK9|a-RvEd z!39+^x;{9TmHvZaXn5<5Eu8%qGu!39g^hnP0HQRt&QQPLzVTKQeq;BO2%lr8L+V6` zPPbuJf!|(Mh$|-I*n7A|g2IJ|5EGHSzYeH*i_OSq$u<@B!R)^_FI=ph+ObjGp_<4u zUuvXitHoj_Q+7{xw1BdVJAo_23pDNKW~X&n&F>{@0tmFLkQyhTOgz_4^M}&*G)_}a zcnw>d;9GDhfAI&8;Cmai&YQZ^P{FE>g@*&eko&VC!x#yjz1}fc5dube1w2pJ(GIdb zDWr_d=j-e{rOK+(8b@I1Ho_&uZj&5fOUT6p7$={y=Ag5Pu#NnX!VXEi zNdcZ0FkbhCwll(Pcy=KFqZ@ru?cUlT^8KC)?!i@sPG9xXp)e_~<*owZI4t1_5W7@l zq-d=WNdpMyn>pT?zfKjr8I8rVfW`kk7dKh-u%-W4Q*No)S^(w7&*B<@g?ln1A)E%8 z!vWP0Bi;45acap%vxO_VU#2EhXvKG&xd@;iK<$X!p$X_(anoLF4YaRli3K=Gq6d># zmTxfM`aSZ!Zewm$%RTEcg>7AYxAWoCEzwRLwZcFhwz5OaRgO}tGnd1LE!G^kl#N=h z1w0i0DilDRDzlNohiz@7HAQb>^~z^!FdBI@UJh^ausyN^J|#`VM3)axCjo~T8N@2) zaoXS|qTpE);Jv=^I+g?{CEk~hljH<&Wq+wLsmK&Im4xue%)1ou_92EI7piO9$`#V) zNw{7w9sd;27anbLGklZcOcpD;Tp`~ClmJTl`otZBV#BKHM*anzS!VtNbuhCq@KO^Z zd6}notm~j&Hy#zx-BS1o5`DCVAD0#n%8$|&TZrxYw|JJl=Jp#y(!BV3cOues=Y1DA z-+8m?arBC}7!Ig}M@rofhpjIZ@$3T%X~ke(#YE=!necE62FJFFwhu`O)xF*W} z=se6Ix%UIC=V1EuG}F88vM+P3@-{JKAJ}lDReI zoJ7Z3*7sC=90vf+w27&?LzOC@INxSu;%V<(zWa~#uniYR@Sr77vhG
      nY% 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≦O_^+~1=%YCo=H`jgY~#| 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

        KB*h9!e*iWSe7ty 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

        W1Ig~ z?qeWLoAmx|3w?9^G-fG~n!jmT3`o?c;f!(K22S{#&$#)`XQkE*2+1D!#0b4P_W{7% z7_^dArkcY6@dzU{;<1;deV$M1f>`T(j`~O2*l@fn3(jXEt$f5HyUTUYGUGL2ab8sB zJBU!uz^p1iefl;(pNHb|Whn~jOyI3ynUAB?7Vj&L@XOb_dAexj028z@R6*&vH!yO{ z^7j)22#%bA&zx2>=KWtkB`hd}rrNJ~Hx&p~$jrYXx|P(`PXRk_IaHnq@95!kD~D5= z!e(t!PN&qG2sXlfFg1*jkN3YS8L&CrcbUZFrNGE%*c@R3L|W0kZ&B6(QI}29np!

        =y=yYzYG7cCpc!G8_w~(LwT&0#Zel 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

        lEX$px{cOh$5Q+B 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 C;wEkY literal 0 HcmV?d00001 diff --git a/docs/intro/img/book-banner-post-release.jpg b/docs/intro/img/book-banner-post-release.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ce3cc6fc7fc025b55f357403f572a6860d17625 GIT binary patch literal 75158 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%0A0K`3D|4*_4WyPt)PO+ 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 **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/index.md](../../packages/mermaid/src/docs/intro/index.md). + +# About Mermaid + +**Mermaid lets you create diagrams and visualizations using text and code.** + +It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically. + +> If you are familiar with Markdown you should have no problem learning [Mermaid's Syntax](n00b-syntaxReference.md). + + + +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) + + + +[![Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!](img/book-banner-post-release.jpg)](https://mermaid-js.github.io/mermaid/landing/) + + + +Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. + +> Doc-Rot is a Catch-22 that Mermaid helps to solve. + +Diagramming and documentation costs precious developer time and gets outdated quickly. +But not having diagrams or docs ruins productivity and hurts organizational learning.
        +Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).

        +Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
        +[Tutorials](../config/Tutorials.md) has video tutorials. +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). + +For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). + +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) + +> 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). + +:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!!** + +**Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project 🙏** + +In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. + +
        + + + +## Diagram Types + +### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) + +```mermaid-example +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +### [Sequence diagram](../syntax/sequenceDiagram.md) + +```mermaid-example +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +### [Gantt diagram](../syntax/gantt.md) + +```mermaid-example +gantt +dateFormat YYYY-MM-DD +title Adding GANTT diagram to mermaid +excludes weekdays 2014-01-10 + +section A section +Completed task :done, des1, 2014-01-06,2014-01-08 +Active task :active, des2, 2014-01-09, 3d +Future task : des3, after des2, 5d +Future task2 : des4, after des3, 5d +``` + +```mermaid +gantt +dateFormat YYYY-MM-DD +title Adding GANTT diagram to mermaid +excludes weekdays 2014-01-10 + +section A section +Completed task :done, des1, 2014-01-06,2014-01-08 +Active task :active, des2, 2014-01-09, 3d +Future task : des3, after des2, 5d +Future task2 : des4, after des3, 5d +``` + +### [Class diagram](../syntax/classDiagram.md) + +```mermaid-example +classDiagram +Class01 <|-- AveryLongClass : Cool +Class03 *-- Class04 +Class05 o-- Class06 +Class07 .. Class08 +Class09 --> C2 : Where am i? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +Class08 <--> C2: Cool label +``` + +```mermaid +classDiagram +Class01 <|-- AveryLongClass : Cool +Class03 *-- Class04 +Class05 o-- Class06 +Class07 .. Class08 +Class09 --> C2 : Where am i? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +Class08 <--> C2: Cool label +``` + +### [Git graph](../syntax/gitgraph.md) + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +```mermaid + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) + +```mermaid-example +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +```mermaid +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +### [User Journey Diagram](../syntax/userJourney.md) + +```mermaid-example +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +```mermaid +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +## Installation + +**In depth guides and examples can be found at [Getting Started](./n00b-gettingStarted.md) and [Usage](../config/usage.md).** + +**It would also be helpful to learn more about mermaid's [Syntax](./n00b-syntaxReference.md).** + +### CDN + + https://unpkg.com/mermaid@/dist/ + +To select a version: + +Replace `` with the desired version number. + +Latest Version: + +## Deploying Mermaid + +To Deploy Mermaid: + +1. You will need to install node v16, which would have npm +2. Install mermaid + - NPM: `npm i mermaid` + - Yarn: `yarn add mermaid` + - Pnpm: `pnpm add mermaid` + +### [Mermaid API](../config/setup/README.md): + +**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:** + +```html + +``` + +**Doing so will command the mermaid parser to look for the `

        ` or `
        ` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
        +
        +**Examples can be found at** [Other examples](../syntax/examples.md)
        +
        +## Sibling projects
        +
        +- [Mermaid Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
        +- [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli)
        +- [Mermaid Webpack Demo](https://github.com/mermaidjs/mermaid-webpack-demo)
        +- [Mermaid Parcel Demo](https://github.com/mermaidjs/mermaid-parcel-demo)
        +
        +## Request for Assistance
        +
        +Things are piling up and I have a hard time keeping up. It would be great if we could form a core team of developers to cooperate
        +with the future development of mermaid.
        +
        +As part of this team you would get write access to the repository and would
        +represent the project when answering questions and issues.
        +
        +Together we could continue the work with things like:
        +
        +- Adding more types of diagrams like mindmaps, ert diagrams, etc.
        +- Improving existing diagrams
        +
        +Don't hesitate to contact me if you want to get involved!
        +
        +## For contributors
        +
        +### Requirements
        +
        +- [volta](https://volta.sh/) to manage node versions.
        +- [Node.js](https://nodejs.org/en/). `volta install node`
        +- [pnpm](https://pnpm.io/) package manager. `volta install pnpm`
        +
        +## Development Installation
        +
        +```bash
        +git clone git@github.com:mermaid-js/mermaid.git
        +cd mermaid
        +# npx is required for first install as volta support for pnpm is not added yet.
        +npx pnpm install
        +pnpm test
        +```
        +
        +### Lint
        +
        +```sh
        +pnpm lint
        +```
        +
        +We use [eslint](https://eslint.org/).
        +We recommend you to install [editor plugins](https://eslint.org/docs/user-guide/integrations) to get real time lint result.
        +
        +### Test
        +
        +```sh
        +pnpm test
        +```
        +
        +Manual test in browser: open `dist/index.html`
        +
        +### Release
        +
        +For those who have the permission to do so:
        +
        +Update version number in `package.json`.
        +
        +```sh
        +npm publish
        +```
        +
        +The above command generates files into the `dist` folder and publishes them to \.
        +
        +## Related projects
        +
        +- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli)
        +- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
        +- [HTTP Server](https://github.com/TomWright/mermaid-server)
        +
        +## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)
        +
        +Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.
        +
        +Detailed information about how to contribute can be found in the [contribution guide](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md)
        +
        +## Security and safe diagrams
        +
        +For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitize the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.
        +
        +As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security.
        +
        +_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
        +
        +## Reporting vulnerabilities
        +
        +To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
        +
        +## Appreciation
        +
        +A quick note from Knut Sveidqvist:
        +
        +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_
        +>
        +> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._
        +>
        +> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._
        +>
        +> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_
        +
        +---
        +
        +_Mermaid was created by Knut Sveidqvist for easier documentation._
        +
        +
        diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md
        new file mode 100644
        index 0000000000..498aa15955
        --- /dev/null
        +++ b/docs/intro/n00b-gettingStarted.md
        @@ -0,0 +1,224 @@
        +> **Warning**
        +>
        +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
        +>
        +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/intro/n00b-gettingStarted.md](../../packages/mermaid/src/docs/intro/n00b-gettingStarted.md).
        +
        +# A Mermaid User-Guide for Beginners
        +
        +Mermaid is composed of three parts: Deployment, Syntax and Configuration.
        +
        +This section talks about the different ways to deploy Mermaid. Learning the [Syntax](n00b-syntaxReference.md) would be of great help to the beginner.
        +
        +> Generally the live editor is enough for most general uses of mermaid, and is a good place to start learning.
        +
        +**Absolute beginners are advised to view the Video [Tutorials](../config/Tutorials.md) on the Live Editor, to gain a better understanding of mermaid.**
        +
        +## Four ways of using mermaid:
        +
        +1.  Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live).
        +2.  Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with.
        +3.  Calling the Mermaid JavaScript API.
        +4.  Deploying Mermaid as a dependency.
        +
        +**Note: It is our recommendation that you review all approaches, and choose the one that is best for your project.**
        +
        +> More in depth information can be found at [Usage](../config/usage.md).
        +
        +## 1. Using the Live Editor
        +
        +Available at [mermaid.live](https://mermaid.live)
        +
        +```mermaid-example
        +graph TD
        +    A[Enter Chart Definition] --> B(Preview)
        +    B --> C{decide}
        +    C --> D[Keep]
        +    C --> E[Edit Definition]
        +    E --> B
        +    D --> F[Save Image and Code]
        +    F --> B
        +```
        +
        +```mermaid
        +graph TD
        +    A[Enter Chart Definition] --> B(Preview)
        +    B --> C{decide}
        +    C --> D[Keep]
        +    C --> E[Edit Definition]
        +    E --> B
        +    D --> F[Save Image and Code]
        +    F --> B
        +```
        +
        +In the `Code` section one can write or edit raw mermaid code, and instantly `Preview` the rendered result on the panel beside it.
        +
        +The `Configuration` Section is for changing the appearance and behavior of mermaid diagrams. An easy introduction to mermaid configuration is found in the [Advanced usage](../config/n00b-advanced.md) section. A complete configuration reference cataloging the default values can be found on the [mermaidAPI](../config/setup/README.md) page.
        +
        +![Code,Config and Preview](./img/Code-Preview-Config.png)
        +
        +### Editing History
        +
        +Your code will be autosaved every minute into the Timeline tab of History which shows the most recent 30 items.
        +
        +You can manually save code by clicking the Save icon in the History section. It can also be accessed in the Saved tab. This is stored in the browser storage only.
        +
        +### Saving a Diagram:
        +
        +You may choose any of the methods below, to save it
        +
        +**We recommend that you save your diagram code on top of any method you choose, in order to make edits and modifications further down the line.**
        +
        +![Flowchart](./img/Live-Editor-Choices.png)
        +
        +### Editing your diagrams
        +
        +Editing is as easy as pasting your **Diagram code**, into the `code` section of the `Live Editor`.
        +
        +### Loading from Gists
        +
        +The Gist you create should have a code.mmd file and optionally a config.json. [Example](https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a)
        +
        +To load a gist into the Editor, you can use https://mermaid.live/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a
        +
        +and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a
        +
        +## 2. Using Mermaid Plugins:
        +
        +You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations.md).
        +
        +**This is covered in greater detail in the [Usage section](../config/usage.md)**
        +
        +## 3. Calling the JavaScript API
        +
        +This method can be used with any common web server like Apache, IIS, nginx, node express.
        +
        +You will also need a text editing tool like Notepad++ to generate a .html file. It is then deployed by a web browser (such as Firefox, Chrome, Safari, but not Internet Explorer).
        +
        +The API works by pulling rendering instructions from the source `mermaid.js` in order to render diagrams on the page.
        +
        +### Requirements for the Mermaid API.
        +
        +When writing the .html file, we give two instructions inside the html code to the web browser:
        +
        +a. The mermaid code for the diagram we want to create.
        +
        +b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm.min.mjs` and the `mermaid.initialize()` call, which dictates the appearance of diagrams and also starts the rendering process .
        +
        +**a. The embedded mermaid diagram definition inside a `
        `:**
        +
        +```html
        +
        +  Here is a mermaid diagram:
        +  
        +        graph TD 
        +        A[Client] --> B[Load Balancer] 
        +        B --> C[Server01] 
        +        B --> D[Server02]
        +  
        + +``` + +**Notes**: Every Mermaid chart/graph/diagram definition, should have separate `
        ` tags.
        +
        +**b. The import of mermaid and the `mermaid.initialize()` call.**
        +
        +`mermaid.initialize()` call takes all the definitions contained in all the `
        ` tags that it finds in the html body and renders them into diagrams. Example:
        +
        +```html
        +
        +  
        +
        +```
        +
        +**Notes**:
        +Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.min.js` for brevity. However, doing the opposite lets you control when it starts looking for `
        `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
        ` tags may have loaded on the execution of `mermaid.min.js` file. + +`startOnLoad` is one of the parameters that can be defined by `mermaid.initialize()` + +| Parameter | Description | Type | Values | +| ----------- | --------------------------------- | ------- | ----------- | +| startOnLoad | Toggle for Rendering upon loading | Boolean | true, false | + +### Working Examples + +**Here is a full working example of the mermaidAPI being called through the CDN:** + +```html + + + Here is one mermaid diagram: +
        +            graph TD 
        +            A[Client] --> B[Load Balancer] 
        +            B --> C[Server1] 
        +            B --> D[Server2]
        +    
        + + And here is another: +
        +            graph TD 
        +            A[Client] -->|tcp_123| B
        +            B(Load Balancer) 
        +            B -->|tcp_456| C[Server1] 
        +            B -->|tcp_456| D[Server2]
        +    
        + + + + +``` + +**Another Option:** +In this example mermaid.js is referenced in `src` as a separate JavaScript file, in an example Path. + +```html + + + + + +
        +            graph LR 
        +            A --- B 
        +            B-->C[fa:fa-ban forbidden] 
        +            B-->D(fa:fa-spinner);
        +    
        +
        +            graph TD 
        +            A[Client] --> B[Load Balancer] 
        +            B --> C[Server1] 
        +            B --> D[Server2]
        +    
        + + + +``` + +--- + +## 4. Adding Mermaid as a dependency. + +1. install node v16, which would have npm + +2. download yarn using npm by entering the command below: + npm install -g yarn + +3. After yarn installs, enter the following command: + yarn add mermaid + +4. To add Mermaid as a Dev Dependency + yarn add --dev mermaid + +**Comments from Knut Sveidqvist, creator of mermaid:** + +- In early versions of mermaid, the ` +``` + +```mermaid-example +classDiagram + class Class01 + class Class02 + callback Class01 "callbackFunction" "Callback tooltip" + link Class02 "https://www.github.com" "This is a link" + class Class03 + class Class04 + click Class03 call callbackFunction() "Callback tooltip" + click Class04 href "https://www.github.com" "This is a link" +``` + +```mermaid +classDiagram + class Class01 + class Class02 + callback Class01 "callbackFunction" "Callback tooltip" + link Class02 "https://www.github.com" "This is a link" + class Class03 + class Class04 + click Class03 call callbackFunction() "Callback tooltip" + click Class04 href "https://www.github.com" "This is a link" +``` + +> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. + +Beginner's tip—a full example using interactive links in an HTML page: + +```html + +
        +    classDiagram
        +    Animal <|-- Duck
        +    Animal <|-- Fish
        +    Animal <|-- Zebra
        +    Animal : +int age
        +    Animal : +String gender
        +    Animal: +isMammal()
        +    Animal: +mate()
        +    class Duck{
        +      +String beakColor
        +      +swim()
        +      +quack()
        +      }
        +    class Fish{
        +      -int sizeInFeet
        +      -canEat()
        +      }
        +    class Zebra{
        +      +bool is_wild
        +      +run()
        +      }
        +
        +      callback Duck callback "Tooltip"
        +      link Zebra "https://www.github.com" "This is a link"
        +  
        + + + +``` + +## Styling + +### Styling a node + +It is possible to apply specific styles such as a thicker border or a different background color to individual nodes. This is done by predefining classes in css styles that can be applied from the graph definition: + +```html + +``` + +Then attaching that class to a specific node: + + cssClass "nodeId1" cssClass; + +It is also possible to attach a class to a list of nodes in one statement: + + cssClass "nodeId1,nodeId2" cssClass; + +A shorter form of adding a class is to attach the classname to the node using the `:::` operator: + +```mermaid-example +classDiagram + class Animal:::cssClass +``` + +```mermaid +classDiagram + class Animal:::cssClass +``` + +Or: + +```mermaid-example +classDiagram + class Animal:::cssClass { + -int sizeInFeet + -canEat() + } +``` + +```mermaid +classDiagram + class Animal:::cssClass { + -int sizeInFeet + -canEat() + } +``` + +?> cssClasses cannot be added using this shorthand method at the same time as a relation statement. + +?> Due to limitations with existing markup for class diagrams, it is not currently possible to define css classes within the diagram itself. **_Coming soon!_** + +### Default Styles + +The main styling of the class diagram is done with a preset number of css classes. During rendering these classes are extracted from the file located at src/themes/class.scss. The classes used here are described below: + +| Class | Description | +| ------------------ | ----------------------------------------------------------------- | +| g.classGroup text | Styles for general class text | +| classGroup .title | Styles for general class title | +| g.classGroup rect | Styles for class diagram rectangle | +| g.classGroup line | Styles for class diagram line | +| .classLabel .box | Styles for class label box | +| .classLabel .label | Styles for class label text | +| composition | Styles for composition arrow head and arrow line | +| aggregation | Styles for aggregation arrow head and arrow line(dashed or solid) | +| dependency | Styles for dependency arrow head and arrow line | + +#### Sample stylesheet + +```scss +body { + background: white; +} + +g.classGroup text { + fill: $nodeBorder; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; + font-family: var(--mermaid-font-family); + font-size: 10px; + + .title { + font-weight: bolder; + } +} + +g.classGroup rect { + fill: $nodeBkg; + stroke: $nodeBorder; +} + +g.classGroup line { + stroke: $nodeBorder; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: $nodeBkg; + opacity: 0.5; +} + +.classLabel .label { + fill: $nodeBorder; + font-size: 10px; +} + +.relation { + stroke: $nodeBorder; + stroke-width: 1; + fill: none; +} + +@mixin composition { + fill: $nodeBorder; + stroke: $nodeBorder; + stroke-width: 1; +} + +#compositionStart { + @include composition; +} + +#compositionEnd { + @include composition; +} + +@mixin aggregation { + fill: $nodeBkg; + stroke: $nodeBorder; + stroke-width: 1; +} + +#aggregationStart { + @include aggregation; +} + +#aggregationEnd { + @include aggregation; +} + +#dependencyStart { + @include composition; +} + +#dependencyEnd { + @include composition; +} + +#extensionStart { + @include composition; +} + +#extensionEnd { + @include composition; +} +``` + +## Configuration + +`Coming soon!` diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md new file mode 100644 index 0000000000..fef7b6fee7 --- /dev/null +++ b/docs/syntax/entityRelationshipDiagram.md @@ -0,0 +1,299 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md](../../packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md). + +# Entity Relationship Diagrams + +> An entity–relationship model (or ER model) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between entities (instances of those entity types). Wikipedia. + +Note that practitioners of ER modelling almost always refer to _entity types_ simply as _entities_. For example the `CUSTOMER` entity _type_ would be referred to simply as the `CUSTOMER` entity. This is so common it would be inadvisable to do anything else, but technically an entity is an abstract _instance_ of an entity type, and this is what an ER diagram shows - abstract instances, and the relationships between them. This is why entities are always named using singular nouns. + +Mermaid can render ER diagrams + +```mermaid-example +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses +``` + +```mermaid +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses +``` + +Entity names are often capitalised, although there is no accepted standard on this, and it is not required in Mermaid. + +Relationships between entities are represented by lines with end markers representing cardinality. Mermaid uses the most popular crow's foot notation. The crow's foot intuitively conveys the possibility of many instances of the entity that it connects to. + +ER diagrams can be used for various purposes, ranging from abstract logical models devoid of any implementation details, through to physical models of relational database tables. It can be useful to include attribute definitions on ER diagrams to aid comprehension of the purpose and meaning of entities. These do not necessarily need to be exhaustive; often a small subset of attributes is enough. Mermaid allows them to be defined in terms of their _type_ and _name_. + +```mermaid-example +erDiagram + CUSTOMER ||--o{ ORDER : places + CUSTOMER { + string name + string custNumber + string sector + } + ORDER ||--|{ LINE-ITEM : contains + ORDER { + int orderNumber + string deliveryAddress + } + LINE-ITEM { + string productCode + int quantity + float pricePerUnit + } +``` + +```mermaid +erDiagram + CUSTOMER ||--o{ ORDER : places + CUSTOMER { + string name + string custNumber + string sector + } + ORDER ||--|{ LINE-ITEM : contains + ORDER { + int orderNumber + string deliveryAddress + } + LINE-ITEM { + string productCode + int quantity + float pricePerUnit + } +``` + +When including attributes on ER diagrams, you must decide whether to include foreign keys as attributes. This probably depends on how closely you are trying to represent relational table structures. If your diagram is a _logical_ model which is not meant to imply a relational implementation, then it is better to leave these out because the associative relationships already convey the way that entities are associated. For example, a JSON data structure can implement a one-to-many relationship without the need for foreign key properties, using arrays. Similarly an object-oriented programming language may use pointers or references to collections. Even for models that are intended for relational implementation, you might decide that inclusion of foreign key attributes duplicates information already portrayed by the relationships, and does not add meaning to entities. Ultimately, it's your choice. + +## Syntax + +### Entities and Relationships + +Mermaid syntax for ER diagrams is compatible with PlantUML, with an extension to label the relationship. Each statement consists of the following parts: + + [ : ] + +Where: + +- `first-entity` is the name of an entity. Names must begin with an alphabetic character and may also contain digits, hyphens, and underscores. +- `relationship` describes the way that both entities inter-relate. See below. +- `second-entity` is the name of the other entity. +- `relationship-label` describes the relationship from the perspective of the first entity. + +For example: + + PROPERTY ||--|{ ROOM : contains + +This statement can be read as _a property contains one or more rooms, and a room is part of one and only one property_. You can see that the label here is from the first entity's perspective: a property contains a room, but a room does not contain a property. When considered from the perspective of the second entity, the equivalent label is usually very easy to infer. (Some ER diagrams label relationships from both perspectives, but this is not supported here, and is usually superfluous). + +Only the `first-entity` part of a statement is mandatory. This makes it possible to show an entity with no relationships, which can be useful during iterative construction of diagrams. If any other parts of a statement are specified, then all parts are mandatory. + +### Relationship Syntax + +The `relationship` part of each statement can be broken down into three sub-components: + +- the cardinality of the first entity with respect to the second, +- whether the relationship confers identity on a 'child' entity +- the cardinality of the second entity with respect to the first + +Cardinality is a property that describes how many elements of another entity can be related to the entity in question. In the above example a `PROPERTY` can have one or more `ROOM` instances associated to it, whereas a `ROOM` can only be associated with one `PROPERTY`. In each cardinality marker there are two characters. The outermost character represents a maximum value, and the innermost character represents a minimum value. The table below summarises possible cardinalities. + +| Value (left) | Value (right) | Meaning | +| :----------: | :-----------: | ----------------------------- | +| `\|o` | `o\|` | Zero or one | +| `\|\|` | `\|\|` | Exactly one | +| `}o` | `o{` | Zero or more (no upper limit) | +| `}\|` | `\|{` | One or more (no upper limit) | + +**Aliases** + +| Value (left) | Value (right) | Alias for | +| :----------: | :-----------: | ------------ | +| one or zero | one or zero | Zero or one | +| zero or one | zero or one | Zero or one | +| one or more | one or more | One or more | +| one or many | one or many | One or more | +| many(1) | many(1) | One or more | +| 1+ | 1+ | One or more | +| zero or more | zero or more | Zero or more | +| zero or many | zero or many | Zero or more | +| many(0) | many(1) | Zero or more | +| 0+ | 0+ | Zero or more | +| only one | only one | Exactly one | +| 1 | 1 | Exactly one | + +### Identification + +Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line: + +**Aliases** + +| Value | Alias for | +| :-----------: | :---------------: | +| to | _identifying_ | +| optionally to | _non-identifying_ | + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + PERSON ||--o{ NAMED-DRIVER : is +``` + +```mermaid +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + PERSON ||--o{ NAMED-DRIVER : is +``` + +### Attributes + +Attributes can be defined for entities by specifying the entity name followed by a block containing multiple `type name` pairs, where a block is delimited by an opening `{` and a closing `}`. For example: + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string firstName + string lastName + int age + } +``` + +```mermaid +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string firstName + string lastName + int age + } +``` + +The attributes are rendered inside the entity boxes: + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string firstName + string lastName + int age + } +``` + +```mermaid +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string firstName + string lastName + int age + } +``` + +The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens or underscores. Other than that, there are no restrictions, and there is no implicit set of valid data types. + +#### Attribute Keys and Comments + +Attributes may also have a `key` or comment defined. Keys can be "PK" or "FK", for Primary Key or Foreign Key. And a `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. + +```mermaid-example +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string allowedDriver FK "The license of the allowed driver" + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string driversLicense PK "The license #" + string firstName + string lastName + int age + } + MANUFACTURER only one to zero or more CAR +``` + +```mermaid +erDiagram + CAR ||--o{ NAMED-DRIVER : allows + CAR { + string allowedDriver FK "The license of the allowed driver" + string registrationNumber + string make + string model + } + PERSON ||--o{ NAMED-DRIVER : is + PERSON { + string driversLicense PK "The license #" + string firstName + string lastName + int age + } + MANUFACTURER only one to zero or more CAR +``` + +### Other Things + +- If you want the relationship label to be more than one word, you must use double quotes around the phrase +- If you don't want a label at all on a relationship, you must use an empty double-quoted string + +## Styling + +### Config options + +For simple color customization: + +| Name | Used as | +| :------- | :------------------------------------------------------------------- | +| `fill` | Background color of an entity or attribute | +| `stroke` | Border color of an entity or attribute, line color of a relationship | + +### Classes used + +The following CSS class selectors are available for richer styling: + +| Selector | Description | +| :------------------------- | :---------------------------------------------------- | +| `.er.attributeBoxEven` | The box containing attributes on even-numbered rows | +| `.er.attributeBoxOdd` | The box containing attributes on odd-numbered rows | +| `.er.entityBox` | The box representing an entity | +| `.er.entityLabel` | The label for an entity | +| `.er.relationshipLabel` | The label for a relationship | +| `.er.relationshipLabelBox` | The box surrounding a relationship label | +| `.er.relationshipLine` | The line representing a relationship between entities | diff --git a/docs/syntax/examples.md b/docs/syntax/examples.md new file mode 100644 index 0000000000..ae2ba0ed38 --- /dev/null +++ b/docs/syntax/examples.md @@ -0,0 +1,299 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/examples.md](../../packages/mermaid/src/docs/syntax/examples.md). + +# Examples + +This page contains a collection of examples of diagrams and charts that can be created through mermaid and its myriad applications. + +**If you wish to learn how to support mermaid on your webpage, read the [Beginner's Guide](../config/usage.md?id=usage).** + +**If you wish to learn about mermaid's syntax, Read the [Diagram Syntax](../syntax/flowchart.md?id=flowcharts-basic-syntax) section.** + +## Basic Pie Chart + +```mermaid-example +pie title NETFLIX + "Time spent looking for movie" : 90 + "Time spent watching it" : 10 +``` + +```mermaid +pie title NETFLIX + "Time spent looking for movie" : 90 + "Time spent watching it" : 10 +``` + +```mermaid-example +pie title What Voldemort doesn't have? + "FRIENDS" : 2 + "FAMILY" : 3 + "NOSE" : 45 +``` + +```mermaid +pie title What Voldemort doesn't have? + "FRIENDS" : 2 + "FAMILY" : 3 + "NOSE" : 45 +``` + +## Basic sequence diagram + +```mermaid-example +sequenceDiagram + Alice ->> Bob: Hello Bob, how are you? + Bob-->>John: How about you John? + Bob--x Alice: I am good thanks! + Bob-x John: I am good thanks! + Note right of John: Bob thinks a long
        long time, so long
        that the text does
        not fit on a row. + + Bob-->Alice: Checking with John... + Alice->John: Yes... John, how are you? +``` + +```mermaid +sequenceDiagram + Alice ->> Bob: Hello Bob, how are you? + Bob-->>John: How about you John? + Bob--x Alice: I am good thanks! + Bob-x John: I am good thanks! + Note right of John: Bob thinks a long
        long time, so long
        that the text does
        not fit on a row. + + Bob-->Alice: Checking with John... + Alice->John: Yes... John, how are you? +``` + +## Basic flowchart + +```mermaid-example +graph LR + A[Square Rect] -- Link text --> B((Circle)) + A --> C(Round Rect) + B --> D{Rhombus} + C --> D +``` + +```mermaid +graph LR + A[Square Rect] -- Link text --> B((Circle)) + A --> C(Round Rect) + B --> D{Rhombus} + C --> D +``` + +## Larger flowchart with some styling + +```mermaid-example +graph TB + sq[Square shape] --> ci((Circle shape)) + + subgraph A + od>Odd shape]-- Two line
        edge comment --> ro + di{Diamond with
        line break} -.-> ro(Rounded
        square
        shape) + di==>ro2(Rounded square shape) + end + + %% Notice that no text in shape are added here instead that is appended further down + e --> od3>Really long text with linebreak
        in an Odd shape] + + %% Comments after double percent signs + e((Inner / circle
        and some odd
        special characters)) --> f(,.?!+-*ز) + + cyr[Cyrillic]-->cyr2((Circle shape Начало)); + + classDef green fill:#9f6,stroke:#333,stroke-width:2px; + classDef orange fill:#f96,stroke:#333,stroke-width:4px; + class sq,e green + class di orange +``` + +```mermaid +graph TB + sq[Square shape] --> ci((Circle shape)) + + subgraph A + od>Odd shape]-- Two line
        edge comment --> ro + di{Diamond with
        line break} -.-> ro(Rounded
        square
        shape) + di==>ro2(Rounded square shape) + end + + %% Notice that no text in shape are added here instead that is appended further down + e --> od3>Really long text with linebreak
        in an Odd shape] + + %% Comments after double percent signs + e((Inner / circle
        and some odd
        special characters)) --> f(,.?!+-*ز) + + cyr[Cyrillic]-->cyr2((Circle shape Начало)); + + classDef green fill:#9f6,stroke:#333,stroke-width:2px; + classDef orange fill:#f96,stroke:#333,stroke-width:4px; + class sq,e green + class di orange +``` + +## SequenceDiagram: Loops, alt and opt + +```mermaid-example +sequenceDiagram + loop Daily query + Alice->>Bob: Hello Bob, how are you? + alt is sick + Bob->>Alice: Not so good :( + else is well + Bob->>Alice: Feeling fresh like a daisy + end + + opt Extra response + Bob->>Alice: Thanks for asking + end + end +``` + +```mermaid +sequenceDiagram + loop Daily query + Alice->>Bob: Hello Bob, how are you? + alt is sick + Bob->>Alice: Not so good :( + else is well + Bob->>Alice: Feeling fresh like a daisy + end + + opt Extra response + Bob->>Alice: Thanks for asking + end + end +``` + +## SequenceDiagram: Message to self in loop + +```mermaid-example +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail... + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail... + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +## Sequence Diagram: Blogging app service communication + +```mermaid-example +sequenceDiagram + participant web as Web Browser + participant blog as Blog Service + participant account as Account Service + participant mail as Mail Service + participant db as Storage + + Note over web,db: The user must be logged in to submit blog posts + web->>+account: Logs in using credentials + account->>db: Query stored accounts + db->>account: Respond with query result + + alt Credentials not found + account->>web: Invalid credentials + else Credentials found + account->>-web: Successfully logged in + + Note over web,db: When the user is authenticated, they can now submit new posts + web->>+blog: Submit new post + blog->>db: Store post data + + par Notifications + blog--)mail: Send mail to blog subscribers + blog--)db: Store in-site notifications + and Response + blog-->>-web: Successfully posted + end + end + +``` + +```mermaid +sequenceDiagram + participant web as Web Browser + participant blog as Blog Service + participant account as Account Service + participant mail as Mail Service + participant db as Storage + + Note over web,db: The user must be logged in to submit blog posts + web->>+account: Logs in using credentials + account->>db: Query stored accounts + db->>account: Respond with query result + + alt Credentials not found + account->>web: Invalid credentials + else Credentials found + account->>-web: Successfully logged in + + Note over web,db: When the user is authenticated, they can now submit new posts + web->>+blog: Submit new post + blog->>db: Store post data + + par Notifications + blog--)mail: Send mail to blog subscribers + blog--)db: Store in-site notifications + and Response + blog-->>-web: Successfully posted + end + end + +``` + +## A commit flow diagram. + +```mermaid-example +gitGraph: + commit "Ashish" + branch newbranch + checkout newbranch + commit id:"1111" + commit tag:"test" + checkout main + commit type: HIGHLIGHT + commit + merge newbranch + commit + branch b2 + commit +``` + +```mermaid +gitGraph: + commit "Ashish" + branch newbranch + checkout newbranch + commit id:"1111" + commit tag:"test" + checkout main + commit type: HIGHLIGHT + commit + merge newbranch + commit + branch b2 + commit +``` diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md new file mode 100644 index 0000000000..234f46236d --- /dev/null +++ b/docs/syntax/flowchart.md @@ -0,0 +1,992 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/flowchart.md](../../packages/mermaid/src/docs/syntax/flowchart.md). + +# Flowcharts - Basic Syntax + +All Flowcharts are composed of **nodes**, the geometric shapes and **edges**, the arrows or lines. The mermaid code defines the way that these **nodes** and **edges** are made and interact. + +It can also accommodate different arrow types, multi directional arrows, and linking to and from subgraphs. + +> **Important note**: Do not type the word "end" as a Flowchart node. Capitalize all or any one the letters to keep the flowchart from breaking, i.e, "End" or "END". Or you can apply this [workaround](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897). + +### A node (default) + +```mermaid-example +flowchart LR + id +``` + +```mermaid +flowchart LR + id +``` + +> **Note** The id is what is displayed in the box. + +### A node with text + +It is also possible to set text in the box that differs from the id. If this is done several times, it is the last text +found for the node that will be used. Also if you define edges for the node later on, you can omit text definitions. The +one previously defined will be used when rendering the box. + +```mermaid-example +flowchart LR + id1[This is the text in the box] +``` + +```mermaid +flowchart LR + id1[This is the text in the box] +``` + +## Graph + +This statement declares the direction of the Flowchart. + +This declares the flowchart is oriented from top to bottom (`TD` or `TB`). + +```mermaid-example +flowchart TD + Start --> Stop +``` + +```mermaid +flowchart TD + Start --> Stop +``` + +This declares the flowchart is oriented from left to right (`LR`). + +```mermaid-example +flowchart LR + Start --> Stop +``` + +```mermaid +flowchart LR + Start --> Stop +``` + +## Flowchart Orientation + +Possible FlowChart orientations are: + +- TB - top to bottom +- TD - top-down/ same as top to bottom +- BT - bottom to top +- RL - right to left +- LR - left to right + +## Node shapes + +### A node with round edges + +```mermaid-example +flowchart LR + id1(This is the text in the box) +``` + +```mermaid +flowchart LR + id1(This is the text in the box) +``` + +### A stadium-shaped node + +```mermaid-example +flowchart LR + id1([This is the text in the box]) +``` + +```mermaid +flowchart LR + id1([This is the text in the box]) +``` + +### A node in a subroutine shape + +```mermaid-example +flowchart LR + id1[[This is the text in the box]] +``` + +```mermaid +flowchart LR + id1[[This is the text in the box]] +``` + +### A node in a cylindrical shape + +```mermaid-example +flowchart LR + id1[(Database)] +``` + +```mermaid +flowchart LR + id1[(Database)] +``` + +### A node in the form of a circle + +```mermaid-example +flowchart LR + id1((This is the text in the circle)) +``` + +```mermaid +flowchart LR + id1((This is the text in the circle)) +``` + +### A node in an asymmetric shape + +```mermaid-example +flowchart LR + id1>This is the text in the box] +``` + +```mermaid +flowchart LR + id1>This is the text in the box] +``` + +Currently only the shape above is possible and not its mirror. _This might change with future releases._ + +### A node (rhombus) + +```mermaid-example +flowchart LR + id1{This is the text in the box} +``` + +```mermaid +flowchart LR + id1{This is the text in the box} +``` + +### A hexagon node + +Code: + +```mermaid-example +flowchart LR + id1{{This is the text in the box}} +``` + +```mermaid +flowchart LR + id1{{This is the text in the box}} +``` + +Render: + +```mermaid-example +flowchart LR + id1{{This is the text in the box}} +``` + +```mermaid +flowchart LR + id1{{This is the text in the box}} +``` + +### Parallelogram + +```mermaid-example +flowchart TD + id1[/This is the text in the box/] +``` + +```mermaid +flowchart TD + id1[/This is the text in the box/] +``` + +### Parallelogram alt + +```mermaid-example +flowchart TD + id1[\This is the text in the box\] +``` + +```mermaid +flowchart TD + id1[\This is the text in the box\] +``` + +### Trapezoid + +```mermaid-example +flowchart TD + A[/Christmas\] +``` + +```mermaid +flowchart TD + A[/Christmas\] +``` + +### Trapezoid alt + +```mermaid-example +flowchart TD + B[\Go shopping/] +``` + +```mermaid +flowchart TD + B[\Go shopping/] +``` + +### Double circle + +```mermaid-example +flowchart TD + id1(((This is the text in the circle))) +``` + +```mermaid +flowchart TD + id1(((This is the text in the circle))) +``` + +## Links between nodes + +Nodes can be connected with links/edges. It is possible to have different types of links or attach a text string to a link. + +### A link with arrow head + +```mermaid-example +flowchart LR + A-->B +``` + +```mermaid +flowchart LR + A-->B +``` + +### An open link + +```mermaid-example +flowchart LR + A --- B +``` + +```mermaid +flowchart LR + A --- B +``` + +### Text on links + +```mermaid-example +flowchart LR + A-- This is the text! ---B +``` + +```mermaid +flowchart LR + A-- This is the text! ---B +``` + +or + +```mermaid-example +flowchart LR + A---|This is the text|B +``` + +```mermaid +flowchart LR + A---|This is the text|B +``` + +### A link with arrow head and text + +```mermaid-example +flowchart LR + A-->|text|B +``` + +```mermaid +flowchart LR + A-->|text|B +``` + +or + +```mermaid-example +flowchart LR + A-- text -->B +``` + +```mermaid +flowchart LR + A-- text -->B +``` + +### Dotted link + +```mermaid-example +flowchart LR + A-.->B; +``` + +```mermaid +flowchart LR + A-.->B; +``` + +### Dotted link with text + +```mermaid-example +flowchart LR + A-. text .-> B +``` + +```mermaid +flowchart LR + A-. text .-> B +``` + +### Thick link + +```mermaid-example +flowchart LR + A ==> B +``` + +```mermaid +flowchart LR + A ==> B +``` + +### Thick link with text + +```mermaid-example +flowchart LR + A == text ==> B +``` + +```mermaid +flowchart LR + A == text ==> B +``` + +### Chaining of links + +It is possible declare many links in the same line as per below: + +```mermaid-example +flowchart LR + A -- text --> B -- text2 --> C +``` + +```mermaid +flowchart LR + A -- text --> B -- text2 --> C +``` + +It is also possible to declare multiple nodes links in the same line as per below: + +```mermaid-example +flowchart LR + a --> b & c--> d +``` + +```mermaid +flowchart LR + a --> b & c--> d +``` + +You can then describe dependencies in a very expressive way. Like the one-liner below: + +```mermaid-example +flowchart TB + A & B--> C & D +``` + +```mermaid +flowchart TB + A & B--> C & D +``` + +If you describe the same diagram using the the basic syntax, it will take four lines. A +word of warning, one could go overboard with this making the flowchart harder to read in +markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little. +This goes for expressive syntaxes as well. + +```mermaid-example +flowchart TB + A --> C + A --> D + B --> C + B --> D +``` + +```mermaid +flowchart TB + A --> C + A --> D + B --> C + B --> D +``` + +### New arrow types + +There are new types of arrows supported as per below: + +```mermaid-example +flowchart LR + A --o B + B --x C +``` + +```mermaid +flowchart LR + A --o B + B --x C +``` + +### Multi directional arrows + +There is the possibility to use multidirectional arrows. + +```mermaid-example +flowchart LR + A o--o B + B <--> C + C x--x D +``` + +```mermaid +flowchart LR + A o--o B + B <--> C + C x--x D +``` + +### Minimum length of a link + +Each node in the flowchart is ultimately assigned to a rank in the rendered +graph, i.e. to a vertical or horizontal level (depending on the flowchart +orientation), based on the nodes to which it is linked. By default, links +can span any number of ranks, but you can ask for any link to be longer +than the others by adding extra dashes in the link definition. + +In the following example, two extra dashes are added in the link from node _B_ +to node _E_, so that it spans two more ranks than regular links: + +```mermaid-example +flowchart TD + A[Start] --> B{Is it?} + B -->|Yes| C[OK] + C --> D[Rethink] + D --> B + B ---->|No| E[End] +``` + +```mermaid +flowchart TD + A[Start] --> B{Is it?} + B -->|Yes| C[OK] + C --> D[Rethink] + D --> B + B ---->|No| E[End] +``` + +> **Note** Links may still be made longer than the requested number of ranks +> by the rendering engine to accommodate other requests. + +When the link label is written in the middle of the link, the extra dashes must +be added on the right side of the link. The following example is equivalent to +the previous one: + +```mermaid-example +flowchart TD + A[Start] --> B{Is it?} + B -- Yes --> C[OK] + C --> D[Rethink] + D --> B + B -- No ----> E[End] +``` + +```mermaid +flowchart TD + A[Start] --> B{Is it?} + B -- Yes --> C[OK] + C --> D[Rethink] + D --> B + B -- No ----> E[End] +``` + +For dotted or thick links, the characters to add are equals signs or dots, +as summed up in the following table: + +| Length | 1 | 2 | 3 | +| ----------------- | :----: | :-----: | :------: | +| Normal | `---` | `----` | `-----` | +| Normal with arrow | `-->` | `--->` | `---->` | +| Thick | `===` | `====` | `=====` | +| Thick with arrow | `==>` | `===>` | `====>` | +| Dotted | `-.-` | `-..-` | `-...-` | +| Dotted with arrow | `-.->` | `-..->` | `-...->` | + +## Special characters that break syntax + +It is possible to put text within quotes in order to render more troublesome characters. As in the example below: + +```mermaid-example +flowchart LR + id1["This is the (text) in the box"] +``` + +```mermaid +flowchart LR + id1["This is the (text) in the box"] +``` + +### Entity codes to escape characters + +It is possible to escape characters using the syntax exemplified here. + +```mermaid-example + flowchart LR + A["A double quote:#quot;"] -->B["A dec char:#9829;"] +``` + +```mermaid + flowchart LR + A["A double quote:#quot;"] -->B["A dec char:#9829;"] +``` + +Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. + +## Subgraphs + + subgraph title + graph definition + end + +An example below: + +```mermaid-example +flowchart TB + c1-->a2 + subgraph one + a1-->a2 + end + subgraph two + b1-->b2 + end + subgraph three + c1-->c2 + end +``` + +```mermaid +flowchart TB + c1-->a2 + subgraph one + a1-->a2 + end + subgraph two + b1-->b2 + end + subgraph three + c1-->c2 + end +``` + +You can also set an explicit id for the subgraph. + +```mermaid-example +flowchart TB + c1-->a2 + subgraph ide1 [one] + a1-->a2 + end +``` + +```mermaid +flowchart TB + c1-->a2 + subgraph ide1 [one] + a1-->a2 + end +``` + +## flowcharts + +With the graphtype flowchart it is also possible to set edges to and from subgraphs as in the flowchart below. + +```mermaid-example +flowchart TB + c1-->a2 + subgraph one + a1-->a2 + end + subgraph two + b1-->b2 + end + subgraph three + c1-->c2 + end + one --> two + three --> two + two --> c2 +``` + +```mermaid +flowchart TB + c1-->a2 + subgraph one + a1-->a2 + end + subgraph two + b1-->b2 + end + subgraph three + c1-->c2 + end + one --> two + three --> two + two --> c2 +``` + +## Direction in subgraphs + +With the graphtype flowcharts you can use the direction statement to set the direction which the subgraph will render like in this example. + +```mermaid-example +flowchart LR + subgraph TOP + direction TB + subgraph B1 + direction RL + i1 -->f1 + end + subgraph B2 + direction BT + i2 -->f2 + end + end + A --> TOP --> B + B1 --> B2 +``` + +```mermaid +flowchart LR + subgraph TOP + direction TB + subgraph B1 + direction RL + i1 -->f1 + end + subgraph B2 + direction BT + i2 -->f2 + end + end + A --> TOP --> B + B1 --> B2 +``` + +## Interaction + +It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. + + click nodeId callback + click nodeId call callback() + +- nodeId is the id of the node +- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the nodeId as parameter. + +Examples of tooltip usage below: + +```html + +``` + +The tooltip text is surrounded in double quotes. The styles of the tooltip are set by the class `.mermaidTooltip`. + +```mermaid-example +flowchart LR + A-->B + B-->C + C-->D + click A callback "Tooltip for a callback" + click B "https://www.github.com" "This is a tooltip for a link" + click A call callback() "Tooltip for a callback" + click B href "https://www.github.com" "This is a tooltip for a link" +``` + +```mermaid +flowchart LR + A-->B + B-->C + C-->D + click A callback "Tooltip for a callback" + click B "https://www.github.com" "This is a tooltip for a link" + click A call callback() "Tooltip for a callback" + click B href "https://www.github.com" "This is a tooltip for a link" +``` + +> **Success** The tooltip functionality and the ability to link to urls are available from version 0.5.2. + +?> Due to limitations with how Docsify handles JavaScript callback functions, an alternate working demo for the above code can be viewed at [this jsfiddle](https://jsfiddle.net/s37cjoau/3/). + +Links are opened in the same browser tab/window by default. It is possible to change this by adding a link target to the click definition (`_self`, `_blank`, `_parent` and `_top` are supported): + +```mermaid-example +flowchart LR + A-->B + B-->C + C-->D + D-->E + click A "https://www.github.com" _blank + click B "https://www.github.com" "Open this in a new tab" _blank + click C href "https://www.github.com" _blank + click D href "https://www.github.com" "Open this in a new tab" _blank +``` + +```mermaid +flowchart LR + A-->B + B-->C + C-->D + D-->E + click A "https://www.github.com" _blank + click B "https://www.github.com" "Open this in a new tab" _blank + click C href "https://www.github.com" _blank + click D href "https://www.github.com" "Open this in a new tab" _blank +``` + +Beginner's tip—a full example using interactive links in a html context: + +```html + +
        +    flowchart LR
        +        A-->B
        +        B-->C
        +        C-->D
        +        click A callback "Tooltip"
        +        click B "https://www.github.com" "This is a link"
        +        click C call callback() "Tooltip"
        +        click D href "https://www.github.com" "This is a link"
        +  
        + + + +``` + +### Comments + +Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any flow syntax + +```mermaid-example +flowchart LR +%% this is a comment A -- text --> B{node} + A -- text --> B -- text2 --> C +``` + +```mermaid +flowchart LR +%% this is a comment A -- text --> B{node} + A -- text --> B -- text2 --> C +``` + +## Styling and classes + +### Styling links + +It is possible to style links. For instance, you might want to style a link that is going backwards in the flow. As links +have no ids in the same way as nodes, some other way of deciding what style the links should be attached to is required. +Instead of ids, the order number of when the link was defined in the graph is used, or use default to apply to all links. +In the example below the style defined in the linkStyle statement will belong to the fourth link in the graph: + + linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; + +### Styling line curves + +It is possible to style the type of curve used for lines between items, if the default method does not meet your needs. +Available curve styles include `basis`, `bump`, `linear`, `monotoneX`, `monotoneY`, `natural`, `step`, `stepAfter`, +and `stepBefore`. + +In this example, a left-to-right graph uses the `stepBefore` curve style: + + %%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% + graph LR + +For a full list of available curves, including an explanation of custom curves, refer to +the [Shapes](https://github.com/d3/d3-shape/blob/main/README.md#curves) documentation in the +[d3-shape](https://github.com/d3/d3-shape/) project. + +### Styling a node + +It is possible to apply specific styles such as a thicker border or a different background color to a node. + +```mermaid-example +flowchart LR + id1(Start)-->id2(Stop) + style id1 fill:#f9f,stroke:#333,stroke-width:4px + style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 +``` + +```mermaid +flowchart LR + id1(Start)-->id2(Stop) + style id1 fill:#f9f,stroke:#333,stroke-width:4px + style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5 +``` + +#### Classes + +More convenient than defining the style every time is to define a class of styles and attach this class to the nodes that +should have a different look. + +a class definition looks like the example below: + + classDef className fill:#f9f,stroke:#333,stroke-width:4px; + +Attachment of a class to a node is done as per below: + + class nodeId1 className; + +It is also possible to attach a class to a list of nodes in one statement: + + class nodeId1,nodeId2 className; + +A shorter form of adding a class is to attach the classname to the node using the `:::`operator as per below: + +```mermaid-example +flowchart LR + A:::someclass --> B + classDef someclass fill:#f96 +``` + +```mermaid +flowchart LR + A:::someclass --> B + classDef someclass fill:#f96 +``` + +### Css classes + +It is also possible to predefine classes in css styles that can be applied from the graph definition as in the example +below: + +**Example style** + +```html + +``` + +**Example definition** + +```mermaid-example +flowchart LR + A-->B[AAABBB] + B-->D + class A cssClass +``` + +```mermaid +flowchart LR + A-->B[AAABBB] + B-->D + class A cssClass +``` + +### Default class + +If a class is named default it will be assigned to all classes without specific class definitions. + + classDef default fill:#f9f,stroke:#333,stroke-width:4px; + +## Basic support for fontawesome + +It is possible to add icons from fontawesome. + +The icons are accessed via the syntax fa:#icon class name#. + +```mermaid-example +flowchart TD + B["fab:fa-twitter for peace"] + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner) + B-->E(A fa:fa-camera-retro perhaps?) +``` + +```mermaid +flowchart TD + B["fab:fa-twitter for peace"] + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner) + B-->E(A fa:fa-camera-retro perhaps?) +``` + +?> Mermaid is now only compatible with Font Awesome versions 4 and 5. Check that you are using the correct version of Font Awesome. + +## Graph declarations with spaces between vertices and link and without semicolon + +- In graph declarations, the statements also can now end without a semicolon. After release 0.2.16, ending a graph statement with semicolon is just optional. So the below graph declaration is also valid along with the old declarations of the graph. + +- A single space is allowed between vertices and the link. However there should not be any space between a vertex and its text and a link and its text. The old syntax of graph declaration will also work and hence this new feature is optional and is introduced to improve readability. + +Below is the new declaration of the graph edges which is also valid along with the old declaration of the graph edges. + +```mermaid-example +flowchart LR + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +``` + +```mermaid +flowchart LR + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +``` + +## Configuration... + +Is it possible to adjust the width of the rendered flowchart. + +This is done by defining **mermaid.flowchartConfig** or by the CLI to use a JSON file with the configuration. How to use the CLI is described in the mermaidCLI page. +mermaid.flowchartConfig can be set to a JSON string with config parameters or the corresponding object. + +```javascript +mermaid.flowchartConfig = { + width: 100% +} +``` diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md new file mode 100644 index 0000000000..b20b6b7760 --- /dev/null +++ b/docs/syntax/gantt.md @@ -0,0 +1,423 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gantt.md](../../packages/mermaid/src/docs/syntax/gantt.md). + +# Gantt diagrams + +> A Gantt chart is a type of bar chart, first developed by Karol Adamiecki in 1896, and independently by Henry Gantt in the 1910s, that illustrates a project schedule and the amount of time it would take for any one project to finish. Gantt charts illustrate number of days between the start and finish dates of the terminal elements and summary elements of a project. + +## A note to users + +Gantt Charts will record each scheduled task as one continuous bar that extends from the left to the right. The x axis represents time and the y records the different tasks and the order in which they are to be completed. + +It is important to remember that when a date, day, or collection of dates specific to a task are "excluded", the Gantt Chart will accommodate those changes by extending an equal number of days, towards the right, not by creating a gap inside the task. +As shown here ![](./img/Gantt-excluded-days-within.png) + +However, if the excluded dates are between two tasks that are set to start consecutively, the excluded dates will be skipped graphically and left blank, and the following task will begin after the end of the excluded dates. +As shown here ![](./img/Gantt-long-weekend-look.png) + +A Gantt chart is useful for tracking the amount of time it would take before a project is finished, but it can also be used to graphically represent "non-working days", with a few tweaks. + +Mermaid can render Gantt diagrams as SVG, PNG or a MarkDown link that can be pasted into docs. + +```mermaid-example +gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d +``` + +```mermaid +gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d +``` + +## Syntax + +```mermaid-example +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + excludes weekends + %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + Functionality added :milestone, 2014-01-25, 0d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page :20h + Add another diagram to demo page :48h +``` + +```mermaid +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + excludes weekends + %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + Functionality added :milestone, 2014-01-25, 0d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page :20h + Add another diagram to demo page :48h +``` + +It is possible to set multiple dependencies separated by space: + +```mermaid-example + gantt + apple :a, 2017-07-20, 1w + banana :crit, b, 2017-07-23, 1d + cherry :active, c, after b a, 1d +``` + +```mermaid + gantt + apple :a, 2017-07-20, 1w + banana :crit, b, 2017-07-23, 1d + cherry :active, c, after b a, 1d +``` + +### Title + +The `title` is an _optional_ string to be displayed at the top of the Gantt chart to describe the chart as a whole. + +### Section statements + +You can divide the chart into various sections, for example to separate different parts of a project like development and documentation. + +To do so, start a line with the `section` keyword and give it a name. (Note that unlike with the [title for the entire chart](#title), this name is _required_. + +### Milestones + +You can add milestones to the diagrams. Milestones differ from tasks as they represent a single instant in time and are identified by the keyword `milestone`. Below is an example on how to use milestones. As you may notice, the exact location of the milestone is determined by the initial date for the milestone and the "duration" of the task this way: _initial date_+_duration_/2. + +```mermaid-example +gantt +dateFormat HH:mm +axisFormat %H:%M +Initial milestone : milestone, m1, 17:49,2min +taska2 : 10min +taska3 : 5min +Final milestone : milestone, m2, 18:14, 2min +``` + +```mermaid +gantt +dateFormat HH:mm +axisFormat %H:%M +Initial milestone : milestone, m1, 17:49,2min +taska2 : 10min +taska3 : 5min +Final milestone : milestone, m2, 18:14, 2min +``` + +## Setting dates + +`dateFormat` defines the format of the date **input** of your gantt elements. How these dates are represented in the rendered chart **output** are defined by `axisFormat`. + +### Input date format + +The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`. + + dateFormat YYYY-MM-DD + +The following formatting options are supported: + + Input Example Description: + YYYY 2014 4 digit year + YY 14 2 digit year + Q 1..4 Quarter of year. Sets month to first month in quarter. + M MM 1..12 Month number + MMM MMMM January..Dec Month name in locale set by moment.locale() + D DD 1..31 Day of month + Do 1st..31st Day of month with ordinal + DDD DDDD 1..365 Day of year + X 1410715640.579 Unix timestamp + x 1410715640579 Unix ms timestamp + H HH 0..23 24 hour time + h hh 1..12 12 hour time used with a A. + a A am pm Post or ante meridiem + m mm 0..59 Minutes + s ss 0..59 Seconds + S 0..9 Tenths of a second + SS 0..99 Hundreds of a second + SSS 0..999 Thousandths of a second + Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z + +More info in: https://momentjs.com/docs/#/parsing/string-format/ + +### Output date format on the axis + +The default output date format is `YYYY-MM-DD`. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020. + + axisFormat %Y-%m-%d + +The following formatting strings are supported: + + %a - abbreviated weekday name. + %A - full weekday name. + %b - abbreviated month name. + %B - full month name. + %c - date and time, as "%a %b %e %H:%M:%S %Y". + %d - zero-padded day of the month as a decimal number [01,31]. + %e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %_d. + %H - hour (24-hour clock) as a decimal number [00,23]. + %I - hour (12-hour clock) as a decimal number [01,12]. + %j - day of the year as a decimal number [001,366]. + %m - month as a decimal number [01,12]. + %M - minute as a decimal number [00,59]. + %L - milliseconds as a decimal number [000, 999]. + %p - either AM or PM. + %S - second as a decimal number [00,61]. + %U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. + %w - weekday as a decimal number [0(Sunday),6]. + %W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. + %x - date, as "%m/%d/%Y". + %X - time, as "%H:%M:%S". + %y - year without century as a decimal number [00,99]. + %Y - year with century as a decimal number. + %Z - time zone offset, such as "-0700". + %% - a literal "%" character. + +More info in: + +### Axis ticks + +The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`. + + tickInterval 1day + +The pattern is: + + /^([1-9][0-9]*)(minute|hour|day|week|month)$/ + +More info in: + +## Comments + +Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +```mermaid-example +gantt + title A Gantt Diagram + %% this is a comment + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +```mermaid +gantt + title A Gantt Diagram + %% this is a comment + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +## Styling + +Styling of the Gantt diagram is done by defining a number of CSS classes. During rendering, these classes are extracted from the file located at src/diagrams/gantt/styles.js + +### Classes used + +| Class | Description | +| --------------------- | ---------------------------------------------------------------------- | +| grid.tick | Styling for the Grid Lines | +| grid.path | Styling for the Grid's borders | +| .taskText | Task Text Styling | +| .taskTextOutsideRight | Styling for Task Text that exceeds the activity bar towards the right. | +| .taskTextOutsideLeft | Styling for Task Text that exceeds the activity bar, towards the left. | +| todayMarker | Toggle and Styling for the "Today Marker" | + +### Sample stylesheet + +```css +.grid .tick { + stroke: lightgrey; + opacity: 0.3; + shape-rendering: crispEdges; +} +.grid path { + stroke-width: 0; +} + +#tag { + color: white; + background: #fa283d; + width: 150px; + position: absolute; + display: none; + padding: 3px 6px; + margin-left: -80px; + font-size: 11px; +} + +#tag:before { + border: solid transparent; + content: ' '; + height: 0; + left: 50%; + margin-left: -5px; + position: absolute; + width: 0; + border-width: 10px; + border-bottom-color: #fa283d; + top: -20px; +} +.taskText { + fill: white; + text-anchor: middle; +} +.taskTextOutsideRight { + fill: black; + text-anchor: start; +} +.taskTextOutsideLeft { + fill: black; + text-anchor: end; +} +``` + +## Today marker + +You can style or hide the marker for the current date. To style it, add a value for the `todayMarker` key. + + todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5 + +To hide the marker, set `todayMarker` to `off`. + + todayMarker off + +## Configuration + +It is possible to adjust the margins for rendering the gantt diagram. + +This is done by defining the `ganttConfig` part of the configuration object. +How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.md) page. + +mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object. + +```javascript +mermaid.ganttConfig = { + titleTopMargin: 25, + barHeight: 20, + barGap: 4, + topPadding: 75, + sidePadding: 75, +}; +``` + +### Possible configuration params: + +| Param | Description | Default value | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------- | +| mirrorActor | Turns on/off the rendering of actors below the diagram as well as above it | false | +| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | + +## Interaction + +It is possible to bind a click event to a task. The click can lead to either a javascript callback or to a link which will be opened in the current browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`. + + click taskId call callback(arguments) + click taskId href URL + +- taskId is the id of the task +- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the taskId as the parameter if no other arguments are specified. + +Beginner's tip—a full example using interactive links in an html context: + +```html + +
        +    gantt
        +      dateFormat  YYYY-MM-DD
        +
        +      section Clickable
        +      Visit mermaidjs           :active, cl1, 2014-01-07, 3d
        +      Print arguments         :cl2, after cl1, 3d
        +      Print task              :cl3, after cl2, 3d
        +
        +      click cl1 href "https://mermaidjs.github.io/"
        +      click cl2 call printArguments("test1", "test2", test3)
        +      click cl3 call printTask()
        +  
        + + + +``` diff --git a/docs/syntax/gitgraph.md b/docs/syntax/gitgraph.md new file mode 100644 index 0000000000..cd1a3f12a3 --- /dev/null +++ b/docs/syntax/gitgraph.md @@ -0,0 +1,1729 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gitgraph.md](../../packages/mermaid/src/docs/syntax/gitgraph.md). + +# Gitgraph Diagrams + +> A Git Graph is a pictorial representation of git commits and git actions(commands) on various branches. + +These kind of diagram are particularly helpful to developers and devops teams to share their Git branching strategies. For example, it makes it easier to visualize how git flow works. + +Mermaid can render Git diagrams + +```mermaid-example + gitGraph + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit +``` + +```mermaid + gitGraph + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit +``` + +In Mermaid, we support the basic git operations like: + +- _commit_ : Representing a new commit on the current branch. +- _branch_ : To create & switch to a new branch, setting it as the current branch. +- _checkout_ : To checking out an existing branch and setting it as the current branch. +- _merge_ : To merge an existing branch onto the current branch. + +With the help of these key git commands, you will be able to draw a gitgraph in Mermaid very easily and quickly. +Entity names are often capitalized, although there is no accepted standard on this, and it is not required in Mermaid. + +## Syntax + +Mermaid syntax for a gitgraph is very straight-forward and simple. It follows a declarative-approach, where each commit is drawn on the timeline in the diagram, in order of its occurrences/presence in code. Basically, it follows the insertion order for each command. + +First thing you do is to declare your diagram type using the **gitgraph** keyword. This `gitgraph` keyword, tells Mermaid that you wish to draw a gitgraph, and parse the diagram code accordingly. + +Each gitgraph, is initialized with **_main_** branch. So unless you create a different branch, by-default the commits will go to the main branch. This is driven with how git works, where in the beginning you always start with the main branch (formerly called as **_master_** branch). And by-default, `main` branch is set as your **_current branch_**. + +You make use of **_commit_** keyword to register a commit on the current branch. Let see how this works: + +A simple gitgraph showing three commits on the default (**_main_**) branch: + +```mermaid-example + gitGraph + commit + commit + commit +``` + +```mermaid + gitGraph + commit + commit + commit +``` + +If you look closely at the previous example, you can see the default branch `main` along with three commits. Also, notice that by default each commit has been given a unique & random ID. What if you wanted to give your own custom ID to a commit? Yes, it is possible to do that with Mermaid. + +### Adding custom commit id + +For a given commit you may specify a custom ID at the time of declaring it using the `id` attribute, followed by `:` and your custom value within a `""` quote. For example: `commit id: "your_custom_id"` + +Let us see how this works with the help of the following diagram: + +```mermaid-example + gitGraph + commit id: "Alpha" + commit id: "Beta" + commit id: "Gamma" +``` + +```mermaid + gitGraph + commit id: "Alpha" + commit id: "Beta" + commit id: "Gamma" +``` + +In this example, we have given our custom IDs to the commits. + +### Modifying commit type + +In Mermaid, a commit can be of three type, which render a bit different in the diagram. These types are: + +- `NORMAL` : Default commit type. Represented by a solid circle in the diagram +- `REVERSE` : To emphasize a commit as a reverse commit. Represented by a crossed solid circle in the diagram. +- `HIGHLIGHT` : To highlight a particular commit in the diagram. Represented by a filled rectangle in the diagram. + +For a given commit you may specify its type at the time of declaring it using the `type` attribute, followed by `:` and the required type option discussed above. For example: `commit type: HIGHLIGHT` + +NOTE: If no commit type is specified, `NORMAL` is picked as default. + +Let us see how these different commit type look with the help of the following diagram: + +```mermaid-example + gitGraph + commit id: "Normal" + commit + commit id: "Reverse" type: REVERSE + commit + commit id: "Highlight" type: HIGHLIGHT + commit +``` + +```mermaid + gitGraph + commit id: "Normal" + commit + commit id: "Reverse" type: REVERSE + commit + commit id: "Highlight" type: HIGHLIGHT + commit +``` + +In this example, we have specified different types to each commit. Also, see how we have included both `id` and `type` together at the time of declaring our commits. + +### Adding Tags + +For a given commit you may decorate it as a **tag**, similar to the concept of tags or release version in git world. +You can attach a custom tag at the time of declaring a commit using the `tag` attribute, followed by `:` and your custom value within `""` quote. For example: `commit tag: "your_custom_tag"` + +Let us see how this works with the help of the following diagram: + +```mermaid-example + gitGraph + commit + commit id: "Normal" tag: "v1.0.0" + commit + commit id: "Reverse" type: REVERSE tag: "RC_1" + commit + commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4" + commit +``` + +```mermaid + gitGraph + commit + commit id: "Normal" tag: "v1.0.0" + commit + commit id: "Reverse" type: REVERSE tag: "RC_1" + commit + commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4" + commit +``` + +In this example, we have given custom tags to the commits. Also, see how we have combined all these attributes in a single commit declaration. You can mix-match these attributes as you like. + +### Create a new branch + +In Mermaid, in-order to create a new branch, you make use of the `branch` keyword. You also need to provide a name of the new branch. The name has to be unique and cannot be that of an existing branch. A branch name that could be confused for a keyword must be quoted within `""`. Usage examples: `branch develop`, `branch "cherry-pick"` + +When Mermaid, reads the `branch` keyword, it creates a new branch and sets it as the current branch. Equivalent to you creating a new branch and checking it out in Git world. + +Let see this in an example: + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit +``` + +```mermaid + gitGraph + commit + commit + branch develop + commit + commit + commit +``` + +In this example, see how we started with default `main` branch, and pushed two commits on that. +Then we created the `develop` branch, and all commits afterwards are put on the `develop` branch as it became the current branch. + +### Checking out an existing branch + +In Mermaid, in order to switch to an existing branch, you make use of the `checkout` keyword. You also need to provide a name of an existing branch. If no branch is found with the given name, it will result in console error. Usage example: `checkout develop` + +When Mermaid, reads the `checkout` keyword, it finds the given branch and sets it as the current branch. Equivalent to checking out a branch in the Git world. + +Let see modify our previous example: + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +```mermaid + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +In this example, see how we started with default `main` branch, and pushed two commits on that. +Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. +After this we made use of the `checkout` keyword to set the current branch as `main`, and all commit that follow are registered against the current branch, i.e. `main`. + +### Merging two branches + +In Mermaid, in order to merge or join to an existing branch, you make use of the `merge` keyword. You also need to provide the name of an existing branch to merge from. If no branch is found with the given name, it will result in console error. Also, you can only merge two separate branches, and cannot merge a branch with itself. In such case an error is throw. + +Usage example: `merge develop` + +When Mermaid, reads the `merge` keyword, it finds the given branch and its head commit (the last commit on that branch), and joins it with the head commit on the **current branch**. Each merge results in a **_merge commit_**, represented in the diagram with **filled double circle**. + +Let us modify our previous example to merge our two branches: + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit + merge develop + commit + commit +``` + +```mermaid + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit + merge develop + commit + commit +``` + +In this example, see how we started with default `main` branch, and pushed two commits on that. +Then we created the `develop` branch, and all three commits afterwards are put on the `develop` branch as it became the current branch. +After this we made use of the `checkout` keyword to set the current branch as `main`, and all commits that follow are registered against the current branch, i.e. `main`. +After this we merge the `develop` branch onto the current branch `main`, resulting in a merge commit. +Since the current branch at this point is still `main`, the last two commits are registered against that. + +You can also decorate your merge with similar attributes as you did for the commit using: + +- `id`--> To override the default ID with custom ID +- `tag`--> To add a custom tag to your merge commit +- `type`--> To override the default shape of merge commit. Here you can use other commit type mentioned earlier. + +And you can choose to use none, some or all of these attributes together. +For example: `merge develop id: "my_custom_id" tag: "my_custom_tag" type: REVERSE` + +Let us see how this works with the help of the following diagram: + +```mermaid-example + gitGraph + commit id: "1" + commit id: "2" + branch nice_feature + checkout nice_feature + commit id: "3" + checkout main + commit id: "4" + checkout nice_feature + branch very_nice_feature + checkout very_nice_feature + commit id: "5" + checkout main + commit id: "6" + checkout nice_feature + commit id: "7" + checkout main + merge nice_feature id: "customID" tag: "customTag" type: REVERSE + checkout very_nice_feature + commit id: "8" + checkout main + commit id: "9" +``` + +```mermaid + gitGraph + commit id: "1" + commit id: "2" + branch nice_feature + checkout nice_feature + commit id: "3" + checkout main + commit id: "4" + checkout nice_feature + branch very_nice_feature + checkout very_nice_feature + commit id: "5" + checkout main + commit id: "6" + checkout nice_feature + commit id: "7" + checkout main + merge nice_feature id: "customID" tag: "customTag" type: REVERSE + checkout very_nice_feature + commit id: "8" + checkout main + commit id: "9" +``` + +### Cherry Pick commit from another branch + +Similar to how 'git' allows you to cherry-pick a commit from **another branch** onto the **current** branch, Mermaid also supports this functionality. You can also cherry-pick a commit from another branch using the `cherry-pick` keyword. + +To use the `cherry-pick` keyword, you must specify the id using the `id` attribute, followed by `:` and your desired commit id within a `""` quote. For example: + +`cherry-pick id: "your_custom_id"` + +Here, a new commit representing the cherry-pick is created on the current branch, and is visually highlighted in the diagram with a **cherry** and a tag depicting the commit id from which it is cherry-picked from. + +A few important rules to note here are: + +1. You need to provide the `id` for an existing commit to be cherry-picked. If given commit id does not exist it will result in an error. For this, make use of the `commit id:$value` format of declaring commits. See the examples from above. +2. The given commit must not exist on the current branch. The cherry-picked commit must always be a different branch than the current branch. +3. Current branch must have at least one commit, before you can cherry-pick, otherwise it will cause an error is throw. + +Let see an example: + +```mermaid-example + gitGraph + commit id: "ZERO" + branch develop + commit id:"A" + checkout main + commit id:"ONE" + checkout develop + commit id:"B" + checkout main + commit id:"TWO" + cherry-pick id:"A" + commit id:"THREE" + checkout develop + commit id:"C" +``` + +```mermaid + gitGraph + commit id: "ZERO" + branch develop + commit id:"A" + checkout main + commit id:"ONE" + checkout develop + commit id:"B" + checkout main + commit id:"TWO" + cherry-pick id:"A" + commit id:"THREE" + checkout develop + commit id:"C" +``` + +## Gitgraph specific configuration options + +In Mermaid, you have the option to configure the gitgraph diagram. You can configure the following options: + +- `showBranches` : Boolean, default is `true`. If set to `false`, the branches are not shown in the diagram. +- `showCommitLabel` : Boolean, default is `true`. If set to `false`, the commit labels are not shown in the diagram. +- `mainBranchName` : String, default is `main`. The name of the default/root branch. +- `mainBranchOrder` : Position of the main branch in the list of branches. default is `0`, meaning, by default `main` branch is the first in the order. + +Let's look at them one by one. + +## Hiding Branch names and lines + +Sometimes you may want to hide the branch names and lines from the diagram. You can do this by using the `showBranches` keyword. By default its value is `true`. You can set it to `false` using directives. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false}} }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false}} }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +## Commit labels Layout: Rotated or Horizontal + +Mermaid supports two types of commit labels layout. The default layout is **rotated**, which means the labels are placed below the commit circle, rotated at 45 degrees for better readability. This is particularly useful for commits with long labels. + +The other option is **horizontal**, which means the labels are placed below the commit circle centred horizontally, and are not rotated. This is particularly useful for commits with short labels. + +You can change the layout of the commit labels by using the `rotateCommitLabel` keyword in the directive. It defaults to `true`, which means the commit labels are rotated. + +Usage example: Rotated commit labels + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': true}} }%% +gitGraph + commit id: "feat(api): ..." + commit id: "a" + commit id: "b" + commit id: "fix(client): .extra long label.." + branch c2 + commit id: "feat(modules): ..." + commit id: "test(client): ..." + checkout main + commit id: "fix(api): ..." + commit id: "ci: ..." + branch b1 + commit + branch b2 + commit +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': true}} }%% +gitGraph + commit id: "feat(api): ..." + commit id: "a" + commit id: "b" + commit id: "fix(client): .extra long label.." + branch c2 + commit id: "feat(modules): ..." + commit id: "test(client): ..." + checkout main + commit id: "fix(api): ..." + commit id: "ci: ..." + branch b1 + commit + branch b2 + commit +``` + +Usage example: Horizontal commit labels + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': false}} }%% +gitGraph + commit id: "feat(api): ..." + commit id: "a" + commit id: "b" + commit id: "fix(client): .extra long label.." + branch c2 + commit id: "feat(modules): ..." + commit id: "test(client): ..." + checkout main + commit id: "fix(api): ..." + commit id: "ci: ..." + branch b1 + commit + branch b2 + commit +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'rotateCommitLabel': false}} }%% +gitGraph + commit id: "feat(api): ..." + commit id: "a" + commit id: "b" + commit id: "fix(client): .extra long label.." + branch c2 + commit id: "feat(modules): ..." + commit id: "test(client): ..." + checkout main + commit id: "fix(api): ..." + commit id: "ci: ..." + branch b1 + commit + branch b2 + commit +``` + +## Hiding commit labels + +Sometimes you may want to hide the commit labels from the diagram. You can do this by using the `showCommitLabel` keyword. By default its value is `true`. You can set it to `false` using directives. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false,'showCommitLabel': false}} }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': false,'showCommitLabel': false}} }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +## Customizing main branch name + +Sometimes you may want to customize the name of the main/default branch. You can do this by using the `mainBranchName` keyword. By default its value is `main`. You can set it to any string using directives. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'MetroLine1'}} }%% + gitGraph + commit id:"NewYork" + commit id:"Dallas" + branch MetroLine2 + commit id:"LosAngeles" + commit id:"Chicago" + commit id:"Houston" + branch MetroLine3 + commit id:"Phoenix" + commit type: HIGHLIGHT id:"Denver" + commit id:"Boston" + checkout MetroLine1 + commit id:"Atlanta" + merge MetroLine3 + commit id:"Miami" + commit id:"Washington" + merge MetroLine2 tag:"MY JUNCTION" + commit id:"Boston" + commit id:"Detroit" + commit type:REVERSE id:"SanFrancisco" +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'MetroLine1'}} }%% + gitGraph + commit id:"NewYork" + commit id:"Dallas" + branch MetroLine2 + commit id:"LosAngeles" + commit id:"Chicago" + commit id:"Houston" + branch MetroLine3 + commit id:"Phoenix" + commit type: HIGHLIGHT id:"Denver" + commit id:"Boston" + checkout MetroLine1 + commit id:"Atlanta" + merge MetroLine3 + commit id:"Miami" + commit id:"Washington" + merge MetroLine2 tag:"MY JUNCTION" + commit id:"Boston" + commit id:"Detroit" + commit type:REVERSE id:"SanFrancisco" +``` + +Look at the imaginary railroad map created using Mermaid. Here, we have changed the default main branch name to `MetroLine1`. + +## Customizing branch ordering + +In Mermaid, by default the branches are shown in the order of their definition or appearance in the diagram code. + +Sometimes you may want to customize the order of the branches. You can do this by using the `order` keyword next the branch definition. You can set it to a positive number. + +Mermaid follows the given precedence order of the `order` keyword. + +- Main branch is always shown first as it has default order value of `0`. (unless its order is modified and changed from `0` using the `mainBranchOrder` keyword in the config) +- Next, All branches without an `order` are shown in the order of their appearance in the diagram code. +- Next, All branches with an `order` are shown in the order of their `order` value. + +To fully control the order of all the branches, you must define `order` for all the branches. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true}} }%% + gitGraph + commit + branch test1 order: 3 + branch test2 order: 2 + branch test3 order: 1 + +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true}} }%% + gitGraph + commit + branch test1 order: 3 + branch test2 order: 2 + branch test3 order: 1 + +``` + +Look at the diagram, all the branches are following the order defined. + +Usage example: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%% + gitGraph + commit + branch test1 order: 3 + branch test2 + branch test3 + branch test4 order: 1 + +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%% + gitGraph + commit + branch test1 order: 3 + branch test2 + branch test3 + branch test4 order: 1 + +``` + +Look at the diagram, here, all the branches without a specified order are drawn in their order of definition. +Then, `test4` branch is drawn because the order of `1`. +Then, `main` branch is drawn because the order of `2`. +And, lastly `test1`is drawn because the order of `3`. + +NOTE: Because we have overridden the `mainBranchOrder` to `2`, the `main` branch is not drawn in the beginning, instead follows the ordering. + +Here, we have changed the default main branch name to `MetroLine1`. + +## Themes + +Mermaid supports a bunch of pre-defined themes which you can use to find the right one for you. PS: you can actually override an existing theme's variable to get your own custom theme going. Learn more about theming your diagram [here](../config/theming.md). + +The following are the different pre-defined theme options: + +- `base` +- `forest` +- `dark` +- `default` +- `neutral` + +**NOTE**: To change theme you can either use the `initialize` call or _directives_. Learn more about [directives](../config/directives.md) +Let's put them to use, and see how our sample diagram looks in different themes: + +### Base Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'base' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Forest Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Default Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% + gitGraph + commit type:HIGHLIGHT + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% + gitGraph + commit type:HIGHLIGHT + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Dark Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +### Neutral Theme + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'neutral' } }%% + gitGraph + commit + branch hotfix + checkout hotfix + commit + branch develop + checkout develop + commit id:"ash" tag:"abc" + branch featureB + checkout featureB + commit type:HIGHLIGHT + checkout main + checkout hotfix + commit type:NORMAL + checkout develop + commit type:REVERSE + checkout featureB + commit + checkout main + merge hotfix + checkout featureB + commit + checkout develop + branch featureA + commit + checkout develop + merge hotfix + checkout featureA + commit + checkout featureB + commit + checkout develop + merge featureA + branch release + checkout release + commit + checkout main + commit + checkout release + merge main + checkout develop + merge release +``` + +## Customize using Theme Variables + +Mermaid allows you to customize your diagram using theme variables which govern the look and feel of various elements of the diagram. + +For understanding let us take a sample diagram with theme `default`, the default values of the theme variables is picked automatically from the theme. Later on we will see how to override the default values of the theme variables. + +See how the default theme is used to set the colors for the branches: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'default' } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit +``` + +> #### IMPORTANT: +> +> Mermaid supports the theme variables to override the default values for **up to 8 branches**, i.e., you can set the color/styling of up to 8 branches using theme variables. After this threshold of 8 branches, the theme variables are reused in the cyclic manner, i.e. the 9th branch will use the color/styling of the 1st branch, or the branch at index position '8' will use the color/styling of the branch at index position '0'. +> _More on this in the next section. See examples on **Customizing branch label colors** below_ + +### Customizing branch colors + +You can customize the branch colors using the `git0` to `git7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `git0` variable will drive the value of the first branch, `git1` will drive the value of the second branch and so on. + +NOTE: Default values for these theme variables are picked from the selected theme. If you want to override the default values, you can use the `initialize` call to add your custom theme variable values. + +Example: + +Now let's override the default values for the `git0` to `git3` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'git0': '#ff0000', + 'git1': '#00ff00', + 'git2': '#0000ff', + 'git3': '#ff00ff', + 'git4': '#00ffff', + 'git5': '#ffff00', + 'git6': '#ff00ff', + 'git7': '#00ffff' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'git0': '#ff0000', + 'git1': '#00ff00', + 'git2': '#0000ff', + 'git3': '#ff00ff', + 'git4': '#00ffff', + 'git5': '#ffff00', + 'git6': '#ff00ff', + 'git7': '#00ffff' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the branch colors are changed to the values specified in the theme variables. + +### Customizing branch label colors + +You can customize the branch label colors using the `gitBranchLabel0` to `gitBranchLabel7` theme variables. Mermaid allows you to set the colors for up-to 8 branches, where `gitBranchLabel0` variable will drive the value of the first branch label, `gitBranchLabel1` will drive the value of the second branch label and so on. + +Lets see how the default theme is used to set the colors for the branch labels: + +Now let's override the default values for the `gitBranchLabel0` to `gitBranchLabel2` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'gitBranchLabel0': '#ffffff', + 'gitBranchLabel1': '#ffffff', + 'gitBranchLabel2': '#ffffff', + 'gitBranchLabel3': '#ffffff', + 'gitBranchLabel4': '#ffffff', + 'gitBranchLabel5': '#ffffff', + 'gitBranchLabel6': '#ffffff', + 'gitBranchLabel7': '#ffffff', + 'gitBranchLabel8': '#ffffff', + 'gitBranchLabel9': '#ffffff' + } } }%% + gitGraph + checkout main + branch branch1 + branch branch2 + branch branch3 + branch branch4 + branch branch5 + branch branch6 + branch branch7 + branch branch8 + branch branch9 + checkout branch1 + commit +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'gitBranchLabel0': '#ffffff', + 'gitBranchLabel1': '#ffffff', + 'gitBranchLabel2': '#ffffff', + 'gitBranchLabel3': '#ffffff', + 'gitBranchLabel4': '#ffffff', + 'gitBranchLabel5': '#ffffff', + 'gitBranchLabel6': '#ffffff', + 'gitBranchLabel7': '#ffffff', + 'gitBranchLabel8': '#ffffff', + 'gitBranchLabel9': '#ffffff' + } } }%% + gitGraph + checkout main + branch branch1 + branch branch2 + branch branch3 + branch branch4 + branch branch5 + branch branch6 + branch branch7 + branch branch8 + branch branch9 + checkout branch1 + commit +``` + +Here, you can see that `branch8` and `branch9` colors and the styles are being picked from branch at index position `0` (`main`) and `1`(`branch1`) respectively, i.e., **branch themeVariables are repeated cyclically**. + +### Customizing Commit colors + +You can customize commit using the `commitLabelColor` and `commitLabelBackground` theme variables for changes in the commit label color and background color respectively. + +Example: +Now let's override the default values for the `commitLabelColor` to `commitLabelBackground` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the commit label color and background color are changed to the values specified in the theme variables. + +### Customizing Commit Label Font Size + +You can customize commit using the `commitLabelFontSize` theme variables for changing in the font soze of the commit label . + +Example: +Now let's override the default values for the `commitLabelFontSize` variable: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00', + 'commitLabelFontSize': '16px' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00', + 'commitLabelFontSize': '16px' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the commit label font size changed. + +### Customizing Tag Label Font Size + +You can customize commit using the `tagLabelFontSize` theme variables for changing in the font soze of the tag label . + +Example: +Now let's override the default values for the `tagLabelFontSize` variable: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00', + 'tagLabelFontSize': '16px' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'commitLabelColor': '#ff0000', + 'commitLabelBackground': '#00ff00', + 'tagLabelFontSize': '16px' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the tag label font size changed. + +### Customizing Tag colors + +You can customize tag using the `tagLabelColor`,`tagLabelBackground` and `tagLabelBorder` theme variables for changes in the tag label color,tag label background color and tag label border respectively. +Example: +Now let's override the default values for the `tagLabelColor`, `tagLabelBackground` and to `tagLabelBorder` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'tagLabelColor': '#ff0000', + 'tagLabelBackground': '#00ff00', + 'tagLabelBorder': '#0000ff' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'tagLabelColor': '#ff0000', + 'tagLabelBackground': '#00ff00', + 'tagLabelBorder': '#0000ff' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the tag colors are changed to the values specified in the theme variables. + +### Customizing Highlight commit colors + +You can customize the highlight commit colors in relation to the branch it is on using the `gitInv0` to `gitInv7` theme variables. Mermaid allows you to set the colors for up-to 8 branches specific highlight commit, where `gitInv0` variable will drive the value of the first branch's highlight commits, `gitInv1` will drive the value of the second branch's highlight commit label and so on. + +Example: + +Now let's override the default values for the `git0` to `git3` variables: + +```mermaid-example + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'gitInv0': '#ff0000' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +```mermaid + %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { + 'gitInv0': '#ff0000' + } } }%% + gitGraph + commit + branch develop + commit tag:"v1.0.0" + commit + checkout main + commit type: HIGHLIGHT + commit + merge develop + commit + branch featureA + commit + +``` + +See how the highlighted commit color on the first branch is changed to the value specified in the theme variable `gitInv0`. diff --git a/docs/syntax/img/Gantt-excluded-days-within.png b/docs/syntax/img/Gantt-excluded-days-within.png new file mode 100644 index 0000000000000000000000000000000000000000..2283bf99d8d6ed1b721541ce1f0f8b38d6e19887 GIT binary patch literal 79453 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

        eQe(Y%!Xg7+4bDT&Bc0< zoIjb3TzH}fypqpN#FV~R8OO1_E;X-NuW>#<{i`V~ zultxOc~UG*UCf=RNh^NGI=U@^?a)(wJ$#Km=9x2ZVss!o2)dz;KXW)ekp2=7ymi>7 z?Nr7-1}9t9Hr4KZ{S50h8JC$cU7XgL9>+BNt1|B{S za(x(=TGc7)HR}A4mVWTLhvcG#Xf{)&f7Ft)8#VyyT;Q;2R&uDmr^@24-wGm~jg(iF z95gX<@;J@18_o(aOd0%)ltxNNi$hOAHa2$=VDHhDJ% z==nc59~_JC?cNCUXt{#vKU4s%h@-AmY#UhP?|zluN{veOVAv|um|409`HT;JAKw{!-j)tGq?Qu5Fk;!7v9|rbWYZaV%^3m|V2d(m z;HZ#>W~<7ksC7A?J9hWme@G3A3Ik(I@ZVMjYgt#PjbFA|pg8fs$bf~-NyKL7G#EA& zC7t{`JWhG9eNSjMtP6bcFX+g}=pVV@6J~28bZm}m(*i2@!SI8&7ME(UY-d7ZeiAXA z(IUvQlXe$vd90UR{M43P@zqs&=4_S~|2~OdqLt)R)g=hM^7>og?$;&l;!|mJkh{qS z4HjG7+E2D3hsUAI)8TbAJ3}Mck`C6p8`m1O)Y%!HNB_Y^edzSv;hLEHEp!ZRY1Yb5 zaWv}qAgB-yjB0yA>-*YBC!@sK_T|(`O3`aseCHJ$6UW&-p3qZ^o0(f3qcAcjad&Mq z(emxc5$!5D#b4T_jKyzMF=t*DMvlpmlok%mX7=F+yg$)|UFcx&h>A~6qR(&~5&fmO zo^HhMvg9zB57Tc`%!Nr<@EF9O{A0Qn`fro2&wiM~IRmT?gur9e&B)L>6$;;CJ40K3 z9+}(|RdVLbw+UR!sch-@Js&}A@S!TlbEMP0HZ9Neit@zu{4`Sjdpq{z4}M16nC{bk zpP98??2Q+wTDI|Ndwhm#OA^=T=toy2(RYCm+)2{#{WecUez$ouwDH^lM;>>mmX!Yv z`4Y;Jkx3&zR1AGM*lQTCO)x=CiNDm5$mP*|kUc8)5iO^i+;YShw4`FztK{h53Cvbu zlE?S2&7Q#wuAtiP;4*K^b%?nS{xe@NKC~i3yElB9NnUKOt8`}a6A)hkM^E2vQc-$) z*=3my2oaVV?~DJ;jbOjBk-ZFpOnFNyBFT57A){KZ`k~wjfVvwd-<}ux1>e#B6v-dU zIvG1G=yyacuTOo&{N8kC z;yP&a>?$^w)V{F{l-Nr#?jq`7aTB z@^_rG?ubCW_swl@%D$AkSk?4d6Y%cGx`%Uxq`9iiIahcd9Zg_MYW(^1){Ud2!^oK6 zj`^;cx7;pc5Zt^sE^;*^H)d}pFIReXAf{3hE~KDeR~ua>*AHL~9J^vJa08Cb;^1QULnD7hpVahr;d-tda(fWZr1N=oIvPf5d$z>d}h%;$m zrcY^{p3(3R)x15%zlLbMJjjWjAYmdY;+`72txU}!J;cML{OcDUEb~@c(~Ux}KYN-7 z{!7~@{+145|7}!t4FGg`af~fKNa66T_dx(EUHu7_xH4MCN!7{CV96)6{mHWmI=akT z)_{xR6vLB_gL8L`k6ow6L@j8$NZLN-Pfs}oHa5L=c#>0@(@H-)KJG!##Lo8l7rTc& zd|)Vwif>6u-eK|1Bj(=aX6*`FQ`DAZma*;9Q%v3Bitsx{^6OK`Vn>oiRW0dePpL#NHr5>a2SwcaF9_2-{(d5G> zIp8`L`dll^Vwi;qMdt|f@l;&E%zStrsJps0%?fi8p~~*}X2Fih z2bDszQvV+nMnAqjg8{5*hdIz|tpDxJ72{3c@FEJ7(u!=hO^zJG_<_+ew7CC=F%4Bv zU(FlJyYlo73C>3GA{s&H)bJ*5v(3^21KFi-5W)N|voUWK`{G3o%^<8CR##FoCWzTO zFUE6O&e!HXYEw~uu@kGLrZ@{X`cM=DU@X*x zc%5f?mN-=XAAZLZ>-~tDIL~s0JpKnPw3EdWS|#%^k>GWI2`AZKIy#sIH0urg{YLsv zek8_jW$+Gw5z$hLhi~-WR0;D+c+KQ3+}tF4haQg0mJc1?8ny4(p|N?$*0@?hR}^?q z#j?Cs`oDvF-2xvt!wO{m<#@P>%62WZLY988w1{AvY5hxI;HKqP|4=B*!#6B|JFxw+ ziP5yqFMS3u4y<<|MLi}&c&kg`Vtb+auM$(Mw<>H^BD>d!*B_#ZFU^-gs?}BptN%AH zqxa2YR^aRkChMN5m?LKT7HXTc^!FUC0m|ZEI^15sUMvPC<^P|``1kNycqmH!Qd(Sj zV+E{Y{D;n z$BO>t7fzI>M@g&)IHrU$LZfxRvx<0cieNyOcr4QlbQ#%&s{eS!lj9wi=8G*pPuJ;G zbg5Zd(vNjZVp_kyXnxBYm6jX#OJf>-W=wCS{-vpG9~t=zkT|gu@*|mf(#j4z!6Yi29vz6sdw~djXi`qsbSH*xE@=IyMSrZlNN&ARv*ShB` z4d{uZP}Vb9bI?j0i$?a|4|ioA(WKmq#QPonA=lSc&h!W|899(`MbyCMNqMao%iP|p zGf307N=^!ZqS<{1um84;a&f2@rnNWI^r8+8yKSB8j+Md9cFUuG-h(II^sFN7Jccsc z3smw%T72UnI3;eYSx`R?gAr-+Kg}0`{As>Zhl+DbImg5R!Nv(oSlFVUZ0a_I%WCFXyO-oe*MY{f02b^7 zS$giQa?&4N_CmpH^AvBxiVh*SG4b zILHWKMIu0~9BpvXFm`v%>?ckI$~v!tFyd4hrH}K(AUN?iy$CnKgSh1DFGZD9xw-sN zCvfq@2f2y?^b=eRcnl4AN>&*nt*tHXk6?=SqK>M~8N)4K7n+sbc{I{%@flEu(8LU>UtUfos{n!xAO2rf}c%qlMa0z|=^KLc`-)y(^{V*ON ztm1ii@yry5jKM0-pFht=Da5FHIMa1_czCq)Pa~s2TV9L5sg$RX!E0Zl((Xjrp51j7Bj#OOe%kju`&^WN{HpeI}M&&K@<=#eIF*$%r0sX;$ik65P14tLSDeCx4kxX@fWWW}-SKGpR& zKrYOkcnqsa<$b*$(GcQPM<1Dd=xZ6Dzb47N^^-M&Azi6bq_(_H_glIwA3BC98{(xN zkX=WcJ^dYM5~)M>hNlE}KYvk}YI9P_R0AtHYy=cQSoo^elWpELyAjF&!3eSjQiX?> zT-pOmbd!pCWJg2v6-e6V{qJc>b3g`;{rI@v8ijc`U6~fhqv4{;Gfe%$A%<=uOTuCb zNL@L!=#$|P^oUGN7Bi(vnR`bc!pA`TR7eB(G_f{adWe4CkI}i=V_amg>RnZr$fWZYHwPy0;$$qg zkJ8@1;_|JR__SfilpZYWL>)b?j_p2cQ7IUxBCr~lg>Sd8^olFd*a^zGih{T|10O+Y-9{@k~g5my^{!QUUq97JP0 z(+PmPwI#yHRX(Rtc;DK5q$mqCJ~9#v;nDE6r8O=tE{>VzhxaLG+&&0CSD?pkEpcQp zOJFl27}NJs2UTZDwL3T9!F|9y;y2DwBDxlnQyVa zMdBA%_O;eFQ3+(I`9Xjp!zMKIuGe(C*6+Z0_}lHTkBUQ8RzS1bhq4kcvd%_UJ^ z`{87bVIkQMCeAiTsi~=PS&w%dXLo?*)k2T>mhm0ry?lAQ5tNZ`j1UgHHy{6LNJnAl zE4M0q-`2^^@C3y^w8fvN-y9&(1+4Ixn%l95wGbhXq7o9NVA&Y@>J9)l*^aht*Do$i zwN$eMV3i?^=${)94)aZpGHyjZlqJwU060%M?T8yDda+68Wp$^H$3S>_wFXv*E@LcZ z5SZA~zg`enordlsd`zq4@Afo(7$hg?ogDBiZ!&YPd={|=J3JGk&ORdTdpD$O8-3(i zjx{_3Z(0jVCm_VCl6RVk7kOROVn>>M7RNC`$RQ{SKpXQAqUwb%WyBwC4HUwmS-YU| zUDC9;b&KQB@dMoFd&Ka zLFv!Mq^x}tSB2C4ZN1G4UmtM4gt)k*fM5wyDxGAE9sAnbX#yqf$6r(kO2AD`srgIa z472T!I8fMUpKI?HDNXPa&>iK<)Gl~p4nAZ9*akPK$2YS7XtqsMSt5{4q;$Dxk}@)W z_`Tm2lO!TLXTa}mUUP@Snk-7%ol2&X^i1Luc3~EW*EJtj)t3oRyr~V)53ZGkUf{3w zg1~&V0e81%jad53t|s|Uc~X0TlYUZ%l}PHHe{2c?x&ycdFTy=*3t$d^x6k>#+l%%hm?^X(W`SlO0<Fs+rhX)ubQ?4X?brZFj%kVFPfMHWsmp_j39-xM8rD@l& zh>E&JpD_6sSg$o8{we-0PaO=Qlu$m8KrhGjdj_S|r{p(8`vB=sS*NQ*O>nHhzTHT`0? z^k&QTk+o5wNrx;zQ2dL()obw^jq>W`b|ISM!8`YC>srePQmW7P7VZ>@=U)WWxgpe$-yEY%}74CV)fcLd|#ySTo|pz2d`Ak z58)T%OKLHy@nv3vc3j0M_bN_mXQ|!EUK{l=6;MxPIG6LpbcJ(F@9X*!;xyf>11On1 zbq=UAdn228g+4G*`*MHK>n{pH1l%^wKlQOj;e%phAD;VZ(3baWZ9|jvC0#V5g{kTQ9GwC++D;Cns*uK(_w&`n!uQ790x;3yOoM z{||qyn9n4PpjL3M{-xnhZ^r~^Bt%*=$215yQL22Xk15CEX`@bm4ZO%5}{s{0*k#o5~{ zo8m&BZ~H`FbXD9TV!~3koLmIxsv5*p!_b3IRP2^NMyZy-Vtk+FAZ6sh*gt}m{%qn{ zhaSQ?xoNU<=U^>~L=^O9|Mpk)DANr+FZ##c%bgU_@jIJB7 zN5Vw)cevzpUMR$>2->%tDc0LVieAA(^LOXXTB^ZWmr~TVoY7#yP@bK9fhIbjwXYIG zkF`In1If4Z0sMao1smsE>DPkHdHOneJrGU@wm;nRBW5dgD`5i?pSltr;4_;ID=*C} zgH~WIIZyV9L8G-f&;3)Yy9Bf2R1=;b{ac!j^+29Qi(YMUrU~eurph;Z3%x!anzBl< z*5t{mY?DRvdB)qM-5y#hAjOiJ;9I)U!NjFlfO1gTiOG>-Ykvi%13L`FgE6hLTwWN! z&j=#-rOy3Z_n?#b@HkEqUr>TG=MKvA$E%8)d2m37(0i(5+6qt@bk<4a!8|5T$Z(%w zxk>cO(;>V72+(CjP=}&tQqGF2K%m60*k|DR4G5eWpoi$xeQG@UgM>3&F+;^d080pJ z*5-tipcxDsXI{<l;8Kj#EGQLM~DFK->TTEYh66zqT76MUldzsTNGN0*Ch{LO z#t#ZZxg>#r778c-6GZ<6`FjMP!2pUVK3G#66;90g5b_ z*X22@_kHcN;#AZMfVTw)4=D?RgwX9+BI+wCz&@QTdF>y$`G-Cyt8J*>0U5N~m-++# z4_VsO0+qN&mJY25r8c-IV?*126$b(>J(L|Kf4)!3&wqBmwl8V>?&+f+mHS_J2S|4c zs(z}EVFi=_a|7)Mw`U1*4&h+zwJMX=*r!SuXNe61WKAXcazT6)C;BxZi6jS;Z?$+bR-^s)bLrx-TMfKj|t_`w$&+X1V} zajXu&bEb&-AVg{+0MW~Xh=uQ`T5$Uu+{|F?zM)s8ZkUITy6exHGc92>Z|M@A|2+@H z*#$Sb|3UOQ#oa<=6WfX6b~im2H9^T$uSM&rCjQhkM>*$WgZQ?-cWD0Y(LAgs&&nVB zZ$czT0xa@x5yU}c6*-BkD`Q>>^3w! zu2fAnAB=;5Wp&GM-Y{uhxNK=?R||G)Xox<%u<+pTUnlhlYg%Xtd}3YrxT3ZzOY;0c zK$(w;h|(dtDoom7@$R1y7)^3--&xzT;~@YXRvIZc$Cm zo;@d^y<~5FH=;Z&o4=pj?yZ)#=CAyCb_njvEk3t~(GoK|R(kZorlwt2d~*C)8D5E- zXeA-(2G?}ARmi7IGpAdnn}VnNUSyjw!)=LAE6dBF?(6gc7{gv<=92;Oe?ZCCua{*+ z#Zp@H5eflCm<0gL_v>z?eF4s+BMCeDZSL>&!5#D_IU|-jrif`Bs6%r2cUW6~x2Bqz zqmwY;L;3AAJIM)4TC9I<0;DDCxBXIBxg3w2v zl$MYv4?A?oZJOXv{lj}}Q=AdT9g~DAxftB$hmi+xJq+_QC`km}I#S@F;#@+70{Ob$ zzjK3}vsIdyIgM`saXzHK4y(iFUG{5}PdYPVaW;x5^Gq5K2&3jdL1L!=ULu=|JnNXX)O+M(zd4>Ig_@0q#db%0OpKOdVZFO(%y@%2 zKk|s!1%;Pn)}N&tBlSA2mWI{{!+g7p@#M|b7(_w&ANGiK2NMPN?ZPGAL3s-68K;vTz z&ey0bD`iCg6!q|UXM5?3WchBLb(Z?U?X%;}TmmZ?Abn=fUcZdc&be5==0Z+E6WNXG zt&RFl^=@9HRn>62+E=!iwY^L`)`HwCNVO174zmC-^V`ND-2+$d>3$cIrBWUN!%K{@ zZv+~~Bih1xmk$4q<^Um8>J|A-ImruFT2nJ1cWwn*cyRUY;uMd3t1sVmwVGIo7zJYB zvpzmysPp0DxM4|4Uf*8AtEjL0Etko~C^!-l27k10(2p&Fgaqf8y<9SbYM_$|O z(}gpKOaZ_Rt|xe9^OCZPUP(@#Rb?E%#*mhI7&d79R;iWNlqCQtswC?3EyKkX72V;8 z!0}aTn+|rR8TQ-t#69QlX9hHw#m#@)giT*V;Y*xL$aNiiP50~>Fw9T*%CPEg=yq}7 zw{<&{2N1C@#mC@WDlWA%&G0mJ9|pmPF-Mk;bjLlNn_!Pdz;w zvdmJu^x~}`gL{F?!+rY(zArDAZ}+YN>(Ga(ZuieBsAUaPx9qe@7EM#J7~8268wBS1f2Pju!z++wnZ!aCv4b5U3$2OFPCBT>SuKD{5(SylVG=9y_US`#t2z<7dxa z0f9LJ_bTdgR*sfXDBKE)uS4n>WNouBAchW(%?RgvTvo!{w(IdhJu`GQTsARkhe(=Z zZ2_-+OZ78wJnLsXe6uO9SYs_l<6#Ere#~vsnDf>{vDX??)Hm<5N6Gp58`rMp`l|TK zmBbtUL&(*uHB6Z&rKIV8Xm3Yu=EN|ng?r_1QHve5*0mxv-enuj<>N?4;d5k#FWwV7 z9-V_U0}p0Fv!+3Z`Vob3==v!1h}f<0Rl}u*FkgBSIj@^zw;rA@Nd_;ykgeDX9yI8& zP>1KfIQ2;$5mtPFywGdQt5a-cAP3W@@uacCAsicq%=)}jSfR1-1Jo*xk=-DKTlEKF z`!gi7_lV(b3C9$3X{aGUxIdQ5XyNaF=ZirHz7!>B7T~gS)5`4%v2p_>6}cIuvObk2>%q4zP$dfJI!nRqL-;I@IAJ6?T2q zpZCVXHt4V;Hh{RQfCTqS z_$OVYpkD-*;B(3u#W$J2Di~ezM>n&vDJ1CguIAKB;fyRlvb0MA(?N9iY~z>D)DrEe zJ@*4efTx-yT$%`qUs!;}UfF{}?($M)1g18z0yBXB>lhoE!!E0(kqPps7?bxp>5IO) zJVvOK^k5V&pey5h%sD=9jah!DgAM_hSWO|6vM=mi^BPu=FO!jUu_gM}wD|iK`Zj89 z>f=!Acgo$S-}CQ*zog$A%@2X-3fm^C-j1CTvyDc@6j6o$PO61xxnXUh6Xw!jIceL0 z+WNfstRhf;n>^}a!%)oegy?OID6Z_nj`e2Ov)9aPbbX=KR%-}qn~mwiXXZx3Qpt5k z2MyHuP5$wZvXO^X=E20P1Rn zsMzbvTYQ7gTGN-U>4m}!lAd#H6PJdg(USapXkI#p8AdHH$pfMFj~!b0vLdVu)`rNd z+;VJ`n(uf&?*$O!{?Uy=yH{LTFJFcHgQ3r%nbLav__7Xq*B^Qco60%yhkf+*1}@oG z6jmmp;}MnnEsYN`+HY=YEw6`j*iR}kBeZ?R*z_jrp)=Q-U+EpJ2B7QYclAHqECXLV zwMlm+)^ytugq5(-Hhk8Epj%z`1lTurx6&aq$p<|%W)O`Ed^Lzu*G{)^z7Ymc=c08f z#`Pr`&%?4N(p)a~3s&}g6JG=KJrC?iio+Ltogu>Cusq;RSJHX8@eWZ$@q!x4f@a5!M z;+3DTP)G_P)Qe-ACEi+Kv_na0Uu(Fss2CC{nReCI}Jg9PR4eF4|Ufbm%VdHcm95`pYNiz|7ItNG?x@?Aw5V0asMnf-wIN&79A z@HBJA>c9Sw`zZzyq{pGiMb6vi7qIYwy2!~-75HwU1acvE3(HpQF^1AG}L26TtvsM+A{`7oJ|NarE%s$8@I)2f9u*eUg05g7oaV^0;Y4pQfN zv{STnv0d9 z=d|Kc45R(w;zum%_4^E9=6sCy?3p2k)B;Y=KZ!q|X-?1()3@*Iu3J3UwD{1{QnB>T zitp1l_U5~SO>LX7+HaZG{r!0s&5aVw;S8S0Bp;-h&=9duUP_pcVMD7I6rwkn;mot* zjV3FXn_6QYa@Q8$x4mmuWwBalCmF@9CG}!TL)9RO=$S^ya~|(VG$;t8NUTGvB3hyz zX0UBVQKO!S`2}z@)s0@m;xX@Ghrzg8JA8-Yu z$O8JXClr!5B1skd822O8AB6zSS%Et}o~+Tk)ve3#6v6iM``t0Kg_5)wIyN)vC|xeX zo;%;LlbwZO#J%vnF}!r9y~{Gd`BCp$FqF}A0IU_9qvX*n+I~TB;@&wc;0`X223y{t z0D#Ml)3WE^f-|0zDy69CYs1u}%->cWo7_)$Z$|j-0Ac2Sz^#W&v}HH#xYw=Dz+W^5 zr6e6fj59;08^g!bHV>9Su=!{>Ei|7Vj>Z?R|rK9jGwpf0(5fjl`c! zBINb>Y1y0OJ$oWzoePG&!aqx?kK7@1luVYoj_rpzb<44fs4TIF1qmyK?+|%rg=Oot zDEB?FzpQ-!V=ZHR6XuR0XiuqiA?Y$52l(K2nrW+-r(wooGNEbFKdHftYNq&P*|si+ zX31!NDSi;vHujdUctR(R1@E(rZ+YzM4D*1m_0>GdNB515Y|eOxH~Vea-6`tghvpY_ zicNKQiUEAZ=ekvGb?U$`_JJ(BB}t2R!L2z6%haVOqa|y4vw56i)k=kq+3A;(*}a&M zx|GuNSl)y&-V(rI7mVxG`SAxkfu(k3kPFa7W~WCWK3P9;gjRKl*40y;C4TB0=CZ+>`$-5mmO(|>^%-T@zrosho(f+=LECXUZYsxZ}g0hWb$owd7v z`wthPi(eLFD@?bTUz8FRwl3YpXnh5rxA+)3_9#q;;PQ{ zQry7u%gf6PKLeSqtoi$-`-ahqz-B##T}znZWzpl;6{D#!c44H#<9}X}cScFM;m4Rm zXOO$fRw&Gc1Lxd*HUe3ppa;TDX(&Y?sJ8V|LqG$|7z*>6qj*C*9`9ZvQ=NQ~2=eDH z2pNDc6_YSCJ>GLqn+)f52t589p1J7PK{JODZSL0%S#*n9mSUqeciEbta_*0}qC5=# z#_Ls+KPtBJtKtwO$DOCC!4Oa!XMy?ij5o zf51{$`@XnJ-NOKkg_*{Y_lnFJKKu-lZm>s2^|)Jylv3GbOuj8W zu~*!1bJjbay|&|?$%h1mMPbHRVsj)N8UC{a_K9Zzo%jLR&(_A6pX+Jn++l=i*=l~J zcFkD!mx?Vli*jenEmjb2Z(nwL?n(Gzj{1v;Reu{z1R);3ZiZec zzf+IMI#dMxgM0bSxxea9)S;$|jaQC8E2!LBKRh&k`TeG>Yl&)y+%j%}vjBHt75oe&Ri6F;*vtk!!|eAbKBWixXOvyU+p07r~B# zReiA0*tb(trgd9yliK_1%P2v4aTHzp=AShEy{#oui!@pSI@(fg4n zRQ^J+>Y)Q-^+n}A)bWFFH{Xt?wZzdlRdIlZam(#Z_u4nt{WwqV`G^0hx(u?~6HHV& z3sAm&IjfJY3iI^L7UMXt3s${6_48+MLyoTcA@%rq7r7I^1pk}XRN3zEKmY3Y&oJ>R z0}`c99ih4Z@qd-;`d&g}`8}5AA!l&P-H3av;mC!FWZYbP$R1NuG2`dyfzOKt+Y7kG zVzB%OY7s&>MOpF6#Z8iyHw@*q@+xm0nZHddDsreacu&u$7#Q7?XS}xIlvOr8BW5fj znVJ~3s{Oom80Xp3r*)&f^44Nk*|wl;O5m${JQj~U%5R&QhJQ~R&*u?RX&3^b_iUn6 zS|?srG95NzeFWpLB?crOKaU`b<&<#AQXF#{+^TTlCN{nak#vCxXBFT1ep&;0$4m(= z9uwb7Hw^;3FW30)7K_m5j2>wou$5_EJbO1R{LZSBG?2*uRZ-EjzG6+lDNg#I%VvQ$fve!N2KA&4Uf~) zCwo$eutfegE~UN;u?sI@mn-EoE$%%HVbo%P74AUn8Xg*oCED=rYM-|l_d1@I__ep| z)2Gn>W0qsrZfoc)6oi19O)*UjPs<^t(EG;`WU!p#drfNYj!Tn*ZNA!RobBIuYtztC zzLB;pY9?;q+nR#UjI?c*H1(mqE%W61-8jm=`24x^p6$QkE2sOqF;DA+ODCOB^J!gr zVY&!`k%gE`WuA9yrxc@Fm*dU<_CGt+~s%HF+=X-iV4c|MM=6YkBee>7%* z2;IbQRcEp^IgUc>_;OlNRbB zBkxLawllGr#zxWNOYfq+hJhwdn`S6MyCgJVG*!~8-*r)xQD#I%M?sY4jD?|zN|PED0YL!; z6H25g0zwGAR|OFTDT<&{6+}u1H3UfL4j>?*Cy1J);VXL-#Kf4 z*w441N!~o=F4uM4_p`E+p3o|*7$uyhIFS z_I*NL@CK;@>v0(2f+d_LP^#qg+0#xeM6!5vP4{+4DLl8bVQWf}7Oyr(4kLPHhA@8R z4B2r~2HfxDYYPR!4DC2`7HbRK1{^tC;+2hbdUe2pt%P>)AQS=HQjIO?k9VTO3DufI z!2N-5vxiYK=Q$IgV5M&p#rNy|kkRK8*>mswpsUpE#v6p&{^e=`_T>jYN9r|VDiqM4 zcMjXDyqD_V06$xbtuk%g9Ej8g{SqIuD^Mhd15jb^M98G&5zNC}1)++!-gIKo2ftFx zoGhzPXuEis5UCTf@#*=Abj(cEfquK5op}54`ItA&2UxyObOLC>!$fJ!iy>SGv4uz~ zdZd72BJM^-4x#p0aVp7%8M3CD3 zzk4g|Rd$OAHp@Q{Q*+NylMWYoKN6yeK!zn8Rr;X!>s%Z|b_65I)V(3N=mzzdzl4S( z+)%EaZxzFr1QjBU1djyF7r^$MMlP#~uIiPJWtBU$2ltpLB3@Q4`gOd>JI4=ppxzVC z5t+13DSIl+TV0yfdN7O3y5IRy=3M*BHMszIX5db)_bu`Y0t}oW$|M3<4hjze)%8oN%1x(*(eT-(Tj;|v8 z);@BJrBxfgBE6=U+rewn5urmkVx@B;TPGyKGeqR?w%^I%<;VMI&_@v>Nme&R;^+u9 z%ZqN8ycXAy?8%0v77N7dFfNBh?j39yu#|s^E*i1hUVi1?I|6y@`mlIcC9n4|dF}2l zJkwUt5iS8GESRW&DuP8hh>{NPB}K`*Rn1K`a!9kr?T*w#5)^14>>Xo_Lnfpr$cZjP zkKmd)BZm<*nq|&Mj%BgjRN#O8J&HA6UtcM66weHFdDPP&gseiqXz-mEP2HS8_@{!? zi0myd`>14arM^Xozk$cCD(knevm?^Q_DX4Q8V;0`E>wm^@5&H)X&dI}l-`UeXGG;9 z9_Lyux{!59DzMUiVyQLS&mp=dyvlnq*dT_k6T$^VlH@Oz^-NomzAxdkPP)`+wlSJ) z*?y$Eg_D3AiL@7dMAC5nepvYU&XyhQ%^8rt_lyAvnaHI+Bxh6rfx@yoZXX=Fl2NcgzUn8T2-gC1=nT{C#GYNRq!)5*2SZv z8Is7hH7hByPb)q%9>?XZEqrwinc*6Yl3FPWD%|det|h zDSw+)8gCeou{DeWF{hvNde-w)v;<{E$AyZ^OuMkuMUnH>3k$11 zQ@?6fZ6plDU#OD{!2Llm7Na^PHFdh4f%z0sZM zJmYsDyjB}23bTDB54D>JnF<_6gh1J|iUe7SUv^v?yn`pZtD zs%2o|^SFrv=SlWn# zqa!%(Y-`I4>_US<*6%} z9=l;(krMeKRJBmC^| zHeUwup@(dCi0qa9>bOu&7tj@s$nGP>QO3Tuf)-OzhkLw6YEc$m_*Yhz_usvac4%vP z^+w5K00@Cs0j{NHWqwP3vHarXa+hKNbtJbQy|G<|3ToWwe*D4j^RuH$qwPFdXc)@V zb*l5oXwzpQS@>92sxY=k&24yGrws_nhSJVE#sZ^G-8-A41;vYK>IGg zAAiiWr^dlvW)hdP;O81h)g}A1`%y9;c3t{pDK^4%M zJHn~quk9l&t6eMXcfB?~q5o{=R!#3w{|u%MI0zNfY zKYn?7RU9!>Wxx62+L@*4E5uJF$yM|c8*E*z1PuWkQ0BrzFhVvha?a8%o2k18k+qKk zVvaIoun>bp$+hY4VLjhBzsOG+DzSWW4snxB-_Q*d&8o9(@ zq7(&N6t*^IO|xfj4c{eIG>wg+%NIju`|ol{jYxR)&i+QJ5V?zMELdXwO&fX)q?y*A zNjn_I+g%k>exiu?^nKgTM9dLpg#F!ir&7($geL~8ezC%;#DI7|ZYUu7Lqiot2MAi$ z7NxZkul!i>ca`8OrZP+#rl=V}vOqBzQa`rLOdJr*UknPwFxERy5 zeOz+yNn_tKhvMLFS#$Va!}R$eUp;8CYX#*n;;Vcr8ee(#r0B2fRPxZ$5%w`q4XXUI zL$o=1wB;n?_bhdv4{Bc|eFjx)abWQ9j-#Tdt5)v2-r#kK~>N zvXBuy9CgNV0$DaMFIXx6+O{z~$`w|PNf{y^B`I5j!70$NV>T&sw9kHXGilPB8diVJ z*h#aWUn!Ftr`QkmZr32urj2Qh(v0|olH}-S*64~hd~_Y_k6l;M4(itI?^9uw=2j6F zzffyfSifj-T1{{yc#T*K6psQZjQz?}|}ycaQdRhRIo!`0`t5jwKYO)3+3!pw4PSnw%~*MjJx%h9LpXB2B*_ zOi8X#!7ik0ZzN*;b!MNu=L+^6x@=IEKezhGUN25ZWPxQ$h(zsjr<{rhg_XvDhoA`f z)0wkvs%ds#j*81E7bp=5b77J_ezDcvU+YcKpBqgeRvw`6MFccVJ1DbQn_fu^Fn6D* zBhqHV{2>N}j#3jFEV}3;A4a+)=BNpAF`-UOX(WsCr=+ z0w*tT1=zwfHRC%2DyYqTt=pf*YzZm($>0R50&($te6~N386AwYthqb%0R8#$FM|Fd zIY#H7%kQo7il%4e%6%zTC=Q0RnHZ5fFZ=>rAJ!`fEtg`ebbVjp!;_W)jaKizu}Ic6 z-vA_22S&3eK{eUzYPi*fmBwvCH?rlVW(hMg9o^Dz|Ab~La%C6kgrvV@eRHItVBy_e zMVa*`bek32?fe8{u_mE|u|v=#x4n>FNSmzA2b;6o9e0%1GqKJKvFMUyiR>`y2-zMd!%5fkx~L;FSGpEEXdqUxoLgC-o4vWOHnpQt6MR- zs3k{U$Fcj2(H4l!tz&`*+<4Ux?db!R@}ZS)dz~Xb3;Ex4lP{=X7)RYj9uX2eDF2?` z8De@wGXi0TdRtt#75yQp-I;6!{Yy&Q7Ey)FbS}ff1f8e5v4na&et&aPyQKvlpH~Hz z*&PKH9FuBxxN^(qNJgxY+oBESUIOh<$p8Zfo+t{4`sFl}kAV{?GZ&0bxR>Jj&}ks?Vk z=tAp|Am=-J(5)gxM0h1@T^OS3WWN{&D9CcfjD{~fYi^pbXxs#2Nr|nOg#{fru~$K( zzg8@MWL5{Sxw5M01562R{i0olB9JRm7Rofh4kAn8CblCZz&ncdQTNJ(fjJo#-xq{g8IzgTJ-D}{ECjb1pYnM(Q9i}OHfc$#^? z6dvx|!le+qoE9@p z9h%t)^9U{EC$_hV@|0q2(n>YCT0^BD^th|E#p00dQ(GNrE#OlF|0Ryha5#zqd)wCJLdw7)fXEtJm`R>DOx zw&?mEAG1hxPkgs$!TNR_=#3W~-LT>Rha8Js^x=Ct)Js@TK|&6?I0WQ)RJh(m_=nZT z%X(!zeNorGEn7^+jzPX7>VI;{s(m3tYHKmP`;~xkv1bMmA(#{Az&FEREN4Yq#$zPh zOS|kcY(;XQYV>QVTTeWHlo0Usp85sF=b2`uH_dZjJ%keETuM2lPg~^e7?5%uQ**D= zM9T@|zCSq7{^rlOyB-Y4gFtp)7G<=7Jj>l;awcRRGrU$#yGQtGgC3OJ-Ah!u=*c4t zdMkM*dBG~8^#@D9C;D3S-#sI7p1>3QGm?(`dWG&TC@m%Ay#iWue~bwMwCWdo43{O@ za+nL>cVSc0l_Tx{yo1m4F+gzq^YZ_m_O?FY3C3Of-}{mSCzN^20Od9+M)e=WY9{O# z)QrVH+(LrH%Jkb4D4^u@`?xrE=_1K^A!6(4_HuUkJCuMC)L6{FfsTy6g56r~s&X*M zRCTi~6;!P2O%K_$vP^raT;Nhc2-CBJ{{S-qDdWROK!P&5qGmV5h!KQdS2NjqQGM81 z17TYwi&uc6=b9c09p0bqoe$Ki0NH2=?4PXF{_Tmkdata?hHt7ANL}Bg4U6Wh;$7tX zNGnm-BHV7JR|A0mDxk!^^)V)U0A*Xori^3yx^nz{x6nx7eD#Ixg*5o*VaMsDYHWM` z{k|5Fp+X>CsRES3^%e*J^DB9nWZaqZx9%Iuztf4}v0M8z{O2u!Mk}pQ-Oa_1LVhdV z>YHDWH1?u!VJzWUv9Wcw$irNztNI=uKq(U=IGli0^#GE-S>dzX5EVzLHM zcAskDdUyHlZNNmmD@+@bL}FAlu7(0&o{IZuAZv7MjmaP*0MU*|Jg%ID{@1#Q4g-PX zC)03NjFRith;|5*2T@`sUt9yyD7j0>KL@MteB90Q!eyv4ayvRYyvBHj*TdvJ#+QVK zZ%!$4hxQ4EMX&-Q2w(k7msl(S{Hgi=07J6I@SvpV)bJDpG62YVfubJ}`qxvM=Yy8- zshzB+quw-jTEyBZvDLrZEb6LuOCl0b_U@Fr z5QoR^svaxTugLZ|q19(#xV7K?v&D$QLKk5s^EAoM$S4*-i>JDuiUP>4d(D@}5O9gA ziCe%(5Oip+OVI-lE3Kb~ytXDZhQIpz@qhNG=sGYD&Bd^iL9Wm2{rW9DR>OPC9Ecn5 z4m}r9-QBLbFTo&qb>^lTs&dJc<8_tOF})%0i5l)>|l8`FVPj z?{T0p2^cY^oGa%{q|3i{XyOC(k!Pa8XfvGDJC2k@pLDxvppSqg$ZfU#Ox1xtAs2;D zl^1)a*|cAzBlZqj4!z4y2Me%NH9cTaM{F%e2KCN<>-6*O(41Wa(!@v}(dM`C=w-NJ zENR#B8+#y`buXKVd7Sy%L50!EC1b$CNO+i#+-wl%t6T?4Di{F{bY2PXp6JUMAnmDB zf2x=M&q3H5`U^_?Ge)@q`&EsxB9L!K*V(TuB59pB4@d%Lx}UQ{yHb$~7;@%0hsR=b z083X>O7aHC4a`J3#ixg5?Y07V>l8rmZoB|~1b)3et=8E0c%N9EdZrq%>H%B$c1gCE z`2kn94F+Wi&@mX`Y?FhuJKEC70F1+uZDH1WPYJqPwEJKG_u2q^^uHjE4CUFF9t>HG z+scGUrVYWGryR{GSm!U4F3Jpj%oW&ZjMIt11JiNLk3WYla)HD z&9t~fr*P2y{rzregjpnMlEl1|tHcNFDuXRKHo zfIUwCASNB&k@-)71|Q$!2k7(!aqcZ4Bq^tHYvtNnGPH4;2T=YP5AeKYp8{&QBkH;D z+#9Ejc&O;l@wYzUFg)tH5q|E=H-_pDxt`meSIa8&M*PRD^EClTx-pjPdm}>2*V1pH zZcLdupDM6@3E)d}BB|WWq@NBN@P3B?BychMId!gi)*__zeNT2k0-K1@31^!M)C1-4 zKL^eiNRwVNosR_m1K0!1TA1OT7*?GrpaaQ2ZL(FtDq0vRTY+oeu*!{S;LtG3UwcA) z@&IloN2L@G>$a(N*Q3wgva>6_rdSX76d@ja{va#)|LaC^uQ=xfFSasQrFp2_of!$H zlUZv*Aa0d=qtlB9%{4hj1pw8F@I9bhxk#fa?tt5Y^uIs;>a&K;>f@LTjMIYm6kewu>wD$C$fCZQjox;}QmQ*bhjHZ&Qk=Qs_Y14e%ls;{op1^PCN;;^3?8`JEo!52-+McvDw5 zDtvRm8Rgi8hg>??D`oZR)$`|tE(7j^DHgV~-E?gcfEs3L^L#NFh!+DoySw{Tb7#uYqdmA!Bw$2OcOGCVZGtTI{;-@tI9r z7!d`ts1LEJtf&}W3+|sCmi{rtZ@GWGrSF2Mu%)iRINq+Mj6S3S+6%C&Yf(jI zC7FQrr+Z6jek^@ZIX(+uwLVer?OUzR-r56E*);b}$(l8Cv|rRNM?Y=oX?#ovJL+3_ z5jVqYT--LMyA=^=e}s=|!pb!Bj3CfwFnu2**8?c3W#opnJeWu~=S3`izZoEUF1+JV-Cf~dW4#K z8;6B{0VZIqra2QFU{IN~Efle?I}mmdv2%z~&66YT1F?VCl+rAn*>hdciJn2P9L94b zx^Y9Yru0fNEmJ{lh2!&XDs^EDh2i>dQQ-41%Nwrk_!KF3-}eYMD&%cNMd!Z99Q$ej z3C*{WWB<_%kPm(JLLBxIFDk`;Yb6IPJdZ79o^1?frXt#CE7Z)1Zi&DxM*KH@z#7oR zT~lJ-7he~&VtwnVNtV{gKIO4fp*7AV3oNpyd!LqD3%+_}Ma?540 zRV{=G%BXK<9OukRAnWR2rR0@q$OGk?^E&8QZ^0xE!D+DICL_0e?i!Ybj9X$B-Qe^* z3e%4&<-o<*&p-C(wQg2NKxt=IScHS@Ez3{q0RH`McE$1Gd%tWR+KM53Oi&PkdTcDe zFp0?{k5FApUknw+9y*2B;q0+zHyai&{Pb{5O@RCPh(7G)7)7!4d zeS$8L@=XSPw%jkJ^EDyD<<9;uZd_+V4~9j*zN?t5_*B#xtu$}2UnJGKR}>*; z3w5_qf{wdVgK_F`pe;$uXCO){XOD8v=_M&t8{vSUyas+`?*nX0BqfBgkp-;^|HdGs zTP3;LBtTy^;E}cQAtZ9_S^{%64%|T`0XwgFkNr;r_a^EAS|C$qs8VFka>}+WvO99O zpm=fIO(;by@=F3p!FG$^!{t%*aTozon^LtMh=#{s!iH{mS6{P0oD|mytx-F|Z{_*f zG<~Z)k-bOI4%y|%F4y%81!r^kT4ePAW_I{anM<}Vdq*UBA}`MrU7(`|ITZrrGC&{) zxg!}THNKnl`GX~ZU&;m3R|pV3*Y+|80~>R-fzz8SM`=Ei+K@8Etgy|y;0h*spxpGw zgMS13qi`?htRl3o3mS0v9D%bmdb|L+1j2S*PXESH$7+H`%UyUp7)-gccUV>sUK2&}=K*fklObcD06%{~6jre*jK{;h1FEV`X<5Vu zTI9rTQVq(V^V8q+O96rtb@L);lAzbtfsRxIfqN3=b09=;<(U@_yKK;(F*$2d)})4A zUVS#=Py(XwODs1F-9|v2{TwMzf|&lIbV0kAZHLf_2e;D4>_nV4S-?F~Wct_P%Ml@s z^lw73QQYib87d+T)~7y@bHiCJOdUi`)e6v#!;AWc*hDy0px24eX?t0t=sAba6*^J|G?zG%U5+`JOS2tvZ~tWy{T&$>~kLCgm^RY&v; zZvq0nAwmOFg{AUieeCT|yru65Uvt|$CBxqkj9;J(%MRyQJ-L?>YBM`MOu@QYm9s;E z%tFO4b3W!~_!HM1&&Kj9qNRXe%l?we4NsSM8>v|ephHZolN?DEbZArbc6-rjUKyxb zO{J9JFRhry`Gx`ni2@)-jep`(*SYMv&gN;voqy8)+* z<(Q0wjU8!b#7zh<05e^2Oi+*HKte6N%gvgVjNIzDd+(`Pj?nitN8rUpZ z+50=*#ueWkD!PH(O!Gu@L*@$eM@wR;-E7G(@(&p5H;}P0y8Q{igWczBZD2Ebcc&Cf zdYh9e&+aGhsq*56!%t>>Pb_BC0LAOuWVbpqG5!(ErG|xuKNYM|pP-T3pD^L*lE=t& zY63=A;6b2ro#lrLL-o#Do%fC~SKm+RLf`j_D3F28oJ5p_PQS?)2GFE-MSZT*P>;U? z_Ppd7J`^Oss2!2A-5o7ks{#$i7^w)<>GkbbDcF2k+u03Je(z77iqCpmSgmN@icZ4T z_`AH&r|Pwdly-_qShc@Ng;%Qo0sj1?4lNS^p49H%Ux*$;TNIpjRUsMl)4_WriY!_= z11fh=a1Ye!(6EwDe^l`{d=#ALSncduj5T%6EFO`yZXK@v{;ZjL-?}cWCbb!-$c{YE zYf0}<35F+BfIn0m5v$AF5rR-=%Q>iU7-nGjN@~m;cxCJIl%iF>=)%mS-QZB4y7N#t z_Nuvov+D@D;Ofwu?2VM)I_+$c!D>zW3b$L$x=ng4T6F^U&EBYrE$JF+p~C7NeDEW; zrgt~^es7J-*Q@>wc)XZ+;r(1n*I|r~sg(=RG+KV@dUBCeshQ2aU8b3k(KJK_S*Fwa zR-u~CuX5u49~=a#>hCrfF}f^@Dj{t-WlW37nuSk=!&1N;iCiyNm+6Gk>q->-UkRva zfh;!Ubd74=AL8pnn*dicv0Ifz#GucRrJmT7u;V)6`H9r0dM!m$mV=nDOxwY;-l4H3u19d(A+2^@Se?;4QOP+RgsQ@pb&zj91wZb`M z9@9K_!GH1W!c%GWYl3PiutbHMV82^FXE`66j zVP<yjrC=bRp5oXbB5u zM81>>vMviwM1z#ARfMMRw<0J%Lgc@rABgZ91qIdqBMZX4=^{1(LeXC`1OB5^8dUB} z<%|K@oH8Iu=V49&Jg^GvTOH`MmPo;JR9VZHf?2Zn)P-vZNQn>r<%`m8|8}2!3OyE# zk1DPg?vgw+wBB#7b=^Ys^kn%_%B11a{y7Ki^LOTZO*$D;MOTR^_thik)T*1>D4@8JO-V3D+W2 zwRRf)R=C+*cr2uZAhDbzsQgFBJ4kV{SJds~7taxOhp8QDBgZs9LlyILT!Q2aD~(o1 zjb-*AGmstGVj@93WqoOz_Enck}TtktZe=i3qvnX%eN-Tn!gN#JzTNOe=(%uUftGVE^^<2 ztgjtpk#K&?6_46GH44t@H1JO6AB^+9g)Y3klE2|&mf|(}mRM>fQ5spK0S~RaF>*+O z?Dzhe1=Ge9!_J5Rzn85x&yYCnJo#7GSe8V4@m;XH>`i|)%(d@y#f3u$d;JI4QV}`x zQd|TNUL^}1!3_Kh?FqXWgA%#RYgv*H3eyKPQhBn6`Ejq$In+7x$8jfOc|rH|=i07x z61Q%#rSrp_Qv?Q(>euJ-CH>XW8GOHSMdC0%S*^;(P-A(TI_k#+y_~B1nEWEIC118` zO`%k7vKn2qT)5HsX3$%+V`BN1S-o_HNnj#+8+~Jza^Bc#99LR5BxIr;W&U!FEM3J| z`&1syYJBHsDl9AKTJ=otd6?qsuicA5qL= zOb+=L%j9Z|SR#!HD_NbsnhjbICwmVCs=en-uKxyL)+<1ZN?8>Z@W_ZN?hOh?IK%35 zwrRBf73hH2ATs1$j(M~ux3T3HN#+xH#S8y=O&W#(YDyU?hUl7@*@LxYql`2oYK{BA zP0eTAatZY7DYlE2fST+BFS)$W3xwcufhDIg3dACJx6*Fn@1Z>x5z4Ei+WIqPxup(T zaFK3?KuD>LE;iNQIEwVFf$+Ou_O20~NYYb^v!UVBl6vMb96N3N}w}Z@PS_DgOBmqm^*I043Na&%!6K-kCI0lH07AK!K61|mh())5 z-L+RDYVmrm;1DKdoJn-BnRFj6YnZJEsy1}vyo}**#^Ot&{eWA`AaFYV!_?3EgVyc& z+HOEOnDYU+>oWon+Xcc<(~Zsm@#4w=jEb&4|tNkboY$)Q^wr5F6HXbsI1}jSj~kjaN|(K79oNL zV4*NTEl&>Oj~}aF0!rPc8YDISi^a689td~092B(buJM`}y#WInfHGjv2%a?WtgNUg z?v0XxjEs!C<%qCI%Q~qtjEFA&N?2#3JO@B$1g|ReRvnkqI8b>pkXJHrU9E{LidRcdyu1-J^!~Xpi}P9N~%fTA2cSxReT?Ivzq% z+nqydCpNXcuDU^JA=@XpznkU(V-$n%vLk!@C%iBWB|+P$>{F!b=q>(ovE`Y$sc|9D zyunHQHZylWM*F+{0QA2ANvl0BT^(+0Iz3j9y~Pj$$_57M%)pOzS~fvTRG?%)vN6N~ z^lRl=nZtW(FIgn*auUg?YAp?ZCP^E(EQ`nq<1t(#HgM?Ik$ef**->Rc`{pf`%U}Mj zZeXXeU|n&J+Rb-~60dfBzO-GgZ-H-H&IfTikiS={N)~)6UgF2k#Lh7-HLVYj#5ViG zoIr0yuWrHUF;vx&M6KelBeGB8IZysBDnzFJtSNiY0C1iHmaWC$UhAvaZz60lJI*3V z4LrDCIh@tje6b_a8gUyHTZP+QB$Bl84y=qo0d21eSVhjmsz|mqZByAYj2Zw7!B{mN z);beWJaAlaLDhXLQ*3mT+J_G;Vo@~5!XkY60#CnO<|P-gu1sl!vc!zH zxA&;*J+}MYe87R9hxh3f08tfbDPi|ik9y)Un&>m}5kbxgB>Ga19pxQ?5;g|)8DEqe z5K-K|WX=aP0#s)NR>I@CBVfpyI?xty0o+ptxBhEBQSg{{CXR7KA*1T7!f;gy2=9Wj z7k-EI_@fw<<(dQ*A$ntN%iDCc&4+8DgqCI+BfxP~%%nZci9jh$-JdYv#%j9g4ALo+ z`eU^%QRC<1%@_g}6b0b=0COh`ClrxTgdMy$4b;|6|^EN#l1ZfkGR5xhep zq7|x>aF?wc1&1HDm5SG|;IP)<8=I`;_|~~Z0g?^#;|^?A2y=dE8s)3OP-^V*6oXcm zLasqyjRM;1YO5tOcv}Ts(noI>1a>L;?${9>tYUHJPqp9obNj(&>6F?N&PG?aO=<&o zN!ohFwZ7r(^6fmke((9-ZJf|S&ViGk7N&vApq~*{<*!>e)V*)DECMd-d&v&uk#>nX zf`7|DAOc9JTK?zG~jy?Xhw;N81RK=a%t z38|luVlNBu@yUKLH?kO1t=&cFB_=r@1QV_r8e@m>h~qjHf!&QE69B#MVWK2hT>Q1F zk}MAO3?K z`z^QtRIY?zdJ!S0z_vb1aX4 zVstxp#geJ2A4;oU?F#VoBVmVHy;j#MWQI!s)cP*j4&oQ%Ezd64`M~1ZrMOS45C7P?4+c*BcU&WL-LizQ zS6Ji#+d&~4cP{(kf6FEn{#S*}0b$^Bi$~>i7PS6R4C(ZbEE%Zsc*;vd>TwujG$R=) z=SX9YU?P5+%JJ)0fW&gfPj&wyP(p*`g|?5+|2$sKvj0CgN}^KJ`qG37@6i8La00o{ z0FVIu{J8%uZV4?Q4qO}Guyj2IAb0%oSEaNO-^|aR|9tvEz!YcqgMg&+qkAGFcCcS9czYvs-0-D4dXRJE{sD=-Z0A1}nn9{uojR%N*%^q1- z!7Oe7E67uak5BZ;f2SiFIrlx;8UNgOglh|ws_hFu02`_V)vm!Pqfh=t74m9W1Azhy z9#8e(uz9-?&#FA}viB8= zOZ`tq0+{h%0Uini)S;~2+m7GtSlE6GC~(NLKw+Trgxn!tfMKm}`PYg7pDI+ARnpBP$f z?SXSCr#nzZGbSv92h$(c%xf0khE*Sp5nguMK?Y+78xHMv9Z~gYn{BG+0c@y?-!LLy z^ZP@8uoA~=5y$G);p!!GSRvWjio{!bO+~siP`_n9*{PIXK>od5=zQeBqhj4O_TL9p z#5Jan(OGM6E~o3@M@yv!XD+5ILV>orZsk(*&)lVbbv&lkBYR^;wUJv^ z6d=KZEDvLj;sQP%T<}BrN63E-Ww~h<3;XPsS*e%~bHuG*mD^h2xyQG!4t%@g*ZJi{ z5p=D5xzSkIylze{8XU~}Enb3K4w=93rCYD(Lf&I=ObYPmMs~Lbv|Zp0ofvSKcPe+&2P&$z#0i+!I0qC7~>X)$OS+`Vy&MB2kEwt67>eOXR^zTpT8f7s%YS(*`7XY~}l zU@lAz`w**hdvs17)A& z4eoc}ah%RHi&APFU#hI4j@MGqJ%sY8kEp6SH(^`Q-%xD+;!&vrZ`sFHbrIn@SFL33 zq=eVs>_RVnjJNgbvZu2eh4u>(#D<(@NE>DaL5nr9x#7h(vFkOlw$F-6;O4nS?w}7_ z)J)zTF&$}lGy>;C7dEpHQTuekwN3>U`d9EgcN5Id6U6}AbXNXU{$6ut7}do=?}gdr zJKYhJf7#eEU-IYQ@^H)|WaZ5!Kh~daO$w#kD_nhkStxrDKl8|+^;=4*mt=lsUNP#E zJZ-sVol$n#$jpnb9?ZZ}|MHu(_xN)BRN{3=TQ^S2WB=}7shC$Kv-DWV!uA_KfLGJL zc61NyOPvD}i`VZtcJ9_herA4Ww!!wZs`)8Xa{JqU52-ksfO3qjR!K_=E?LIeg?5dK zSj60mzs}@psal?B-)n(W30sKK1%864<#%N7%3^!7PyV=NT71!KuN%p)q`(d{hmbX# zB+WAj&HWU*6ykIONL5XPg!9Eqak@XcE>5@JYxi6-1dpt!NT;{4pGl^ddJzsP_#`;A z%zW||W0&3si%%?VOgwOE*GR~qMwXSM*nYYx|dvMCsyCWd)>Z-E%Gv1o2R|~7NkU55CGqXJ?m0?i< zotrN9dq4JBTxiE`9g0r#A0kiCx3z!wy1WJh;pdB|%WdJst+AOmFU3Si@F$b`jU8I_ zD`{1A8(VO)u%eY7OkDq@3rf4e&uAarPdZKOdM%5XY+htJR$)|fXT`b5Us8~90W0HK zbtdteuG!`ZXIS>dbXS-O{i&(*l2&d*Xvz32n6udQYI{sF#bgID~`yC>wjsG_du9 zezdK-I&N`QJqAp;yVrg}vjys&9F{t*b8t(3!(_G>5tCj`&1hd$mx8sPkX8Yon0inemxXpp=#8H0tkg@P9?{wR5c}1*LWh|~G-oigE8J@r%(eQzP&M&eX8l6VF z_Zd;sg05jt1Z^Fk3haT_1SQ3m3cT z%<#`iYM1;rn_V=s;W;4n3YN{iZtkIzLu8(RQy&BN1g0$0JGCfFqnafAP=x6e4|*4k z^QuXS-!I1Y(6h~L3pmV|Xau3~1F&LpQS2UxV``Z-8M7*U7sIgr=8@l?tdvSIbeOwr zu;Hru3(}od;*ho%?_{x6Y;YKP^I5>XZbRdmukRsO;-zoD^!vP_g%WqJ*_=&I)1qH} zyX;%z%`jQcG8lF)TxFQ1goku3`3fOH#T|C)BX!zTsUg#d4>?n2UrJ--dKPRoN*0nC zqD8B;Kilg#3S0{OR;yZ~?7)wWGc;T!88%GYA5>Q1bcI1(er0XDrHf-x&$DgsFGxsX;jty=A8 zp%rMP^86Lqy8!26K|L3CrE8*Z9Owi2$%XLBM3!6bK=~|s%+wVN9yQgtW|h32%mW8Z zq_$zayy5C28LEu9R%($;R%OC=|5OJhSa(H?uAX42M^6j=EyzGbJqZD3Mb2WRfCKXOgIQerVDPn8TM zh)t~h?FkP%xk*GjmYo;bH-HJkZKj*ZfH(zhP7&`b;O7{XhRz7jw3YQOLooZx0OL@R z<$@L^Ahp6k&uOIfH+oh3$$0lP!e^w`-dj7-MdOSjN$#_3vyW*X)6$MW=3cxj^3utd zpfuEPA6>9)3*h*;QA!No9DU8j+fR+~eY}~HUs$QHpFqe=BM2h5uG6-p^kxb=C7(T0 zxNVtI?0_!u=|P4Z_wE7XvlbgdzH)VD6Yfwv{yJu=AAY!ZF*JACLW3GYK8_R&Jv|z> z8>^e8Y`KvvUjsT?fcD414NtyS*svNOK9*Rxe3R-0eCH-PFeD)!bWM!I5x)kh4P#wk z%Rt9WuDWOhDgGS*&!8>4t!!A})glPWv5j zh$9ZK56>v$%Z83e+gYu%a+*lS+scWSea zP+w*@Rr^6*{C*&CSz*4!ijz@QVrbDZ#jC5>rtZcD=&Tzo{K5rzSr+vCWtnZ!$GMLY z<9&a)ABVEz4n05n!62bJnRPWe8Bm4x=TRfGGjk(9l-ml(ITCAS!~PCBrja*C#5-u{ zXXHI6oPvF^VQLj8McA-ZihOHVE={AN5#la5OG_jP8AhW5``RgOi}1l zA01pd4p+A4?-MtNGCI<925@SlxBQ07W|gXCJ(^LI2_L%#N_+?lqe~-Ngo<27dX$`VIN+ z#vsf0HW?vjLYC~i1F|05YUgoOOO?i?wWnXZLac72zyF$@Svue3oa2&h{0?Q2a?HEo zP+bXuleK#}gRQl?Y6uP<6OOOK1w{Lh_qZR+dH&qWcv>egt740DQplWAeImO)?Z(No z?$=n1Xw{N3vV7T~Z(!YmGI-RATT@{L@o%Lit&TohTT|o9>sl5+BNv--QJx1-1 zYTIX)s;xmoy~(e6EE_U?Jnz#2POU%QqiUs5a+jJ=TycMD*qv%xXYcZ%WB8odjt{w= zVHC(7S`yoU)!bP}VNTRJS4#BV1Zzt|I>VyC=)kfH-EGUf=Nlq9)4o{Et_dPHRr|Ee z5axy-v8APXl_pTVUs69a?-?z#T|&g_HAS6*UU+`IF~>LQ{6Oy5*{c)voO#giGiGa7 zbBm%J?w=0JnKcdR3Z<-dV#2PnWG6ypKBiRPf6tr;L0i=ft4uR`E2gE|}^f)%S z`!|)D*F{+sXJ_P%8_xvVMk)6rGPFe|oVqO!7w#N&wUNtqg4;G$>%{p2%|$?YH-vT> zYp)z#IGWpjrDZlX0pSkr@_HeSbr2G`02i^aBo{6umyjCO`adL_(+gVm)K6+%$S&-- znNs2&@agDtAExf?Agt%b6v0tZB7itbb7|U`KLS#@B52kkYXfr-P-9(8Qd7_$x{qou zCstMA#ss}?i&4k)Nc307m3qt|&*s+L4X>Huiz{#0YTg!;y1yVGsQc0@dqv_!sFAu) z4%W_peZp3%;)1sI`+ykFz=BvnoeKzzJ-+9^o9~GAhO!ab{d#j13rwWZyGdHcMB3>T zZFb?Yx)Sw)S9^c+y+l%aQ7V>`WB9zRgo4nL>l7=QMBVFd>>1&nXa}?A3{x~$Dm{+& z)0cw$#vc_~Xe1`@cBuokIZB`03dD9|a3-J+v(4v}N$1Y1H(dP7U50wU`Gj-rj+-Ob zZVHD&p3b9EG;vES(xYgj#(**s$GfspMTeXqQ(R;$;k!b#p#O^ave_K$uwvCY>}3?4 z82TcqcNJA(yQ3n()!P=BZK&bV9C_MYFx}a@98WXiOnME;g9?Sw>qVE&VM^!<2H;Af zq<~CVhGwo$KMwM6?ZV=gA)I`4*5&PZLS>4^-Pe0kPZlz6QZ=3PmDE?vo%TVTZg==9 zK4B5pGZr36st?+$kv-xE+p@Fs>twth4R(C2vY)aywhb~{$&Nkd95`uZR4vs5#1^jp z1`0eW!|zYN)B6E0Rwu7fWj(&CTQB7U`*+E(9M*NA5Fc zNZ`1x#h}89m}0T+lfsl^21k&%ZH1TDtj-ULRiDKxn*|wvxnEJSoFU*0+F)gw-Nzpg zt{Hl(o3Y_66Gn3GtY1?aQs(KYa3lN&36e*!50YVWG z0t5&>LMVG7GxN><_IIv*o%7@DeO-I69|_3{YrX5O&-*<0bKgEa+?2jVQ*er6KBWc> zQyeN3ce8%5u~=?IOnHe`=n{_3dPgZNED*7W`w^cF(5|3g6T_nNt>E2;Zv_X|?eeCn zRL5-@0mCi(n7Q}>?6(98r$PAz-$kjhRW6brHYmAH(wPxukEfePfiVRya*pR;7AxpW zY0*H=zj>cD=UJGX$u_=$S6*CWXxjN_2UAtSy=SPi1?6$GvPr8xULw>_j`njKWOD9s zLV+XEBxkl&_%0e5yUP2UV%EDvf>%psxuJLYu{ST{e9IA$gzXwR^#-p{TW>1yt|CI> zvp;NmZkj_Nt*c*nfk%0k$Fi$kBg?h?Njshx2`UJBsG@h5*1w-IaUS3_+n*9c01B6g z9QnN1!;yO@JiJ5);sXZuBs}L2OGA9GXv4*e zDNlJ$CXZulyE*%UbHB0+Rs1mM^54zniv00$_)D9l55w%FQ4b>h&msmFO2PzY$_k z%4dNp?`p^v6)=sn3`S@z&i?WP-6mcoVo&#ZG<<_iHSYU}){`kad4^6nGjHVh)T&Y}FgKYo&XS&VHO!ZIg@+hE zv5vcz_Wm6Ut8$ZRyua3`;K8ye`yYUU`=o!p#vjjQ!;+o!P0M$~VW250e+ z&A5x*+b-=)9wO)nH~5=zoMN__>e-Dw zY^8{r3^CM){hP^A!VY;6Pi8yo#Z9Id3aeF^zO?~?Xau*Fd3>sStAd!fV{X~VU2UTl zX;h#wqJM`eaMQ;04Xv}-qqRro6WE?@git-%P{vy_(ac8a)*ARx7)VjVT>`vEq7jS*!Hg0_6frdmYfY5{ zBV2YiecB%^2ULHXYXb7bk{ZV`-9M;Y=vwK5M-O5ikka~jSU^C{6A^N1O^siGo@AZ0 zm0q@sH2`3iO;?-9Xwg@V-?~_(gu>1Wm)38uCk?LFP+~N0KXe1bAobH@0pTab0~k za2amT?_SQXF~+z5F`G1Uk~>F|I#&aU0oPpBG`UdkL(nOAxs)lG-yNxEk~Hs`GapHr z>0187QV!TEpVc?IFLxv-+h36Ob$S)e`>U1NB!P&>m#=>}*W{wh=(K;n%BB*4n+rgt z_Cf#XulK8Sd911h<>$|IZrm}ui(YSYt=B`wv!u`#%CVo?$=$sOIY238u3%z#*E{BB zov`Yj-$tX%y;XP&E?~7^dmGa%j31HJ1FaIZ5@=@>(wMdK_{1H6XCk7sh#O6 zO9Ut1_Y)9a`2JUD~H5-ij6*pkwi1Qo$ z6;{YHQstm2Y<%+`ybffjtJvymKYJ3qP<||@VsEr$ZS7>l#$A6nSF)Q%2kAt^VbG5M z`82?2+`zgnrUkD`2kLvM&E8-$JWX!-YS%Mlw_zU5GQJ5>3v4(c;?!c&-r)6$A@KT{ zG_`i;`PC^i%9uaj3F>a%*t{R%NSeU~`hKgs$-^ub{RHFh!B_RDwOuI8BZ2$5-mt6b zE>AjtRj%==#wm`g9wWBXks5;wf&oJ) zp!s{q_k@XC#ed;N3>)?+0#*eaOb{LIHi!z6>Hc^55qqC4r zvAd%~MkbW#3xeW3UpajiYp8sE(E|Qky4N(G4V8xgB7gOzt-zMEhrUK^g!DE`?mz9J z8NtZB?Tl{2b>qk32Fby^$WJC&r}cM{(FbX7Tl*kmKuSD_1t`5SK%OgqT89s^kTfZb z+K?)wTn$PwktH~Ijy>*5Q!vXD*c96b6g>O&=RW~|;hmNq*^Kz6rsmh&Vt(SNHs`13 z@#YCOf?oW*{H?|hdo}x|I5=*-I0#expZV$PeapS4J}F((a6J>2m6hdFTr0jZ z4!ckf@iz#Rzn_w5RBW-Jd=yBu+$SDM1)3>cz<(Wn`zKg;^v*3B5aq)Yj+pL#J#%R0 z*S!XyT4z!YavlGUSp)a@-y*`-BRC+Aj)}>%q10V6e3kc^Ryc+j1Ecc_cgeYJl7`7k>S$+5E2q)N@E!b@p1FMhG=o01n}xP{oTqpiUv zb%mijLT;om9&&69g;qs)s@#P+(tlKm(LUSdQP-Q9oqHA?=ERj;oz~L(fvui9yRS(X z7*~Oo*^)Z2R8AOnMzg!b=)1(o%4$rwK2_0+3(?UwgbL(qxpH&% zJ5L=m5aGuN)O4pShv6Q^7sSr5y+o_C`X@P#_RM7NwN5@SnZTQq?J)k?R z+tOddL&`flT5*kRKEEjH*LqZ}kS{tpg_kfo4fD(Dgr`PQh%TrMnr5a; z9m9;&kYaVZ?Ukj@h|JI_{b`$Mq`KwrUH(l&R86?DI=URlibQ@$KIdu=dzuLTffHOa z`mUtqA=io|plEee8Bo1osv>pJnW-I%(CMej)6_VWwy08f9bIKD=6F_(Q41-Mu5)mV zJu1u3Ng&7H@jXf5JCAxVxqdkSmd1EUu{PXIGR>)X$H0EH$`OaWmVP+$g^NO;uzkKA zp;N1{Fph=V+0`G!R_Y4O=jz6XY}hK%Fx#@fQr6<5PNxqtnJpU$~!wOF3bVi<@O+lXH~&-zfJ$Z)Z? zi#dYNe6Y#U%3^s``S_oV{B3{(jrKv!2fKzVZ)}=#K1x|ghwSg5Q)&+UPmA_(I3R{7 zsA=M6^hMSMLE@DV^RvJ*?%d(d_f$)j-c6Ql`cSFAyQ9Cb*w)dblegv~wBw|YDG!WQ z?w@nBGHg)9LKOB~*=>@S33b~wUfcjL=^RB)(|#psdLVVm0!IyAIcWd3-yCmD@GJT!apdUCeW54@)Vz5 z5IcqHPF;Vv_>EmSMYhXhIKQ2r+HF$RGQ=3@C2Z9Dm`J6py7G0r9}8?#pxfv$A!X7k9mj+_R!uti*fh_%S`Yh3-Q=lw|E!-C7o3)MA|YMlA}3 z#Xvq?(9!bUf%~A=y6z-3$lK%H-IgT0f8EC7clpxNd=rYp-bPU@cf1kKo*r&OQg%ZN z%T;+93boggn&))0)39hVf$qU_E`X9Tq zUJ72ZCi0;mE^;9m=;)r(AWeN6|Ho!f>gEet3Q|s!Rm=~06;vFSvfiE=!Q#zOpqmS1 zjf>a-sgc7=!8_5Eq5HdX0#9rV25X^MZ_ReMND#S6mdXj87tl7P@+O0LW83W%SMNqY z7%?I#wtlZ5bDyYR_0iy(6?3$jm?vXaDKzH}hl09WRlS}{h}D#?9QlPuZ1$h3GMjSW z)J^zM{R)^4IsPOC*gRia`R+!V+L48z)hoC2QDX!{hW+>9AMJH+Mh{cglUE$6Tt3MDf{SBG0^GTB;k6g()5|WH zO#&??bZ3m#c5!xB`Yvl7xlouqB82xP3x7AIBRp>KlrK@g`BAga&eKN?(VyqB((b8l zL5fVrk#4Ky^@TnCcNH>E^@-EJoZUMQA(s=#?dGUDdrj`h6^`2)!$!0t3EXlxG;hFFK@R+3x5fQN<b1nWbrk?{J52N|0l%e>Z3_p2NR74KDT_`kCBx+te}qM5Zqo#cDFfGu z(DmH%F>i^2wJ3qLP{T>3X$u-p6+(3Sba9eg_ERDHSX)iS-1K0k#+0rCb6I~Vx_5S7 zGtVk=L_CqB;5CaKZ)JYUDiCnT$d;7U=AG`pGJ5L-(fcrtViEA$L_u0W2qHj->6Ba^ zNw#odDzw%TXe{_%A5pjXsV)y&5IMUKL~Sw6>oh6;noat+GID~*<82J`1FcBgf=)eM z_N3vTI;FGroU##fTO?P?V6Y9eid=tof6Gcafvm6)R6Lmx3*Iadye< zZnDT^?)AuD8k!j`d{GsST~FCIZ+}e^);{CGZ(a#n(f$e%PdI+$Q@9%Y4A4c=S#Dkt z{*W9qbsSFN-d@KVBGnMYVN4Af{T)N|& z5EzB$23@!RCDVsAjLovPsqdSMfb(+gvirSAEnPu;0>_cMrf+t-lt# zZ@ls7#Pl}Y9pfxDI!45%BU9pRq6mr>-OaG_8-09aQ^Vh)ePa#3D#iaI?CM04-+Oy) z>K-^ASJq)d_G!b5x|=B=QUbk4dC2n2lEnxyZ>{wsJ&MJkr{ftAqLtQYrbqEjnRqA6 zx)su4-o(o?bB;Jrb)6Vt@2$M@wqI{%{#TQk`4r~&+y{`@#jLXt7S=h6tu`56iK~3c zQ;}lx73RwZeJ?KN4Ge!wqt_7-@yIsTsBY> zH`#3bN3%L>z5Cd2RuCcCe6WcHfT0S?0RQ1KL$<+RO>(I&$4zUJC^Em1h<4 zu*dv5rM7$fjf}6!8ujYr*32RK+tz|rc%5hzv{YN_4M0!`mQ8L@bYrrKoR8Ad#qG&4{aRya?OfMMO zV}r=a(mYn4vVkC2=OY4a2-Y8Yb)ey{dx-Q6 z(c(`FLEkmJ`!_f%+}uP$L0Hl7U(6KPj+vi*wIS2?Zh23!Djhnw-5J^j7gtu|#e`Ilh&r{xJAeao3tMd_j9YcvDZ=@bScut9MH;`*}VYC29 zFA7RO&Nqlr!Pdw<7fYV07SL~Y{M|lZ(&W7lTXE9RO~0YgGNC0=c_U6Ty^bJ>8ANb$V_kY=cgu6g$2m>3a3g$YLJ}z zbdF-wF~E6FuufdXw>eM)-gaMc>9VHWZ+Y!(eTrP|{lr8a9rV+(h;+%IAoQ>W1WDhz zv1}n*xvo*W3Fm1m){jS+b1T)Q{wZLS;hLerW+~x$+Ld7WVjtaQ{1WWUw7Q7p)NrHX zeU2915xYDGPvZ91o4zbYp*h!S)6YSS z*Wa4qbi(|PeWOwNudvHCnnkI1=tWZ@ZOre)UxZb-G1QI*@rbkwCojboM|dPay&5ZA z>&v&FKCQnC%6#V&ElfJr|E{U=?(=88CaT{HKwj}24O{3!6;?J3BSBdNz1`&FpAg6P z>t%{QeO*0;i<2(XAsiZBUi?+I1^TUoq;M_24;k6f@{$P2oPSMlQ}>!hHKFGJ>`hxu zm1kCzS{sn$VUtK7=d!w7_t1y=y@m2RpUx?4(5+h zH-~y^?{@p>h|wf%<4S%R4%KvLI7{+KJdu2%cNFtP00c`-rd(b(m0!}5)c6erW~k@*kV_F;qP|4wo}*Y^Ufe>-WQ zn-sxO^+Gc?2!$iz8e0M_4#Rze6$q zNb1Ft((8XB&WzPm_cw?BB21_u`w~ByOZE+U4Ve>gN6dMnJP1R0)%gD7<(S|#O3$!w z5Q1=8xQ`J;`9{UNN`IKb?_m0`j@3JjN5OFvwHc@5&{a9O@FD{X~x+Q zY6OLZjNT4#XFvUd|Fvjjd?U~*-{%%-$_2PFVAAFiN_|5=`@0qHgD1!nQfk_TI^ z)EoDG7ug&}C-rr{o^85RrJ+mG;7*VZNf9WH#abqW+R22x%p;&e0S0YVukw%aMG5R9 ze?&0Y2l1DU5tej5@cVXTvxf z;@0#2B5sUzDT`%7d7*QTvK&c)W;xZxTH^AqoQ~vs&%EKeA-Q)r2ljsWXz9Hd$*C+| zH`#|cqd!VMu{PA&0!M^NC6ivuc+NM4Ps6U-ID6Gjoeq{4sxlI$WqnX2#BKW4Y=l@x zJh`Nx%lzEDcvJTLWluws8PBu%RyN2hT8^>c?FQ(gpT@h^3|LNk6;wa2YPeY3=4x4QZP-N%^Y5OcBT3`CunM;n<~+8oR1sQ< zbJ<$H>qoBh=^WE|%UK71A9%SZI$TYM36&{k?0&sCV&un2H194!SV*>HL@XbT3a1s~ zN6txkAaPUM%=8imZeSfoH<-^mQbr+Rs~*FPEOw}mj!&vsscrr2X-KcRuTnkOP*O|D z`WS8JYr0SJb9(#-f7#(9Ghgj~*HaAzc3QU@V=v+w;9DgakeB1P&l0F&VDN4w{Y#Kz zI>&6EIZsygFfAEyMdL~UU&ez0Xy#7-g6^o>Fs)7k?C5=OI3P`~IKN;EdGEWBZ#N)E zC1c%kiVof$DOD9ya()l$CzL#B2CVr?8Qb56OhcHso^Rj$@~j$#pCB{77y0Ox{U&L^3U}Bs@lbugIQT*KxRb=F-QuSByho*D ztxl`mx`!);5OB4xm$OC;xjw$Hmtu$A_d)*j5I++iuIi@Utm4SVc~lgErWZzy1g}k@ zh?%8h7Z@Hc;XYdCN&41k(AlRJGNxdQClX+n4dm}|=bkfo1X5&o82dqO?>tq8uF2$j z`X1kc9n{ul9k{{h^Jl-*kF%>qL>g{QuZ_r8`WsTrbAXlTtJVR4{M2t9F-fg;UB*|~ zbXM38FMei#b9?ZV`ad8h zp78Z1|LMrH&TRN7&zu*k11<8EYDed#^zv;!E=FQ#){}>+h8M4jcLHJRTWNO=%->!$ z4o%s|8gMPxto`V+oTjePLz%FVi6iAQ03)01ZOwbP4WF2oj(v*zk@u1RR#nci)~E9u z-XYIRFIb27Iy~2Ux~)c2Bqk3PO)qOYDJm3Qd*=Pr{yHqR-1n9p9RH)F})%i`jksul9L%xJlSfECu7Sdm6tqAI9{T zcbey!H=9qHADQQ29zc7+Mj{nMC zjJ#~rz4bp_^S`64efHeeGRQqPCQkbO9bV7lwXnn(=h3Xnu~TcuDj#B;zL_QL$H+Ku z{N2&^&4lkKjJ5k`P9`Z@7a0{`!MVNAlQU9thDkD}@5_yHi;73m_#3iAAujy|Vvre} zm>hNqo#x;K3Gv!7s0>(pP^q$Hfuqi#h`w`-Kh~tmEPs7VC=E9rb zmCg5>wYNx|@cPIUKV1ppXm;S{+B50zX={U!@^uBco+$sqRs)Ob_Dk{Fug7*CH*sWH z)AM|(Fzk=D{4LVdUM5Z5M+7&y$MYk|g=bxv4&Ljh9{p#1d}cg+reqGhRe3UrsSkMH z3Ju59#^$9?9)>lNX@_CC4;YO*Mn)K- z(89WbJF|>+5hPDfsyFkbKd8clY*}aOlW=c($BpVdy4Q=w3+~izwJ){RZLBe##s5b) z|8PjkBKG~!!lRYKnArTzjw_SI$ObE{twgcjOlFnY>HYMlaxf6@nxdFzkDPG2sO&tG z!9i7|MUk4cyB?ldDCjGrNXd|RIlO-IY(0=uJ3D8RZ?m{!gH;|%$1-!An(Vpndg0qW zee&h+BtMX0&@M<1n|l@9gj;4~F(GwXw?hmYu^RowoC^hZR9SO1ktz@ZH2ZP^yA<^Y zsgysr&lwa?$+vQ5zQMXwA&hgAHd-K+H{^vNY#`cECW~2=zb7V%8r7AWUk0&G`SRtB zW9nOq2SGEz#&M%hn5bSj7iCcAoQwz}Z^5KZ`_l@e{v6bd#n8yE0@i#u%C zaY!*Xt7}!=GP>A?#$6|d+Lk@3Wi4gvG&H=$4!dZIrqmI_St_}vWenf5X)_|sX>3>@ zGL!_>&!+JcYV_eeZ*!=-G-ckM85ywOk_1=Gw%88RY@%STH?R;uRQqgAd@gp(lq(jv zE8e9yHpHLnJASspmVOxX!=N&CXNIxWw5i}0RDSdY_-Bavps&k86WV-Fp5`F?N+mg; zP0%W{37SBjz$BcWny8Cw!xv@?HBS_V2+$Rc!Cwg?xn*)PlwA$HRO4l{&F6BTkT=W} zI(!1#Uo5p)M=PL&SDJ)+DU9s!KcJt+93u-Sth@qlS1%RCO|M@=%d5LYDp2Ell^UDl z&J*$nCyUrh1@ham6z@*E%R4!HuNr z^Vs^UlC`~;B~1I$M2sSRXS$?6z`&}IswLzzv2q-)91<9HaRkg+Ejt^%;L|$tZHHG! zXrjsT1pREIwrO$la?eIKZqPEizfN>6i3c%!RbZ)MCU1Rbv|*iJiCu+j_eR6)jL1ab z&_<9ep<}FK;mZdF9bogL(YlaZnfFK4(kEyV z14YT-o379dUmt$EKX?C)L;)<|Lr<)GNZ7RvGq!~{`it#G({0DmU0)z-*VRnINDh0Y zC2Yk)+aEoZ<)qYxagSEh3K8SVE5pug@=-SV*klo&vxa$V0Z@zV7VCxx2lv>8kl=xhq9@UMfHeJ`ou>h%U zR9e#bmheV8U-}W+tBl-{qG(5O!xuR7F1A5cowX|KIx{0;7%@m7gT~UPg#Iwh*#4tX z#IGZDtmwtuPBc(usgtbq z9Y#(*L%Il}dqi%1bcd~DUmLg-dc?!PZr^Rn1!PRUSMN|y8Gx65kUs3xfdA;PL;7}n z@h$Wzyw#|Gl1`&Un|> zmt@4+gCBv8eM|7!vP?b2;c8=5zXciIb)!o&|6UPsH$KrVJl~3IbPbG9xic${pvTe* zqidZEOUFzcOiNRtF@+aZm3h!bFVr87-okBg$hc27>J7D{E~}Xu6d`M2!2?THiS6Gz z(-Mn@)rFJsbl9L-mSdL4-j>EGQ>N8xN6dOEbTf11T7)x;P;Bed{2#OD?Yi){+Gfhv z!;)LJcof>l*!0)i^@H@M^Xsghm$gX4GzA0|sB3ZDzvpL@t~8l~MT_F~S-?2FvBKoG zj%_SDDLT)P4jw6bTj0Uql_AXD!IWv55i@wM~UGdLbrUb$+cWSU29NIqAsDit@>@#*m1 za+ly*es@DIt#L_&O?S5_beDQudBbkJ?~N|iVKbTTQ}4Z_p*+}pnd$G zm!loQFdR#-B3Rj?FpfE$@9dUQcDDoQCNYg|e%d02k=z~V7}7A98fA33gZntNVZyLvp&myA+;V$PMO zRHV9Snj=Q&|6S9r_M!EI9h^n=)_Sf(Y=g{a6WM(OjW{03`}73nhgW?CnblfVxj^pD zUQyM&PYlTJ!@s)+IrpNC!dWB`G2==wWIBR(VphHVL*=G(H6cb8_=*O@O@_FEJ?Rcx zHMr~xVf#uJTtsiN@DHrPa~7ACqhF#QlscME5hh7-N3{^;XcbqSG908h9-FDdtCM@sdPj;&Y6y4>KDtR z$BCO*a^zX~K*6|W1|=X6y}0L!j+}d7zNgxPa^mgTW1zW_l=va+AZ2JV#Jb)q?iwbc z@b}?@ImS(aQGv#oypS_c8G0dpx7#=GVqMg~csGthOygIw6{5O1uuDUVyeqz!Tt*=8 zZ4lG7qf@ry!)51Xcc$;yonNL-r{&464y)=^zAdI$IY{c>$^s;$noVGH1CKQ(z+jf(JzXq z!N1oC`iRt(#b&tFDw=n1Zg~=Ue|5Ho=1m8n67RG>>aB=3U%Ee>t7XH8uO@yDlCzVk zGJrowE_wk?nKn_fM5Gmi?;1c_A`~m$-%*Pq%2xRogEHTYvL>a^J0w2fz4ShE2tZFn zs}!~^u;ZO|8sZC!;SH)7r}~}sw$-tlPdlsDduFa^%R3bm`~YvgBk-??`P2Gx&|amW z_Ygmqk@GuW1N|OaANTJ~mNH5M)oQ2(?xx?|3z2hr_V12njAh~T*BJuVbU##?I4Aq1 zVvoUQgUY4mH~K{)dH}HBd^OufsP)dML$h$TI43^BaHI2>(d6*WYUEYj#Nxh?vP=#R zfF^@Asa0Lss~~%<@y;Jklf`b@HI?_!<@#XeXJ?!2Gpj8!$jD7ZEV{8y!)8&w+BVaj zJwZf5O^nQYQ_H%s;oT~@(rMapg?fb2_Le*EjDMYBkPDmJEz=?vTTP;fh+#t6Ed{dR z)l_8Wb$avzwoD>mAZbOwxN^LJ)w7!%is~>NB~Ivp#MCbJmtk7Dy0qa9ISW7svA&W*Y@JII*Ru4adbeX2HDc1sA?d* z&oa>FW%<0qRD=UxKCV&^znf2xZAdEY_CX8>&>uxyvdsK;3Tn&TLGv-&tEBTbBaZSN zkX`Is$((~NZ1(0qX)|#xsGYTJtxltfNp3KMviSfG{_z$&0%9?ARd>mkw2dtmd9>Vh ztiAnJfI-4t9R0uNL8PArx@DNPsuA)TpYjfHrOecGdH)YyjL+TN0!Z__5$sx;-@lf>YW?F&UG^OmRo3jfy9XAs`w2OIuz8^@M^!Uy(F)2V`>a*i`K_a+IO58;}7``|8GNGRv@oCnUN|^WAKtgL?V%k| zKmcTkc}-Oz*0C*)8^dFvW@qyP7H)PCLjQcPNsyKmfFKeedAo0_9>78R`9WkmtUb7% zTQtP;8tp~gQ|i#~;BjRm&4ex^qKa47;m4O#FZ|uaA3k{6o~Qt*zZv?NcDZJjCwH;t zmW6nH@Gj)GuOd$#v8-S@=}q|~o8&7KxekLyS$#}IrK`V{Y3UQ~()fipH{+cLK3;ed zq-!V);5(l*_U8t#XC)=q->Dq?o3;;dZo%z5Z`D>=KrtbB%Yj_*z1rgYXs47`G==zE zVn011Wg~OrPsU75vO%4KGJpy~xL3FuXb8!%Iaz;_4EprMPBHr>a!NQQrl@mSxxU-@ z4whoLpv3Mt;Z-i}Ua~rHjjUm#+MqsBm1>~Vc+#0>7_AJ+qEY7F)u{gKNfQ^s&)DCE z!=ipE2epGQ5WAK$@P%0SG~!&u=;DQniJmYK=|CF|A*qhabuude^TuD4{lcXnq^nzm zH6&bx8x;>12a^}vDu5(R!VI3*MtHPku=4MUJTzls=W&ZtlHY`4AMINH9cFGhr(CRO z9)8&H>_6@#C*+M*nn5-`_ii3kWyr*~quycd7rT0WVugI1sTgZPxpT5y?U&z)#ln4S zBKK=M)GZ|sd`^?+_V;Ggv{_-ioNnIO2zyH=E;TUSC=20^_A&YX7VvO_%M-}gJ^G-F zEO}Pq(RosPd9B6lj2^!as6gJqalv55rz^iN<22Em!UGY~)%aDB#tKIQMZsHbn^$ zFI+g5%V^4Jo2|z5hhHIwRgmGHRo=91gwb@LX(hH+sRk^PtxYlu+@Y0A`}|pZ&os99 zB;>nOa~PmYO~A>b^V)_;Gfq@&g+stgY+7pJmwqE@{v3gQ>k!p#p5bd(Uz3!SS}e>e z2pUKag-4SAtYgED&GLREI2L-l204yEc$21au74QXJ( z5KmI>{B9mWLBe1mx=qP)^nFdz8x^pc_QGiTFqOk`u8V*l6?HE}Sz&LMb6}m5y&}BG zSm$MDF|*hVL9+OxV9Qe@$4)oC&F|y^s#k<2GKp#Rm>L=V7Fx4l?#nRD8n>7-r!6{+ z;IvEt;-&(<`l{R9tlny4zeMcW29bjs6wxC$Z_k>j>A`M*Yf2Yw{^`{o9f{mMvavuE!yq{h+{|>f8=}(ax*7t(g7zuD=$qA`Ffd$tXVZs`MO(?&G?g| z*xM^aadATjL$5EUP;7fgYCnKrb~E8`*DpCS7EX_MVxAcD9E)&n&Fu6m^4Wz>wU<9J zt5QR@rWmCo$0V!!OO=JwW(zp6k7j-Ma-}LhnBW?(w4z1}CWdO-s}^4uL(|*0UXFQ2 zI&{z7$wJX8Xt%ES$tFaQ0Hiixh|3CEvSnPf5i`x%X|0>weO#MbJ~_7U?mB(HC-Tut zeHRCp_e&?Z!OpM>>kMHz^(&v_pduI>D0sd>m}JCI5=Prum+P2(RT?i|fsO=qodLXJ zi(EnaWng_8hWSzMN^6EGxUuhM`+PxJPE~%oZ=+YIjPTl#`2iE!mDRd0jkpYSmMPUM z$6qg17>bFKDkLBlwbY^10ps`Ik~tLB)37hn;N*`N##HK;x%ZqZo+lt63jKBRq(Fi^Oo8?=d$~e&L;5+ z$`ZP>@2_;nO0<(aia)q7ro5Qmbnp?zQ{L4m%HTMX{>Txgk6n>7D?Eubj55g&Z6*?y z*|5&YQumh4QnxaFshiebkP-8rekY$4qXKIDQ;}wPsNSrwcZK0GLjUk%nQ{?z1Rd@o z5Yes=Xt)fHxL$6Ed}}>yUVIZ(XPq&vyBSESWnRv22kCxQ&9=35c*p)rw!QTiC|4FH zHOMy6)FK>QVe_bNY0$T;dV@1uv3ZhRpS3<3MzFrt z%o4QuZsTaiWpqV;EtFMJ_MA27{O?0o=lylkDAL*jr$_zkNBva5tq1~wpiCX1rm6yB zl&IA0+Ovg`L0*NC_@?Rj`V+o}w-uRz(x2zJ%j7GUIt9nkgtGCC)gcLXG4&{3d!ndJwwM;<}k1eJI=4y$0?q3k6Pu#BG~vr)~tYw+GigM6z}hb&?Mg5QFUmjDGJw`t@9;WJc?Lw=e?`PrU&oE^3X3&Y|@7+im2PmH;00TE7aH zBnce#bl{oJO2b9Ay>ztr(yR(TO77roV4rvbouJOndEr^)EN|I&?%UsU!?Oo#_MC~i z^x(Zs@tF9c#CMCkKTQzsO;Ki*o)%l76!lGMu-c zbo0m2@<~>-cIh^0s#n^_ZhP@7?$F8?*l2$BLf>F6)0->S=V3v$-KQ@#zPi0! zh3cza=g=l>b_N-$y4)#0rWQ)4LW0(jXn)h8VHa2Pf*(xjl;wD16__z}-L1LWS!e7m zUeRd8u;7`Pk}gZeWQ07aW^Ii;isg3k`buXZ@3h9_d_pXhNxK9O8P%mtPQ`Z%iB$`r zodo#?CltF<>)UpN>01Yhj_DraJv*f*P?)QGn`%lL-GJsj)H z98uBj`11FP<5BH%Z~fKpD(%%ve6HAdk|$ziyy2+y8?6!SJ#Cq@FxiWzl~%((CROyq z#3bw*jkQu0K#ml_ugbH=o(u1qmggI|tyj<1%8^|ts?x9Qx3*)9m+OzZDK%QqicXhq zZ?N?mR)6Jic{|2Le>~_e9vwlKdKx?~d$Jp$D~Y_qGW|DNSy`EtdV%IBCFmobrYfNg z96KQiFG?DRax8xjtuFO7HvEowbq4QkX2#q+VYM*MAeg-yz3E`e-qL&*VLeEn>W+@@ zpp~afrH=4W!qEBVTwI7n$5%cZ4?LEyYQ z9zJH!I-MtZoG4g<_swruNwlOW$j4c9J0JdezCC_$Nif#hSS?^|YPK#uH>F0_D6r0O z+4-R}zEal6vf_#-dw!Iqzl!YMR9&u0*5`_wb1tSa^&-ja9H|O4S}3Ox3hJ!lyK;Ii zayY;7jk(=UN}ZLQr8p*G$EtMd1O?Q27Rp<$8jCGWw(2^eo7(s-5%=Dl%Z#H#PBhG+ zRGHMt$HBIVk}SZfkm%Rfc3-TQdSrX=Gn4?pvr+fk$17SH^v)xlc~0ag`(^+Z?r+2T~|l{4=Pu#vvC z&ye{=!-iv~LW*0SQ%$Xy)a}1{F0SoD?H9}G22jh=SZUkV%CgF9f za7B;l;lY)W7UR)PxzRPh`R(bHZSw<&%-7KyGxvnKMXdp5_}58ENq)t2UR7VED zyzSIF94xQX!7XwBlVJZxOmAO(p5?)<(xJapm{mv0wrrvJ!nD&GC5yIR#;#7E;gS`f zIZFWm>*(q|Tz)2Et{dgcYnu(6T$+|-&IM({y)ZB^s*f28OgC=onkeWn0l z?q=9_fBF%gl^XyF^goYBSN;arJv;x8vpwzrCJ+1|{oX%Lgg*}WCx9=npZnVncIzh% z`OgbI_{Tr;|Jx5+J;|} zx;9SZ2ZZ4+y;qMSFbLgC6Q5QK$NJ^|s)-NpUa%jkPG1vZ%g;zl z9SCUf562eX^Y7T>bcksn&-qvUdp}y2+eL~$>jrN1J7b0e0g;)CwABFvU7LkuIe28+ z&b;07uv2mK?hdoOJA3kHf1rQ`Q@-EL=ZdvK^BhPjnA2mdZ+K<+wyyi!1+h2sU$TW|MRx70eF;EcE3_OD7kX zNGulXSM0aeH4fXq&5e>@?G^0Ik5!yLecG)I^Gk)zbYkF^>hfga-udp`uicYa5%DhQ!Ki=s z{MId~ZP9KNJqjLx3^`^#HOfb zI_XC{q=Ac41rNIC;ohx> zQQ=%N!r3|)F5ppp{+c9Qul;+Hh)?85I@=27uND;N@`*`s>Wel|KZG_-oYj4_2e`0@kjTu-0% zWJ^R?1h-r>t3=(Kzl8D*neU%iUtf1?Q*K&p&LlTd_V4%jvEF|*2}*vJq&fqF zIg-9>Gn_Y{Y5=NdJ45Myqk)_Uv&WVMAjxoW{6EczLafj#mx$Xh0|bot2v86s127$6X$TFcv1TAG@Il$Da!;4%%( z3tEXa9R<_8CUC-pP(Te41(CCfY|W2zew_Vt?;qd$efxdi=lS0E+xy|BS?iua^!Yr6 zthStAk$5kyqP&`uIGtuwG_!_Y&6qKXyR{8joN|HK*w~~FB}`tr{@vWe zU^BX2aLsXFZ0AkSBM1a>SR;3nK`T)ahKlpbV3(1F!553z&Qgd|D19!8Eg$Z)jy_3D zIDcTW*fZ_`USBU-3?z?7+f5NVxv#;aiQ1Fa)0({W3|n5Wq3wgARnqb!{*FOXtg-%bn>jp?wwOWu!LB~ z7VRd(7Pb9WK`Kh{qp=dV123F7^H$5D_Y}@%kC*#>=l0D-mxu7ay7FsUusX5w($vMN zjfIWIIyq1gzX%5+W&25}*ZGf9gE!JnKvK7#(a*GQ>g->B#C~@7YAOF4!Er_xn`od{|QnpM6fiV&y|&iT&y!=^ma9P2vNW z;u-mM5Y=tlOfh^Se(Y7j^we|IGXO|UXHw5a>2Sx8 z$hc`ScL;A8mb>Z4yiyu8ABx=TaRPh-BG@XJAm2lWisCx1$SC$(DqP>pENDisgtUZ| z=*C_&*YX|MtgO=Ov2*(P=E)+KH$h3yThU{(aMBh?Nsxt<)~qz2l&hN6ExxCNq9lLO z;Z^v}MvNddMwXUHY)W_j8X)Z1-epd^G-BOsTkgug!;)Nvm!)V!EF&SVyq4kVW76-< z3NeGyoU-3g2cz05?Hfil@>fr0hUUHaZl4C**$udPj3qintL*?5#ACFKSR4C(+vMN5 z-4Py~IWgw>WW`vBip9wN&30%{|b@>eOO%?UaOjF;%}bJQ2_+g#qs(aU+9+H|zJ??k8*!H>}@c#}C%P3+i1){7_tfeUnI^%rW>6=1zwf0vV`Ed0fPKBh;UgL;vuF;2n`1GSSu=PggxID|3Vm`?-9e%)P5dKaH3E z7{zDC;($D01feimCjRxEFm&I2X&fL7hsY{sc&6W{xTrBz?x5K~d*0kr^VUL#q+X+S z3iZSQ_XL4bqqmnaN;7>!MY=?k?zHVoCbowX%{rbsOq4Ck=B_zTW(RE{zP~Y%ENJwG zJ%C4RLb2~=6D&-1^uxRUE6&X-1sjblFJt330N5SoC}AZu+TE%uSCN|oMMce$= zU)rz#7fq+vj*pKUL6Gwq)Bh-1I)?o}HwMxqz(G7ubx*dd2Snc*5l;A7&WE0Tp-{#C zee9KQs<_@Wu4CqYb!*_kB@}nO4FYEx6n3dyR2}VpBbK5IPt)A3(RIIDxbhLJ>hgI3 zK%DsH^{q>!q}v8~lN*SCr-@}SoyTjkC~x))iX?3A*#afUEOl(rj<*%&$t|Q<_IY*J z-64CEOMbZZPfi8G8l$U$pz3dkeLvMeS{NfH5;u6p?vFfrRI)@+iY<&hF99|?RbezS zMB8(BsJp|8N3*d5oQ%(R_Sl!PDjS$v`)Do|0?@z0`p@T=NYFe_;d-z4el@3FGtEACue!~?N`jrGbm>Mrs4ysF zi0b@+1@dvZ0xvrg7Z*qOoqp^75ME~dpcc5!x_$-n!%zMD>0nJ<(3`%#vCsGYqgT}F z{q2X(sSHAgl`KXKTeVcSMgy1*{s*SldtgqDo zPyzuth)C!Jf|O8%&=aIfzrpjJ^ZjS;%$>P&XZ|zy-rt@9W+!jid%bI~{XEZFFA;|N zTAb{B>?|xSoDa3{8?mskL0MQ>gHN7dexhEl9?1N21ZAY9&QjDVFvsj1bGWB>kAh2@;*;m?s#d*SCSEC)Fc@81JIw_2of*nnwio6Ew539pBq67}lN zeW^73evZP?i1~v83?G0QsfA`<^y|rl-ou4lzW9ZGR_BR}*q{9(FOVN8iL*r#jbah~ zH!2L>#Pm#??Qy0hR_FQ@mV7(yrrV#1NS%6{bbTyFrCq+uw{uN?c6cwe~-L;>L~W#uUOt53x@o+rycSc z@Za9`dp6wv?Y+NTa%jr`w1@w5yF*L-f8Ute#g;U{VvmOMA~=7=5~)JS%p|p-y{H;t z*ifX(KklG5-B$M*j>6l2_}tbG2i2NAq!;!|OLe94$+EH;l*4(VAVCYyH-#H4yo758 zFI}!C+!3f)=&=pnSaNnWq@7_C#cCyJj)Co>yl#NZ|4`9)(c3{=827}-DF1VdS)8Oq z$+l)1reonFz~#~1vY}mbd_qd_kjt?rT$LSd5J~bWZ;+CTUh^4>{FY_=XkKFe&qg}C z`2l217OI;*x}e|K__dVnpX(*vnmmd{k0IZl$G|>f5{)8oGKfi(ZffJqd_~&D)7>u8 zOPI%7ADxnyk5SoK|8v%hP%-9NoG`JGD^9H_e&boLYJE@)A#^C8u1LKnAfTaJ;o%fq zR@k`c-d3@~Ca)jJOWyoz&fLc~{U{~KSGI_}#<4>%CZva~Xojh0T_E445mp6n7YOYT z9_;n+d^(#fhpOQ-V#o^oGtA5Y$=fA-;3jYDwsJ6mb+qm=_k`Je#hjjbk)Q=J4rLiO zuW_Yc75Xu?iMl9$6SlQkWMZ5DcwwodinVq2R)OHow7tUqVaWU41aCGm$3G;541mWK z5OUYQ!KvYrRSPy+TRb7ae-2_{;lj1E;~37}B0k+``$*7Q)=HA<*{9Jdb_KUr`Xf@oZA^f#7e?*Zho?HcqwSAD!A< zP(~a`IMe++jBMh(=wA!OQkKlUJ7I`}Ajp(rA~EjQ9>+g+@)W<+_tdMnasX1>WYkJ8 zkFz~jMC21 zZ0gy8M){kHM&)ouJ2?|;vQ3!igfimhCIZ|#5!j;hQ18f=Q4?_^Hi~=Nl#qlqsVf>a zLC5v=jhs#1tEjqigtM;Xe)*!WeZkaU!O-Yy)lY&oXY?U7ec5d8sF*Ip(KC8&>&~=V zFWEg0gqemzz8g4|{?8L(NsHmP>0n7wfBnj@ux>?Nta9fotGl@{!;BZOY#x@@a234d z`r!HMc6Fg_3S38{#_E#Yt4QIY3qz|(iaicp31x<@ZpEqU!3av&Q~pz55x^Am0>RL> zZ)M}ui_2k9|*JGsw5-j7xW`nrXvj- z^XIb42*30M7sPa#2}6duu&QGHAilM-|rB>ad;_x!`e));s#NzeT~s z97ahe{rI+)^}4WJHaK@Z%WMLg41`q)ePgpB=rZWmP+9IVez7L z#_TVioQKiGma#|$JhX~}jy&+YWOWYn=YV=`*425_7V5!w#Nelia`lC$?2JJT#J>oO z5ZUfj%IDmj+rcRD0L{YWNhyn!QK!X?y$Ypf2X~C(6Kb1$Cs*RAu9=$ElS3n!nm%`M zHJZ9bNpzLsyO|$X*3IwU&OD(!T%(<}`lUcS{gKkue&Hg?l-kN~ft8L`KH8P+_WB&cGo7E7 zjyD4Y=cApiaFLwLFpi~wTnmmmjk`IfVXPxhCNF2i3O+TdvA^Kkb+HnT4$Pr+R27BF zMM;-Sq!l_%j=YopzVpSS<77k3g?#6AN$xe2*4{R^<6ySf1*GiGFHfMZVZ)Q)s|ep5 zQcO+i&PERYUu^oSsBj69&K+4_p__ zPhF+rm>asX$mi-o36kQHG{Xi=8uf=^OR-IyZjASDc?pR88K_Ay;VjR@6BJ--7asx9W1_XWYcj`%*TMPZO;AYn(MN0Vm zQO4E%DIOzgAAJ*Y_-}LWqw&LKUHQfx*^Key4@l*(Ble=hh&^2eNX7x<9t+hUqy_Qv&*!Rv5r zh1|&dGSlY7O5n&y(lcvEdWIs74FDky3vMi$=9RTjCpdJ#e|SX;Orgp+*-89*iQ^Gu z+XoXf(VE!D{ls_U$mKKa!@nj&xGvy~*QFRGc-gR->u4i4>!^}Z*k3}0J>EVgIRbi0 zsyR2${EM;lZ`(34%J8*90ge;TCz70NQ>;@O6vv0)KoskrTe2HE%$Exrv*m@^(;f0LMqkP`xp8_m4@~>{1y}Adfo2rP$Vhh|teYOB{H_sK3I)!Gr z9>&A?{O{%2gO-+7Z^bZDvMf_`?U&kg!OzWI?U?&f#RD-2@d;Xvg>S^XF#b%!f|}=T z{?p-#o(U&zGXAPY%;wZBON}rvIhdUIcedXx3fYT6Gu@W}^><`uzaQ^xr8a7BQu*>1 z^~v0f%XZDKA;aw0dh@-We@Wx)yyUeKW&qMNV7ek`FoL-fE*l)@l?(Nv^<&ESv4LMW zO)U+_y;&Dmd>jzzcp*c#w{8Co3SxsNKV z+WD7vc7yCRZPud*+HF-?O>u(U6K$0550TY<$BKlg`2gAH+;bnxdz01a z=Juop10N_@bazmi$$d&|Q69A%Pd)ui%luE632h^dVIwjxYxsbX`7A9_^cb{bHKZxr zUJQ$pG5eSOuxV=^gYs8Gt2K-|oy>r>vdVX@&r=!D(0j61C5sGw_r*h9j@ZrISFogx zjvvP!C0(K^74+we6&vYI9l==+jM6dauY%CvTs@NVY}Zt~ii_zd-3gm88O9RozG9dF zx5ZMLwHU;&gSmE^wg5HKk8gfvj&U(j(CJFiH>tPeCzG9;KDUC^qF4S>CFC3TBU+CR za$*9no-^gV@J4$mP3m8J4oO}9jB{R~ky;9OxY{#ePl4pZXxV`BN(w_z#`rx;mu^*hxn=4Y>h_C`Ot-Kn(K5B@p|E~20M7|}Qs zpPZlw6>FlN@=JTGACM8Y^$XOez?yMNabNOh6=t`G5M$G?ce_HgaH1?XMBU_Ou z#Qj&xztJMIRwu~D%OO;zCN%f>NalUuZgi({BZ%QPf_!0l(_V|PI8rA%Zx%V2SPZ6F zTImjCVwO_!?`dre{JBh)M)#Zpmi8_pI6yxtgh-?`3=I!S_JjGpPjE}R4GSB15RwW) zY2HGAGu2C(TwHjcWLy|PFU0wu|8@G-AJInrPRm3Z+|faoT+b^GrR{2SG>ntWK?>Mc z+cP}j1Ijx?rF@=7OmzY3^)`CRIckx^6YA`6oeo$^&2Elox}Y@pM-vs|7m?X8_qwqlQ+XF*o)Im09j zF?<~=4w)w`r-Wn?X<;>ckm{iUnrpE@hq-0$)lH={D#{v7AEVb#>*1%}i`eqsgePKF z(svW6vH$LQjGJ*ti4OLpjuLW?U6!A$VtVdDGBQ!DXk>Ewi?J}Ew$Cy>-kvyR{|XdV z8EMoRM$pbhk(I8#X(-G}3>0g{0KV4-m z3FfoPRnGw-y-kfB$;7R!7sZcWKcmm!4u;NSf^fGm7WaHpiIGFELJS9ok%1g&b^axt zGAl8f)dykHshFzDx~Y%zpP~wy-LazUdalHxs~ax?xgS=7yVnjPeJIyGY&u)}9%M+l z=$z_YSC)tmUx{@&__=Gi-~H|R$ZDHoTd8aQN$xX$-Y$PY@C|rv+h0MvEgb;99O!HP zo79T-!1PE1|EiR;046}kKS4(+KD(4!=Y+!iiklP9I1?2I-VErl8=K^8gVZNpfXmqH|h(md5E?$ zFNnyi*<#aaI9mAJB?W*(-5wYiqNdu~6U$F*Aba+_ie0&#+}FMPO$xg`7m|N=B`S{y zEO47w1;oq?i#_JjgZyKY7uZ)3MTDk*q6-Vl3%TBdH~&%#7M5>r|0DArTIYX6?7w~F zf44-xcG7HQqT)Nj3#)kSzg}9vuk^e`(er1H^8cDXNQy3c@sDHw|3O9nuRZ=J;qtdF z{x8!>elKq`+{~S+gnmIL#!$=s?L%=%zmTVXpWMyl=6jeoCvo=MoC?fOJfoLf{Hy+U zx>*&4ZL2>lkNmTR%#l7=>pa34DTNjMT=oGNGWs!#m z8(=))Fh}}c^pbp~$DX*HKd0&%|mU>|6Ek`X{rab`-lhNqnDrOe7wA zjqHbP!guB`@hM(!6Hfs>!`UklT1iopOh{iy^Rw%avdSAZE1)a=VCH5sV;6FQ9WGQi zy>lq#DMEIS4kRKlJH)bs_W5tC2C;#%BUlo)17*zzCRZdv1JsZ-i48(d5Dy>0^)uWzs3yml=E>QcrF@T=NbUCSLrhOKHU2 zy`S|J_qQA#k##oFcKh;8sYpNLZRGbub}pI;00vzZ86UJLj6@gKxl2jA=cn+RFtu=j zEL@$F`Tm->JOXamff)n{NE)6uQ5^0^fV1pP+X}>rp?%5TCI$Xa?Aq2{i=cz{h@h`D z(c%9%_pCU<(Z;JdWJ9mO*-p^K;d*}wJXu7A4{XzSyAWO5>g!E$Kv&F}JYdh)EO)gK zsvqq8Y4gdsc|)0js!RqSm_~eTszyUV!R#F3kIIrrN-og#{NaVjg@MSB08CJub zJh%s9oh$9$Z+h8(`<0$xr>Jsn*|Hx7$WwT$|OALJBB&N~w^#+rBPb`qB)je_Qgm!a5sBU`RoSKi%uc zVsQih@%tF?)=feOC)XS{RrvP6iYUd+B?&{HvG33KkA}z?evFTa$Be_KMUr}S2Wzf< z4613s>WB%S1h}D+0LTvGjR|C+#F&Q(1aa*h6R^I}&no*yuOHB1V&Hy6lw8cl3I0a2FN!|BJ^@7+6bF<$6esU0{}QE>~D z8*o#$%dgP5+>BCm!bLKmKo6iDsL={QD1>u}^A(OVIIFc4jKXrgLizBU*H#ZhRp)i| z^YqA>L?>ISUk9I%;HU*d$;qzS1p}gyd*LuvnZZc5!qofml_YK0cA1;KJPBz z1f?u?CGExC-!oB@B|l)r27vCg9Mix;w%+e>?64M^EG5XcF~9E4;btb}sPo}q>vAhG zq=XUjbK3LFb;;mif2V#O$f8^AgrGU*2M3p@sT3?s^-iI!o*0F$kNqy%3=rtn^)*QZ z1g$W-w2f6LY^Zhs(aC2x?!RES z>J56CafNmYGhG8;02v%1tFOPc(pOubi<)pK67lr>oZM!qO+YvoVu@4f2<60@LU>-G75M|y_X@ix%%t~zkA zJ9D~=>Ld)x_nR=~6fj*pVObvUQ*)}R2;8bC2B{k6td?Ob^k_~-5{zmywS99_#+eVK zW3^bO%dmA_3{p-8?)aAT&C7^l0v2DC0)!k~{z{!ouEc0^PKXDk;C)av_9G^fN-c+C zrlmEyo?j@f_#=!JQ;P~tV9P~pS5p*^ct1ld#vMgGCarrj+DaG}G>cCPDZ)wvp6biT0zkl;EU^1Jhgr#f=#)?EFKH@em%MpxEem7uE zJmZxC^tvAuRbQyX_o49fg#O&3=xh9szg~pI==Yb{`YF=<90qA2!Aih%)t-O^h&6Y+ zsPSVp%+?k->YI0)&=71-!u%XL5|sH74FD@;YPJ;%W$jNmSgcdt$)Cqh<;G*+J?cD% zvodDRia=d9*N~Uh1E=p$K}nx!ujxyTkH<_3`*uD&Nv?JbhpO1B;`{RwHB+sfhX`;= z$LOZjK=;vj3mc;5af`n>0U<+Nz!X#l`PnVfZvr%KtseQw`EhaLIKYfx<#hnTD3OW9 zE}4;H3l)J*5i4x9)Q?Ome~@fvZe3+XHrQPEr4(!1K}Uax?%VNT*GA{OH<6E-nWbjL zF!*kRsc$`PI!dgk3}aTme&}Lth%O(ETE)?)9qGLZl#iX8<1X&K)!lMwM{s?R`bSsN@0X-mr-MN-A^Cu-^PEz$k+O&WFs0?iKJp0L)mI= znIC@xr%j;w$AJHtR!np~Z(lR)e<{uSynpR~rA7a{Dck=Wi?}{&efz=FaRa`kv?Ue^pu* zmj5yOZ_E7ODrH+&8-^79C8XSE>t7Rsgqna+dH5Jgpm@HQl!BT9_=cuhRFnjf}Rb@leIsdNPnym`&c5{hT!-19ZYKhrR5 zOiVAp+UKM~iqxeFZ6Zj#TU7=4y%^UeiVm>a@8vdn*sVtzSXG&&7t(Kj z&Pp>Vs@g9CGv=K)7y=Mpa?WN#?tr#2%Yp)Aed6|vet*c#%9g^Ea0eboI5H@2(dnA> zdMA@h4S@AhD(-`jmcKG)hJU^^nK9$r8TUr}Q9nMJ@ER0Fy!CpMh*j{eLhzcBIUx03 zwIqk={>^jNXfd{)z=39Ok2e4thYQ?-9q5_|GEbL#sg)84M*=4Y-SrA?u zwaP77YiK@cf4$d`2f!|82m3UUlNBXQpxs_SLu&!@egL0^d$!5VYuLpeb#EJTvM_tJ zWr|i`D0(e*(A}J+hdgzypS~RZAf?xBj4&$B!Tm*SGWYW>taB`k@_zRFKq7D0(YvdD zqCWdy-@2YX1?rCr_n2&7y5W#^SVi=%F2v)Y$C16T0Tf7`8pVsk`DK6|x+TP#EW3JR z^6=OXgpNNArT%(h>C**6i%1<6faWSWa_a`u%t|R#I(18efXK$Ol|EI)zy}rG`l>oI69Q zvCCN$T}Yin!u`r0J%E;uXSd;zuVCMLe~wG*`Ag@2&Nst+uWtd4ecEo(iJMGtqI&o5 zjYvD(W>!9>TwTDW2!Vny!;`JVqDLvCsJ42detEd!R`5fyt6L07Ff4bzqjRk!i=4gT z(6zzd!N+ar)^xhViaO4tW3zfr?>4~1?Rf-gej~qic>08cB78c|(RXqCX#luzFtHOF zRR*c^%r35%fiE9NUV4*}WD zi}H5-cm}lGD?#lY^yMnm&UDzQ@`^{ai09MvNY{4b%Wv~~g{QH_DV)Cz%>4CYZ(yAj ztB8T@zghRYR{(AAGRaJgEzCxN{g*trVWFTHu-N18n1L5pJ3ct6r}eWlyjLD&V*T~w zFWl-Owdg>80wrGdAJT?6dNf{KtEMVBGpTPR9O*sjYVhUz$E(bo{OL`FyVka=X%kKZ zJX$Lql0~u$MaC%Sn9@8>^2xFNwLNICP7nl8{sEJR=rec3PtP?|-n9-yY9$spI$9%; zTE&4|fB>6Pe2dpZ)|ZWWiHL`WBx04iSW(-0ze$m1b!p4StRm)qdGTEh&UcfQwzbgY z0pWJa+5|&oQ!xLBd=9Dn1h!K4*2d4N1I(iwUb*$$>}xyU)r+0EsnShc?@ibyJwsDf zdsH+lt&Y&Fr74%{y^|xGwkVQC86vg0Dmpm`YlQq^W#%N438cFn0`b3FH4E3B^Y1}aGji3J1`Cv<`@XY{IHhYmx>e?)dHSJ% z%-D`!4UdJg!mdBqHDgov^055IKf`Cy#v;49-T3{%*~fiZK{&@sDDwNL&L2JfSf3v} zuM6b-Gb0yy!sC+zG_w33;c|%`Tp~HfxYWVg)UK-H%glo zrFEahg}k*TZjNuPecf|?=XlHm;)xEMXJ)P`;e&u*HRXMARWmkd+gL%zzE8o0o~RL% z;J|6Tnw_iS@FiL5s9#V$k?St#alt$x!NtdzjGMQPccewXSXnYJ-d1M1l6yVu3t7yd zJmU^^AL^vZc&9H$9^Iom%)qO?7F%*C1?Apx1#2=3FG_qiJ-E3#K*cfCB ziRU{GUsp@^1fTIrwdXUdkes z{H)=`7_y?_dtRL~TkohQXfb-xzztQCtCwWY27N8j!Qqp(a7-;Hk_6Z^c|(-`md34;m_$gQwH~({depD8K-yJG7Um>KN)dJX^gO8ri8<0X|WWWk;n8ZL1 zg0n%Bb8y7z}Qr9Y-!akhSAZ`iTXvTZ0(9+x37C#<^Fq zZXI2D@cZ7bd5c-Z{)3M)wZjsX5+#nxfZ=!d2c>3BlVy*p# z`R;voEqlj^gs!Rt0bK9m?!9;03icnE!c>A2M6HH*3Rc{ooG{6Fm7>{xmn;TZe!tnG zVHj^RlfU+JaA*oI=`xb*wRyqG=9x(>e=^oA_hX<{{=AAyaB+7EH();@g((ZaxJ8}3gdGD=2!wTWZ@u~x1l4Me)14-* zz3Z5r;yIE#KWKvwf{BVJ)1j{_nN`K<)>$sDuDxZVHACo`rx1pRNP+b`63$M%a)roc zTmFjoH}xE7YNf|>31@{oW~Gl8Jn6DFD{SUfu$~*PP-Y`--AJY>>N88Dr1!G)hW51| zd&+*+$ivR(*a2$plVZgPvF~ zBB5Z7t}8Tn^|NXsUt>&IEYYMz_J zh$(zZJUYhA$`cpx%kQopzX0CS(;X75MpmWKl1od%g+p1Ha+z41J*?8%{ncBjYhoBX zj(l&Dq#lKY`WPMz&t>f%p#-J`xV~G_5F7R6ILZ_emx)nJ3Cw8k;q_WWo-#HiFROos zJEfsR!t^Z0=VlI^tSsL-wyvS8!JjhHF5`$3<%rjB<={MBy~%cBDxAH@OaSw}tOa&nqQ|G&^m z>sj2qa&7H9@hDIF-pOL@W$;F2njj^?_UUjr5bTY*cWZz+bM9iQFu=_Gthu}1XTB~@ zU|7`v?Z?loD?=$-bJ74>G>;**80rJ>CF zdCFQUTE?vDZX3UqjZ2fJ*ucu@*X}aJ3U%+)%M(_n=gc>ZLIRi}?NZ?((v9K4s$E5I zVg}9(I1Quq^atcb=mjQ8R0Z$YklmNR8So3PUfg^O4_4n7P~%<6UQ}9^ZdOF<=89;dFc}5! zoX(G6i_Nq?ZI<40Q5I2b1G$f1*0TT?@X>~7F(Z~av;kiDJnKDfC8ONAyjr^^z6y^O zwWtrww>#1Y4_-uyU%XP@(%7QgHx{Um4E2lhpkz=j3gchr!aY0h$1iy%jGOo@J=I$W zO1QeIapL1CGH<#+zh(z{e>$!qn!{kw7=$|r+D+;9y3b+8l32t{s_4jJ{t{$ zs#*vqrcNlO)TcM2SXe&ad(G6X-3*B)XZv-$x?FWr8@gQA&Bb#wORs{T9av@z zbXw(ayrcjv&kn7nE6!trK7DhF;3J2~jPy#q6*jk+L@fU@3vg_fb1?5D_W1DD`RX7> z-pCn=#%izdU=tGUYIj(X&@$)#Aoh_-D`WWA7IzaUUvpEG&x+;dv$`B}=?b zuW2pq*%)dC@|1Xj3Ab!9oTpTWvNM&tO^Cz&pUaC^ip8LvJ&b%Ybg#4?hbe0p7~5%f zFD?X~;I#d-p7DY9)>&`2(Gy)#RMbe#J?)|G>T{XfMNXtq0itSqA{ViQzO*NJiO)_t+z6NzyDU}nO zHw=SwEfK(_KhR&E0^5@96LMPk7kTQKGl=-ZG;H$ARmcaVo3PmXE&UOfwT{YtIn&(8 zWWOr0aZMMjRhC)e%yzxaZyDi5C{{mSmzm~xs;4wYlL77rhyn0f7-Yl!eR4k`Y6&f&ZHtqv`%^QWf^1nlEy*Wtk3Xl4=9F>@stv9+a`55y=Hy>9G`Z z@vc8n);FKX)mT@C*Mu_XQh4P*>fnnC_^4r4^RyXe;KD755y`S*O$(bLoQ{}@Ne*S6 z%rSZ?qqg|&cKWQ!O;5MFj0D;I`R%hLj||ay#DpR6Co9@$(E0VRxid*J*E-@)RrDC|l)vDK6qDX>x{5 zi`q|eFbhBM9-OxhM%T>`tQR2Ou(lEhYQTBW#tf+U=ec;7!R+o7etOwLRbPQ~DlDIj zI7}`&xH(pqrDnYx@_ckuo>cq!G_LOl8yuJH6)>8)g616tK0+Z$u1(pAIFzk@y}go4 znjmiiJit~v3YNM(?C7FZ0AmX7nc4p+ood^Q`Q0Rl{pI}QzQiSI&iv3jhOck|IyE1dKb(RAG(Uc;!RMUBW$O>yB}i zLb1-=2k4|o93VeQN?j{mMm_t$tKvjjpY?fRPMs!Q{BCkz6NVj%T|7b-s5EU8PR^;D z>OdSC5Ad(?QV2H_+LSCoNdz>uZ^bFU)K7G2-iVgc=#UHlkya0lZC!K$XH#=rvNTWQ zQU1y2yn!QDDMqu#a`BQbMB^*g9amHLCRvT&ci{OuaJ zi>i`I^Cr$@Quh!g8{fXsc)~@tcydMh>c|7nm-xe^xM1Wzum1LC*O+r}CMV<{>A)bF z33PbU1`b7FC&FQqJH?q5sn~zTM!5V{QPup)W%-LBYwF|Sy^~%{X`9kDCNxVBMd!|plh zgl#B+|5z8G{7S|L^h-w({p{W|UX(+Ae)EGoB2~78#2A1(e|aQz+iv_+vJ<`nLKaZG zxeKOx>E`=tX&%V2{HRqFUECAFSj;+$`ow$z6k;JnHlP=IaHmT@j-Mp;{rYfz7Edqg zt+--~AHh9SD_SW-V+*p(eX;6*y&~i5Ig+Q2neYOz-vYwnO04V^i_4Pnr=yg=gUq{a zU)p1tq|_vT_WsQ(mzL}Kq*gP4zqmoO>bC(ktn+65XcMlAKDf4y6#P2IrUfAD;O|Q7)*!{1 zISqfoK#6b1pk$}E1R%q37-v~4v)0UO{Z{gF5<&Z=-&H&H9|AXS=%n(0`rbDrAG{Id zx}cr*g#QT3i#(NzA4ijfcVBrh2B)TP7*@%}*~Z64YH%;r_!c;hTm;nST?gM$8n%jg z7~JTaRVPZ;Xd?~0s%$o+q$l#ciaf!Vy29$A(Y)HGp7N;XjBHqfUMr{FZ}4U8J?Za| zbetBYA3ip0mvyxKjk{eIk1;5TDHEy<@EX~`f4P` zB}+M@<~Z#8MF74{Yom*tVB1>}@F4$-Po1r?4cN(X@|FIep&?XKBwo_eoe+8 zc7H81Or_^fCA~mhh;Tz*h9YK;IhIBupY`3ES;v)ss$KF9Kf>~P-${nbHiKCFs6gAp zSSB?V`0otqe8p2YH^ z5^gxSJBab~57*4-gDLCtXZ0K?m}jGQuq}6+q}O{g%ksdEgBJ)#m_tZ2&f~(pm%Mr7 zT=DIQxac_Ty0TA<_;V2^34O|k`1HjF3F_W2bXX3%ChALqL}4~303ebq2yap1M`;k9vpCbP4AEXFkq$YZt@2Q{qJ^lE-KpX z3cb$-LJ(i83!P>d04;L&x?WJX8-&w%Ayf3`88}*4NLy?kHa_8?C-@lMe26-Trw>eZcfm0QuLapJ$2db9vhp56rP``ak1eCso-RWkapK^SSmIBFeqv z!8Z(UO3V3eL=S zYb+V*rTS`HNot|3+Dlgj8}e6Yhi8Kh&%Q58+bp)k;-{iz z(tSkwRX(*IJjnnr=T%)9oUyO#da#7btN3cNe|xVlxzhVD_xie`ltX`Dw#)C3-A_TQ z{o-c4)O&GfWZ7*bU!@(TN@HH4|2s!@~bXC-Ixn11+9b3 z<0LF;du{%Vx@X=~7Ew!F8H#_8gQfcfb^H=mze!+cjEB4{YSfwGO7PkxnbeowyaRa}aJpOF5`K%nxlbA4;M ztWj2#3BrGb9(mmXw(FEt+?-dwH#vZ#sJm{{eBcz5M{ftr8|zSob;pJU4&B@t(VCAq zS()m+d#sRJWuU4|&RC)Zy9)Den{)VyZp)drFhTB!-4`L%+DD5k@T)B({fK$_T#Hmf zgmUpC-jv67BkQk>+kJUt2el*`?^Z>RMWG5KR%NPZ)OPofd#Ub5Yn8Aa*h1>-(bBR! z*l?{v9qyYuJYcKSoxdShgkVJtaD5yzv1Ozi@kK1y(!#$nU5IO>6v-bwyH8J&y%*uc~_A?*0t9?*)4QkALPLuKHy`cM`b0Mt@C5S=I-P;80m2m{gd^v|q%gO1HVrb*n+j z`*&-5ZO({F`Itw4j1Jyh8bZ=9ekXU{Vkf7~Y!pcY*p=VS?tpC6~(R3K}gkH<= zbQta$-bN5<@q?QQftGS6GlRoI%TrTgIlNR!S~&!sST52Y&`6S^URR_kd^wfvSx}Rt zy7g@HVpT5GXH&_{gj5wH(McXbq30QH*b*On?l%Rl)#T`vP>kD-#dldH`3&eA8X)**eAl1O ze;Fdj#tOw!>@whK#TasDK0QjCmg-bPPn?fH6<2gk+~Q`w1idIIHlw7om#So-==w9k zHEozurq38O-b~wuVpj$Im*6wdg`AR%va~k|oqReaUut-<7GexlA{bCNir1W{;poX6-qkdE8#+K*R z3hIN>){STCDo@Z6b-R)aZypAoeze)Xu@eEx3)rJhSG-o1TjFgg7_(WpF~8c;Rdk3NA$gJL$QL|Z)u^Bj3Kekb!!vELOmFev}OILh)gqU>suzlWN zI01wfKC^cVl~T^`eL2fxvJpbHTQV=)nSSU~SFL$IdXtoz1GB1YvZ81dhkGs#CRS4w z31lBozP`_Fw0!T#fyqLrF_x3!AztJ7DH`9BZCsMoX+C#Dp*f%v(L3dwgSV`@Z(c2= zYLxhae_N3+)!lX2^}{%9rj)tR1~+bk>GX0l!-*yW0K=W1vLyKGg7MX5l88PMd;%7^(#X*c}>Ow8E8L_{FZE&RS85kHlWK@Z!Wb$_NLz$6*Ziiw;7`xZ+(+D^oJecuQUG%QG9%k#@;4>6)*+7z=ev@f(_$w!8#19|u7PUjEDbh%`K{vO z9ZuZtX}KIvOF8}>wOw>?Q|Zo3@>0NOU+ayu8PQMof5hvh;`a2G_u8(bx29FmN_bnF z{qh-(M5lwD2hTZv=#?8a>`#BE)U@;{?=qxk_BOewv#K+Xu+JBW{l3EGU#$baabfb- z_W4)k<9b&LpWP=4r^)xq?>}ytyd5RIFf!Dg3;pN+Fa2SVhb-k=vUjX|HdX_CZmO7) z+;<@!x)YL%lwZ;;r@mi%y1uGcMZVM-1*@&qI=?3Rmf;qf-!o6DBX(?bn=mD`0n;72-f(e-=DjTF; zewXIDH`#>%9`5sB<{nXh^mj$SDpd9waW5KtRh#yr0B^vb?$?VU>q<*b%caT>6$vU{ zv>A8>fnB3d{sH^Cm?tF^6r`8lD$|4?x--U?E@kAP8Gkoe5W%5`6-SS>zs*F}(Qe8W zM+-KX>op{0+FDa>GOT^xs7S#HK1Iq~4iZ1PZzlDd{?IQsu705`gtsh6m10!3q_^pR zrd&X+E*?JYn1?@r0x$>>R@i&V641H8lYd`WWc0=5! z)__PFGOB&M9u(>gHTB}%VLc~n!*5kY{QiAaHJ%1*Jq=qb&U-l{m=QT=gh z+H|g)WQ)^Ov&f$WGQ-1tCL^P_nK!1-%)uJ-S}db`b;-2Nmv%}S;#Qz3GRwDC9Vky} zFu1Xpjwf1Keuoj!DSZYekkPD}j;MX!cHl4lsh6kBCr^la?+=ZQHt23y6t8=FuxjtQ5#OCU^l+o&AS3y-& zw9638+dzG_t=su-H{o(g{@|%{UDMDB>+$ZCh8vq7ZoKo{N_$+kS$uH^b(-tzPS}=G ztjD=J>pDz^?*gA&e0uU~9Wi6Wcfn)YwRNjqS7dADcRG)WI0Xp?CZ9`zrax{tG;aJX z&8w#4cFDvGu%eYyF5hVtZ~;G3DZ5}$Wca)&Xi*X&l=8zLA4wW+wG+UWkSxzXLV~#k1iUOIb zIUp$tDhinc3L+{33IccA>3rY!-rxJ)d-p#T!QT6Mp7pHZvp#D*GrKD03mgG|Iq0!L z?@+saw7G#gWlsz*Aif6eIm^wOO0qIf-xJ{Dld?b@+a|KkS+Tvbs*bPlV=Qkg)Hbxb zw~67lgJ-mAZOZMJ*h<6VIExZpTEGtQZxK%R7u63L&%Qd}I`W6()R+- zEz6Ap63<&DURGPGXA;6$mAzK(4h0wfjBLNRkl9z!yx#B`^A98{+i6(Yax~*|xW$Zb zMRzC+=hUGWkS{h+&-}e7VxIiw@T!}+5?tD?qxDYHar#j>Wv>&tq4uaF%bD2yTgK?k z#E0*@SBmT=6?BdL%1G<&#ag$Bse2HTc6dptPV0Jm$H1n&4GAB|$sfcLPsU*Whz}&V z`8`>5YiUJLu1!C|78pl<*(0ycx|JrArA<6CshQNV!1hR7ZpAjHPSmGWMwI2Rs?K*q zixSWLj}wJaTYtpYa>bwRZvZZG_TDb;lP#7nYPO@}jG9qlY03RTs1GgBgPq3t_|2Oe zxWc!jxBa#9-IqLuuN3`FKMW>+t;@{lN{uqoQA6_9@7KwQ5l+u;?|nFywdZ5(Vy@hY zb-dRxeP_I~RZcuEl4Twge|)?+=5RXfLR|m(8QXBH>2^D}p#t%21fkmb86R-tKtXwv z>AMOOQ&;NuMijIgUp*9XXh6?3S5hL8yt_&w6W}I#s}&ASPlg#gB^Z@%TO|jwfbHh)6jb1;ynkBav1;5 zP~}$iM#~9({kCsorvINK+^HY2$d{2S`N7?X>(p`*ZK5)H8LuY#=*D8lN6>KIn=AB^+Fcvcd_BDGf+tABIsza*KD1$2K4aOK1e%uI zZX0xZLL_mIw;j5EmHfOf`JcKL8JX#CS`MYq9~NBo+IKoJE8!!qvc|9+)ab56lyLBp zy39S#rTTkdrm@0#ENR>fAqCfxi=wVr?Yy1CZQS)}b8i}`j8gn4Vz1{~h=lyUfy`VW znP+>I7w0<6q!Je2Zvh*MrfU8Meu0~TY!EStCp#LBDC=5z?6EYoEsUaeNXEMBw2;65 z6u#8%)FR)Yzs>kPMCW*fZNo7~YmGx~qXYN!Zke?hdfAo6`xS;X#@z3>#)S93x4e3~ zR*n(Bs7%?_HhL>F?8D|>iDTZYhKx&lN)pt{dRyLGzr%i`_Gd73Fd9(tNP^GUpIEGJ8S_xlyri!0;>LWD?*bSNT$ww`HQ(q%z$9nJaAWFV>}~IZzKym&xjc8i6|>v-8`wK?$>a4%AG*bD~w0) zeHHnY0>%#;!3ET*8nUZ=Ver<{dDCdOZmAQI)qVw1ub7_9v2}7FKZY?>!x#_w|R`_za-HgA6k4hyM@zj#V&tZEVte@XP!nN;HH`_5x~Yk%UN8sa zEWbB*hB=@wF#Zh9Xa((UII0=#{?dainD2V$STfX|QIu#g2fiZxS`|aH;=xWhJ!^%G z{6U~)bsS*^62hz?Wk|WTL0tqiQE9?R&bGrkr0bskRUJ?{MZu{9sdutcOSZhj&kY9Mv6IW@iH_+C>crvdct#b(CbZrSt!j^)fOVj2ZmQe>s zBY4(eP8a`+%Hu{*`Hko+j3(oW2&$sxJdyg>5rmEwTC8Nne7o&X zx)KrAZNqEpVYs}znefn2jkyv=m(7?+=bDC&h|5Yo8G;;2TfPe3e{aRy&@fTM zt+$PC;F$QlyXo%_IZ>pg`pYjdbWXgM4)+2oGi@Hr%7?by5Wwjx7gL;}MMlqpp+8=z z2e<6Bt8?!;QH6*JOOzv0OJgO4?_Gbt0ams05u5q1tT`>q3}$$z%oooZMAh6BUx&jU ze7ml%XGm^HRGjXkJLiB3=gvI{_W5tX{H6E^TOtdIpG^pdLcDyqVN*G^4tpI*ABQG&>&TN?DsrRw|CoC4LHQ>Fbd zS*IVgx}Dw*r6=^)nUNvg3U;i%x%zu`7p3>|L!-j0xm{yhErI)7y>dMBUUjH(@S91- zh3?p9d<5#5E$m|zr*@%qYU|}+Yp`AZp-pehDtep64;F3}i#hn7y0J0yLny?IyFl=9 z5pJn+_=O#!4-x##>q~|bOv=+&R;u-z%v%L~ub3!{#Psu7^0w*spet2r@BW*|*%~u; z@#HUL_w?W0|8CG1!OTy^^~;y9z*fCq068x3_(3?wR5_9s&V7vu{ipau=D~Sjnt$C4 z_~Y^%Fgt55ua4?q{-IU4w#}JNpxTGwyjSlHit zd0}@^p)+e_ytUVsOkMK9UO(&lUdd+9Bj_a%bHC2Df8|Xl6?*Jr+~N=5a}MS6E^Y=;^qZcW{*~A~)sWYKU(@Bv zY|1{`8^<~zuG{tc2vEj+tuVUvzwzUP-&u~h@kDef&ghx>qN)_=J&eAUFOfr#6M!zM z?0zT5(wMo2Mi1n4y}EXrh-Rv1Z?y@1vlF2w^?c}70oS?8Bh@XwhKZnq|AQ0t7;{Ox zJQnbxE+G#kyvCg;U3N61Bbj{<`#*m^8@4s=>w1BjdFuCs3%L@x@_!z9!F8u{`^uXb z#)=ChXe2<)7JKQ{x_31Q{FH^urr2=udnmt=H9S1)*_m9n_r&39q+s>|bSm5gy7;ZK zjYkG$#gslcR#+Q|jG&KH?vjpxotUPDk#zb-^rRs>vTZ zF>x_+=^HZ29xE?;X)=60X5Jg2d@I`P>rUuO7V=)unqc_@(JP~c!ZwD>fV*nU?c6qr zJKE&c;^<_=zf!n9>BKt9IpIC6JjI9on*fpVb#XoVu|FjX0M|zoFh`>o{Y^scKPel1 z>oP>9>@q3nvK`gZZ9552OMVW>eiIomtc5>fs%6)@o+j(V-8THhnN;$c5!SUB*R+vcl%B9#N&{nL9;?B^dqij==T#j(%W#oOMN* z`5S{*n?=iQ1Y~_vAfESTwoYslxx{MQS3ugR3Xu=XQwo%z<(5nB@k-)D*t?_VdWxsR z?mQ}%a%01Iqq3HI<5#8P+sdH>ANa?5AHx~Hw6V^1^Ny`QmGEol^|pr$g)ugTrZZ}4 z8NR-^bu435pl{V+q6^W&>B2XCbI;EvSymN{@_03s;o@OxPW8QW{x*lJ11*Vt$2=%@>06n)a6qSm2jUxSV8Mca*{N7MWF zaxCyGE^hp07aVUD+1qRl;qHUIykF{LHS1l`dMM zC|e@2+Icd;k2jdx9Ozh*g$T(o@*;%TS!LGpC{PI9lwD176o!o6&a|t!$iaB}al1)8 z2c{-BuY3kpi?W@r+YCW*E>tgEU1UKaLjM+FkyC3&y6BNjjDIlXQdU?P*7(g1R1= zU!RoqE#C`nk+#5a>d(wnoEtaV5jX>c|I45-9eJam{ z_CnjI86b2_n|+(4F4bL|bt|hdQ!kw56M<`N2z`XoGJrN2@ok}Z0>+~@m(<;`>&Q?o z=nB%Xn$P$JiU2Tn6N%?oI_rCPZJ=1xlBJ@}{s+JwK6a+<88@;2iPG$A4a7AR#qFEl zB>-xMtyK1Smg=5*(y6Z{n>p=_X!nj*-5Z+vjdqP^WGY!qZvT7ncax~ZKsa&Vkx0ni z4BL_>U4c*e`ylu5$TANHR`(l3RI$SuBO>jjPj`I!cbBk6@udT+_(aaQk?V2NBZp}2 zduT7-YBYyj;h31RB8;KqR&n&2gpNjT&76(4w&4b)jBNf9^)Fep6ZLR?#)gsm1u0>r z7oCG&gy2qoY*In?pG(TBK~EHaw5G??|yODIqJn z-@*bjvDNw%fSb-P23e%`CIk$2Rw%BpV{qR~F7uP0cGm3EYqoUuK`HFcJXJzuI@$BIwh~mq3tBh3ybJ!yV zcaHIt)qb^bs`y*;&@?;gea7eRyK@sjO6n;2Pq1ihyISTB<+}lIW}c>cwv5-leYLBt z%Q->O17ux$i_zz+Cv!V8r9r;X*|RnQbt0PkrN}IDClF7r)Qx4;QiXQMUz!lRGkS7$ zsqXH}9ZNikjAbry+5gmL_7=0kHtaLBW{d<7j=>(2_UhiLN?~rrLu)T~r%akkUzjd` z$xC~)>rKHsqnWNBa-thI)AYw)OmYj|&2Hz!@oobB2zMR%sH+fJBKV>^dNiu+Y3sYn zw}DOo0QKOf z9oMqQ2De6#Z4Z5?kJF zH9?kVG2}uXC|qQ|UF$>ZMZIk3$4B0>)+j4$^!9kW3y$~)(m4a-1)aE!WG)+xG##C+ ztG2icMIfY^@X-ix*-;M33=~I@H(JHU5E$ki*3_3f1Zm)8>WFEtMp{l-DDw!=4FNwj z1QonjXGg6HQjCkW)E$>6kPd$YvjjdaLSg9oRomVHN*;rQq~y4qWa{dS z*4LuGzM@W_!v?NJ2FQeTjUSrHE_0&gnbE4b;#PChE9$U?J020M_k9q6RI0g!>YX36 z0T2-cM#C|>{1yv6w|Jv0hFq9fg@j(gh>aUOnU#fGQRKOIh^Rq|+kAhP&pX8j!QA0D zm-ZM%49+gii)WGxjheNr68n$P(FM|b;I7aw1@5|%9$!LPM$U{WC@#Ps;(s;k4L9$R z4MuyI+3Q$_%t-MG%x$1`sPh_;JN?+7uP=OVxz4R?9_@1j{gXsLhPtCto2L`dFWOdn zm3z^-95u?8^JQyUFTM+zDX+=;pajZXCPB+IQVXv~uW%iFC=O0B>ALvIV#DDddQHdU z{OTfCO8xC!l+psUSn89F+>U{EC0?t=6<)>*OJMw`3qvG!A@_;I#S}*AD8_1W7NP8BwC1(V zkPE>Rg!dYm>^k*3C6~wkCY+>3iHs+n)>5wIPWsGlghZ+;XSqRa+U!BPozN@RxE=On zv6y9pXSx}E7oLR>|A?5ZWxTgJ2fRXdC+F#F2Y@rQS1*w!+pwd~C2GxGr-n zs`%dL@b_>oquZEX70P^;Si%m7W!SX&D=8%l4OSVt!7=Vta_{*kS@w}L>-zD6r%=R_ zO?+jW^+f0dD^vgpQygY&Z*X)Wb%gYwVN>HlgqoQ2@A4HY5l=26yv0SsSH1(>C4k&y z!rPQz??e5sa1*~w2n?RiPrUYzZLPxkIAVVu^lOb< z{Bf`Qu)?Q4byR1Cn;{JgD9239*h0#^RC3WFtCd*vuoOM+m|!kBE^>HhCa6G82lG!hZ_vlVRJ#@1CMtn}~^^kfewN=5_mSog3~3P9l|@+~IpfTp}oBW4E+ePBg9q)^CNtq_IZh z!to%Z*FuLD6>L7OLu)we=<}bRgwtg~c&o+{|08e0Jul0i`e|B;$M@dTq5 zP%g|79?SKMsI<@qWqx(?yl;|+)|fBkpI+CiL^X$1qFUa%6kse5x~EM{f??QX+b`3P zMSv!ml4LqKG7`*|PeWj%sDO~pfr%001|wJSV1ec+SarU`u$|>R&|TY!VeUos>HVCL zZ`hul$K>{|jhb%$uVX;;D-1(i`{`#B-$neyGvv&F;TeFLe0X7%_W$p7=@A%sDPMrf zV&D7F;@?kY^zTBS^zM5&2=u-Chjcpo-p;uvLD^{dxJS;KbsMKL&IM>}R z00LQ~2l$1j|2MH%ybNJYiEJ`Yt#Zj9 zB&|%o)ji;%haFm3*kcm_V4mH6aZv z1)}tYn$1E&wrX9y3=D?eBd5jtnfB?OY@m#MdPPYI_!%UvTlJGkA#0hWyO zasAH|a4x{M0LFggK*f+8pKAqk-V8a}bn*4?r6*@ZAF^{mml5=r^9&7}p;K4~=N{X4IQ zK|o#*W=#|`9Qk*pfy!m>RS6ZbYh+Ff8|!&UAvIE!+8j0cY#DWqn`B_r35XJ)m|8P5E|06 z^0iTIKv)9Of86H5@?cGrIlYN+-?sPO)0$Av&Je3tieG{GlBJ@{x*4H#q(JTCZ!)K! z=`Z(vb@>{ItEVWhy>ag6BI;+;DAH4nIV~xfeTKL6 z9^pszQrd=*ZGpBPv>rQ0*nDO-e$cusf`dPcgmR&4?C?#X9-*i@ms|#y>cmh!1N$Od zG_Js?FOKCKe~AI!WSUYfIKb>_jzIhB5Ko&ad0w*nL=SBPMt-6*OR`uXwkddXWh5ubz&B( z_%nmxT3g-KPL>b4<{B7b9Z%YRYs)NNk&=i6w(-<&`j3A0P(ATg9=3GueR49BM{%ir z9H$m?%0({LAeAyUbhivfTZU) z;EK1sd2~PXA_JLXa+JNjKNhqNYB?&QK`Mk%Sn3 zZ|_S3RsCJyf;2MHMcA7%GrCjLw$A#e$MNFTo?b_j#F_l#vr7_Dy4s4q@|nKiGDVrY z`**CKb9d=XbTk&n&EyPd*@_mYbKMgRE(YSoXf-Q@U#+Pw^1_7+LWuy6Bv~2}0;YxE zAImc}U6x;tyzH-mZd<<=BN4LLqkwT9D6{|PdH;r=;SSzwWlqREw3$&13X14T-Ez~` zc5?Cy*nzoKIX&0TIiiKIMkYIGnIn}1Hslxiyzq4>k#yo$;t){gk%kS$KG94I?n;)F z3(M)HOZa+X7G6@4+4ZwST6PHd50!#kzOGMaxpr`0k-cFvp|(L*axb~{4?c;Yw;1+T zR|PSPlH(PO+`UoP!b)v7n;u7yKfN*2C*?T2=2tZg@+RY$0hCgb9s!g!5?^62T~=?g zFF4c#CC+iqbv5>ogg$2zjDY?(<*Y6ENiU$xNDTm)h2HeS^trez+v-B~Ar#OYC;rJ-zpq4dAG^0a6m{0?r`nH9}ZNv#KN; zP&K#dBAOr==$ye~xkxd%l?m;Vii&SB5++Q-fDI9ycnGR*YIa#W;JZe1u!0$Ib*tvj zFxH7g>64~vPm4i%%t2xF5T&|MC|Vb163J2;%Do_jp8UOeQ2U;$TeL+m?W|2)v;J#gdJp7<^vonHf&B0BXI|k!XuT0Ip ztiKkip;uBral+{ZS>(`S8J1=Xt-LHsF#f#xtplseq-RL#KU*UT^Yza(i6b7z2#0CH zuNu`gKi28V%iKM-MgVzQVr#Cv0=(la~Kz@9E>De+t z8M~_W7GL5_Qbxkkr#mRY)2w-nKzE`mYQ7_4*-SP1)d+O*rKZ}`&b09|4xm12+VH%x zhe9z2hUCNuGCtl9-nLa{>hE$a-yt(%GR<&0FKLF@9Cs9RDM`(uiUj1v*t-e}{+xD^ zEGRa-pI%Mn#cAUPVz6v9b!JytEe%@28;q#I8gpOuyC<61GO}PX!_yl!Y#6nz0BX9b zJB6LA`}VZmDK*wLmu&98fnoop{na)uQ|=7C64?aGQ)J3Udn%)r6Lev=0^M>PHyfKd z`-m-5Nh6(e?!2X=RS-FvyRqIgae9okc8|>63Siycy1rYZ_-z{u8^K<+H+9eSD+M;T zt4PL^5_kR<{eiwRc|CGvBE_Zm%L@he9g;?Cu!VO4+@pifq7c(#F5JA^f9%XRp-}ko zezg|?P4P?yFNASoh_mExrJarimubQPyf`#+C0-BBGNLahV6`Oo!CBF0Cpno1=3s~X zbaGKaOR>)dUsG#~WBoOkbj`Pr$OS(ORd0-=4SBLUW(e;9&%$ralZcFS!N4I;0nUoJ z>(lJJTPXbFXKV`li>e#t-5*t}db72MqmXf~6w^qAfR}vGY5zJIIn%WzPER6C;XcYb zKD|4cBMr5gdO)twXv*Hn$v;sE7@c0oSiBy_y{a=k!n}l}M+nWJ2){@9#uBsU)j(lKCPNcg-6R>uFq#wJ7$2hoY`BL z328H?FkR0V6j2X7^JqK(nElCK{;ZO~FEZt0Hia5+qq0%RQBsH_E~_m0;e>fb-6T$4|jpt4;^&dk{1{sGA+^Y79A0hp;`N0;GgE>5hz1q*0 zhN%w0Qp++iKHkCCnKc~MS)JGi={dxycXw9AIKO09QS4)34vQ) zx)A|EQLM8loq)QO4D4|(z!GUtcJyM0!;!`)@E-ZWvOwkT6Z~37H<{BKn@U4>6hu0c zEI8V*<*U5upj72!PBq?@tXFe&T!nf{kAuZYqLX+f4)Mi$Vy;R|5?mlepyAXH6F zU(952M1rqlDiNX+=S9ygdJ1L*pVyEGa8}NvV$06-c#XgRe%?V>jTSCm$H$0oy0~xv>y1&8Tfa7RP7%Nn zre5iESAg1}JZ64Q&OznKnM!_jmj!40MGY-`0%LM!u)2SExK!CFbSg89*7Nnvp%8*D z`isbiCAWnTJ5MvkzhX4M(ujpkA=ni^33e}A*h0qIH&&XDBr#{C~R zm#4#V&+6wJKu&Am;0nau&-0<017rtwIO~+t&PdiqptA0`maPj+9AW~H5JF3AxM`wq z=j5lay4=TE=J&qshg3o*)4)R$Vs50Cy$KDB@hQ8qjzr_-=m=dYLC~|llKArX*z#!0$IqCb0q{~HWX|u3x3hSLJvinp_g;VY`K5F0W z?P`7Sn6-%G?$4gdtE!-8tEx_f6(6EuEPPqjfU|cgB~1s+T%{fWjERC(uSx|c=2O|p zCC}O&F~LQxiK@sFByOlXF67G&vjNWpgUQ_ujj)&`5OmQya$wHkqnD>=&)J_q91vE^ zthY^C>b~4o6fi4a<9_FIoW}xT(R@45eM$|xvT!wB2OOaP&Bvk57;r^Kr}0ZI>-HK3 ze;o0z*xW7bG|$lQQ4yrxOA0IyrDYe{C%~|k+`W~oQ|*rGKV{>z9jTCbfX@PpOlyH7 zl1~fS5aI0)*S@OE_EVQjH{Q75irV7s>)UI@S!oH-g)X$KH`L3KhCE>ox&L54+0h%f zg~nvy1OVcKoIeL-TxIeojxY(_$OF2c#gbc7G`(Zt^MX%R2+MYx%8Gy3R`vwymQzD$ zJPv>qha%LzLjf&Xghrpz0EkmH7vu$~>fe0Y5F8y9DfEVO(mk#}+o&--q!#PNc^k_(#sdQya zrqTk%ro4Z#hW|4rx71AQ_V`5x!OMoq z{(pt$uDU-Dq&|J|Kn3#v05F|*)x~a7^ZXCj>wjX-^u~Si{duVMgI8x=`$!E` zV;?5zigp4FASeGH3?zUplq%z z$5dT%RZMUm>ea^8w}S&#IZ{qp1pyYyKfQugfe*G_Z~Nw&z5QU!hO6Sn?ryu2=@K+eJ`-4F<&{<%(50iUOdLyxgD;HvaJa7>}L zZ-pD{ugbA6chV4G5$PB*Kjsb(cQe&S}l#r_QYNFv=%q0ghG^ zKGFl#+Gp{dEx=2$IMGPZ=Lrj6t55T%L5U~~W=QVYB!f}%;lr6gY(F2W%W?q>Sqv9$ z79wKTHq>^b4fTt-(~3E;`5FiDJxy9UUk<`tw@aKn=! zKFmH%_uhw_o~4W7AQ%EGrNx93ZFz48Q_j0NHnnOhMeb`H2ZegMbS>Af8a?hIe&Z_> znE8ULY;_|iI`9=%-YbG;*vNk6^j{}Hs%$Df`0}Su4ske`zJFAJ6PU1RV&}S$9DIWd za*JzH;9AIh>i*m`Nvjf-m&u80i-{?&{X1!8P20`X?AiR3T~kjK66Cd;Yf>|gjaJ=# zP^Q(j;2hzZyRfhj3@AfQz_k6`EV?0yCj8X34% zILW~MPf(MeZ}v`i=lCZYSZQcz>Vzt3M*&nykW)4c$~GTDu7?$+^yKp@ne zQ2^hrdev$M0}LZ-(Z`RMq$0eOW%-8BrWQ8LVl<6M-szg}u|9Q*e(9vuK~3AzO)0v~ zD$>wp?$~@_B20CqbFNSucNePMzP?QP>LJ?vGJqlkkAzTAUj<*_>N~h&myo6Q1@`Ds z`cYWS!58FdN%lLK&`hp%!f+m{tF zf{6It;2P!8osKUm5b5$;KgZs7d}a}X!cJ31JdV~{swL%lP?L_b4UkkFtAny!hdFI( z){Qb!!Z^s~h6&OUUZ_P+l;fkeN8<7@8Nu_MpqcuVsVJa7(s`buRZf+}eIVI0^$$)s z{KVCiqbQcC0tzkvqMPC&8c7!9pZ6r3pjN*c2>J}tau$2MB=ZmSpuU4HRx*n532ucg zzGZ&JZAAR5fhq}blLpvnGvG8xxp>v6Jb5^%-={5lgmA_z0`OYd6bKSaj?w+?x8G*I zr)<83eoxspSBv9m8EyAji}q*B4ZMqHWa2-%;A5Di!bG@I*5)g4*J^1*ZsnQFiJQ;U zVN(3lb%T@Vng_6vwc_*_Ocrb8L*Ezlr0$s;3f`xh0+60H21g~?D1*=>HK#kW*Revb zPLq|kt6xHM7Jyc* zYaiYe0l-~0*RS7!snPFuYVqZh8$oWW(TmrA`hhh(7Nw-PxI(9*0xg76_s+5`$Z+|JaC_Y0OO_ak4J@iCXIi);D$}LyBfDB9`$>pYLyd`E<3$MpawSM(g=wd2YSq}k7*nB`IeTx^g zF({{uVuLwMjSZ)KUJVY{E$kU_7)0;GdjN0gNHEs{Xin1lRrIOe`ay!3D=MBQ7PVm@ zBbtUd&W;WPgYT0$hf=dsHpir$PE+(d+4$fiC_GsMspJ|MQNZ(XbUYjbs4c$gk(dHr zF22N`y9V(UcpHCNIrlWzN}mhVJ%@*4`BQW}-e~;NAEmmmyJhgPvD|O%;$#yw40#XF&QKTz|-0`f+~8ldI?2wu3nd{ zwg(I4-LSPyHW?l=uI#dq2|5%wGf>G7O?{V?Y?lOXVLCXm}y=QXDd&{L~9&elmBC5DY zP1$0|eQha_(ytACrKhJy9g8U|BMo~WUzM0SrW);jZ@XVm4r_nUvS)&sBjbgMdOW#& zPqm-5{IjrtRN>_>!zV=m8X72@uwrhqGM@v*p@lF{YCZzyAgr~#6b14xeUs^pxY zlHVhrcIRliY>A=JVW|iRdC!)no&_NU^yu0)Ygm zA#z8$XMu2VXegqO%+hdjpvIo3d`6f=%6$a~Lp-VXSANe_IIVWDVrZkt->$M;FV7~HXwJc6V_)mnan~@(+lb2E0?{}4Dr*M~Rdd%2avC&!a zYfR-CJI-=pW|~ivkL0zlrnM|hCmQR4nc(SYK?zk@a>wMBIUp1-7poFRvR8`n*}a?%a;apy8Eyzm9yv#5(~qX)cqZPGR8o@UCq; zxvUwTZvAG$3oo*NKwhen#>E^^uSMrt>9&XFC)a@;Yh2aXHXyT9V#SZF|VtPR)(OFT*E5yEqn64O4zl=Gl5D6q<*en_iP_vA(U zgOcpnEa@{la1VlOI6`^!rlZo5k4V0Z8A7=Ni1iRwBTXgOy!LTgIk1ogu^I~BmEPPb zvl$ztLq7atH@^EL75jK=?b4Rq6T`bgBilgz+Q9 zL%LxcKS~ft47+`(zsg_i$IDWPDY|W!mSaLW8wtv_)}khlDMo7To}3SGw)^zLL3N$- z(@(xHO@{K1q3 zEl}W~vk7l{Y$baXCz|!Qj#i>^9W26{X+rZWi?3W|WVYXNNHG>p<&L^MQFjY)NQEmt zi_oRRR`9PA+CWw(B)g7H8hw6u#Ck>*)gnpN+QW^-v<-Wla9lA2# z##T})+wjVr;X{a3joFR6?3DnIz`YqoJ-PDUo}q`E-`3EeO~Pi@pSf}S_KYRrc9FBJ zgj-_5Jv@f@>Wa@FtOip@%2A;K!G8iaU5Do|N6iw{B#>>88%U3OgO7VVETpNFn`e4d zl|!{s4V`KOoGzkm<3o-ipQ58chJdRuhGYhpiS0$?pXc24~T)=T; z*YA>R1=ryH91~m`gFb)R(0DYC07ebkRufKR0EqbE=HgvQAzsLl`uA16a6joaS2X*s zoUp#J3wciN3->U#+|6RH65A-_6^U7iZ;Ser3Wf+DL)Fr4 z_J`E~u3c)x4TBijF^8$Y%WUNNsBeJzZ7+X%6XdcLse)DAld5{w6RHUfDo-18kE!T) z_|^);6&NP=Bon=n*LOja}H*qY_s+)qQ)o)lin&yf*k&}jT!1^xY zfYw_(IGB#}z#0z;oylZKlXoXL7+B?Z^Zd3If|tZ=PWIWugp01aFJ|}N)NKUYpz|Gv z&o_QTY<`n@PnewI#s_2az-v zQS9tGAl+(5dUStr3Rb!9727kRB#q9}&{GK<*}3yQ-%$P!g{8*%R`_D4i{wTv-PDLV zSlgb;?Tor5O016XdV<$<4Q!CVd2D2#Cifv{!!5!IAjb%q`VBxF4*w9}V~G#UN*|Ny zgm=qh11oO_YHrOtz-vw=E}yG!Y#f$koZ_a!4-{x>!0dw_Q(=c%k2O!G^iS&0hA$lh zWZ|J9*Qt5s3`c6yxXi=gJC7v=V(N5=?hD#_NnebT+Y_uB;TnM9eH*6G53#w!Y@zeA z^s>TcjA`+KTz5R5oLk@Ih7nxhYc2=B3{yUAgdZ}rnpvg-o;|pG3#qCzQj%)G_u5l% z)S;n>JXphP?9PK6uNltg>{Cw6gS z*Hg^(%DjfnxjJjAHf*^9(vReBegi)Zz_5ZwY5Kbp?$#y``oPK-`CBLTdip6a_@m)G{XmKa%RfZ(8|56RkCLZ`~>y z%%&5 z!Q>)%e{fb#lm)ssti|z%AZ$=;V~Eh&kvaU_#MUdVpylt?4EpO^IiLV6T!m;N$S?`$ z@TWBn#&{(xpEIB#5sq;6qXwV9<$*R?RHHknVwyc9SgbuQP) zmt`VfO!{<+ZU8Qq5D=ma{nwQKCNcujG|uMymm~IUGY(1(B)hL|Dp<4a^{Edhsa2kF zJdR?X_!1Q@KE4PPytQOrJQy-r6Df%Nz=`HWeptmBKdb^czC$a^+_U6ZzbPQ|Wj2v? z>2U8utIQF_4|?<{k}?g{EkJjX_n<3vd;$XGv~E@GUnBz1&GqRfS=E|C&PapaN&lgm zyOK!)oV`+9T>NoCE$x0mR8GW?7fyKl@;1C&;Gh&}VzmZY+{hJ6t+pTDuc0!1vc`0~ zTEf|Thxbv><#fHeQ~G;rH*x&;w(~K zwtH)h!Zsc-=b7E@@VtBe^IysA=b&rbAMIa8ascrvotg3AJTd0RI8p9%u;d}us52x` zH%pA=@CQtX94Y9rEUPcicMu4C{1wph3%y)Ua9=VTWi=Ni2Fg|gd}sjiBG!NJ)w@!@ zX(YbVfAEyp(+Qg(5pU<{3vVpWi;`gUFBm*#0l{DLA4jVCL8u52C_H*-Ox3QGk7l%|!V%=6`7m+7f}In>X17bB?EA|pSS&+;DmZkj_q`Im6FxSehb2H8a)pc$;Eeg?%( zp}B<#xXvL`59S5hW$x$y-xW#l_y^fEiQ~1m;^xj}#04t2-Xx)eT@ASaCI^Y^_0(hrY08dk9G2<}jUbZigR00~;X%QkvLPn(l z@Nq0NYvbqRZZZ|pax@JTv!F1oDrtiMQ@JXH15aE%3U;d2Z=WselpCpl;uzxZ_psz? zF&Q;~LD6ZP@E;&_%3ytoj8IF7gUhnFvZ3;bE@ z@$>saqeuPvrox#Zaf@{2eebMxocS~eW*Hbg_oj9uG)eWF+MnBebao7(z23Lj-tjw7 z{Fc_ct-dT?J3k1Pe)`;P0dIsU!WT;bTJ|=hHApuSY@_my6Rc8tjDk!Nt85X zF-9y7Dd-)d7h<*bF9bGsAAl;u>*W6(_wI~Mwqr|71Msv9Y{7{Q{dnwzxFyS}6b~EC z+H5EK#zF?(Se;Xnjh)kk*3&)5-JZLHVIn`^^d64`qd!_e{aC@SqKb-Zprt1HnqZ&H@N6^&<3KbOl{RGlc{RC?=zqYr}PpVDo;g{n9p3^k;EiH;`f#s1MX(hXW$g5w(!E>;0eIXDmI8)GjRr8R5 z{N_+r1NX#<6OO2!5Qe9NI9&)7_{_K4Y4I997EA3 ztnX0b|Ha#TMm4py?ZRvoPyw-Q5UJbk#zGMksS!{tD2ND>(1f5!3xpy~N{E7pBE<$s zmm(zzp?5+AgeXWS0RjmiQbQ7YfB^Ycbi1GDeZF(vG0r>AIO`86kTus_bKd2;uKS)C zPiXpH5Y?g0U>ITX2gP;;om$IVvTFIfz7l9(%Co4u9kFbVoWT8@n%&1NuG|paZKW)V zX(=sI_#7%P@NIUs;xg$=dwX}gI>+X(Pu6A5uRzGD4n7;NW)ZlYQ5ZO-DWobXJzYjq6zwAjxlF#_7Ssqx;* zb4?Wmcz8AjTB65(7_6UrRx8|4LdZNXYr2hIxI z3?oK_R85)-9hW2NY{3i#zHiQ-Js?_VxwbN3kALPSAB<^szvbK(reJrcG)Jq1D@LEu z*?61^CR<&YQj*aQ^vRaD77*TAQ4ka2YYy3cL=ei>TduY~j3eoE$7T85B#Dx!kT}=7 zrOW8n_N4)Sttk(%z*_RXLAP7j2NY8G~fyqipqFE@ql#4Vk#{N8a9u2DzFt#5+G8(C^YWuYyzM zJ1kJBpiw(l(pIPWyp-oFb;y!V_a3hDDrhu>`Xn@xt`y4HTFpBSmDukofm_RFfR*?V zTQsPvh_cnmDntC3-uACow1-b&VbzH6m;z}MKo;6dSs@YTZl4JG#p*fQc?e;-4H zGhkrYMB&)_bYEfE`xhfVsXX}p`3dPC25zT718j%F1;j*zCVAyn21r|ZNzP`ai_>#R zf;vyqK&+2H-FTxL;_O7H;)W3EINd63fm`;^8Kw`nHhc^8KmrvCqmj+4#6t=L<&V@K zZj#zPk#-sR;JlFKZhiLwmkcKb(c{)}v+{*?-}v6rc{4<_t=?}8jck)_lptMh%yMNS zsn~bRJt7Q~q^fbX(5T_%`OkW$XwmIteBu$!)1dU}E{dMHfIVl`1Aj;pYp3C1BgM~h zx{W!VY5#oRgnjYph(ngYn)>hvD(nL4k+-sSiC=Z`mkaUi$JXtEH6^!*p-pz5XJTc@ zmXJXg<`O|u=q5y4+{PwAE-*8)FZAQ)rZwdP>+`G5V+8l{yw$^^H>^Ge5W$IbzMPht z!DwtxwBzFszOioon5dT# zZnecRN=f013mt0y+I!Ps+*%FquLE{8_alD})OxmcAo7MuoMMwieXos7e0= z!?vnf71VD^`_TbQP@0p&16O)rZ zt}E!yP=`z5CzRdVM1Dh)>)KBE?-gXRvq&pVA9TUo#g zJ*vh$>QoyeBO`}-mP*==SJ5m_)&QpSOzn;eWv{`KgRB5gNw5U7XW#)XhKTwti(pw^ zgi>*{j@8+C#t#1expWvlpjMFN)17&RvB_{eYGpb2#yxLRrqWk)7(o8I;ZARS3!=80 z^t?Fa0pAju1jWc}x$2`#$eMno{PaVL$gdsq=<$jC!7**-A&}o(SN8RhdD{$madB~< zh33Px;0!<_St}b5yAxdMM-Mc1adDy2umT+ap}&}5&bj@7fbqvg$*SatUjFw3BtKpJ z`?!Q3Klj@IZwIYjkOacJf3E%f4RZhdgXe$#XOSUe)7@DcW5Uc^rak-plg?|}0OU|i zWm%AdO-&yqf-Zpb00J}Z2R8hXquTE9SI>HJ?HftuwdKgne!v0zxRk4ag$xw~!kx5$ zNf%Z1^gbXGTAbXWk-A|2^BhA!=!n!SB478%ZCZbzKy#AQ^GRd&(1+fSx7!QrXkQ{n z8~&=nh2Azt9}d%%u9`)m>#D;9SV#W8ft~U(3;L545Ve<#MD_>q3JQwuvh^F>MG5kF zB{4f_W?p#(4Jqj1sv8QzEii#(4;7?1CSyAPo6fKICFr*cy{BZh?=Tc;sKVJi=&vPZ zaqA$auhd-=A^P?Xaw|$r#D(6jE+QgQP~lVvYNOf@3G=CL>tt0P#^IY^AZHa_6km-; zVn4mmdAi+NbIYcBQFd#TU-#C{n=$I@ceJaWyZ_{dEeu)=S@|KBw6EXBAIElPg^frT z*SJQzm!b>PCV|hWl1dI`B_f4eYK~XfLT&kxU(G-<)80bT9-eOCG`qn1N+9SZw`Z7|TZ>VqN z>ay1n4r06bSIEjI3ivF`yc%Y2Q=r}Cj7fpx<4bqPg6YG9qmVTE2&Y&Lh)DKaP&gSd zR}8J{G%v84&`HWo3pB{Mb&Z?2)GYTHQUXGXih~1O?gyzwi>sn2k7mpUy?~DW1Ul2> z%j@(Y;O2!+1Si4~!8>ze9`)-?EAY3$YR;@VevvfI0jdD9j_JodEWFtc$Zo&$-5e*x z`VTddJ1U@7R)TWA7L_i&v;sXj zfx@|vx>?j$wG11N()mt?aP8FA5;u-~HLuXU5XOHgS@uDCGbn^j9jM1qZ5-1rK?%q7 zbz(6da2Gh)asm4W(UEJ+acxgSxZa2QxtZVb3a=e@qHO`ZQY^-vpawL#pO_k%ttc)p zfZNkZ1%aF`7S2DMNFvSF(6HXvB?qeH-|O+?1-+uAN0mBj*Ocn&DMDa;V233T=Cn2b zCLp1BZMn%rKtNPc&Tr>_UBPk((H)j{cgLO>tqxDFGgXEv;NF*>+6}l8B zFmo=1A(KbHyJ~}^K^`EaD}O1H6T(_(l`r&>i7xPGQT&4nH&EFkR*&HHKpGE;^0#u{EOi>(WJri0!I$1b`4=vSeA9;%u@^4UI2+c=R4a65veR5 zV27n|jaFMrNN{SuwX2T+BT7w9%_~V! z$6aBURe(5))h#R@&HI-qpJl=awdTD~F$QfrUI0Ss&&j=|3SX~Xzy91>ghUO5ARMQd z>A6TMggzP3y7Re>Fd9|bsw+^RRePGg7p>tI8y+A!>sxkHA9GOcB;*>=n)Q~_OZQ!$ zEoD1=|NM%I_Ux()*{ZoVpYp7s%Q5#s`V|?Z@$|ITdPXj9kLX*!c!d5gdFz7cf`Tw` z6CF|bD<|gL2c(uH=0ju7h74y0f{qan$x-+BEZuur!n~_SR_Lh#Jz8DEgL=MlvF&(} z^!<4h*zPauNo z9*HLHBas?VcLgfwNoyjdf3Lkqk0b2Lcgi4EtEKPMT2|UQ*tg%{)y)w@NddMwN zMr_?)Zr?e-t+^EXZ~=R;zUDN^kMz_J&r9eEp7{_*6<5T(?iJ48WI&7wUUK}V$;~yL zTHc#maR3kz{&1dshGc;ukyh;m(c%?L6?U~~kuSf-yZsm#?+Pw{T^~xDorS5_tq*pFpw^cJRsaK7vlOcEQ4r$pt1b|& zFuiQ)d}ywddh`t0b|Md~ZzVD&jC`n%7g!qdt|_y0iWwR3k0}50>X?3==EC553kt)0 z=6k?xgdfr@T?QkfAVZ5gdoIfv7ZlLX(^c+|-$?FVApHG^Jj(BYym@rvIud0gEK-r^ zxVpC{;&2*^YW=;QutQ(M-gkYm2g0lc z>Uk(#)7aXOIle>nfLyviRl2mVQCPrnbMJZ3(`jrF&=Ex7N))|!RZ0rB)^K~->k2wA z&y#iN{>3uCz%QYZxue3-sbqeAf5 z?5u^Kh@X~$4>*2q5>Hq3cW8)K5 zR}|&KpBia1V@(mqz|acD_b)SyU;zWg?0J?HCbM*&R3lXG>o(Z)K^7>CVy%S9Y<{$H zcS8bVF9G$xihXkcGtXKPQs0cOy!tNul$vxluT}Rr#%f@^t+UfV?EUBi8hM~2AI~rA z7c83RaQ}XVR*1knCK=*tY!5GXvwSX56fGGL53=mKA6IQ-VrJGi8)(h53dk1%44dZ2 z331x_KtLd_dD^-V=YCf)yX0kC`j_80nQ zXJ-iWd)UeT1k_}obLmm9GoOxp`jpQmcmYuViYQxHUT}Ggur4eB#u!tkE}FWv|TaYIVScqVCd2g zWP4mR!|V{-?>2V>EiDMSM!08FYIP-hP7Ue4 z{I$*|UbPgZp?3-WP~9fFdw-2`jCqFUK(`~JjZA9ss9=O|VPF0VO?FB&$UO={XJ$4^ z5qgBTwf5#IoWFw)Nli*NP9t3ug_9~b&-lUxArkn(7Bq11%8yHMUsSQyZe?y$Iqm0X zAc&~HJN7-=&gRC_MOwSLF>}`&KK-J=AAYlTl4uT<{Ts-r4pv`aWykEbG)cg0id|Bnc4Zb6Po8fBhfn^HRHejdU`kf*Pwa2 ze0QOz&Erqopk%h^_ep67_9cfsbp9tpdz7YMBu>yzM_}=5>3CD}mIFKo2zHl%6FF*u z_^TWdgadYU?oy}jNb(R%;rk5(@q>wTzQ}Iq(9cdYz;oFB@rQ*`mkn}D5x^yjh(18> zyAuD+$BCE;QLPDB66MBvz|7X%2IM|~VzI9LpD9qj1w`*QqPttr^~*c2Af+UldRrEw zWCMdjMyF%9T$V(Yw)43a`oNZe+{f9eS2p-&C0u#ozgba0!`4y}f{-M?57rd;P(?KX z2dn@ztP72;F#uu{Dq5NRuK|u8icnirDoEl_Vge8d_5*wfPL->Wy{t}smjx7V zy1w#d;3}_iZ9ze(p6<0MDmBj}Yj|bzGz?DV0;a+t^E;(97X$9&oYDfUj$MuNtQ5hy zD{OB=u)(KHwPCRkBXKDnF6>Y<$7j?R3`cIFT;Z{TR$K?Vjo{C5TU`V#}g9i_WSp@(VnS2O4ISh14umv{R z@XJnCC6ZlPVC#Pv$+bQ&uC3&0TdC%Q{m6@d2uN(9Os$zH^w|{va&!|p-lF2r`n&ot zH)fTByzg=R=MC&U)Bux&YELO_(TwYdU~XUu58sgHK<(l&A&-Iv0_uR`ty(rC=-yKY zH4lIRpj>Dd{uTwkZl&s|d>>s<06)~T`qvQDz#x(1!DrB;HU z*Kcne=K{p;S8{z{(flc{|F-%bzW~Y!Chs7^x7p41D;u>k)APkjK>qate9Y>am}ISr z26Ynfi^E0jEv#k2;PQ#&snYjdJ1zG*z zTCPj5)_1BDK9J#;5ZJ<;T>%Qk7A8L<>I0VIA(UP&nkqDIU}#9`r&n{G_5z4mLn9Pa ztOE*5D{k)0lKU#Bg#^fGXP~r_n$nSc)*%w4!!4Bh^Pn9$B;mB8iMxBuY231@zpZ~s zu^E5~&*Ao#A^?Q@^^k0l)SHaftg4n+v`)V?MXnltup!= zO%f0q8`(KggsoZCYHIoTG~KKD#XP;~9yW*g36IJhT4FeW_|Pkz-F8n3>0ffj1&|{j zBZv;?jx-nk``B`_9V1wE#(-k*(wpOmrl4@Fv$Jy-aFE(u%oxC5)mZ=U+>Kw<&j-{% zEKiQ0cSHDp3+6oi-`w?s3r7dJ3B3&BN@PeaP^$(`alft(fa%jH1+llr# z(LA6qyD-f=o=vXV9m2%#d+7bI`wBvUL1k}!384Ptws?4Q(f_doh#btwLK>qGMdZ}b zK{ekR3j@7BoKUOFAbO}duSiw9^SVM|KNkrGFe!oF05HV5z9`L)a-@@2(t3J&>iTUC zZ!;^dQ_OJw-)-fVEC-Mqd@uz0D>6wztEPB)GXTDK-b$YeP!l zl9bceccJSaAH=M(?0@zTxWJmG<9WM9JSDlPGwe8Lj=Ps~hI6+orCZx)4`=)fO5?iX zBpv~C==$9lKW#IyL~QzUF4gp(spSci`o9Cb{p$_zc>Sdcs+&UGBg9B0otu%M%KJ3q zw}zO$W8sHk01?kc9lC6|i5zqA0uf_VOTBGnmBgx{HF79wUxJ9bLQnq7bDI2n6XXAY z5Pf*h@7@J8&STbfQ}1v)O1-WlJdXU)g#ma(WeuRckY{9!wDylUMG-&%fzBU@7fji| zpI>ZkH>6vh8Zaegl$L^RPgV~CUf|!?qsL*uqH7lByto>T2Th*yA|J$+(vEqwHxLSo z3=G8e;zao3MsYSKCS&b%&23=;H{=iUPB9S2rF(%8;FGnuV{#^fPy z1)jR4j@so`c~17^#a!Mu2{vjMxoI2L`}^l9adr2U#U+pE;MKWq zTO}(q$w88#Qb8X;r@D$@$$ng*$;KD#7{R{rL`HAO|Ks+SOzlwM){0RLm-!6s03sy0 z5~XA}3YT1C)G}v$M&Etb0V;`1;Ul&qFaWUu5IWm_3`W5pm*xr7Y+Q+HOXs4i{wc11 zKkvuUD@9~p$cGI)l#+w50ge`U@F@{Mp{4+o#ta5Sm6VoJ`a%8-9~n?np+@P)X`m?m z!Or(~apuZ`i%oAw7wtU9X$G>k^V-D~&$m1APo=KMHW9g~q4%L)B0?O5fBW{WZEd~O9>{PEkePAAQIDSz32x;3rv*JUa#nqr zSeTNPh}8a)tg>d&W&c}WnTt6MC~feR9|>(R$`nO)0-MRkONZ5tj=Av&3k#8S zKl}=zRSzTsDx8)x6fmQw&`SrXTT<;EL^*AGsl<6>0eQs%n%hb>f}!{lH=X&SPIC-l z@zI4qij%qX33w{9_AM}&&Q}xi$I#(9t3hENE{MlKOpnBJ`TsiAUmI)Zfd<%#bt1~! z{Y%&SRO$pbXmWo9fU^dy6`&{yB=y;cMDZV?pimxMoMZn1!MIiCNa3xMeR7XVc$#+% zTii{=d5ksQV+CAkHbjV5jP_aZW`Z5B^1JKQ`p-!(4sO}~W^Ejf%xz@Yqem-7`;l;N zAgLpc_A3h-srkmpo9*S?7;rkbMjojsmN}tdW0eWC2O(9pZEiK&r^^WN~2+ zb)b{Z!X;MVKymXu8W8A{XI?IutyZ_9A?0$^wEL{ScW0o_&9bhVo3KSHS1-M?82RNp zA3c6%(Q zCpO(TY$!4Eb}cl}UXs{RBy+;zv&(OHfnKrjYTvtV7xPnTmQLlIo%;lqq!G)98QvWI z{TC~S_3)Hh|62HALHF9m9b|z1Dz=sl0a}3sd0SiXz-+v&2b?L$p(<>y)lq4W^m-}^ zQogi+&V(-#UgH*8Qa%eC-vbZ-gB|LG5^rkQpumbz#Rk=O&F^@3iT-Y3p3=~YVf-%W zu<5e!Ej`e%NkQ4NG>2Spe}&)*_lP1+v?bKqq+3l;0ahJXE%r6k-irJ^mOccvn0K@} zG!*-L=y=4&T!a85u^PyyhA;H!M65RbR!eAWO>+a&;TSn$qYmxhfLx9JLRde5EBsE= z7YN}kKx~r*PSeFIJPKo<#2nvPIzsc7))vJoy+Uk2R!qxb=Rl`xZMTZgivKd0xZM!Y zm`^@rg%DJBt5;a(YRvgIAy2Zz$fB9$zymRMK{DNtXEfF6%Yt2c-yAHW`J(!V6wS`ESwcodtnj&yfB)Me%HL2-$7cvFG*1TrXuSjE{1z?`0# z(-B#Ko9U#agFmt}o6M6jNhIN$wI#;vIo8AgD#XDj$maK76b~Oiz;&daCZbyO_6uCX zylAsq8;f|?@bWK{kbz#?`B4vV0Q+XxXDVbD|IzwMT)ijW`kBLTZ+T6`sy0tQ$Rd=U ztN7Z&Q(>ngW|1a`uPMPrwqE8%8$ywY+vq>~)PP<;V#mb|s1 z1wcyNs6-95oLU_`W3iH}NV~D-JbuL5S!`=?8GquQuTwBetG4qp8oU+hNVBa1t&cz( z&g9c;PivgUM%Tjnf1OOhO=^x$1FwUAGI*g$##&m+t=XRF2XSz;*+bZy=a%R@ILrTg z1wx=J6JR?}8)RKNz|js7u{|eHtnjD=?(6?Plxk1GSd}|rP%fP9lKnk+{G6>O5&K9H zQ^^_%=`Vyb+vzC}Gf>4{eJDk`^h)hmIm1IR9j zS>hneSmH7qGxr9BUv19!?%0c`-4!qZo_Y1sDbALf<+YN#O-wC}Ss71jg~L##-QJzC z;8V8#6kqpI$D_zw7d4^na0ZtuU#ez$vk0Gxh~k zPN95H#RjhdYtrw_b|6^C21RazOs^-K)+PQXis?A{ijm(<4(g4YYyXK|U0`x>kpMX6 z907i2Ma%_*4x#o18*8t;9lF8O5gAQzvEQ`vZ&34_1km6*S+QrB7x!te`)e-6^uslH z{>oe+K8Q2!FzF~is%UM44x|3))XT#o=>B*33XF|H0|K?BG$At|-eKHq`JaeLx%yfo zaMlae?TTX5##+Ec)Pg9#l$%+5tB717#$<(b^^`+siQ{+lD4Vx6IVrQ|!}ZoXa|IH& zO#3n6w=bbmR3Yo=rlkjRto+${JM#v9Fza%$fi=ALf`H7O_n40`2H+3Nn6LJr5JlHy znh7_rTJZJihY6U5y*#1(P# z@NAj&w#db~cbbj~%^0M{XSv0pH;Gq0Tt243+P5Yjw%3&^NCqd}3WGrvAlt9YBNt+B zI-5=SpEz0CUh(1_!YwBr9zB~jkeI&S{=60Ho`GuLoj*oA+iuipK4I%GG-DSXiTwgD zmOzO+rAAMnd`TzFehvUouyMaR_~4eRe8MRocv=aDM?=w2QzbizfCkIhHry^0sr-%# zHjgY31<%l9lO0k&os-di504Wt3-qWrO)Wnws_F`Lh+*$TU-Rwv$_c*>zZtm*(JZ7H z3{PB)R_ZX{ZhdKrwahD*krcu+t4it6Nlhl|_5#JhgwUIpb;zKs0m_rPlOBG#+@3O(Lc@kp^?uxjN9>2(_K&n2E3o!GsX3A}L-x9X!D5c#q?UJf*QGer zAQP);Cku_w?I9z`l{prPY;)&H*+b{HGHR~b{ls8BYkn?)ZyHrt(>9D?xy=OXp<-R* z^qH|p63S>O@Q=4QOj^r3npXK#EA~9NgbFGk1$;GaeK((iy_T4i8;F?~~3NYF=5tb4b))vX{mwqLZva&+YZ>J<+uyhFpBk~MB4HU568>^!tun21^^f;V}6 zdoNB>yxnbJ-KKJG5Rqp)UZM?^c@Tx9iXT zxtVsrUUloSc(`eaS#zB!UE#T0x-qd$1>&WmNQ9 zL&GF`?|YVNz8^T>&4<`1QTjXR-VKvgMcxj3oPjy9hQc{+Y?CLnBC-5kO0#tyt>1h0 zt+#$YO1cBSM@Q+i$$HCP#dl+!*TF4gJ7=q|`h@O9(aOgb^c;*!%t)`!UL5p4Kf~~D zh#Qj|xasBhF6C900y4-?(%ZnSyx43ox2xbs3qhWbc6xu49dpplH>Mp@9{|p@rgxIf zv1RLMV?qye9BxIRMRm9|<)Bk~_hh?uUgM|tDu6tLIXL=_bMjlaJ~AUii24$P;b&=%Txt(oe7Y*Hu0OI?SKCp~Uz+0o5SZ&V zv$%>nn(vWKhA3FO{DS5iYmXD_CFkQvbNdQ=>#VIqtn++45_3-bOqo-@@u#I_oNC?Z zeq+Usm@igk23fnN%b7v?U`JjwvTZep$zwqCq`H&GHUoWXf-n-B^g*w>qFb5?zDKiv zT3)eiK;V{#)XlzRMDQ6Rnm_dZ0kXN*JP4J*hJ?&jsr%1!tNP=Tl2CJQ5(Gmspz>o+ zm!39NtQ)NLFC20}K}|%_G&B5z4(N#i8+Xq^u2vlAwu63ktTPfLfp)dSCqs~_7VNTO z(X9!!E9Mlw+Q4Yre%ljr4;3n@TGre?;pZH`n*TYpHx2#V{l%)>ycVo zc+Hd5aEzy7hwpek25^wu<>lqn9#PTI?e>x3_XKHnI3{y$rC+`JqM5RC$%Pp}=a+|> zyY4TQ>=x9U%PE(Lyc0O{fefg8QawamxXH2)fXKY^Rg~PzcS_XHCUC~Vsw@wfDE6KD zx;{#L=c=WJ1{CD4Rz(}oNP_rENL@GrqJA(m{L>y@zuaTM!Zpx+Kh?ap!H3v<#{se} z8?+Y)o;X6mgu4Nz>@vy%)k zJ=n!~!F{50L* z;}|lVE>12lbDag)oly-8E+Bo~E#1=6^3`}T!g^F}I2Rnu7wfHD)M*58Jl?5T*5s2* z^l7FjTj!^D0Mv#j_G4PSe(7D8n6hLcM-E@1noqe8_m}`ccGEb%QVx&CQ zlX*<{r2yaP^Jz5u>yF-0r!TAUu}wP$c8J_VKBsXUyS3It9tnv$GZ1q5*F;RGbK&d( z#Szk*^?n+_?b!mBvYN895Dzl`p_7SjATap`go_k*0c9EP7eww~OyISpFQ5gp2qk5n zpHL880EMCZ(a33+S6v9=g0k)J&e#tVrh%?m0KbF&qbF1j{hnS>)DqJcI`#+0B1_)V ze!Y;hp;Rf?OMY1N6xG5wBA}Zk{|1 z)u)93zMyC?7;RDR>C5hP_pjxtpUvQiDMo?+8H)gb@LN2rSsfYiy#%I-4%BRO<>2nD zkATR{=0~N?B36h4I>wwB0ZWcHBob(j-tZUswIS_+>|9 z?`j3SP4P~tC$Vv;;d5c%CZLCPzO70hF;*kx=~8F%OFoWZr+}WQIL(5UX2hg_0i2k; zRjxHCcjJWdO^?dP8Wk-7Ct9s!iXzWD*|WmI#9#St*CD|Azw=s8ula3Ops>=1zTWMW z?z)mJv_YOOjSDfM6`$eP(%mdwFwP1S#Dnat)13W3RtO1PiC0pBt3sx48*5MKTs6;b364dolBrfa#X2E#MGZTCO5i&|&_YzcA?w zBLF+qRKqEEe^dY(1sJm7FD>Tfdr3($oYZ=*NHQrbY(&Tt&>*PihVvRh?ve)?j}+%? zS=3C3y-CR0m`pifN|NVEg>_}`KSR|a;rGr1J|0%uiFHS-D7eYX2bF-;TN_$&K3fe?ZLqitP!MT*K3!=1L(++c<6p>Ax*fuI#)FCP%&f_1HdgS{+2%iL#8a?u5E ziBb}|ZAT@55#;uXcrLG$oEpI55b4b|cuXs(M&1r|65Y}1zXF7R!#OAn_cGIPu zaa%8trmfXkWwZ=E|G<;#hSkPf9t8l$SSkAJnE|>};XkDKE4o~vc{mVGE@~pPOqx1< zrYw0~0p|0YjxhH;qA-*H1y1rq3H6`UG-#AR4^prJIF!}Nr(8isK}hLEH1jjjyi>C+ zS%8O!PbL&Ra$ygI%|7$*Z*O{U)lSHBSOyA=vHC1dztwxj|Cg8@$Qpl8z(*1|`P(C$ z;aotH-j;j}x6+^=IJQEk%K!6VT(S`+$>oo=6OlM+ppkW)A2Jc7UFBEmi15zrxGBwm zl>J(Rz@!ZWzRzxK78|kmSg*Y9SCi@9PSw?66D`*@WsiUAEr6#7sMN#3%Y#!WASl%Y z=;fHEf3cBvo`BRon=7>k`rIi|d?t2PzW&9q0lCvCSE*zTbkSN)*X@S|6WduFT*$et zWa=+a85letw^kEdHIGJdX6UaLz?_v6BR}TL`d_yh^||o>xYFTY_vZNzQuP1MqUL(5 zE{}8h4@kes%1W6{*m{U|wH{D3ED8FqLJaWU_(bYVvGTc}*wf=WB54~3p=ATuHDW^Uu-_{R&({`B%X{65j*>? z8eYHo#POy^=8Uk^9;EtOMMyqx?A7)cQsn_!)jfBQOnil!e3XBeS7Ad$7N zm#V8}H}N?Wg;FmLq@Bz6Gb&wrm)$6F^@)?F9$NU63Nu?gb)7dhJ)gqgv08z^#z>20 zC=#7e^W?i!G9|oo%`Wb?X6DM)QsaJy59iQxAS0^^fOA}ami!c!&OvxOXH&77mj*i$ z^yoVYW(QY}y{Ks>m@UK1R9$P6%n(B+6Zq-#saltfNikiIv!(+3f#YzUC9x=CQ=FFIZu zOXbQ}_G+7Q6S-0ws?W-A&sTr@MtR}(^tsV1vQ%b+#v{gK!oqg5A z_J*I}Vc_UVZ7AZ;vuO^?1Kvg;Vb?@&$wP#v2}1*ZSCmdDQ&V(19Q-ij8kr(99cTRo zzaF!iWDX^gqk12Hdk0HjGgDDwk*Ytns0hYH3}!F7S+C}!SV5)1wfj!79(N9zsY(a0 z-1fI_ru)cBjO_nFeUKA*+%O{--xqIZKgYS_@c7I|i!DQvx!5TZIX7z-%j#pkDjJ7b zEG14lmPa|j?Ds$z&-R|&q=~(olYSNzAl{DcUyNU>^fj+@6v^Hr7MESTy2iM!>eoki zT--fDwKu+rdSF9Cm9-c_Q7r)qRa;-L-GbTdObE|jj_B-b%%|AIkz=IUQ8MO~o_US* z^@SEM#!Tl!{$Ve3Cn?jWm`iez;!6I_Eyu%cJ+xyOUjrh{Mqp9aOi-h>`x`|3r0#)D zh4q`Wqsb9g6;mmMuK~dBZz8B7<9n$M3-IxfbRV0=zA?EHcT{CaKAAoiaF<{;7)g8VdO;g|7owrtQJEcG1O$#rxJQRZ-(A-z~y6dj}P{C){o+l3*=v9&A&gm*&g*r!g z*Rc>8#l1SWQzbEo57Di~zGGDI!|#-_+2^-ZC^e(A%5PH}qQ*y`YPB53M9DURL)!AqyHk6d&ZiMioLg8t zWOYE**4>0;GPTqdC`n1mHFj=|YI+4NW!iR zT(YffxD=-tuQd{DEp{A|IN!Gr1biFn>E&< z34KCUeQSv{_5gGcfA}C?ZEVTE-gVImSVA@nAFmUiLepM{t=z2Dik-=_l8Jq~&!i#j zW^KKn-a63d!m*{xM{fwzh*&(*n)Efjj%zlz)(UR`U*CgnXzRDPA2aiM!_u<4W>D>t zSAlS&rRGk?cA9-LbJ|{20+;8f%C%`noMVv>p(LFsN74@A7h7V+!ZOBS>7xU_FY4y= zXT0MquF=jbKD=ACPqK1iYId5xsjN#gzRN)123er~hK9mt&$KwKmiX?`m~iO#DMYY%z^CK$}Ue?TddpW9{gYLr|Kbb}Hx9MwewnLQ!byIfC{h_`w=n{YoueU+V zHcgP619225z%=+cj0)3g>u;^UFx}8@dh2UY{dNhjAF_}YbUn#Tr_%*F#Zw|G)T@Jx zs*jDJtq*p5D}cfpyvN3;+FQ^3IAzcadvTSJczY zLN*RWcW#?aSlbUfz3DU?6P#LTK7?Ahlm$4M>W+XqmY_rIp3agNhsgG^*Tp3g`x^_E z12x=`m?|8`-=3>TXf^0 zc{J5`4L z(dzo(r5|DVa^zp_c&6KjSj}Ub558KqCLi9nSDZ!IZG$;Ti$5ec5|}z8>yR+|&_f@&`e@*O{g(@4!8b_eftt4JFul+kohInsFW7IBR+gtB&-@nF$wc|Ph zjX`X@|2q^z7jW)%71yM(%R~BkUu%YgyJ=7R3sH9{i~3tF=BcZmW~}+csFfWT z@aTa}SL0J)c$@Hwqabm~@am~%nJka5*F?^r{VHTi3-LWKnd#HE;I}CKTq8q~)@TDg zy*Xhi_bkdm%j}d&2V}6Rqqpliv9DaJRC!J?y8gIjv;V-7WB4Ymrt-Q&TPh*nDQ`C1 z`>ogG1Z5#9Y?MptI`qqZ2i>z)>{TK2=7UqgDfX$!cSVp9S*R0lRJ|)wJ-oA93%$k@ z+(m{Pk9=9UM9}H4ruo~^?oM=S<+mh1Mg95emg;Ym#Uruyj%mo4F?z?>eVysLO3J!) zHxXbDkNm!8HYfho2D7;ubErVA*W_RTa?@k9LX%sIo;^Y(Mos+(k?Cc>) zFuhH*=y?A3gef`DeB!e?m4nBF!0(Svff{I;!-aF5-i)QL-VA4x|D{6rDRWmF;b7N(ysA6{W&@zq{(A0-vWa(Z_6KxpDjj=AS=UQ@9J2xo4fw6Po2xm^8?Sdv?mpx zyyIKhT=NIRo^Ffx#|!!|&~jTMrYs#{O4}2{FHMlRX%A_f$JmQN0`yf18854E zkDRcn^f0b6%FQO5sLC%VEsX}}D1H z`#NgvQk8tSgYGOePV-B@20`_b9FifR8fasYqjW@c8dVUnM8xKAw;w`zPCAX8n|n)0CvK0UEN9N&l+N6NzFbRChdYT z2L>N^e|gTUxyMk`P(VhfNyx7i`U3T?v=y3LFzgi!J;JOXJjM6cmGN*r5sC_Km*{ z#;3w-W#JE2?-CQm6Z&%GTPv=fWcf`YWl5>G*274Y`>*$UTz@Zr+leEZ^FiSVBf9Od zt9U`(wY)?O=KNH{pz*f$36Ug~8@%o-6Ut88M+`HI0mog0X;n zdra`+6ByFP=0?!Csq}n{yHAdqNLt6NpF2^)IK{NT_>622%QAWPOGazT-8j5yH=G0^ zIh3e}IA54m9W(ft1f-YMxj}L@LBw*Wyw&hh)v;LuntPU0YtwbyrJ03eJO*tcdMu%+ zg=QtQGD?8fl%PXR^kguVVzA<UF%zpBLDvwo-E3Glh0^^SMJ zPxpG1je0&a_3-KFPSoYJ%(HHGD=_P7t~)WppA<$zjW%IxrGvRW9X)S47Km6u^T`Ua z42<<$RWi8lySHkEHUfB^qi=uWsastES-6EAC;ZPoT;R;pV^#(?lv=;^K84+lG((OY zmb2~8KJLGepjEZ?GLo^6lX1SgSV6yYw}Zq|MxRjEY$b@G2CA0bpLG6Cvv>AYi7d~Kd>_O04@s+%CWG*F z*A3IDi9QuGzlg)%H3`X1ao$SO=40OaK1E-4w7!9n+12swpfSHoNeIKD|Bt-)j%sr2 z-bLNIm8~dlbpz65TTlrgBArmIARt8`p%Vomv=CY-2@o5wRf>foU6h(a?*tGKkQQnZ zAS8eY0YV79g>r-Lubl7x&K={7d+r_QjI;hp2ua>|%~dkjGv|Ds#S-Nx%Gkw92xf+x ze@DB1Ixrbl<$0H!lxw*mM65YA9)c-&;?BYL=&E(Wkc`wyRD~YUG=Z+4wlF6!#6;wxIurDa zgeEnQt0B*M8bylaH8kC_0s){ZX-UUcpi=PUHE4t(I_*N+Mg&_6Gt(3v6KJi{fwxfa zx^BO76?g4@N+K=^5gEYw;3>5EkpIoq6k;W635J_&2(Mv3ZzZA# zSE{Se4RTJKgT%pKff>YM-oucj82MPY@vk1cCZYakOl-ebPgZapspn*ei)$rk^=c$6 z9gAz?f5|O>jzay0S5NPNqcMy4oekhDhdD8B#jM$@JyCo0qipG}F@k;{zEzv!0*>(F zN)laq79aDl4YAujjH`?nU5r}z0Dv7OelIpNb9s2DIL=X=^w-0(S^1RskeiOynf|KHoF;dgR{IrEqTL{UkLY!Zh5O)&40)4nT+!gV&$G70a5#milUSVL2YPne#^3$>*)YIK3twp!WYIjLHo+q(L&2yN(`Vk@SCl2Esj;gofT zFO7PYIkc1kjDpsiHpWhzaV@&$G{8wx)S}gCHJD}{EFf+H{39&nO+vwPEOl()XvM{l zCTsNbVp?Dih#MwV!<0rVU@up6g-h~6UcOK!l z-}qcfcf$YWr8TGl8&}HmJNLz-QugD;{1jC4Z!%N&9Fg$g=4#7L(io>sx}_3+00vZ& z4U#2ok(sOJm&|rw`$Usc(q}#~v@w^;37%0!CIs>1imLhG-Y0Qve}?={?8S*IFz{sw z-ApFY^{|gvu1^?qL!=>{7V{PQEhkHB6kqq~HWQ^ZxG`&aI^o)FUaMg4@#yzYpwXd& z)A9{zeVY?4ihcvou|gEkOZGwt7bt`-7*D85Q8c`6CcI%MHVW^iybCsNO2j2+hq*iv z3wn*<-&(xNZ&gvXkTL1B&S2kL-JS@R&7%J?>&2Zv`|ck72|2P67Xu2l6vA&Q?M8EQ zO*0SJeZIPxSPWVUe+Wo8Ws{omcIFWb_0TMP=W8;u(U|{sRkcBPMe)j(NGrzbZ3a%4 zt`5z%R6f@8P7&Ii^Zg!IvD~jkVtI1?ZN5<6Taoa~QsaL-{rI)^9pXV>WgFkGm-E_* zV-CqAc9A?=1uD};ve1Xwrv_?SLW~5*an9k zNoKN&0d*Ly>4ewC{SN$kJoy_UAsIK@(nYSVN}t=Fg@~^u5`{i8 zu;FfyM&}6$69XDW4U|AfaW{^bpw7#%T)yFQ7hQnGwR>>%RU0F<7NqC27l>VY@KP!J znbY+2xG*z(fv%uA{vi&}8+5>LlXF2%h@!>JyzfKp}1=n z*uY=Pn-{SYbR0y+$;SkDU1hf%`^AOm&)L>(OCa|Ir|x6y;PS`Q>I2MnJyR?7%|imAWl?HveWKV#6)bZui~>Nf%HhZz(iR zc-fQXfI%(iToZQ&(=l%_6)qJ(D!_7FHDpWuSmc{VZjH_jG0ov@^vN4qSN-QaHP(`q z%l5$IL&@|V6#vh3SZ)I4w;aHkEfZ4oq2~D#moF!j%|JuHPe4xb{m4uBQ2wKut@|th z9GvaIt;qjyJXs~HiqvAZGaPSKegBARvAby3EFsbd+go*Mje_x#?u=4bnVL2>%8FZutY{`7zL)z1G{ zGftO2{@<%M{4(uA!hrS)LDiJp$kOb+$mX|cZi(fIJ-hq<^?;;PaKty|Aa*NVbl>mC zcWb%-pW=@C4=UTgjmD(oB_?TNprDg9xhUaHx&0C3e!wKka>-02iO_wU&yhiYTqLLaz(Mb5u?4N^3f_lfNCRv9iwxKF$3|5qNtKB#$2|U#6Y|ku@x0rYhJFP ztE>CO#U-WuLK|Ig!mnib1X8tprOXMWJ?8*9$1DM5I})q#fHyVcs(Yq2oq)8B5w}X&a!pLF3VDh> zkT;^$Q#GE-bx^LOZ~wr5E`0D#H6z^DtGqGPeOXaCJo~_k$(Wg>&(m^yw4br-@SM7) z4D7`l99eT>>-+`9*~4|(T3)81tE$S@#Rjjg5fTa~GBS}}L#7{PcFMpLl1)iW{mM)L zp(CM8dcn!>Ys0g9{J<8A(ICF6i=rLc;nF<~>FjGz){aa`t{%yY`pK~LRSMS2i0a1W z)hl$P3s!V}Yqj_uEFNN*;jMcXJYHOR8f z>kOyH)+BbV#OdAImvWlrgnEM=Uo73)n6QrFsKJd8o(bu^!X* zuh#iD#b)yjR)T>{iHy#j{ifCY#Na?9?)ZPW^kW6=^XkXNP!%8cXqa>$KYPI#%B+|; z+C>9V>NNqkp7#5;^K-G@FdSJl*Sj(%P&a^97_YyS=D8Z!VBK|}<=!3#Vy`*~M{U=J8WBG0&PMI+7j8;$y$armHGZLmqh(T_)9`HB^#?0bokZNC~%%J}8YDCJZL?x+rIFQ+?61IOQfw^yI6tc!Yk+8jyNam6Puq)mWEzDrH+=&Mmq@H5bw^pR z+vZ|=>tskkj`CnJen&z(GxyV^BSW0nfKx$_z}$b+x>7;i&@uD>Om&YKNJ@63sBv)c z!w(ELBZ)gTj4RNGkxM(%(^qKaO#Nr4#(Ov3trhA1x$oPN_?bXI%1bPVb zQRZrhz5X4`td}ViQlNu1*(b}B@_EeTDQjhb;L1Q0UOT`nnGqhq19-zPvRLvT4Gvmy zY>$SQ$KE}C%4Fg^F+p0=gnp2YvnY#`LL;I8lfP;ej4hmIC2u?Uca4ar6?g7f4@s;p z@HF#As!{I7x4&6kEaxZr^{@m~1<W?sa2kZ zg0QQ^_YSmmFxJ&nM<@0p0VTa0S#C$UqY1=kMQL)gb@rY9>*t;tHM`bOub)vk7on1v z@m7S@wO~@u+xujEtk5Dl8=k7L7i-ERBxtOz8J+MnbV~WHokxYAD1F=>j^BlBh zk@4~AU=0yvu0OqY*RqvP@FT#`$$n*Tc4?kpPak&i*Nx5BRV8{ctnN;VI$(n{blqwk ze6l~8G`T}VF57GjH48J|C$AzokNq`|>wT)Zb3yKY7s z*~dqEq7-Bfh&WO%0`VobRJr&KLGgXfa|^0WILA@tuPe1c(brWB*1eTzF5ZwoETU7= zZ>jZG9!M!@vo!KaUiBnuOilgj@~lq0PE2&7aOj~iZ#3<6emnJB#05v!SABM1TIn4L z>=J0|po+|RrP@*oMKzW~po~cl8#spvAoHnaFDp%bOL3r#QW|66L5^d3XXpmeKzv|? zCl?Som*iDM!J>S^@KwnqBJUrA?Tp+}xel5G&_DHIw)`OLUT-JN}k7L}xAG;A4lStdgL(y!z8Awy`^jcsb-(YTizPSa20?m9 zDIlE#LKY92wDyf%m#-4Bu6OEi-Ydbps3RaTge;K3QWsEzJvfWVIM&xdli(pC>x-#&A&*CKX(81< zA%+|`Y;hFD&V!@cQcY%Ft85LFM#N2Y`Z)n9S#3Z@mRjzxW&UVb*^~J#p8k_&7Qi5_ zEd?jwQKuJv=&DEhAFv%q9c8@cD2k;i7(Zr7POyN*pVbv*68na!Q$bE2qiC2>d%tNR zO((|O3shdZ0qC&VeAu(0wdG;E2+!U#l$h==?hu=cPj1_uqgtpX2@Z z5+t0XcJ$Q|dX`h=lfg1=G&eI8LN|fAa7IqLgu5zkJ_IMNE?{?Gf~a<+hd?fm4EyW- zCLS49!ZjI6!YP#&Fz#C4aS)X~qsINUFT9;sSuM`6ILB;)?efhP*T_}P`{ltC4ps+F z&>3H<+0W8Mbg1J~zYyzAd22aWLL1M*OBW##M*^P>cli=Nml(ER!zqOnM8UX~PLJt( z36fkl^id2KqBmBXAx;h4fFCu(s=1n8M<&ELMibTSj@Pk@fA2X%8Aw}iG=aZ9lHAgJ zy~&N`$`F^&NY2qCD*34~)s9=nKaZAzrY;@N2aZ}n#mUDC4u<90d0Mg&BD28tEUQSN zq?kF-)8=cPmaVL9^C#ai4FYO;N8yn~0T0FEG-I({`@i-xd8Z zJ~jg2cp$sba&Dl~kQ%ElA#?9d8%}I%gUD2eTH4r6p{fomdid<9-pLJlK#2+R zrb*^1ZO)cmzx#gXkn4-6($jf2U)k~xd^DU0BzZ|~+?0*4dT3i+Z-`yE>SJF5N5wYe z>LD~6Lw*2`jg zjaPo9&+Y0V=4I8@O)(lYL`Aqpdei5v7tGg_s_$^1ywY$CWsP=rXYdG#9n7lFYm^7M zYgJ9nC+>N_3qQRdF(H{u>(6V6X4L!qQ26Qd6ExY-RPU&!w>Ov#{wXoR@3yBa9eA{U z<4G4f)sSzRe>j|==$0YlL5Tt%m^jUtZ4AsAdMMj4bLQ>EAX9vEga$vtI`gf;n1?U6 zj+xwe27V*vgjbc)T!}*NgQ&g`VxYShF@Knwt3q>mb)Pu?)>FA&k+>xc4S88?=j6|> z6I?bEjDPkLsO?aJ1u>OWM5{`)nq6-WAE5`t28}%cWEXv4))VR4mKkCiXJ9684?YVRMMFCOR)a_YN}{p~f`uyvYZd7ie%!?B9(s|`%GKrhMh6t1O4WB&FNAJI;R zNZZ+$-YXPS7Yz~BxVTl}2wj)UaY0qM_BXUEIYenM0q!YQBb*Zz_4SU29w2R+H!>~a zOBWQ7H>PjzM$fy9z3eEWCbtF(P3x)LNxWvs&DWo+oO`Qx#?#Iy7BG|fi5`&MDQ-Iwrn^qs^XBj8%q&*qY$t;hhbjjL2*m&v^IX`k`GNim zRaLOV{Vf0p|4=zV+q}+euDD;J+BIbKw8lZHV$&FegTC_6m`C&}{3gpV-Bb2Ze71H9 zcEq;WM+vb2XfsVlj|^-JXX`)YPQpKb`8#)#eC%PXnPiDcqNYCPn3;u=YFB))PU2Nr zQND{ty#7+w=rl6|(K6&5fnLut>7k8bdP3zt-mHH1k zUh7iqPFrAbcntq5_3=`MwKKtM!s{;1ML3zLFo)r;7dh^Y2vAW1oMR+s3d z;~$I~M$JAige;`0a7(l9n}UI`al|qAB0@p&SJm=GybR14R>Pvr`=p5@1?l4@_>nN8 z7e(`e%zTwD@rds!^`StPop^R+G5curDW-Q+=KMoOG9EDKGA<1jwrIF9)^OSuz4}~< z#!P+dS5+9}-*!YlO58}7eTXowk}ldh9|GGpFC920vk5FGM8x%<1aA5IOtO&`@&$no^?lmR!T}gPA`4(k$ zGpD<~(rR+p`i948e)*$|H=Fo~q+l{V??@MthSgACF3$X^<*~w8cNQ2xw&E) zAZY7Xhsc$BPGC$d%jV0L>p5;E{4xhy!cEv3@uhRW03(4kL8wR69f* zy5OBwX}e{mJn+KI8G5;WgHML|TeK>*j5_`r5Pt}ZY#b;0K_v2vw^0o+TY*7;!J8nX z3Vlb+9&X|3`Zs(L@h%m8%ZgJGb87vTN3%iiyVBk;37N6)Q*IfFT6ZOUtZvqrF*GDd zy=8*K_wq~KGDH3Eo+2D9o7)eq34`1TeVW=cZKq5iZd$(BT0zEdS5hs5Z}!*rWdt$S zi?ajsH5_U%;BqyE!JPn>XxA|rcBdy1+ooCvGqipr8m9+Y5%9fV*5}t_yPu)Ts2h6- z<%E>xa!YPMT$!(y=DX}Ugm~s74ZhFxE{kQAFv5_~ZK;~TU&txms~SWHUq~HMQ(%}~ z0y9JX8Rt3LYx~f=`JBiBIh9G5h$DCEUV3^tJxZ}~_#^-=aX&BVkVFlJT@BK$%+#~Y zKS=h<>d-QChWOy*gc}(yX%z#u*sy1H-0jUn83VWvzI5}0pJgbEho2aJ0hvtV!?+sh zatq-H-a z8M)9H5#feUq@IwMMwCr#aXwrvioC~f?FbXB&hT3!&8Vl8RSyr^6{t~IGb&ppBq%NA zThO5)GyKqLJRMadex$@*ex7!+qN~};Q*=vunH+7&U8dde3yRj_*Mgn@NkYc;q;@X0 zqC|5NOWi0aJ^iJ=+&u|{q%@l!e6iMpQWI7a41?ZU(CVd`Us+!Ccz~j&G_0DEL;-2FxK~_-V1~0XO0n+2 zpMj~8DL8we1h{fq!Kno%oL7LYDoiUmWoU4dLI7H>$LD@a8VV7hb>#q8@sV;vx7HF+ zwM{8`d@N%~5Sa6n>bE)`72xo>j7&m9xV=iw`|`RDF|atqsD@yO?IV%72s!T}PT>etGvj>#TIv?JB406V#Y3jv+g zeRS=?oXkSNBh$Y9ij5k+X`wCdEV@T@V{EA^O_|S4ixeU_&b{2}uRj;kFZPxu?eFu1 z^fMY->H9xKm-vn)eGQ0wW>BF|s-UG>QEECOo30ZJAs6tFst4a?dWC^4YFU-PD0!#7 z(vU(ftJL(}}d@{*s-)?Rp*cVqpGe_7l$t6^%WjSJa_>*IS%A6DKsd1ytA7 zYqrb(+=HPW^PRwL{xCE5V%=$b@s&ND&wsZ6S)ys&;oSEo;!xneeF_7*w{MvJyukmC z(S`qKak#yH{vXh{sQ)0!yzx7P|@J{$YOs=`Nu0vzk1Omu z^c!=B0s!&c`XJo-U;bOflvK4VhMOIp73G}&`@Z%*`rvWF!d)JRQcTzX?K}UQh~}Zh zn%Fi2J(FIXUK2|J!Mr9hSf$S-2u&TIiBqF|sl2jRfY#0ac{1Jm;>RJa$5YSs4ZKLy zbgKmuY_g5tm7nZ}_hY5qaLrD5<6v~9mR6vCEPNQFnj}lXC*_-uiEt}Z^7tT|5XH?6 z5yi~`)Zm-*;^e7ZG{+iVhsJW~I5IU2$;)%~Umdu5^|`QFb=AE)feFH>4I2=9Ve)`8 z^X{{q1uYLyryzW~0yusvc(dsg60;DG~Hf&$px@~PZ zySiF!jaFYZ)mS&QPj^Sh_0P_yuDuWga=G)l-RT}NNK|O$ZtL83y{q^osiVn6*S1)| zuvFDRts>hF6fNC7d}$^_sLRdY;E4&X)JUGpKOee*sm;B~`4Q6+d&i}|zb`E__;K=% z5dGeAY1x{;J(;~5y5rs9Ut=ydu%zF)F@HExohc!c<{PS=s-D4ukEHi@Y4w*vMsnDZ zOXOFKFX2f14tRT9kdygv*EBjr${MmD(6l&BOv{;nH^O|oWY=qSDa2N7Gu_p17}F+O zo5{A_)IzXM!<+cFMz-sER~$lSYi6`I)qkYo?)7HhUzyvZxi=g~Qgb%)Cvv_$15DVC zc50^lj^hi^ID-qrAVyGHq$xS;<f$IifRr5VC&e~OGw};oj%2^5)9pT7o0!h8 zU4IdRU$388SWE3*yOre23dP3w-w&XR`*)Cn)9li#d(j#2sH0uXyXa%!>3{v~9ld%= zK|<}XAxL&nU}YQOg8CWeKzp{^+@e*eVL&^Hn?G-@WKQDLSk~H3v;}_v_cYp{2}0Bs z?^y7|-7UR6bxPxCak&d~75NT|3&15%nH;jaO-;rpUe=WMLK`%qYBNvl*2YLePT^eDcx)i`8i=hjC38$ICoKMz!qQ?P5$We44=V9ak}rR!Nzc;TwXhfC z?6`K8I#lA-n#;IMPfEaWdy=0*NKR;lZY5^8=l22gQRHkXv;P`8Xf-IdPH6m|;d3+2 zm#wd=mu%nWR_bF(zn5aP_}E2wBEQ{ud5=YBP~KTl%}WMed5}*tab1zaB4zkt4uDip zeuJcMJsDl24rwPVBCWXsxF_E?Lpw-CipTInmzTXg+SQ5yB&XAT#(41UIgx6zlo{tq zIW9Y+qkkj~5lW|{%Tsrwk0ZYKm78rWXt`P}t}UA%4#o6l?-t%{k7i6m-_>UJ&<|ddYbD>>bBYrL=idHhwh^gJ9RIcu_!qEy~Fp9_MvXD=r)<@>`Rln5k=#nhp^9TL^IFx6A3_#K4%8}?{ z$;`_6v}bGKBNt(m&HzvA44GBXWQp{vs*5@)O0B;UWRb2Yw7)y8C0a?`W#>ZS^jDG2 z-HH{rPSt!=ANf+!h^Bx;jYXf1R1(@`&3Gv(ZIJ1oh~9=1IlC~&C3LfuGID4aohUvu zTr^@mvZZC1^u;1SrIovXfBct~kN&RI?3&W%(GKeIlbnchcZ~8d+aLsi!c1aHo$;$; zu(FTW6ww5Ot}eqjWdd&XJ}Yz8I!5i_CrcJP-Uj-2#&%q}B{uEtpsH(xR5$b3Hb_h_ zyA=d3T0(M;OfWzIg;Hbw6&~OI)vBmUG_tGnA5?9aumf)p{`p7XSW^$A z2~~4-)qnYM8At%o=<;HSXUo9|OvasqR!;!XrHBb9XVX|rio~7bqU6$(qot++5KhTz zNIvhk7k$TqhQvX?HNZ+LG$ZzpSLUTWXcl|$hH@U@FCdi zb(#x^NRfqLgEN~5DE-;yhIL(E%NxBpKT)LqZUtu-;Ip-+C^!7d^V?3H0dh7a5cz2X z?Y#JvJ^eOAPOZ1ZLJP%|5nBKY<^03r=l*omfs@Dl8`W+yGM!v^UPYQ%J!zY3Cr{aO zr8yZmg-^G;WLv>6(>5b@&FjxQdc3w;!&+4q(%!pI(9+J~^SXy@m2SBPmD)^rPj(ra z(;7i>7naI<-&FRU@Bnw>p7WnPL9V3BgYy&_{wauz`nZIvDD2t~_W zp#;4ZJBisvNj?AQ`ZwxU)8*>9iLO*gjUEKg+m)95sX@r3bDT7$cgean0A-^`D5xpTKIAVaTf_wsp9wA1C{@bK#GaiGx@ z1;Q0D4`ERN35)0Xx1(2(%SN@?4II~pNZ8@54muIa^^^M$F zs3@LYH}YMZgv_w!6XitvL{I|E$VvBL_FD!h#x5f*gqa5No_iD=wBE7_VT&!1Mc)5w z=s)j!^YJj{d(Qkq>CkrbQkxK?V@TWtzw|nU6;pO&{JpQE4O86%zWB80k)xgUsC%Y1 zDG7J3*p3uUxjaEX2!Pn+%ywS`(?xSKqigaBgYQu%!c*89}&!r_~0=KnR1nt(5N==OVM>D)2E8 ztXY+Y?VUhNJ;Qd&QILK*?)@=ikm70gdqCFqYZe@Gm7vJs$bdMW~@cYWETS(xtERvFX zsnX|=^uIZ>o{_ruBr!B4DX z6K6YQO*Y9U6Lb>{l0Rqkkk(yM{2$mTP!vFO{ucdo-^bgVeu$_hjI*g;i3C}RkUJy5 z_$&Nk_yLl6`L9(IEIR{sEnbG`ptt!vPDzhwGN&Q5gXL!Px$Mcb|{m;U2$W;Mb&Ls^qBu)R{meA+exJ-f&ar{*%ASlm{r-mMov`Tgz zBpmc8FB&Z8RwWwL6&ep>%(qwnkV#I#-(6sS-_PH5IM>VkZsI$!sSst$1XT$=|FW_N z^lPNqqY?Fi757WqUztru4hlmsPQ=zXH=C?Hp_MbMCBEXrC3W2TQoM1BmXw5krBc?^ z>N);H6pfyY=1tg)@Ah}`vfL2#0}<(_29IwsiX%TSwCN%EYl+{Z?%oVVwQG!}{0xwNS zp@Pq60$XZFWxyqBo4 z!X=y{x(V$r%`PN{j2wy0(CnWZ? zS=yu%{wTHcANVbDm-v!sUYM7fF9|v9e%>LZLU?K68h;h2`WKfUYLXQLAP`Z7`;C zAkG}yCWb9P@QxQ$cH!0$QjQABzI}VzhPk0c_Bamo-&$M#+z(;iDF=?M065?`c{QW% z@LZu!b(@n&=-^VD2!)$yXYJt2Do=(5?H#ZtOLpmF!piA)C4|a4Ryl4Oo1JVI?{*QM ze_y@@w%`w?Kj<$96GvB|N!KK;L!;rw+i=0lH3sPq_x4xgdR8T@+1Q{q>$-%pz-6iP zn+C0I6(fUotaku{7v~ESqMz^7?IG2{2U{OB7|ir?`$O zKKb3pCKZtEBb9P$INK*8TH3R^!(gD_1h#Q2R_`2@%dly{yBuU&L*BWp(R@1ZQ|z2* zv~I$?%#PDdi5gBeQK{&07)Zt|ukpg}Q$u62K`64w>EVaB6^u+`Zg*J=Z_F6t+3bip zhi;2KsC=(Gjt$0KA>@b=gNt*t;pSJ2{YGty*a0RI<>3(f(Yvl?Q6K(^!aaW699t>8 zOVf@e!~332y#y~OtZ>ljb)rkQY|`j5dTm#a61`ElhS~k_FW+~cjQbWTlDmj%U0u9u zi+%%fV)rnWM@#W^Y<KJg>__U8%4D!}1!9t=ln$gNSW0G#x?znI3iuGIZY&pg-UFc{&sFD|YJ%9~aKs9j~MQeAQF!)BmzUNB`YU{x6H^lKM#8?CFaV zk}lxPn{?bS4(Jr{cY}Tl#(ImLrl})bDUkQ?VdMHAsd8VRk+fscsFz^(H9KvWAg`<} zb?%u{c%3gVDSttCT+!da=uRdNslbU#rxJRr^8!>j?G1LL9ZT};w$98J%QIalO#mP( z>yJIZ1$>LJ(<@q<{opz$nxCORi9zO9PyTuJbk{$0O7=Z?AUs?@Q-6q52hM*PS=i9` zdWKBOsjc-I1-Y+=HX^Lz6mOjJc?qhO6Ln2&#*+ZmvgS=pWH!HudA#$WpQJK`}pc~l|i z8L7LP+VEs%^$1BD!4p&v@(M$PB9N$f&aW($^_e3w7D6U%vqxYXjLp7)i)4io8#w&Ed`RWYR#n&CgZ+wUX>Zdmwl475Wr&J#*dk8?LMmX?!S^0s%@zDtslsBIPfWlL+6Tz9*? zYqE#M`~D3RvpowU>h;DbF8N4_~c9QUlAUxp~Hs-R>X*Dzz+8UFdT&!!*>TKGjp>Y0>hkYp+l)$AMHB)^p|?qPr@?#DTM31lQ{_g&jwU8 zPDzY6dq2OLELSon>b)?8NO|7w1KP4r5!4LrpLgZX(n!!`uUcuYk9y%9DW`iqL0qNB zVg<*T>f2T+`7h!bZcW&oiVR{IS83wwAbG%L2_%p(l9QOtaBYj=muZ>4yXO_seav&} zE#b9U*$nK^&87-r&<5>r;`{QOT>Y%`1NT4iAIBNvIe@6F^3u+#d#TC!xZ7BhH8a5O z;=N9El@-EH(bHK6-^NawOJ2H0665PyB5A$FzL@R<{o%saCe>Krrj^y0srL6>womoN zCfMQ@@pMHxD0{KV2SiZ2WyB@7KU%k5#w(0gge0hjR7Zix%9m84r`sxvN&G(4>RIBn zULAg@nw*{G!o22aP{1h$AEO_F;i&w9rxeGkW9>vXXF$ll+nG@QJEir$6U|le|D4mm z_l+I{CkdCrBA4F3$!rkewMOs^m*i?o#eCdQ4Q(UbKT^}veNuZ*I)b1Vnk9hwxbrxw z%Hf3)(|O!VCK*8D!aQ5kcYZ?Z~8Dxn0;E&Xdsv?L(^Xl-$e3-Li z0(p~W2zkxTBw&o+!!9NR`+DfAiX_Z;E;=;DMTZ)c#8l>3jn(-#r39Uuuz0sOx2jEI ztOtwco(!F2M7^02G~YKf}eg067r* zX=AOlUbAt^~{%@vk-93 zqcD+YYAwUw`L})YS;2Gsrq1X9JM+Ql{c)=C8WTH=mG8;Ek!OTc;cKAvouj$#v^cWu z{t*R8Q+WvvxS6QlS=W=Qn7X*|4+HK?zH$gwfGkL-bH(R_hb>%uk=L}#PPZPn zH9sCiG+wxG>~qQE+W~$VhoVxafhhrZ67uzXGbdB+Gi79l(F;%8lLJ0T-HsU7d;a~c zXC2&VH|&=~$mfBN?D8>X)pfMGxt(D2cFP}dtr7OODx53a9dTq{k5%25&G&`QFtwCq zX{L?K!h@*qChL*n&U;;OyX-l2-K`EHKhZzxcN=!EE~|tdQgXE$_x09iACoHWGbq1T zLTKMA=PHTBot?aj%sh4U+=uszp@!S`p;mmQ;6Y-F=0yLW{`N3|(=F+7Pj~QNH-GA} zJSGC++#1f#B>ml#Q>M+?>n@%h6;75+&(9-+qD(%s=3X}wobY|s5Ir+(Q+KMV+4i7F zRC63EFKR|B72Ob&$Q~Mf*#|Zi5VjI4l{~uLv*|2-+<^+|zZV@UX&LMb8ZKANA5*VV zCetg=@uH#T(Hfi()s#l-Z+TTS@2|n{sIPWSZ2T;2;gVF3DEubgS5PP7u(AA*yCLz97pX!WhA^=dg2w4tNt)*FQJIrh_paq++3t>bUc^~K?bP|)ysdJ%Ob1f``Otl>9{yeHOcvT zyVR_N_GTYyiBQGrwUAqinz)R3G*+0I20>YvZF|NIRph$V{bb-h8Eqq2>;`a{Z*45! zsS65Li$%z-W%VLCix!KOE%xp08|53FJpsDNOPV%TXsE7qV2PyFqG@!ki5h&N$fQfVW9O0WS_gaRNxi9H zTuA%i{S>y2Bch`gf7Wh&C*B@Oo$utAlSV1dy;2;J)L4S|uJ$+&?pO?a_u0B+_wfKW22yJwt^xd{gsuEtao{y{FNnp%|n6RoOZ|66Ond=u)RN3F#BS#>IqJ!Cu)?z!_R^Hqx`(A2lsPn?;@aa|5hEK*s z?}p`dAtTsdG81||e8(bHAs&APX1cit&d0r%EBm;zRA+u-ToValU@c@XYqX5yzX}EA zp7RN`v8^?9$vuri-~s^O7Ug2)q=A9%(pyRJrrEXwg{xiJUkYAs5%l{4c|I;;NQE=+ zH2AS+{#sF{G-G(dU&_2o*>195!gl3kF-DiCaS>I__($xv&8AE!akJ`N7>RyTgijp( zOzqR^OIb&XrTnG**PZdN7>;!o?ptGVeoJZKmf5b%8AetG^Hxh2WWk-uz4^RX6K?TM z%L6C8A zFw9c0UDJf`ua@TJBydv|1M&)XTsmSpoc)qy#NY8v)yYmlVOs?}(!WzJ9RWfYON$hh z_ceFCfNwMP3&);F$U&{BvG$uQ`rp!$}sy>+95hZav zW^*OH{bN~+cOAu^y~JbRF6dNp@HM`@$!kL=zS*HmEdQj~<{MH^MF^+^>k>R##;~nc zpt5oG=J=PL%y>us<^;@i=9-f&p#W{IZnk;M3Y-_Ul3#L0k8QwUsrcnkt|3=`zB~EJgV-g?K}6wZOyEPQPn(#~LRZ$L^XAywsd}M*Y`HCmhDEul zbjf1q@;%S->g(KpWC2|MS>MEc@qeRdSEnp=YiUy4p-6!Lvaj2m)ZhOIU7o49XOW|~ zgU?y49QWO~FF5TdSaSO7(Stv=jP@D-lRo-?qh}Ag3*QD+o6inc%DcL{F4pArVj;OB zsHM)hAl`kOb>(!V6jylj9ed?CwG8&E=aUWt1%AzhwxzAJS4VbM z%V7-l?d3j8PS`P#Zw#&7Kmu3Byb#)zI$J!gvS;|KSA~weH!TrA5-?DZz9F!0+5Fie z;?XbDQDQ)QN}lb)E6CP4`daPUo#5bL!uBfFiz`&@#25}CFiE_JZB?{P3wF zzkO58RTfqJlXhg=+9uCWEO1#PY=2gFmO;`tI?B9-tHxl@S-qGJ*te}`YHC`$$9J*M zbM;qj&G(e^bx}!Ly8$*==g8~T==FF)DcsfFJ)+Ww@tfH%Q}LRsh0zn%d+*-|H7Xe5 zHF>SJatrb*I%q1|p34KdNUojcDswK(V0Tm5KhI~MKVPt5J?z?P-+hthzF8hH7mntS zhxmEX|K3xU9iNiU_%)$9*Mm4By!LmS*o?mk*RMk^{o4wih~V~0(7N0svZ|`;2So?> z9uA$U2Z*_H4J4IMxK_Kf0{;>xljJbjk+5;%$35;l9q=pGHwS|Oa0P%9Dptr{Ez8sL z_I+6f|Ne&Lo}Bxi?1xHRdIkpGm;e0W=g&WhYq@`MHwD&1Stap^cC7&D55we(Z(7Zw zRyr-V;z!z7O;KuGTyn21%W(UmlDL{X10|SFv3JAF(wSt1z4!(u|a(!3XeV`x+yX*X4Oq{(X@T2|P z+W&0)IeBk($|0AhPG5U;m%e}B_TYyg8v69lG^Ncm{QpQnKKM_<_y6YE@?Qo?N=+Yb zuwTSVnKyIQ$?bbSb~$l!w`qEmyJ<$0X*XeE;UYE{7$+=f+n`wC4vXK1e)Lwp3S24M zzIJ)d2fBGF1(nworfc8yZ(44^Ej@Yt2pU({pS4WRPrlI zh>e9KU70dJ3ZvgU8OkZg#^ernNU5e8CbvdrHibj6sqR{dt)`Zdxx+T*HY_$~ZTHNk z>yLZA?)mHU$Md{i-|y$g`~7}B-_P@W+REcRJf_n}iuVq|DjwM4e;7h>r&3g%*jngv zR>*Go?C@YWb$KU&Pm~iH4RPHjn3kUvsL*KzQ<9R$tx= zbAy}WdFzZS3WXxh9E$|z!a=INLFLK2aguAioavQVx?g1HCcA}bzeh@C!PY zpg3UY+i%Zu>{CTf1Q?q3Og-cv2(+nBw^xj`7QqH-b&X6-fbmT**skin^gWC`wWZ7#-+m%dp zp?U@rTaYJ+HG9iJTS0tHbKP^!)ucyuLTTPZZSBh>CS4pn!=UD=o z#L8wgxSr~~jG^Me(ha z&uuEYI16FXgZtF?J;4t&K#an!5se`~10dGu*pv!31yHT4$oS-o8&0gHG}-q!w_UqN z_JV8-8ciU|Zij>5H0H~OnpJgF>gE2#sLW1qZNa(>w^|k03|0;8e$1FIv{n8MtqF#0 zL9{xt>**%ovzW}run5@^L&95f+BTY!Pi=%-54<0#%<7TT)T*SDKIxt|1I@I|KWv4> z`RZZ6+%|WMw2|V~l!tLWRZ4QW`2eVUrmy_31r@7zR%Mn#-aIH-3rdv~;&3=LwRTz* zA(CGZ_pK%Dz0Azz8)T`H4$>qLTxlr*Ao;;@&;#Mb!VC9NOWmKW^z_zz?EU{=D>+{z z5@|S)raKn;*nVO7-tBGg!=SY^ns<@;JRIN|YXOUX zs71@Z9a%u799yOyzHyF^Q9r!(R&$UHcH= z2HE{5bj5iMCPcd>{}8=H#Ri1l#vRAM2@MYyptMgoPc9Ef`53|=Qy^Sm7Hc$Wk#iZA>cp=+k~b$UNJ)UH{WRJzOY!@!9tH`>z5W%6{t% zH%)i&eAEi4%X;&9lK`>#<$yQh_`Z@|pH0fBnVx34F{gT?sLyJ>kZhtgVa&dw2%zgm z$6yB>Aw<_0tZ-g*^`0e<>~ipE>GQi}a^WwlZ3H^$>Ri7({NL0#Kh9x%kYlWKO)T-2 zT5!v{=wII%_vY **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/mindmap.md](../../packages/mermaid/src/docs/syntax/mindmap.md). + +# Mindmap + +> Mindmap: This is an experimental diagram for now. The syntax and properties can change in future releases. The syntax is stable except for the icon integration which is the experimental part. + +"A mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those major ideas." Wikipedia + +### An example of a mindmap. + +```mermaid-example +mindmap + root((mindmap)) + Origins + Long history + ::icon(fa fa-book) + Popularisation + British popular psychology author Tony Buzan + Research + On effectivness
        and eatures + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid + +``` + +```mermaid +mindmap + root((mindmap)) + Origins + Long history + ::icon(fa fa-book) + Popularisation + British popular psychology author Tony Buzan + Research + On effectivness
        and eatures + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid + +``` + +## Syntax + +The syntax for creating Mindmaps is simple and relies on indentation for setting the levels in the hierarchy. + +In the following example you can see how there are 3 different levels. One with starting at the left of the text and another level with two rows starting at the same column, defining the node A. At the end there is one more level where the text is indented further then the previous lines defining the nodes B and C. + + mindmap + Root + A + B + C + +In summary is a simple text outline where there are one node at the root level called `Root` which has one child `A`. `A` in turn has two children `B`and `C`. In the diagram below we can see this rendered as a mindmap. + +```mermaid-example +mindmap +Root + A + B + C +``` + +```mermaid +mindmap +Root + A + B + C +``` + +In this way we can use a text outline to generate a hierarchical mindmap. + +## Different shapes + +Mermaids mindmaps can show node using different shapes. When specifying a shape for a node the syntax for the is similar to flowchart nodes, with an id followed by the shape definition and with the text within the shape delimiters. Where possible we try/will try to keep the same shapes as for flowcharts even though they are not all supported from the start. + +Mindmap can show the following shapes: + +### Square + +```mermaid-example +mindmap + id[I am a square] +``` + +```mermaid +mindmap + id[I am a square] +``` + +### Rounded square + +```mermaid-example +mindmap + id(I am a rounded square) +``` + +```mermaid +mindmap + id(I am a rounded square) +``` + +### Circle + +```mermaid-example +mindmap + id((I am a circle)) +``` + +```mermaid +mindmap + id((I am a circle)) +``` + +### Bang + +```mermaid-example +mindmap + id))I am a bang(( +``` + +```mermaid +mindmap + id))I am a bang(( +``` + +### Cloud + +```mermaid-example +mindmap + id)I am a cloud( +``` + +```mermaid +mindmap + id)I am a cloud( +``` + +### Default + +```mermaid-example +mindmap + I am the default shape +``` + +```mermaid +mindmap + I am the default shape +``` + +More shapes will be added, beginning with the shapes available in flowcharts. + +# Icons and classes + +## icons + +As with flowcharts you can add icons to your nodes but with an updated syntax. The styling for the font based icons are added during the integration so that they are available for the web page. _This is not something a diagram author can do but has to be done with the site administrator or the integrator_. Once the icon fonts are in place you add them to the mind map nodes using the `::icon()` syntax. You place the classes for the icon within the parenthesis like in the following example where icons for material design and fontawesome 4 are displayed. The intention is that this approach should be used for all diagrams supporting icons. **Experimental feature:** This wider scope is also the reason Mindmaps are experimental as this syntax and approach could change. + +```mermaid-example +mindmap + Root + A + ::icon(fa fa-book) + B(B) + ::icon(mdi mdi-skull-outline) +``` + +```mermaid +mindmap + Root + A + ::icon(fa fa-book) + B(B) + ::icon(mdi mdi-skull-outline) +``` + +## Classes + +Again the syntax for adding classes is similar to flowcharts. You can add classes using a triple colon following a number of css classes separated by space. In the following example one of the nodes has two custom classes attached urgent turning the background red and the text white and large increasing the font size: + +```mermaid-example +mindmap + Root + A[A] + :::urgent large + B(B) + C +``` + +```mermaid +mindmap + Root + A[A] + :::urgent large + B(B) + C +``` + +_These classes needs top be supplied by the site administrator._ + +## Unclear indentation + +The actual indentation does not really matter only compared with the previous rows. If we take the previous example and disrupt it a little we can se how the calculations are performed. Let us start with placing C with a smaller indentation than `B`but larger then `A`. + + mindmap + Root + A + B + C + +This outline is unclear as `B` clearly is a child of `A` but when we move on to `C` the clarity is lost. `C` is not a child of `B` with a higher indentation nor does it have the same indentation as `B`. The only thing that is clear is that the first node with smaller indentation, indicating a parent, is A. Then Mermaid relies on this known truth and compensates for the unclear indentation and selects `A` as a parent of `C` leading till the same diagram with `B` and `C` as siblings. + +```mermaid-example +mindmap +Root + A + B + C +``` + +```mermaid +mindmap +Root + A + B + C +``` diff --git a/docs/syntax/pie.md b/docs/syntax/pie.md new file mode 100644 index 0000000000..6801b3619f --- /dev/null +++ b/docs/syntax/pie.md @@ -0,0 +1,66 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/pie.md](../../packages/mermaid/src/docs/syntax/pie.md). + +# Pie chart diagrams + +> A pie chart (or a circle chart) is a circular statistical graphic, which is divided into slices to illustrate numerical proportion. In a pie chart, the arc length of each slice (and consequently its central angle and area), is proportional to the quantity it represents. While it is named for its resemblance to a pie which has been sliced, there are variations on the way it can be presented. The earliest known pie chart is generally credited to William Playfair's Statistical Breviary of 1801 +> \-Wikipedia + +Mermaid can render Pie Chart diagrams. + +```mermaid-example +pie title Pets adopted by volunteers + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +``` + +```mermaid +pie title Pets adopted by volunteers + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +``` + +## Syntax + +Drawing a pie chart is really simple in mermaid. + +- Start with `pie` keyword to begin the diagram + - `showData` to render the actual data values after the legend text. This is **_OPTIONAL_** +- Followed by `title` keyword and its value in string to give a title to the pie-chart. This is **_OPTIONAL_** +- Followed by dataSet. Pie slices will be ordered clockwise in the same order as the labels. + - `label` for a section in the pie diagram within `" "` quotes. + - Followed by `:` colon as separator + - Followed by `positive numeric value` (supported upto two decimal places) + +\[pie] \[showData] (OPTIONAL) +\[title] \[titlevalue] (OPTIONAL) +"\[datakey1]" : \[dataValue1] +"\[datakey2]" : \[dataValue2] +"\[datakey3]" : \[dataValue3] +. +. + +## Example + +```mermaid-example +pie showData + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 +``` + +```mermaid +pie showData + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 +``` diff --git a/docs/syntax/requirementDiagram.md b/docs/syntax/requirementDiagram.md new file mode 100644 index 0000000000..f8a0cafa95 --- /dev/null +++ b/docs/syntax/requirementDiagram.md @@ -0,0 +1,243 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/requirementDiagram.md](../../packages/mermaid/src/docs/syntax/requirementDiagram.md). + +# Requirement Diagram + +> A Requirement diagram provides a visualization for requirements and their connections, to each other and other documented elements. The modeling specs follow those defined by SysML v1.6. + +Rendering requirements is straightforward. + +```mermaid-example + requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req +``` + +```mermaid + requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req +``` + +## Syntax + +There are three types of components to a requirement diagram: requirement, element, and relationship. + +The grammar for defining each is defined below. Words denoted in angle brackets, such as ``, are enumerated keywords that have options elaborated in a table. `user_defined_...` is use in any place where user input is expected. + +An important note on user text: all input can be surrounded in quotes or not. For example, both `Id: "here is an example"` and `Id: here is an example` are both valid. However, users must be careful with unquoted input. The parser will fail if another keyword is detected. + +### Requirement + +A requirement definition contains a requirement type, name, id, text, risk, and verification method. The syntax follows: + + user_defined_name { + id: user_defined_id + text: user_defined text + risk: + verifymethod: + } + +Type, risk, and method are enumerations defined in SysML. + +| Keyword | Options | +| ------------------ | ----------------------------------------------------------------------------------------------------------------------- | +| Type | requirement, functionalRequirement, interfaceRequirement, performanceRequirement, physicalRequirement, designConstraint | +| Risk | Low, Medium, High | +| VerificationMethod | Analysis, Inspection, Test, Demonstration | + +### Element + +An element definition contains an element name, type, and document reference. These three are all user defined. The element feature is intended to be lightweight but allow requirements to be connected to portions of other documents. + + element user_defined_name { + type: user_defined_type + docref: user_defined_ref + } + +### Relationship + +Relationships are comprised of a source node, destination node, and relationship type. + +Each follows the definition format of + + {name of source} - -> {name of destination} + +or + + {name of destination} <- - {name of source} + +"name of source" and "name of destination" should be names of requirement or element nodes defined elsewhere. + +A relationship type can be one of contains, copies, derives, satisfies, verifies, refines, or traces. + +Each relationship is labeled in the diagram. + +## Larger Example + +This example uses all features of the diagram. + +```mermaid-example + requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + functionalRequirement test_req2 { + id: 1.1 + text: the second test text. + risk: low + verifymethod: inspection + } + + performanceRequirement test_req3 { + id: 1.2 + text: the third test text. + risk: medium + verifymethod: demonstration + } + + interfaceRequirement test_req4 { + id: 1.2.1 + text: the fourth test text. + risk: medium + verifymethod: analysis + } + + physicalRequirement test_req5 { + id: 1.2.2 + text: the fifth test text. + risk: medium + verifymethod: analysis + } + + designConstraint test_req6 { + id: 1.2.3 + text: the sixth test text. + risk: medium + verifymethod: analysis + } + + element test_entity { + type: simulation + } + + element test_entity2 { + type: word doc + docRef: reqs/test_entity + } + + element test_entity3 { + type: "test suite" + docRef: github.com/all_the_tests + } + + + test_entity - satisfies -> test_req2 + test_req - traces -> test_req2 + test_req - contains -> test_req3 + test_req3 - contains -> test_req4 + test_req4 - derives -> test_req5 + test_req5 - refines -> test_req6 + test_entity3 - verifies -> test_req5 + test_req <- copies - test_entity2 +``` + +```mermaid + requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + functionalRequirement test_req2 { + id: 1.1 + text: the second test text. + risk: low + verifymethod: inspection + } + + performanceRequirement test_req3 { + id: 1.2 + text: the third test text. + risk: medium + verifymethod: demonstration + } + + interfaceRequirement test_req4 { + id: 1.2.1 + text: the fourth test text. + risk: medium + verifymethod: analysis + } + + physicalRequirement test_req5 { + id: 1.2.2 + text: the fifth test text. + risk: medium + verifymethod: analysis + } + + designConstraint test_req6 { + id: 1.2.3 + text: the sixth test text. + risk: medium + verifymethod: analysis + } + + element test_entity { + type: simulation + } + + element test_entity2 { + type: word doc + docRef: reqs/test_entity + } + + element test_entity3 { + type: "test suite" + docRef: github.com/all_the_tests + } + + + test_entity - satisfies -> test_req2 + test_req - traces -> test_req2 + test_req - contains -> test_req3 + test_req3 - contains -> test_req4 + test_req4 - derives -> test_req5 + test_req5 - refines -> test_req6 + test_entity3 - verifies -> test_req5 + test_req <- copies - test_entity2 +``` diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md new file mode 100644 index 0000000000..4e89eb0c60 --- /dev/null +++ b/docs/syntax/sequenceDiagram.md @@ -0,0 +1,762 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/sequenceDiagram.md](../../packages/mermaid/src/docs/syntax/sequenceDiagram.md). + +# Sequence diagrams + +> A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order. + +Mermaid can render sequence diagrams. + +```mermaid-example +sequenceDiagram + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +```mermaid +sequenceDiagram + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +> **Note** +> A note on nodes, the word "end" could potentially break the diagram, due to the way that the mermaid language is scripted. +> +> If unavoidable, one must use parentheses(), quotation marks "", or brackets {},\[], to enclose the word "end". i.e : (end), \[end], {end}. + +## Syntax + +### Participants + +The participants can be defined implicitly as in the first example on this page. The participants or actors are +rendered in order of appearance in the diagram source text. Sometimes you might want to show the participants in a +different order than how they appear in the first message. It is possible to specify the actor's order of +appearance by doing the following: + +```mermaid-example +sequenceDiagram + participant Alice + participant Bob + Alice->>Bob: Hi Bob + Bob->>Alice: Hi Alice +``` + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>Bob: Hi Bob + Bob->>Alice: Hi Alice +``` + +### Actors + +If you specifically want to use the actor symbol instead of a rectangle with text you can do so by using actor statements as per below. + +```mermaid-example +sequenceDiagram + actor Alice + actor Bob + Alice->>Bob: Hi Bob + Bob->>Alice: Hi Alice +``` + +```mermaid +sequenceDiagram + actor Alice + actor Bob + Alice->>Bob: Hi Bob + Bob->>Alice: Hi Alice +``` + +### Aliases + +The actor can have a convenient identifier and a descriptive label. + +```mermaid-example +sequenceDiagram + participant A as Alice + participant J as John + A->>J: Hello John, how are you? + J->>A: Great! +``` + +```mermaid +sequenceDiagram + participant A as Alice + participant J as John + A->>J: Hello John, how are you? + J->>A: Great! +``` + +## Messages + +Messages can be of two displayed either solid or with a dotted line. + + [Actor][Arrow][Actor]:Message text + +There are six types of arrows currently supported: + +| Type | Description | +| ---- | ------------------------------------------------ | +| -> | Solid line without arrow | +| --> | Dotted line without arrow | +| ->> | Solid line with arrowhead | +| -->> | Dotted line with arrowhead | +| -x | Solid line with a cross at the end | +| --x | Dotted line with a cross at the end. | +| -) | Solid line with an open arrow at the end (async) | +| --) | Dotted line with a open arrow at the end (async) | + +## Activations + +It is possible to activate and deactivate an actor. (de)activation can be dedicated declarations: + +```mermaid-example +sequenceDiagram + Alice->>John: Hello John, how are you? + activate John + John-->>Alice: Great! + deactivate John +``` + +```mermaid +sequenceDiagram + Alice->>John: Hello John, how are you? + activate John + John-->>Alice: Great! + deactivate John +``` + +There is also a shortcut notation by appending `+`/`-` suffix to the message arrow: + +```mermaid-example +sequenceDiagram + Alice->>+John: Hello John, how are you? + John-->>-Alice: Great! +``` + +```mermaid +sequenceDiagram + Alice->>+John: Hello John, how are you? + John-->>-Alice: Great! +``` + +Activations can be stacked for same actor: + +```mermaid-example +sequenceDiagram + Alice->>+John: Hello John, how are you? + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + John-->>-Alice: I feel great! +``` + +```mermaid +sequenceDiagram + Alice->>+John: Hello John, how are you? + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + John-->>-Alice: I feel great! +``` + +## Notes + +It is possible to add notes to a sequence diagram. This is done by the notation +Note \[ right of | left of | over ] \[Actor]: Text in note content + +See the example below: + +```mermaid-example +sequenceDiagram + participant John + Note right of John: Text in note +``` + +```mermaid +sequenceDiagram + participant John + Note right of John: Text in note +``` + +It is also possible to create notes spanning two participants: + +```mermaid-example +sequenceDiagram + Alice->John: Hello John, how are you? + Note over Alice,John: A typical interaction +``` + +```mermaid +sequenceDiagram + Alice->John: Hello John, how are you? + Note over Alice,John: A typical interaction +``` + +## Loops + +It is possible to express loops in a sequence diagram. This is done by the notation + + loop Loop text + ... statements ... + end + +See the example below: + +```mermaid-example +sequenceDiagram + Alice->John: Hello John, how are you? + loop Every minute + John-->Alice: Great! + end +``` + +```mermaid +sequenceDiagram + Alice->John: Hello John, how are you? + loop Every minute + John-->Alice: Great! + end +``` + +## Alt + +It is possible to express alternative paths in a sequence diagram. This is done by the notation + + alt Describing text + ... statements ... + else + ... statements ... + end + +or if there is sequence that is optional (if without else). + + opt Describing text + ... statements ... + end + +See the example below: + +```mermaid-example +sequenceDiagram + Alice->>Bob: Hello Bob, how are you? + alt is sick + Bob->>Alice: Not so good :( + else is well + Bob->>Alice: Feeling fresh like a daisy + end + opt Extra response + Bob->>Alice: Thanks for asking + end +``` + +```mermaid +sequenceDiagram + Alice->>Bob: Hello Bob, how are you? + alt is sick + Bob->>Alice: Not so good :( + else is well + Bob->>Alice: Feeling fresh like a daisy + end + opt Extra response + Bob->>Alice: Thanks for asking + end +``` + +## Parallel + +It is possible to show actions that are happening in parallel. + +This is done by the notation + + par [Action 1] + ... statements ... + and [Action 2] + ... statements ... + and [Action N] + ... statements ... + end + +See the example below: + +```mermaid-example +sequenceDiagram + par Alice to Bob + Alice->>Bob: Hello guys! + and Alice to John + Alice->>John: Hello guys! + end + Bob-->>Alice: Hi Alice! + John-->>Alice: Hi Alice! +``` + +```mermaid +sequenceDiagram + par Alice to Bob + Alice->>Bob: Hello guys! + and Alice to John + Alice->>John: Hello guys! + end + Bob-->>Alice: Hi Alice! + John-->>Alice: Hi Alice! +``` + +It is also possible to nest parallel blocks. + +```mermaid-example +sequenceDiagram + par Alice to Bob + Alice->>Bob: Go help John + and Alice to John + Alice->>John: I want this done today + par John to Charlie + John->>Charlie: Can we do this today? + and John to Diana + John->>Diana: Can you help us today? + end + end +``` + +```mermaid +sequenceDiagram + par Alice to Bob + Alice->>Bob: Go help John + and Alice to John + Alice->>John: I want this done today + par John to Charlie + John->>Charlie: Can we do this today? + and John to Diana + John->>Diana: Can you help us today? + end + end +``` + +## Critical Region + +It is possible to show actions that must happen automatically with conditional handling of circumstances. + +This is done by the notation + + critical [Action that must be performed] + ... statements ... + option [Circumstance A] + ... statements ... + option [Circumstance B] + ... statements ... + end + +See the example below: + +```mermaid-example +sequenceDiagram + critical Establish a connection to the DB + Service-->DB: connect + option Network timeout + Service-->Service: Log error + option Credentials rejected + Service-->Service: Log different error + end +``` + +```mermaid +sequenceDiagram + critical Establish a connection to the DB + Service-->DB: connect + option Network timeout + Service-->Service: Log error + option Credentials rejected + Service-->Service: Log different error + end +``` + +It is also possible to have no options at all + +```mermaid-example +sequenceDiagram + critical Establish a connection to the DB + Service-->DB: connect + end +``` + +```mermaid +sequenceDiagram + critical Establish a connection to the DB + Service-->DB: connect + end +``` + +This critical block can also be nested, equivalently to the `par` statement as seen above. + +## Break + +It is possible to indicate a stop of the sequence within the flow (usually used to model exceptions). + +This is done by the notation + + break [something happened] + ... statements ... + end + +See the example below: + +```mermaid-example +sequenceDiagram + Consumer-->API: Book something + API-->BookingService: Start booking process + break when the booking process fails + API-->Consumer: show failure + end + API-->BillingService: Start billing process +``` + +```mermaid +sequenceDiagram + Consumer-->API: Book something + API-->BookingService: Start booking process + break when the booking process fails + API-->Consumer: show failure + end + API-->BillingService: Start billing process +``` + +## Background Highlighting + +It is possible to highlight flows by providing colored background rects. This is done by the notation + +The colors are defined using rgb and rgba syntax. + + rect rgb(0, 255, 0) + ... content ... + end + + + + rect rgba(0, 0, 255, .1) + ... content ... + end + +See the examples below: + +```mermaid-example +sequenceDiagram + participant Alice + participant John + + rect rgb(191, 223, 255) + note right of Alice: Alice calls John. + Alice->>+John: Hello John, how are you? + rect rgb(200, 150, 255) + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + end + John-->>-Alice: I feel great! + end + Alice ->>+ John: Did you want to go to the game tonight? + John -->>- Alice: Yeah! See you there. + +``` + +```mermaid +sequenceDiagram + participant Alice + participant John + + rect rgb(191, 223, 255) + note right of Alice: Alice calls John. + Alice->>+John: Hello John, how are you? + rect rgb(200, 150, 255) + Alice->>+John: John, can you hear me? + John-->>-Alice: Hi Alice, I can hear you! + end + John-->>-Alice: I feel great! + end + Alice ->>+ John: Did you want to go to the game tonight? + John -->>- Alice: Yeah! See you there. + +``` + +## Comments + +Comments can be entered within a sequence diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +```mermaid-example +sequenceDiagram + Alice->>John: Hello John, how are you? + %% this is a comment + John-->>Alice: Great! +``` + +```mermaid +sequenceDiagram + Alice->>John: Hello John, how are you? + %% this is a comment + John-->>Alice: Great! +``` + +## Entity codes to escape characters + +It is possible to escape characters using the syntax exemplified here. + +```mermaid-example +sequenceDiagram + A->>B: I #9829; you! + B->>A: I #9829; you #infin; times more! +``` + +```mermaid +sequenceDiagram + A->>B: I #9829; you! + B->>A: I #9829; you #infin; times more! +``` + +Numbers given are base 10, so `#` can be encoded as `#35;`. It is also supported to use HTML character names. + +Because semicolons can be used instead of line breaks to define the markup, you need to use `#59;` to include a semicolon in message text. + +## sequenceNumbers + +It is possible to get a sequence number attached to each arrow in a sequence diagram. This can be configured when adding mermaid to the website as shown below: + +```html + +``` + +It can also be be turned on via the diagram code as in the diagram: + +```mermaid-example +sequenceDiagram + autonumber + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +```mermaid +sequenceDiagram + autonumber + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +## Actor Menus + +Actors can have popup-menus containing individualized links to external pages. For example, if an actor represented a web service, useful links might include a link to the service health dashboard, repo containing the code for the service, or a wiki page describing the service. + +This can be configured by adding one or more link lines with the format: + + link : @ + +```mermaid-example +sequenceDiagram + participant Alice + participant John + link Alice: Dashboard @ https://dashboard.contoso.com/alice + link Alice: Wiki @ https://wiki.contoso.com/alice + link John: Dashboard @ https://dashboard.contoso.com/john + link John: Wiki @ https://wiki.contoso.com/john + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +```mermaid +sequenceDiagram + participant Alice + participant John + link Alice: Dashboard @ https://dashboard.contoso.com/alice + link Alice: Wiki @ https://wiki.contoso.com/alice + link John: Dashboard @ https://dashboard.contoso.com/john + link John: Wiki @ https://wiki.contoso.com/john + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +#### Advanced Menu Syntax + +There is an advanced syntax that relies on JSON formatting. If you are comfortable with JSON format, then this exists as well. + +This can be configured by adding the links lines with the format: + + links : + +An example is below: + +```mermaid-example +sequenceDiagram + participant Alice + participant John + links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} + links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +```mermaid +sequenceDiagram + participant Alice + participant John + links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"} + links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"} + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +## Styling + +Styling of a sequence diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/sequence.scss + +### Classes used + +| Class | Description | +| ------------ | ----------------------------------------------------------- | +| actor | Style for the actor box at the top of the diagram. | +| text.actor | Styles for text in the actor box at the top of the diagram. | +| actor-line | The vertical line for an actor. | +| messageLine0 | Styles for the solid message line. | +| messageLine1 | Styles for the dotted message line. | +| messageText | Defines styles for the text on the message arrows. | +| labelBox | Defines styles label to left in a loop. | +| labelText | Styles for the text in label for loops. | +| loopText | Styles for the text in the loop box. | +| loopLine | Defines styles for the lines in the loop box. | +| note | Styles for the note box. | +| noteText | Styles for the text on in the note boxes. | + +### Sample stylesheet + +```css +body { + background: white; +} + +.actor { + stroke: #ccccff; + fill: #ececff; +} +text.actor { + fill: black; + stroke: none; + font-family: Helvetica; +} + +.actor-line { + stroke: grey; +} + +.messageLine0 { + stroke-width: 1.5; + stroke-dasharray: '2 2'; + marker-end: 'url(#arrowhead)'; + stroke: black; +} + +.messageLine1 { + stroke-width: 1.5; + stroke-dasharray: '2 2'; + stroke: black; +} + +#arrowhead { + fill: black; +} + +.messageText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; + font-size: 14px; +} + +.labelBox { + stroke: #ccccff; + fill: #ececff; +} + +.labelText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; +} + +.loopText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; +} + +.loopLine { + stroke-width: 2; + stroke-dasharray: '2 2'; + marker-end: 'url(#arrowhead)'; + stroke: #ccccff; +} + +.note { + stroke: #decc93; + fill: #fff5ad; +} + +.noteText { + fill: black; + stroke: none; + font-family: 'trebuchet ms', verdana, arial; + font-size: 14px; +} +``` + +## Configuration + +Is it possible to adjust the margins for rendering the sequence diagram. + +This is done by defining `mermaid.sequenceConfig` or by the CLI to use a json file with the configuration. +How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.md) page. +`mermaid.sequenceConfig` can be set to a JSON string with config parameters or the corresponding object. + +```javascript +mermaid.sequenceConfig = { + diagramMarginX: 50, + diagramMarginY: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + mirrorActors: true, +}; +``` + +### Possible configuration parameters: + +| Parameter | Description | Default value | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ | +| mirrorActors | Turns on/off the rendering of actors below the diagram as well as above it | false | +| bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 | +| actorFontSize | Sets the font size for the actor's description | 14 | +| actorFontFamily | Sets the font family for the actor's description | "Open Sans", sans-serif | +| actorFontWeight | Sets the font weight for the actor's description | "Open Sans", sans-serif | +| noteFontSize | Sets the font size for actor-attached notes | 14 | +| noteFontFamily | Sets the font family for actor-attached notes | "trebuchet ms", verdana, arial | +| noteFontWeight | Sets the font weight for actor-attached notes | "trebuchet ms", verdana, arial | +| noteAlign | Sets the text alignment for text in actor-attached notes | center | +| messageFontSize | Sets the font size for actor<->actor messages | 16 | +| messageFontFamily | Sets the font family for actor<->actor messages | "trebuchet ms", verdana, arial | +| messageFontWeight | Sets the font weight for actor<->actor messages | "trebuchet ms", verdana, arial | diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md new file mode 100644 index 0000000000..ec91411f61 --- /dev/null +++ b/docs/syntax/stateDiagram.md @@ -0,0 +1,450 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/stateDiagram.md](../../packages/mermaid/src/docs/syntax/stateDiagram.md). + +# State diagrams + +> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction." Wikipedia + +Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml. + +```mermaid-example +stateDiagram-v2 + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` + +```mermaid +stateDiagram-v2 + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` + +Older renderer: + +```mermaid-example +stateDiagram + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` + +```mermaid +stateDiagram + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` + +In state diagrams systems are described in terms of its states and how the systems state can change to another state via a transitions. The example diagram above shows three states **Still**, **Moving** and **Crash**. You start in the state of Still. From Still you can change the state to Moving. In Moving you can change the state either back to Still or to Crash. There is no transition from Still to Crash. + +## States + +A state can be declared in multiple ways. The simplest way is to define a state id as a description. + +```mermaid-example +stateDiagram-v2 + s1 +``` + +```mermaid +stateDiagram-v2 + s1 +``` + +Another way is by using the state keyword with a description as per below: + +```mermaid-example +stateDiagram-v2 + state "This is a state description" as s2 +``` + +```mermaid +stateDiagram-v2 + state "This is a state description" as s2 +``` + +Another way to define a state with a description is to define the state id followed by a colon and the description: + +```mermaid-example +stateDiagram-v2 + s2 : This is a state description +``` + +```mermaid +stateDiagram-v2 + s2 : This is a state description +``` + +## Transitions + +Transitions are path/edges when one state passes into another. This is represented using text arrow, "-->". + +When you define a transition between two states and the states are not already defined the undefined states are defined with the id from the transition. You can later add descriptions to states defined this way. + +```mermaid-example +stateDiagram-v2 + s1 --> s2 +``` + +```mermaid +stateDiagram-v2 + s1 --> s2 +``` + +It is possible to add text to a transition. To describe what it represents. + +```mermaid-example +stateDiagram-v2 + s1 --> s2: A transition +``` + +```mermaid +stateDiagram-v2 + s1 --> s2: A transition +``` + +## Start and End + +There are two special states indicating the start and stop of the diagram. These are written with the \[\*] syntax and the direction of the transition to it defines it either as a start or a stop state. + +```mermaid-example +stateDiagram-v2 + [*] --> s1 + s1 --> [*] +``` + +```mermaid +stateDiagram-v2 + [*] --> s1 + s1 --> [*] +``` + +## Composite states + +In a real world use of state diagrams you often end up with diagrams that are multi-dimensional as one state can +have several internal states. These are called composite states in this terminology. + +In order to define a composite state you need to use the state keyword followed by an id and the body of the composite state between {}. See the example below: + +```mermaid-example +stateDiagram-v2 + [*] --> First + state First { + [*] --> second + second --> [*] + } +``` + +```mermaid +stateDiagram-v2 + [*] --> First + state First { + [*] --> second + second --> [*] + } +``` + +You can do this in several layers: + +```mermaid-example +stateDiagram-v2 + [*] --> First + + state First { + [*] --> Second + + state Second { + [*] --> second + second --> Third + + state Third { + [*] --> third + third --> [*] + } + } + } +``` + +```mermaid +stateDiagram-v2 + [*] --> First + + state First { + [*] --> Second + + state Second { + [*] --> second + second --> Third + + state Third { + [*] --> third + third --> [*] + } + } + } +``` + +You can also define transitions also between composite states: + +```mermaid-example +stateDiagram-v2 + [*] --> First + First --> Second + First --> Third + + state First { + [*] --> fir + fir --> [*] + } + state Second { + [*] --> sec + sec --> [*] + } + state Third { + [*] --> thi + thi --> [*] + } +``` + +```mermaid +stateDiagram-v2 + [*] --> First + First --> Second + First --> Third + + state First { + [*] --> fir + fir --> [*] + } + state Second { + [*] --> sec + sec --> [*] + } + state Third { + [*] --> thi + thi --> [*] + } +``` + +_You can not define transitions between internal states belonging to different composite states_ + +## Choice + +Sometimes you need to model a choice between two or more paths, you can do so using <\>. + +```mermaid-example +stateDiagram-v2 + state if_state <> + [*] --> IsPositive + IsPositive --> if_state + if_state --> False: if n < 0 + if_state --> True : if n >= 0 +``` + +```mermaid +stateDiagram-v2 + state if_state <> + [*] --> IsPositive + IsPositive --> if_state + if_state --> False: if n < 0 + if_state --> True : if n >= 0 +``` + +## Forks + +It is possible to specify a fork in the diagram using <\> <\>. + +```mermaid-example + stateDiagram-v2 + state fork_state <> + [*] --> fork_state + fork_state --> State2 + fork_state --> State3 + + state join_state <> + State2 --> join_state + State3 --> join_state + join_state --> State4 + State4 --> [*] +``` + +```mermaid + stateDiagram-v2 + state fork_state <> + [*] --> fork_state + fork_state --> State2 + fork_state --> State3 + + state join_state <> + State2 --> join_state + State3 --> join_state + join_state --> State4 + State4 --> [*] +``` + +## Notes + +Sometimes nothing says it better then a Post-it note. That is also the case in state diagrams. + +Here you can choose to put the note to the _right of_ or to the _left of_ a node. + +```mermaid-example + stateDiagram-v2 + State1: The state with a note + note right of State1 + Important information! You can write + notes. + end note + State1 --> State2 + note left of State2 : This is the note to the left. +``` + +```mermaid + stateDiagram-v2 + State1: The state with a note + note right of State1 + Important information! You can write + notes. + end note + State1 --> State2 + note left of State2 : This is the note to the left. +``` + +## Concurrency + +As in plantUml you can specify concurrency using the -- symbol. + +```mermaid-example +stateDiagram-v2 + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvScrollLockPressed + ScrollLockOn --> ScrollLockOff : EvScrollLockPressed + } +``` + +```mermaid +stateDiagram-v2 + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvScrollLockPressed + ScrollLockOn --> ScrollLockOff : EvScrollLockPressed + } +``` + +## Setting the direction of the diagram + +With state diagrams you can use the direction statement to set the direction which the diagram will render like in this example. + +```mermaid-example +stateDiagram + direction LR + [*] --> A + A --> B + B --> C + state B { + direction LR + a --> b + } + B --> D +``` + +```mermaid +stateDiagram + direction LR + [*] --> A + A --> B + B --> C + state B { + direction LR + a --> b + } + B --> D +``` + +## Comments + +Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax + +```mermaid-example +stateDiagram-v2 + [*] --> Still + Still --> [*] +%% this is a comment + Still --> Moving + Moving --> Still %% another comment + Moving --> Crash + Crash --> [*] +``` + +```mermaid +stateDiagram-v2 + [*] --> Still + Still --> [*] +%% this is a comment + Still --> Moving + Moving --> Still %% another comment + Moving --> Crash + Crash --> [*] +``` + +## Styling + +Styling of the a state diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/state.scss + +## Spaces in state names + +Spaces can be added to a state by defining it at the top and referencing the acronym later. + +```mermaid-example +stateDiagram-v2 + Yswsii: Your state with spaces in it + [*] --> Yswsii +``` + +```mermaid +stateDiagram-v2 + Yswsii: Your state with spaces in it + [*] --> Yswsii +``` diff --git a/docs/syntax/userJourney.md b/docs/syntax/userJourney.md new file mode 100644 index 0000000000..73fcb7468e --- /dev/null +++ b/docs/syntax/userJourney.md @@ -0,0 +1,40 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/userJourney.md](../../packages/mermaid/src/docs/syntax/userJourney.md). + +# User Journey Diagram + +> User journeys describe at a high level of detail exactly what steps different users take to complete a specific task within a system, application or website. This technique shows the current (as-is) user workflow, and reveals areas of improvement for the to-be workflow. (Wikipedia) + +Mermaid can render user journey diagrams: + +```mermaid-example +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +```mermaid +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` + +Each user journey is split into sections, these describe the part of the task +the user is trying to complete. + +Tasks syntax is `Task name: : ` From de8ce77f3783f77a4931b4b48b72d775ed8c9e65 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 02:17:16 +0530 Subject: [PATCH 0694/1038] fix Lint --- .prettierignore | 3 ++- packages/mermaid/package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.prettierignore b/.prettierignore index fe2c55574b..b66f97d1ca 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,5 @@ cypress/platform/xss3.html .cache coverage # Autogenerated by PNPM -pnpm-lock.yaml \ No newline at end of file +pnpm-lock.yaml +stats \ No newline at end of file diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 74ff6b9025..26e846c202 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -104,4 +104,4 @@ "**/*.css", "**/*.scss" ] -} \ No newline at end of file +} From b75ce7af45c94f23409931d760c5a0d9d1d89565 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 08:18:08 +0530 Subject: [PATCH 0695/1038] Update .vite/build.ts Co-authored-by: Alois Klink --- .vite/build.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.vite/build.ts b/.vite/build.ts index 07b20a3859..1be46ad5ad 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -80,6 +80,8 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) ); // Core build is used to generate file without bundled dependencies. // This is used by downstream projects to bundle dependencies themselves. + // Ignore dependencies and any dependencies of dependencies + // Adapted from the RegEx used by `rollup-plugin-node` external.push(new RegExp('^(?:' + Object.keys(dependencies).join('|') + ')(?:/.+)?$')); // This needs to be an array. Otherwise vite will build esm & umd with same name and overwrite esm with umd. output = [ From de99cdfb4cc7db05778a19102fd3cca47ae66d50 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 08:22:10 +0530 Subject: [PATCH 0696/1038] chore: Add size shield in readme Co-authored-by: Alois Klink --- README.md | 2 +- README.zh-CN.md | 2 +- docs/intro/index.md | 2 +- packages/mermaid/README.md | 2 +- packages/mermaid/README.zh-CN.md | 2 +- packages/mermaid/src/docs/intro/index.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4d66d3e6be..d4ed52485f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) # Whoa, what's going on here? diff --git a/README.zh-CN.md b/README.zh-CN.md index 62eba5244e..4bdbc4ae7d 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) [English](./README.md) | 简体中文 diff --git a/docs/intro/index.md b/docs/intro/index.md index a3ed371ac7..b8a27acff2 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -14,7 +14,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md index 90ae1ad4cd..567f522cfd 100644 --- a/packages/mermaid/README.md +++ b/packages/mermaid/README.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) # Whoa, what's going on here? diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md index fcaa1f5234..0ccef27e48 100644 --- a/packages/mermaid/README.zh-CN.md +++ b/packages/mermaid/README.zh-CN.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) [English](./README.md) | 简体中文 diff --git a/packages/mermaid/src/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md index 80d8067309..b58321e750 100644 --- a/packages/mermaid/src/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -8,7 +8,7 @@ It is a JavaScript based diagramming and charting tool that renders Markdown-ins -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) From a8c5f6d517a966735fa8c98fba71902c0e657970 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 01:49:48 +0000 Subject: [PATCH 0697/1038] chore(deps): update lycheeverse/lychee-action action to v1.5.4 --- .github/workflows/link-checker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index 0a499f2d67..fbf03cb398 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -36,7 +36,7 @@ jobs: restore-keys: cache-lychee- - name: Link Checker - uses: lycheeverse/lychee-action@v1.5.2 + uses: lycheeverse/lychee-action@v1.5.4 with: args: --verbose --no-progress --cache --max-cache-age 1d packages/mermaid/src/docs/**/*.md README.md README.zh-CN.md fail: true From 1f64302ae213b4c057fb4268288fbc72ea705fe7 Mon Sep 17 00:00:00 2001 From: Dan Fallon Date: Sun, 20 Nov 2022 22:42:26 -0600 Subject: [PATCH 0698/1038] Use stylis to prepend idSelector code previously manually inserted idSelector before the generated CSS. This could produce incorrect CSS. Adding & in front of rules will ensure that it behaves properly. Stylis seems permissive about the lack of nesting selector, but fails if there is no selector at all. (e.g. "{...props...}") We should probably do this for each diagram's style.ts files as well --- packages/mermaid/src/mermaidAPI.ts | 4 ++-- packages/mermaid/src/styles.ts | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 0df1da305f..d9ef9a5618 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -510,7 +510,7 @@ const render = function ( ); const style1 = document.createElement('style'); - style1.innerHTML = `${idSelector} ` + rules; + style1.innerHTML = rules; svg.insertBefore(style1, firstChild); // ------------------------------------------------------------------------------- @@ -706,7 +706,7 @@ const renderAsync = async function ( ); const style1 = document.createElement('style'); - style1.innerHTML = `${idSelector} ` + rules; + style1.innerHTML = rules; svg.insertBefore(style1, firstChild); // ------------------------------------------------------------------------------- diff --git a/packages/mermaid/src/styles.ts b/packages/mermaid/src/styles.ts index 0c4a7e1a58..055f63be5d 100644 --- a/packages/mermaid/src/styles.ts +++ b/packages/mermaid/src/styles.ts @@ -53,7 +53,7 @@ const getStyles = ( } else { log.warn(`No theme found for ${type}`); } - return ` { + return ` & { font-family: ${options.fontFamily}; font-size: ${options.fontSize}; fill: ${options.textColor} @@ -61,40 +61,40 @@ const getStyles = ( /* Classes common for multiple diagrams */ - .error-icon { + & .error-icon { fill: ${options.errorBkgColor}; } - .error-text { + & .error-text { fill: ${options.errorTextColor}; stroke: ${options.errorTextColor}; } - .edge-thickness-normal { + & .edge-thickness-normal { stroke-width: 2px; } - .edge-thickness-thick { + & .edge-thickness-thick { stroke-width: 3.5px } - .edge-pattern-solid { + & .edge-pattern-solid { stroke-dasharray: 0; } - .edge-pattern-dashed{ + & .edge-pattern-dashed{ stroke-dasharray: 3; } .edge-pattern-dotted { stroke-dasharray: 2; } - .marker { + & .marker { fill: ${options.lineColor}; stroke: ${options.lineColor}; } - .marker.cross { + & .marker.cross { stroke: ${options.lineColor}; } - svg { + & svg { font-family: ${options.fontFamily}; font-size: ${options.fontSize}; } From ed6ad77fd91a33d8c2e723e4199bb41db5edfd8d Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 11:52:57 +0530 Subject: [PATCH 0699/1038] docs: Remove warning in readme --- README.md | 17 ----------------- packages/mermaid/README.md | 17 ----------------- 2 files changed, 34 deletions(-) diff --git a/README.md b/README.md index 4d66d3e6be..9d4b44906b 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,6 @@ [![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) -# Whoa, what's going on here? - -We are transforming the Mermaid repository to a so called mono-repo. This is a part of the effort to decouple the diagrams from the core of mermaid. This will: - -- Make it possible to select which diagrams to include on your site -- Open up for lazy loading -- Make it possible to add diagrams from outside of the Mermaid repository -- Separate the release flow between different diagrams and the Mermaid core - -As such be aware of some changes.. - -# We use pnpm now - -# The source code has moved - -It is now located in the src folder for each respective package located as subfolders in packages. - English | [简体中文](./README.zh-CN.md) diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md index 90ae1ad4cd..e8d92350e5 100644 --- a/packages/mermaid/README.md +++ b/packages/mermaid/README.md @@ -2,23 +2,6 @@ [![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) -# Whoa, what's going on here? - -We are transforming the Mermaid repository to a so called mono-repo. This is a part of the effort to decouple the diagrams from the core of mermaid. This will: - -- Make it possible to select which diagrams to include on your site -- Open up for lazy loading -- Make it possible to add diagrams from outside of the Mermaid repository -- Separate the release flow between different diagrams and the Mermaid core - -As such be aware of some changes.. - -# We use pnpm now - -# The source code has moved - -It is now located in the src folder for each respective package located as subfolders in packages. - English | [简体中文](./README.zh-CN.md) From b9f0c7c807955fe3fd26155c81f763b18e950084 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 07:10:09 +0000 Subject: [PATCH 0700/1038] chore(deps): update pnpm to v7.17.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7bd6488777..b04c8cf322 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.2.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.15.0", + "packageManager": "pnpm@7.17.0", "keywords": [ "diagram", "markdown", From 564414ecac7f70c7e6b3847c455cf0731e07c3c2 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 21 Nov 2022 13:23:25 +0100 Subject: [PATCH 0701/1038] #3882 fix for issues with mindmaps with only a single node --- packages/mermaid-mindmap/src/mindmapRenderer.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index c0760e4ac0..9fd557e516 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -92,10 +92,6 @@ function addNodes(mindmap, cy, conf, level) { */ function layoutMindmap(node, conf) { return new Promise((resolve) => { - if (node.children.length === 0) { - return node; - } - // Add temporary render element const renderEl = select('body').append('div').attr('id', 'cy').attr('style', 'display:none'); const cy = cytoscape({ From 89488b60a495f7e97738a42e6c996f333cac2235 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 21 Nov 2022 18:06:53 +0530 Subject: [PATCH 0702/1038] Formatting --- demos/journey.html | 2 +- packages/mermaid/src/diagrams/er/styles.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demos/journey.html b/demos/journey.html index 9ccc8dd3de..dadcfb13c0 100644 --- a/demos/journey.html +++ b/demos/journey.html @@ -17,7 +17,7 @@

        Journey diagram demo

         ---
        -title: My working day
        +title: My working day 
         ---
              journey
               accTitle: Very simple journey demo
        diff --git a/packages/mermaid/src/diagrams/er/styles.js b/packages/mermaid/src/diagrams/er/styles.js
        index 7a525e28a0..42dbcebdee 100644
        --- a/packages/mermaid/src/diagrams/er/styles.js
        +++ b/packages/mermaid/src/diagrams/er/styles.js
        @@ -32,7 +32,7 @@ const getStyles = (options) =>
             text-anchor: middle;
             font-size: 18px;
             fill: ${options.textColor};
        -  }
        +  }    
         `;
         
         export default getStyles;
        
        From 9b01a07b9d8db53165873b20c3ec3d99039ac641 Mon Sep 17 00:00:00 2001
        From: Sidharth Vinod 
        Date: Mon, 21 Nov 2022 18:13:35 +0530
        Subject: [PATCH 0703/1038] Fix lodash import
        
        ---
         packages/mermaid/src/utils.spec.js | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js
        index 4d3e07e6b5..54262f10ee 100644
        --- a/packages/mermaid/src/utils.spec.js
        +++ b/packages/mermaid/src/utils.spec.js
        @@ -3,7 +3,7 @@ import utils from './utils';
         import assignWithDepth from './assignWithDepth';
         import { detectType } from './diagram-api/detectType';
         import { addDiagrams } from './diagram-api/diagram-orchestration';
        -import memoize from 'lodash/memoize';
        +import memoize from 'lodash-es/memoize';
         import { MockD3 } from 'd3';
         addDiagrams();
         
        
        From 78b7941f2d43a7f8bf62aa056ac84e01f8425e4e Mon Sep 17 00:00:00 2001
        From: Knut Sveidqvist 
        Date: Mon, 21 Nov 2022 14:06:09 +0100
        Subject: [PATCH 0704/1038] #3835 Adding path to list of elements to be styled
        
        ---
         packages/mermaid/src/mermaidAPI.ts | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
        index 0df1da305f..50e1c70a88 100644
        --- a/packages/mermaid/src/mermaidAPI.ts
        +++ b/packages/mermaid/src/mermaidAPI.ts
        @@ -194,7 +194,7 @@ export const createCssStyles = (
               const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; // TODO why specifically check the Flowchart diagram config?
         
               const cssHtmlElements = ['> *', 'span']; // TODO make a constant
        -      const cssShapeElements = ['rect', 'polygon', 'ellipse', 'circle']; // TODO make a constant
        +      const cssShapeElements = ['rect', 'polygon', 'ellipse', 'circle', 'path']; // TODO make a constant
         
               const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
         
        
        From f9222a3bf4721d6f60196c34addaede7502e60bd Mon Sep 17 00:00:00 2001
        From: Knut Sveidqvist 
        Date: Mon, 21 Nov 2022 14:30:06 +0100
        Subject: [PATCH 0705/1038] #3831 Re-enabling themes for er diagrams
        
        ---
         .../mermaid/src/diagrams/er/erRenderer.js     | 19 +------------------
         1 file changed, 1 insertion(+), 18 deletions(-)
        
        diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js
        index a08f166c42..d0771fe390 100644
        --- a/packages/mermaid/src/diagrams/er/erRenderer.js
        +++ b/packages/mermaid/src/diagrams/er/erRenderer.js
        @@ -211,9 +211,6 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => {
               const typeRect = groupNode
                 .insert('rect', '#' + attributeNode.tn.node().id)
                 .classed(`er ${attribStyle}`, true)
        -        .style('fill', conf.fill)
        -        .style('fill-opacity', '100%')
        -        .style('stroke', conf.stroke)
                 .attr('x', 0)
                 .attr('y', heightOffset)
                 .attr('width', maxTypeWidth + widthPadding * 2 + spareColumnWidth)
        @@ -231,9 +228,6 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => {
               const nameRect = groupNode
                 .insert('rect', '#' + attributeNode.nn.node().id)
                 .classed(`er ${attribStyle}`, true)
        -        .style('fill', conf.fill)
        -        .style('fill-opacity', '100%')
        -        .style('stroke', conf.stroke)
                 .attr('x', nameXOffset)
                 .attr('y', heightOffset)
                 .attr('width', maxNameWidth + widthPadding * 2 + spareColumnWidth)
        @@ -253,9 +247,6 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => {
                 const keyTypeRect = groupNode
                   .insert('rect', '#' + attributeNode.kn.node().id)
                   .classed(`er ${attribStyle}`, true)
        -          .style('fill', conf.fill)
        -          .style('fill-opacity', '100%')
        -          .style('stroke', conf.stroke)
                   .attr('x', keyTypeAndCommentXOffset)
                   .attr('y', heightOffset)
                   .attr('width', maxKeyWidth + widthPadding * 2 + spareColumnWidth)
        @@ -276,9 +267,6 @@ const drawAttributes = (groupNode, entityTextNode, attributes) => {
                 groupNode
                   .insert('rect', '#' + attributeNode.cn.node().id)
                   .classed(`er ${attribStyle}`, 'true')
        -          .style('fill', conf.fill)
        -          .style('fill-opacity', '100%')
        -          .style('stroke', conf.stroke)
                   .attr('x', keyTypeAndCommentXOffset)
                   .attr('y', heightOffset)
                   .attr('width', maxCommentWidth + widthPadding * 2 + spareColumnWidth)
        @@ -348,9 +336,6 @@ const drawEntities = function (svgNode, entities, graph) {
             const rectNode = groupNode
               .insert('rect', '#' + textId)
               .classed('er entityBox', true)
        -      .style('fill', conf.fill)
        -      .style('fill-opacity', '100%')
        -      .style('stroke', conf.stroke)
               .attr('x', 0)
               .attr('y', 0)
               .attr('width', entityWidth)
        @@ -548,9 +533,7 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) {
             .attr('x', labelPoint.x - labelBBox.width / 2)
             .attr('y', labelPoint.y - labelBBox.height / 2)
             .attr('width', labelBBox.width)
        -    .attr('height', labelBBox.height)
        -    .style('fill', 'white')
        -    .style('fill-opacity', '85%');
        +    .attr('height', labelBBox.height);
         };
         
         /**
        
        From 22993e8b6c47b571f2935333f74af650a938b683 Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Mon, 21 Nov 2022 16:35:02 -0800
        Subject: [PATCH 0706/1038] remove console stmt
        
        ---
         packages/mermaid/src/diagrams/pie/pieDetector.ts | 1 -
         1 file changed, 1 deletion(-)
        
        diff --git a/packages/mermaid/src/diagrams/pie/pieDetector.ts b/packages/mermaid/src/diagrams/pie/pieDetector.ts
        index 9010f8a96e..e267c710ab 100644
        --- a/packages/mermaid/src/diagrams/pie/pieDetector.ts
        +++ b/packages/mermaid/src/diagrams/pie/pieDetector.ts
        @@ -2,6 +2,5 @@ import type { DiagramDetector } from '../../diagram-api/types';
         
         export const pieDetector: DiagramDetector = (txt) => {
           const logOutput = txt.match(/^\s*pie/) !== null || txt.match(/^\s*bar/) !== null;
        -  console.log(logOutput);
           return logOutput;
         };
        
        From e1c2b1ddb54d00697985620f7b16d1f7cd2c993c Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Mon, 21 Nov 2022 16:28:47 -0800
        Subject: [PATCH 0707/1038] refine - what is not done yet
        
        ---
         docs/syntax/stateDiagram.md                   | 240 ++++++++++++++++--
         .../mermaid/src/docs/syntax/stateDiagram.md   | 190 ++++++++++++--
         2 files changed, 388 insertions(+), 42 deletions(-)
        
        diff --git a/docs/syntax/stateDiagram.md b/docs/syntax/stateDiagram.md
        index 1cec5afca1..afb1349efe 100644
        --- a/docs/syntax/stateDiagram.md
        +++ b/docs/syntax/stateDiagram.md
        @@ -6,9 +6,12 @@
         
         # State diagrams
         
        -> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction." Wikipedia
        +> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems.
        +> State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the
        +> case, while at other times this is a reasonable abstraction." Wikipedia
         
        -Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml.
        +Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make
        +it easier for users to share diagrams between mermaid and plantUml.
         
         ```mermaid-example
         ---
        @@ -62,20 +65,23 @@ stateDiagram
             Crash --> [*]
         ```
         
        -In state diagrams systems are described in terms of its states and how the systems state can change to another state via a transitions. The example diagram above shows three states **Still**, **Moving** and **Crash**. You start in the state of Still. From Still you can change the state to Moving. In Moving you can change the state either back to Still or to Crash. There is no transition from Still to Crash.
        +In state diagrams systems are described in terms of _states_ and how one _state_ can change to another _state_ via
        +a _transition._ The example diagram above shows three states: **Still**, **Moving** and **Crash**. You start in the
        +**Still** state. From **Still** you can change to the **Moving** state. From **Moving** you can change either back to the **Still** state or to
        +the **Crash** state. There is no transition from **Still** to **Crash**. (You can't crash if you're still.)
         
         ## States
         
        -A state can be declared in multiple ways. The simplest way is to define a state id as a description.
        +A state can be declared in multiple ways. The simplest way is to define a state with just an id:
         
         ```mermaid-example
         stateDiagram-v2
        -    s1
        +    stateId
         ```
         
         ```mermaid
         stateDiagram-v2
        -    s1
        +    stateId
         ```
         
         Another way is by using the state keyword with a description as per below:
        @@ -106,7 +112,8 @@ stateDiagram-v2
         
         Transitions are path/edges when one state passes into another. This is represented using text arrow, "-->".
         
        -When you define a transition between two states and the states are not already defined the undefined states are defined with the id from the transition. You can later add descriptions to states defined this way.
        +When you define a transition between two states and the states are not already defined, the undefined states are defined
        +with the id from the transition. You can later add descriptions to states defined this way.
         
         ```mermaid-example
         stateDiagram-v2
        @@ -118,7 +125,7 @@ stateDiagram-v2
             s1 --> s2
         ```
         
        -It is possible to add text to a transition. To describe what it represents.
        +It is possible to add text to a transition to describe what it represents:
         
         ```mermaid-example
         stateDiagram-v2
        @@ -132,7 +139,8 @@ stateDiagram-v2
         
         ## Start and End
         
        -There are two special states indicating the start and stop of the diagram. These are written with the \[\*] syntax and the direction of the transition to it defines it either as a start or a stop state.
        +There are two special states indicating the start and stop of the diagram. These are written with the \[\*] syntax and
        +the direction of the transition to it defines it either as a start or a stop state.
         
         ```mermaid-example
         stateDiagram-v2
        @@ -148,10 +156,11 @@ stateDiagram-v2
         
         ## Composite states
         
        -In a real world use of state diagrams you often end up with diagrams that are multi-dimensional as one state can
        +In a real world use of state diagrams you often end up with diagrams that are multidimensional as one state can
         have several internal states. These are called composite states in this terminology.
         
        -In order to define a composite state you need to use the state keyword followed by an id and the body of the composite state between {}. See the example below:
        +In order to define a composite state you need to use the state keyword followed by an id and the body of the composite
        +state between {}. See the example below:
         
         ```mermaid-example
         stateDiagram-v2
        @@ -311,7 +320,7 @@ It is possible to specify a fork in the diagram using <\> <\>.
         
         ## Notes
         
        -Sometimes nothing says it better then a Post-it note. That is also the case in state diagrams.
        +Sometimes nothing says it better than a Post-it note. That is also the case in state diagrams.
         
         Here you can choose to put the note to the _right of_ or to the _left of_ a node.
         
        @@ -381,7 +390,8 @@ stateDiagram-v2
         
         ## Setting the direction of the diagram
         
        -With state diagrams you can use the direction statement to set the direction which the diagram will render like in this example.
        +With state diagrams you can use the direction statement to set the direction which the diagram will render like in this
        +example.
         
         ```mermaid-example
         stateDiagram
        @@ -411,7 +421,9 @@ stateDiagram
         
         ## Comments
         
        -Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax
        +Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their
        +own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next
        +newline will be treated as a comment, including any diagram syntax
         
         ```mermaid-example
         stateDiagram-v2
        @@ -435,22 +447,204 @@ stateDiagram-v2
             Crash --> [*]
         ```
         
        -## Styling
        +## Styling with classDefs
         
        -Styling of the a state diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/state.scss
        +As with other diagrams (like flowcharts), you can define a style in the diagram itself and apply that named style to a
        +state or states in the diagram.
        +
        +**These are the current limitations with state diagram classDefs:**
        +
        +1.  They cannot be applied to start or end states
        +2.  The cannot be applied to or within composite states
        +
        +_These are in development and will be available in a future version._
        +
        +You define a style using the `classDef` keyword, which is short for "class definition" (where "class" means something
        +like a _CSS class_)
        +followed by _a name for the style,_
        +and then one or more _property-value pairs_. Each _property-value pair_ is
        +a _[valid CSS property name](https://www.w3.org/TR/CSS/#properties)_ followed by a colon (`:`) and then a _value._
        +
        +Here is an example of a classDef with just one property-value pair:
        +
        +        classDef movement font-style:italic;
        +
        +where
        +
        +- the _name_ of the style is `movement`
        +- the only _property_ is `font-style` and its _value_ is `italic`
        +
        +If you want to have more than one _property-value pair_ then you put a comma (`,`) between each _property-value pair._
        +
        +Here is an example with three property-value pairs:
        +
        +        classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +where
        +
        +- the _name_ of the style is `badBadEvent`
        +- the first _property_ is `fill` and its _value_ is `#f00`
        +- the second _property_ is `color` and its _value_ is `white`
        +- the third _property_ is `font-weight` and its _value_ is `bold`
        +- the fourth _property_ is `stroke-width` and its _value_ is `2px`
        +- the fifth _property_ is `stroke` and its _value_ is `yello`
        +
        +### Apply classDef styles to states
        +
        +There are two ways to apply a `classDef` style to a state:
        +
        +1.  use the `class` keyword to apply a classDef style to one or more states in a single statement, or
        +2.  use the `:::` operator to apply a classDef style to a state as it is being used in a transition statement (e.g. with an arrow
        +    to/from another state)
        +
        +#### 1. `class` statement
        +
        +A `class` statement tells Mermaid to apply the named classDef to one or more classes. The form is:
        +
        +```text
        +    class [one or more state names, separated by commas] [name of a style defined with classDef]
        +```
        +
        +Here is an example applying the `badBadEvent` style to a state named `Crash`:
        +
        +```text
        +class Crash badBadEvent
        +```
        +
        +Here is an example applying the `movement` style to the two states `Moving` and `Crash`:
        +
        +```text
        +class Moving, Crash movement
        +```
        +
        +Here is a diagram that shows the examples in use. Note that the `Crash` state has two classDef styles applied: `movement`
        +and `badBadEvent`
        +
        +```mermaid-example
        +   stateDiagram
        +   direction TB
        +
        +   accTitle: This is the accessible title
        +   accDescr: This is an accessible description
        +
        +   classDef notMoving fill:white
        +   classDef movement font-style:italic
        +   classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +   [*]--> Still
        +   Still --> [*]
        +   Still --> Moving
        +   Moving --> Still
        +   Moving --> Crash
        +   Crash --> [*]
        +
        +   class Still notMoving
        +   class Moving, Crash movement
        +   class Crash badBadEvent
        +   class end badBadEvent
        +```
        +
        +```mermaid
        +   stateDiagram
        +   direction TB
        +
        +   accTitle: This is the accessible title
        +   accDescr: This is an accessible description
        +
        +   classDef notMoving fill:white
        +   classDef movement font-style:italic
        +   classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +   [*]--> Still
        +   Still --> [*]
        +   Still --> Moving
        +   Moving --> Still
        +   Moving --> Crash
        +   Crash --> [*]
        +
        +   class Still notMoving
        +   class Moving, Crash movement
        +   class Crash badBadEvent
        +   class end badBadEvent
        +```
        +
        +#### 2. `:::` operator to apply a style to a state
        +
        +You can apply a classDef style to a state using the `:::` (three colons) operator. The syntax is
        +
        +```text
        +[state]:::[style name]
        +```
        +
        +You can use this in a diagram within a statement using a class. This includes the start and end states. For example:
        +
        +```mermaid-example
        +stateDiagram
        +   direction TB
        +
        +   accTitle: This is the accessible title
        +   accDescr: This is an accessible description
        +
        +   classDef notMoving fill:white
        +   classDef movement font-style:italic;
        +   classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +   [*] --> Still:::notMoving
        +   Still --> [*]
        +   Still --> Moving:::movement
        +   Moving --> Still
        +   Moving --> Crash:::movement
        +   Crash:::badBadEvent --> [*]
        +```
        +
        +```mermaid
        +stateDiagram
        +   direction TB
        +
        +   accTitle: This is the accessible title
        +   accDescr: This is an accessible description
        +
        +   classDef notMoving fill:white
        +   classDef movement font-style:italic;
        +   classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +   [*] --> Still:::notMoving
        +   Still --> [*]
        +   Still --> Moving:::movement
        +   Moving --> Still
        +   Moving --> Crash:::movement
        +   Crash:::badBadEvent --> [*]
        +```
         
         ## Spaces in state names
         
        -Spaces can be added to a state by defining it at the top and referencing the acronym later.
        +Spaces can be added to a state by first defining the state with an id and then referencing the id later.
        +
        +In the following example there is a state with the id **yswsii** and description **Your state with spaces in it**.
        +After it has been defined, **yswsii** is used in the diagram in the first transition (`[*] --> yswsii`)
        +and also in the transition to **YetAnotherState** (`yswsii --> YetAnotherState`).\
        +(**yswsii** has been styled so that it is different from the other states.)
         
         ```mermaid-example
        -stateDiagram-v2
        -    Yswsii: Your state with spaces in it
        -    [*] --> Yswsii
        +stateDiagram
        +    classDef yourState font-style:italic,font-weight:bold,fill:white
        +
        +    yswsii: Your state with spaces in it
        +    [*] --> yswsii:::yourState
        +    [*] --> SomeOtherState
        +    SomeOtherState --> YetAnotherState
        +    yswsii --> YetAnotherState
        +    YetAnotherState --> [*]
         ```
         
         ```mermaid
        -stateDiagram-v2
        -    Yswsii: Your state with spaces in it
        -    [*] --> Yswsii
        +stateDiagram
        +    classDef yourState font-style:italic,font-weight:bold,fill:white
        +
        +    yswsii: Your state with spaces in it
        +    [*] --> yswsii:::yourState
        +    [*] --> SomeOtherState
        +    SomeOtherState --> YetAnotherState
        +    yswsii --> YetAnotherState
        +    YetAnotherState --> [*]
         ```
        diff --git a/packages/mermaid/src/docs/syntax/stateDiagram.md b/packages/mermaid/src/docs/syntax/stateDiagram.md
        index 9293e10839..3687518b28 100644
        --- a/packages/mermaid/src/docs/syntax/stateDiagram.md
        +++ b/packages/mermaid/src/docs/syntax/stateDiagram.md
        @@ -1,8 +1,11 @@
         # State diagrams
         
        -> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction." Wikipedia
        +> "A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems.
        +> State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the
        +> case, while at other times this is a reasonable abstraction." Wikipedia
         
        -Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make it easier for users to share diagrams between mermaid and plantUml.
        +Mermaid can render state diagrams. The syntax tries to be compliant with the syntax used in plantUml as this will make
        +it easier for users to share diagrams between mermaid and plantUml.
         
         ```mermaid-example
         ---
        @@ -31,15 +34,18 @@ stateDiagram
             Crash --> [*]
         ```
         
        -In state diagrams systems are described in terms of its states and how the systems state can change to another state via a transitions. The example diagram above shows three states **Still**, **Moving** and **Crash**. You start in the state of Still. From Still you can change the state to Moving. In Moving you can change the state either back to Still or to Crash. There is no transition from Still to Crash.
        +In state diagrams systems are described in terms of _states_ and how one _state_ can change to another _state_ via
        +a _transition._ The example diagram above shows three states: **Still**, **Moving** and **Crash**. You start in the 
        + **Still** state. From **Still** you can change to the **Moving** state. From **Moving** you can change either back to the **Still** state or to
        +the **Crash** state. There is no transition from **Still** to **Crash**. (You can't crash if you're still.)
         
         ## States
         
        -A state can be declared in multiple ways. The simplest way is to define a state id as a description.
        +A state can be declared in multiple ways. The simplest way is to define a state with just an id:
         
         ```mermaid-example
         stateDiagram-v2
        -    s1
        +    stateId
         ```
         
         Another way is by using the state keyword with a description as per below:
        @@ -60,14 +66,15 @@ stateDiagram-v2
         
         Transitions are path/edges when one state passes into another. This is represented using text arrow, "\-\-\>".
         
        -When you define a transition between two states and the states are not already defined the undefined states are defined with the id from the transition. You can later add descriptions to states defined this way.
        +When you define a transition between two states and the states are not already defined, the undefined states are defined
        +with the id from the transition. You can later add descriptions to states defined this way.
         
         ```mermaid-example
         stateDiagram-v2
             s1 --> s2
         ```
         
        -It is possible to add text to a transition. To describe what it represents.
        +It is possible to add text to a transition to describe what it represents:
         
         ```mermaid-example
         stateDiagram-v2
        @@ -76,7 +83,8 @@ stateDiagram-v2
         
         ## Start and End
         
        -There are two special states indicating the start and stop of the diagram. These are written with the [\*] syntax and the direction of the transition to it defines it either as a start or a stop state.
        +There are two special states indicating the start and stop of the diagram. These are written with the [\*] syntax and
        +the direction of the transition to it defines it either as a start or a stop state.
         
         ```mermaid-example
         stateDiagram-v2
        @@ -86,10 +94,11 @@ stateDiagram-v2
         
         ## Composite states
         
        -In a real world use of state diagrams you often end up with diagrams that are multi-dimensional as one state can
        +In a real world use of state diagrams you often end up with diagrams that are multidimensional as one state can
         have several internal states. These are called composite states in this terminology.
         
        -In order to define a composite state you need to use the state keyword followed by an id and the body of the composite state between \{\}. See the example below:
        +In order to define a composite state you need to use the state keyword followed by an id and the body of the composite
        +state between \{\}. See the example below:
         
         ```mermaid-example
         stateDiagram-v2
        @@ -178,7 +187,7 @@ It is possible to specify a fork in the diagram using <<fork>> <&
         
         ## Notes
         
        -Sometimes nothing says it better then a Post-it note. That is also the case in state diagrams.
        +Sometimes nothing says it better than a Post-it note. That is also the case in state diagrams.
         
         Here you can choose to put the note to the _right of_ or to the _left of_ a node.
         
        @@ -218,7 +227,8 @@ stateDiagram-v2
         
         ## Setting the direction of the diagram
         
        -With state diagrams you can use the direction statement to set the direction which the diagram will render like in this example.
        +With state diagrams you can use the direction statement to set the direction which the diagram will render like in this
        +example.
         
         ```mermaid-example
         stateDiagram
        @@ -235,7 +245,9 @@ stateDiagram
         
         ## Comments
         
        -Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax
        +Comments can be entered within a state diagram chart, which will be ignored by the parser. Comments need to be on their
        +own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next
        +newline will be treated as a comment, including any diagram syntax
         
         ```mmd
         stateDiagram-v2
        @@ -248,16 +260,156 @@ stateDiagram-v2
             Crash --> [*]
         ```
         
        -## Styling
        +## Styling with classDefs
        +
        +As with other diagrams (like flowcharts), you can define a style in the diagram itself and apply that named style to a
        +state or states in the diagram.
        +
        +**These are the current limitations with state diagram classDefs:**
        +1. They cannot be applied to start or end states
        +2. The cannot be applied to or within composite states
        +
        +_These are in development and will be available in a future version._
        +
        +
        +You define a style using the `classDef` keyword, which is short for "class definition" (where "class" means something
        +like a _CSS class_)
        +followed by _a name for the style,_
        +and then one or more _property-value pairs_. Each _property-value pair_ is
        +a _[valid CSS property name](https://www.w3.org/TR/CSS/#properties)_ followed by a colon (`:`) and then a _value._
        +
        +Here is an example of a classDef with just one property-value pair:
        +
        +```
        +    classDef movement font-style:italic;
        +```
        +
        +where
        +
        +- the _name_ of the style is `movement`
        +- the only _property_ is `font-style` and its _value_ is `italic`
        +
        +If you want to have more than one _property-value pair_ then you put a comma (`,`) between each _property-value pair._
        +
        +Here is an example with three property-value pairs:
        +
        +```
        +    classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +```
        +
        +where
        +
        +- the _name_ of the style is `badBadEvent`
        +- the first _property_ is `fill` and its _value_ is `#f00`
        +- the second _property_ is `color` and its _value_ is `white`
        +- the third _property_ is `font-weight` and its _value_ is `bold`
        +- the fourth _property_ is `stroke-width` and its _value_ is `2px`
        +- the fifth _property_ is `stroke` and its _value_ is `yello`
        +
        +### Apply classDef styles to states
        +
        +There are two ways to apply a `classDef` style to a state:
        +
        +1. use the `class` keyword to apply a classDef style to one or more states in a single statement, or
        +2. use the `:::` operator to apply a classDef style to a state as it is being used in a transition statement (e.g. with an arrow
        +   to/from another state)
        +
        +
        +#### 1. `class` statement
        +
        +A `class` statement tells Mermaid to apply the named classDef to one or more classes. The form is:
        +
        +```text
        +    class [one or more state names, separated by commas] [name of a style defined with classDef]
        +```
        +
        +Here is an example applying the `badBadEvent` style to a state named `Crash`:
        +
        +```text
        +class Crash badBadEvent
        +```
        +
        +Here is an example applying the `movement` style to the two states `Moving` and `Crash`:
        +
        +```text
        +class Moving, Crash movement
        +```
        +
        +
        +Here is a diagram that shows the examples in use. Note that the `Crash` state has two classDef styles applied: `movement`
        +and `badBadEvent`
        +
        +```mermaid-example
        +   stateDiagram
        +   direction TB
        +
        +   accTitle: This is the accessible title
        +   accDescr: This is an accessible description
        +
        +   classDef notMoving fill:white
        +   classDef movement font-style:italic
        +   classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +   [*]--> Still
        +   Still --> [*]
        +   Still --> Moving
        +   Moving --> Still
        +   Moving --> Crash
        +   Crash --> [*]
        +
        +   class Still notMoving
        +   class Moving, Crash movement
        +   class Crash badBadEvent
        +   class end badBadEvent
        +```
        +
        +#### 2. `:::` operator to apply a style to a state
        +
        +You can apply a classDef style to a state using the `:::` (three colons) operator. The syntax is
        +
        +```text
        +[state]:::[style name]
        +```
        +
        +You can use this in a diagram within a statement using a class. This includes the start and end states. For example:
        +
        +```mermaid-example
        +stateDiagram
        +   direction TB
        +
        +   accTitle: This is the accessible title
        +   accDescr: This is an accessible description
        +
        +   classDef notMoving fill:white
        +   classDef movement font-style:italic;
        +   classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +   [*] --> Still:::notMoving
        +   Still --> [*]
        +   Still --> Moving:::movement
        +   Moving --> Still
        +   Moving --> Crash:::movement
        +   Crash:::badBadEvent --> [*]
        +```
        +
         
        -Styling of the a state diagram is done by defining a number of css classes. During rendering these classes are extracted from the file located at src/themes/state.scss
         
         ## Spaces in state names
         
        -Spaces can be added to a state by defining it at the top and referencing the acronym later.
        +Spaces can be added to a state by first defining the state with an id and then referencing the id later.
         
        +In the following example there is a state with the id **yswsii** and description **Your state with spaces in it**.
        +After it has been defined, **yswsii** is used in the diagram in the first transition (`[*] --> yswsii`)
        +and also in the transition to **YetAnotherState** (`yswsii --> YetAnotherState`).  
        +(**yswsii** has been styled so that it is different from the other states.)
         ```mermaid-example
        -stateDiagram-v2
        -    Yswsii: Your state with spaces in it
        -    [*] --> Yswsii
        +stateDiagram
        +    classDef yourState font-style:italic,font-weight:bold,fill:white
        +    
        +    yswsii: Your state with spaces in it
        +    [*] --> yswsii:::yourState
        +    [*] --> SomeOtherState
        +    SomeOtherState --> YetAnotherState
        +    yswsii --> YetAnotherState
        +    YetAnotherState --> [*]
         ```
        
        From 98e4b6f338cb725947bd496403c5d6bec0537b0f Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Mon, 21 Nov 2022 16:58:59 -0800
        Subject: [PATCH 0708/1038] add 'horz' to cSpell (in pieDetector.ts commented
         out barChart work)
        
        ---
         cSpell.json                                      | 1 +
         packages/mermaid/src/diagrams/pie/pieDetector.ts | 1 -
         2 files changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/cSpell.json b/cSpell.json
        index 03891165f5..8e92ffa8af 100644
        --- a/cSpell.json
        +++ b/cSpell.json
        @@ -36,6 +36,7 @@
             "graphlib",
             "grav",
             "greywolf",
        +    "horz",
             "inkdrop",
             "jaoude",
             "jison",
        diff --git a/packages/mermaid/src/diagrams/pie/pieDetector.ts b/packages/mermaid/src/diagrams/pie/pieDetector.ts
        index 9010f8a96e..e267c710ab 100644
        --- a/packages/mermaid/src/diagrams/pie/pieDetector.ts
        +++ b/packages/mermaid/src/diagrams/pie/pieDetector.ts
        @@ -2,6 +2,5 @@ import type { DiagramDetector } from '../../diagram-api/types';
         
         export const pieDetector: DiagramDetector = (txt) => {
           const logOutput = txt.match(/^\s*pie/) !== null || txt.match(/^\s*bar/) !== null;
        -  console.log(logOutput);
           return logOutput;
         };
        
        From e2e604a76a9ad0316967d5fac8b304cffe072791 Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Mon, 21 Nov 2022 16:59:55 -0800
        Subject: [PATCH 0709/1038] update demos/state.html to includ examples;
         formatting
        
        ---
         demos/state.html                              | 82 +++++++++++++++++--
         .../mermaid/src/docs/syntax/stateDiagram.md   | 13 ++-
         2 files changed, 78 insertions(+), 17 deletions(-)
        
        diff --git a/demos/state.html b/demos/state.html
        index c13da84d88..3d070f3795 100644
        --- a/demos/state.html
        +++ b/demos/state.html
        @@ -1,5 +1,5 @@
         
        -
        +
           
             
             
        @@ -33,8 +33,9 @@ 

        Here are the classDef statements:

        classDef notMoving fill:white
        - classDef movement font-style:italic;
        - classDef badBadEvent fill:#f00,color:white,font-weight:bold
        + classDef movement font-style:italic
        + classDef badBadEvent + fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow

        And these are how they are applied:

        @@ -49,15 +50,17 @@

        And these are how they are applied:

        --- title: Very simple diagram --- - stateDiagram-v2 + stateDiagram + direction TB + accTitle: This is the accessible title accDescr: This is an accessible description classDef notMoving fill:white - classDef movement font-style:italic; - classDef badBadEvent fill:#f00,color:white,font-weight:bold + classDef movement font-style:italic + classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow - [*] --> Still + [*]--> Still Still --> [*] Still --> Moving Moving --> Still @@ -67,10 +70,57 @@

        And these are how they are applied:

        class Still notMoving class Moving, Crash movement class Crash badBadEvent + class end badBadEvent

        +

        Here is a diagram that uses the ::: operator to apply styles to states

        +

        Here are the classDef statements:

        +

        + + classDef notMoving fill:white
        + classDef movement font-style:italic
        + classDef badBadEvent + fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +

        +

        And these are how they are applied:

        +

        + + [*] --> Still:::notMoving
        + ...
        + Still --> Moving:::movement
        + ...
        + Moving --> Crash:::movement
        + Crash:::badBadEvent --> [*]
        +
        +

        +

        + Note that both the starting state and the end state have styles applied:
        + The start state has the start classDef style
        and the end state has the + stop classDef style applied. +

        +
        +    stateDiagram
        +      direction TB
        +
        +		  accTitle: This is the accessible title
        +      accDescr: This is an accessible description
        +
        +      classDef notMoving fill:white
        +      classDef movement font-style:italic
        +      classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
        +
        +      [*] --> Still:::notMoving
        +      Still --> [*]
        +      Still --> Moving:::movement
        +      Moving --> Still
        +      Moving --> Crash:::movement
        +      Crash:::badBadEvent --> [*]
        +    
        +
        +
             stateDiagram-v2
               accTitle: very very simple state
        @@ -79,6 +129,20 @@ 

        And these are how they are applied:


        +

        States with spaces in them

        +
        +      stateDiagram
        +        classDef yourState font-style:italic,font-weight:bold,fill:white
        +
        +        yswsii: Your state with spaces in it
        +        [*] --> yswsii:::yourState
        +        [*] --> SomeOtherState
        +        SomeOtherState --> YetAnotherState
        +        yswsii --> YetAnotherState
        +        YetAnotherState --> [*]
        +    
        +
        +

        You can label the relationships

             stateDiagram-v2
        @@ -127,7 +191,7 @@ 

        transition labels can span multiple lines using "br" tags or \n

               stateDiagram-v2
               [*] --> S1
        -      S1 --> S2: This long line uses a br tag
        to create multiple
        lines. + S1 --> S2: This long line uses a br tag
        to create multiple
        lines. S1 --> S3: This transition descripton uses \na newline character\nto create multiple\nlines.
        @@ -139,7 +203,7 @@

        You can add Notes

        direction LR State1: A state with a note note right of State1 - Important information!
        You can write notes.
        And\nthey\ncan\nbe\nmulti-\nline. + Important information!
        You can write notes.
        And\nthey\ncan\nbe\nmulti-\nline. end note State1 --> State2 note left of State2 : Notes can be to the left of a state\n(like this one). diff --git a/packages/mermaid/src/docs/syntax/stateDiagram.md b/packages/mermaid/src/docs/syntax/stateDiagram.md index 3687518b28..a9cb729480 100644 --- a/packages/mermaid/src/docs/syntax/stateDiagram.md +++ b/packages/mermaid/src/docs/syntax/stateDiagram.md @@ -35,8 +35,8 @@ stateDiagram ``` In state diagrams systems are described in terms of _states_ and how one _state_ can change to another _state_ via -a _transition._ The example diagram above shows three states: **Still**, **Moving** and **Crash**. You start in the - **Still** state. From **Still** you can change to the **Moving** state. From **Moving** you can change either back to the **Still** state or to +a _transition._ The example diagram above shows three states: **Still**, **Moving** and **Crash**. You start in the +**Still** state. From **Still** you can change to the **Moving** state. From **Moving** you can change either back to the **Still** state or to the **Crash** state. There is no transition from **Still** to **Crash**. (You can't crash if you're still.) ## States @@ -266,12 +266,12 @@ As with other diagrams (like flowcharts), you can define a style in the diagram state or states in the diagram. **These are the current limitations with state diagram classDefs:** + 1. They cannot be applied to start or end states 2. The cannot be applied to or within composite states _These are in development and will be available in a future version._ - You define a style using the `classDef` keyword, which is short for "class definition" (where "class" means something like a _CSS class_) followed by _a name for the style,_ @@ -314,7 +314,6 @@ There are two ways to apply a `classDef` style to a state: 2. use the `:::` operator to apply a classDef style to a state as it is being used in a transition statement (e.g. with an arrow to/from another state) - #### 1. `class` statement A `class` statement tells Mermaid to apply the named classDef to one or more classes. The form is: @@ -335,7 +334,6 @@ Here is an example applying the `movement` style to the two states `Moving` and class Moving, Crash movement ``` - Here is a diagram that shows the examples in use. Note that the `Crash` state has two classDef styles applied: `movement` and `badBadEvent` @@ -392,8 +390,6 @@ stateDiagram Crash:::badBadEvent --> [*] ``` - - ## Spaces in state names Spaces can be added to a state by first defining the state with an id and then referencing the id later. @@ -402,10 +398,11 @@ In the following example there is a state with the id **yswsii** and description After it has been defined, **yswsii** is used in the diagram in the first transition (`[*] --> yswsii`) and also in the transition to **YetAnotherState** (`yswsii --> YetAnotherState`). (**yswsii** has been styled so that it is different from the other states.) + ```mermaid-example stateDiagram classDef yourState font-style:italic,font-weight:bold,fill:white - + yswsii: Your state with spaces in it [*] --> yswsii:::yourState [*] --> SomeOtherState From 31380368e14abdb29803db3dd263ac9b5878ad24 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 22 Nov 2022 10:49:45 +0530 Subject: [PATCH 0710/1038] chore: Fix cSpell in pieRenderer --- packages/mermaid/src/diagrams/pie/pieRenderer.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/mermaid/src/diagrams/pie/pieRenderer.js b/packages/mermaid/src/diagrams/pie/pieRenderer.js index 016afccc40..3faa752fdc 100644 --- a/packages/mermaid/src/diagrams/pie/pieRenderer.js +++ b/packages/mermaid/src/diagrams/pie/pieRenderer.js @@ -161,9 +161,9 @@ let conf = configApi.getConfig(); // .attr('transform', function (d, i) { // var height = legendRectSize + legendSpacing; // var offset = (height * color.domain().length) / 2; -// var horz = 12 * legendRectSize; -// var vert = i * height - offset; -// return 'translate(' + horz + ',' + vert + ')'; +// var horizontal = 12 * legendRectSize; +// var vertical = i * height - offset; +// return 'translate(' + horizontal + ',' + vertical + ')'; // }); // legend @@ -337,11 +337,11 @@ export const draw = (txt, id, _version, diagObj) => { .append('g') .attr('class', 'legend') .attr('transform', function (d, i) { - var height = legendRectSize + legendSpacing; - var offset = (height * color.domain().length) / 2; - var horz = 12 * legendRectSize; - var vert = i * height - offset; - return 'translate(' + horz + ',' + vert + ')'; + const height = legendRectSize + legendSpacing; + const offset = (height * color.domain().length) / 2; + const horizontal = 12 * legendRectSize; + const vertical = i * height - offset; + return 'translate(' + horizontal + ',' + vertical + ')'; }); legend From 9eb506f6c53a4ec095e6222ba421baedd61d534d Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Tue, 22 Nov 2022 10:04:28 +0100 Subject: [PATCH 0711/1038] Revert "Added pie" This reverts commit 1d9fefe7ac65990e4dd06a7e0e29976a873db844. --- cypress/platform/per.html | 46 ++--- demos/pie.html | 2 +- .../mermaid/src/diagrams/pie/parser/pie.jison | 10 +- packages/mermaid/src/diagrams/pie/pieDb.js | 13 -- .../mermaid/src/diagrams/pie/pieDetector.ts | 3 +- .../mermaid/src/diagrams/pie/pieRenderer.js | 187 +----------------- 6 files changed, 23 insertions(+), 238 deletions(-) diff --git a/cypress/platform/per.html b/cypress/platform/per.html index f68a3f50b6..4fca4c8086 100644 --- a/cypress/platform/per.html +++ b/cypress/platform/per.html @@ -6,10 +6,6 @@ rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" /> -
        Security check
        -bar title Pets adopted by volunteers
        -    "Dogs" : 386
        -    "Cats" : 85
        -    "Rats" : 15
        -    
        - - - - - - - +flowchart LR +A-->B +
        +
        +            mindmap
        +          root
        +            ch1
        +            ch2
        +        
        + + +
        + +A summary of all options and their defaults is found [here][3]. +A description of each option follows below. + +## theme + +Theme , the CSS style sheet + +| Parameter | Description | Type | Required | Values | +| --------- | --------------- | ------ | -------- | ---------------------------------------------- | +| theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | + +**Notes:** To disable any pre-defined mermaid theme, use "null".
         "theme": "forest",
        +"themeCSS": ".node rect { fill: red; }" 
        + +## fontFamily + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | +| fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. + +## logLevel + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------------------------------- | ------ | -------- | -------- | --------------------------------------------- | +| logLevel | This option decides the amount of logging to be used. | string | number | Required | 'trace','debug','info','warn','error','fatal' | + +**Notes:** + +- Trace: 0 +- Debug: 1 +- Info: 2 +- Warn: 3 +- Error: 4 +- Fatal: 5 (default) + +## securityLevel + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | +| securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' | + +**Notes**: + +- **strict**: (**default**) tags in text are encoded, click functionality is disabled +- **loose**: tags in text are allowed, click functionality is enabled +- **antiscript**: html tags in text are allowed, (only script element is removed), click + functionality is enabled +- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This + prevent any JavaScript from running in the context. This may hinder interactive functionality + of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. + +## startOnLoad + +| Parameter | Description | Type | Required | Values | +| ----------- | -------------------------------------------- | ------- | -------- | ----------- | +| startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | + +**Notes:** Default value: true + +## arrowMarkerAbsolute + +| Parameter | Description | Type | Required | Values | +| ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | +| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | + +**Notes**: + +This matters if you are using base tag settings. + +Default value: false + +## secure + +This option controls which currentConfig keys are considered _secure_ and can only be changed +via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the +`secure` keys in the current currentConfig. This prevents malicious graph directives from +overriding a site's default security. + +**Notes**: + +Default value: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] + +## deterministicIds + +This option controls if the generated ids of nodes in the SVG are generated randomly or based +on a seed. If set to false, the IDs are generated based on the current date and thus are not +deterministic. This is the default behaviour. + +**Notes**: + +This matters if your files are checked into sourcecontrol e.g. git and should not change unless +content is changed. + +Default value: false + +## deterministicIDSeed + +This option is the optional seed for deterministic ids. if set to undefined but +deterministicIds is true, a simple number iterator is used. You can set this attribute to base +the seed on a static string. + +## flowchart + +The object containing configurations specific for flowcharts + +### diagramPadding + +| Parameter | Description | Type | Required | Values | +| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | +| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | + +**Notes:** + +The amount of padding around the diagram as a whole so that embedded diagrams have margins, +expressed in pixels + +Default value: 8 + +### htmlLabels + +| Parameter | Description | Type | Required | Values | +| ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | +| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | + +**Notes:** Default value: true. + +### nodeSpacing + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | +| nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | + +**Notes:** + +Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the +vertical spacing for LR as well as RL graphs.\*\* + +Default value: 50 + +### rankSpacing + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | +| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | + +**Notes**: + +Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal +spacing for LR as well as RL graphs. + +Default value 50 + +### curve + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | +| curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | + +**Notes:** + +Default Value: 'basis' + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### defaultRenderer + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + +**Notes:** + +Decides which rendering engine that is to be used for the rendering. Legal values are: +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + +Default value: 'dagre-wrapper' + +## sequence + +The object containing configurations specific for sequence diagrams + +### activationWidth + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------------- | ------- | -------- | ------------------ | +| activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | + +**Notes:** Default value :10 + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### actorMargin + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------- | ------- | -------- | ------------------ | +| actorMargin | Margin between actors | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------- | ------- | -------- | ------------------ | +| width | Width of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 150 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| height | Height of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 65 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------ | ------- | -------- | ------------------ | +| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### boxTextMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 5 + +### noteMargin + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------- | ------- | -------- | ------------------ | +| noteMargin | margin around notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### messageMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | ---------------------- | ------- | -------- | ------------------ | +| messageMargin | Space between messages | Integer | Required | Any Positive Value | + +**Notes:** Default value: 35 + +### messageAlign + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ------ | -------- | ------------------------- | +| messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### mirrorActors + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ------- | -------- | ----------- | +| mirrorActors | Mirror actors under diagram | boolean | Required | true, false | + +**Notes:** Default value: true + +### forceMenus + +| Parameter | Description | Type | Required | Values | +| ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | +| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | + +**Notes:** + +Default value: false. + +### bottomMarginAdj + +| Parameter | Description | Type | Required | Values | +| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | +| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | + +**Notes:** + +Depending on css styling this might need adjustment. + +Default value: 1 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** When this flag is set to true, the height and width is set to 100% and is then +scaling with the available space. If set to false, the absolute space required is used. + +Default value: true + +### rightAngles + +| Parameter | Description | Type | Required | Values | +| ----------- | ------------------------------------ | ------- | -------- | ----------- | +| rightAngles | display curve arrows as right angles | boolean | Required | true, false | + +**Notes:** + +This will display arrows that start and begin at the same node as right angles, rather than a +curve + +Default value: false + +### showSequenceNumbers + +| Parameter | Description | Type | Required | Values | +| ------------------- | ------------------------------- | ------- | -------- | ----------- | +| showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | + +**Notes:** Default value: false + +### actorFontSize + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | +| actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | + +**Notes:** **Default value 14**.. + +### actorFontFamily + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | +| actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: "'Open Sans", sans-serif' + +### actorFontWeight + +This sets the font weight of the actor's description + +**Notes:** Default value: 400. + +### noteFontSize + +| Parameter | Description | Type | Required | Values | +| ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | +| noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 14 + +### noteFontFamily + +| Parameter | Description | Type | Required | Values | +| -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | +| noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' + +### noteFontWeight + +This sets the font weight of the note's description + +**Notes:** Default value: 400 + +### noteAlign + +| Parameter | Description | Type | Required | Values | +| --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | +| noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### messageFontSize + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------------------------------------- | ------- | -------- | ------------------- | +| messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | + +**Notes:** Default value: 16 + +### messageFontFamily + +| Parameter | Description | Type | Required | Values | +| ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | +| messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | + +**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' + +### messageFontWeight + +This sets the font weight of the message's description + +**Notes:** Default value: 400. + +### wrap + +This sets the auto-wrap state for the diagram + +**Notes:** Default value: false. + +### wrapPadding + +This sets the auto-wrap padding for the diagram (sides only) + +**Notes:** Default value: 0. + +### labelBoxWidth + +This sets the width of the loop-box (loop, alt, opt, par) + +**Notes:** Default value: 50. + +### labelBoxHeight + +This sets the height of the loop-box (loop, alt, opt, par) + +**Notes:** Default value: 20. + +## gantt + +The object containing configurations specific for gantt diagrams + +### titleTopMargin + +### titleTopMargin + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | +| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 25 + +### barHeight + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------------- | ------- | -------- | ------------------ | +| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | + +**Notes:** Default value: 20 + +### barGap + +| Parameter | Description | Type | Required | Values | +| --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | +| barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | + +**Notes:** Default value: 4 + +### topPadding + +| Parameter | Description | Type | Required | Values | +| ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | +| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### rightPadding + +| Parameter | Description | Type | Required | Values | +| ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | +| rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | + +**Notes:** Default value: 75 + +### leftPadding + +| Parameter | Description | Type | Required | Values | +| ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | +| leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | + +**Notes:** Default value: 75 + +### gridLineStartPadding + +| Parameter | Description | Type | Required | Values | +| -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | + +**Notes:** Default value: 35 + +### fontSize + +| Parameter | Description | Type | Required | Values | +| --------- | ----------- | ------- | -------- | ------------------ | +| fontSize | Font size | Integer | Required | Any Positive Value | + +**Notes:** Default value: 11 + +### sectionFontSize + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------- | ------- | -------- | ------------------ | +| sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | + +**Notes:** Default value: 11 + +### numberSectionStyles + +| Parameter | Description | Type | Required | Values | +| ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | +| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | + +**Notes:** Default value: 4 + +### axisFormat + +| Parameter | Description | Type | Required | Values | +| ---------- | --------------------------- | ---- | -------- | ---------------- | +| axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | + +**Notes:** + +This might need adjustment to match your locale and preferences + +Default value: '%Y-%m-%d'. + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### topAxis + +| Parameter | Description | Type | Required | Values | +| --------- | ----------- | ------- | -------- | ----------- | +| topAxis | See notes | Boolean | 4 | True, False | + +**Notes:** when this flag is set date labels will be added to the top of the chart + +**Default value false**. + +## journey + +The object containing configurations specific for journey diagrams + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### leftMargin + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------- | ------- | -------- | ------------------ | +| actorMargin | Margin between actors | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------- | ------- | -------- | ------------------ | +| width | Width of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 150 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| height | Height of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 65 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------ | ------- | -------- | ------------------ | +| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### boxTextMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 5 + +### noteMargin + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------- | ------- | -------- | ------------------ | +| noteMargin | Margin around notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### messageMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | ----------------------- | ------- | -------- | ------------------ | +| messageMargin | Space between messages. | Integer | Required | Any Positive Value | + +**Notes:** + +Space between messages. + +Default value: 35 + +### messageAlign + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ---- | -------- | ------------------------- | +| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### bottomMarginAdj + +| Parameter | Description | Type | Required | Values | +| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | +| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | + +**Notes:** + +Depending on css styling this might need adjustment. + +Default value: 1 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### rightAngles + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------------------- | ---- | -------- | ----------- | +| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | + +**Notes:** + +This will display arrows that start and begin at the same node as right angles, rather than a +curves + +Default value: false + +## timeline + +The object containing configurations specific for timeline diagrams + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### leftMargin + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------- | ------- | -------- | ------------------ | +| actorMargin | Margin between actors | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------- | ------- | -------- | ------------------ | +| width | Width of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 150 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| height | Height of actor boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 65 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------ | ------- | -------- | ------------------ | +| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### boxTextMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | +| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 5 + +### noteMargin + +| Parameter | Description | Type | Required | Values | +| ---------- | ------------------- | ------- | -------- | ------------------ | +| noteMargin | Margin around notes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### messageMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | ----------------------- | ------- | -------- | ------------------ | +| messageMargin | Space between messages. | Integer | Required | Any Positive Value | + +**Notes:** + +Space between messages. + +Default value: 35 + +### messageAlign + +| Parameter | Description | Type | Required | Values | +| ------------ | --------------------------- | ---- | -------- | ------------------------- | +| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | + +**Notes:** Default value: 'center' + +### bottomMarginAdj + +| Parameter | Description | Type | Required | Values | +| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | +| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | + +**Notes:** + +Depending on css styling this might need adjustment. + +Default value: 1 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +### rightAngles + +| Parameter | Description | Type | Required | Values | +| ----------- | --------------------------------- | ---- | -------- | ----------- | +| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | + +**Notes:** + +This will display arrows that start and begin at the same node as right angles, rather than a +curves + +Default value: false + +## useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +## defaultRenderer + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + +**Notes**: + +Decides which rendering engine that is to be used for the rendering. Legal values are: +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + +Default value: 'dagre-d3' + +## useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See notes | boolean | 4 | true, false | + +**Notes:** + +When this flag is set the height and width is set to 100% and is then scaling with the +available space if not the absolute space required is used. + +Default value: true + +## defaultRenderer + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ----------------------- | +| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | + +**Notes:** + +Decides which rendering engine that is to be used for the rendering. Legal values are: +dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid + +Default value: 'dagre-d3' + +## er + +The object containing configurations specific for entity relationship diagrams + +### diagramPadding + +| Parameter | Description | Type | Required | Values | +| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | +| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | + +**Notes:** + +The amount of padding around the diagram as a whole so that embedded diagrams have margins, +expressed in pixels + +Default value: 20 + +### layoutDirection + +| Parameter | Description | Type | Required | Values | +| --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | +| layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | + +**Notes:** + +'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. + +T = top, B = bottom, L = left, and R = right. + +Default value: 'TB' + +### minEntityWidth + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------- | ------- | -------- | ------------------ | +| minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | + +**Notes:** Expressed in pixels. Default value: 100 + +### minEntityHeight + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------------------------------- | ------- | -------- | ------------------ | +| minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | + +**Notes:** Expressed in pixels Default value: 75 + +### entityPadding + +| Parameter | Description | Type | Required | Values | +| ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ | +| entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value | + +**Notes:** + +The minimum internal padding between text in an entity box and the enclosing box borders, +expressed in pixels. + +Default value: 15 + +### stroke + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------------- | ------ | -------- | -------------------- | +| stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | + +**Notes:** Default value: 'gray' + +### fill + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------- | ------ | -------- | -------------------- | +| fill | Fill color of entity boxes | string | 4 | Any recognized color | + +**Notes:** Default value: 'honeydew' + +### fontSize + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------- | ------- | -------- | ------------------ | +| fontSize | Font Size in pixels | Integer | | Any Positive Value | + +**Notes:** + +Font size (expressed as an integer representing a number of pixels) Default value: 12 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** + +When this flag is set to true, the diagram width is locked to 100% and scaled based on +available space. If set to false, the diagram reserves its absolute width. + +Default value: true + +## pie + +The object containing configurations specific for pie diagrams + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** + +When this flag is set to true, the diagram width is locked to 100% and scaled based on +available space. If set to false, the diagram reserves its absolute width. + +Default value: true + +## requirement + +The object containing configurations specific for req diagrams + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** + +When this flag is set to true, the diagram width is locked to 100% and scaled based on +available space. If set to false, the diagram reserves its absolute width. + +Default value: true + +## c4 + +The object containing configurations specific for c4 diagrams + +### diagramMarginX + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### diagramMarginY + +| Parameter | Description | Type | Required | Values | +| -------------- | ------------------------------------------- | ------- | -------- | ------------------ | +| diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### c4ShapeMargin + +| Parameter | Description | Type | Required | Values | +| ------------- | --------------------- | ------- | -------- | ------------------ | +| c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 50 + +### c4ShapePadding + +| Parameter | Description | Type | Required | Values | +| -------------- | ---------------------- | ------- | -------- | ------------------ | +| c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 20 + +### width + +| Parameter | Description | Type | Required | Values | +| --------- | --------------------- | ------- | -------- | ------------------ | +| width | Width of person boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 216 + +### height + +| Parameter | Description | Type | Required | Values | +| --------- | ---------------------- | ------- | -------- | ------------------ | +| height | Height of person boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 60 + +### boxMargin + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------- | ------- | -------- | ------------------ | +| boxMargin | Margin around boxes | Integer | Required | Any Positive Value | + +**Notes:** Default value: 10 + +### useMaxWidth + +| Parameter | Description | Type | Required | Values | +| ----------- | ----------- | ------- | -------- | ----------- | +| useMaxWidth | See Notes | boolean | Required | true, false | + +**Notes:** When this flag is set to true, the height and width is set to 100% and is then +scaling with the available space. If set to false, the absolute space required is used. + +Default value: true + +### c4ShapeInRow + +| Parameter | Description | Type | Required | Values | +| ------------ | ----------- | ------- | -------- | ------------------ | +| c4ShapeInRow | See Notes | Integer | Required | Any Positive Value | + +**Notes:** How many shapes to place in each row. + +Default value: 4 + +### c4BoundaryInRow + +| Parameter | Description | Type | Required | Values | +| --------------- | ----------- | ------- | -------- | ------------------ | +| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | + +**Notes:** How many boundarys to place in each row. + +Default value: 2 + +### personFontSize + +This sets the font size of Person shape for the diagram + +**Notes:** Default value: 14. + +### personFontFamily + +This sets the font family of Person shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### personFontWeight + +This sets the font weight of Person shape for the diagram + +**Notes:** Default value: normal. + +### external_personFontSize + +This sets the font size of External Person shape for the diagram + +**Notes:** Default value: 14. + +### external_personFontFamily + +This sets the font family of External Person shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_personFontWeight + +This sets the font weight of External Person shape for the diagram + +**Notes:** Default value: normal. + +### systemFontSize + +This sets the font size of System shape for the diagram + +**Notes:** Default value: 14. + +### systemFontFamily + +This sets the font family of System shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### systemFontWeight + +This sets the font weight of System shape for the diagram + +**Notes:** Default value: normal. + +### external_systemFontSize + +This sets the font size of External System shape for the diagram + +**Notes:** Default value: 14. + +### external_systemFontFamily + +This sets the font family of External System shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_systemFontWeight + +This sets the font weight of External System shape for the diagram + +**Notes:** Default value: normal. + +### system_dbFontSize + +This sets the font size of System DB shape for the diagram + +**Notes:** Default value: 14. + +### system_dbFontFamily + +This sets the font family of System DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### system_dbFontWeight + +This sets the font weight of System DB shape for the diagram + +**Notes:** Default value: normal. + +### external_system_dbFontSize + +This sets the font size of External System DB shape for the diagram + +**Notes:** Default value: 14. + +### external_system_dbFontFamily + +This sets the font family of External System DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_system_dbFontWeight + +This sets the font weight of External System DB shape for the diagram + +**Notes:** Default value: normal. + +### system_queueFontSize + +This sets the font size of System Queue shape for the diagram + +**Notes:** Default value: 14. + +### system_queueFontFamily + +This sets the font family of System Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### system_queueFontWeight + +This sets the font weight of System Queue shape for the diagram + +**Notes:** Default value: normal. + +### external_system_queueFontSize + +This sets the font size of External System Queue shape for the diagram + +**Notes:** Default value: 14. + +### external_system_queueFontFamily + +This sets the font family of External System Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_system_queueFontWeight + +This sets the font weight of External System Queue shape for the diagram + +**Notes:** Default value: normal. + +### boundaryFontSize + +This sets the font size of Boundary shape for the diagram + +**Notes:** Default value: 14. + +### boundaryFontFamily + +This sets the font family of Boundary shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### boundaryFontWeight + +This sets the font weight of Boundary shape for the diagram + +**Notes:** Default value: normal. + +### messageFontSize + +This sets the font size of Message shape for the diagram + +**Notes:** Default value: 12. + +### messageFontFamily + +This sets the font family of Message shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### messageFontWeight + +This sets the font weight of Message shape for the diagram + +**Notes:** Default value: normal. + +### containerFontSize + +This sets the font size of Container shape for the diagram + +**Notes:** Default value: 14. + +### containerFontFamily + +This sets the font family of Container shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### containerFontWeight + +This sets the font weight of Container shape for the diagram + +**Notes:** Default value: normal. + +### external_containerFontSize + +This sets the font size of External Container shape for the diagram + +**Notes:** Default value: 14. + +### external_containerFontFamily + +This sets the font family of External Container shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_containerFontWeight + +This sets the font weight of External Container shape for the diagram + +**Notes:** Default value: normal. + +### container_dbFontSize + +This sets the font size of Container DB shape for the diagram + +**Notes:** Default value: 14. + +### container_dbFontFamily + +This sets the font family of Container DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### container_dbFontWeight + +This sets the font weight of Container DB shape for the diagram + +**Notes:** Default value: normal. + +### external_container_dbFontSize + +This sets the font size of External Container DB shape for the diagram + +**Notes:** Default value: 14. + +### external_container_dbFontFamily + +This sets the font family of External Container DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_container_dbFontWeight + +This sets the font weight of External Container DB shape for the diagram + +**Notes:** Default value: normal. + +### container_queueFontSize + +This sets the font size of Container Queue shape for the diagram + +**Notes:** Default value: 14. + +### container_queueFontFamily + +This sets the font family of Container Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### container_queueFontWeight + +This sets the font weight of Container Queue shape for the diagram + +**Notes:** Default value: normal. + +### external_container_queueFontSize + +This sets the font size of External Container Queue shape for the diagram + +**Notes:** Default value: 14. + +### external_container_queueFontFamily + +This sets the font family of External Container Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_container_queueFontWeight + +This sets the font weight of External Container Queue shape for the diagram + +**Notes:** Default value: normal. + +### componentFontSize + +This sets the font size of Component shape for the diagram + +**Notes:** Default value: 14. + +### componentFontFamily + +This sets the font family of Component shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### componentFontWeight + +This sets the font weight of Component shape for the diagram + +**Notes:** Default value: normal. + +### external_componentFontSize + +This sets the font size of External Component shape for the diagram + +**Notes:** Default value: 14. + +### external_componentFontFamily + +This sets the font family of External Component shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_componentFontWeight + +This sets the font weight of External Component shape for the diagram + +**Notes:** Default value: normal. + +### component_dbFontSize + +This sets the font size of Component DB shape for the diagram + +**Notes:** Default value: 14. + +### component_dbFontFamily + +This sets the font family of Component DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### component_dbFontWeight + +This sets the font weight of Component DB shape for the diagram + +**Notes:** Default value: normal. + +### external_component_dbFontSize + +This sets the font size of External Component DB shape for the diagram + +**Notes:** Default value: 14. + +### external_component_dbFontFamily + +This sets the font family of External Component DB shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_component_dbFontWeight + +This sets the font weight of External Component DB shape for the diagram + +**Notes:** Default value: normal. + +### component_queueFontSize + +This sets the font size of Component Queue shape for the diagram + +**Notes:** Default value: 14. + +### component_queueFontFamily + +This sets the font family of Component Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### component_queueFontWeight + +This sets the font weight of Component Queue shape for the diagram + +**Notes:** Default value: normal. + +### external_component_queueFontSize + +This sets the font size of External Component Queue shape for the diagram + +**Notes:** Default value: 14. + +### external_component_queueFontFamily + +This sets the font family of External Component Queue shape for the diagram + +**Notes:** Default value: "Open Sans", sans-serif. + +### external_component_queueFontWeight + +This sets the font weight of External Component Queue shape for the diagram + +**Notes:** Default value: normal. + +### wrap + +This sets the auto-wrap state for the diagram + +**Notes:** Default value: true. + +### wrapPadding + +This sets the auto-wrap padding for the diagram (sides only) + +**Notes:** Default value: 0. + +## parse + +### Parameters + +- `text` **[string][4]** +- `parseError` **[Function][5]?** + +Returns **[boolean][6]** + +## setSiteConfig + +## setSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls +to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) +will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this +function _Default value: At default, will mirror Global Config_ + +### Parameters + +- `conf` **MermaidConfig** The base currentConfig to use as siteConfig + +Returns **[object][7]** The siteConfig + +## getSiteConfig + +## getSiteConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | +| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | + +**Notes**: Returns **any** values in siteConfig. + +Returns **[object][7]** The siteConfig + +## setConfig + +## setConfig + +| Function | Description | Type | Values | +| ------------- | ------------------------------------- | ----------- | --------------------------------------- | +| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | + +**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure +keys. Any values found in conf with key found in siteConfig.secure will be replaced with the +corresponding siteConfig value. + +### Parameters + +- `conf` **any** The potential currentConfig + +Returns **any** The currentConfig merged with the sanitized conf + +## render + +Function that renders an svg with a graph from a chart definition. Usage example below. + +```javascript +mermaidAPI.initialize({ + startOnLoad: true, +}); +$(function () { + const graphDefinition = 'graph TB\na-->b'; + const cb = function (svgGraph) { + console.log(svgGraph); + }; + mermaidAPI.render('id1', graphDefinition, cb); +}); +``` + +### Parameters + +- `id` **[string][4]** The id of the element to be rendered +- `text` **[string][4]** The graph definition +- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void** +- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be + inserted. If one is provided a hidden div will be inserted in the body of the page instead. The + element will be removed when rendering is completed. + +Returns **void** + +## getConfig + +## getConfig + +| Function | Description | Type | Return Values | +| --------- | ------------------------- | ----------- | ------------------------------ | +| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | + +**Notes**: Returns **any** the currentConfig + +Returns **any** The currentConfig + +## sanitize + +## sanitize + +| Function | Description | Type | Values | +| -------- | -------------------------------------- | ----------- | ------ | +| sanitize | Sets the siteConfig to desired values. | Put Request | None | + +Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies +options in-place + +### Parameters + +- `options` **any** The potential setConfig parameter + +## addDirective + +Pushes in a directive to the configuration + +### Parameters + +- `directive` **[object][7]** The directive to push in + +## reset + +## reset + +| Function | Description | Type | Required | Values | +| -------- | ---------------------------- | ----------- | -------- | ------ | +| reset | Resets currentConfig to conf | Put Request | Required | None | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | +| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | + +**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) + +### Parameters + +- `config` (optional, default `siteConfig`) + +Returns **void** + +## initialize + +### Parameters + +- `options` **MermaidConfig** + +## + +## mermaidAPI configuration defaults + +```html + +``` + +[1]: Setup.md?id=render +[2]: 8.6.0_docs.md +[3]: #mermaidapi-configuration-defaults +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[8]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/cypress/platform/ashish2.html b/cypress/platform/ashish2.html new file mode 100644 index 0000000000..e10ea6a2d5 --- /dev/null +++ b/cypress/platform/ashish2.html @@ -0,0 +1,162 @@ + + + + + + + + + + +
        Security check
        +
        +flowchart TD
        +    A --> B
        +    B --> C
        +    A --> C
        +    
        +
        +classDiagram
        +        direction LR
        +        class Student {
        +          -idCard : IdCard
        +        }
        +        class IdCard{
        +          -id : int
        +          -name : string
        +        }
        +        class Bike{
        +          -id : int
        +          -name : string
        +        }
        +        Student "1" --o "1" IdCard : carries
        +        Student "1" --o "1" Bike : rides
        +    
        +
        + timeline
        +        title History of Social Media Platform
        +          2002 : LinkedIn
        +          2004 : Facebook : Google
        +          2005 : Youtube
        +          2006 : Twitter
        +          2007 : Tumblr
        +          2008s : Instagram
        +          2010 : Pinterest
        +    
        +
        +mindmap
        +  root
        +    child1((Circle))
        +        grandchild 1
        +        grandchild 2
        +    child2(Round rectangle)
        +        grandchild 3
        +        grandchild 4
        +    child3[Square]
        +        grandchild 5
        +        ::icon(mdi mdi-fire)
        +        gc6((grand
        child 6)) + ::icon(mdi mdi-fire) + gc7((grand
        grand
        child 8)) +
        +
        +      gantt
        +        title Style today marker (vertical line should be 5px wide and half-transparent blue)
        +        dateFormat YYYY-MM-DD
        +        axisFormat %d
        +        todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
        +        section Section1
        +        Today: 1, -1h
        +    
        + + + + + + + + diff --git a/cypress/platform/class.html b/cypress/platform/class.html index 85fae2a779..1d72c34a59 100644 --- a/cypress/platform/class.html +++ b/cypress/platform/class.html @@ -46,13 +46,9 @@

        info below

               %%{init: {'theme': 'base',  'fontFamily': 'courier', 'themeVariables': {  'primaryColor': '#fff000'}}}%%
               classDiagram-v2
        -       class BankAccount{
        -        +String owner
        -        +BigDecimal balance
        -        +deposit(amount) bool
        -        +withdrawl(amount) int
        -       }
        -       cssClass "BankAccount" customCss
        +classA <|-- classB : implements
        +classC *-- classD : composition
        +classE o-- classF : aggregation
             
                 %%{init: {'theme': 'base',  'fontFamily': 'courier', 'themeVariables': {  'primaryColor': '#fff000'}}}%%
        diff --git a/demos/timeline.html b/demos/timeline.html
        new file mode 100644
        index 0000000000..f90f37675e
        --- /dev/null
        +++ b/demos/timeline.html
        @@ -0,0 +1,38 @@
        +
        +
        +  
        +    
        +    
        +    Mermaid Quick Test Page
        +    
        +    
        +  
        +
        +  
        +    
        +        timeline
        +        title My day
        +        section Go to work
        +          1930 : first step : second step
        +               : third step
        +          1940 : fourth step : fifth step
        +				
        + + + + + diff --git a/packages/mermaid-example-diagram/src/mermaidUtils.ts b/packages/mermaid-example-diagram/src/mermaidUtils.ts index 8894abdff5..698203f19a 100644 --- a/packages/mermaid-example-diagram/src/mermaidUtils.ts +++ b/packages/mermaid-example-diagram/src/mermaidUtils.ts @@ -22,6 +22,7 @@ export const log: Record = { export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; export let getConfig: () => object; export let sanitizeText: (str: string) => string; +export let commonDb: any; /** * Placeholder for the real function that will be injected by mermaid. */ @@ -41,15 +42,17 @@ export let setupGraphViewbox: ( * @param _getConfig - getConfig from mermaid/src/diagramAPI.ts * @param _sanitizeText - sanitizeText from mermaid/src/diagramAPI.ts * @param _setupGraphViewbox - setupGraphViewbox from mermaid/src/diagramAPI.ts + * @param _commonDb */ export const injectUtils = ( _log: Record, _setLogLevel: typeof setLogLevel, _getConfig: typeof getConfig, _sanitizeText: typeof sanitizeText, - _setupGraphViewbox: typeof setupGraphViewbox + _setupGraphViewbox: typeof setupGraphViewbox, + _commonDb: any ) => { - _log.debug('Mermaid utils injected into example-diagram'); + _log.info('Mermaid utils injected into timeline-diagram'); log.trace = _log.trace; log.debug = _log.debug; log.info = _log.info; @@ -60,4 +63,6 @@ export const injectUtils = ( getConfig = _getConfig; sanitizeText = _sanitizeText; setupGraphViewbox = _setupGraphViewbox; + commonDb = _commonDb; + }; diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts index 7d8ac38bf5..4834b936d5 100644 --- a/packages/mermaid-mindmap/src/mermaidUtils.ts +++ b/packages/mermaid-mindmap/src/mermaidUtils.ts @@ -26,6 +26,7 @@ export const log: Record = { export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; export let getConfig: () => object; export let sanitizeText: (str: string) => string; +export let commonDb: () => object; // eslint-disable @typescript-eslint/no-explicit-any export let setupGraphViewbox: ( graph: any, @@ -39,7 +40,8 @@ export const injectUtils = ( _setLogLevel: any, _getConfig: any, _sanitizeText: any, - _setupGraphViewbox: any + _setupGraphViewbox: any, + _commonDb: any ) => { _log.info('Mermaid utils injected'); log.trace = _log.trace; @@ -52,4 +54,5 @@ export const injectUtils = ( getConfig = _getConfig; sanitizeText = _sanitizeText; setupGraphViewbox = _setupGraphViewbox; + commonDb= _commonDb; }; diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid-mindmap/src/mindmapRenderer.js index 9fd557e516..17f2d0097f 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid-mindmap/src/mindmapRenderer.js @@ -11,7 +11,7 @@ cytoscape.use(coseBilkent); /** * @param {any} svg The svg element to draw the diagram onto - * @param {object} mindmap The mindmap data and hierarchy + * @param {object} mindmap The maindmap data and hierarchy * @param section * @param {object} conf The configuration object */ @@ -89,6 +89,7 @@ function addNodes(mindmap, cy, conf, level) { /** * @param node * @param conf + * @param cy */ function layoutMindmap(node, conf) { return new Promise((resolve) => { @@ -109,7 +110,7 @@ function layoutMindmap(node, conf) { renderEl.remove(); addNodes(node, cy, conf, 0); - // Make cytoscape care about the dimensions of the nodes + // Make cytoscape care about the dimensisions of the nodes cy.nodes().forEach(function (n) { n.layoutDimensions = () => { const data = n.data(); @@ -131,7 +132,10 @@ function layoutMindmap(node, conf) { }); } /** + * @param node * @param cy + * @param positionedMindmap + * @param conf */ function positionNodes(cy) { cy.nodes().map((node, id) => { @@ -169,7 +173,7 @@ export const draw = async (text, id, version, diagObj) => { log.debug('Renering info diagram\n' + text); const securityLevel = getConfig().securityLevel; - // Handle root and Document for when rendering in sandbox mode + // Handle root and Document for when rendering in sanbox mode let sandboxElement; if (securityLevel === 'sandbox') { sandboxElement = select('#i' + id); diff --git a/packages/mermaid-timeline/package.json b/packages/mermaid-timeline/package.json new file mode 100644 index 0000000000..0c2ebf1368 --- /dev/null +++ b/packages/mermaid-timeline/package.json @@ -0,0 +1,69 @@ +{ + "name": "@mermaid-js/mermaid-timeline", + "version": "9.2.0-rc2", + "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", + "main": "dist/mermaid-timeline.core.mjs", + "module": "dist/mermaid-timeline.core.mjs", + "type": "module", + "exports": { + ".": { + "require": "./dist/mermaid-timeline.min.js", + "import": "./dist/mermaid-timeline.core.mjs" + }, + "./*": "./*" + }, + "keywords": [ + "diagram", + "markdown", + "timeline", + "mermaid" + ], + "scripts": { + "clean": "rimraf dist", + "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", + "build:watch": "yarn build:code --watch", + "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", + "build": "yarn clean; yarn build:esbuild", + "dev": "node .esbuild/serve.cjs", + "release": "yarn build", + "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", + "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", + "lint:jison": "ts-node-esm src/jison/lint.mts", + "todo-prepare": "concurrently \"husky install ../../.husky\" \"yarn build\"", + "todo-pre-commit": "lint-staged" + }, + "repository": { + "type": "git", + "url": "https://github.com/mermaid-js/mermaid" + }, + "author": "Knut Sveidqvist", + "license": "MIT", + "standard": { + "ignore": [ + "**/parser/*.js", + "dist/**/*.js", + "cypress/**/*.js" + ], + "globals": [ + "page" + ] + }, + "dependencies": { + "d3": "^7.0.0", + "khroma": "^2.0.0" + }, + "devDependencies": { + "concurrently": "^7.4.0", + "rimraf": "^3.0.2" + }, + "resolutions": { + "d3": "^7.0.0" + }, + "files": [ + "dist" + ], + "sideEffects": [ + "**/*.css", + "**/*.scss" + ] +} \ No newline at end of file diff --git a/packages/mermaid-timeline/src/detector.ts b/packages/mermaid-timeline/src/detector.ts new file mode 100644 index 0000000000..411fe48d67 --- /dev/null +++ b/packages/mermaid-timeline/src/detector.ts @@ -0,0 +1,20 @@ +import type { ExternalDiagramDefinition } from 'mermaid'; + +const id = 'timeline'; + +const detector = (txt: string) => { + return txt.match(/^\s*timeline/) !== null; +}; + +const loader = async () => { + const { diagram } = await import('./diagram-definition'); + return { id, diagram }; +}; + +const plugin: ExternalDiagramDefinition = { + id, + detector, + loader, +}; + +export default plugin; diff --git a/packages/mermaid-timeline/src/diagram-definition.ts b/packages/mermaid-timeline/src/diagram-definition.ts new file mode 100644 index 0000000000..9f18f261da --- /dev/null +++ b/packages/mermaid-timeline/src/diagram-definition.ts @@ -0,0 +1,14 @@ +// @ts-ignore: TODO Fix ts errors +import parser from './parser/timeline.jison'; +import * as db from './timelineDb'; +import renderer from './timelineRenderer'; +import styles from './styles'; +import { injectUtils } from './mermaidUtils'; + +export const diagram = { + db, + renderer, + parser, + styles, + injectUtils, +}; diff --git a/packages/mermaid-timeline/src/mermaidUtils.ts b/packages/mermaid-timeline/src/mermaidUtils.ts new file mode 100644 index 0000000000..7dc3732a8f --- /dev/null +++ b/packages/mermaid-timeline/src/mermaidUtils.ts @@ -0,0 +1,70 @@ +const warning = () => null; +let localCommonDb = {}; + +export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; + +export const LEVELS: Record = { + trace: 0, + debug: 1, + info: 2, + warn: 3, + error: 4, + fatal: 5, +}; + +export const log: Record = { + trace: warning, + debug: warning, + info: warning, + warn: warning, + error: warning, + fatal: warning, +}; +export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; +export let getConfig: () => object; +export let sanitizeText: (str: string) => string; +export const getCommonDb=() => localCommonDb; +/** + * Placeholder for the real function that will be injected by mermaid. + */ +// eslint-disable @typescript-eslint/no-explicit-any +export let setupGraphViewbox: ( + graph: any, + svgElem: any, + padding: any, + useMaxWidth: boolean +) => void; + + + +/** + * Function called by mermaid that injects utility functions that help the diagram to be a good citizen. + * @param _log + * @param _setLogLevel + * @param _getConfig + * @param _sanitizeText + * @param _setupGraphViewbox + * @param _commonDb + */ +export const injectUtils = ( + _log: Record, + _setLogLevel: any, + _getConfig: any, + _sanitizeText: any, + _setupGraphViewbox: any, + _commonDb: any +) => { + _log.info('Mermaid utils injected into timeline-diagram'); + log.trace = _log.trace; + log.debug = _log.debug; + log.info = _log.info; + log.warn = _log.warn; + log.error = _log.error; + log.fatal = _log.fatal; + setLogLevel = _setLogLevel; + getConfig = _getConfig; + sanitizeText = _sanitizeText; + setupGraphViewbox = _setupGraphViewbox; + localCommonDb = _commonDb; + +}; diff --git a/packages/mermaid-timeline/src/parser/timeline.jison b/packages/mermaid-timeline/src/parser/timeline.jison new file mode 100644 index 0000000000..4f8ac5cbcf --- /dev/null +++ b/packages/mermaid-timeline/src/parser/timeline.jison @@ -0,0 +1,106 @@ +/** mermaid + * https://mermaidjs.github.io/ + * (c) 2015 Knut Sveidqvist + * MIT license. + */ +%lex +%options case-insensitive +%x acc_title +%x acc_descr +%x acc_descr_multiline + +// Directive states +%x open_directive type_directive arg_directive + + +%% + +\%\%\{ { this.begin('open_directive'); return 'open_directive'; } +((?:(?!\}\%\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; } +":" { this.popState(); this.begin('arg_directive'); return ':'; } +\}\%\% { this.popState(); this.popState(); return 'close_directive'; } +((?:(?!\}\%\%).|\n)*) return 'arg_directive'; +\%%(?!\{)[^\n]* /* skip comments */ +[^\}]\%\%[^\n]* /* skip comments */ +[\n]+ return 'NEWLINE'; +\s+ /* skip whitespace */ +\#[^\n]* /* skip comments */ + +"timeline" return 'timeline'; +"title"\s[^#\n;]+ return 'title'; +accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } +(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } +accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } +(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } +accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} +[\}] { this.popState(); } +[^\}]* return "acc_descr_multiline_value"; +"section"\s[^#:\n;]+ return 'section'; + +// event starting with "==>" keyword +":"\s[^#:\n;]+ return 'event'; +[^#:\n;]+ return 'period'; + + +<> return 'EOF'; +. return 'INVALID'; + +/lex + +%left '^' + +%start start + +%% /* language grammar */ + +start + : timeline document 'EOF' { return $2; } + | directive start + ; + +document + : /* empty */ { $$ = [] } + | document line {$1.push($2);$$ = $1} + ; + +line + : SPACE statement { $$ = $2 } + | statement { $$ = $1 } + | NEWLINE { $$=[];} + | EOF { $$=[];} + ; + +directive + : openDirective typeDirective closeDirective 'NEWLINE' + | openDirective typeDirective ':' argDirective closeDirective 'NEWLINE' + ; + +statement + : title {yy.getCommonDb().setDiagramTitle($1.substr(6));$$=$1.substr(6);} + | acc_title acc_title_value { $$=$2.trim();yy.getCommonDb().setAccTitle($$); } + | acc_descr acc_descr_value { $$=$2.trim();yy.getCommonDb().setAccDescription($$); } + | acc_descr_multiline_value { $$=$1.trim();yy.getCommonDb().setAccDescription($$); } + | section {yy.addSection($1.substr(8));$$=$1.substr(8);} + | period {yy.addTask($1,0,'');$$=$1;} + | period event {yy.addTask($1,0,$2.substr(2));$$=$1;} + | event {yy.addEvent($1.substr(2));$$=$1;} + | directive + ; + +openDirective + : open_directive { yy.parseDirective('%%{', 'open_directive'); } + ; + +typeDirective + : type_directive { yy.parseDirective($1, 'type_directive'); } + ; + +argDirective + : arg_directive { $1 = $1.trim().replace(/'/g, '"'); yy.parseDirective($1, 'arg_directive'); } + ; + +closeDirective + : close_directive { yy.parseDirective('}%%', 'close_directive', 'timeline'); } + ; + +%% diff --git a/packages/mermaid-timeline/src/parser/timeline.spec.js b/packages/mermaid-timeline/src/parser/timeline.spec.js new file mode 100644 index 0000000000..cc54d9f78b --- /dev/null +++ b/packages/mermaid-timeline/src/parser/timeline.spec.js @@ -0,0 +1,150 @@ +import { parser } from './journey'; +import journeyDb from '../journeyDb'; + +const parserFnConstructor = (str) => { + return () => { + parser.parse(str); + }; +}; + +describe('when parsing a journey diagram it', function () { + beforeEach(function () { + parser.yy = journeyDb; + parser.yy.clear(); + }); + + it('should handle a title definition', function () { + const str = 'journey\ntitle Adding journey diagram functionality to mermaid'; + + expect(parserFnConstructor(str)).not.toThrow(); + }); + + it('should handle an accessibility description (accDescr)', function () { + const str = + 'journey\n' + + 'accDescr: A user journey for family shopping\n' + + 'title Adding journey diagram functionality to mermaid\n' + + 'section Order from website'; + + expect(parserFnConstructor(str)).not.toThrow(); + }); + it('should handle an accessibility multiline description (accDescr)', function () { + const str = + 'journey\n' + + `accDescr { + A user journey for + family shopping + }` + + 'title Adding journey diagram functionality to mermaid\n' + + 'accTitle: Adding acc journey diagram functionality to mermaid\n' + + 'section Order from website'; + + expect(parserFnConstructor(str)).not.toThrow(); + expect(journeyDb.getAccDescription()).toBe('A user journey for\nfamily shopping'); + expect(journeyDb.getDiagramTitle()).toBe('Adding journey diagram functionality to mermaid'); + expect(journeyDb.getAccTitle()).toBe('Adding acc journey diagram functionality to mermaid'); + }); + it('should handle an accessibility title (accDescr)', function () { + const str = `journey + accTitle: The title + section Order from website`; + + expect(parserFnConstructor(str)).not.toThrow(); + expect(journeyDb.getAccDescription()).toBe(''); + expect(journeyDb.getAccTitle()).toBe('The title'); + }); + + it('should handle a section definition', function () { + const str = + 'journey\n' + + 'title Adding journey diagram functionality to mermaid\n' + + 'section Order from website'; + + expect(parserFnConstructor(str)).not.toThrow(); + }); + it('should handle multiline section titles with different line breaks', function () { + const str = + 'journey\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Line1
        Line2
        Line3
        Line4Line5'; + + expect(parserFnConstructor(str)).not.toThrow(); + }); + + it('should handle a task definition', function () { + const str = + 'journey\n' + + 'title Adding journey diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'A task: 5: Alice, Bob, Charlie\n' + + 'B task: 3:Bob, Charlie\n' + + 'C task: 5\n' + + 'D task: 5: Charlie, Alice\n' + + 'E task: 5:\n' + + 'section Another section\n' + + 'P task: 5:\n' + + 'Q task: 5:\n' + + 'R task: 5:'; + expect(parserFnConstructor(str)).not.toThrow(); + + const tasks = parser.yy.getTasks(); + expect(tasks.length).toEqual(8); + + expect(tasks[0]).toEqual({ + score: 5, + people: ['Alice', 'Bob', 'Charlie'], + section: 'Documentation', + task: 'A task', + type: 'Documentation', + }); + expect(tasks[1]).toEqual({ + score: 3, + people: ['Bob', 'Charlie'], + section: 'Documentation', + type: 'Documentation', + task: 'B task', + }); + expect(tasks[2]).toEqual({ + score: 5, + people: [], + section: 'Documentation', + type: 'Documentation', + task: 'C task', + }); + expect(tasks[3]).toEqual({ + score: 5, + people: ['Charlie', 'Alice'], + section: 'Documentation', + task: 'D task', + type: 'Documentation', + }); + expect(tasks[4]).toEqual({ + score: 5, + people: [''], + section: 'Documentation', + type: 'Documentation', + task: 'E task', + }); + expect(tasks[5]).toEqual({ + score: 5, + people: [''], + section: 'Another section', + type: 'Another section', + task: 'P task', + }); + expect(tasks[6]).toEqual({ + score: 5, + people: [''], + section: 'Another section', + type: 'Another section', + task: 'Q task', + }); + expect(tasks[7]).toEqual({ + score: 5, + people: [''], + section: 'Another section', + type: 'Another section', + task: 'R task', + }); + }); +}); diff --git a/packages/mermaid-timeline/src/styles.js b/packages/mermaid-timeline/src/styles.js new file mode 100644 index 0000000000..51d69f58d2 --- /dev/null +++ b/packages/mermaid-timeline/src/styles.js @@ -0,0 +1,78 @@ +import { darken, lighten, isDark } from 'khroma'; + +const genSections = (options) => { + let sections = ''; + + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options['lineColor' + i] = options['lineColor' + i] || options['cScaleInv' + i]; + if (isDark(options['lineColor' + i])) { + options['lineColor' + i] = lighten(options['lineColor' + i], 20); + } else { + options['lineColor' + i] = darken(options['lineColor' + i], 20); + } + } + + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = '' + (17 - 3 * i); + sections += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${ + i - 1 + } path { + fill: ${options['cScale' + i]}; + } + .section-${i - 1} text { + fill: ${options['cScaleLabel' + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options['cScaleLabel' + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options['cScale' + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options['cScaleInv' + i]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections; +}; + +const getStyles = (options) => + ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + + } +`; +export default getStyles; diff --git a/packages/mermaid-timeline/src/svgDraw.js b/packages/mermaid-timeline/src/svgDraw.js new file mode 100644 index 0000000000..bed0e29421 --- /dev/null +++ b/packages/mermaid-timeline/src/svgDraw.js @@ -0,0 +1,604 @@ +import { arc as d3arc , select} from 'd3'; +const MAX_SECTIONS = 12; + +export const drawRect = function (elem, rectData) { + const rectElem = elem.append('rect'); + rectElem.attr('x', rectData.x); + rectElem.attr('y', rectData.y); + rectElem.attr('fill', rectData.fill); + rectElem.attr('stroke', rectData.stroke); + rectElem.attr('width', rectData.width); + rectElem.attr('height', rectData.height); + rectElem.attr('rx', rectData.rx); + rectElem.attr('ry', rectData.ry); + + if (typeof rectData.class !== 'undefined') { + rectElem.attr('class', rectData.class); + } + + return rectElem; +}; + +export const drawFace = function (element, faceData) { + const radius = 15; + const circleElement = element + .append('circle') + .attr('cx', faceData.cx) + .attr('cy', faceData.cy) + .attr('class', 'face') + .attr('r', radius) + .attr('stroke-width', 2) + .attr('overflow', 'visible'); + + const face = element.append('g'); + + //left eye + face + .append('circle') + .attr('cx', faceData.cx - radius / 3) + .attr('cy', faceData.cy - radius / 3) + .attr('r', 1.5) + .attr('stroke-width', 2) + .attr('fill', '#666') + .attr('stroke', '#666'); + + //right eye + face + .append('circle') + .attr('cx', faceData.cx + radius / 3) + .attr('cy', faceData.cy - radius / 3) + .attr('r', 1.5) + .attr('stroke-width', 2) + .attr('fill', '#666') + .attr('stroke', '#666'); + + /** @param {any} face */ + function smile(face) { + const arc = d3arc() + .startAngle(Math.PI / 2) + .endAngle(3 * (Math.PI / 2)) + .innerRadius(radius / 2) + .outerRadius(radius / 2.2); + //mouth + face + .append('path') + .attr('class', 'mouth') + .attr('d', arc) + .attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 2) + ')'); + } + + /** @param {any} face */ + function sad(face) { + const arc = d3arc() + .startAngle((3 * Math.PI) / 2) + .endAngle(5 * (Math.PI / 2)) + .innerRadius(radius / 2) + .outerRadius(radius / 2.2); + //mouth + face + .append('path') + .attr('class', 'mouth') + .attr('d', arc) + .attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 7) + ')'); + } + + /** @param {any} face */ + function ambivalent(face) { + face + .append('line') + .attr('class', 'mouth') + .attr('stroke', 2) + .attr('x1', faceData.cx - 5) + .attr('y1', faceData.cy + 7) + .attr('x2', faceData.cx + 5) + .attr('y2', faceData.cy + 7) + .attr('class', 'mouth') + .attr('stroke-width', '1px') + .attr('stroke', '#666'); + } + + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + + return circleElement; +}; + +export const drawCircle = function (element, circleData) { + const circleElement = element.append('circle'); + circleElement.attr('cx', circleData.cx); + circleElement.attr('cy', circleData.cy); + circleElement.attr('class', 'actor-' + circleData.pos); + circleElement.attr('fill', circleData.fill); + circleElement.attr('stroke', circleData.stroke); + circleElement.attr('r', circleData.r); + + if (typeof circleElement.class !== 'undefined') { + circleElement.attr('class', circleElement.class); + } + + if (typeof circleData.title !== 'undefined') { + circleElement.append('title').text(circleData.title); + } + + return circleElement; +}; + +export const drawText = function (elem, textData) { + // Remove and ignore br:s + const nText = textData.text.replace(//gi, ' '); + + const textElem = elem.append('text'); + textElem.attr('x', textData.x); + textElem.attr('y', textData.y); + textElem.attr('class', 'legend'); + + textElem.style('text-anchor', textData.anchor); + + if (typeof textData.class !== 'undefined') { + textElem.attr('class', textData.class); + } + + const span = textElem.append('tspan'); + span.attr('x', textData.x + textData.textMargin * 2); + span.text(nText); + + return textElem; +}; + +export const drawLabel = function (elem, txtObject) { + /** + * @param {any} x + * @param {any} y + * @param {any} width + * @param {any} height + * @param {any} cut + */ + function genPoints(x, y, width, height, cut) { + return ( + x + + ',' + + y + + ' ' + + (x + width) + + ',' + + y + + ' ' + + (x + width) + + ',' + + (y + height - cut) + + ' ' + + (x + width - cut * 1.2) + + ',' + + (y + height) + + ' ' + + x + + ',' + + (y + height) + ); + } + const polygon = elem.append('polygon'); + polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr('class', 'labelBox'); + + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; + +export const drawSection = function (elem, section, conf) { + const g = elem.append('g'); + + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf.width; + rect.height = conf.height; + rect.class = 'journey-section section-type-' + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + + _drawTextCandidateFunc(conf)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: 'journey-section section-type-' + section.num }, + conf, + section.colour + ); +}; + +let taskCount = -1; +/** + * Draws an actor in the diagram with the attached line + * + * @param {any} elem The HTML element + * @param {any} task The task to render + * @param {any} conf The global configuration + */ +export const drawTask = function (elem, task, conf) { + const center = task.x + conf.width / 2; + const g = elem.append('g'); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append('line') + .attr('id', 'task' + taskCount) + .attr('x1', center) + .attr('y1', task.y) + .attr('x2', center) + .attr('y2', maxHeight) + .attr('class', 'task-line') + .attr('stroke-width', '1px') + .attr('stroke-dasharray', '4 2') + .attr('stroke', '#666'); + + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score, + }); + + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf.width; + rect.height = conf.height; + rect.class = 'task task-type-' + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + + let xPos = task.x + 14; + // task.people.forEach((person) => { + // const colour = task.actors[person].color; + + // const circle = { + // cx: xPos, + // cy: task.y, + // r: 7, + // fill: colour, + // stroke: '#000', + // title: person, + // pos: task.actors[person].position, + // }; + + // drawCircle(g, circle); + // xPos += 10; + // }); + + _drawTextCandidateFunc(conf)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: 'task' }, + conf, + task.colour + ); +}; + +/** + * Draws a background rectangle + * + * @param {any} elem The html element + * @param {any} bounds The bounds of the drawing + */ +export const drawBackgroundRect = function (elem, bounds) { + const rectElem = drawRect(elem, { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + class: 'rect', + }); + rectElem.lower(); +}; + +export const getTextObj = function () { + return { + x: 0, + y: 0, + fill: undefined, + 'text-anchor': 'start', + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0, + }; +}; + +export const getNoteRect = function () { + return { + x: 0, + y: 0, + width: 100, + anchor: 'start', + height: 100, + rx: 0, + ry: 0, + }; +}; + +const _drawTextCandidateFunc = (function () { + /** + * @param {any} content + * @param {any} g + * @param {any} x + * @param {any} y + * @param {any} width + * @param {any} height + * @param {any} textAttrs + * @param {any} colour + */ + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g + .append('text') + .attr('x', x + width / 2) + .attr('y', y + height / 2 + 5) + .style('font-color', colour) + .style('text-anchor', 'middle') + .text(content); + _setTextAttrs(text, textAttrs); + } + + /** + * @param {any} content + * @param {any} g + * @param {any} x + * @param {any} y + * @param {any} width + * @param {any} height + * @param {any} textAttrs + * @param {any} conf + * @param {any} colour + */ + function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) { + const { taskFontSize, taskFontFamily } = conf; + + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - (taskFontSize * (lines.length - 1)) / 2; + const text = g + .append('text') + .attr('x', x + width / 2) + .attr('y', y) + .attr('fill', colour) + .style('text-anchor', 'middle') + .style('font-size', taskFontSize) + .style('font-family', taskFontFamily); + text + .append('tspan') + .attr('x', x + width / 2) + .attr('dy', dy) + .text(lines[i]); + + text + .attr('y', y + height / 2.0) + .attr('dominant-baseline', 'central') + .attr('alignment-baseline', 'central'); + + _setTextAttrs(text, textAttrs); + } + } + + /** + * @param {any} content + * @param {any} g + * @param {any} x + * @param {any} y + * @param {any} width + * @param {any} height + * @param {any} textAttrs + * @param {any} conf + */ + function byFo(content, g, x, y, width, height, textAttrs, conf) { + const body = g.append('switch'); + const f = body + .append('foreignObject') + .attr('x', x) + .attr('y', y) + .attr('width', width) + .attr('height', height) + .attr('position', 'fixed'); + + const text = f + .append('xhtml:div') + .style('display', 'table') + .style('height', '100%') + .style('width', '100%'); + + text + .append('div') + .attr('class', 'label') + .style('display', 'table-cell') + .style('text-align', 'center') + .style('vertical-align', 'middle') + .text(content); + + byTspan(content, body, x, y, width, height, textAttrs, conf); + _setTextAttrs(text, textAttrs); + } + + /** + * @param {any} toText + * @param {any} fromTextAttrsDict + */ + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + // noinspection JSUnfilteredForInLoop + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + + return function (conf) { + return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan; + }; +})(); + +const initGraphics = function (graphics) { + graphics + .append('defs') + .append('marker') + .attr('id', 'arrowhead') + .attr('refX', 5) + .attr('refY', 2) + .attr('markerWidth', 6) + .attr('markerHeight', 4) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 0,0 V 4 L6,2 Z'); // this is actual shape for arrowhead +}; + +/** + * @param {string} text The text to be wrapped + * @param {number} width The max width of the text + */ +function wrap(text, width) { + text.each(function () { + var text = select(this), + words = text + .text() + .split(/(\s+|
        )/) + .reverse(), + word, + line = [], + lineHeight = 1.1, // ems + y = text.attr('y'), + dy = parseFloat(text.attr('dy')), + tspan = text + .text(null) + .append('tspan') + .attr('x', 0) + .attr('y', y) + .attr('dy', dy + 'em'); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(' ').trim()); + if (tspan.node().getComputedTextLength() > width || word === '
        ') { + line.pop(); + tspan.text(line.join(' ').trim()); + if (word === '
        ') { + line = ['']; + } else { + line = [word]; + } + + tspan = text + .append('tspan') + .attr('x', 0) + .attr('y', y) + .attr('dy', lineHeight + 'em') + .text(word); + } + } + }); +} + +export const drawNode = function (elem, node, fullSection, conf) { + const section = (fullSection % MAX_SECTIONS) - 1; + const nodeElem = elem.append('g'); + node.section = section; + nodeElem.attr( + 'class', + (node.class ? node.class + ' ' : '') + + 'timeline-node ' + + (section < 0 ? 'section-root' : 'section-' + section) + ); + const bkgElem = nodeElem.append('g'); + + // Create the wrapped text element + const textElem = nodeElem.append('g'); + + const txt = textElem + .append('text') + .text(node.descr) + .attr('dy', '1em') + .attr('alignment-baseline', 'middle') + .attr('dominant-baseline', 'middle') + .attr('text-anchor', 'middle') + .call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace('px', '') : conf.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.height = Math.max(node.height, node.maxHeight); + node.width = node.width + 2 * node.padding; + + textElem.attr('transform', 'translate(' + node.width / 2 + ', ' + node.padding / 2 + ')'); + + // Create the background element + defaultBkg(bkgElem, node, section, conf); + + + return node; +}; + + export const getVirtualNodeHeight = function (elem,node,conf) { + const textElem = elem.append('g'); + const txt = textElem + .append('text') + .text(node.descr) + .attr('dy', '1em') + .attr('alignment-baseline', 'middle') + .attr('dominant-baseline', 'middle') + .attr('text-anchor', 'middle') + .call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace('px', '') : conf.fontSize; + textElem.remove(); + return bbox.height + fontSize * 1.1 * 0.5 + node.padding; +}; + + +const defaultBkg = function (elem, node, section) { + const rd = 5; + elem + .append('path') + .attr('id', 'node-' + node.id) + .attr('class', 'node-bkg node-' + node.type) + .attr( + 'd', + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${ + node.width - 2 * rd + } q5,0 5,5 v${node.height - rd} H0 Z` + ); + + elem + .append('line') + .attr('class', 'node-line-' + section) + .attr('x1', 0) + .attr('y1', node.height) + .attr('x2', node.width) + .attr('y2', node.height); +}; + +export default { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + getTextObj, + getNoteRect, + initGraphics, + drawNode, + getVirtualNodeHeight, +}; diff --git a/packages/mermaid-timeline/src/timelineDb.js b/packages/mermaid-timeline/src/timelineDb.js new file mode 100644 index 0000000000..dda3a97cb9 --- /dev/null +++ b/packages/mermaid-timeline/src/timelineDb.js @@ -0,0 +1,100 @@ +import { getCommonDb as _getCommonDb,log } from './mermaidUtils'; + +let currentSection = ''; +let currentTaskId = 0; + +const sections = []; +const tasks = []; +const rawTasks = []; + +export const getCommonDb = _getCommonDb; + +export const clear = function () { + sections.length = 0; + tasks.length = 0; + currentSection = ''; + rawTasks.length = 0; + _getCommonDb().clear(); +}; + +export const addSection = function (txt) { + currentSection = txt; + sections.push(txt); +}; + +export const getSections = function () { + return sections; +}; + +export const getTasks = function () { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + + tasks.push(...rawTasks); + + return tasks; +}; + +export const addTask = function (period, length, event) { + + const rawTask = { + id: currentTaskId++, + section: currentSection, + type: currentSection, + task: period, + score : length?length:0, + //if event is defined, then add it the events array + events: event?[event]:[], + }; + rawTasks.push(rawTask); +}; + +export const addEvent = function (event) { + // fetch current task with currnetTaskId + const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1); + //add event to the events array + currentTask.events.push(event); +}; + + +export const addTaskOrg = function (descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [], + }; + tasks.push(newTask); +}; + +const compileTasks = function () { + const compileTask = function (pos) { + return rawTasks[pos].processed; + }; + + let allProcessed = true; + for (let i = 0; i < rawTasks.length; i++) { + compileTask(i); + + allProcessed = allProcessed && rawTasks[i].processed; + } + return allProcessed; +}; + +export default { + clear, + getCommonDb, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + addEvent, +}; + diff --git a/packages/mermaid-timeline/src/timelineDb.spec.js b/packages/mermaid-timeline/src/timelineDb.spec.js new file mode 100644 index 0000000000..3a17ca2029 --- /dev/null +++ b/packages/mermaid-timeline/src/timelineDb.spec.js @@ -0,0 +1,91 @@ +import journeyDb from './journeyDb'; + +describe('when using the journeyDb', function () { + beforeEach(function () { + journeyDb.clear(); + }); + + describe('when calling the clear function', function () { + beforeEach(function () { + journeyDb.addSection('weekends skip test'); + journeyDb.addTask('test1', '4: id1, id3'); + journeyDb.addTask('test2', '2: id2'); + journeyDb.clear(); + }); + + it.each` + fn | expected + ${'getTasks'} | ${[]} + ${'getAccTitle'} | ${''} + ${'getSections'} | ${[]} + ${'getActors'} | ${[]} + `('should clear $fn', ({ fn, expected }) => { + expect(journeyDb[fn]()).toEqual(expected); + }); + }); + + describe('when calling the clear function', function () { + beforeEach(function () { + journeyDb.addSection('weekends skip test'); + journeyDb.addTask('test1', '3: id1, id3'); + journeyDb.addTask('test2', '1: id2'); + journeyDb.clear(); + }); + it.each` + fn | expected + ${'getTasks'} | ${[]} + ${'getAccTitle'} | ${''} + ${'getAccDescription'} | ${''} + ${'getSections'} | ${[]} + `('should clear $fn', ({ fn, expected }) => { + expect(journeyDb[fn]()).toEqual(expected); + }); + }); + + describe('tasks and actors should be added', function () { + journeyDb.setAccTitle('Shopping'); + journeyDb.setAccDescription('A user journey for family shopping'); + journeyDb.addSection('Journey to the shops'); + journeyDb.addTask('Get car keys', ':5:Dad'); + journeyDb.addTask('Go to car', ':3:Dad, Mum, Child#1, Child#2'); + journeyDb.addTask('Drive to supermarket', ':4:Dad'); + journeyDb.addSection('Do shopping'); + journeyDb.addTask('Go shopping', ':5:Mum'); + + expect(journeyDb.getAccTitle()).toEqual('Shopping'); + expect(journeyDb.getAccDescription()).toEqual('A user journey for family shopping'); + expect(journeyDb.getTasks()).toEqual([ + { + score: 5, + people: ['Dad'], + section: 'Journey to the shops', + task: 'Get car keys', + type: 'Journey to the shops', + }, + { + score: 3, + people: ['Dad', 'Mum', 'Child#1', 'Child#2'], + section: 'Journey to the shops', + task: 'Go to car', + type: 'Journey to the shops', + }, + { + score: 4, + people: ['Dad'], + section: 'Journey to the shops', + task: 'Drive to supermarket', + type: 'Journey to the shops', + }, + { + score: 5, + people: ['Mum'], + section: 'Do shopping', + task: 'Go shopping', + type: 'Do shopping', + }, + ]); + expect(journeyDb.getActors()).toEqual(['Child#1', 'Child#2', 'Dad', 'Mum']); + + expect(journeyDb.getSections()).toEqual(['Journey to the shops', 'Do shopping']); + }); +}); diff --git a/packages/mermaid-timeline/src/timelineRenderer.ts b/packages/mermaid-timeline/src/timelineRenderer.ts new file mode 100644 index 0000000000..aa3e2199c5 --- /dev/null +++ b/packages/mermaid-timeline/src/timelineRenderer.ts @@ -0,0 +1,415 @@ +// @ts-nocheck TODO: fix file +import { select } from 'd3'; +import svgDraw from './svgDraw'; +import { configureSvgSize } from '../../setupGraphViewbox'; +import addSVGAccessibilityFields from '../../accessibility'; + +import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; + +export const setConf = function (cnf) { + const keys = Object.keys(cnf); + + keys.forEach(function (key) { + conf[key] = cnf[key]; + }); +}; + +export const draw = function (text, id, version, diagObj) { + //1. Fetch the configuration + const conf = getConfig(); + const LEFT_MARGIN = conf.leftMargin?conf.leftMargin:50; + + //2. Clear the diagram db before parsing + diagObj.db.clear(); + + //3. Parse the diagram text + diagObj.parser.parse(text + '\n'); + + log.info('timeline', diagObj.db); + + const securityLevel = conf.securityLevel; + // Handle root and Document for when rendering in sandbox mode + let sandboxElement; + if (securityLevel === 'sandbox') { + sandboxElement = select('#i' + id); + } + const root = + securityLevel === 'sandbox' + ? select(sandboxElement.nodes()[0].contentDocument.body) + : select('body'); + + // Init bounds + bounds.init(); + + + + const svg = root.select('#' + id); + + svg.append('g'); + + //4. Fetch the diagram data + const tasks = diagObj.db.getTasks(); + const title = diagObj.db.getCommonDb().getDiagramTitle(); + + //log tasks + log.info(tasks); + + //5. Initialize the diagram + svgDraw.initGraphics(svg); + + //bounds.insert(0, 0, LEFT_MARGIN, 0); + // fetch Sections + const sections = diagObj.db.getSections(); + // log sections + log.info(sections); + + let maxSectionHeight = 0; + let maxTaskHeight = 0; + let sectionBeginX = 0; + let sectionBeginY = 0; + let masterX = 50 + LEFT_MARGIN; + sectionBeginX = masterX; + let masterY = 50; + sectionBeginY=50; + //draw sections + let sectionNumber = 0; + + //Calculate the max height of the sections + sections.forEach(function (section) { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight, + }; + const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf); + log.info('sectionHeight before draw', sectionHeight); + maxSectionHeight = Math.max(maxSectionHeight, sectionHeight +20); + }); + +//tasks length and maxEventCount +let maxEventCount = 0; + log.info('tasks.length', tasks.length); + //calculate max task height + // for loop till tasks.length + for (let i = 0; i < tasks.length; i++) { + const task = tasks[i]; + + const taskNode = { + number: i, + descr: task, + section: task.section, + width: 150, + padding: 20, + maxHeight: maxTaskHeight, + }; + const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf); + log.info('taskHeight before draw', taskHeight); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20); + + //calculate maxEventCount + maxEventCount = Math.max(maxEventCount, task.events.length); + } + + + log.info('maxSectionHeight before draw', maxSectionHeight); + log.info('maxTaskHeight before draw', maxTaskHeight); + + if (sections && sections.length > 0) { + sections.forEach((section) => { + + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight, + }; + //log section node + log.info('sectionNode', sectionNode); + const sectionNodeWrapper = svg.append('g'); + const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf); + // add node to section list + //sectionList.push(node); + //const nodeHeight = node.height + 20; + //Post process the node + //append g + + sectionNodeWrapper.attr( + 'transform', + `translate(${masterX}, ${sectionBeginY})` + ); + //maxSectionHeight = Math.max(maxSectionHeight, nodeHeight); + masterY += maxSectionHeight + 50; + + + + //draw tasks for this section + //filter task where tasks.section == section + const tasksForSection = tasks.filter((task) => task.section === section); + if (tasksForSection.length > 0) { + + + drawTasks(svg, tasksForSection, sectionNumber, masterX, masterY, maxTaskHeight, conf, maxEventCount,false); + } + // todo replace with total width of section and its tasks + masterX += 200 * Math.max(tasksForSection.length, 1); + + masterY = sectionBeginY; + sectionNumber++; + }); + } else { + //draw tasks + drawTasks(svg, tasks, sectionNumber, masterX, masterY, maxTaskHeight, conf, maxEventCount,true); + } + + + + + // draw tasks + //drawTasks(svg, tasks, 0); + + const box = bounds.getBounds(); + if (title) { + svg + .append('text') + .text(title) + .attr('x', LEFT_MARGIN) + .attr('font-size', '4ex') + .attr('font-weight', 'bold') + .attr('y', 25); + } + + const height = box.stopy - box.starty + 2 * conf.diagramMarginY; + const width = LEFT_MARGIN + box.stopx + 2 * conf.diagramMarginX; + +// Setup the view box and size of the svg element + setupGraphViewbox(undefined, svg, conf.timeline.padding, conf.timeline.useMaxWidth); + + //5. Draw the diagram + const maxTaskLength = 500; + + // Draw activity line + svg + .append('line') + .attr('x1', LEFT_MARGIN) + .attr('y1', maxSectionHeight + maxTaskHeight +150) // One section head + one task + margins + .attr('x2', tasks && tasks.length? (tasks.length*200)+ 400 : 400) // Subtract stroke width so arrow point is retained + .attr('y2', maxSectionHeight + maxTaskHeight +150) + .attr('stroke-width', 4) + .attr('stroke', 'black') + .attr('marker-end', 'url(#arrowhead)'); + + const extraVertForTitle = title ? 70 : 0; + svg.attr('viewBox', `${box.startx} -25 ${width} ${height + extraVertForTitle}`); + svg.attr('preserveAspectRatio', 'xMinYMin meet'); + svg.attr('height', height + extraVertForTitle + 25); + + // addSVGAccessibilityFields(diagObj.db, diagram, id); +}; + +export const bounds = { + data: { + startx: undefined, + stopx: undefined, + starty: undefined, + stopy: undefined, + }, + verticalPos: 0, + + sequenceItems: [], + init: function () { + this.sequenceItems = []; + this.data = { + startx: undefined, + stopx: undefined, + starty: undefined, + stopy: undefined, + }; + this.verticalPos = 0; + }, + updateVal: function (obj, key, val, fun) { + if (typeof obj[key] === 'undefined') { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + }, + updateBounds: function (startx, starty, stopx, stopy) { + const conf = getConfig().timeline; + // eslint-disable-next-line @typescript-eslint/no-this-alias + const _self = this; + let cnt = 0; + /** @param {any} type */ + function updateFn(type) { + return function updateItemBounds(item) { + cnt++; + // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems + const n = _self.sequenceItems.length - cnt + 1; + _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min); + _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max); + + _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min); + _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max); + + if (!(type === 'activation')) { + _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min); + _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max); + + _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min); + _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max); + } + }; + } + + this.sequenceItems.forEach(updateFn()); + }, + insert: function (startx, starty, stopx, stopy) { + const _startx = Math.min(startx, stopx); + const _stopx = Math.max(startx, stopx); + const _starty = Math.min(starty, stopy); + const _stopy = Math.max(starty, stopy); + + this.updateVal(bounds.data, 'startx', _startx, Math.min); + this.updateVal(bounds.data, 'starty', _starty, Math.min); + this.updateVal(bounds.data, 'stopx', _stopx, Math.max); + this.updateVal(bounds.data, 'stopy', _stopy, Math.max); + + this.updateBounds(_startx, _starty, _stopx, _stopy); + }, + bumpVerticalPos: function (bump) { + this.verticalPos = this.verticalPos + bump; + this.data.stopy = this.verticalPos; + }, + getVerticalPos: function () { + return this.verticalPos; + }, + getBounds: function () { + return this.data; + }, +}; + + + +export const drawTasks = function (diagram, tasks, sectionColor, masterX, masterY, maxTaskHeight,conf,maxEventCount, isWithoutSections) { + + const taskBeginY = masterY; + + const taskBeginX = masterX; + + // Draw the tasks + for (let i = 0; i < tasks.length; i++) { + + const task = tasks[i]; + // create node from task + const taskNode = { + descr: task.task, + section: sectionColor, + number : sectionColor, + width: 150, + padding: 20, + maxHeight: maxTaskHeight, + }; + + //log task node + log.info('taskNode', taskNode); + // create task wrapper + const taskWrapper = diagram.append('g').attr('class', 'taskWrapper'); + const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf); + const taskHeight = node.height; + //log task height + log.info('taskHeight after draw', taskHeight); + taskWrapper.attr( + 'transform', + `translate(${masterX}, ${masterY})` + ); + + // update max task height + maxTaskHeight = Math.max(maxTaskHeight, taskHeight); + + + + // if task has events, draw them + if (task.events) { + // draw a line between the task and the events + const lineWrapper = diagram.append('g').attr('class', 'lineWrapper'); + + let linelength = maxTaskHeight; + + + + //add margin to task + masterY += 100; + linelength = linelength+ drawEvents(diagram, task.events, sectionColor, masterX, masterY, conf); + masterY -= 100; + + lineWrapper + .append('line') + .attr('x1', masterX + 190/2) + .attr('y1', masterY + maxTaskHeight) // One section head + one task + margins + .attr('x2', masterX + 190/2) // Subtract stroke width so arrow point is retained + .attr('y2', masterY + linelength + maxEventCount * 100) + .attr('stroke-width', 2) + .attr('stroke', 'black') + .attr('marker-end', 'url(#arrowhead)') + .attr('stroke-dasharray', "5,5"); + } + + + + masterX = masterX + 200; + if (isWithoutSections) { + sectionColor++; + } + } + + +// reset Y coordinate for next section + masterY= masterY -10; ; +}; + +export const drawEvents = function (diagram, events, sectionColor, masterX, masterY, conf) { + + let maxEventHeight = 0; + const eventBeginY = masterY; + masterY = masterY + 100 + // Draw the events + for (let i = 0; i < events.length; i++) { + const event = events[i]; + // create node from event + const eventNode = { + descr: event, + section: sectionColor, + number : sectionColor, + width: 150, + padding: 20, + maxHeight: 50, + }; + + //log task node + log.info('eventNode', eventNode); + // create event wrapper + const eventWrapper = diagram.append('g').attr('class', 'eventWrapper'); + const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf) + const eventHeight = node.height; + maxEventHeight= maxEventHeight + eventHeight; + eventWrapper.attr( + 'transform', + `translate(${masterX}, ${masterY})` + ); + masterY = masterY + 10 + eventHeight; + + } + // set masterY back to eventBeginY + masterY = eventBeginY; + return maxEventHeight; + +}; + +export default { + setConf, + draw, +}; diff --git a/packages/mermaid-timeline/src/types/index.d.ts b/packages/mermaid-timeline/src/types/index.d.ts new file mode 100644 index 0000000000..999ff2f493 --- /dev/null +++ b/packages/mermaid-timeline/src/types/index.d.ts @@ -0,0 +1,7 @@ +export {}; + +declare global { + interface Window { + mermaid: any; // 👈️ turn off type checking + } +} diff --git a/packages/mermaid-timeline/tsconfig.json b/packages/mermaid-timeline/tsconfig.json new file mode 100644 index 0000000000..310137cc0f --- /dev/null +++ b/packages/mermaid-timeline/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "module": "esnext", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src/**/*.ts"], + "typeRoots": ["./src/types"] +} diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts index ff199ca8b1..63fe078fa6 100644 --- a/packages/mermaid/src/config.type.ts +++ b/packages/mermaid/src/config.type.ts @@ -26,6 +26,7 @@ export interface MermaidConfig { sequence?: SequenceDiagramConfig; gantt?: GanttDiagramConfig; journey?: JourneyDiagramConfig; + timeline?: TimelineDiagramConfig; class?: ClassDiagramConfig; state?: StateDiagramConfig; er?: ErDiagramConfig; @@ -292,6 +293,29 @@ export interface JourneyDiagramConfig extends BaseDiagramConfig { sectionColours?: string[]; } +export interface TimelineDiagramConfig extends BaseDiagramConfig { + diagramMarginX?: number; + diagramMarginY?: number; + leftMargin?: number; + width?: number; + height?: number; + boxMargin?: number; + boxTextMargin?: number; + noteMargin?: number; + messageMargin?: number; + messageAlign?: string; + bottomMarginAdj?: number; + rightAngles?: boolean; + taskFontSize?: string | number; + taskFontFamily?: string; + taskMargin?: number; + activationWidth?: number; + textPlacement?: string; + actorColours?: string[]; + sectionFills?: string[]; + sectionColours?: string[]; +} + export interface GanttDiagramConfig extends BaseDiagramConfig { titleTopMargin?: number; barHeight?: number; diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 37d4f71fff..5bb4a1bd82 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -861,6 +861,155 @@ const config: Partial = { sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'], sectionColours: ['#fff'], }, + /** The object containing configurations specific for timeline diagrams */ + timeline: { + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | + * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 + */ + diagramMarginX: 50, + + /** + * | Parameter | Description | Type | Required | Values | + * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | + * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 + */ + diagramMarginY: 10, + + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | --------------------- | ------- | -------- | ------------------ | + * | actorMargin | Margin between actors | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 50 + */ + leftMargin: 150, + + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | -------------------- | ------- | -------- | ------------------ | + * | width | Width of actor boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 150 + */ + width: 150, + + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | --------------------- | ------- | -------- | ------------------ | + * | height | Height of actor boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 65 + */ + height: 50, + + /** + * | Parameter | Description | Type | Required | Values | + * | --------- | ------------------------ | ------- | -------- | ------------------ | + * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 + */ + boxMargin: 10, + + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ | + * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 5 + */ + boxTextMargin: 5, + + /** + * | Parameter | Description | Type | Required | Values | + * | ---------- | ------------------- | ------- | -------- | ------------------ | + * | noteMargin | Margin around notes | Integer | Required | Any Positive Value | + * + * **Notes:** Default value: 10 + */ + noteMargin: 10, + + /** + * | Parameter | Description | Type | Required | Values | + * | ------------- | ----------------------- | ------- | -------- | ------------------ | + * | messageMargin | Space between messages. | Integer | Required | Any Positive Value | + * + * **Notes:** + * + * Space between messages. + * + * Default value: 35 + */ + messageMargin: 35, + + /** + * | Parameter | Description | Type | Required | Values | + * | ------------ | --------------------------- | ---- | -------- | ------------------------- | + * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | + * + * **Notes:** Default value: 'center' + */ + messageAlign: 'center', + + /** + * | Parameter | Description | Type | Required | Values | + * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ | + * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | + * + * **Notes:** + * + * Depending on css styling this might need adjustment. + * + * Default value: 1 + */ + bottomMarginAdj: 1, + + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | ----------- | ------- | -------- | ----------- | + * | useMaxWidth | See notes | boolean | 4 | true, false | + * + * **Notes:** + * + * When this flag is set the height and width is set to 100% and is then scaling with the + * available space if not the absolute space required is used. + * + * Default value: true + */ + useMaxWidth: true, + + /** + * | Parameter | Description | Type | Required | Values | + * | ----------- | --------------------------------- | ---- | -------- | ----------- | + * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | + * + * **Notes:** + * + * This will display arrows that start and begin at the same node as right angles, rather than a + * curves + * + * Default value: false + */ + rightAngles: false, + taskFontSize: 14, + taskFontFamily: '"Open Sans", sans-serif', + taskMargin: 50, + // width of activation box + activationWidth: 10, + + // text placement as: tspan | fo | old only text as before + textPlacement: 'fo', + actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'], + + sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'], + sectionColours: ['#fff'], + }, class: { /** * ### titleTopMargin diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index 748cc5f962..ddb22df2cc 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -5,6 +5,8 @@ import { sanitizeText as _sanitizeText } from '../diagrams/common/common'; import { setupGraphViewbox as _setupGraphViewbox } from '../setupGraphViewbox'; import { addStylesForDiagram } from '../styles'; import { DiagramDefinition, DiagramDetector } from './types'; +import * as _commonDb from '../commonDb'; + /* Packaging and exposing resources for external diagrams so that they can import @@ -16,6 +18,7 @@ export const setLogLevel = _setLogLevel; export const getConfig = _getConfig; export const sanitizeText = (text: string) => _sanitizeText(text, getConfig()); export const setupGraphViewbox = _setupGraphViewbox; +export const getCommonDb = () => { return _commonDb }; const diagrams: Record = {}; export interface Detectors { @@ -46,7 +49,7 @@ export const registerDiagram = ( addStylesForDiagram(id, diagram.styles); if (diagram.injectUtils) { - diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox); + diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox,getCommonDb()); } }; diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts index 23810d1330..652f35402b 100644 --- a/packages/mermaid/src/diagram-api/types.ts +++ b/packages/mermaid/src/diagram-api/types.ts @@ -6,6 +6,7 @@ export interface InjectUtils { _getConfig: any; _sanitizeText: any; _setupGraphViewbox: any; + _commonDb: any; } /** @@ -27,7 +28,8 @@ export interface DiagramDefinition { _setLogLevel: InjectUtils['_setLogLevel'], _getConfig: InjectUtils['_getConfig'], _sanitizeText: InjectUtils['_sanitizeText'], - _setupGraphViewbox: InjectUtils['_setupGraphViewbox'] + _setupGraphViewbox: InjectUtils['_setupGraphViewbox'], + _commonDb: InjectUtils['_commonDb'] ) => void; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5de78bdb11..2ba8f07763 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -349,6 +349,22 @@ importers: specifier: ^3.0.2 version: 3.0.2 + packages/mermaid-timeline: + dependencies: + d3: + specifier: ^7.0.0 + version: 7.6.1 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + devDependencies: + concurrently: + specifier: ^7.4.0 + version: 7.5.0 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + tests/webpack: dependencies: '@mermaid-js/mermaid-mindmap': @@ -3634,7 +3650,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -6309,7 +6325,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2_debug@4.3.2: + /follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6317,8 +6333,6 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -6911,7 +6925,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug From 14ff8a857027bb24bb17fc34906271b2afdff568 Mon Sep 17 00:00:00 2001 From: ashishj Date: Wed, 23 Nov 2022 19:32:27 +0100 Subject: [PATCH 0735/1038] add runnning example --- cypress/platform/ashish2.html | 67 +++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/cypress/platform/ashish2.html b/cypress/platform/ashish2.html index e10ea6a2d5..3fe2236807 100644 --- a/cypress/platform/ashish2.html +++ b/cypress/platform/ashish2.html @@ -56,27 +56,56 @@
        Security check
        -flowchart TD
        -    A --> B
        -    B --> C
        -    A --> C
        + timeline
        +        title My day
        +        section section with no tasks
        +        section Go to work at the dog office
        +          1930 : first step : second step
        +               : third step
        +          1940 : fourth step : fifth step
        +        section Go home
        +          1950 : India got independent and already won war against Pakistan
        +          1960 : India fights poverty, looses war to China
        +          1970 : Green Revolution comes to india
        +        section Another section with no tasks
        +          I am a big big big tasks
        +          I am not so big tasks
        +    
        +
        + timeline
        +        title England's History Timeline
        +        section Stone Age
        +          7600 BC : Britain's oldest known house was built in Orkney, Scotland
        +          6000 BC : Sea levels rise and Britain becomes an island. The people who live here are hunter-gatherers.
        +        section Broze Age
        +          2300 BC : People arrive from Europe and settle in Britain. They bring farming and metalworking.
        +               : New styles of pottery and ways of burying the dead appear.
        +          2200 BC : The last major building works are completed at Stonehenge. People now bury their dead in stone circles.
        +                  : The first metal objects are made in Britain.Some other nice things happen.
        +
        +    
        +
        + timeline
        +        title History of Social Media Platform
        +        section Rise of Social Media
        +          2002 : LinkedIn
        +          2004 : Facebook : Google
        +          2005 : Youtube
        +          2006 : Twitter
        +          2007 : Tumblr
        +          2008s : Instagram
        +          2010 : Pinterest
             
        -classDiagram
        -        direction LR
        -        class Student {
        -          -idCard : IdCard
        -        }
        -        class IdCard{
        -          -id : int
        -          -name : string
        -        }
        -        class Bike{
        -          -id : int
        -          -name : string
        -        }
        -        Student "1" --o "1" IdCard : carries
        -        Student "1" --o "1" Bike : rides
        + timeline
        +        title History of Social Media Platform
        +          2002 : LinkedIn
        +          2004 : Facebook : Google
        +          2005 : Youtube
        +          2006 : Twitter
        +          2007 : Tumblr
        +          2008s : Instagram
        +          2010 : Pinterest
             
          timeline
        
        From ecf1273c822a56fab606f5abe0024931b846c448 Mon Sep 17 00:00:00 2001
        From: "C.D. MacEachern" 
        Date: Wed, 23 Nov 2022 15:25:06 -0500
        Subject: [PATCH 0736/1038] Add official vim plugin to list in integrations
        
        https://github.com/vim/vim/commit/364438d1e817d1d76003695f9ab533df35f8948a added recognition of Mermaid files to Vim. Link here is to the upstream source from which it comes.
        ---
         packages/mermaid/src/docs/misc/integrations.md | 1 +
         1 file changed, 1 insertion(+)
        
        diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md
        index 31f2d09d05..9fd4415ad7 100644
        --- a/packages/mermaid/src/docs/misc/integrations.md
        +++ b/packages/mermaid/src/docs/misc/integrations.md
        @@ -116,6 +116,7 @@ They also serve as proof of concept, for the variety of things that can be built
         - [Draw.io](https://draw.io) - [Plugin](https://github.com/nopeslide/drawio_mermaid_plugin)
         - [Inkdrop](https://www.inkdrop.app) - [Plugin](https://github.com/inkdropapp/inkdrop-mermaid)
         - [Vim](https://www.vim.org)
        +  - [Official Vim Syntax and ftplugin](https://github.com/craigmac/vim-mermaid) 
           - [Vim Diagram Syntax](https://github.com/zhaozg/vim-diagram)
         - [GNU Emacs](https://www.gnu.org/software/emacs/)
           - [Major mode for .mmd files](https://github.com/abrochard/mermaid-mode)
        
        From 5e330a6d780c6c4869ccf55f7b03d1ced4fcafe0 Mon Sep 17 00:00:00 2001
        From: Sidharth Vinod 
        Date: Thu, 24 Nov 2022 16:33:42 +0530
        Subject: [PATCH 0737/1038] test: Update vitest
        
        ---
         package.json                                  |  6 +--
         .../{ => .vitepress/theme}/redirect.spec.ts   |  2 +-
         pnpm-lock.yaml                                | 52 ++++++++++++++++++-
         3 files changed, 52 insertions(+), 8 deletions(-)
         rename packages/mermaid/src/docs/{ => .vitepress/theme}/redirect.spec.ts (96%)
        
        diff --git a/package.json b/package.json
        index 628fcecd2a..aec72da87b 100644
        --- a/package.json
        +++ b/package.json
        @@ -110,12 +110,8 @@
             "vitepress": "^1.0.0-alpha.28",
             "vitepress-plugin-mermaid": "^2.0.8",
             "vitepress-plugin-search": "^1.0.4-alpha.15",
        -    "vitest": "^0.25.1"
        +    "vitest": "^0.25.3"
           },
        -  "sideEffects": [
        -    "**/*.css",
        -    "**/*.scss"
        -  ],
           "volta": {
             "node": "18.12.1"
           }
        diff --git a/packages/mermaid/src/docs/redirect.spec.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts
        similarity index 96%
        rename from packages/mermaid/src/docs/redirect.spec.ts
        rename to packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts
        index 6bf25c03bc..c263641082 100644
        --- a/packages/mermaid/src/docs/redirect.spec.ts
        +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts
        @@ -2,7 +2,7 @@
         // Update https://github.com/mermaid-js/mermaid/blob/18c27c6f1d0537a738cbd95898df301b83c38ffc/packages/mermaid/src/docs.mts#L246 once fixed
         
         import { expect, test } from 'vitest';
        -import { getRedirect } from './.vitepress/theme/redirect';
        +import { getRedirect } from './redirect';
         
         test.each([
           ['http://localhost:1234/mermaid/#/flowchart.md', 'syntax/flowchart.html'],
        diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
        index 5de78bdb11..ebb71f65ee 100644
        --- a/pnpm-lock.yaml
        +++ b/pnpm-lock.yaml
        @@ -173,8 +173,8 @@ importers:
                 specifier: ^1.0.4-alpha.15
                 version: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54
               vitest:
        -        specifier: ^0.25.1
        -        version: 0.25.1_iyb77cyw3lw7duusvxyjdsflhu
        +        specifier: ^0.25.3
        +        version: 0.25.3_iyb77cyw3lw7duusvxyjdsflhu
         
           packages/mermaid:
             dependencies:
        @@ -11214,6 +11214,54 @@ packages:
               - terser
             dev: true
         
        +  /vitest/0.25.3_iyb77cyw3lw7duusvxyjdsflhu:
        +    resolution: {integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==}
        +    engines: {node: '>=v14.16.0'}
        +    hasBin: true
        +    peerDependencies:
        +      '@edge-runtime/vm': '*'
        +      '@vitest/browser': '*'
        +      '@vitest/ui': '*'
        +      happy-dom: '*'
        +      jsdom: '*'
        +    peerDependenciesMeta:
        +      '@edge-runtime/vm':
        +        optional: true
        +      '@vitest/browser':
        +        optional: true
        +      '@vitest/ui':
        +        optional: true
        +      happy-dom:
        +        optional: true
        +      jsdom:
        +        optional: true
        +    dependencies:
        +      '@types/chai': 4.3.3
        +      '@types/chai-subset': 1.3.3
        +      '@types/node': 18.11.9
        +      '@vitest/ui': 0.25.1
        +      acorn: 8.8.0
        +      acorn-walk: 8.2.0
        +      chai: 4.3.6
        +      debug: 4.3.4
        +      happy-dom: 6.0.4
        +      jsdom: 20.0.2
        +      local-pkg: 0.4.2
        +      source-map: 0.6.1
        +      strip-literal: 0.4.2
        +      tinybench: 2.3.1
        +      tinypool: 0.3.0
        +      tinyspy: 1.0.2
        +      vite: 3.2.3_@types+node@18.11.9
        +    transitivePeerDependencies:
        +      - less
        +      - sass
        +      - stylus
        +      - sugarss
        +      - supports-color
        +      - terser
        +    dev: true
        +
           /vm2/3.9.11:
             resolution: {integrity: sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==}
             engines: {node: '>=6.0'}
        
        From 4a4eff55c16205c90321a8cf9618460f7688dafd Mon Sep 17 00:00:00 2001
        From: Sidharth Vinod 
        Date: Fri, 25 Nov 2022 12:00:31 +0530
        Subject: [PATCH 0738/1038] chore: Fix lint
        
        ---
         cSpell.json                                    | 1 +
         docs/misc/integrations.md                      | 1 +
         packages/mermaid/src/docs/misc/integrations.md | 2 +-
         3 files changed, 3 insertions(+), 1 deletion(-)
        
        diff --git a/cSpell.json b/cSpell.json
        index 428003cefd..b18111c169 100644
        --- a/cSpell.json
        +++ b/cSpell.json
        @@ -31,6 +31,7 @@
             "edgechromium",
             "faber",
             "flatmap",
        +    "ftplugin",
             "gantt",
             "gitea",
             "gitgraph",
        diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md
        index a4c9e31a5f..007b9e7780 100644
        --- a/docs/misc/integrations.md
        +++ b/docs/misc/integrations.md
        @@ -122,6 +122,7 @@ They also serve as proof of concept, for the variety of things that can be built
         - [Draw.io](https://draw.io) - [Plugin](https://github.com/nopeslide/drawio_mermaid_plugin)
         - [Inkdrop](https://www.inkdrop.app) - [Plugin](https://github.com/inkdropapp/inkdrop-mermaid)
         - [Vim](https://www.vim.org)
        +  - [Official Vim Syntax and ftplugin](https://github.com/craigmac/vim-mermaid)
           - [Vim Diagram Syntax](https://github.com/zhaozg/vim-diagram)
         - [GNU Emacs](https://www.gnu.org/software/emacs/)
           - [Major mode for .mmd files](https://github.com/abrochard/mermaid-mode)
        diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md
        index 9fd4415ad7..06d09634ff 100644
        --- a/packages/mermaid/src/docs/misc/integrations.md
        +++ b/packages/mermaid/src/docs/misc/integrations.md
        @@ -116,7 +116,7 @@ They also serve as proof of concept, for the variety of things that can be built
         - [Draw.io](https://draw.io) - [Plugin](https://github.com/nopeslide/drawio_mermaid_plugin)
         - [Inkdrop](https://www.inkdrop.app) - [Plugin](https://github.com/inkdropapp/inkdrop-mermaid)
         - [Vim](https://www.vim.org)
        -  - [Official Vim Syntax and ftplugin](https://github.com/craigmac/vim-mermaid) 
        +  - [Official Vim Syntax and ftplugin](https://github.com/craigmac/vim-mermaid)
           - [Vim Diagram Syntax](https://github.com/zhaozg/vim-diagram)
         - [GNU Emacs](https://www.gnu.org/software/emacs/)
           - [Major mode for .mmd files](https://github.com/abrochard/mermaid-mode)
        
        From 7508cd796d8e6b50e64503d429031e0601c9659e Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Sun, 27 Nov 2022 10:13:32 -0800
        Subject: [PATCH 0739/1038] (minor) fix comment, comment typo
        
        ---
         packages/mermaid/src/tests/MockedD3.ts | 2 +-
         packages/mermaid/src/utils.ts          | 2 +-
         2 files changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts
        index 24cb9043fe..56787448a1 100644
        --- a/packages/mermaid/src/tests/MockedD3.ts
        +++ b/packages/mermaid/src/tests/MockedD3.ts
        @@ -99,7 +99,7 @@ export class MockedD3 {
             return this;
           }
         
        -  // NOTE: Returns a HTML ELement with tag 'svg' that has _another_ 'svg' element child.
        +  // NOTE: Returns a HTML Element with tag 'svg' that has _another_ 'svg' element child.
           // This allows different tests to succeed -- some need a top level 'svg' and some need a 'svg' element to be the firstChild
           // Real implementation returns an HTML Element
           public node = vi.fn().mockImplementation(() => {
        diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts
        index 3689a01a10..19ed228f9f 100644
        --- a/packages/mermaid/src/utils.ts
        +++ b/packages/mermaid/src/utils.ts
        @@ -915,7 +915,7 @@ export function getErrorMessage(error: unknown): string {
         }
         
         /**
        - * Appends  element with the given title, centered.
        + * Appends  element with the given title and css class.
          *
          * @param parent - d3 svg object to append title to
          * @param cssClass - CSS class for the  element containing the title
        
        From f1bc2deafd1f8ec30ccea37d853fb944480fbed6 Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Sun, 27 Nov 2022 10:14:11 -0800
        Subject: [PATCH 0740/1038] use MockedD3, spies in util insertTitle spec
         (remove MockD3)
        
        ---
         packages/mermaid/src/utils.spec.js | 58 +++++++++++++++++++++++-------
         1 file changed, 45 insertions(+), 13 deletions(-)
        
        diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js
        index 54262f10ee..769a0d0cce 100644
        --- a/packages/mermaid/src/utils.spec.js
        +++ b/packages/mermaid/src/utils.spec.js
        @@ -4,7 +4,8 @@ import assignWithDepth from './assignWithDepth';
         import { detectType } from './diagram-api/detectType';
         import { addDiagrams } from './diagram-api/diagram-orchestration';
         import memoize from 'lodash-es/memoize';
        -import { MockD3 } from 'd3';
        +import { MockedD3 } from './tests/MockedD3';
        +
         addDiagrams();
         
         describe('when assignWithDepth: should merge objects within objects', function () {
        @@ -352,21 +353,52 @@ describe('when initializing the id generator', function () {
         });
         
         describe('when inserting titles', function () {
        -  it('should do nothing when title is empty', function () {
        -    const svg = MockD3('svg');
        +  const svg = new MockedD3('svg');
        +  const mockedElement = {
        +    getBBox: vi.fn().mockReturnValue({ x: 10, y: 11, width: 100, height: 200 }),
        +  };
        +  const fauxTitle = new MockedD3('title');
        +
        +  beforeEach(() => {
        +    svg.node = vi.fn().mockReturnValue(mockedElement);
        +  });
        +
        +  it('does nothing if the title is empty', function () {
        +    const svg_append_spy = vi.spyOn(svg, 'append');
             utils.insertTitle(svg, 'testClass', 0, '');
        -    expect(svg.__children.length).toBe(0);
        +    expect(svg_append_spy).not.toHaveBeenCalled();
        +  });
        +
        +  it('appends the title as a text item with the given title text', function () {
        +    const svg_append_spy = vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        +    const title_text_spy = vi.spyOn(fauxTitle, 'text');
        +
        +    utils.insertTitle(svg, 'testClass', 5, 'test title');
        +    expect(svg_append_spy).toHaveBeenCalled();
        +    expect(title_text_spy).toHaveBeenCalledWith('test title');
           });
         
        -  it('should insert title centered', function () {
        -    const svg = MockD3('svg');
        +  it('x value is the bounds x position + half of the bounds width', () => {
        +    vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        +    const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
        +
        +    utils.insertTitle(svg, 'testClass', 5, 'test title');
        +    expect(title_attr_spy).toHaveBeenCalledWith('x', 10 + 100 / 2);
        +  });
        +
        +  it('y value is - given title top margin', () => {
        +    vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        +    const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
        +
        +    utils.insertTitle(svg, 'testClass', 5, 'test title');
        +    expect(title_attr_spy).toHaveBeenCalledWith('y', -5);
        +  });
        +
        +  it('class is the given css class', () => {
        +    vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        +    const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
        +
             utils.insertTitle(svg, 'testClass', 5, 'test title');
        -    expect(svg.__children.length).toBe(1);
        -    const text = svg.__children[0];
        -    expect(text.__name).toBe('text');
        -    expect(text.text).toHaveBeenCalledWith('test title');
        -    expect(text.attr).toHaveBeenCalledWith('x', 15);
        -    expect(text.attr).toHaveBeenCalledWith('y', -5);
        -    expect(text.attr).toHaveBeenCalledWith('class', 'testClass');
        +    expect(title_attr_spy).toHaveBeenCalledWith('class', 'testClass');
           });
         });
        
        From 5cfa919672ebeaaf5b45bc21a32d7cf49dd8cba2 Mon Sep 17 00:00:00 2001
        From: Alois Klink 
        Date: Sun, 27 Nov 2022 18:19:13 +0000
        Subject: [PATCH 0741/1038] fix: support parsing indented mmd YAML from HTML
        
        In order to parse the YAML front-matter in a Mermaid diagram, the
        YAML seperators **MUST NOT** be indented, e.g.:
        
        ````markdown
        ```mermaid
        ---
        title: This is fine.
        ---
        ```
        
        ```mermaid
          ---
          title: This is not fine, because the `---` are indented.
          ---
        ```
        ````
        
        However, this makes it very difficult to write nice Mermaid diagrams in
        HTML code-blocks.
        
        This commit uses [`ts-dedent`](https://www.npmjs.com/package/ts-dedent)
        to automatically remove the indentation from Mermaid diagrams when
        parsed from HTML. Mermaid diagrams from mermaidAPI.render() are **NOT**
        dedented, as that API is called from JavaScript code, and therefore
        users can easily `dedent` their own diagrams.
        ---
         packages/mermaid/package.json   |  1 +
         packages/mermaid/src/mermaid.ts |  8 ++++----
         pnpm-lock.yaml                  | 16 +++++++++++-----
         3 files changed, 16 insertions(+), 9 deletions(-)
        
        diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
        index 4b24fb661f..ac905fd06d 100644
        --- a/packages/mermaid/package.json
        +++ b/packages/mermaid/package.json
        @@ -64,6 +64,7 @@
             "moment-mini": "^2.24.0",
             "non-layered-tidy-tree-layout": "^2.0.2",
             "stylis": "^4.1.2",
        +    "ts-dedent": "^2.2.0",
             "uuid": "^9.0.0"
           },
           "devDependencies": {
        diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts
        index 993f2f9443..b0a7e4c3e8 100644
        --- a/packages/mermaid/src/mermaid.ts
        +++ b/packages/mermaid/src/mermaid.ts
        @@ -2,6 +2,8 @@
          * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid
          * functionality and to render the diagrams to svg code!
          */
        +import dedent from 'ts-dedent';
        +
         import { MermaidConfig } from './config.type';
         import { log } from './logger';
         import utils from './utils';
        @@ -147,8 +149,7 @@ const initThrowsErrors = function (
             txt = element.innerHTML;
         
             // transforms the html to pure text
        -    txt = utils
        -      .entityDecode(txt)
        +    txt = dedent(utils.entityDecode(txt)) // removes indentation, required for YAML parsing
               .trim()
               .replace(//gi, '
        '); @@ -288,8 +289,7 @@ const initThrowsErrorsAsync = async function ( txt = element.innerHTML; // transforms the html to pure text - txt = utils - .entityDecode(txt) + txt = dedent(utils.entityDecode(txt)) // removes indentation, required for YAML parsing .trim() .replace(//gi, '
        '); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebb71f65ee..cc91b753ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -211,6 +211,9 @@ importers: stylis: specifier: ^4.1.2 version: 4.1.2 + ts-dedent: + specifier: ^2.2.0 + version: 2.2.0 uuid: specifier: ^9.0.0 version: 9.0.0 @@ -3634,7 +3637,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -6309,7 +6312,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2_debug@4.3.2: + /follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6317,8 +6320,6 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -6911,7 +6912,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -10613,6 +10614,11 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true + /ts-dedent/2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + dev: false + /ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true From 4cc3b17d362b3c8edff9ac0ab7d7248a309fa988 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 27 Nov 2022 18:25:37 +0000 Subject: [PATCH 0742/1038] docs(demos): fix indentation of YAML front-matter Mermaid diagrams that have YAML front-matter can now be indented in HTML code, see commit: 5cfa9196 (fix: support parsing indented mmd YAML from HTML, 2022-11-27) Some diagrams previously had a mix of tabs/spaces for indentation. In order for `dedent` to work, these diagrams had to be converted to using a consistent indentation. --- demos/classchart.html | 8 +++--- demos/er.html | 61 +++++++++++++++++++++---------------------- demos/flowchart.html | 12 ++++----- demos/git.html | 6 ++--- demos/journey.html | 6 ++--- demos/state.html | 20 +++++++------- 6 files changed, 56 insertions(+), 57 deletions(-) diff --git a/demos/classchart.html b/demos/classchart.html index 031f3b608f..b879618b62 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -17,10 +17,10 @@

        Class diagram demos

        ----
        -title: Demo Class Diagram
        ----
        -		classDiagram
        +    ---
        +    title: Demo Class Diagram
        +    ---
        +    classDiagram
               accTitle: Demo Class Diagram
               accDescr: This class diagram show the abstract Animal class, and 3 classes that inherit from it: Duck, Fish, and Zebra.
         
        diff --git a/demos/er.html b/demos/er.html
        index 06fbf020e7..b5d1966f72 100644
        --- a/demos/er.html
        +++ b/demos/er.html
        @@ -19,43 +19,42 @@
         
           
             
        +      ---
        +      title: This is a title
        +      ---
        +      erDiagram
        +        %% title This is a title
        +        %% accDescription Test a description
         
        ----
        -title: This is a title
        ----
        -erDiagram
        -  %% title This is a title
        -  %% accDescription Test a description
        +        "Person . CUSTOMER"||--o{ ORDER : places
         
        -  "Person . CUSTOMER"||--o{ ORDER : places
        +        ORDER ||--|{ "€£LINE_ITEM ¥" : contains
         
        -  ORDER ||--|{ "€£LINE_ITEM ¥" : contains
        +        "Person . CUSTOMER" }|..|{ "Address//StreetAddress::[DELIVERY ADDRESS]" : uses
         
        -  "Person . CUSTOMER" }|..|{ "Address//StreetAddress::[DELIVERY ADDRESS]" : uses
        +        "Address//StreetAddress::[DELIVERY ADDRESS]" {
        +            int customerID FK
        +            string line1 "this is the first address line comment"
        +            string line2
        +            string city
        +            string region
        +            string state
        +            string postal_code
        +            string country
        +            }
         
        -  "Address//StreetAddress::[DELIVERY ADDRESS]" {
        -      int customerID FK
        -      string line1 "this is the first address line comment"
        -      string line2
        -      string city
        -      string region
        -      string state
        -      string postal_code
        -      string country
        -      }
        -
        -      "a_~`!@#$^&*()-_=+[]{}|/;:'.?¡⁄™€£‹¢›∞fi§‡•°ª·º‚≠±œŒ∑„®†ˇ¥Á¨ˆˆØπ∏“«»åÅßÍ∂΃ϩ˙Ó∆Ô˚¬Ò…ÚæÆΩ¸≈π˛çÇ√◊∫ı˜µÂ≤¯≥˘÷¿" {
        -        string name "this is an entity with an absurd name just to show characters that are now acceptable as long as the name is in double quotes"
        -      }
        +            "a_~`!@#$^&*()-_=+[]{}|/;:'.?¡⁄™€£‹¢›∞fi§‡•°ª·º‚≠±œŒ∑„®†ˇ¥Á¨ˆˆØπ∏“«»åÅßÍ∂΃ϩ˙Ó∆Ô˚¬Ò…ÚæÆΩ¸≈π˛çÇ√◊∫ı˜µÂ≤¯≥˘÷¿" {
        +              string name "this is an entity with an absurd name just to show characters that are now acceptable as long as the name is in double quotes"
        +            }
         
        -      "€£LINE_ITEM ¥" {
        -        int orderID FK
        -        int currencyId FK
        -        number price
        -        number quantity
        -        number adjustment
        -        number final_price
        -      }
        +            "€£LINE_ITEM ¥" {
        +              int orderID FK
        +              int currencyId FK
        +              number price
        +              number quantity
        +              number adjustment
        +              number final_price
        +            }
             
        diff --git a/demos/flowchart.html b/demos/flowchart.html index 7251e586e5..60e6160c38 100644 --- a/demos/flowchart.html +++ b/demos/flowchart.html @@ -17,9 +17,9 @@

        Comparison "graph vs. flowchart"

        Sample 1

        graph

        ----
        -title: This is a complicated flow
        ----
        +    ---
        +    title: This is a complicated flow
        +    ---
             graph LR
               accTitle: This is a complicated flow
               accDescr: This is the descriptoin for the complicated flow.
        @@ -224,9 +224,9 @@ 

        flowchart

        Sample 2

        graph

        ----
        -title: What to buy
        ----
        +    ---
        +    title: What to buy
        +    ---
             graph TD
               accTitle: What to buy
               accDescr: Options of what to buy with Christmas money
        diff --git a/demos/git.html b/demos/git.html
        index 99c53d7d0a..5e683152aa 100644
        --- a/demos/git.html
        +++ b/demos/git.html
        @@ -16,9 +16,9 @@
           
             

        Git diagram demo

        ----
        -title: Simple Git diagram
        ----
        +    ---
        +    title: Simple Git diagram
        +    ---
             gitGraph:
             options
             {
        diff --git a/demos/journey.html b/demos/journey.html
        index dadcfb13c0..96c89a2151 100644
        --- a/demos/journey.html
        +++ b/demos/journey.html
        @@ -16,9 +16,9 @@
           
             

        Journey diagram demo

        ----
        -title: My working day 
        ----
        +    ---
        +    title: My working day 
        +    ---
              journey
               accTitle: Very simple journey demo
               accDescr: 2 main sections: work and home, each with just a few tasks
        diff --git a/demos/state.html b/demos/state.html
        index 3d070f3795..9251e837cb 100644
        --- a/demos/state.html
        +++ b/demos/state.html
        @@ -17,11 +17,11 @@
             

        State diagram demos

        Very simple showing change from State1 to State2

        ----
        -title: Very simple diagram
        ----
        -		stateDiagram
        -		  accTitle: This is the accessible title
        +    ---
        +    title: Very simple diagram
        +    ---
        +    stateDiagram
        +      accTitle: This is the accessible title
               accDescr:This is an accessible description
               State1 --> State2
             
        @@ -47,13 +47,13 @@

        And these are how they are applied:

        ----
        -title: Very simple diagram
        ----
        -		stateDiagram
        +    ---
        +    title: Very simple diagram
        +    ---
        +    stateDiagram
               direction TB
         
        -		  accTitle: This is the accessible title
        +      accTitle: This is the accessible title
               accDescr: This is an accessible description
         
               classDef notMoving fill:white
        
        From 6e486d3c49fe3aa8a8480cf486f07a53838673ed Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Sun, 27 Nov 2022 10:32:25 -0800
        Subject: [PATCH 0743/1038] add test for multi-line accDescr
        
        ---
         .../src/diagrams/er/parser/erDiagram.spec.js  | 28 +++++++++++++++----
         1 file changed, 22 insertions(+), 6 deletions(-)
        
        diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js
        index 6131f76976..43bc13e6dc 100644
        --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js
        +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js
        @@ -323,18 +323,34 @@ describe('when parsing ER diagram it...', function () {
             expect(Object.keys(erDb.getEntities()).length).toBe(1);
           });
         
        -  it('should allow for a accessibility title and description (accDescr)', function () {
        +  describe('accessible title and description', () => {
             const teacherRole = 'is teacher of';
             const line1 = `TEACHER }o--o{ STUDENT : "${teacherRole}"`;
         
        -    erDiagram.parser.parse(
        -      `erDiagram
        +    it('should allow for a accessibility title and description (accDescr)', function () {
        +      erDiagram.parser.parse(
        +        `erDiagram
               accTitle: graph title
               accDescr: this graph is about stuff
               ${line1}`
        -    );
        -    expect(erDb.getAccTitle()).toBe('graph title');
        -    expect(erDb.getAccDescription()).toBe('this graph is about stuff');
        +      );
        +      expect(erDb.getAccTitle()).toBe('graph title');
        +      expect(erDb.getAccDescription()).toBe('this graph is about stuff');
        +    });
        +
        +    it('parses a multi line description (accDescr)', function () {
        +      erDiagram.parser.parse(
        +        `erDiagram
        +      accTitle: graph title
        +      accDescr { this graph is
        +        about
        +        stuff
        +        }\n
        +      ${line1}`
        +      );
        +      expect(erDb.getAccTitle()).toEqual('graph title');
        +      expect(erDb.getAccDescription()).toEqual('this graph is\nabout\nstuff');
        +    });
           });
         
           it('should allow more than one relationship between the same two entities', function () {
        
        From 2030885fd3307829cee44a1c3187311e2dd5cae1 Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Sun, 27 Nov 2022 10:46:43 -0800
        Subject: [PATCH 0744/1038] update /docs
        
        ---
         docs/config/setup/modules/mermaidAPI.md | 22 +++++++++++-----------
         1 file changed, 11 insertions(+), 11 deletions(-)
        
        diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md
        index ef8a08b917..e236538e0a 100644
        --- a/docs/config/setup/modules/mermaidAPI.md
        +++ b/docs/config/setup/modules/mermaidAPI.md
        @@ -20,7 +20,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi)
         
         #### Defined in
         
        -[mermaidAPI.ts:73](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L73)
        +[mermaidAPI.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L72)
         
         ## Variables
         
        @@ -90,7 +90,7 @@ mermaid.initialize(config);
         
         #### Defined in
         
        -[mermaidAPI.ts:960](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L960)
        +[mermaidAPI.ts:959](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L959)
         
         ## Functions
         
        @@ -121,7 +121,7 @@ Return the last node appended
         
         #### Defined in
         
        -[mermaidAPI.ts:294](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L294)
        +[mermaidAPI.ts:293](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L293)
         
         ---
         
        @@ -147,7 +147,7 @@ the cleaned up svgCode
         
         #### Defined in
         
        -[mermaidAPI.ts:245](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L245)
        +[mermaidAPI.ts:244](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L244)
         
         ---
         
        @@ -173,7 +173,7 @@ the string with all the user styles
         
         #### Defined in
         
        -[mermaidAPI.ts:172](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L172)
        +[mermaidAPI.ts:171](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L171)
         
         ---
         
        @@ -196,7 +196,7 @@ the string with all the user styles
         
         #### Defined in
         
        -[mermaidAPI.ts:222](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L222)
        +[mermaidAPI.ts:221](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L221)
         
         ---
         
        @@ -223,7 +223,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
         
         #### Defined in
         
        -[mermaidAPI.ts:156](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L156)
        +[mermaidAPI.ts:155](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L155)
         
         ---
         
        @@ -243,7 +243,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
         
         #### Defined in
         
        -[mermaidAPI.ts:130](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L130)
        +[mermaidAPI.ts:129](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L129)
         
         ---
         
        @@ -263,7 +263,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
         
         #### Defined in
         
        -[mermaidAPI.ts:101](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L101)
        +[mermaidAPI.ts:100](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L100)
         
         ---
         
        @@ -289,7 +289,7 @@ Put the svgCode into an iFrame. Return the iFrame code
         
         #### Defined in
         
        -[mermaidAPI.ts:273](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L273)
        +[mermaidAPI.ts:272](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L272)
         
         ---
         
        @@ -315,4 +315,4 @@ Remove any existing elements from the given document
         
         #### Defined in
         
        -[mermaidAPI.ts:345](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L345)
        +[mermaidAPI.ts:344](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L344)
        
        From 51119f22dffe873ef286438cadea256f75d84c66 Mon Sep 17 00:00:00 2001
        From: Alois Klink 
        Date: Sun, 27 Nov 2022 18:54:41 +0000
        Subject: [PATCH 0745/1038] test(e2e): make gitgraph snapshots consistent
        
        Add a commit id to 'should render a simple gitgraph with a title',
        as otherwise the gitgraph renderer picks a random commit ID, and so
        image snapshots will be different.
        ---
         cypress/integration/rendering/gitGraph.spec.js | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/cypress/integration/rendering/gitGraph.spec.js b/cypress/integration/rendering/gitGraph.spec.js
        index 0b5048b44b..43f91a983e 100644
        --- a/cypress/integration/rendering/gitGraph.spec.js
        +++ b/cypress/integration/rendering/gitGraph.spec.js
        @@ -328,7 +328,7 @@ describe('Git Graph diagram', () => {
         title: simple gitGraph
         ---
         gitGraph
        -  commit
        +  commit id: "1-abcdefg"
         `,
               {}
             );
        
        From 05b25db5ebb98b8bb8854f2e7d153c1bb3e96203 Mon Sep 17 00:00:00 2001
        From: Alois Klink 
        Date: Sun, 27 Nov 2022 19:13:53 +0000
        Subject: [PATCH 0746/1038] chore(deps): remove dependency on `graphlib`
        
        `graphlib` has recently been replaced with the ESM version of
        graphlib bundled with
        [`dagre-d3-es`](https://www.npmjs.com/package/dagre-d3-es), in commit
        f687abb1 (chore: Use `graphlib` from `dagre-d3-es`, 2022-11-20)
        
        This means we can safely remove it from our dependencies list.
        
        Fixes: f687abb165795dfe959e87216bb111ebc7bc71cc
        ---
         packages/mermaid/package.json |  1 -
         pnpm-lock.yaml                | 17 +++--------------
         2 files changed, 3 insertions(+), 15 deletions(-)
        
        diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
        index 4b24fb661f..4479b8d452 100644
        --- a/packages/mermaid/package.json
        +++ b/packages/mermaid/package.json
        @@ -58,7 +58,6 @@
             "dagre-d3-es": "7.0.4",
             "dompurify": "2.4.1",
             "fast-clone": "^1.5.13",
        -    "graphlib": "^2.1.8",
             "khroma": "^2.0.0",
             "lodash-es": "^4.17.21",
             "moment-mini": "^2.24.0",
        diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
        index ebb71f65ee..3d090b7a5f 100644
        --- a/pnpm-lock.yaml
        +++ b/pnpm-lock.yaml
        @@ -193,9 +193,6 @@ importers:
               fast-clone:
                 specifier: ^1.5.13
                 version: 1.5.13
        -      graphlib:
        -        specifier: ^2.1.8
        -        version: 2.1.8
               khroma:
                 specifier: ^2.0.0
                 version: 2.0.0
        @@ -3634,7 +3631,7 @@ packages:
           /axios/0.21.4_debug@4.3.2:
             resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
             dependencies:
        -      follow-redirects: 1.15.2_debug@4.3.2
        +      follow-redirects: 1.15.2
             transitivePeerDependencies:
               - debug
             dev: true
        @@ -6309,7 +6306,7 @@ packages:
             resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==}
             dev: true
         
        -  /follow-redirects/1.15.2_debug@4.3.2:
        +  /follow-redirects/1.15.2:
             resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
             engines: {node: '>=4.0'}
             peerDependencies:
        @@ -6317,8 +6314,6 @@ packages:
             peerDependenciesMeta:
               debug:
                 optional: true
        -    dependencies:
        -      debug: 4.3.2
             dev: true
         
           /foreground-child/2.0.0:
        @@ -6665,12 +6660,6 @@ packages:
             resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
             dev: true
         
        -  /graphlib/2.1.8:
        -    resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==}
        -    dependencies:
        -      lodash: 4.17.21
        -    dev: false
        -
           /gray-matter/4.0.3:
             resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
             engines: {node: '>=6.0'}
        @@ -6911,7 +6900,7 @@ packages:
             engines: {node: '>=8.0.0'}
             dependencies:
               eventemitter3: 4.0.7
        -      follow-redirects: 1.15.2_debug@4.3.2
        +      follow-redirects: 1.15.2
               requires-port: 1.0.0
             transitivePeerDependencies:
               - debug
        
        From 6044e9e9e820e1412515241b81e267091d43289c Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Sun, 27 Nov 2022 19:17:17 -0800
        Subject: [PATCH 0747/1038] make test title clearer
        
        ---
         packages/mermaid/src/utils.spec.js | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js
        index 769a0d0cce..1c40cd6cc6 100644
        --- a/packages/mermaid/src/utils.spec.js
        +++ b/packages/mermaid/src/utils.spec.js
        @@ -386,7 +386,7 @@ describe('when inserting titles', function () {
             expect(title_attr_spy).toHaveBeenCalledWith('x', 10 + 100 / 2);
           });
         
        -  it('y value is - given title top margin', () => {
        +  it('y value is the negative of given title top margin', () => {
             vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
             const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
         
        
        From 2bf753a769ed816dab2a2ea81860ff1d02934134 Mon Sep 17 00:00:00 2001
        From: "Ashley Engelund (weedySeaDragon @ github)" 
        Date: Sun, 27 Nov 2022 19:17:37 -0800
        Subject: [PATCH 0748/1038] use camelCase
        
        ---
         packages/mermaid/src/accessibility.spec.ts | 74 +++++++++++-----------
         packages/mermaid/src/utils.spec.js         | 24 +++----
         2 files changed, 49 insertions(+), 49 deletions(-)
        
        diff --git a/packages/mermaid/src/accessibility.spec.ts b/packages/mermaid/src/accessibility.spec.ts
        index 57d5e89335..c633d0e15e 100644
        --- a/packages/mermaid/src/accessibility.spec.ts
        +++ b/packages/mermaid/src/accessibility.spec.ts
        @@ -8,16 +8,16 @@ describe('accessibility', () => {
           describe('setA11yDiagramInfo', () => {
             it('sets the aria-roledescription to the diagram type', () => {
               // @ts-ignore  Required to easily handle the d3 select types
        -      const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
        +      const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
               setA11yDiagramInfo(fauxSvgNode, 'flowchart');
        -      expect(svg_attr_spy).toHaveBeenCalledWith('aria-roledescription', 'flowchart');
        +      expect(svgAttrSpy).toHaveBeenCalledWith('aria-roledescription', 'flowchart');
             });
         
             it('does nothing if the diagram type is empty', () => {
               // @ts-ignore  Required to easily handle the d3 select types
        -      const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
        +      const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
               setA11yDiagramInfo(fauxSvgNode, '');
        -      expect(svg_attr_spy).not.toHaveBeenCalled();
        +      expect(svgAttrSpy).not.toHaveBeenCalled();
             });
           });
         
        @@ -29,9 +29,9 @@ describe('accessibility', () => {
                 const noInsertSvg = {
                   attr: vi.fn(),
                 };
        -        const noInsert_attr_spy = vi.spyOn(noInsertSvg, 'attr').mockReturnValue(noInsertSvg);
        +        const noInsertAttrSpy = vi.spyOn(noInsertSvg, 'attr').mockReturnValue(noInsertSvg);
                 addSVGa11yTitleDescription(noInsertSvg, 'some title', 'some desc', givenId);
        -        expect(noInsert_attr_spy).not.toHaveBeenCalled();
        +        expect(noInsertAttrSpy).not.toHaveBeenCalled();
               });
         
               // ----------------
        @@ -44,9 +44,9 @@ describe('accessibility', () => {
                 givenId: string
               ) {
                 // @ts-ignore Required to easily handle the d3 select types
        -        const svg_attr_spy = vi.spyOn(svgD3Node, 'attr').mockReturnValue(svgD3Node);
        +        const svgAttrSpy = vi.spyOn(svgD3Node, 'attr').mockReturnValue(svgD3Node);
                 addSVGa11yTitleDescription(svgD3Node, title, desc, givenId);
        -        expect(svg_attr_spy).toHaveBeenCalledWith('aria-labelledby', `chart-title-${givenId}`);
        +        expect(svgAttrSpy).toHaveBeenCalledWith('aria-labelledby', `chart-title-${givenId}`);
               }
         
               function expectAriaDescribedByIsDescId(
        @@ -56,9 +56,9 @@ describe('accessibility', () => {
                 givenId: string
               ) {
                 // @ts-ignore Required to easily handle the d3 select types
        -        const svg_attr_spy = vi.spyOn(svgD3Node, 'attr').mockReturnValue(svgD3Node);
        +        const svgAttrSpy = vi.spyOn(svgD3Node, 'attr').mockReturnValue(svgD3Node);
                 addSVGa11yTitleDescription(svgD3Node, title, desc, givenId);
        -        expect(svg_attr_spy).toHaveBeenCalledWith('aria-describedby', `chart-desc-${givenId}`);
        +        expect(svgAttrSpy).toHaveBeenCalledWith('aria-describedby', `chart-desc-${givenId}`);
               }
         
               function a11yTitleTagInserted(
        @@ -90,16 +90,16 @@ describe('accessibility', () => {
                 expectedPrefix: string,
                 expectedText: string | null | undefined
               ) {
        -        const faux_insertedD3 = new MockedD3();
        -        const svg_insert_spy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(faux_insertedD3);
        +        const fauxInsertedD3 = new MockedD3();
        +        const svgInsertSpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxInsertedD3);
                 // @ts-ignore  Required to easily handle the d3 select types
        -        const title_attr_spy = vi.spyOn(faux_insertedD3, 'attr').mockReturnValue(faux_insertedD3);
        -        const title_text_spy = vi.spyOn(faux_insertedD3, 'text');
        +        const titleAttrSpy = vi.spyOn(fauxInsertedD3, 'attr').mockReturnValue(fauxInsertedD3);
        +        const titleTextSpy = vi.spyOn(fauxInsertedD3, 'text');
         
                 addSVGa11yTitleDescription(fauxSvgNode, title, desc, givenId);
        -        expect(svg_insert_spy).toHaveBeenCalledWith(expectedPrefix, ':first-child');
        -        expect(title_attr_spy).toHaveBeenCalledWith('id', `chart-${expectedPrefix}-${givenId}`);
        -        expect(title_text_spy).toHaveBeenNthCalledWith(callNumber, expectedText);
        +        expect(svgInsertSpy).toHaveBeenCalledWith(expectedPrefix, ':first-child');
        +        expect(titleAttrSpy).toHaveBeenCalledWith('id', `chart-${expectedPrefix}-${givenId}`);
        +        expect(titleTextSpy).toHaveBeenNthCalledWith(callNumber, expectedText);
               }
               // ----------------
         
        @@ -135,9 +135,9 @@ describe('accessibility', () => {
         
                   it('no aria-describedby is set', () => {
                     // @ts-ignore Required to easily handle the d3 select types
        -            const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
        +            const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_attr_spy).not.toHaveBeenCalledWith('aria-describedby', expect.anything());
        +            expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-describedby', expect.anything());
                   });
         
                   it('inserts a title tag as the first child with the text set to the accTitle given', () => {
        @@ -145,10 +145,10 @@ describe('accessibility', () => {
                   });
         
                   it('no description tag is inserted', () => {
        -            const faux_title = new MockedD3();
        -            const svg_insert_spy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(faux_title);
        +            const fauxTitle = new MockedD3();
        +            const svgInsertSpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxTitle);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_insert_spy).not.toHaveBeenCalledWith('desc', ':first-child');
        +            expect(svgInsertSpy).not.toHaveBeenCalledWith('desc', ':first-child');
                   });
                 });
               });
        @@ -161,16 +161,16 @@ describe('accessibility', () => {
         
                   it('no aria-labelledby is set', () => {
                     // @ts-ignore Required to easily handle the d3 select types
        -            const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
        +            const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_attr_spy).not.toHaveBeenCalledWith('aria-labelledby', expect.anything());
        +            expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-labelledby', expect.anything());
                   });
         
                   it('no title tag inserted', () => {
        -            const faux_title = new MockedD3();
        -            const svg_insert_spy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(faux_title);
        +            const fauxTitle = new MockedD3();
        +            const svgInsertSpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxTitle);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_insert_spy).not.toHaveBeenCalledWith('title', ':first-child');
        +            expect(svgInsertSpy).not.toHaveBeenCalledWith('title', ':first-child');
                   });
         
                   it('sets aria-describedby to the description id inserted as a child', () => {
        @@ -187,30 +187,30 @@ describe('accessibility', () => {
         
                   it('no aria-labelledby is set', () => {
                     // @ts-ignore Required to easily handle the d3 select types
        -            const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
        +            const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_attr_spy).not.toHaveBeenCalledWith('aria-labelledby', expect.anything());
        +            expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-labelledby', expect.anything());
                   });
         
                   it('no aria-describedby is set', () => {
                     // @ts-ignore Required to easily handle the d3 select types
        -            const svg_attr_spy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
        +            const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_attr_spy).not.toHaveBeenCalledWith('aria-describedby', expect.anything());
        +            expect(svgAttrSpy).not.toHaveBeenCalledWith('aria-describedby', expect.anything());
                   });
         
                   it('no title tag inserted', () => {
        -            const faux_title = new MockedD3();
        -            const svg_insert_spy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(faux_title);
        +            const fauxTitle = new MockedD3();
        +            const svgInsertSpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxTitle);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_insert_spy).not.toHaveBeenCalledWith('title', ':first-child');
        +            expect(svgInsertSpy).not.toHaveBeenCalledWith('title', ':first-child');
                   });
         
                   it('no description tag inserted', () => {
        -            const faux_desc = new MockedD3();
        -            const svg_insert_spy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(faux_desc);
        +            const fauxDesc = new MockedD3();
        +            const svgInsertSpy = vi.spyOn(fauxSvgNode, 'insert').mockReturnValue(fauxDesc);
                     addSVGa11yTitleDescription(fauxSvgNode, a11yTitle, a11yDesc, givenId);
        -            expect(svg_insert_spy).not.toHaveBeenCalledWith('desc', ':first-child');
        +            expect(svgInsertSpy).not.toHaveBeenCalledWith('desc', ':first-child');
                   });
                 });
               });
        diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js
        index 1c40cd6cc6..e983d21c88 100644
        --- a/packages/mermaid/src/utils.spec.js
        +++ b/packages/mermaid/src/utils.spec.js
        @@ -364,41 +364,41 @@ describe('when inserting titles', function () {
           });
         
           it('does nothing if the title is empty', function () {
        -    const svg_append_spy = vi.spyOn(svg, 'append');
        +    const svgAppendSpy = vi.spyOn(svg, 'append');
             utils.insertTitle(svg, 'testClass', 0, '');
        -    expect(svg_append_spy).not.toHaveBeenCalled();
        +    expect(svgAppendSpy).not.toHaveBeenCalled();
           });
         
           it('appends the title as a text item with the given title text', function () {
        -    const svg_append_spy = vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        -    const title_text_spy = vi.spyOn(fauxTitle, 'text');
        +    const svgAppendSpy = vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        +    const titleTextSpy = vi.spyOn(fauxTitle, 'text');
         
             utils.insertTitle(svg, 'testClass', 5, 'test title');
        -    expect(svg_append_spy).toHaveBeenCalled();
        -    expect(title_text_spy).toHaveBeenCalledWith('test title');
        +    expect(svgAppendSpy).toHaveBeenCalled();
        +    expect(titleTextSpy).toHaveBeenCalledWith('test title');
           });
         
           it('x value is the bounds x position + half of the bounds width', () => {
             vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        -    const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
        +    const titleAttrSpy = vi.spyOn(fauxTitle, 'attr');
         
             utils.insertTitle(svg, 'testClass', 5, 'test title');
        -    expect(title_attr_spy).toHaveBeenCalledWith('x', 10 + 100 / 2);
        +    expect(titleAttrSpy).toHaveBeenCalledWith('x', 10 + 100 / 2);
           });
         
           it('y value is the negative of given title top margin', () => {
             vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        -    const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
        +    const titleAttrSpy = vi.spyOn(fauxTitle, 'attr');
         
             utils.insertTitle(svg, 'testClass', 5, 'test title');
        -    expect(title_attr_spy).toHaveBeenCalledWith('y', -5);
        +    expect(titleAttrSpy).toHaveBeenCalledWith('y', -5);
           });
         
           it('class is the given css class', () => {
             vi.spyOn(svg, 'append').mockReturnValue(fauxTitle);
        -    const title_attr_spy = vi.spyOn(fauxTitle, 'attr');
        +    const titleAttrSpy = vi.spyOn(fauxTitle, 'attr');
         
             utils.insertTitle(svg, 'testClass', 5, 'test title');
        -    expect(title_attr_spy).toHaveBeenCalledWith('class', 'testClass');
        +    expect(titleAttrSpy).toHaveBeenCalledWith('class', 'testClass');
           });
         });
        
        From 2984e4fc574fe579209c3696786e85734025426e Mon Sep 17 00:00:00 2001
        From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
        Date: Mon, 28 Nov 2022 04:53:07 +0000
        Subject: [PATCH 0749/1038] chore(deps): update pnpm to v7.17.1
        
        ---
         package.json | 2 +-
         1 file changed, 1 insertion(+), 1 deletion(-)
        
        diff --git a/package.json b/package.json
        index aec72da87b..3d01db5d7e 100644
        --- a/package.json
        +++ b/package.json
        @@ -4,7 +4,7 @@
           "version": "9.2.2",
           "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
           "type": "module",
        -  "packageManager": "pnpm@7.17.0",
        +  "packageManager": "pnpm@7.17.1",
           "keywords": [
             "diagram",
             "markdown",
        
        From 527a3df083079acfed49327577a193bc1556d6a1 Mon Sep 17 00:00:00 2001
        From: Sidharth Vinod 
        Date: Mon, 28 Nov 2022 15:44:19 +0530
        Subject: [PATCH 0750/1038] Revert "sync"
        
        This reverts commit a88a467d4569837f491e67a97f1a70ca570e087b.
        ---
         docs/syntax/classDiagram.md                   | 36 +++++++++----------
         .../docs/.vitepress/mermaid-markdown-all.ts   | 13 +++++--
         .../src/docs/.vitepress/theme/Mermaid.vue     | 10 ++++--
         3 files changed, 35 insertions(+), 24 deletions(-)
        
        diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md
        index 5870d07433..62ce5125e5 100644
        --- a/docs/syntax/classDiagram.md
        +++ b/docs/syntax/classDiagram.md
        @@ -267,16 +267,16 @@ A relationship is a general term covering the specific types of logical connecti
         
         There are eight different types of relations defined for classes under UML which are currently supported:
         
        -| Type    | Description   |
        -| ------- | ------------- |
        -| `<\|--` | Inheritance   |
        -| `\*--`  | Composition   |
        -| `o--`   | Aggregation   |
        -| `-->`   | Association   |
        -| `--`    | Link (Solid)  |
        -| `..>`   | Dependency    |
        -| `..\|>` | Realization   |
        -| `..`    | Link (Dashed) |
        +| Type | Description   |
        +| ---- | ------------- | ----------- |
        +| <    | --            | Inheritance |
        +| \*-- | Composition   |
        +| o--  | Aggregation   |
        +| -->  | Association   |
        +| --   | Link (Solid)  |
        +| ..>  | Dependency    |
        +| ..   | >             | Realization |
        +| ..   | Link (Dashed) |
         
         ```mermaid-example
         classDiagram
        @@ -372,14 +372,14 @@ Here is the syntax:
         
         Where `Relation Type` can be one of:
         
        -| Type  | Description |
        -| ----- | ----------- |
        -| `<\|` | Inheritance |
        -| `\*`  | Composition |
        -| `o`   | Aggregation |
        -| `>`   | Association |
        -| `<`   | Association |
        -| `\|>` | Realization |
        +| Type | Description |
        +| ---- | ----------- | ----------- |
        +| <    |             | Inheritance |
        +| \*   | Composition |
        +| o    | Aggregation |
        +| >    | Association |
        +| <    | Association |
        +|      | >           | Realization |
         
         And `Link` can be one of:
         
        diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts
        index c157cf6794..5dff951e90 100644
        --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts
        +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts
        @@ -34,10 +34,17 @@ const MermaidExample = async (md: MarkdownRenderer) => {
               
        `; } else if (token.info.trim() === 'mermaid') { const key = index; - return ` - ${key} + return ` ${key} + + + + + +`; } if (token.info.trim() === 'warning') { return `

        WARNING

        ${token.content}}

        `; diff --git a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue index 90ece11a6a..fe2510efda 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue +++ b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue @@ -5,7 +5,11 @@ From e302ee383a41443183cb8dde0eb890c514123628 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 28 Nov 2022 16:11:24 +0530 Subject: [PATCH 0751/1038] fix Async rendering --- docs/config/setup/modules/config.md | 16 ++++----- docs/syntax/classDiagram.md | 36 +++++++++---------- .../docs/.vitepress/mermaid-markdown-all.ts | 2 +- .../src/docs/.vitepress/theme/Mermaid.vue | 26 ++++---------- .../src/docs/.vitepress/theme/mermaid.ts | 16 +++++++++ 5 files changed, 50 insertions(+), 46 deletions(-) create mode 100644 packages/mermaid/src/docs/.vitepress/theme/mermaid.ts diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index 993a7627b2..afa9030551 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:193](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L193) +[config.ts:194](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L194) --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:138](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L138) +[config.ts:139](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L139) --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:97](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L97) +[config.ts:98](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L98) --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:225](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L225) +[config.ts:226](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L226) --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L153) +[config.ts:154](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L154) --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:76](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L76) +[config.ts:77](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L77) --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:114](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L114) +[config.ts:115](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L115) --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L80) +[config.ts:81](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L81) diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index 62ce5125e5..5870d07433 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -267,16 +267,16 @@ A relationship is a general term covering the specific types of logical connecti There are eight different types of relations defined for classes under UML which are currently supported: -| Type | Description | -| ---- | ------------- | ----------- | -| < | -- | Inheritance | -| \*-- | Composition | -| o-- | Aggregation | -| --> | Association | -| -- | Link (Solid) | -| ..> | Dependency | -| .. | > | Realization | -| .. | Link (Dashed) | +| Type | Description | +| ------- | ------------- | +| `<\|--` | Inheritance | +| `\*--` | Composition | +| `o--` | Aggregation | +| `-->` | Association | +| `--` | Link (Solid) | +| `..>` | Dependency | +| `..\|>` | Realization | +| `..` | Link (Dashed) | ```mermaid-example classDiagram @@ -372,14 +372,14 @@ Here is the syntax: Where `Relation Type` can be one of: -| Type | Description | -| ---- | ----------- | ----------- | -| < | | Inheritance | -| \* | Composition | -| o | Aggregation | -| > | Association | -| < | Association | -| | > | Realization | +| Type | Description | +| ----- | ----------- | +| `<\|` | Inheritance | +| `\*` | Composition | +| `o` | Aggregation | +| `>` | Association | +| `<` | Association | +| `\|>` | Realization | And `Link` can be one of: diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index 5dff951e90..14340462c5 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -34,7 +34,7 @@ const MermaidExample = async (md: MarkdownRenderer) => {
      `; } else if (token.info.trim() === 'mermaid') { const key = index; - return ` ${key} + return ` diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts new file mode 100644 index 0000000000..a1a69e9cd9 --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts @@ -0,0 +1,16 @@ +import mermaid, { type MermaidConfig } from 'mermaid'; +import mindmap from '@mermaid-js/mermaid-mindmap'; + +try { + await mermaid.registerExternalDiagrams([mindmap]); +} catch (e) { + console.error(e); +} + +export const render = async (id: string, code: string, config: MermaidConfig): Promise => { + mermaid.initialize(config); + // console.log('rendering', id, code); + const svg = await mermaid.renderAsync(id, code); + // console.log('rendered', id, code); + return svg; +}; From bfbb7996e9a77ea18162858feef72c546f2f1a21 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 28 Nov 2022 16:21:05 +0530 Subject: [PATCH 0752/1038] fix lines --- docs/config/setup/modules/config.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/config/setup/modules/config.md b/docs/config/setup/modules/config.md index afa9030551..993a7627b2 100644 --- a/docs/config/setup/modules/config.md +++ b/docs/config/setup/modules/config.md @@ -36,7 +36,7 @@ Pushes in a directive to the configuration #### Defined in -[config.ts:194](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L194) +[config.ts:193](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L193) --- @@ -60,7 +60,7 @@ The currentConfig #### Defined in -[config.ts:139](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L139) +[config.ts:138](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L138) --- @@ -84,7 +84,7 @@ The siteConfig #### Defined in -[config.ts:98](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L98) +[config.ts:97](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L97) --- @@ -118,7 +118,7 @@ The siteConfig #### Defined in -[config.ts:226](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L226) +[config.ts:225](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L225) --- @@ -147,7 +147,7 @@ options in-place #### Defined in -[config.ts:154](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L154) +[config.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L153) --- @@ -167,7 +167,7 @@ options in-place #### Defined in -[config.ts:77](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L77) +[config.ts:76](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L76) --- @@ -199,7 +199,7 @@ The currentConfig merged with the sanitized conf #### Defined in -[config.ts:115](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L115) +[config.ts:114](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L114) --- @@ -273,4 +273,4 @@ The new siteConfig #### Defined in -[config.ts:81](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L81) +[config.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L80) From 3a6dd61f6595c4a751780f75dddebd15a50974ce Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 28 Nov 2022 16:26:10 +0530 Subject: [PATCH 0753/1038] cleanup --- packages/mermaid/src/docs/.vitepress/theme/mermaid.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts index a1a69e9cd9..b287346f94 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts @@ -9,8 +9,6 @@ try { export const render = async (id: string, code: string, config: MermaidConfig): Promise => { mermaid.initialize(config); - // console.log('rendering', id, code); const svg = await mermaid.renderAsync(id, code); - // console.log('rendered', id, code); return svg; }; From e8703a59ec719e44aa26067420c8412b9c409f5a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 29 Nov 2022 00:34:29 +0530 Subject: [PATCH 0754/1038] feat: Add @include support to docs --- docs/index.html.todo | 179 ---------------------- packages/mermaid/src/docs.mts | 26 +++- packages/mermaid/src/docs/index.html.todo | 179 ---------------------- 3 files changed, 23 insertions(+), 361 deletions(-) delete mode 100644 docs/index.html.todo delete mode 100644 packages/mermaid/src/docs/index.html.todo diff --git a/docs/index.html.todo b/docs/index.html.todo deleted file mode 100644 index 8728338f90..0000000000 --- a/docs/index.html.todo +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, - gantt charts and git graphs. - - - - - - - - - - - - - - - - - - - -
      - - - - - - - - - diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index aa57a3c012..364ba09fcb 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -35,7 +35,7 @@ import { exec } from 'child_process'; import { globby } from 'globby'; import { JSDOM } from 'jsdom'; import type { Code, Root } from 'mdast'; -import { posix, dirname, relative } from 'path'; +import { posix, dirname, relative, join } from 'path'; import prettier from 'prettier'; import { remark } from 'remark'; import chokidar from 'chokidar'; @@ -66,6 +66,9 @@ const LOGMSG_COPIED = `, and copied to ${FINAL_DOCS_DIR}`; const WARN_DOCSDIR_DOESNT_MATCH = `Changed files were transformed in ${SOURCE_DOCS_DIR} but do not match the files in ${FINAL_DOCS_DIR}. Please run 'pnpm --filter mermaid run docs:build' after making changes to ${SOURCE_DOCS_DIR} to update the ${FINAL_DOCS_DIR} directory with the transformed files.`; const prettierConfig = prettier.resolveConfig.sync('.') ?? {}; +// From https://github.com/vuejs/vitepress/blob/428eec3750d6b5648a77ac52d88128df0554d4d1/src/node/markdownToVue.ts#L20-L21 +const includesRE = //g; +const includedFiles: Set = new Set(); let filesWereTransformed = false; @@ -151,6 +154,19 @@ const transformToBlockQuote = (content: string, type: string) => { const injectPlaceholders = (text: string): string => text.replace(//g, MERMAID_MAJOR_VERSION).replace(//g, CDN_URL); +const transformIncludeStatements = (file: string, text: string): string => { + // resolve includes - src https://github.com/vuejs/vitepress/blob/428eec3750d6b5648a77ac52d88128df0554d4d1/src/node/markdownToVue.ts#L65-L76 + return text.replace(includesRE, (m, m1) => { + try { + const includePath = join(dirname(file), m1); + const content = readSyncedUTF8file(includePath); + includedFiles.add(changeToFinalDocDir(includePath)); + return content; + } catch (error) { + throw new Error(`Failed to resolve include "${m1}" in "${file}": ${error}`); + } + }); +}; /** * Transform a markdown file and write the transformed file to the directory for published * documentation @@ -164,8 +180,7 @@ const injectPlaceholders = (text: string): string => * @param file {string} name of the file that will be verified */ const transformMarkdown = (file: string) => { - const doc = injectPlaceholders(readSyncedUTF8file(file)); - + const doc = injectPlaceholders(transformIncludeStatements(file, readSyncedUTF8file(file))); const ast: Root = remark.parse(doc); const out = flatmap(ast, (c: Code) => { if (c.type !== 'code' || !c.lang) { @@ -270,6 +285,11 @@ const getFilesFromGlobs = async (globs: string[]): Promise => { console.log(`${action} ${mdFiles.length} markdown files...`); mdFiles.forEach(transformMarkdown); + for (const includedFile of includedFiles) { + rmSync(includedFile); + console.log(`Removed ${includedFile} as it was used inside an @include block.`); + } + const htmlFileGlobs = getGlobs([posix.join(sourceDirGlob, '*.html')]); const htmlFiles = await getFilesFromGlobs(htmlFileGlobs); console.log(`${action} ${htmlFiles.length} html files...`); diff --git a/packages/mermaid/src/docs/index.html.todo b/packages/mermaid/src/docs/index.html.todo deleted file mode 100644 index 8728338f90..0000000000 --- a/packages/mermaid/src/docs/index.html.todo +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, - gantt charts and git graphs. - - - - - - - - - - - - - - - - - - - -
      - - - - - - - - - From 2a5c2b58deae60dd9c4a5fb1c1228bf86e4f1894 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 29 Nov 2022 00:34:57 +0530 Subject: [PATCH 0755/1038] feat: Add @include example to docs --- packages/mermaid/src/docs/intro/examples.md | 100 +++++++++++++++++++ packages/mermaid/src/docs/intro/index.md | 101 +------------------- 2 files changed, 101 insertions(+), 100 deletions(-) create mode 100644 packages/mermaid/src/docs/intro/examples.md diff --git a/packages/mermaid/src/docs/intro/examples.md b/packages/mermaid/src/docs/intro/examples.md new file mode 100644 index 0000000000..f4cb3b9294 --- /dev/null +++ b/packages/mermaid/src/docs/intro/examples.md @@ -0,0 +1,100 @@ +## Diagram Types + +### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) + +```mermaid-example +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +### [Sequence diagram](../syntax/sequenceDiagram.md) + +```mermaid-example +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
      prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +### [Gantt diagram](../syntax/gantt.md) + +```mermaid-example +gantt +dateFormat YYYY-MM-DD +title Adding GANTT diagram to mermaid +excludes weekdays 2014-01-10 + +section A section +Completed task :done, des1, 2014-01-06,2014-01-08 +Active task :active, des2, 2014-01-09, 3d +Future task : des3, after des2, 5d +Future task2 : des4, after des3, 5d +``` + +### [Class diagram](../syntax/classDiagram.md) + +```mermaid-example +classDiagram +Class01 <|-- AveryLongClass : Cool +Class03 *-- Class04 +Class05 o-- Class06 +Class07 .. Class08 +Class09 --> C2 : Where am i? +Class09 --* C3 +Class09 --|> Class07 +Class07 : equals() +Class07 : Object[] elementData +Class01 : size() +Class01 : int chimp +Class01 : int gorilla +Class08 <--> C2: Cool label +``` + +### [Git graph](../syntax/gitgraph.md) + +```mermaid-example + gitGraph + commit + commit + branch develop + commit + commit + commit + checkout main + commit + commit +``` + +### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) + +```mermaid-example +erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +### [User Journey Diagram](../syntax/userJourney.md) + +```mermaid-example +journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` diff --git a/packages/mermaid/src/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md index b58321e750..df1aa3b621 100644 --- a/packages/mermaid/src/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -44,106 +44,7 @@ In our release process we rely heavily on visual regression tests using [applito -## Diagram Types - -### [Flowchart](../syntax/flowchart.md?id=flowcharts-basic-syntax) - -```mermaid-example -graph TD; - A-->B; - A-->C; - B-->D; - C-->D; -``` - -### [Sequence diagram](../syntax/sequenceDiagram.md) - -```mermaid-example -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
      prevail! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - -### [Gantt diagram](../syntax/gantt.md) - -```mermaid-example -gantt -dateFormat YYYY-MM-DD -title Adding GANTT diagram to mermaid -excludes weekdays 2014-01-10 - -section A section -Completed task :done, des1, 2014-01-06,2014-01-08 -Active task :active, des2, 2014-01-09, 3d -Future task : des3, after des2, 5d -Future task2 : des4, after des3, 5d -``` - -### [Class diagram](../syntax/classDiagram.md) - -```mermaid-example -classDiagram -Class01 <|-- AveryLongClass : Cool -Class03 *-- Class04 -Class05 o-- Class06 -Class07 .. Class08 -Class09 --> C2 : Where am i? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -Class08 <--> C2: Cool label -``` - -### [Git graph](../syntax/gitgraph.md) - -```mermaid-example - gitGraph - commit - commit - branch develop - commit - commit - commit - checkout main - commit - commit -``` - -### [Entity Relationship Diagram - :exclamation: experimental](../syntax/entityRelationshipDiagram.md) - -```mermaid-example -erDiagram - CUSTOMER ||--o{ ORDER : places - ORDER ||--|{ LINE-ITEM : contains - CUSTOMER }|..|{ DELIVERY-ADDRESS : uses - -``` - -### [User Journey Diagram](../syntax/userJourney.md) - -```mermaid-example -journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 5: Me -``` + ## Installation From 316f612bde157be60c5b75701c8827379c0770fa Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 29 Nov 2022 00:54:01 +0530 Subject: [PATCH 0756/1038] feat: Add @include support to docs --- packages/mermaid/src/docs.mts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 364ba09fcb..846e92212d 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -70,7 +70,7 @@ const prettierConfig = prettier.resolveConfig.sync('.') ?? {}; const includesRE = //g; const includedFiles: Set = new Set(); -let filesWereTransformed = false; +const filesTransformed: Set = new Set(); const generateHeader = (file: string): string => { // path from file in docs/* to repo root, e.g ../ or ../../ */ @@ -120,10 +120,10 @@ const logWasOrShouldBeTransformed = (filename: string, wasCopied: boolean) => { * transformed contents to the final documentation directory if the doCopy flag is true. Log * messages to the console. * - * @param {string} filename Name of the file that will be verified - * @param {boolean} [doCopy=false] Whether we should copy that transformedContents to the final + * @param filename Name of the file that will be verified + * @param doCopy?=false Whether we should copy that transformedContents to the final * documentation directory. Default is `false` - * @param {string} [transformedContent] New contents for the file + * @param transformedContent? New contents for the file */ const copyTransformedContents = (filename: string, doCopy = false, transformedContent?: string) => { const fileInFinalDocDir = changeToFinalDocDir(filename); @@ -135,7 +135,7 @@ const copyTransformedContents = (filename: string, doCopy = false, transformedCo return; // Files are same, skip. } - filesWereTransformed = true; + filesTransformed.add(fileInFinalDocDir); if (doCopy) { writeFileSync(fileInFinalDocDir, newBuffer); } @@ -286,7 +286,8 @@ const getFilesFromGlobs = async (globs: string[]): Promise => { mdFiles.forEach(transformMarkdown); for (const includedFile of includedFiles) { - rmSync(includedFile); + rmSync(includedFile, { force: true }); + filesTransformed.delete(includedFile); console.log(`Removed ${includedFile} as it was used inside an @include block.`); } @@ -302,7 +303,7 @@ const getFilesFromGlobs = async (globs: string[]): Promise => { copyTransformedContents(file, !verifyOnly); // no transformation }); - if (filesWereTransformed) { + if (filesTransformed.size > 0) { if (verifyOnly) { console.log(WARN_DOCSDIR_DOESNT_MATCH); process.exit(1); From 931d56947a39ea80e48650f98a9afa0e7605fb1c Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 30 Nov 2022 11:27:13 +0100 Subject: [PATCH 0757/1038] Minor change --- cypress/platform/knsv2.html | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 084b8151e3..ba7f416011 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -56,10 +56,11 @@
      Security check
      -flowchart TD
      -    A --> B
      -    B --> C
      -    A --> C
      +graph LR
      +    subgraph external
      +        inside
      +    end
      +    outside --> external
           
       mindmap
      @@ -91,9 +92,13 @@
           
           
           
      -    
      +    
       
      -    
       ```
      @@ -85,7 +85,7 @@ Example:
             B-->D(fa:fa-spinner);
           
      diff --git a/docs/intro/index.md b/docs/intro/index.md index b8a27acff2..5aa068e27c 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -267,7 +267,7 @@ To Deploy Mermaid: ```html ``` diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 2f422758e5..7354f0181f 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -128,7 +128,7 @@ b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm ```html @@ -172,7 +172,7 @@ Please refer to the [Mindmap](./mindmap.md?id=integrating-with-your-librarywebsi
      diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index e789646bc2..0214a55126 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -260,8 +260,8 @@ Mindmap uses the experimental lazy loading & async rendering features which coul ```html ``` diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 846e92212d..313d1f2dec 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -46,7 +46,7 @@ import flatmap from 'unist-util-flatmap'; const MERMAID_MAJOR_VERSION = ( JSON.parse(readFileSync('../mermaid/package.json', 'utf8')).version as string ).split('.')[0]; -const CDN_URL = 'https://unpkg.com'; // https://cdn.jsdelivr.net/npm +const CDN_URL = 'https://cdn.jsdelivr.net/npm'; // 'https://unpkg.com'; const verifyOnly: boolean = process.argv.includes('--verify'); const git: boolean = process.argv.includes('--git'); From 1e30e33ad321826f55f2ebdf19db52b7f747cf19 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 1 Dec 2022 13:51:50 +0530 Subject: [PATCH 0760/1038] chore: Fix mindmap link --- docs/intro/n00b-gettingStarted.md | 2 +- packages/mermaid/src/docs/intro/n00b-gettingStarted.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 7354f0181f..2a05a1fdd0 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -145,7 +145,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac ### Adding external diagrams to mermaid -Please refer to the [Mindmap](./mindmap.md?id=integrating-with-your-librarywebsite) section for more information. +Please refer to the [Mindmap](../syntax/mindmap.md?id=integrating-with-your-librarywebsite) section for more information. ### Working Examples diff --git a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md index e17bbffb94..a4dd7662f2 100644 --- a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md +++ b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md @@ -128,7 +128,7 @@ Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can plac ### Adding external diagrams to mermaid -Please refer to the [Mindmap](./mindmap.md?id=integrating-with-your-librarywebsite) section for more information. +Please refer to the [Mindmap](../syntax/mindmap.md?id=integrating-with-your-librarywebsite) section for more information. ### Working Examples From bfe3f309d26f632eee2ed7f2a7543f7258c832d3 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Thu, 1 Dec 2022 10:09:43 -0800 Subject: [PATCH 0761/1038] remove typeof --- packages/mermaid/src/accessibility.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/accessibility.ts b/packages/mermaid/src/accessibility.ts index d70ad00d31..b9e088e0be 100644 --- a/packages/mermaid/src/accessibility.ts +++ b/packages/mermaid/src/accessibility.ts @@ -34,7 +34,7 @@ export function addSVGa11yTitleDescription( a11yDesc: string | null | undefined, baseId: string ) { - if (typeof svg.insert === 'undefined') { + if (svg.insert === undefined) { return; } From accba3f408d1f1a9a68a05fff9899e2d51627fe7 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 1 Dec 2022 22:43:03 +0000 Subject: [PATCH 0762/1038] chore: improve errors for bad YAML frontmatter Adds a custom error message for any mermaid diagram that starts with a `---`. Normally, these are expected to be part of a YAML front-matter block, but indentation issues or a missing closing `---` may cause these to be not parsed correctly. --- .../src/diagram-api/diagram-orchestration.ts | 27 +++++++++++++++++++ packages/mermaid/src/mermaidAPI.spec.ts | 13 +++++++++ packages/mermaid/src/utils.spec.js | 4 +-- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagram-api/diagram-orchestration.ts b/packages/mermaid/src/diagram-api/diagram-orchestration.ts index a26edb3031..6c7ab69074 100644 --- a/packages/mermaid/src/diagram-api/diagram-orchestration.ts +++ b/packages/mermaid/src/diagram-api/diagram-orchestration.ts @@ -125,6 +125,33 @@ export const addDiagrams = () => { }, (text) => text.toLowerCase().trim() === 'error' ); + registerDiagram( + '---', + // --- diagram type may appear if YAML front-matter is not parsed correctly + { + db: { + clear: () => { + // Quite ok, clear needs to be there for --- to work as a regular diagram + }, + }, + styles: errorStyles, // should never be used + renderer: errorRenderer, // should never be used + parser: { + parser: { yy: {} }, + parse: () => { + throw new Error( + 'Diagrams beginning with --- are not valid. ' + + 'If you were trying to use a YAML front-matter, please ensure that ' + + "you've correctly opened and closed the YAML front-matter with unindented `---` blocks" + ); + }, + }, + init: () => null, // no op + }, + (text) => { + return text.toLowerCase().trimStart().startsWith('---'); + } + ); registerDiagram( 'c4', diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 55d46ae7c6..092661dc6c 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -629,6 +629,19 @@ describe('mermaidAPI', function () { expect(mermaid.parseError).toEqual(undefined); expect(() => mermaidAPI.parse('this is not a mermaid diagram definition')).toThrow(); }); + it('throws for a nicer error for a invalid definition starting with `---`', function () { + expect(mermaid.parseError).toEqual(undefined); + expect(() => + mermaidAPI.parse(` + --- + title: a malformed YAML front-matter + `) + ).toThrow( + 'Diagrams beginning with --- are not valid. ' + + 'If you were trying to use a YAML front-matter, please ensure that ' + + "you've correctly opened and closed the YAML front-matter with unindented `---` blocks" + ); + }); it('does not throw for a valid definition', function () { expect(() => mermaidAPI.parse('graph TD;A--x|text including URL space|B;')).not.toThrow(); }); diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js index 54262f10ee..bdf94d9926 100644 --- a/packages/mermaid/src/utils.spec.js +++ b/packages/mermaid/src/utils.spec.js @@ -238,9 +238,9 @@ Alice->Bob: hi`; const type = detectType(str); expect(type).toBe('gitGraph'); }); - it('should not allow frontmatter with leading spaces', function () { + it('should handle malformed frontmatter (with leading spaces) with `---` error graphtype', function () { const str = ' ---\ntitle: foo\n---\n gitGraph TB:\nbfs1:queue'; - expect(() => detectType(str)).toThrow('No diagram type detected for text'); + expect(detectType(str)).toBe('---'); }); }); describe('when finding substring in array ', function () { From 4f1b26fd765658b1cf01e0b1ab71597a5e44ec7b Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 2 Dec 2022 08:06:16 +0100 Subject: [PATCH 0763/1038] Adding new flowchart renderer using cytoscape --- .vite/build.ts | 7 + cypress/platform/knsv2.html | 27 +- packages/mermaid-flowchart-v3/package.json | 66 ++ packages/mermaid-flowchart-v3/src/detector.ts | 24 + .../src/diagram-definition.ts | 14 + .../src/flowRenderer-v3.js | 674 ++++++++++++++++++ .../mermaid-flowchart-v3/src/mermaidUtils.ts | 56 ++ packages/mermaid-flowchart-v3/src/styles.ts | 114 +++ packages/mermaid/src/dagre-wrapper/nodes.js | 1 + .../mermaid/src/diagrams/flowchart/flowDb.js | 9 +- .../src/diagrams/flowchart/parser/flow.jison | 1 + pnpm-lock.yaml | 60 +- 12 files changed, 1026 insertions(+), 27 deletions(-) create mode 100644 packages/mermaid-flowchart-v3/package.json create mode 100644 packages/mermaid-flowchart-v3/src/detector.ts create mode 100644 packages/mermaid-flowchart-v3/src/diagram-definition.ts create mode 100644 packages/mermaid-flowchart-v3/src/flowRenderer-v3.js create mode 100644 packages/mermaid-flowchart-v3/src/mermaidUtils.ts create mode 100644 packages/mermaid-flowchart-v3/src/styles.ts diff --git a/.vite/build.ts b/.vite/build.ts index 1be46ad5ad..77cace03ea 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -41,6 +41,11 @@ const packageOptions = { packageName: 'mermaid-mindmap', file: 'detector.ts', }, + 'mermaid-flowchart-v3': { + name: 'mermaid-flowchart-v3', + packageName: 'mermaid-flowchart-v3', + file: 'detector.ts', + }, // 'mermaid-example-diagram-detector': { // name: 'mermaid-example-diagram-detector', // packageName: 'mermaid-example-diagram', @@ -120,6 +125,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) if (watch && config.build) { config.build.watch = { include: [ + 'packages/mermaid-flowchart-v3/src/**', 'packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**', // 'packages/mermaid-example-diagram/src/**', @@ -148,6 +154,7 @@ const main = async () => { if (watch) { build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' })); if (!mermaidOnly) { + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-flowchart-v3' })); build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); // build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); } diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index ba7f416011..b5b8eea5e8 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -56,14 +56,20 @@
      Security check
      -graph LR
      -    subgraph external
      -        inside
      -    end
      -    outside --> external
      -    
      -
      -mindmap
      +cyto LR
      +      subgraph test
      +        inside1 --> inside2
      +      end
      +      subgraph test2
      +        inside3 --> inside4
      +      end
      +      out
      +
      + a(letter a
      a) ---> b(letter b)--> c(letter c) --> d -->e(letter e
      e) --> a b <--> + d(letter b
      d) +
      +      mindmap
         root
           child1((Circle))
               grandchild 1
      @@ -78,7 +84,7 @@
               ::icon(mdi mdi-fire)
                 gc7((grand
      grand
      child 8))
      -
      +    
             gantt
               title Style today marker (vertical line should be 5px wide and half-transparent blue)
               dateFormat YYYY-MM-DD
      @@ -96,9 +102,10 @@
       
           
      
      From 4863d0d29d782e3e6a37562eae0af523c6c15d4c Mon Sep 17 00:00:00 2001
      From: Knut Sveidqvist 
      Date: Sat, 3 Dec 2022 09:47:01 +0100
      Subject: [PATCH 0766/1038] Adding new flowchart renderer using elk
      
      ---
       cSpell.json                                   |   1 +
       cypress/platform/knsv2.html                   |  15 +-
       packages/mermaid-flowchart-v3/package.json    |   2 +
       .../src/flowRenderer-v3-cyto.js               | 756 ++++++++++++++++++
       .../src/flowRenderer-v3.js                    | 280 +++----
       packages/mermaid/src/dagre-wrapper/markers.js |   2 +-
       .../mermaid/src/diagrams/flowchart/flowDb.js  |   2 +-
       .../src/diagrams/flowchart/flowRenderer-v2.js |   2 +-
       pnpm-lock.yaml                                |  34 +-
       9 files changed, 924 insertions(+), 170 deletions(-)
       create mode 100644 packages/mermaid-flowchart-v3/src/flowRenderer-v3-cyto.js
      
      diff --git a/cSpell.json b/cSpell.json
      index 64187e1ca5..b692c1ebf6 100644
      --- a/cSpell.json
      +++ b/cSpell.json
      @@ -30,6 +30,7 @@
           "doku",
           "dompurify",
           "edgechromium",
      +    "elkjs",
           "faber",
           "flatmap",
           "ftplugin",
      diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
      index b5b8eea5e8..d55a23bc93 100644
      --- a/cypress/platform/knsv2.html
      +++ b/cypress/platform/knsv2.html
      @@ -57,17 +57,10 @@
           
      Security check
       cyto LR
      -      subgraph test
      -        inside1 --> inside2
      -      end
      -      subgraph test2
      -        inside3 --> inside4
      -      end
      -      out
      -
      - a(letter a
      a) ---> b(letter b)--> c(letter c) --> d -->e(letter e
      e) --> a b <--> - d(letter b
      d) + inside1 --> inside2 & inside3 & inside4 & inside5 & inside6 + a(letter a
      a) ---> b(letter b)--> c(letter c) --> d -->e(letter e
      e) --> a + b <--> d(letter b
      d) +
             mindmap
         root
      diff --git a/packages/mermaid-flowchart-v3/package.json b/packages/mermaid-flowchart-v3/package.json
      index 7aefb890e3..dee91094ee 100644
      --- a/packages/mermaid-flowchart-v3/package.json
      +++ b/packages/mermaid-flowchart-v3/package.json
      @@ -44,6 +44,8 @@
           "cytoscape-fcose": "^2.1.0",
           "graphlib": "^2.1.0",
           "dagre-d3-es": "7.0.4",
      +    "cytoscape-dagre": "^2.1.0",
      +    "elkjs": "^0.8.2",
           "d3": "^7.0.0",
           "khroma": "^2.0.0",
           "non-layered-tidy-tree-layout": "^2.0.2"
      diff --git a/packages/mermaid-flowchart-v3/src/flowRenderer-v3-cyto.js b/packages/mermaid-flowchart-v3/src/flowRenderer-v3-cyto.js
      new file mode 100644
      index 0000000000..2a0d0fc231
      --- /dev/null
      +++ b/packages/mermaid-flowchart-v3/src/flowRenderer-v3-cyto.js
      @@ -0,0 +1,756 @@
      +import graphlib from 'graphlib';
      +import { select, line, curveLinear, curveCardinal, curveBasis, selectAll } from 'd3';
      +import { log, getConfig, setupGraphViewbox } from './mermaidUtils';
      +import { insertNode } from '../../mermaid/src/dagre-wrapper/nodes.js';
      +import insertMarkers from '../../mermaid/src/dagre-wrapper/markers.js';
      +import dagre from 'cytoscape-dagre';
      +
      +// Replace with other function to avoid dependency to dagre-d3
      +import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js';
      +
      +import common, { evaluate } from '../../mermaid/src/diagrams/common/common';
      +import { interpolateToCurve, getStylesFromArray } from '../../mermaid/src/utils';
      +
      +import cytoscape from 'cytoscape';
      +cytoscape.use(dagre);
      +
      +const conf = {};
      +export const setConf = function (cnf) {
      +  const keys = Object.keys(cnf);
      +  for (const key of keys) {
      +    conf[key] = cnf[key];
      +  }
      +};
      +
      +// /**
      +//  * Function that adds the vertices found during parsing to the graph to be rendered.
      +//  *
      +//  * @param vert Object containing the vertices.
      +//  * @param g The graph that is to be drawn.
      +//  * @param svgId
      +//  * @param root
      +//  * @param doc
      +//  * @param diagObj
      +//  */
      +export const addVertices = function (vert, svgId, root, doc, diagObj, parentLookUpDb, graph) {
      +  const svg = root.select(`[id="${svgId}"]`);
      +  const nodes = svg.insert('g').attr('class', 'nodes');
      +  const keys = Object.keys(vert);
      +
      +  // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
      +  keys.forEach(function (id) {
      +    const vertex = vert[id];
      +
      +    /**
      +     * Variable for storing the classes for the vertex
      +     *
      +     * @type {string}
      +     */
      +    let classStr = 'default';
      +    if (vertex.classes.length > 0) {
      +      classStr = vertex.classes.join(' ');
      +    }
      +
      +    const styles = getStylesFromArray(vertex.styles);
      +
      +    // Use vertex id as text in the box if no text is provided by the graph definition
      +    let vertexText = vertex.text !== undefined ? vertex.text : vertex.id;
      +
      +    // We create a SVG label, either by delegating to addHtmlLabel or manually
      +    let vertexNode;
      +    if (evaluate(getConfig().flowchart.htmlLabels)) {
      +      // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
      +      const node = {
      +        label: vertexText.replace(
      +          /fa[blrs]?:fa-[\w-]+/g,
      +          (s) => ``
      +        ),
      +      };
      +      vertexNode = addHtmlLabel(svg, node).node();
      +      vertexNode.parentNode.removeChild(vertexNode);
      +    } else {
      +      const svgLabel = doc.createElementNS('http://www.w3.org/2000/svg', 'text');
      +      svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
      +
      +      const rows = vertexText.split(common.lineBreakRegex);
      +
      +      for (const row of rows) {
      +        const tspan = doc.createElementNS('http://www.w3.org/2000/svg', 'tspan');
      +        tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
      +        tspan.setAttribute('dy', '1em');
      +        tspan.setAttribute('x', '1');
      +        tspan.textContent = row;
      +        svgLabel.appendChild(tspan);
      +      }
      +      vertexNode = svgLabel;
      +    }
      +
      +    let radious = 0;
      +    let _shape = '';
      +    // Set the shape based parameters
      +    switch (vertex.type) {
      +      case 'round':
      +        radious = 5;
      +        _shape = 'rect';
      +        break;
      +      case 'square':
      +        _shape = 'rect';
      +        break;
      +      case 'diamond':
      +        _shape = 'question';
      +        break;
      +      case 'hexagon':
      +        _shape = 'hexagon';
      +        break;
      +      case 'odd':
      +        _shape = 'rect_left_inv_arrow';
      +        break;
      +      case 'lean_right':
      +        _shape = 'lean_right';
      +        break;
      +      case 'lean_left':
      +        _shape = 'lean_left';
      +        break;
      +      case 'trapezoid':
      +        _shape = 'trapezoid';
      +        break;
      +      case 'inv_trapezoid':
      +        _shape = 'inv_trapezoid';
      +        break;
      +      case 'odd_right':
      +        _shape = 'rect_left_inv_arrow';
      +        break;
      +      case 'circle':
      +        _shape = 'circle';
      +        break;
      +      case 'ellipse':
      +        _shape = 'ellipse';
      +        break;
      +      case 'stadium':
      +        _shape = 'stadium';
      +        break;
      +      case 'subroutine':
      +        _shape = 'subroutine';
      +        break;
      +      case 'cylinder':
      +        _shape = 'cylinder';
      +        break;
      +      case 'group':
      +        _shape = 'rect';
      +        break;
      +      case 'doublecircle':
      +        _shape = 'doublecircle';
      +        break;
      +      default:
      +        _shape = 'rect';
      +    }
      +    // // Add the node
      +    const node = {
      +      labelStyle: styles.labelStyle,
      +      shape: _shape,
      +      labelText: vertexText,
      +      rx: radious,
      +      ry: radious,
      +      class: classStr,
      +      style: styles.style,
      +      id: vertex.id,
      +      link: vertex.link,
      +      linkTarget: vertex.linkTarget,
      +      tooltip: diagObj.db.getTooltip(vertex.id) || '',
      +      domId: diagObj.db.lookUpDomId(vertex.id),
      +      haveCallback: vertex.haveCallback,
      +      width: vertex.type === 'group' ? 500 : undefined,
      +      dir: vertex.dir,
      +      type: vertex.type,
      +      props: vertex.props,
      +      padding: getConfig().flowchart.padding,
      +    };
      +    const nodeEl = insertNode(nodes, node, vertex.dir);
      +    const boundingBox = nodeEl.node().getBBox();
      +    const data = {
      +      id: vertex.id,
      +      labelStyle: styles.labelStyle,
      +      shape: _shape,
      +      labelText: vertexText,
      +      rx: radious,
      +      ry: radious,
      +      class: classStr,
      +      style: styles.style,
      +      link: vertex.link,
      +      linkTarget: vertex.linkTarget,
      +      tooltip: diagObj.db.getTooltip(vertex.id) || '',
      +      domId: diagObj.db.lookUpDomId(vertex.id),
      +      haveCallback: vertex.haveCallback,
      +      width: vertex.type === 'group' ? 500 : undefined,
      +      dir: vertex.dir,
      +      type: vertex.type,
      +      props: vertex.props,
      +      padding: getConfig().flowchart.padding,
      +      boundingBox,
      +      el: nodeEl,
      +      parent: parentLookUpDb.parentById[vertex.id],
      +    };
      +    // if (!Object.keys(parentLookUpDb.childrenById).includes(vertex.id)) {
      +    graph.elements.nodes.push({
      +      group: 'nodes',
      +      // data,
      +      data,
      +    });
      +    // }
      +    log.trace('setNode', {
      +      labelStyle: styles.labelStyle,
      +      shape: _shape,
      +      labelText: vertexText,
      +      rx: radious,
      +      ry: radious,
      +      class: classStr,
      +      style: styles.style,
      +      id: vertex.id,
      +      domId: diagObj.db.lookUpDomId(vertex.id),
      +      width: vertex.type === 'group' ? 500 : undefined,
      +      type: vertex.type,
      +      dir: vertex.dir,
      +      props: vertex.props,
      +      padding: getConfig().flowchart.padding,
      +      parent: parentLookUpDb.parentById[vertex.id],
      +    });
      +  });
      +  return graph;
      +};
      +
      +/**
      + * Add edges to graph based on parsed graph definition
      + *
      + * @param {object} edges The edges to add to the graph
      + * @param {object} g The graph object
      + * @param cy
      + * @param diagObj
      + * @param graph
      + */
      +export const addEdges = function (edges, diagObj, graph) {
      +  // log.info('abc78 edges = ', edges);
      +  let cnt = 0;
      +  let linkIdCnt = {};
      +
      +  let defaultStyle;
      +  let defaultLabelStyle;
      +
      +  if (edges.defaultStyle !== undefined) {
      +    const defaultStyles = getStylesFromArray(edges.defaultStyle);
      +    defaultStyle = defaultStyles.style;
      +    defaultLabelStyle = defaultStyles.labelStyle;
      +  }
      +
      +  edges.forEach(function (edge) {
      +    cnt++;
      +
      +    // Identify Link
      +    var linkIdBase = 'L-' + edge.start + '-' + edge.end;
      +    // count the links from+to the same node to give unique id
      +    if (linkIdCnt[linkIdBase] === undefined) {
      +      linkIdCnt[linkIdBase] = 0;
      +      log.info('abc78 new entry', linkIdBase, linkIdCnt[linkIdBase]);
      +    } else {
      +      linkIdCnt[linkIdBase]++;
      +      log.info('abc78 new entry', linkIdBase, linkIdCnt[linkIdBase]);
      +    }
      +    let linkId = linkIdBase + '-' + linkIdCnt[linkIdBase];
      +    log.info('abc78 new link id to be used is', linkIdBase, linkId, linkIdCnt[linkIdBase]);
      +    var linkNameStart = 'LS-' + edge.start;
      +    var linkNameEnd = 'LE-' + edge.end;
      +
      +    const edgeData = { style: '', labelStyle: '' };
      +    edgeData.minlen = edge.length || 1;
      +    //edgeData.id = 'id' + cnt;
      +
      +    // Set link type for rendering
      +    if (edge.type === 'arrow_open') {
      +      edgeData.arrowhead = 'none';
      +    } else {
      +      edgeData.arrowhead = 'normal';
      +    }
      +
      +    // Check of arrow types, placed here in order not to break old rendering
      +    edgeData.arrowTypeStart = 'arrow_open';
      +    edgeData.arrowTypeEnd = 'arrow_open';
      +
      +    /* eslint-disable no-fallthrough */
      +    switch (edge.type) {
      +      case 'double_arrow_cross':
      +        edgeData.arrowTypeStart = 'arrow_cross';
      +      case 'arrow_cross':
      +        edgeData.arrowTypeEnd = 'arrow_cross';
      +        break;
      +      case 'double_arrow_point':
      +        edgeData.arrowTypeStart = 'arrow_point';
      +      case 'arrow_point':
      +        edgeData.arrowTypeEnd = 'arrow_point';
      +        break;
      +      case 'double_arrow_circle':
      +        edgeData.arrowTypeStart = 'arrow_circle';
      +      case 'arrow_circle':
      +        edgeData.arrowTypeEnd = 'arrow_circle';
      +        break;
      +    }
      +
      +    let style = '';
      +    let labelStyle = '';
      +
      +    switch (edge.stroke) {
      +      case 'normal':
      +        style = 'fill:none;';
      +        if (defaultStyle !== undefined) {
      +          style = defaultStyle;
      +        }
      +        if (defaultLabelStyle !== undefined) {
      +          labelStyle = defaultLabelStyle;
      +        }
      +        edgeData.thickness = 'normal';
      +        edgeData.pattern = 'solid';
      +        break;
      +      case 'dotted':
      +        edgeData.thickness = 'normal';
      +        edgeData.pattern = 'dotted';
      +        edgeData.style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
      +        break;
      +      case 'thick':
      +        edgeData.thickness = 'thick';
      +        edgeData.pattern = 'solid';
      +        edgeData.style = 'stroke-width: 3.5px;fill:none;';
      +        break;
      +    }
      +    if (edge.style !== undefined) {
      +      const styles = getStylesFromArray(edge.style);
      +      style = styles.style;
      +      labelStyle = styles.labelStyle;
      +    }
      +
      +    edgeData.style = edgeData.style += style;
      +    edgeData.labelStyle = edgeData.labelStyle += labelStyle;
      +
      +    if (edge.interpolate !== undefined) {
      +      edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
      +    } else if (edges.defaultInterpolate !== undefined) {
      +      edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);
      +    } else {
      +      edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
      +    }
      +
      +    if (edge.text === undefined) {
      +      if (edge.style !== undefined) {
      +        edgeData.arrowheadStyle = 'fill: #333';
      +      }
      +    } else {
      +      edgeData.arrowheadStyle = 'fill: #333';
      +      edgeData.labelpos = 'c';
      +    }
      +
      +    edgeData.labelType = 'text';
      +    edgeData.label = edge.text.replace(common.lineBreakRegex, '\n');
      +
      +    if (edge.style === undefined) {
      +      edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none;';
      +    }
      +
      +    edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
      +
      +    edgeData.id = linkId;
      +    edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd;
      +
      +    // Add the edge to the graph
      +    graph.elements.edges.push({
      +      group: 'edges',
      +      data: { source: edge.start, target: edge.end, edgeData, id: cnt },
      +    });
      +  });
      +  return graph;
      +};
      +
      +const addmarkers = function (svgPath, edgeData, diagramType, arrowMarkerAbsolute) {
      +  // // TODO: Can we load this config only from the rendered graph type?
      +  let url;
      +  if (arrowMarkerAbsolute) {
      +    url =
      +      window.location.protocol +
      +      '//' +
      +      window.location.host +
      +      window.location.pathname +
      +      window.location.search;
      +    url = url.replace(/\(/g, '\\(');
      +    url = url.replace(/\)/g, '\\)');
      +  }
      +  switch (edgeData.arrowTypeStart) {
      +    case 'arrow_cross':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');
      +      break;
      +    case 'arrow_point':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');
      +      break;
      +    case 'arrow_barb':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');
      +      break;
      +    case 'arrow_circle':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');
      +      break;
      +    case 'aggregation':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');
      +      break;
      +    case 'extension':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');
      +      break;
      +    case 'composition':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');
      +      break;
      +    case 'dependency':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');
      +      break;
      +    case 'lollipop':
      +      svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-lollipopStart' + ')');
      +      break;
      +    default:
      +  }
      +  switch (edgeData.arrowTypeEnd) {
      +    case 'arrow_cross':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');
      +      break;
      +    case 'arrow_point':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');
      +      break;
      +    case 'arrow_barb':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');
      +      break;
      +    case 'arrow_circle':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');
      +      break;
      +    case 'aggregation':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');
      +      break;
      +    case 'extension':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');
      +      break;
      +    case 'composition':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');
      +      break;
      +    case 'dependency':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');
      +      break;
      +    case 'lollipop':
      +      svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-lollipopEnd' + ')');
      +      break;
      +    default:
      +  }
      +};
      +
      +/**
      + * Returns the all the styles from classDef statements in the graph definition.
      + *
      + * @param text
      + * @param diagObj
      + * @returns {object} ClassDef styles
      + */
      +export const getClasses = function (text, diagObj) {
      +  log.info('Extracting classes');
      +  diagObj.db.clear('ver-2');
      +  try {
      +    // Parse the graph definition
      +    diagObj.parse(text);
      +    return diagObj.db.getClasses();
      +  } catch (e) {
      +    return;
      +  }
      +};
      +
      +const addSubGraphs = function (db) {
      +  const parentLookUpDb = { parentById: {}, childrenById: {} };
      +  const subgraphs = db.getSubGraphs();
      +  log.info('Subgraphs - ', subgraphs);
      +  subgraphs.forEach(function (subgraph) {
      +    subgraph.nodes.forEach(function (node) {
      +      parentLookUpDb.parentById[node] = subgraph.id;
      +      if (parentLookUpDb.childrenById[subgraph.id] === undefined) {
      +        parentLookUpDb.childrenById[subgraph.id] = [];
      +      }
      +      parentLookUpDb.childrenById[subgraph.id].push(node);
      +    });
      +  });
      +
      +  subgraphs.forEach(function (subgraph) {
      +    const data = { id: subgraph.id };
      +    if (parentLookUpDb.parentById[subgraph.id] !== undefined) {
      +      data.parent = parentLookUpDb.parentById[subgraph.id];
      +    }
      +    // cy.add({
      +    //   group: 'nodes',
      +    //   data,
      +    // });
      +  });
      +  return parentLookUpDb;
      +};
      +
      +const insertEdge = function (edgesEl, edge, edgeData, bounds, diagObj) {
      +  const src = edge.sourceEndpoint();
      +  const segments = edge.segmentPoints();
      +  // const dest = edge.target().position();
      +  const dest = edge.targetEndpoint();
      +  const segPoints = segments.map((segment) => [segment.x, segment.y]);
      +  const points = [
      +    [src.x, src.y],
      +    [segments[0].x, segments[0].y],
      +    [dest.x, dest.y],
      +  ];
      +  // console.log('Edge ctrl points:', edge.segmentPoints(), 'Bounds:', bounds, edge.source(), points);
      +  // console.log('Edge ctrl points:', points);
      +  const curve = line().curve(curveCardinal);
      +  const edge2 = edgesEl
      +    .insert('path')
      +    .attr('d', curve(points))
      +    .attr('class', 'path')
      +    .attr('fill', 'none');
      +  addmarkers(edge2, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);
      +  // edgesEl
      +  //   .append('circle')
      +  //   .style('stroke', 'red')
      +  //   .style('fill', 'red')
      +  //   .attr('r', 1)
      +  //   .attr('cx', src.x)
      +  //   .attr('cy', src.y);
      +  // edgesEl
      +  //   .append('circle')
      +  //   .style('stroke', 'white')
      +  //   .style('fill', 'white')
      +  //   .attr('r', 1)
      +  //   .attr('cx', segments[0].x)
      +  //   .attr('cy', segments[0].y);
      +  // edgesEl
      +  //   .append('circle')
      +  //   .style('stroke', 'pink')
      +  //   .style('fill', 'pink')
      +  //   .attr('r', 1)
      +  //   .attr('cx', dest.x)
      +  //   .attr('cy', dest.y);
      +};
      +
      +/**
      + * Draws a flowchart in the tag with id: id based on the graph definition in text.
      + *
      + * @param text
      + * @param id
      + */
      +
      +export const draw = function (text, id, _version, diagObj) {
      +  // Add temporary render element
      +  diagObj.db.clear();
      +  diagObj.db.setGen('gen-2');
      +  // Parse the graph definition
      +  diagObj.parser.parse(text);
      +
      +  return new Promise(function (resolve, reject) {
      +    const renderEl = select('body').append('div').attr('style', 'height:400px').attr('id', 'cy');
      +    // .attr('style', 'display:none')
      +    let graph = {
      +      styleEnabled: true,
      +      // animate: false,
      +      // ready: function () {
      +      //   log.info('Ready', this);
      +      // },
      +      container: document.getElementById('cy'), // container to render in
      +
      +      boxSelectionEnabled: false,
      +
      +      style: [
      +        {
      +          selector: 'node',
      +          css: {
      +            content: 'data(id)',
      +            'text-valign': 'center',
      +            'text-halign': 'center',
      +          },
      +        },
      +        {
      +          selector: ':parent',
      +          css: {
      +            'text-valign': 'top',
      +            'text-halign': 'center',
      +          },
      +        },
      +        {
      +          selector: 'edge',
      +          css: {
      +            'curve-style': 'bezier',
      +            'target-arrow-shape': 'triangle',
      +          },
      +        },
      +      ],
      +
      +      elements: {
      +        nodes: [
      +          { data: { id: 'a', parent: 'b' } },
      +          { data: { id: 'b' } },
      +          { data: { id: 'c', parent: 'b' } },
      +          { data: { id: 'd' } },
      +          { data: { id: 'e' } },
      +          { data: { id: 'f', parent: 'e' } },
      +        ],
      +        edges: [
      +          { data: { id: 'ad', source: 'a', target: 'd' } },
      +          { data: { id: 'eb', source: 'e', target: 'b' } },
      +        ],
      +      },
      +    };
      +    log.info('Drawing flowchart using v3 renderer');
      +    // Fetch the default direction, use TD if none was found
      +    let dir = diagObj.db.getDirection();
      +    if (dir === undefined) {
      +      dir = 'TD';
      +    }
      +
      +    const { securityLevel, flowchart: conf } = getConfig();
      +
      +    // Handle root and document for when rendering in sandbox mode
      +    let sandboxElement;
      +    if (securityLevel === 'sandbox') {
      +      sandboxElement = select('#i' + id);
      +    }
      +    const root =
      +      securityLevel === 'sandbox'
      +        ? select(sandboxElement.nodes()[0].contentDocument.body)
      +        : select('body');
      +    const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
      +
      +    const svg = root.select(`[id="${id}"]`);
      +    const markers = ['point', 'circle', 'cross'];
      +    insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute);
      +    // Fetch the vertices/nodes and edges/links from the parsed graph definition
      +    const vert = diagObj.db.getVertices();
      +
      +    let subG;
      +    const subGraphs = diagObj.db.getSubGraphs();
      +    log.info('Subgraphs - ', subGraphs);
      +    for (let i = subGraphs.length - 1; i >= 0; i--) {
      +      subG = subGraphs[i];
      +      log.info('Subgraph - ', subG);
      +      diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir);
      +    }
      +
      +    const parentLookUpDb = addSubGraphs(diagObj.db);
      +    graph = addVertices(vert, id, root, doc, diagObj, parentLookUpDb, graph);
      +    const edgesEl = svg.insert('g').attr('class', 'edges edgePath');
      +    const edges = diagObj.db.getEdges();
      +    graph = addEdges(edges, diagObj, graph);
      +
      +    const cy = cytoscape(graph);
      +
      +    // c.style();
      +    // Make cytoscape care about the dimensions of the nodes
      +    cy.nodes().forEach(function (n) {
      +      const boundingBox = n.data().boundingBox;
      +      if (boundingBox) {
      +        n.style('width', boundingBox.width);
      +        n.style('height', boundingBox.height);
      +      }
      +      n.style('shape', 'rectangle');
      +      // n.layoutDimensions = () => {
      +      //   // console.log('Node dimensions', boundingBox.width, boundingBox.height);
      +      //   if (boundingBox) {
      +      //     return { w: boundingBox.width, h: boundingBox.height };
      +      //   }
      +      //   // return { w: boundingBox.width, h: boundingBox.height };
      +
      +      //   // const data = n.data();
      +      //   // return { w: data.width, h: data.height };
      +
      +      //   return { w: 206, h: 160 };
      +      // };
      +    });
      +
      +    cy.layout({
      +      // name: 'dagre',
      +      // name: 'preset',
      +      // name: 'cose',
      +      // name: 'circle',
      +      name: 'concentric',
      +      headless: false,
      +      styleEnabled: true,
      +      animate: false,
      +    }).run();
      +
      +    // function runLayouts(fit, callBack) {
      +    //   // step-1 position child nodes
      +    //   var parentNodes = cy.nodes(':parent');
      +    //   var grid_layout = parentNodes.descendants().layout({
      +    //     name: 'grid',
      +    //     cols: 1,
      +    //     fit: fit,
      +    //   });
      +    //   grid_layout.promiseOn('layoutstop').then(function (event) {
      +    //     // step-2 position parent nodes
      +    //     var dagre_layout = parentNodes.layout({
      +    //       name: 'dagre',
      +    //       rankDir: 'TB',
      +    //       fit: fit,
      +    //     });
      +    //     dagre_layout.promiseOn('layoutstop').then(function (event) {
      +    //       if (callBack) {
      +    //         callBack.call(cy, event);
      +    //       }
      +    //     });
      +    //     dagre_layout.run();
      +    //   });
      +    //   grid_layout.run();
      +    // }
      +    // runLayouts();
      +
      +    // log.info('Positions', cy.nodes().positions());
      +    // window.cy = cy;
      +    cy.ready((e) => {
      +      log.info('Ready', e, cy.data());
      +      //   // setTimeout(() => {
      +      cy.nodes().map((node, id) => {
      +        const data = node.data();
      +
      +        log.info(
      +          'Position: (',
      +          node.position().x,
      +          ', ',
      +          node.position().y,
      +          ')',
      +          data,
      +          cy.elements()[0].renderedBoundingBox()
      +        );
      +        if (data.el) {
      +          data.el.attr('transform', `translate(${node.position().x}, ${node.position().y})`);
      +          // document
      +          //   .querySelector(`[id="${data.domId}"]`)
      +          //   .setAttribute('transform', `translate(${node.position().x}, ${node.position().y})`);
      +          log.info('Id = ', data.domId, svg.select(`[id="${data.domId}"]`), data.el.node());
      +        }
      +        // else {
      +        //   // console.log('No element found for node', data, node.position(), node.size());
      +        // }
      +      });
      +
      +      cy.edges().map((edge, id) => {
      +        const data = edge.data();
      +        if (edge[0]._private.bodyBounds) {
      +          const bounds = edge[0]._private.rscratch;
      +          // insertEdge(edgesEl, edge, data.edgeData, bounds, diagObj);
      +        }
      +      });
      +
      +      log.info(cy.json());
      +      setupGraphViewbox({}, svg, conf.diagramPadding, conf.useMaxWidth);
      +      // Remove element after layout
      +      // renderEl.remove();
      +      resolve();
      +      // }, 500);
      +    });
      +  });
      +};
      +
      +export default {
      +  // setConf,
      +  // addVertices,
      +  // addEdges,
      +  getClasses,
      +  draw,
      +};
      diff --git a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      index 102a3c652a..9b0f3092b5 100644
      --- a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      +++ b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      @@ -3,14 +3,19 @@ import { select, line, curveLinear, curveCardinal, curveBasis, selectAll } from
       import { log, getConfig, setupGraphViewbox } from './mermaidUtils';
       import { insertNode } from '../../mermaid/src/dagre-wrapper/nodes.js';
       import insertMarkers from '../../mermaid/src/dagre-wrapper/markers.js';
      -
      +import dagre from 'cytoscape-dagre';
       // Replace with other function to avoid dependency to dagre-d3
       import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js';
       
       import common, { evaluate } from '../../mermaid/src/diagrams/common/common';
       import { interpolateToCurve, getStylesFromArray } from '../../mermaid/src/utils';
       
      -import cytoscape from 'cytoscape';
      +// import ELK from 'elkjs/lib/elk-api';
      +// const elk = new ELK({
      +//   workerUrl: './elk-worker.min.js',
      +// });
      +import ELK from 'elkjs/lib/elk.bundled.js';
      +const elk = new ELK();
       
       const conf = {};
       export const setConf = function (cnf) {
      @@ -20,6 +25,8 @@ export const setConf = function (cnf) {
         }
       };
       
      +const nodeDb = {};
      +
       // /**
       //  * Function that adds the vertices found during parsing to the graph to be rendered.
       //  *
      @@ -30,7 +37,7 @@ export const setConf = function (cnf) {
       //  * @param doc
       //  * @param diagObj
       //  */
      -export const addVertices = function (vert, cy, svgId, root, doc, diagObj, parentLookUpDb) {
      +export const addVertices = function (vert, svgId, root, doc, diagObj, parentLookUpDb, graph) {
         const svg = root.select(`[id="${svgId}"]`);
         const nodes = svg.insert('g').attr('class', 'nodes');
         const keys = Object.keys(vert);
      @@ -165,33 +172,36 @@ export const addVertices = function (vert, cy, svgId, root, doc, diagObj, parent
           };
           const nodeEl = insertNode(nodes, node, vertex.dir);
           const boundingBox = nodeEl.node().getBBox();
      -    cy.add({
      -      group: 'nodes',
      -      data: {
      -        id: vertex.id,
      -        labelStyle: styles.labelStyle,
      -        shape: _shape,
      -        labelText: vertexText,
      -        rx: radious,
      -        ry: radious,
      -        class: classStr,
      -        style: styles.style,
      -        link: vertex.link,
      -        linkTarget: vertex.linkTarget,
      -        tooltip: diagObj.db.getTooltip(vertex.id) || '',
      -        domId: diagObj.db.lookUpDomId(vertex.id),
      -        haveCallback: vertex.haveCallback,
      -        width: vertex.type === 'group' ? 500 : undefined,
      -        dir: vertex.dir,
      -        type: vertex.type,
      -        props: vertex.props,
      -        padding: getConfig().flowchart.padding,
      -        boundingBox,
      -        el: nodeEl,
      -        parent: parentLookUpDb[vertex.id],
      -      },
      +    const data = {
      +      id: vertex.id,
      +      labelStyle: styles.labelStyle,
      +      shape: _shape,
      +      labelText: vertexText,
      +      rx: radious,
      +      ry: radious,
      +      class: classStr,
      +      style: styles.style,
      +      link: vertex.link,
      +      linkTarget: vertex.linkTarget,
      +      tooltip: diagObj.db.getTooltip(vertex.id) || '',
      +      domId: diagObj.db.lookUpDomId(vertex.id),
      +      haveCallback: vertex.haveCallback,
      +      width: boundingBox.width,
      +      height: boundingBox.height,
      +      dir: vertex.dir,
      +      type: vertex.type,
      +      props: vertex.props,
      +      padding: getConfig().flowchart.padding,
      +      boundingBox,
      +      el: nodeEl,
      +      parent: parentLookUpDb.parentById[vertex.id],
      +    };
      +    // if (!Object.keys(parentLookUpDb.childrenById).includes(vertex.id)) {
      +    graph.children.push({
      +      ...data,
           });
      -
      +    // }
      +    nodeDb[node.id] = data;
           log.trace('setNode', {
             labelStyle: styles.labelStyle,
             shape: _shape,
      @@ -207,9 +217,10 @@ export const addVertices = function (vert, cy, svgId, root, doc, diagObj, parent
             dir: vertex.dir,
             props: vertex.props,
             padding: getConfig().flowchart.padding,
      -      parent: parentLookUpDb[vertex.id],
      +      parent: parentLookUpDb.parentById[vertex.id],
           });
         });
      +  return graph;
       };
       
       /**
      @@ -219,8 +230,9 @@ export const addVertices = function (vert, cy, svgId, root, doc, diagObj, parent
        * @param {object} g The graph object
        * @param cy
        * @param diagObj
      + * @param graph
        */
      -export const addEdges = function (edges, cy, diagObj) {
      +export const addEdges = function (edges, diagObj, graph) {
         // log.info('abc78 edges = ', edges);
         let cnt = 0;
         let linkIdCnt = {};
      @@ -351,8 +363,16 @@ export const addEdges = function (edges, cy, diagObj) {
           edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd;
       
           // Add the edge to the graph
      -    cy.add({ group: 'edges', data: { source: edge.start, target: edge.end, edgeData, id: cnt } });
      +    graph.edges.push({
      +      id: 'e' + edge.start + edge.end,
      +      sources: [edge.start],
      +      targets: [edge.end],
      +      edgeData,
      +      targetPort: 'PortSide.NORTH',
      +      // id: cnt,
      +    });
         });
      +  return graph;
       };
       
       const addmarkers = function (svgPath, edgeData, diagramType, arrowMarkerAbsolute) {
      @@ -439,7 +459,7 @@ const addmarkers = function (svgPath, edgeData, diagramType, arrowMarkerAbsolute
        */
       export const getClasses = function (text, diagObj) {
         log.info('Extracting classes');
      -  diagObj.db.clear();
      +  diagObj.db.clear('ver-2');
         try {
           // Parse the graph definition
           diagObj.parse(text);
      @@ -449,40 +469,49 @@ export const getClasses = function (text, diagObj) {
         }
       };
       
      -const addSubGraphs = function (cy, db) {
      -  const parentLookUpDb = {};
      +const addSubGraphs = function (db) {
      +  const parentLookUpDb = { parentById: {}, childrenById: {} };
         const subgraphs = db.getSubGraphs();
      -
      +  log.info('Subgraphs - ', subgraphs);
         subgraphs.forEach(function (subgraph) {
      -    parentLookUpDb[subgraph.id] = subgraph.parent;
      +    subgraph.nodes.forEach(function (node) {
      +      parentLookUpDb.parentById[node] = subgraph.id;
      +      if (parentLookUpDb.childrenById[subgraph.id] === undefined) {
      +        parentLookUpDb.childrenById[subgraph.id] = [];
      +      }
      +      parentLookUpDb.childrenById[subgraph.id].push(node);
      +    });
         });
       
         subgraphs.forEach(function (subgraph) {
      -    cy.add({
      -      group: 'nodes',
      -      data: { id: subgraph.id, parent: parentLookUpDb[subgraph.id], classes: 'flowchart-subgraph' },
      -    });
      +    const data = { id: subgraph.id };
      +    if (parentLookUpDb.parentById[subgraph.id] !== undefined) {
      +      data.parent = parentLookUpDb.parentById[subgraph.id];
      +    }
      +    // cy.add({
      +    //   group: 'nodes',
      +    //   data,
      +    // });
         });
         return parentLookUpDb;
       };
       
      -const insertEdge = function (edgesEl, edge, edgeData, bounds, diagObj) {
      -  const src = edge.sourceEndpoint();
      -  const segments = edge.segmentPoints();
      +const insertEdge = function (edgesEl, edge, edgeData, diagObj) {
      +  const src = edge.sections[0].startPoint;
      +  const dest = edge.sections[0].endPoint;
      +  const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];
         // const dest = edge.target().position();
      -  const dest = edge.targetEndpoint();
      +  // const dest = edge.targetEndpoint();
         const segPoints = segments.map((segment) => [segment.x, segment.y]);
      -  const points = [
      -    [src.x, src.y],
      -    [segments[0].x, segments[0].y],
      -    [dest.x, dest.y],
      -  ];
      +  const points = [[src.x, src.y], ...segPoints, [dest.x, dest.y]];
         // console.log('Edge ctrl points:', edge.segmentPoints(), 'Bounds:', bounds, edge.source(), points);
         // console.log('Edge ctrl points:', points);
      -  const curve = line().curve(curveCardinal);
      +  // const curve = line().curve(curveCardinal);
      +  const curve = line().curve(curveLinear);
         const edge2 = edgesEl
           .insert('path')
           .attr('d', curve(points))
      +    // .attr('d', points))
           .attr('class', 'path')
           .attr('fill', 'none');
         addmarkers(edge2, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);
      @@ -518,42 +547,31 @@ const insertEdge = function (edgesEl, edge, edgeData, bounds, diagObj) {
       
       export const draw = function (text, id, _version, diagObj) {
         // Add temporary render element
      +  diagObj.db.clear();
      +  diagObj.db.setGen('gen-2');
      +  // Parse the graph definition
      +  diagObj.parser.parse(text);
       
         return new Promise(function (resolve, reject) {
           const renderEl = select('body').append('div').attr('style', 'height:400px').attr('id', 'cy');
           // .attr('style', 'display:none')
      -    const cy = cytoscape({
      -      styleEnabled: true,
      -      // animate: false,
      -      // ready: function () {
      -      //   log.info('Ready', this);
      -      // },
      -      container: document.getElementById('cy'), // container to render in
      -      elements: [],
      -      style: [
      -        {
      -          selector: 'edge',
      -          style: {
      -            'curve-style': 'segments',
      -            // 'curve-style': 'bezier',
      -            // 'segment-weights': '0.5',
      -            // 'segment-distances': '0',
      -            'edge-distances': 'node-position',
      -
      -            // 'source-endpoint': '180deg',
      -            // 'target-endpoint': '0deg',
      -          },
      -          // 'edge-distance': 'intersection',
      -        },
      -        // {
      -        //   selector: 'node',
      -        //   style: {
      -        //     width: 70,
      -        //     height: 100,
      -        //   },
      -        // },
      -      ],
      -    });
      +    let graph = {
      +      id: 'root',
      +      layoutOptions: {
      +        'elk.algorithm': 'layered',
      +        'elk.direction': 'DOWN',
      +        'elk.port.side': 'SOUTH',
      +        // 'nodePlacement.strategy': 'SIMPLE',
      +        'org.eclipse.elk.graphviz.concentrate': true,
      +        // 'org.eclipse.elk.spacing.nodeNode': 120,
      +        // 'org.eclipse.elk.spacing.edgeEdge': 120,
      +        // 'org.eclipse.elk.spacing.edgeNode': 120,
      +        // 'org.eclipse.elk.spacing.nodeEdge': 120,
      +        'org.eclipse.elk.spacing.componentComponent': 120,
      +      },
      +      children: [],
      +      edges: [],
      +    };
           log.info('Drawing flowchart using v3 renderer');
           // Fetch the default direction, use TD if none was found
           let dir = diagObj.db.getDirection();
      @@ -579,89 +597,45 @@ export const draw = function (text, id, _version, diagObj) {
           insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute);
           // Fetch the vertices/nodes and edges/links from the parsed graph definition
           const vert = diagObj.db.getVertices();
      -    const parentLookUpDb = addSubGraphs(cy, diagObj.db);
      -    addVertices(vert, cy, id, root, doc, diagObj, parentLookUpDb);
      -    const edgesEl = svg.insert('g').attr('class', 'edges edgePath');
      -    const edges = diagObj.db.getEdges();
      -    addEdges(edges, cy, diagObj);
      -
      -    // c.style();
      -    // Make cytoscape care about the dimensions of the nodes
      -    cy.nodes().forEach(function (n) {
      -      const boundingBox = n.data().boundingBox;
      -      if (boundingBox) {
      -        n.style('width', boundingBox.width);
      -        n.style('height', boundingBox.height);
      -      }
      -      n.style('shape', 'square');
      -      n.layoutDimensions = () => {
      -        // console.log('Node dimensions', boundingBox.width, boundingBox.height);
      -        if (boundingBox) {
      -          return { w: boundingBox.width, h: boundingBox.height };
      -        }
      -        // return { w: boundingBox.width, h: boundingBox.height };
       
      -        // const data = n.data();
      -        // return { w: data.width, h: data.height };
      -
      -        return { w: 206, h: 160 };
      -      };
      -    });
      +    let subG;
      +    const subGraphs = diagObj.db.getSubGraphs();
      +    log.info('Subgraphs - ', subGraphs);
      +    for (let i = subGraphs.length - 1; i >= 0; i--) {
      +      subG = subGraphs[i];
      +      log.info('Subgraph - ', subG);
      +      diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir);
      +    }
       
      -    cy.layout({
      -      // name: 'grid',
      -      name: 'preset',
      -      // name: 'cose',
      -      // name: 'circle',
      -      // name: 'concentric',
      -      headless: true,
      -      styleEnabled: false,
      -      animate: false,
      -    }).run();
      -    // log.info('Positions', cy.nodes().positions());
      -    window.cy = cy;
      -    cy.ready((e) => {
      -      log.info('Ready', e);
      -      // setTimeout(() => {
      -      cy.nodes().map((node, id) => {
      -        const data = node.data();
      -
      -        log.info(
      -          'Position: (',
      -          node.position().x,
      -          ', ',
      -          node.position().y,
      -          ')',
      -          data,
      -          cy.elements()[0].renderedBoundingBox()
      -        );
      -        if (data.el) {
      -          data.el.attr('transform', `translate(${node.position().x}, ${node.position().y})`);
      +    const parentLookUpDb = addSubGraphs(diagObj.db);
      +    graph = addVertices(vert, id, root, doc, diagObj, parentLookUpDb, graph);
      +    const edgesEl = svg.insert('g').attr('class', 'edges edgePath');
      +    const edges = diagObj.db.getEdges();
      +    graph = addEdges(edges, diagObj, graph);
      +
      +    elk.layout(graph).then(function (g) {
      +      g.children.forEach(function (node) {
      +        const data = nodeDb[node.id];
      +        if (data) {
      +          data.el.attr(
      +            'transform',
      +            `translate(${node.x + node.width / 2}, ${node.y + node.height / 2})`
      +          );
                 // document
                 //   .querySelector(`[id="${data.domId}"]`)
                 //   .setAttribute('transform', `translate(${node.position().x}, ${node.position().y})`);
                 log.info('Id = ', data.domId, svg.select(`[id="${data.domId}"]`), data.el.node());
               }
      -        // else {
      -        //   // console.log('No element found for node', data, node.position(), node.size());
      -        // }
             });
       
      -      cy.edges().map((edge, id) => {
      -        const data = edge.data();
      -        if (edge[0]._private.bodyBounds) {
      -          const bounds = edge[0]._private.rscratch;
      -          insertEdge(edgesEl, edge, data.edgeData, bounds, diagObj);
      -        }
      +      g.edges.map((edge, id) => {
      +        insertEdge(edgesEl, edge, edge.edgeData, diagObj);
             });
      -
      -      log.info(cy.json());
             setupGraphViewbox({}, svg, conf.diagramPadding, conf.useMaxWidth);
      -      // Remove element after layout
      -      // renderEl.remove();
             resolve();
      -      // }, 500);
           });
      +    // Remove element after layout
      +    // renderEl.remove();
         });
       };
       
      diff --git a/packages/mermaid/src/dagre-wrapper/markers.js b/packages/mermaid/src/dagre-wrapper/markers.js
      index c231eb3e5b..1a3f74bee6 100644
      --- a/packages/mermaid/src/dagre-wrapper/markers.js
      +++ b/packages/mermaid/src/dagre-wrapper/markers.js
      @@ -142,7 +142,7 @@ const point = (elem, type) => {
           .append('marker')
           .attr('id', type + '-pointEnd')
           .attr('class', 'marker ' + type)
      -    .attr('viewBox', '0 0 10 10')
      +    .attr('viewBox', '0 0 12 20')
           .attr('refX', 10)
           .attr('refY', 5)
           .attr('markerUnits', 'userSpaceOnUse')
      diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js
      index 928889138a..147ad5b6a2 100644
      --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js
      +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js
      @@ -439,7 +439,7 @@ export const clear = function (ver = 'gen-1') {
         commonClear();
       };
       export const setGen = (ver) => {
      -  version = ver || 'gen-1';
      +  version = ver || 'gen-2';
       };
       /** @returns {string} */
       export const defaultStyle = function () {
      diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js
      index be3fffa0c8..b058b8010f 100644
      --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js
      +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js
      @@ -409,7 +409,7 @@ export const draw = function (text, id, _version, diagObj) {
       
         const edges = diagObj.db.getEdges();
       
      -  log.info(edges);
      +  log.info('Edges', edges);
         let i = 0;
         for (i = subGraphs.length - 1; i >= 0; i--) {
           // for (let i = 0; i < subGraphs.length; i++) {
      diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
      index 561d55e8d4..01ace7c082 100644
      --- a/pnpm-lock.yaml
      +++ b/pnpm-lock.yaml
      @@ -311,6 +311,9 @@ importers:
             cytoscape-cose-bilkent:
               specifier: ^4.1.0
               version: 4.1.0_cytoscape@3.23.0
      +      cytoscape-dagre:
      +        specifier: ^2.1.0
      +        version: 2.5.0_cytoscape@3.23.0
             cytoscape-fcose:
               specifier: ^2.1.0
               version: 2.1.0_cytoscape@3.23.0
      @@ -320,6 +323,9 @@ importers:
             dagre-d3-es:
               specifier: 7.0.4
               version: 7.0.4
      +      elkjs:
      +        specifier: ^0.8.2
      +        version: 0.8.2
             graphlib:
               specifier: ^2.1.0
               version: 2.1.8
      @@ -3578,7 +3584,7 @@ packages:
         /axios/0.21.4_debug@4.3.2:
           resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
           dependencies:
      -      follow-redirects: 1.15.2
      +      follow-redirects: 1.15.2_debug@4.3.2
           transitivePeerDependencies:
             - debug
           dev: true
      @@ -4674,6 +4680,15 @@ packages:
             cytoscape: 3.23.0
           dev: false
       
      +  /cytoscape-dagre/2.5.0_cytoscape@3.23.0:
      +    resolution: {integrity: sha512-VG2Knemmshop4kh5fpLO27rYcyUaaDkRw+6PiX4bstpB+QFt0p2oauMrsjVbUamGWQ6YNavh7x2em2uZlzV44g==}
      +    peerDependencies:
      +      cytoscape: ^3.2.22
      +    dependencies:
      +      cytoscape: 3.23.0
      +      dagre: 0.8.5
      +    dev: false
      +
         /cytoscape-fcose/2.1.0_cytoscape@3.23.0:
           resolution: {integrity: sha512-Q3apPl66jf8/2sMsrCjNP247nbDkyIPjA9g5iPMMWNLZgP3/mn9aryF7EFY/oRPEpv7bKJ4jYmCoU5r5/qAc1Q==}
           peerDependencies:
      @@ -4946,6 +4961,13 @@ packages:
             lodash-es: 4.17.21
           dev: false
       
      +  /dagre/0.8.5:
      +    resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==}
      +    dependencies:
      +      graphlib: 2.1.8
      +      lodash: 4.17.21
      +    dev: false
      +
         /dargs/7.0.0:
           resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
           engines: {node: '>=8'}
      @@ -5270,6 +5292,10 @@ packages:
           resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
           dev: true
       
      +  /elkjs/0.8.2:
      +    resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==}
      +    dev: false
      +
         /emittery/0.13.1:
           resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
           engines: {node: '>=12'}
      @@ -6201,7 +6227,7 @@ packages:
           resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==}
           dev: true
       
      -  /follow-redirects/1.15.2:
      +  /follow-redirects/1.15.2_debug@4.3.2:
           resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
           engines: {node: '>=4.0'}
           peerDependencies:
      @@ -6209,6 +6235,8 @@ packages:
           peerDependenciesMeta:
             debug:
               optional: true
      +    dependencies:
      +      debug: 4.3.2
           dev: true
       
         /foreground-child/2.0.0:
      @@ -6749,7 +6777,7 @@ packages:
           engines: {node: '>=8.0.0'}
           dependencies:
             eventemitter3: 4.0.7
      -      follow-redirects: 1.15.2
      +      follow-redirects: 1.15.2_debug@4.3.2
             requires-port: 1.0.0
           transitivePeerDependencies:
             - debug
      
      From b68fee7e65274f6f8a52cc26cb9e3094c3bb88a1 Mon Sep 17 00:00:00 2001
      From: Knut Sveidqvist 
      Date: Sat, 3 Dec 2022 11:41:29 +0100
      Subject: [PATCH 0767/1038] Small fix for issue #3881
      
      ---
       cypress/platform/knsv2.html                   | 39 +++++++------------
       .../mermaid/src/dagre-wrapper/clusters.js     |  8 ++--
       2 files changed, 18 insertions(+), 29 deletions(-)
      
      diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
      index ba7f416011..fb2fe7f9b7 100644
      --- a/cypress/platform/knsv2.html
      +++ b/cypress/platform/knsv2.html
      @@ -56,29 +56,24 @@
         
           
      Security check
      -graph LR
      +flowchart LR
           subgraph external
      -        inside
      +      subgraph internal
      +          inside
      +      end
           end
      -    outside --> external
      +    outside --> inside
           
      -mindmap
      -  root
      -    child1((Circle))
      -        grandchild 1
      -        grandchild 2
      -    child2(Round rectangle)
      -        grandchild 3
      -        grandchild 4
      -    child3[Square]
      -        grandchild 5
      -        ::icon(mdi mdi-fire)
      -        gc6((grand
      child 6)) - ::icon(mdi mdi-fire) - gc7((grand
      grand
      child 8)) -
      -
      +flowchart LR
      +    subgraph parent
      +      subgraph childB
      +        grandchild
      +      end
      +    end
      +    foo --> childA        
      +
             gantt
               title Style today marker (vertical line should be 5px wide and half-transparent blue)
               dateFormat YYYY-MM-DD
      @@ -103,7 +98,7 @@
               // console.error('Mermaid error: ', err);
             };
             mermaid.initialize({
      -        theme: 'base',
      +        theme: 'default',
               startOnLoad: true,
               logLevel: 0,
               flowchart: {
      @@ -114,10 +109,6 @@
                 useMaxWidth: false,
               },
               useMaxWidth: false,
      -        lazyLoadedDiagrams: [
      -          './mermaid-mindmap-detector.esm.mjs',
      -          './mermaid-example-diagram-detector.esm.mjs',
      -        ],
             });
             function callback() {
               alert('It worked');
      diff --git a/packages/mermaid/src/dagre-wrapper/clusters.js b/packages/mermaid/src/dagre-wrapper/clusters.js
      index 40729deadc..57c3ff5138 100644
      --- a/packages/mermaid/src/dagre-wrapper/clusters.js
      +++ b/packages/mermaid/src/dagre-wrapper/clusters.js
      @@ -59,11 +59,9 @@ const rect = (parent, node) => {
         // Center the label
         label.attr(
           'transform',
      -    'translate(' +
      -      (node.x - bbox.width / 2) +
      -      ', ' +
      -      (node.y - node.height / 2 + node.padding / 3) +
      -      ')'
      +    // This puts the labal on top of the box instead of inside it
      +    // 'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2 - bbox.height) + ')'
      +    'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2) + ')'
         );
       
         const rectBox = rect.node().getBBox();
      
      From 4124d186d0b3b270c281db26d6c6d233626c6333 Mon Sep 17 00:00:00 2001
      From: Knut Sveidqvist 
      Date: Sat, 3 Dec 2022 13:21:10 +0100
      Subject: [PATCH 0768/1038] Fix for issue #3882 moving the label when the path
       has been modified
      
      ---
       cypress/platform/knsv2.html                 | 32 ++++++++++++---------
       packages/mermaid/src/dagre-wrapper/edges.js | 20 ++++++++++---
       2 files changed, 35 insertions(+), 17 deletions(-)
      
      diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
      index fb2fe7f9b7..83472039df 100644
      --- a/cypress/platform/knsv2.html
      +++ b/cypress/platform/knsv2.html
      @@ -57,22 +57,28 @@
           
      Security check
       flowchart LR
      -    subgraph external
      -      subgraph internal
      -          inside
      -      end
      +    %% Actors
      +    A
      +    subgraph Sub
      +        B --> C
           end
      -    outside --> inside
      +
      +    %% Accusations
      +    A --L --> Sub
      +
      +    %% Offense
      +    B --> A
      +
           
      -flowchart LR
      -    subgraph parent
      -      subgraph childB
      -        grandchild
      -      end
      -    end
      -    foo --> childA        
      + stateDiagram-v2 + + [*] --> S1 + S1 --> S2: long line using
      should work + S1 --> S3: long line using
      should work + S1 --> S4: long line using \\nshould work + +
             gantt
               title Style today marker (vertical line should be 5px wide and half-transparent blue)
      diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js
      index 5213d06846..bb22cee838 100644
      --- a/packages/mermaid/src/dagre-wrapper/edges.js
      +++ b/packages/mermaid/src/dagre-wrapper/edges.js
      @@ -130,9 +130,21 @@ export const positionEdgeLabel = (edge, paths) => {
           if (path) {
             //   // debugger;
             const pos = utils.calcLabelPosition(path);
      -      log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');
      -      // x = pos.x;
      -      // y = pos.y;
      +      log.info(
      +        'Moving label ' + edge.label + ' from (',
      +        x,
      +        ',',
      +        y,
      +        ') to (',
      +        pos.x,
      +        ',',
      +        pos.y,
      +        ') abc78'
      +      );
      +      if (paths.updatedPath) {
      +        x = pos.x;
      +        y = pos.y;
      +      }
           }
           el.attr('transform', 'translate(' + x + ', ' + y + ')');
         }
      @@ -463,7 +475,7 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph
           .attr('style', edge.style);
       
         // DEBUG code, adds a red circle at each edge coordinate
      -  // edge.points.forEach(point => {
      +  // edge.points.forEach((point) => {
         //   elem
         //     .append('circle')
         //     .style('stroke', 'red')
      
      From d451a0c508b4ffd7ffd5cd82de8a3088fea308f0 Mon Sep 17 00:00:00 2001
      From: steph 
      Date: Sun, 4 Dec 2022 21:20:09 -0800
      Subject: [PATCH 0769/1038] refactor theming doc
      
      ---
       docs/config/theming.md                      | 804 ++++----------------
       packages/mermaid/src/docs/config/theming.md | 541 +++----------
       2 files changed, 266 insertions(+), 1079 deletions(-)
      
      diff --git a/docs/config/theming.md b/docs/config/theming.md
      index cfd86caa0b..6c12ee75fd 100644
      --- a/docs/config/theming.md
      +++ b/docs/config/theming.md
      @@ -6,31 +6,27 @@
       
       # Theme Configuration
       
      -With Version 8.7.0 Mermaid comes out with a system for dynamic and integrated configuration of themes. The intent is to increase the customizability and ease of styling for mermaid diagrams.
      +Dynamic and integrated theme configuration was introduced in Mermaid version 8.7.0.
       
      -The theme can be altered by changing the root level variable `theme` variable in the configuration. To change it for the whole site you must use the `initialize` call. To do it for just for a single diagram you can use the `%%init%%` directive
      +Themes can now be customized at the site-wide level, or on individual Mermaid diagrams. For site-wide theme customization, the `initialize` call is used. For diagram specific customization, the `init` directive is used.
       
      -Themes follow and build upon the Levels of Configuration, and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](./8.6.0_docs.md).
      +## Available Themes
       
      -## Deployable Themes
      +1.  **default** - This is the default theme for all diagrams.
       
      -The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls.
      +2.  **neutral** - This theme is great for black and white documents that will be printed.
       
      -1.  **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes.
      +3.  **dark** - This theme goes well with dark-colored elements or dark-mode.
       
      -2.  **forest**- A theme full of light greens that is easy on the eyes.
      +4.  **forest** - This theme contains shades of green.
       
      -3.  **dark**- A theme that would go well with other dark-colored elements.
      +5.  **base** - This is the only theme that can be modified. Use this theme as the base for customizations.
       
      -4.  **default**- The default theme for all diagrams.
      +## Site-wide Theme
       
      -5.  **neutral**- The theme to be used for black and white printing.
      +To customize themes site-wide, call the `initialize` method on the `mermaidAPI`.
       
      -## Site-wide Themes
      -
      -Site-wide themes are declared via `initialize` by site owners.
      -
      -Example of `Initialize` call setting `theme` to `base`:
      +Example of `initialize` call setting `theme` to `base`:
       
       ```javascript
       mermaidAPI.initialize({
      @@ -39,307 +35,52 @@ mermaidAPI.initialize({
       });
       ```
       
      -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams.
      +## Diagram-specific Themes
       
      -## Themes at the Local or Current Level
      +To customize the theme of an individual diagram, use the `init` directive.
       
      -When Generating a diagram using on a webpage that supports mermaid. It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array.
      +Example of `init` directive setting the `theme` to `forest`:
       
       ```mermaid-example
      -%%{init: {'theme':'base'}}%%
      +%%{init: {'theme':'forest'}}%%
         graph TD
           a --> b
       ```
       
       ```mermaid
      -%%{init: {'theme':'base'}}%%
      +%%{init: {'theme':'forest'}}%%
         graph TD
           a --> b
       ```
       
      -Here is an example of how `%%init%%` can set the theme to 'base', this assumes that `themeVariables` are set to default:
      -
      -```mermaid-example
      -%%{init: {'theme':'base'}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -```mermaid
      -%%{init: {'theme':'base'}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -# List of Themes
      -
      -# Customizing Themes with `themeVariables`
      -
      -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`.
      -
      -| Parameter      | Description                                                        | Type  | Required | Objects contained                  |
      -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- |
      -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor |
      -
      -**Here is an example of overriding `primaryColor` through `themeVariables` and giving everything a different look, using `%%init%%`.**
      -
      -```mermaid-example
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -```mermaid
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -**Notes:**
      -Leaving it empty will set all variable values to default.
      -
      -## Color and Color Calculation:
      -
      -Color definitions have certain interactions in mermaid, this is in order to ensure visibility for diagrams. Mermaid will adjust some variables automatically, when colors are changed in order to compensate and maintain readability.
      -
      -**The Default Value Column** to the right of the Variable column will denote the Variable paired/associated with the Variable on the left and the nature of this pairing or association. If it for instance says primaryColor it means that it gets primaryColor as default value. If it says "based on primaryColor" it means that it is calculated/ derived from primaryColor. This calculation can be primary color inversion, a change of hue, darkening or lightening by 10%, etc.
      -
      -You can create your own themes, by changing any of the given variables below. If you are using a dark background, set dark mode to true to adjust the colors. It is possible to override the calculations using the variable names below, with `%%init%%` if you wish to style it differently.
      -
      -## Theme Variables Reference Table
      -
      -> **Note**
      -> Variables that are unique to some diagrams can be affected by changes in Theme Variables
      -
      -| Variable             | Default/Base/Factor value      | Calc | Description                                                                                                                      |
      -| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- |
      -| darkMode             | false                          |      | Boolean Value that dictates how to calculate colors. "true" will activate darkmode.                                              |
      -| background           | #f4f4f4                        |      | Used to calculate color for items that should either be background colored or contrasting to the background.                     |
      -| fontFamily           | "trebuchet ms", verdana, arial |      |                                                                                                                                  |
      -| fontSize             | 16px                           |      | Font Size, in pixels                                                                                                             |
      -| primaryColor         | #fff4dd                        |      | Color to be used as background in nodes, other colors will be derived from this                                                  |
      -| primaryBorderColor   | based on primaryColor          | \*   | Color to be used as border in nodes using primaryColor                                                                           |
      -| primaryTextColor     | based on darkMode #ddd/#333    | \*   | Color to be used as text color in nodes using primaryColor                                                                       |
      -| secondaryColor       | based on primaryColor          | \*   |                                                                                                                                  |
      -| secondaryBorderColor | based on secondaryColor        | \*   | Color to be used as border in nodes using secondaryColor                                                                         |
      -| secondaryTextColor   | based on secondaryColor        | \*   | Color to be used as text color in nodes using secondaryColor                                                                     |
      -| tertiaryColor        | based on primaryColor          | \*   |                                                                                                                                  |
      -| tertiaryBorderColor  | based on tertiaryColor         | \*   | Color to be used as border in nodes using tertiaryColor                                                                          |
      -| tertiaryTextColor    | based on tertiaryColor         | \*   | Color to be used as text color in nodes using tertiaryColor                                                                      |
      -| noteBkgColor         | #fff5ad                        |      | Color used as background in notes                                                                                                |
      -| noteTextColor        | #333                           |      | Text color in note rectangles.                                                                                                   |
      -| noteBorderColor      | based on noteBkgColor          | \*   | Border color in note rectangles.                                                                                                 |
      -| lineColor            | based on background            | \*   |                                                                                                                                  |
      -| textColor            | based on primaryTextColor      | \*   | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in gantt diagram |
      -| mainBkg              | based on primaryColor          | \*   | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc                                  |
      -| errorBkgColor        | tertiaryColor                  | \*   | Color for syntax error message                                                                                                   |
      -| errorTextColor       | tertiaryTextColor              | \*   | Color for syntax error message                                                                                                   |
      -
      -# What follows are Variables, specific to different diagrams and charts.
      -
      -## Some Theme Variables serve as, or affect the Default Values for Specific Diagram Variables, unless changed using `%%init%%` .
      -
      -## Flowchart
      -
      -| Variable            | Default/ Associated Value | Calc | Description                  |
      -| ------------------- | ------------------------- | ---- | ---------------------------- |
      -| nodeBorder          | primaryBorderColor        | \*   | Node Border Color            |
      -| clusterBkg          | tertiaryColor             | \*   | Background in subgraphs      |
      -| clusterBorder       | tertiaryBorderColor       | \*   | Cluster Border Color         |
      -| defaultLinkColor    | lineColor                 | \*   | Link Color                   |
      -| titleColor          | tertiaryTextColor         | \*   | Title Color                  |
      -| edgeLabelBackground | based on secondaryColor   | \*   |                              |
      -| nodeTextColor       | primaryTextColor          | \*   | Color for text inside Nodes. |
      -
      -# sequence diagram
      -
      -| name                  | Default value           | Calc | Description                 |
      -| --------------------- | ----------------------- | ---- | --------------------------- |
      -| actorBorder           | primaryBorderColor      | \*   | Actor Border Color          |
      -| actorBkg              | mainBkg                 | \*   | Actor Background Color      |
      -| actorTextColor        | primaryTextColor        | \*   | Actor Text Color            |
      -| actorLineColor        | grey                    | \*   | Actor Line Color            |
      -| signalColor           | textColor               | \*   | Signal Color                |
      -| signalTextColor       | textColor               | \*   | Signal Text Color           |
      -| labelBoxBkgColor      | actorBkg                | \*   | Label Box Background Color  |
      -| labelBoxBorderColor   | actorBorder             | \*   | Label Box Border Color      |
      -| labelTextColor        | actorTextColor          | \*   | Label Text Color            |
      -| loopTextColor         | actorTextColor          | \*   | Loop ext Color              |
      -| activationBorderColor | based on secondaryColor | \*   | Activation Border Color     |
      -| activationBkgColor    | secondaryColor          | \*   | Activation Background Color |
      -| sequenceNumberColor   | based on lineColor      | \*   | Sequence Number Color       |
      -
      -# state colors
      -
      -| name          | Default value    | Calc | Description                                  |
      -| ------------- | ---------------- | ---- | -------------------------------------------- |
      -| labelColor    | primaryTextColor | \*   |                                              |
      -| altBackground | tertiaryColor    | \*   | Used for background in deep composite states |
      -
      -# class colors
      -
      -| name      | Default value | Calc | Description                     |
      -| --------- | ------------- | ---- | ------------------------------- |
      -| classText | textColor     | \*   | Color of Text in class diagrams |
      -
      -# User journey colors
      -
      -| name      | Default value           | Calc | Description                             |
      -| --------- | ----------------------- | ---- | --------------------------------------- |
      -| fillType0 | primaryColor            | \*   | Fill for 1st section in journey diagram |
      -| fillType1 | secondaryColor          | \*   | Fill for 2nd section in journey diagram |
      -| fillType2 | based on primaryColor   | \*   | Fill for 3rd section in journey diagram |
      -| fillType3 | based on secondaryColor | \*   | Fill for 4th section in journey diagram |
      -| fillType4 | based on primaryColor   | \*   | Fill for 5th section in journey diagram |
      -| fillType5 | based on secondaryColor | \*   | Fill for 6th section in journey diagram |
      -| fillType6 | based on primaryColor   | \*   | Fill for 7th section in journey diagram |
      -| fillType7 | based on secondaryColor | \*   | Fill for 8th section in journey diagram |
      -
      -\*\*Notes: Values are meant to create an alternating look.
      -
      -# Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`.
      -
      -```mermaid-example
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -```mermaid
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -\*\*This got a bit too dark and bit too colorful. With some easy steps this can be fixed:
      -
      -- Make the primary color a little lighter
      -- set the tertiary color to a reddish shade as well
      -- make the edge label background differ from the subgraph by setting the edgeLabelBackground
      -
      -```mermaid-example
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -```mermaid
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      +> **Reminder**: the only theme that can be customed is the `base` theme. The following section covers how to use `themeVariables` for customizations.
       
      -The Theming Engine does not admit color codes and will only accept proper color values. Color Names is not supported so for instance, the color value 'red' will not work, but '#ff0000' will work.
      +## Customizing Themes with `themeVariables`
       
      -# Common theming activities
      +To make a custom theme, modify `themeVariables` via `init`.
       
      -## How to change the color of the arrows
      +You will need to use the [base](#available-themes) theme as it is the only modifiable theme.
       
      -# Examples:
      +| Parameter      | Description                          | Type   | Properties                                                                                          |
      +| -------------- | ------------------------------------ | ------ | --------------------------------------------------------------------------------------------------- |
      +| themeVariables | Modifiable with the `init` directive | Object | `primaryColor`, `primaryTextColor`, `lineColor` ([see full list](#theme-variables-reference-table)) |
       
      -When adjusting a theme it might be helpful to look at how your preferred theme goes with the diagrams, to evaluate whether everything is visible and looks good.
      -In the following examples, the directive `init` is used, with the `theme` being declared as `base`. For more information on using directives, read the documentation for [Version 8.6.0](/8.6.0_docs.md)
      -
      -### Flowchart
      +Example of modifying `themeVariables` using the `init` directive:
       
       ```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      +%%{
      +  init: {
      +    'theme': 'base',
      +    'themeVariables': {
      +      'primaryColor': '#BB2528',
      +      'primaryTextColor': '#fff',
      +      'primaryBorderColor': '#7C0000',
      +      'lineColor': '#F8B229',
      +      'secondaryColor': '#006100',
      +      'tertiaryColor': '#fff'
      +    }
      +  }
      +}%%
               graph TD
                 A[Christmas] -->|Get money| B(Go shopping)
                 B --> C{Let me think}
      @@ -357,7 +98,19 @@ In the following examples, the directive `init` is used, with the `theme` being
       ```
       
       ```mermaid
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      +%%{
      +  init: {
      +    'theme': 'base',
      +    'themeVariables': {
      +      'primaryColor': '#BB2528',
      +      'primaryTextColor': '#fff',
      +      'primaryBorderColor': '#7C0000',
      +      'lineColor': '#F8B229',
      +      'secondaryColor': '#006100',
      +      'tertiaryColor': '#fff'
      +    }
      +  }
      +}%%
               graph TD
                 A[Christmas] -->|Get money| B(Go shopping)
                 B --> C{Let me think}
      @@ -374,370 +127,93 @@ In the following examples, the directive `init` is used, with the `theme` being
                 end
       ```
       
      -### Flowchart (beta)
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -        flowchart TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[Another]
      -          C ==>|One| D[Laptop]
      -          C x--x|Two| E[iPhone]
      -          C o--o|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -```mermaid
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -        flowchart TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[Another]
      -          C ==>|One| D[Laptop]
      -          C x--x|Two| E[iPhone]
      -          C o--o|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -### Sequence diagram
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -        sequenceDiagram
      -          autonumber
      -          par Action 1
      -            Alice->>John: Hello John, how are you?
      -          and Action 2
      -            Alice->>Bob: Hello Bob, how are you?
      -          end
      -          Alice->>+John: Hello John, how are you?
      -          Alice->>+John: John, can you hear me?
      -          John-->>-Alice: Hi Alice, I can hear you!
      -          Note right of John: John is perceptive
      -          John-->>-Alice: I feel great!
      -              loop Every minute
      -                John-->Alice: Great!
      -            end
      -```
      -
      -```mermaid
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -        sequenceDiagram
      -          autonumber
      -          par Action 1
      -            Alice->>John: Hello John, how are you?
      -          and Action 2
      -            Alice->>Bob: Hello Bob, how are you?
      -          end
      -          Alice->>+John: Hello John, how are you?
      -          Alice->>+John: John, can you hear me?
      -          John-->>-Alice: Hi Alice, I can hear you!
      -          Note right of John: John is perceptive
      -          John-->>-Alice: I feel great!
      -              loop Every minute
      -                John-->Alice: Great!
      -            end
      -```
      -
      -### Class diagram
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -
      -classDiagram
      -	Animal "1" <|-- Duck
      -	Animal <|-- Fish
      -	Animal <--o Zebra
      -	Animal : +int age
      -	Animal : +String gender
      -	Animal: +isMammal()
      -	Animal: +mate()
      -	class Duck{
      -		+String beakColor
      -		+swim()
      -		+quack()
      -	}
      -	class Fish{
      -		-int sizeInFeet
      -		-canEat()
      -	}
      -	class Zebra{
      -		+bool is_wild
      -		+run()
      -	}
      -```
      -
      -```mermaid
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -
      -classDiagram
      -	Animal "1" <|-- Duck
      -	Animal <|-- Fish
      -	Animal <--o Zebra
      -	Animal : +int age
      -	Animal : +String gender
      -	Animal: +isMammal()
      -	Animal: +mate()
      -	class Duck{
      -		+String beakColor
      -		+swim()
      -		+quack()
      -	}
      -	class Fish{
      -		-int sizeInFeet
      -		-canEat()
      -	}
      -	class Zebra{
      -		+bool is_wild
      -		+run()
      -	}
      -```
      -
      -### Gantt
      -
      -```mermaid-example
      -gantt
      -       dateFormat                YYYY-MM-DD
      -       title                     Adding GANTT diagram functionality to mermaid
      -       excludes                  :excludes the named dates/days from being included in a charted task..
      -       section A section
      -       Completed task            :done,    des1, 2014-01-06,2014-01-08
      -       Active task               :active,  des2, 2014-01-09, 3d
      -       Future task               :         des3, after des2, 5d
      -       Future task2              :         des4, after des3, 5d
      -
      -       section Critical tasks
      -       Completed task in the critical line :crit, done, 2014-01-06,24h
      -       Implement parser and jison          :crit, done, after des1, 2d
      -       Create tests for parser             :crit, active, 3d
      -       Future task in critical line        :crit, 5d
      -       Create tests for renderer           :2d
      -       Add to mermaid                      :1d
      -
      -       section Documentation
      -       Describe gantt syntax               :active, a1, after des1, 3d
      -       Add gantt diagram to demo page      :after a1  , 20h
      -       Add another diagram to demo page    :doc1, after a1  , 48h
      -
      -       section Last section
      -       Describe gantt syntax               :after doc1, 3d
      -       Add gantt diagram to demo page      :20h
      -       Add another diagram to demo page    :48h
      -```
      -
      -```mermaid
      -gantt
      -       dateFormat                YYYY-MM-DD
      -       title                     Adding GANTT diagram functionality to mermaid
      -       excludes                  :excludes the named dates/days from being included in a charted task..
      -       section A section
      -       Completed task            :done,    des1, 2014-01-06,2014-01-08
      -       Active task               :active,  des2, 2014-01-09, 3d
      -       Future task               :         des3, after des2, 5d
      -       Future task2              :         des4, after des3, 5d
      -
      -       section Critical tasks
      -       Completed task in the critical line :crit, done, 2014-01-06,24h
      -       Implement parser and jison          :crit, done, after des1, 2d
      -       Create tests for parser             :crit, active, 3d
      -       Future task in critical line        :crit, 5d
      -       Create tests for renderer           :2d
      -       Add to mermaid                      :1d
      -
      -       section Documentation
      -       Describe gantt syntax               :active, a1, after des1, 3d
      -       Add gantt diagram to demo page      :after a1  , 20h
      -       Add another diagram to demo page    :doc1, after a1  , 48h
      -
      -       section Last section
      -       Describe gantt syntax               :after doc1, 3d
      -       Add gantt diagram to demo page      :20h
      -       Add another diagram to demo page    :48h
      -```
      -
      -### State diagram
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -      stateDiagram
      -        [*] --> Active
      -
      -        state Active {
      -            [*] --> NumLockOff
      -            NumLockOff --> NumLockOn : EvNumLockPressed
      -            NumLockOn --> NumLockOff : EvNumLockPressed
      -            --
      -            [*] --> CapsLockOff
      -            CapsLockOff --> CapsLockOn : EvCapsLockPressed
      -            CapsLockOn --> CapsLockOff : EvCapsLockPressed
      -            --
      -            [*] --> ScrollLockOff
      -            ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
      -            ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
      -        }
      -        state SomethingElse {
      -          A --> B
      -          B --> A
      -        }
      -
      -        Active --> SomethingElse
      -        note right of SomethingElse : This is the note to the right.
      -
      -        SomethingElse --> [*]
      -
      -```
      -
      -```mermaid
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -      stateDiagram
      -        [*] --> Active
      -
      -        state Active {
      -            [*] --> NumLockOff
      -            NumLockOff --> NumLockOn : EvNumLockPressed
      -            NumLockOn --> NumLockOff : EvNumLockPressed
      -            --
      -            [*] --> CapsLockOff
      -            CapsLockOff --> CapsLockOn : EvCapsLockPressed
      -            CapsLockOn --> CapsLockOff : EvCapsLockPressed
      -            --
      -            [*] --> ScrollLockOff
      -            ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
      -            ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
      -        }
      -        state SomethingElse {
      -          A --> B
      -          B --> A
      -        }
      -
      -        Active --> SomethingElse
      -        note right of SomethingElse : This is the note to the right.
      -
      -        SomethingElse --> [*]
      -
      -```
      -
      -### State diagram (beta)
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -stateDiagram-v2
      -        [*] --> Active
      -
      -        state Active {
      -            [*] --> NumLockOff
      -            NumLockOff --> NumLockOn : EvNumLockPressed
      -            NumLockOn --> NumLockOff : EvNumLockPressed
      -            --
      -            [*] --> CapsLockOff
      -            CapsLockOff --> CapsLockOn : EvCapsLockPressed
      -            CapsLockOn --> CapsLockOff : EvCapsLockPressed
      -            --
      -            [*] --> ScrollLockOff
      -            ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
      -            ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
      -        }
      -        state SomethingElse {
      -          A --> B
      -          B --> A
      -        }
      -
      -        Active --> SomethingElse2
      -        note right of SomethingElse2 : This is the note to the right.
      -
      -        SomethingElse2 --> [*]
      -```
      -
      -```mermaid
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -stateDiagram-v2
      -        [*] --> Active
      -
      -        state Active {
      -            [*] --> NumLockOff
      -            NumLockOff --> NumLockOn : EvNumLockPressed
      -            NumLockOn --> NumLockOff : EvNumLockPressed
      -            --
      -            [*] --> CapsLockOff
      -            CapsLockOff --> CapsLockOn : EvCapsLockPressed
      -            CapsLockOn --> CapsLockOff : EvCapsLockPressed
      -            --
      -            [*] --> ScrollLockOff
      -            ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
      -            ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
      -        }
      -        state SomethingElse {
      -          A --> B
      -          B --> A
      -        }
      -
      -        Active --> SomethingElse2
      -        note right of SomethingElse2 : This is the note to the right.
      -
      -        SomethingElse2 --> [*]
      -```
      -
      -### Entity Relations diagram
      -
      -```mermaid-example
      -      erDiagram
      -        CUSTOMER }|..|{ DELIVERY-ADDRESS : has
      -        CUSTOMER ||--o{ ORDER : places
      -        CUSTOMER ||--o{ INVOICE : "liable for"
      -        DELIVERY-ADDRESS ||--o{ ORDER : receives
      -        INVOICE ||--|{ ORDER : covers
      -        ORDER ||--|{ ORDER-ITEM : includes
      -        PRODUCT-CATEGORY ||--|{ PRODUCT : contains
      -        PRODUCT ||--o{ ORDER-ITEM : "ordered in"
      -```
      -
      -```mermaid
      -      erDiagram
      -        CUSTOMER }|..|{ DELIVERY-ADDRESS : has
      -        CUSTOMER ||--o{ ORDER : places
      -        CUSTOMER ||--o{ INVOICE : "liable for"
      -        DELIVERY-ADDRESS ||--o{ ORDER : receives
      -        INVOICE ||--|{ ORDER : covers
      -        ORDER ||--|{ ORDER-ITEM : includes
      -        PRODUCT-CATEGORY ||--|{ PRODUCT : contains
      -        PRODUCT ||--o{ ORDER-ITEM : "ordered in"
      -```
      -
      -### User journey diagram
      -
      -```mermaid-example
      -journey
      -            title My working day
      -            section Go to work
      -              Make tea: 5: Me
      -              Go upstairs: 3: Me
      -              Do work: 1: Me, Cat
      -            section Go home
      -              Go downstairs: 5: Me
      -              Sit down: 5: Me
      -```
      -
      -```mermaid
      -journey
      -            title My working day
      -            section Go to work
      -              Make tea: 5: Me
      -              Go upstairs: 3: Me
      -              Do work: 1: Me, Cat
      -            section Go home
      -              Go downstairs: 5: Me
      -              Sit down: 5: Me
      -```
      +## Color and Color Calculation
      +
      +To ensure diagram readability, the default value of certain variables is calculated or derived from other variables. For example, `primaryBorderColor` is derived from the `primaryColor` variable. So if the `primaryColor` variable is customized, Mermaid will adjust `primaryBorderColor` automatically. Adjustments can mean a color inversion, a hue change, a darkening/lightening by 10%, etc.
      +
      +The theming engine will only recognize hex colors and not color names. So, the value `#ff0000` will work, but `red` will not.
      +
      +## Theme Variables
      +
      +| Variable             | Default value                      | Description                                                                                                                      |
      +| -------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
      +| darkMode             | false                              | Affects how derived colors are calculated. Set value to `true` for darkmode.                                                     |
      +| background           | #f4f4f4                            | Used to calculate color for items that should either be background colored or contrasting to the background                      |
      +| fontFamily           | trebuchet ms, verdana, arial       |                                                                                                                                  |
      +| fontSize             | 16px                               | Font size in pixels                                                                                                              |
      +| primaryColor         | #fff4dd                            | Color to be used as background in nodes, other colors will be derived from this                                                  |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| primaryTextColor     | calculated from darkMode #ddd/#333 | Color to be used as text color in nodes using `primaryColor`                                                                     |
      +| secondaryColor       | calculated from primaryColor       |                                                                                                                                  |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| secondaryBorderColor | calculated from secondaryColor     | Color to be used as border in nodes using `secondaryColor`                                                                       |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| secondaryTextColor   | calculated from secondaryColor     | Color to be used as text color in nodes using `secondaryColor`                                                                   |
      +| tertiaryColor        | calculated from primaryColor       |                                                                                                                                  |
      +| tertiaryBorderColor  | calculated from tertiaryColor      | Color to be used as border in nodes using `tertiaryColor`                                                                        |
      +| tertiaryTextColor    | calculated from tertiaryColor      | Color to be used as text color in nodes using `tertiaryColor`                                                                    |
      +| noteBkgColor         | #fff5ad                            | Color used as background in notes                                                                                                |
      +| noteTextColor        | #333                               | Text color in note rectangles                                                                                                    |
      +| noteBorderColor      | calculated from noteBkgColor       | Border color in note rectangles                                                                                                  |
      +| lineColor            | calculated from background         |                                                                                                                                  |
      +| textColor            | calculated from primaryTextColor   | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in Gantt diagram |
      +| mainBkg              | calculated from primaryColor       | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc                                  |
      +| errorBkgColor        | tertiaryColor                      | Color for syntax error message                                                                                                   |
      +| errorTextColor       | tertiaryTextColor                  | Color for syntax error message                                                                                                   |
      +
      +## Flowchart Variables
      +
      +| Variable            | Default value                  | Description                 |
      +| ------------------- | ------------------------------ | --------------------------- |
      +| nodeBorder          | primaryBorderColor             | Node Border Color           |
      +| clusterBkg          | tertiaryColor                  | Background in subgraphs     |
      +| clusterBorder       | tertiaryBorderColor            | Cluster Border Color        |
      +| defaultLinkColor    | lineColor                      | Link Color                  |
      +| titleColor          | tertiaryTextColor              | Title Color                 |
      +| edgeLabelBackground | calculated from secondaryColor |                             |
      +| nodeTextColor       | primaryTextColor               | Color for text inside Nodes |
      +
      +## Sequence Diagram Variables
      +
      +| Variable              | Default value                  | Description                 |
      +| --------------------- | ------------------------------ | --------------------------- |
      +| actorBkg              | mainBkg                        | Actor Background Color      |
      +| actorBorder           | primaryBorderColor             | Actor Border Color          |
      +| actorTextColor        | primaryTextColor               | Actor Text Color            |
      +| actorLineColor        | grey                           | Actor Line Color            |
      +| signalColor           | textColor                      | Signal Color                |
      +| signalTextColor       | textColor                      | Signal Text Color           |
      +| labelBoxBkgColor      | actorBkg                       | Label Box Background Color  |
      +| labelBoxBorderColor   | actorBorder                    | Label Box Border Color      |
      +| labelTextColor        | actorTextColor                 | Label Text Color            |
      +| loopTextColor         | actorTextColor                 | Loop Text Color             |
      +| activationBorderColor | calculated from secondaryColor | Activation Border Color     |
      +| activationBkgColor    | secondaryColor                 | Activation Background Color |
      +| sequenceNumberColor   | calculated from lineColor      | Sequence Number Color       |
      +
      +## State Colors
      +
      +| Variable      | Default value    | Description                                  |
      +| ------------- | ---------------- | -------------------------------------------- |
      +| labelColor    | primaryTextColor |                                              |
      +| altBackground | tertiaryColor    | Used for background in deep composite states |
      +
      +## Class Colors
      +
      +| Variable  | Default value | Description                     |
      +| --------- | ------------- | ------------------------------- |
      +| classText | textColor     | Color of Text in class diagrams |
      +
      +## User Journey Colors
      +
      +| Variable  | Default value                  | Description                             |
      +| --------- | ------------------------------ | --------------------------------------- |
      +| fillType0 | primaryColor                   | Fill for 1st section in journey diagram |
      +| fillType1 | secondaryColor                 | Fill for 2nd section in journey diagram |
      +| fillType2 | calculated from primaryColor   | Fill for 3rd section in journey diagram |
      +| fillType3 | calculated from secondaryColor | Fill for 4th section in journey diagram |
      +| fillType4 | calculated from primaryColor   | Fill for 5th section in journey diagram |
      +| fillType5 | calculated from secondaryColor | Fill for 6th section in journey diagram |
      +| fillType6 | calculated from primaryColor   | Fill for 7th section in journey diagram |
      +| fillType7 | calculated from secondaryColor | Fill for 8th section in journey diagram |
      diff --git a/packages/mermaid/src/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md
      index 78f3546cc0..2dcc9a5617 100644
      --- a/packages/mermaid/src/docs/config/theming.md
      +++ b/packages/mermaid/src/docs/config/theming.md
      @@ -1,30 +1,26 @@
       # Theme Configuration
       
      -With Version 8.7.0 Mermaid comes out with a system for dynamic and integrated configuration of themes. The intent is to increase the customizability and ease of styling for mermaid diagrams.
      +Dynamic and integrated theme configuration was introduced in Mermaid version 8.7.0.
       
      -The theme can be altered by changing the root level variable `theme` variable in the configuration. To change it for the whole site you must use the `initialize` call. To do it for just for a single diagram you can use the `%%init%%` directive
      +Themes can now be customized at the site-wide level, or on individual Mermaid diagrams. For site-wide theme customization, the `initialize` call is used. For diagram specific customization, the `init` directive is used.
       
      -Themes follow and build upon the Levels of Configuration, and employ `directives` to modify and create custom configurations, as they were introduced in Version [8.6.0](./8.6.0_docs.md).
      +## Available Themes
       
      -## Deployable Themes
      +1. **default** - This is the default theme for all diagrams.
       
      -The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls.
      +1. **neutral** - This theme is great for black and white documents that will be printed.
       
      -1. **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes.
      +1. **dark** - This theme goes well with dark-colored elements or dark-mode.
       
      -2. **forest**- A theme full of light greens that is easy on the eyes.
      +1. **forest** - This theme contains shades of green.
       
      -3. **dark**- A theme that would go well with other dark-colored elements.
      +1. **base** - This is the only theme that can be modified. Use this theme as the base for customizations.
       
      -4. **default**- The default theme for all diagrams.
      +## Site-wide Theme
       
      -5. **neutral**- The theme to be used for black and white printing.
      +To customize themes site-wide, call the `initialize` method on the `mermaidAPI`.
       
      -## Site-wide Themes
      -
      -Site-wide themes are declared via `initialize` by site owners.
      -
      -Example of `Initialize` call setting `theme` to `base`:
      +Example of `initialize` call setting `theme` to `base`:
       
       ```javascript
       mermaidAPI.initialize({
      @@ -33,230 +29,46 @@ mermaidAPI.initialize({
       });
       ```
       
      -**Notes**: Only site owners can use the `mermaidAPI.initialize` call, to set values. Site-Users will have to use `%%init%%` to modify or create the theme for their diagrams.
      +## Diagram-specific Themes
       
      -## Themes at the Local or Current Level
      +To customize the theme of an individual diagram, use the `init` directive.
       
      -When Generating a diagram using on a webpage that supports mermaid. It is also possible to override site-wide theme settings locally, for a specific diagram, using directives, as long as it is not prohibited by the `secure` array.
      +Example of `init` directive setting the `theme` to `forest`:
       
       ```mmd
      -%%{init: {'theme':'base'}}%%
      +%%{init: {'theme':'forest'}}%%
         graph TD
           a --> b
       ```
       
      -Here is an example of how `%%init%%` can set the theme to 'base', this assumes that `themeVariables` are set to default:
      -
      -```mermaid-example
      -%%{init: {'theme':'base'}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -# List of Themes
      -
      -# Customizing Themes with `themeVariables`
      -
      -The easiest way to make a custom theme is to start with the base theme, and just modify theme variables through `themeVariables`, via `%%init%%`.
      -
      -| Parameter      | Description                                                        | Type  | Required | Objects contained                  |
      -| -------------- | ------------------------------------------------------------------ | ----- | -------- | ---------------------------------- |
      -| themeVariables | Array containing objects, modifiable with the `%%init%%` directive | Array | Required | primaryColor, lineColor, textColor |
      -
      -**Here is an example of overriding `primaryColor` through `themeVariables` and giving everything a different look, using `%%init%%`.**
      -
      -```mermaid-example
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -**Notes:**
      -Leaving it empty will set all variable values to default.
      -
      -## Color and Color Calculation:
      -
      -Color definitions have certain interactions in mermaid, this is in order to ensure visibility for diagrams. Mermaid will adjust some variables automatically, when colors are changed in order to compensate and maintain readability.
      -
      -**The Default Value Column** to the right of the Variable column will denote the Variable paired/associated with the Variable on the left and the nature of this pairing or association. If it for instance says primaryColor it means that it gets primaryColor as default value. If it says "based on primaryColor" it means that it is calculated/ derived from primaryColor. This calculation can be primary color inversion, a change of hue, darkening or lightening by 10%, etc.
      -
      -You can create your own themes, by changing any of the given variables below. If you are using a dark background, set dark mode to true to adjust the colors. It is possible to override the calculations using the variable names below, with `%%init%%` if you wish to style it differently.
      -
      -## Theme Variables Reference Table
      -
      -```note
      -Variables that are unique to some diagrams can be affected by changes in Theme Variables
      -```
      -
      -| Variable             | Default/Base/Factor value      | Calc | Description                                                                                                                      |
      -| -------------------- | ------------------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------- |
      -| darkMode             | false                          |      | Boolean Value that dictates how to calculate colors. "true" will activate darkmode.                                              |
      -| background           | #f4f4f4                        |      | Used to calculate color for items that should either be background colored or contrasting to the background.                     |
      -| fontFamily           | "trebuchet ms", verdana, arial |      |                                                                                                                                  |
      -| fontSize             | 16px                           |      | Font Size, in pixels                                                                                                             |
      -| primaryColor         | #fff4dd                        |      | Color to be used as background in nodes, other colors will be derived from this                                                  |
      -| primaryBorderColor   | based on primaryColor          | \*   | Color to be used as border in nodes using primaryColor                                                                           |
      -| primaryTextColor     | based on darkMode #ddd/#333    | \*   | Color to be used as text color in nodes using primaryColor                                                                       |
      -| secondaryColor       | based on primaryColor          | \*   |                                                                                                                                  |
      -| secondaryBorderColor | based on secondaryColor        | \*   | Color to be used as border in nodes using secondaryColor                                                                         |
      -| secondaryTextColor   | based on secondaryColor        | \*   | Color to be used as text color in nodes using secondaryColor                                                                     |
      -| tertiaryColor        | based on primaryColor          | \*   |                                                                                                                                  |
      -| tertiaryBorderColor  | based on tertiaryColor         | \*   | Color to be used as border in nodes using tertiaryColor                                                                          |
      -| tertiaryTextColor    | based on tertiaryColor         | \*   | Color to be used as text color in nodes using tertiaryColor                                                                      |
      -| noteBkgColor         | #fff5ad                        |      | Color used as background in notes                                                                                                |
      -| noteTextColor        | #333                           |      | Text color in note rectangles.                                                                                                   |
      -| noteBorderColor      | based on noteBkgColor          | \*   | Border color in note rectangles.                                                                                                 |
      -| lineColor            | based on background            | \*   |                                                                                                                                  |
      -| textColor            | based on primaryTextColor      | \*   | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in gantt diagram |
      -| mainBkg              | based on primaryColor          | \*   | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc                                  |
      -| errorBkgColor        | tertiaryColor                  | \*   | Color for syntax error message                                                                                                   |
      -| errorTextColor       | tertiaryTextColor              | \*   | Color for syntax error message                                                                                                   |
      -
      -# What follows are Variables, specific to different diagrams and charts.
      -
      -## Some Theme Variables serve as, or affect the Default Values for Specific Diagram Variables, unless changed using `%%init%%` .
      -
      -## Flowchart
      -
      -| Variable            | Default/ Associated Value | Calc | Description                  |
      -| ------------------- | ------------------------- | ---- | ---------------------------- |
      -| nodeBorder          | primaryBorderColor        | \*   | Node Border Color            |
      -| clusterBkg          | tertiaryColor             | \*   | Background in subgraphs      |
      -| clusterBorder       | tertiaryBorderColor       | \*   | Cluster Border Color         |
      -| defaultLinkColor    | lineColor                 | \*   | Link Color                   |
      -| titleColor          | tertiaryTextColor         | \*   | Title Color                  |
      -| edgeLabelBackground | based on secondaryColor   | \*   |                              |
      -| nodeTextColor       | primaryTextColor          | \*   | Color for text inside Nodes. |
      -
      -# sequence diagram
      -
      -| name                  | Default value           | Calc | Description                 |
      -| --------------------- | ----------------------- | ---- | --------------------------- |
      -| actorBorder           | primaryBorderColor      | \*   | Actor Border Color          |
      -| actorBkg              | mainBkg                 | \*   | Actor Background Color      |
      -| actorTextColor        | primaryTextColor        | \*   | Actor Text Color            |
      -| actorLineColor        | grey                    | \*   | Actor Line Color            |
      -| signalColor           | textColor               | \*   | Signal Color                |
      -| signalTextColor       | textColor               | \*   | Signal Text Color           |
      -| labelBoxBkgColor      | actorBkg                | \*   | Label Box Background Color  |
      -| labelBoxBorderColor   | actorBorder             | \*   | Label Box Border Color      |
      -| labelTextColor        | actorTextColor          | \*   | Label Text Color            |
      -| loopTextColor         | actorTextColor          | \*   | Loop ext Color              |
      -| activationBorderColor | based on secondaryColor | \*   | Activation Border Color     |
      -| activationBkgColor    | secondaryColor          | \*   | Activation Background Color |
      -| sequenceNumberColor   | based on lineColor      | \*   | Sequence Number Color       |
      -
      -# state colors
      -
      -| name          | Default value    | Calc | Description                                  |
      -| ------------- | ---------------- | ---- | -------------------------------------------- |
      -| labelColor    | primaryTextColor | \*   |                                              |
      -| altBackground | tertiaryColor    | \*   | Used for background in deep composite states |
      -
      -# class colors
      -
      -| name      | Default value | Calc | Description                     |
      -| --------- | ------------- | ---- | ------------------------------- |
      -| classText | textColor     | \*   | Color of Text in class diagrams |
      -
      -# User journey colors
      -
      -| name      | Default value           | Calc | Description                             |
      -| --------- | ----------------------- | ---- | --------------------------------------- |
      -| fillType0 | primaryColor            | \*   | Fill for 1st section in journey diagram |
      -| fillType1 | secondaryColor          | \*   | Fill for 2nd section in journey diagram |
      -| fillType2 | based on primaryColor   | \*   | Fill for 3rd section in journey diagram |
      -| fillType3 | based on secondaryColor | \*   | Fill for 4th section in journey diagram |
      -| fillType4 | based on primaryColor   | \*   | Fill for 5th section in journey diagram |
      -| fillType5 | based on secondaryColor | \*   | Fill for 6th section in journey diagram |
      -| fillType6 | based on primaryColor   | \*   | Fill for 7th section in journey diagram |
      -| fillType7 | based on secondaryColor | \*   | Fill for 8th section in journey diagram |
      -
      -\*\*Notes: Values are meant to create an alternating look.
      -
      -# Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`.
      -
      -```mermaid-example
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -\*\*This got a bit too dark and bit too colorful. With some easy steps this can be fixed:
      +> **Reminder**: the only theme that can be customed is the `base` theme. The following section covers how to use `themeVariables` for customizations.
       
      -- Make the primary color a little lighter
      -- set the tertiary color to a reddish shade as well
      -- make the edge label background differ from the subgraph by setting the edgeLabelBackground
      +## Customizing Themes with `themeVariables`
       
      -```mermaid-example
      -%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%%
      -        graph TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[/Another/]
      -          C ==>|One| D[Laptop]
      -          C -->|Two| E[iPhone]
      -          C -->|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -The Theming Engine does not admit color codes and will only accept proper color values. Color Names is not supported so for instance, the color value 'red' will not work, but '#ff0000' will work.
      -
      -# Common theming activities
      +To make a custom theme, modify `themeVariables` via `init`.
       
      -## How to change the color of the arrows
      +You will need to use the [base](#available-themes) theme as it is the only modifiable theme.
       
      -# Examples:
      +| Parameter      | Description                                                        | Type   | Properties                         |
      +| -------------- | ------------------------------------------------------------------ | ------ | ---------------------------------- |
      +| themeVariables | Modifiable with the `init` directive | Object | `primaryColor`, `primaryTextColor`, `lineColor` ([see full list](#theme-variables-reference-table)) |
       
      -When adjusting a theme it might be helpful to look at how your preferred theme goes with the diagrams, to evaluate whether everything is visible and looks good.
      -In the following examples, the directive `init` is used, with the `theme` being declared as `base`. For more information on using directives, read the documentation for [Version 8.6.0](/8.6.0_docs.md)
      -
      -### Flowchart
      +Example of modifying `themeVariables` using the `init` directive:
       
       ```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      +%%{
      +  init: {
      +    'theme': 'base',
      +    'themeVariables': {
      +      'primaryColor': '#BB2528',
      +      'primaryTextColor': '#fff',
      +      'primaryBorderColor': '#7C0000',
      +      'lineColor': '#F8B229',
      +      'secondaryColor': '#006100',
      +      'tertiaryColor': '#fff'
      +    }
      +  }
      +}%%
               graph TD
                 A[Christmas] -->|Get money| B(Go shopping)
                 B --> C{Let me think}
      @@ -273,194 +85,93 @@ In the following examples, the directive `init` is used, with the `theme` being
                 end
       ```
       
      -### Flowchart (beta)
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -        flowchart TD
      -          A[Christmas] -->|Get money| B(Go shopping)
      -          B --> C{Let me think}
      -          B --> G[Another]
      -          C ==>|One| D[Laptop]
      -          C x--x|Two| E[iPhone]
      -          C o--o|Three| F[fa:fa-car Car]
      -          subgraph section
      -            C
      -            D
      -            E
      -            F
      -            G
      -          end
      -```
      -
      -### Sequence diagram
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -        sequenceDiagram
      -          autonumber
      -          par Action 1
      -            Alice->>John: Hello John, how are you?
      -          and Action 2
      -            Alice->>Bob: Hello Bob, how are you?
      -          end
      -          Alice->>+John: Hello John, how are you?
      -          Alice->>+John: John, can you hear me?
      -          John-->>-Alice: Hi Alice, I can hear you!
      -          Note right of John: John is perceptive
      -          John-->>-Alice: I feel great!
      -              loop Every minute
      -                John-->Alice: Great!
      -            end
      -```
      -
      -### Class diagram
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -
      -classDiagram
      -	Animal "1" <|-- Duck
      -	Animal <|-- Fish
      -	Animal <--o Zebra
      -	Animal : +int age
      -	Animal : +String gender
      -	Animal: +isMammal()
      -	Animal: +mate()
      -	class Duck{
      -		+String beakColor
      -		+swim()
      -		+quack()
      -	}
      -	class Fish{
      -		-int sizeInFeet
      -		-canEat()
      -	}
      -	class Zebra{
      -		+bool is_wild
      -		+run()
      -	}
      -```
      -
      -### Gantt
      -
      -```mermaid-example
      -gantt
      -       dateFormat                YYYY-MM-DD
      -       title                     Adding GANTT diagram functionality to mermaid
      -       excludes                  :excludes the named dates/days from being included in a charted task..
      -       section A section
      -       Completed task            :done,    des1, 2014-01-06,2014-01-08
      -       Active task               :active,  des2, 2014-01-09, 3d
      -       Future task               :         des3, after des2, 5d
      -       Future task2              :         des4, after des3, 5d
      -
      -       section Critical tasks
      -       Completed task in the critical line :crit, done, 2014-01-06,24h
      -       Implement parser and jison          :crit, done, after des1, 2d
      -       Create tests for parser             :crit, active, 3d
      -       Future task in critical line        :crit, 5d
      -       Create tests for renderer           :2d
      -       Add to mermaid                      :1d
      -
      -       section Documentation
      -       Describe gantt syntax               :active, a1, after des1, 3d
      -       Add gantt diagram to demo page      :after a1  , 20h
      -       Add another diagram to demo page    :doc1, after a1  , 48h
      -
      -       section Last section
      -       Describe gantt syntax               :after doc1, 3d
      -       Add gantt diagram to demo page      :20h
      -       Add another diagram to demo page    :48h
      -```
      -
      -### State diagram
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -      stateDiagram
      -        [*] --> Active
      -
      -        state Active {
      -            [*] --> NumLockOff
      -            NumLockOff --> NumLockOn : EvNumLockPressed
      -            NumLockOn --> NumLockOff : EvNumLockPressed
      -            --
      -            [*] --> CapsLockOff
      -            CapsLockOff --> CapsLockOn : EvCapsLockPressed
      -            CapsLockOn --> CapsLockOff : EvCapsLockPressed
      -            --
      -            [*] --> ScrollLockOff
      -            ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
      -            ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
      -        }
      -        state SomethingElse {
      -          A --> B
      -          B --> A
      -        }
      -
      -        Active --> SomethingElse
      -        note right of SomethingElse : This is the note to the right.
      -
      -        SomethingElse --> [*]
      -
      -```
      -
      -### State diagram (beta)
      -
      -```mermaid-example
      -%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
      -stateDiagram-v2
      -        [*] --> Active
      -
      -        state Active {
      -            [*] --> NumLockOff
      -            NumLockOff --> NumLockOn : EvNumLockPressed
      -            NumLockOn --> NumLockOff : EvNumLockPressed
      -            --
      -            [*] --> CapsLockOff
      -            CapsLockOff --> CapsLockOn : EvCapsLockPressed
      -            CapsLockOn --> CapsLockOff : EvCapsLockPressed
      -            --
      -            [*] --> ScrollLockOff
      -            ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
      -            ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
      -        }
      -        state SomethingElse {
      -          A --> B
      -          B --> A
      -        }
      -
      -        Active --> SomethingElse2
      -        note right of SomethingElse2 : This is the note to the right.
      -
      -        SomethingElse2 --> [*]
      -```
      -
      -### Entity Relations diagram
      -
      -```mermaid-example
      -      erDiagram
      -        CUSTOMER }|..|{ DELIVERY-ADDRESS : has
      -        CUSTOMER ||--o{ ORDER : places
      -        CUSTOMER ||--o{ INVOICE : "liable for"
      -        DELIVERY-ADDRESS ||--o{ ORDER : receives
      -        INVOICE ||--|{ ORDER : covers
      -        ORDER ||--|{ ORDER-ITEM : includes
      -        PRODUCT-CATEGORY ||--|{ PRODUCT : contains
      -        PRODUCT ||--o{ ORDER-ITEM : "ordered in"
      -```
      -
      -### User journey diagram
      -
      -```mermaid-example
      -journey
      -            title My working day
      -            section Go to work
      -              Make tea: 5: Me
      -              Go upstairs: 3: Me
      -              Do work: 1: Me, Cat
      -            section Go home
      -              Go downstairs: 5: Me
      -              Sit down: 5: Me
      -```
      +## Color and Color Calculation
      +
      +To ensure diagram readability, the default value of certain variables is calculated or derived from other variables. For example, `primaryBorderColor` is derived from the `primaryColor` variable. So if the `primaryColor` variable is customized, Mermaid will adjust `primaryBorderColor` automatically. Adjustments can mean a color inversion, a hue change, a darkening/lightening by 10%, etc.
      +
      +The theming engine will only recognize hex colors and not color names. So, the value `#ff0000` will work, but `red` will not.
      +
      +## Theme Variables
      +
      +| Variable             | Default value                          | Description                                                                                                                      |
      +| -------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
      +| darkMode             | false                                  | Affects how derived colors are calculated. Set value to `true` for darkmode.                                                     |
      +| background           | #f4f4f4                                | Used to calculate color for items that should either be background colored or contrasting to the background                      |
      +| fontFamily           | trebuchet ms, verdana, arial           |                                                                                                                                  |
      +| fontSize             | 16px                                   | Font size in pixels                                                                                                              |
      +| primaryColor         | #fff4dd                                | Color to be used as background in nodes, other colors will be derived from this                                                  |
      +| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| primaryTextColor     | calculated from darkMode #ddd/#333     | Color to be used as text color in nodes using `primaryColor`                                                                     |
      +| secondaryColor       | calculated from primaryColor           |                                                                                                                                  |
      +| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| secondaryBorderColor | calculated from secondaryColor         | Color to be used as border in nodes using `secondaryColor`                                                                       |
      +| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| secondaryTextColor   | calculated from secondaryColor         | Color to be used as text color in nodes using `secondaryColor`                                                                   |
      +| tertiaryColor        | calculated from primaryColor           |                                                                                                                                  |
      +| tertiaryBorderColor  | calculated from tertiaryColor          | Color to be used as border in nodes using `tertiaryColor`                                                                        |
      +| tertiaryTextColor    | calculated from tertiaryColor          | Color to be used as text color in nodes using `tertiaryColor`                                                                    |
      +| noteBkgColor         | #fff5ad                                | Color used as background in notes                                                                                                |
      +| noteTextColor        | #333                                   | Text color in note rectangles                                                                                                    |
      +| noteBorderColor      | calculated from noteBkgColor           | Border color in note rectangles                                                                                                  |
      +| lineColor            | calculated from background             |                                                                                                                                  |
      +| textColor            | calculated from primaryTextColor       | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in Gantt diagram |
      +| mainBkg              | calculated from primaryColor           | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc                                  |
      +| errorBkgColor        | tertiaryColor                          | Color for syntax error message                                                                                                   |
      +| errorTextColor       | tertiaryTextColor                      | Color for syntax error message                                                                                                   |
      +
      +## Flowchart Variables
      +
      +| Variable            | Default value                    | Description                  |
      +| ------------------- | -------------------------------- | ---------------------------- |
      +| nodeBorder          | primaryBorderColor               | Node Border Color            |
      +| clusterBkg          | tertiaryColor                    | Background in subgraphs      |
      +| clusterBorder       | tertiaryBorderColor              | Cluster Border Color         |
      +| defaultLinkColor    | lineColor                        | Link Color                   |
      +| titleColor          | tertiaryTextColor                | Title Color                  |
      +| edgeLabelBackground | calculated from secondaryColor   |                              |
      +| nodeTextColor       | primaryTextColor                 | Color for text inside Nodes  |
      +
      +## Sequence Diagram Variables
      +
      +| Variable              | Default value                  | Description                 |
      +| --------------------- | ------------------------------ | --------------------------- |
      +| actorBkg              | mainBkg                        | Actor Background Color      |
      +| actorBorder           | primaryBorderColor             | Actor Border Color          |
      +| actorTextColor        | primaryTextColor               | Actor Text Color            |
      +| actorLineColor        | grey                           | Actor Line Color            |
      +| signalColor           | textColor                      | Signal Color                |
      +| signalTextColor       | textColor                      | Signal Text Color           |
      +| labelBoxBkgColor      | actorBkg                       | Label Box Background Color  |
      +| labelBoxBorderColor   | actorBorder                    | Label Box Border Color      |
      +| labelTextColor        | actorTextColor                 | Label Text Color            |
      +| loopTextColor         | actorTextColor                 | Loop Text Color              |
      +| activationBorderColor | calculated from secondaryColor | Activation Border Color     |
      +| activationBkgColor    | secondaryColor                 | Activation Background Color |
      +| sequenceNumberColor   | calculated from lineColor      | Sequence Number Color       |
      +
      +## State Colors
      +
      +| Variable      | Default value    | Description                                  |
      +| ------------- | ---------------- | -------------------------------------------- |
      +| labelColor    | primaryTextColor |                                              |
      +| altBackground | tertiaryColor    | Used for background in deep composite states |
      +
      +## Class Colors
      +
      +| Variable  | Default value | Description                     |
      +| --------- | ------------- | ------------------------------- |
      +| classText | textColor     | Color of Text in class diagrams |
      +
      +## User Journey Colors
      +
      +| Variable  | Default value                  | Description                             |
      +| --------- | ------------------------------ | --------------------------------------- |
      +| fillType0 | primaryColor                   | Fill for 1st section in journey diagram |
      +| fillType1 | secondaryColor                 | Fill for 2nd section in journey diagram |
      +| fillType2 | calculated from primaryColor   | Fill for 3rd section in journey diagram |
      +| fillType3 | calculated from secondaryColor | Fill for 4th section in journey diagram |
      +| fillType4 | calculated from primaryColor   | Fill for 5th section in journey diagram |
      +| fillType5 | calculated from secondaryColor | Fill for 6th section in journey diagram |
      +| fillType6 | calculated from primaryColor   | Fill for 7th section in journey diagram |
      +| fillType7 | calculated from secondaryColor | Fill for 8th section in journey diagram |
      \ No newline at end of file
      
      From 24560b7d1329e9f7f239659a3dda4f67a15f91c0 Mon Sep 17 00:00:00 2001
      From: steph 
      Date: Sun, 4 Dec 2022 21:51:29 -0800
      Subject: [PATCH 0770/1038] fix lint
      
      ---
       packages/mermaid/src/docs/config/theming.md | 78 ++++++++++-----------
       1 file changed, 39 insertions(+), 39 deletions(-)
      
      diff --git a/packages/mermaid/src/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md
      index 2dcc9a5617..02b0c9a1c6 100644
      --- a/packages/mermaid/src/docs/config/theming.md
      +++ b/packages/mermaid/src/docs/config/theming.md
      @@ -49,8 +49,8 @@ To make a custom theme, modify `themeVariables` via `init`.
       
       You will need to use the [base](#available-themes) theme as it is the only modifiable theme.
       
      -| Parameter      | Description                                                        | Type   | Properties                         |
      -| -------------- | ------------------------------------------------------------------ | ------ | ---------------------------------- |
      +| Parameter      | Description                          | Type   | Properties                                                                                          |
      +| -------------- | ------------------------------------ | ------ | --------------------------------------------------------------------------------------------------- |
       | themeVariables | Modifiable with the `init` directive | Object | `primaryColor`, `primaryTextColor`, `lineColor` ([see full list](#theme-variables-reference-table)) |
       
       Example of modifying `themeVariables` using the `init` directive:
      @@ -93,44 +93,44 @@ The theming engine will only recognize hex colors and not color names. So, the v
       
       ## Theme Variables
       
      -| Variable             | Default value                          | Description                                                                                                                      |
      -| -------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
      -| darkMode             | false                                  | Affects how derived colors are calculated. Set value to `true` for darkmode.                                                     |
      -| background           | #f4f4f4                                | Used to calculate color for items that should either be background colored or contrasting to the background                      |
      -| fontFamily           | trebuchet ms, verdana, arial           |                                                                                                                                  |
      -| fontSize             | 16px                                   | Font size in pixels                                                                                                              |
      -| primaryColor         | #fff4dd                                | Color to be used as background in nodes, other colors will be derived from this                                                  |
      -| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      -| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      -| primaryTextColor     | calculated from darkMode #ddd/#333     | Color to be used as text color in nodes using `primaryColor`                                                                     |
      -| secondaryColor       | calculated from primaryColor           |                                                                                                                                  |
      -| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      -| secondaryBorderColor | calculated from secondaryColor         | Color to be used as border in nodes using `secondaryColor`                                                                       |
      -| primaryBorderColor   | calculated from primaryColor           | Color to be used as border in nodes using `primaryColor`                                                                         |
      -| secondaryTextColor   | calculated from secondaryColor         | Color to be used as text color in nodes using `secondaryColor`                                                                   |
      -| tertiaryColor        | calculated from primaryColor           |                                                                                                                                  |
      -| tertiaryBorderColor  | calculated from tertiaryColor          | Color to be used as border in nodes using `tertiaryColor`                                                                        |
      -| tertiaryTextColor    | calculated from tertiaryColor          | Color to be used as text color in nodes using `tertiaryColor`                                                                    |
      -| noteBkgColor         | #fff5ad                                | Color used as background in notes                                                                                                |
      -| noteTextColor        | #333                                   | Text color in note rectangles                                                                                                    |
      -| noteBorderColor      | calculated from noteBkgColor           | Border color in note rectangles                                                                                                  |
      -| lineColor            | calculated from background             |                                                                                                                                  |
      -| textColor            | calculated from primaryTextColor       | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in Gantt diagram |
      -| mainBkg              | calculated from primaryColor           | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc                                  |
      -| errorBkgColor        | tertiaryColor                          | Color for syntax error message                                                                                                   |
      -| errorTextColor       | tertiaryTextColor                      | Color for syntax error message                                                                                                   |
      +| Variable             | Default value                      | Description                                                                                                                      |
      +| -------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
      +| darkMode             | false                              | Affects how derived colors are calculated. Set value to `true` for darkmode.                                                     |
      +| background           | #f4f4f4                            | Used to calculate color for items that should either be background colored or contrasting to the background                      |
      +| fontFamily           | trebuchet ms, verdana, arial       |                                                                                                                                  |
      +| fontSize             | 16px                               | Font size in pixels                                                                                                              |
      +| primaryColor         | #fff4dd                            | Color to be used as background in nodes, other colors will be derived from this                                                  |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| primaryTextColor     | calculated from darkMode #ddd/#333 | Color to be used as text color in nodes using `primaryColor`                                                                     |
      +| secondaryColor       | calculated from primaryColor       |                                                                                                                                  |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| secondaryBorderColor | calculated from secondaryColor     | Color to be used as border in nodes using `secondaryColor`                                                                       |
      +| primaryBorderColor   | calculated from primaryColor       | Color to be used as border in nodes using `primaryColor`                                                                         |
      +| secondaryTextColor   | calculated from secondaryColor     | Color to be used as text color in nodes using `secondaryColor`                                                                   |
      +| tertiaryColor        | calculated from primaryColor       |                                                                                                                                  |
      +| tertiaryBorderColor  | calculated from tertiaryColor      | Color to be used as border in nodes using `tertiaryColor`                                                                        |
      +| tertiaryTextColor    | calculated from tertiaryColor      | Color to be used as text color in nodes using `tertiaryColor`                                                                    |
      +| noteBkgColor         | #fff5ad                            | Color used as background in notes                                                                                                |
      +| noteTextColor        | #333                               | Text color in note rectangles                                                                                                    |
      +| noteBorderColor      | calculated from noteBkgColor       | Border color in note rectangles                                                                                                  |
      +| lineColor            | calculated from background         |                                                                                                                                  |
      +| textColor            | calculated from primaryTextColor   | Text in diagram over the background for instance text on labels and on signals in sequence diagram or the title in Gantt diagram |
      +| mainBkg              | calculated from primaryColor       | Background in flowchart objects like rects/circles, class diagram classes, sequence diagram etc                                  |
      +| errorBkgColor        | tertiaryColor                      | Color for syntax error message                                                                                                   |
      +| errorTextColor       | tertiaryTextColor                  | Color for syntax error message                                                                                                   |
       
       ## Flowchart Variables
       
      -| Variable            | Default value                    | Description                  |
      -| ------------------- | -------------------------------- | ---------------------------- |
      -| nodeBorder          | primaryBorderColor               | Node Border Color            |
      -| clusterBkg          | tertiaryColor                    | Background in subgraphs      |
      -| clusterBorder       | tertiaryBorderColor              | Cluster Border Color         |
      -| defaultLinkColor    | lineColor                        | Link Color                   |
      -| titleColor          | tertiaryTextColor                | Title Color                  |
      -| edgeLabelBackground | calculated from secondaryColor   |                              |
      -| nodeTextColor       | primaryTextColor                 | Color for text inside Nodes  |
      +| Variable            | Default value                  | Description                 |
      +| ------------------- | ------------------------------ | --------------------------- |
      +| nodeBorder          | primaryBorderColor             | Node Border Color           |
      +| clusterBkg          | tertiaryColor                  | Background in subgraphs     |
      +| clusterBorder       | tertiaryBorderColor            | Cluster Border Color        |
      +| defaultLinkColor    | lineColor                      | Link Color                  |
      +| titleColor          | tertiaryTextColor              | Title Color                 |
      +| edgeLabelBackground | calculated from secondaryColor |                             |
      +| nodeTextColor       | primaryTextColor               | Color for text inside Nodes |
       
       ## Sequence Diagram Variables
       
      @@ -145,7 +145,7 @@ The theming engine will only recognize hex colors and not color names. So, the v
       | labelBoxBkgColor      | actorBkg                       | Label Box Background Color  |
       | labelBoxBorderColor   | actorBorder                    | Label Box Border Color      |
       | labelTextColor        | actorTextColor                 | Label Text Color            |
      -| loopTextColor         | actorTextColor                 | Loop Text Color              |
      +| loopTextColor         | actorTextColor                 | Loop Text Color             |
       | activationBorderColor | calculated from secondaryColor | Activation Border Color     |
       | activationBkgColor    | secondaryColor                 | Activation Background Color |
       | sequenceNumberColor   | calculated from lineColor      | Sequence Number Color       |
      @@ -174,4 +174,4 @@ The theming engine will only recognize hex colors and not color names. So, the v
       | fillType4 | calculated from primaryColor   | Fill for 5th section in journey diagram |
       | fillType5 | calculated from secondaryColor | Fill for 6th section in journey diagram |
       | fillType6 | calculated from primaryColor   | Fill for 7th section in journey diagram |
      -| fillType7 | calculated from secondaryColor | Fill for 8th section in journey diagram |
      \ No newline at end of file
      +| fillType7 | calculated from secondaryColor | Fill for 8th section in journey diagram |
      
      From f0aea0e6af42347f82675ac09186248329fdfff0 Mon Sep 17 00:00:00 2001
      From: steph 
      Date: Sun, 4 Dec 2022 22:04:20 -0800
      Subject: [PATCH 0771/1038] fix cspell
      
      ---
       cSpell.json                                 | 1 +
       docs/config/theming.md                      | 2 +-
       packages/mermaid/src/docs/config/theming.md | 2 +-
       3 files changed, 3 insertions(+), 2 deletions(-)
      
      diff --git a/cSpell.json b/cSpell.json
      index 08fce1d1c0..a4af6c7857 100644
      --- a/cSpell.json
      +++ b/cSpell.json
      @@ -59,6 +59,7 @@
           "playfair",
           "podlite",
           "ranksep",
      +    "rect",
           "redmine",
           "sandboxed",
           "setupgraphviewbox",
      diff --git a/docs/config/theming.md b/docs/config/theming.md
      index 6c12ee75fd..b34913af56 100644
      --- a/docs/config/theming.md
      +++ b/docs/config/theming.md
      @@ -137,7 +137,7 @@ The theming engine will only recognize hex colors and not color names. So, the v
       
       | Variable             | Default value                      | Description                                                                                                                      |
       | -------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
      -| darkMode             | false                              | Affects how derived colors are calculated. Set value to `true` for darkmode.                                                     |
      +| darkMode             | false                              | Affects how derived colors are calculated. Set value to `true` for dark mode.                                                    |
       | background           | #f4f4f4                            | Used to calculate color for items that should either be background colored or contrasting to the background                      |
       | fontFamily           | trebuchet ms, verdana, arial       |                                                                                                                                  |
       | fontSize             | 16px                               | Font size in pixels                                                                                                              |
      diff --git a/packages/mermaid/src/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md
      index 02b0c9a1c6..2d4da9530c 100644
      --- a/packages/mermaid/src/docs/config/theming.md
      +++ b/packages/mermaid/src/docs/config/theming.md
      @@ -95,7 +95,7 @@ The theming engine will only recognize hex colors and not color names. So, the v
       
       | Variable             | Default value                      | Description                                                                                                                      |
       | -------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
      -| darkMode             | false                              | Affects how derived colors are calculated. Set value to `true` for darkmode.                                                     |
      +| darkMode             | false                              | Affects how derived colors are calculated. Set value to `true` for dark mode.                                                    |
       | background           | #f4f4f4                            | Used to calculate color for items that should either be background colored or contrasting to the background                      |
       | fontFamily           | trebuchet ms, verdana, arial       |                                                                                                                                  |
       | fontSize             | 16px                               | Font size in pixels                                                                                                              |
      
      From 2cce562bc43892afe5ec673b273d1c302e458b8d Mon Sep 17 00:00:00 2001
      From: steph 
      Date: Sun, 4 Dec 2022 22:10:33 -0800
      Subject: [PATCH 0772/1038] fix cspell
      
      ---
       cSpell.json | 1 +
       1 file changed, 1 insertion(+)
      
      diff --git a/cSpell.json b/cSpell.json
      index a4af6c7857..0849dc1d0f 100644
      --- a/cSpell.json
      +++ b/cSpell.json
      @@ -60,6 +60,7 @@
           "podlite",
           "ranksep",
           "rect",
      +    "rects",
           "redmine",
           "sandboxed",
           "setupgraphviewbox",
      
      From 49ca2e358897ab366ac008b89603025fcf188aa0 Mon Sep 17 00:00:00 2001
      From: BD103 <59022059+BD103@users.noreply.github.com>
      Date: Mon, 5 Dec 2022 17:41:30 -0500
      Subject: [PATCH 0773/1038] feat: add links to theme listing
      
      ---
       packages/mermaid/src/docs/config/theming.md | 10 +++++-----
       1 file changed, 5 insertions(+), 5 deletions(-)
      
      diff --git a/packages/mermaid/src/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md
      index 78f3546cc0..b9c5d08500 100644
      --- a/packages/mermaid/src/docs/config/theming.md
      +++ b/packages/mermaid/src/docs/config/theming.md
      @@ -10,15 +10,15 @@ Themes follow and build upon the Levels of Configuration, and employ `directives
       
       The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls.
       
      -1. **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes.
      +1. [**base**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-base.js) - Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes.
       
      -2. **forest**- A theme full of light greens that is easy on the eyes.
      +2. [**forest**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-forest.js) - A theme full of light greens that is easy on the eyes.
       
      -3. **dark**- A theme that would go well with other dark-colored elements.
      +3. [**dark**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-dark.js) - A theme that would go well with other dark-colored elements.
       
      -4. **default**- The default theme for all diagrams.
      +4. [**default**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-default.js) - The default theme for all diagrams.
       
      -5. **neutral**- The theme to be used for black and white printing.
      +5. [**neutral**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-neutral.js) - The theme to be used for black and white printing.
       
       ## Site-wide Themes
       
      
      From 7a086890fd180545f774a82ad08e15a0f2939894 Mon Sep 17 00:00:00 2001
      From: MrCoder 
      Date: Tue, 6 Dec 2022 19:44:14 +1100
      Subject: [PATCH 0774/1038] Made mermaidConfig a local variable so that it
       cannot be shared cross rendering.
      
      ---
       .../mermaid/src/docs/.vitepress/theme/Mermaid.vue     | 11 +++++------
       packages/mermaid/src/docs/.vitepress/theme/mermaid.ts |  4 +---
       2 files changed, 6 insertions(+), 9 deletions(-)
      
      diff --git a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue
      index c991416019..566543001f 100644
      --- a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue
      +++ b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue
      @@ -20,11 +20,6 @@ const props = defineProps({
       const svg = ref(null);
       let mut = null;
       
      -const mermaidConfig = {
      -  securityLevel: 'loose',
      -  startOnLoad: false,
      -};
      -
       onMounted(async () => {
         mut = new MutationObserver(() => renderChart());
         mut.observe(document.documentElement, { attributes: true });
      @@ -58,7 +53,11 @@ onUnmounted(() => mut.disconnect());
       const renderChart = async () => {
         console.log('rendering chart' + props.id + props.graph);
         const hasDarkClass = document.documentElement.classList.contains('dark');
      -  mermaidConfig.theme = hasDarkClass ? 'dark' : 'default';
      +  const mermaidConfig = {
      +        securityLevel: 'loose',
      +        startOnLoad: false,
      +        theme: hasDarkClass ? 'dark' : 'default',
      +      };
       
         console.log({ mermaidConfig });
         let svgCode = await render(props.id, decodeURIComponent(props.graph), mermaidConfig);
      diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts
      index fef090ea92..b287346f94 100644
      --- a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts
      +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts
      @@ -8,9 +8,7 @@ try {
       }
       
       export const render = async (id: string, code: string, config: MermaidConfig): Promise => {
      -  // make a clone of config, so we don't mutate the original
      -  const mermaidConfig = { ...config };
      -  mermaid.initialize(mermaidConfig);
      +  mermaid.initialize(config);
         const svg = await mermaid.renderAsync(id, code);
         return svg;
       };
      
      From fdf261bda3eed435fde103a268c1d74f70fce628 Mon Sep 17 00:00:00 2001
      From: Sidharth Vinod 
      Date: Tue, 6 Dec 2022 15:53:36 +0530
      Subject: [PATCH 0775/1038] chore: Format Mermaid.vue
      
      ---
       packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue | 8 ++++----
       1 file changed, 4 insertions(+), 4 deletions(-)
      
      diff --git a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue
      index 566543001f..85c13393c2 100644
      --- a/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue
      +++ b/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue
      @@ -54,10 +54,10 @@ const renderChart = async () => {
         console.log('rendering chart' + props.id + props.graph);
         const hasDarkClass = document.documentElement.classList.contains('dark');
         const mermaidConfig = {
      -        securityLevel: 'loose',
      -        startOnLoad: false,
      -        theme: hasDarkClass ? 'dark' : 'default',
      -      };
      +    securityLevel: 'loose',
      +    startOnLoad: false,
      +    theme: hasDarkClass ? 'dark' : 'default',
      +  };
       
         console.log({ mermaidConfig });
         let svgCode = await render(props.id, decodeURIComponent(props.graph), mermaidConfig);
      
      From 4dadf8a72da15f2236c26989c1a9f55b917f8025 Mon Sep 17 00:00:00 2001
      From: Maho Pacheco 
      Date: Tue, 6 Dec 2022 10:38:21 -0800
      Subject: [PATCH 0776/1038] Adding support for parentheses
      
      ---
       cypress/integration/rendering/erDiagram.spec.js    | 14 ++++++++++++++
       docs/syntax/entityRelationshipDiagram.md           |  8 +++++---
       .../mermaid/src/diagrams/er/parser/erDiagram.jison |  2 +-
       .../src/docs/syntax/entityRelationshipDiagram.md   |  5 +++--
       4 files changed, 23 insertions(+), 6 deletions(-)
      
      diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js
      index 8e8946170b..c72df49b68 100644
      --- a/cypress/integration/rendering/erDiagram.spec.js
      +++ b/cypress/integration/rendering/erDiagram.spec.js
      @@ -182,6 +182,20 @@ describe('Entity Relationship Diagram', () => {
           cy.get('svg');
         });
       
      +  it('should render entities with length in attributes type', () => {
      +    renderGraph(
      +      `
      +    erDiagram
      +        CLUSTER {
      +          varchar(99) name
      +          string(255) description 
      +        }
      +      `,
      +      { logLevel: 1 }
      +    );
      +    cy.get('svg');
      +  });
      +
         it('should render entities and attributes with big and small entity names', () => {
           renderGraph(
             `
      diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md
      index 9b938bc368..4f33b1edc7 100644
      --- a/docs/syntax/entityRelationshipDiagram.md
      +++ b/docs/syntax/entityRelationshipDiagram.md
      @@ -230,7 +230,7 @@ erDiagram
           }
       ```
       
      -The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens or underscores. Other than that, there are no restrictions, and there is no implicit set of valid data types.
      +The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens, underscores, parentheses and square brackets. Other than that, there are no restrictions, and there is no implicit set of valid data types.
       
       #### Attribute Keys and Comments
       
      @@ -244,11 +244,12 @@ erDiagram
               string registrationNumber
               string make
               string model
      +        string[] parts
           }
           PERSON ||--o{ NAMED-DRIVER : is
           PERSON {
               string driversLicense PK "The license #"
      -        string firstName
      +        string(99) firstName "Only 99 characters are allowed"
               string lastName
               int age
           }
      @@ -263,11 +264,12 @@ erDiagram
               string registrationNumber
               string make
               string model
      +        string[] parts
           }
           PERSON ||--o{ NAMED-DRIVER : is
           PERSON {
               string driversLicense PK "The license #"
      -        string firstName
      +        string(99) firstName "Only 99 characters are allowed"
               string lastName
               int age
           }
      diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison
      index f0411fd724..bd8dc20f09 100644
      --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison
      +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison
      @@ -31,7 +31,7 @@ accDescr\s*"{"\s*                                { this.begin("acc_descr_multili
       \s+                      /* skip whitespace in block */
       \b((?:PK)|(?:FK))\b      return 'ATTRIBUTE_KEY'
       (.*?)[~](.*?)*[~]        return 'ATTRIBUTE_WORD';
      -[A-Za-z][A-Za-z0-9\-_\[\]]*  return 'ATTRIBUTE_WORD'
      +[A-Za-z][A-Za-z0-9\-_\[\]\(\)]*  return 'ATTRIBUTE_WORD'
       \"[^"]*\"                return 'COMMENT';
       [\n]+                    /* nothing */
       "}"                      { this.popState(); return 'BLOCK_STOP'; }
      diff --git a/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md
      index c666877c5f..d83fd4b098 100644
      --- a/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md
      +++ b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md
      @@ -160,7 +160,7 @@ erDiagram
           }
       ```
       
      -The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens or underscores. Other than that, there are no restrictions, and there is no implicit set of valid data types.
      +The `type` and `name` values must begin with an alphabetic character and may contain digits, hyphens, underscores, parentheses and square brackets. Other than that, there are no restrictions, and there is no implicit set of valid data types.
       
       #### Attribute Keys and Comments
       
      @@ -174,11 +174,12 @@ erDiagram
               string registrationNumber
               string make
               string model
      +        string[] parts
           }
           PERSON ||--o{ NAMED-DRIVER : is
           PERSON {
               string driversLicense PK "The license #"
      -        string firstName
      +        string(99) firstName "Only 99 characters are allowed"
               string lastName
               int age
           }
      
      From 792c1a8320fa12519b9d59acffa729917fc4ebe5 Mon Sep 17 00:00:00 2001
      From: Sidharth Vinod 
      Date: Wed, 7 Dec 2022 11:19:44 +0530
      Subject: [PATCH 0777/1038] chore: Rebuild docs if linting fails
      
      ---
       .github/workflows/lint-docs.yml | 74 ---------------------------------
       .github/workflows/lint.yml      | 16 ++++++-
       2 files changed, 15 insertions(+), 75 deletions(-)
       delete mode 100644 .github/workflows/lint-docs.yml
      
      diff --git a/.github/workflows/lint-docs.yml b/.github/workflows/lint-docs.yml
      deleted file mode 100644
      index d9f0ddae0e..0000000000
      --- a/.github/workflows/lint-docs.yml
      +++ /dev/null
      @@ -1,74 +0,0 @@
      -name: Lint Docs
      -
      -on:
      -  pull_request:
      -    types:
      -      - opened
      -      - synchronize
      -      - ready_for_review
      -
      -permissions:
      -  contents: write
      -
      -jobs:
      -  lint:
      -    runs-on: ubuntu-latest
      -    strategy:
      -      matrix:
      -        node-version: [16.x]
      -    steps:
      -      - uses: actions/checkout@v3
      -        with:
      -          repository: ${{ github.event.pull_request.head.repo.full_name }}
      -          ref: ${{ github.event.pull_request.head.ref }}
      -
      -      - name: Get branch name
      -        id: branch-name
      -        uses: tj-actions/branch-names@v5
      -
      -      - uses: nrwl/last-successful-commit-action@v1
      -        id: last_successful_commit_pull_request
      -        with:
      -          branch: ${{ steps.branch-name.outputs.base_ref_branch }}
      -          workflow_id: 'lint-docs.yml'
      -          github_token: ${{ secrets.GITHUB_TOKEN }}
      -
      -      - name: Check if source docs are changed
      -        id: changed-docs
      -        uses: tj-actions/changed-files@v29
      -        with:
      -          base_sha: ${{ steps.last_successful_commit_pull_request.outputs.commit_hash }}
      -          files: |
      -            packages/mermaid/src/docs/*
      -            packages/mermaid/src/docs.mts
      -
      -      - uses: pnpm/action-setup@v2
      -        if: steps.changed-docs.outputs.only_modified == 'true'
      -
      -      - name: Setup Node.js ${{ matrix.node-version }}
      -        uses: actions/setup-node@v3
      -        if: steps.changed-docs.outputs.only_modified == 'true'
      -        with:
      -          cache: pnpm
      -          node-version: ${{ matrix.node-version }}
      -
      -      - name: Install Packages
      -        if: steps.changed-docs.outputs.only_modified == 'true'
      -        run: |
      -          pnpm install --frozen-lockfile
      -        env:
      -          CYPRESS_CACHE_FOLDER: .cache/Cypress
      -
      -      - name: Run step if any file(s) in the docs folder change
      -        if: steps.changed-docs.outputs.only_modified == 'true'
      -        run: |
      -          echo "Only files in the src/docs folder has changed."
      -          echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
      -          yarn docs:build
      -
      -      - name: Commit changes
      -        uses: EndBug/add-and-commit@v9
      -        if: steps.changed-docs.outputs.only_modified == 'true'
      -        with:
      -          message: 'Update docs'
      -          add: 'docs/*'
      diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
      index 8ba06989d0..917a2731c3 100644
      --- a/.github/workflows/lint.yml
      +++ b/.github/workflows/lint.yml
      @@ -9,7 +9,7 @@ on:
             - ready_for_review
       
       permissions:
      -  contents: read
      +  contents: write
       
       jobs:
         lint:
      @@ -39,5 +39,19 @@ jobs:
               run: pnpm run lint
       
             - name: Verify Docs
      +        id: verifyDocs
               working-directory: ./packages/mermaid
      +        continue-on-error: true
               run: pnpm run docs:verify
      +
      +      - name: Rebuild Docs
      +        if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
      +        run: |
      +          yarn docs:build
      +
      +      - name: Commit changes
      +        uses: EndBug/add-and-commit@v9
      +        if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
      +        with:
      +          message: 'Update docs'
      +          add: 'docs/*'
      
      From 755382798589f28c936300c311589a4606a1f9a0 Mon Sep 17 00:00:00 2001
      From: Sidharth Vinod 
      Date: Wed, 7 Dec 2022 11:40:17 +0530
      Subject: [PATCH 0778/1038] fix: docs build command
      
      ---
       .github/workflows/lint.yml | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
      index 917a2731c3..f1ab5726bb 100644
      --- a/.github/workflows/lint.yml
      +++ b/.github/workflows/lint.yml
      @@ -46,8 +46,8 @@ jobs:
       
             - name: Rebuild Docs
               if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
      -        run: |
      -          yarn docs:build
      +        working-directory: ./packages/mermaid
      +        run: pnpm run docs:build
       
             - name: Commit changes
               uses: EndBug/add-and-commit@v9
      
      From b2489523f24ed271e7c9dc281078e859e6026619 Mon Sep 17 00:00:00 2001
      From: sidharthv96 
      Date: Wed, 7 Dec 2022 06:13:07 +0000
      Subject: [PATCH 0779/1038] Update docs
      
      ---
       docs/syntax/classDiagram.md | 3 ++-
       1 file changed, 2 insertions(+), 1 deletion(-)
      
      diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md
      index 5870d07433..b6d48c9deb 100644
      --- a/docs/syntax/classDiagram.md
      +++ b/docs/syntax/classDiagram.md
      @@ -7,7 +7,8 @@
       # Class diagrams
       
       > "In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects."
      -> Wikipedia
      +>
      +> \-Wikipedia
       
       The class diagram is the main building block of object-oriented modeling. It is used for general conceptual modeling of the structure of the application, and for detailed modeling to translate the models into programming code. Class diagrams can also be used for data modeling. The classes in a class diagram represent both the main elements, interactions in the application, and the classes to be programmed.
       
      
      From 1a767ee492f74aa3475cf50ecc0baf0f10545d3e Mon Sep 17 00:00:00 2001
      From: Sidharth Vinod 
      Date: Wed, 7 Dec 2022 11:48:51 +0530
      Subject: [PATCH 0780/1038] chore: Update cspell
      
      ---
       cSpell.json | 1 +
       1 file changed, 1 insertion(+)
      
      diff --git a/cSpell.json b/cSpell.json
      index 64187e1ca5..3ddf841022 100644
      --- a/cSpell.json
      +++ b/cSpell.json
      @@ -64,6 +64,7 @@
           "phpbb",
           "plantuml",
           "playfair",
      +    "pnpm",
           "podlite",
           "ranksep",
           "redmine",
      
      From 59fdaa3b534e32437aeb7ac4ade9685511fb6a7e Mon Sep 17 00:00:00 2001
      From: Sidharth Vinod 
      Date: Wed, 7 Dec 2022 11:58:09 +0530
      Subject: [PATCH 0781/1038] fix: Fail docs:verify on non push events
      
      ---
       .github/workflows/lint.yml | 2 +-
       1 file changed, 1 insertion(+), 1 deletion(-)
      
      diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
      index f1ab5726bb..d671445400 100644
      --- a/.github/workflows/lint.yml
      +++ b/.github/workflows/lint.yml
      @@ -41,7 +41,7 @@ jobs:
             - name: Verify Docs
               id: verifyDocs
               working-directory: ./packages/mermaid
      -        continue-on-error: true
      +        continue-on-error: ${{ github.event_name == 'push' }}
               run: pnpm run docs:verify
       
             - name: Rebuild Docs
      
      From ebf76e3d1f19a89796136ff994689d4bd839db7d Mon Sep 17 00:00:00 2001
      From: Knut Sveidqvist 
      Date: Wed, 7 Dec 2022 09:37:27 +0100
      Subject: [PATCH 0782/1038] #815 Using elk for flowchart layouts
      
      ---
       cSpell.json                                   |   2 +
       cypress/platform/knsv2.html                   |  74 ++++-
       .../src/flowRenderer-v3.js                    | 269 +++++++++++++-----
       3 files changed, 268 insertions(+), 77 deletions(-)
      
      diff --git a/cSpell.json b/cSpell.json
      index b692c1ebf6..c7630d7ee0 100644
      --- a/cSpell.json
      +++ b/cSpell.json
      @@ -39,6 +39,7 @@
           "gitgraph",
           "globby",
           "graphlib",
      +    "graphviz",
           "grav",
           "greywolf",
           "inkdrop",
      @@ -66,6 +67,7 @@
           "plantuml",
           "playfair",
           "podlite",
      +    "radious",
           "ranksep",
           "redmine",
           "sandboxed",
      diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
      index d55a23bc93..5522e93331 100644
      --- a/cypress/platform/knsv2.html
      +++ b/cypress/platform/knsv2.html
      @@ -56,11 +56,77 @@
         
           
      Security check
      +cyto TD
      +  %% I could not figure out how to use double quotes in labels in Mermaid
      +  subgraph ibm[IBM Espresso CPU]
      +    core0[IBM PowerPC Broadway Core 0]
      +    core1[IBM PowerPC Broadway Core 1]
      +    core2[IBM PowerPC Broadway Core 2]
      +
      +    rom[16 KB ROM]
      +
      +    core0 --- core2
      +
      +    rom --> core2
      +  end
      +
      +  subgraph amd[AMD Latte GPU]
      +    mem[Memory & I/O Bridge]
      +    dram[DRAM Controller]
      +    edram[32 MB EDRAM MEM1]
      +    rom[512 B SEEPROM]
      +
      +    sata[SATA IF]
      +    exi[EXI]
      +
      +    subgraph gx[GX]
      +      sram[3 MB 1T-SRAM]
      +    end
      +
      +    radeon[AMD Radeon R7xx GX2]
      +
      +    mem --- gx
      +    mem --- radeon
      +
      +    rom --- mem
      +
      +    mem --- sata
      +    mem --- exi
      +
      +    dram --- sata
      +    dram --- exi
      +  end
      +
      +  ddr3[2 GB DDR3 RAM MEM2]
      +
      +  mem --- ddr3
      +  dram --- ddr3
      +  edram --- ddr3
      +
      +  core1 --- mem
      +
      +  exi --- rtc
      +
      +
       cyto LR
      -    inside1 --> inside2 & inside3 & inside4 & inside5 & inside6
      -    a(letter a
      a) ---> b(letter b)--> c(letter c) --> d -->e(letter e
      e) --> a - b <--> d(letter b
      d) -
      +subgraph TOP + direction LR + subgraph B1 + direction RL + i1 -->f1 + end + subgraph B2 + direction BT + i2 -->f2 + end + end + B1 --> B2 + F --> f1 +
      + inside1 --> inside2 & inside3 & inside4 & inside5 & inside6 a(letter a
      a) ---> b(letter + b)--> c(letter c) --> d -->e(letter e
      e) --> a b <--> d(letter b
      d)
             mindmap
         root
      diff --git a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      index 9b0f3092b5..b3a56f73f4 100644
      --- a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      +++ b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      @@ -37,7 +37,7 @@ const nodeDb = {};
       //  * @param doc
       //  * @param diagObj
       //  */
      -export const addVertices = function (vert, svgId, root, doc, diagObj, parentLookUpDb, graph) {
      +export const addVertices = function (vert, svgId, root, doc, diagObj, parentLookupDb, graph) {
         const svg = root.select(`[id="${svgId}"]`);
         const nodes = svg.insert('g').attr('class', 'nodes');
         const keys = Object.keys(vert);
      @@ -170,55 +170,60 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook
             props: vertex.props,
             padding: getConfig().flowchart.padding,
           };
      -    const nodeEl = insertNode(nodes, node, vertex.dir);
      -    const boundingBox = nodeEl.node().getBBox();
      +    let boundingBox;
      +    let nodeEl;
      +    if (node.type !== 'group') {
      +      nodeEl = insertNode(nodes, node, vertex.dir);
      +      boundingBox = nodeEl.node().getBBox();
      +    }
           const data = {
             id: vertex.id,
      -      labelStyle: styles.labelStyle,
      -      shape: _shape,
      -      labelText: vertexText,
      -      rx: radious,
      -      ry: radious,
      -      class: classStr,
      -      style: styles.style,
      -      link: vertex.link,
      -      linkTarget: vertex.linkTarget,
      -      tooltip: diagObj.db.getTooltip(vertex.id) || '',
      +      // labelStyle: styles.labelStyle,
      +      // shape: _shape,
      +      // labelText: vertexText,
      +      labels: [{ text: vertexText }, { text: vertexText }],
      +      // rx: radious,
      +      // ry: radious,
      +      // class: classStr,
      +      // style: styles.style,
      +      // link: vertex.link,
      +      // linkTarget: vertex.linkTarget,
      +      // tooltip: diagObj.db.getTooltip(vertex.id) || '',
             domId: diagObj.db.lookUpDomId(vertex.id),
      -      haveCallback: vertex.haveCallback,
      -      width: boundingBox.width,
      -      height: boundingBox.height,
      -      dir: vertex.dir,
      +      // haveCallback: vertex.haveCallback,
      +      width: boundingBox?.width,
      +      height: boundingBox?.height,
      +      // dir: vertex.dir,
             type: vertex.type,
      -      props: vertex.props,
      -      padding: getConfig().flowchart.padding,
      -      boundingBox,
      +      // props: vertex.props,
      +      // padding: getConfig().flowchart.padding,
      +      // boundingBox,
             el: nodeEl,
      -      parent: parentLookUpDb.parentById[vertex.id],
      +      parent: parentLookupDb.parentById[vertex.id],
           };
      -    // if (!Object.keys(parentLookUpDb.childrenById).includes(vertex.id)) {
      -    graph.children.push({
      -      ...data,
      -    });
      +    // if (!Object.keys(parentLookupDb.childrenById).includes(vertex.id)) {
      +    // graph.children.push({
      +    //   ...data,
      +    // });
           // }
           nodeDb[node.id] = data;
      -    log.trace('setNode', {
      -      labelStyle: styles.labelStyle,
      -      shape: _shape,
      -      labelText: vertexText,
      -      rx: radious,
      -      ry: radious,
      -      class: classStr,
      -      style: styles.style,
      -      id: vertex.id,
      -      domId: diagObj.db.lookUpDomId(vertex.id),
      -      width: vertex.type === 'group' ? 500 : undefined,
      -      type: vertex.type,
      -      dir: vertex.dir,
      -      props: vertex.props,
      -      padding: getConfig().flowchart.padding,
      -      parent: parentLookUpDb.parentById[vertex.id],
      -    });
      +    // log.trace('setNode', {
      +    //   labelStyle: styles.labelStyle,
      +    //   shape: _shape,
      +    //   labelText: vertexText,
      +    //   rx: radious,
      +    //   ry: radious,
      +    //   class: classStr,
      +    //   style: styles.style,
      +    //   id: vertex.id,
      +    //   domId: diagObj.db.lookUpDomId(vertex.id),
      +    //   width: vertex.type === 'group' ? 500 : undefined,
      +    //   type: vertex.type,
      +    //   dir: vertex.dir,
      +    //   props: vertex.props,
      +    //   padding: getConfig().flowchart.padding,
      +    //   parent: parentLookupDb.parentById[vertex.id],
      +    // });
         });
         return graph;
       };
      @@ -368,7 +373,7 @@ export const addEdges = function (edges, diagObj, graph) {
             sources: [edge.start],
             targets: [edge.end],
             edgeData,
      -      targetPort: 'PortSide.NORTH',
      +      // targetPort: 'PortSide.NORTH',
             // id: cnt,
           });
         });
      @@ -470,40 +475,69 @@ export const getClasses = function (text, diagObj) {
       };
       
       const addSubGraphs = function (db) {
      -  const parentLookUpDb = { parentById: {}, childrenById: {} };
      +  const parentLookupDb = { parentById: {}, childrenById: {} };
         const subgraphs = db.getSubGraphs();
         log.info('Subgraphs - ', subgraphs);
         subgraphs.forEach(function (subgraph) {
           subgraph.nodes.forEach(function (node) {
      -      parentLookUpDb.parentById[node] = subgraph.id;
      -      if (parentLookUpDb.childrenById[subgraph.id] === undefined) {
      -        parentLookUpDb.childrenById[subgraph.id] = [];
      +      parentLookupDb.parentById[node] = subgraph.id;
      +      if (parentLookupDb.childrenById[subgraph.id] === undefined) {
      +        parentLookupDb.childrenById[subgraph.id] = [];
             }
      -      parentLookUpDb.childrenById[subgraph.id].push(node);
      +      parentLookupDb.childrenById[subgraph.id].push(node);
           });
         });
       
         subgraphs.forEach(function (subgraph) {
           const data = { id: subgraph.id };
      -    if (parentLookUpDb.parentById[subgraph.id] !== undefined) {
      -      data.parent = parentLookUpDb.parentById[subgraph.id];
      +    if (parentLookupDb.parentById[subgraph.id] !== undefined) {
      +      data.parent = parentLookupDb.parentById[subgraph.id];
           }
           // cy.add({
           //   group: 'nodes',
           //   data,
           // });
         });
      -  return parentLookUpDb;
      +  return parentLookupDb;
      +};
      +
      +/* Reverse engineered with trial and error */
      +const calcOffset = function (src, dest, sourceId, targetId) {
      +  if (src === dest) {
      +    return src;
      +  }
      +  return 0;
       };
       
       const insertEdge = function (edgesEl, edge, edgeData, diagObj) {
      +  const srcOffset = nodeDb[edge.sources[0]].offset;
      +  const targetOffset = nodeDb[edge.targets[0]].offset;
      +  const offset = {
      +    x: calcOffset(
      +      srcOffset.x,
      +      targetOffset.x,
      +      nodeDb[edge.sources[0]].id,
      +      nodeDb[edge.targets[0]].id
      +    ),
      +    y: calcOffset(
      +      srcOffset.y,
      +      targetOffset.y,
      +      nodeDb[edge.sources[0]].id,
      +      nodeDb[edge.targets[0]].id
      +    ),
      +  };
      +  // console.log('srcOffset', srcOffset.x, targetOffset.x, srcOffset.y, targetOffset.y);
         const src = edge.sections[0].startPoint;
         const dest = edge.sections[0].endPoint;
         const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];
         // const dest = edge.target().position();
         // const dest = edge.targetEndpoint();
      -  const segPoints = segments.map((segment) => [segment.x, segment.y]);
      -  const points = [[src.x, src.y], ...segPoints, [dest.x, dest.y]];
      +  const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);
      +  const points = [
      +    [src.x + offset.x, src.y + offset.y],
      +    ...segPoints,
      +    [dest.x + offset.x, dest.y + offset.y],
      +  ];
         // console.log('Edge ctrl points:', edge.segmentPoints(), 'Bounds:', bounds, edge.source(), points);
         // console.log('Edge ctrl points:', points);
         // const curve = line().curve(curveCardinal);
      @@ -538,6 +572,28 @@ const insertEdge = function (edgesEl, edge, edgeData, diagObj) {
         //   .attr('cy', dest.y);
       };
       
      +/**
      + *
      + * @param {*} graph
      + * @param nodeArray
      + * @param parentLookupDb
      + */
      +const insertChildren = (nodeArray, parentLookupDb) => {
      +  nodeArray.forEach((node) => {
      +    if (!node.children) {
      +      node.children = [];
      +    }
      +    const childIds = parentLookupDb.childrenById[node.id];
      +    // console.log('UGH', node.id, childIds);
      +    if (childIds) {
      +      childIds.forEach((childId) => {
      +        node.children.push(nodeDb[childId]);
      +      });
      +    }
      +    insertChildren(node.children, parentLookupDb);
      +  });
      +};
      +
       /**
        * Draws a flowchart in the tag with id: id based on the graph definition in text.
        *
      @@ -558,16 +614,18 @@ export const draw = function (text, id, _version, diagObj) {
           let graph = {
             id: 'root',
             layoutOptions: {
      -        'elk.algorithm': 'layered',
      -        'elk.direction': 'DOWN',
      -        'elk.port.side': 'SOUTH',
      +        'elk.hierarchyHandling': 'INCLUDE_CHILDREN',
      +        //   'elk.algorithm': 'layered',
      +        //   'elk.direction': 'DOWN',
      +        //   'elk.port.side': 'SOUTH',
               // 'nodePlacement.strategy': 'SIMPLE',
      -        'org.eclipse.elk.graphviz.concentrate': true,
      +        // 'org.eclipse.elk.spacing.labelLabel': 120,
      +        // 'org.eclipse.elk.graphviz.concentrate': true,
               // 'org.eclipse.elk.spacing.nodeNode': 120,
               // 'org.eclipse.elk.spacing.edgeEdge': 120,
               // 'org.eclipse.elk.spacing.edgeNode': 120,
               // 'org.eclipse.elk.spacing.nodeEdge': 120,
      -        'org.eclipse.elk.spacing.componentComponent': 120,
      +        // 'org.eclipse.elk.spacing.componentComponent': 120,
             },
             children: [],
             edges: [],
      @@ -606,29 +664,59 @@ export const draw = function (text, id, _version, diagObj) {
             log.info('Subgraph - ', subG);
             diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir);
           }
      +    const subGraphsEl = svg.insert('g').attr('class', 'subgraphs');
       
      -    const parentLookUpDb = addSubGraphs(diagObj.db);
      -    graph = addVertices(vert, id, root, doc, diagObj, parentLookUpDb, graph);
      +    const parentLookupDb = addSubGraphs(diagObj.db);
      +    graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph);
           const edgesEl = svg.insert('g').attr('class', 'edges edgePath');
           const edges = diagObj.db.getEdges();
           graph = addEdges(edges, diagObj, graph);
       
      +    // Iterate through all nodes and add the top level nodes to the graph
      +    const nodes = Object.keys(nodeDb);
      +    nodes.forEach((nodeId) => {
      +      const node = nodeDb[nodeId];
      +      if (!node.parent) {
      +        graph.children.push(node);
      +      }
      +      if (parentLookupDb.childrenById[nodeId] !== undefined) {
      +        // console.log('UGH node', node);
      +        delete node.x;
      +        delete node.y;
      +        delete node.width;
      +        delete node.height;
      +      }
      +    });
      +    insertChildren(graph.children, parentLookupDb);
      +    // console.log('Graph (UGH)- ', JSON.parse(JSON.stringify(graph)), JSON.stringify(graph));
      +    // const graph2 = {
      +    //   id: 'root',
      +    //   layoutOptions: { 'elk.algorithm': 'layered' },
      +    //   children: [
      +    //     {
      +    //       id: 'N1',
      +    //       width: 30,
      +    //       height: 30,
      +    //       padding: 12,
      +    //       children: [
      +    //         { id: 'n1', width: 30, height: 30 },
      +    //         { id: 'n2', width: 30, height: 30 },
      +    //         { id: 'n3', width: 30, height: 30 },
      +    //       ],
      +    //     },
      +    //   ],
      +    //   edges: [
      +    //     { id: 'e1', sources: ['n1'], targets: ['n2'] },
      +    //     { id: 'e2', sources: ['n1'], targets: ['n3'] },
      +    //   ],
      +    // };
           elk.layout(graph).then(function (g) {
      -      g.children.forEach(function (node) {
      -        const data = nodeDb[node.id];
      -        if (data) {
      -          data.el.attr(
      -            'transform',
      -            `translate(${node.x + node.width / 2}, ${node.y + node.height / 2})`
      -          );
      -          // document
      -          //   .querySelector(`[id="${data.domId}"]`)
      -          //   .setAttribute('transform', `translate(${node.position().x}, ${node.position().y})`);
      -          log.info('Id = ', data.domId, svg.select(`[id="${data.domId}"]`), data.el.node());
      -        }
      -      });
      +      // elk.layout(graph2).then(function (g) {
      +      // console.log('Layout (UGH)- ', g);
      +      drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj);
       
             g.edges.map((edge, id) => {
      +        // console.log('Edge (UGH)- ', edge);
               insertEdge(edgesEl, edge, edge.edgeData, diagObj);
             });
             setupGraphViewbox({}, svg, conf.diagramPadding, conf.useMaxWidth);
      @@ -639,6 +727,41 @@ export const draw = function (text, id, _version, diagObj) {
         });
       };
       
      +const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => {
      +  nodeArray.forEach(function (node) {
      +    if (node) {
      +      if (node.type === 'group') {
      +        subgraphsEl
      +          .insert('rect')
      +          .attr('class', 'subgraph node')
      +          .attr('style', 'fill:#ccc;stroke:black;stroke-width:1')
      +          .attr('x', node.x + relX)
      +          .attr('y', node.y + relY)
      +          .attr('width', node.width)
      +          .attr('height', node.height);
      +        log.info('Id (UGH)= ', node.type, node.domId, svg.select(`[id="${node.domId}"]`));
      +      } else {
      +        log.info('Id (UGH)= ', node.id);
      +        node.el.attr(
      +          'transform',
      +          `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`
      +        );
      +      }
      +      nodeDb[node.id].offset = {
      +        posX: node.x + relX,
      +        posY: node.y + relY,
      +        x: relX,
      +        y: relY,
      +      };
      +    }
      +  });
      +  nodeArray.forEach(function (node) {
      +    if (node && node.type === 'group') {
      +      drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj);
      +    }
      +  });
      +};
      +
       export default {
         // setConf,
         // addVertices,
      
      From 1c9a55936201db54aab405e86603a86840d4b69d Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Wed, 7 Dec 2022 10:19:30 -0800
      Subject: [PATCH 0783/1038] common function for a11y; add to renderAsync; +
       renderAsync spec
      
      ---
       docs/config/setup/modules/mermaidAPI.md |  2 +-
       packages/mermaid/src/mermaidAPI.spec.ts | 52 +++++++++++++++++++++++++
       packages/mermaid/src/mermaidAPI.ts      | 23 ++++++++++-
       3 files changed, 74 insertions(+), 3 deletions(-)
      
      diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md
      index 7902c1be92..1b840dcd3c 100644
      --- a/docs/config/setup/modules/mermaidAPI.md
      +++ b/docs/config/setup/modules/mermaidAPI.md
      @@ -90,7 +90,7 @@ mermaid.initialize(config);
       
       #### Defined in
       
      -[mermaidAPI.ts:949](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L949)
      +[mermaidAPI.ts:968](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L968)
       
       ## Functions
       
      diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts
      index dd36b1d0cf..f9bad66d71 100644
      --- a/packages/mermaid/src/mermaidAPI.spec.ts
      +++ b/packages/mermaid/src/mermaidAPI.spec.ts
      @@ -734,4 +734,56 @@ describe('mermaidAPI', function () {
             });
           });
         });
      +
      +  describe('renderAsync', () => {
      +    // Be sure to add async before each test (anonymous) method
      +
      +    // These are more like integration tests right now because nothing is mocked.
      +    // But it is faster that a cypress test and there's no real reason to actually evaluate an image pixel by pixel.
      +
      +    // render(id, text, cb?, svgContainingElement?)
      +
      +    // Test all diagram types.  Note that old flowchart 'graph' type will invoke the flowRenderer-v2. (See the flowchart v2 detector.)
      +    // We have to have both the specific textDiagramType and the expected type name because the expected type may be slightly different than was is put in the diagram text (ex: in -v2 diagrams)
      +    const diagramTypesAndExpectations = [
      +      { textDiagramType: 'C4Context', expectedType: 'c4' },
      +      { textDiagramType: 'classDiagram', expectedType: 'classDiagram' },
      +      { textDiagramType: 'classDiagram-v2', expectedType: 'classDiagram' },
      +      { textDiagramType: 'erDiagram', expectedType: 'er' },
      +      { textDiagramType: 'graph', expectedType: 'flowchart-v2' },
      +      { textDiagramType: 'flowchart', expectedType: 'flowchart-v2' },
      +      { textDiagramType: 'gitGraph', expectedType: 'gitGraph' },
      +      { textDiagramType: 'gantt', expectedType: 'gantt' },
      +      { textDiagramType: 'journey', expectedType: 'journey' },
      +      { textDiagramType: 'pie', expectedType: 'pie' },
      +      { textDiagramType: 'requirementDiagram', expectedType: 'requirement' },
      +      { textDiagramType: 'sequenceDiagram', expectedType: 'sequence' },
      +      { textDiagramType: 'stateDiagram-v2', expectedType: 'stateDiagram' },
      +    ];
      +
      +    describe('accessibility', () => {
      +      const id = 'mermaid-fauxId';
      +      const a11yTitle = 'a11y title';
      +      const a11yDescr = 'a11y description';
      +
      +      diagramTypesAndExpectations.forEach((testedDiagram) => {
      +        describe(`${testedDiagram.textDiagramType}`, () => {
      +          const diagramType = testedDiagram.textDiagramType;
      +          const diagramText = `${diagramType}\n accTitle: ${a11yTitle}\n accDescr: ${a11yDescr}\n`;
      +          const expectedDiagramType = testedDiagram.expectedType;
      +
      +          it('aria-roledscription is set to the diagram type, addSVGa11yTitleDescription is called', async () => {
      +            const a11yDiagramInfo_spy = vi.spyOn(accessibility, 'setA11yDiagramInfo');
      +            const a11yTitleDesc_spy = vi.spyOn(accessibility, 'addSVGa11yTitleDescription');
      +            await mermaidAPI.renderAsync(id, diagramText);
      +            expect(a11yDiagramInfo_spy).toHaveBeenCalledWith(
      +              expect.anything(),
      +              expectedDiagramType
      +            );
      +            expect(a11yTitleDesc_spy).toHaveBeenCalled();
      +          });
      +        });
      +      });
      +    });
      +  });
       });
      diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
      index 1ac03c4f61..a77aed96dc 100644
      --- a/packages/mermaid/src/mermaidAPI.ts
      +++ b/packages/mermaid/src/mermaidAPI.ts
      @@ -519,10 +519,9 @@ const render = function (
       
         // This is the d3 node for the svg element
         const svgNode = root.select(`${enclosingDivID_selector} svg`);
      -  setA11yDiagramInfo(svgNode, graphType);
         const a11yTitle = diag.db.getAccTitle?.();
         const a11yDescr = diag.db.getAccDescription?.();
      -  addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr('id'));
      +  addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr);
       
         // -------------------------------------------------------------------------------
         // Clean up SVG code
      @@ -720,6 +719,12 @@ const renderAsync = async function (
           throw e;
         }
       
      +  // This is the d3 node for the svg element
      +  const svgNode = root.select(`${enclosingDivID_selector} svg`);
      +  const a11yTitle = diag.db.getAccTitle?.();
      +  const a11yDescr = diag.db.getAccDescription?.();
      +  addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr);
      +
         // -------------------------------------------------------------------------------
         // Clean up SVG code
         root.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', XMLNS_XHTML_STD);
      @@ -884,6 +889,20 @@ function initialize(options: MermaidConfig = {}) {
         addDiagrams();
       }
       
      +/**
      + * Add accessibility (a11y) information to the diagram.
      + *
      + */
      +function addA11yInfo(
      +  graphType: string,
      +  svgNode: D3Element,
      +  a11yTitle: string | undefined,
      +  a11yDescr: string | undefined
      +) {
      +  setA11yDiagramInfo(svgNode, graphType);
      +  addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr('id'));
      +}
      +
       /**
        * ## mermaidAPI configuration defaults
        *
      
      From 9b27396344648d11c4f459edeae6fd4a3440642b Mon Sep 17 00:00:00 2001
      From: Knut Sveidqvist 
      Date: Thu, 8 Dec 2022 13:21:56 +0100
      Subject: [PATCH 0784/1038] Small fix
      
      ---
       cypress/integration/other/ghsa.spec.js        |   6 +
       cypress/platform/ghsa1.html                   |   2 +-
       cypress/platform/ghsa3.html                   | 100 +++++++
       cypress/platform/knsv3.html                   | 274 ++++--------------
       .../mermaid/src/diagrams/common/common.ts     |   4 +-
       packages/mermaid/src/mermaidAPI.ts            |   4 +-
       6 files changed, 172 insertions(+), 218 deletions(-)
       create mode 100644 cypress/platform/ghsa3.html
      
      diff --git a/cypress/integration/other/ghsa.spec.js b/cypress/integration/other/ghsa.spec.js
      index 5b168a8a8f..4fadc78554 100644
      --- a/cypress/integration/other/ghsa.spec.js
      +++ b/cypress/integration/other/ghsa.spec.js
      @@ -7,4 +7,10 @@ describe('CSS injections', () => {
             flowchart: { htmlLabels: false },
           });
         });
      +  it('should not allow adding styletags affecting the page', () => {
      +    urlSnapshotTest('http://localhost:9000/ghsa3.html', {
      +      logLevel: 1,
      +      flowchart: { htmlLabels: false },
      +    });
      +  });
       });
      diff --git a/cypress/platform/ghsa1.html b/cypress/platform/ghsa1.html
      index c543588621..890a8e0dd2 100644
      --- a/cypress/platform/ghsa1.html
      +++ b/cypress/platform/ghsa1.html
      @@ -4,7 +4,7 @@
         
         
           
      -

      This element does not belong to the SVG but we can style it

      +

      Background should be yellow!!!

      diff --git a/cypress/platform/ghsa3.html b/cypress/platform/ghsa3.html new file mode 100644 index 0000000000..63dfa0d01e --- /dev/null +++ b/cypress/platform/ghsa3.html @@ -0,0 +1,100 @@ + + + + + + + + + +

      PAGE SHOULD NOT BE RED

      +
      +
      +
      +
      + + + + diff --git a/cypress/platform/knsv3.html b/cypress/platform/knsv3.html index 0c1afadb72..e5ca66c87a 100644 --- a/cypress/platform/knsv3.html +++ b/cypress/platform/knsv3.html @@ -6,6 +6,10 @@ rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" /> + -
      info below
      -
      -
      -flowchart TB;subgraph "number as labels";1;end;
      -      
      -
      -flowchart TB;a[APA];
      -      
      -
      -graph TD
      -      work --> sleep
      -      sleep --> work
      -      eat --> sleep
      -      work --> eat
      -      
      -
      -flowchart TD
      -      work --> sleep
      -      sleep --> work
      -      eat --> sleep
      -      work --> eat
      -      
      -
      - graph TB
      -      A
      -      B
      -      subgraph foo[Foo SubGraph]
      -        C
      -        D
      -      end
      -      subgraph bar[Bar SubGraph]
      -        E
      -        F
      -      end
      -      G
      -
      -      A-->B
      -      B-->C
      -      C-->D
      -      B-->D
      -      D-->E
      -      E-->A
      -      E-->F
      -      F-->D
      -      F-->G
      -      B-->G
      -      G-->D
      -
      -      style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
      -      style bar fill:#999,stroke-width:2px,stroke:#0F0,color:blue
      -      
      -
      -      graph TB
      -%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
      -      A
      -      B
      -      subgraph foo[Foo SubGraph]
      -        C
      -        D
      -      end
      -      subgraph bar[Bar SubGraph]
      -        E
      -        F
      -      end
      -      G
      +    
      Security check
      +
      +      graph TD
      +        A["test"] --"

      test

      "--> B +
      - A-->B - B-->C - C-->D - B-->D - D-->E - E-->A - E-->F - F-->D - F-->G - B-->G - G-->D + + + + + - style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred - style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue -
      -
      -      graph TD
      -        A[Christmas] ==> D
      -        A[Christmas] -->|Get money| B(Go shopping)
      -        A[Christmas] ==> C
      -      
      -
      -      graph TD
      -%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
      -        A[Christmas] ==> D
      -        A[Christmas] -->|Get money| B(Go shopping)
      -        A[Christmas] ==> C
      -      
      -
      -      flowchart TD
      -        A[Christmas] ==> D
      -        A[Christmas] -->|Get money| B(Go shopping)
      -        A[Christmas] ==> C
      -      
      -
      -      flowchart TD
      -%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
      -        A[Christmas] ==> D
      -        A[Christmas] -->|Get money| B(Go shopping)
      -        A[Christmas] ==> C
      -      
      -
      -flowchart LR
      -        a["Haiya"]---->b
      -      
      -
      -flowchart LR
      -%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
      -        a["Haiya"]---->b
      -      
      -
      -      flowchart TD
      -        A[Christmas] ==> D
      -        A[Christmas] -->|Get money| B(Go shopping)
      -        A[Christmas] ==> C
      -      
      -
      -      flowchart TD
      -%%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
      -        A[Christmas] ==> D
      -        A[Christmas] -->|Get money| B(Go shopping)
      -        A[Christmas] ==> C
      -      
      -
      -      %%{init: { "logLevel": 1, "flowchart": {"htmlLabels":true }} }%%
      -classDiagram-v2
      -      Class01 <|-- AveryLongClass : Cool
      -      <<interface>> Class01
      -      Class03 *-- Class04
      -      Class05 o-- Class06
      -      Class07 .. Class08
      -      Class09 --> C2 : Where am i?
      -      Class09 --* C3
      -      Class09 --|> Class07
      -      Class12 <|.. Class08
      -      Class11 ..>Class12
      -      Class07 : equals()
      -      Class07 : Object[] elementData
      -      Class01 : size()
      -      Class01 : int chimp
      -      Class01 : int gorilla
      -      Class01 : -int privateChimp
      -      Class01 : +int publicGorilla
      -      Class01 : #int protectedMarmoset
      -      Class08 <--> C2: Cool label
      -      class Class10 {
      -        <<service>>
      -        int id
      -        test()
      -      }
      -      
      -
      -classDiagram-v2
      -      Class01 <|-- AveryLongClass : Cool
      -      <<interface>> Class01
      -      Class03 *-- Class04
      -      Class05 o-- Class06
      -      Class07 .. Class08
      -      Class09 --> C2 : Where am i?
      -      Class09 --* C3
      -      Class09 --|> Class07
      -      Class12 <|.. Class08
      -      Class11 ..>Class12
      -      Class07 : equals()
      -      Class07 : Object[] elementData
      -      Class01 : size()
      -      Class01 : int chimp
      -      Class01 : int gorilla
      -      Class01 : -int privateChimp
      -      Class01 : +int publicGorilla
      -      Class01 : #int protectedMarmoset
      -      Class08 <--> C2: Cool label
      -      class Class10 {
      -        <<service>>
      -        int id
      -        test()
      -      }
      -      
      -
      -flowchart BT
      -   subgraph S1
      -    sub1 -->sub2
      -   end
      -  subgraph S2
      -    sub4
      -   end
      -   S1 --> S2
      -   sub1 --> sub4
      -      
      -
      - - diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index 194a9a4c05..628908aab6 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -47,7 +47,9 @@ export const sanitizeText = (text: string, config: MermaidConfig): string => { if (config.dompurifyConfig) { text = DOMPurify.sanitize(sanitizeMore(text, config), config.dompurifyConfig).toString(); } else { - text = DOMPurify.sanitize(sanitizeMore(text, config)); + text = DOMPurify.sanitize(sanitizeMore(text, config), { + FORBID_TAGS: ['style'], + }).toString(); } return text; }; diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index a77aed96dc..193f5a9cc5 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -536,7 +536,7 @@ const render = function ( if (isSandboxed) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); svgCode = putIntoIFrame(svgCode, svgEl); - } else if (isLooseSecurityLevel) { + } else if (!isLooseSecurityLevel) { // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { ADD_TAGS: DOMPURE_TAGS, @@ -738,7 +738,7 @@ const renderAsync = async function ( if (isSandboxed) { const svgEl = root.select(enclosingDivID_selector + ' svg').node(); svgCode = putIntoIFrame(svgCode, svgEl); - } else if (isLooseSecurityLevel) { + } else if (!isLooseSecurityLevel) { // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { ADD_TAGS: DOMPURE_TAGS, From c6fce2431b81b72a8915f224aa038300e72df1ac Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 8 Dec 2022 14:14:31 +0100 Subject: [PATCH 0785/1038] Fixes for tests --- cypress/integration/rendering/classDiagram-v2.spec.js | 3 +-- cypress/integration/rendering/classDiagram.spec.js | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/cypress/integration/rendering/classDiagram-v2.spec.js b/cypress/integration/rendering/classDiagram-v2.spec.js index f97458857e..9536a074dc 100644 --- a/cypress/integration/rendering/classDiagram-v2.spec.js +++ b/cypress/integration/rendering/classDiagram-v2.spec.js @@ -485,8 +485,7 @@ describe('Class diagram V2', () => { classDiagram-v2 note "I love this diagram!\nDo you love it?" class Class10 { - <> - int id + int id size() } note for Class10 "Cool class\nI said it's very cool class!" diff --git a/cypress/integration/rendering/classDiagram.spec.js b/cypress/integration/rendering/classDiagram.spec.js index 16601652d5..e21be67ec4 100644 --- a/cypress/integration/rendering/classDiagram.spec.js +++ b/cypress/integration/rendering/classDiagram.spec.js @@ -414,7 +414,6 @@ describe('Class diagram', () => { classDiagram note "I love this diagram!\nDo you love it?" class Class10 { - <> int id size() } From 98fc8664443f12e5bed5fe6209fa67e073619bc5 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Thu, 8 Dec 2022 14:16:25 +0100 Subject: [PATCH 0786/1038] Minor change of test code --- cypress/integration/rendering/current.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/rendering/current.spec.js b/cypress/integration/rendering/current.spec.js index 56b5f774b3..033752c668 100644 --- a/cypress/integration/rendering/current.spec.js +++ b/cypress/integration/rendering/current.spec.js @@ -1,6 +1,6 @@ import { imgSnapshotTest } from '../../helpers/util'; -describe('State diagram', () => { +describe('Current diagram', () => { it('should render a state with states in it', () => { imgSnapshotTest( ` From 7656916cef292828785b9f104df93ca1e2fe5211 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Thu, 8 Dec 2022 15:03:51 +0100 Subject: [PATCH 0787/1038] Updated package number to 9.3.0-rc1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1faa1628dc..c027fa71fc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mermaid-monorepo", "private": true, - "version": "9.2.2", + "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", "packageManager": "pnpm@7.17.1", From 23a44952ace8d7e2779769d124c8e9d1a96945d0 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Thu, 8 Dec 2022 15:09:49 +0100 Subject: [PATCH 0788/1038] Updated package number --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 66fa4f224b..81d1d9be92 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.2.3-rc.1", + "version": "9.3.0-rc.1", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", From 4f169dd2b8bd6aa0e1e1023b8e2b6754620a1e64 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Thu, 8 Dec 2022 15:16:13 +0100 Subject: [PATCH 0789/1038] Updated package number --- packages/mermaid-mindmap/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 852c0871b8..2795cf73b2 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.2.2", + "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "module": "dist/mermaid-mindmap.core.mjs", "types": "dist/detector.d.ts", From e1a501c66b7b03d30aa66177bd88b747e1c7ec70 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 8 Dec 2022 16:38:47 +0100 Subject: [PATCH 0790/1038] Update url snapshot test for external diagrams --- cypress/integration/other/external-diagrams.spec.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cypress/integration/other/external-diagrams.spec.js b/cypress/integration/other/external-diagrams.spec.js index 3a6c37e881..903f8b77bb 100644 --- a/cypress/integration/other/external-diagrams.spec.js +++ b/cypress/integration/other/external-diagrams.spec.js @@ -1,13 +1,16 @@ +import { urlSnapshotTest } from '../../helpers/util'; + describe('mermaid', () => { describe('registerDiagram', () => { it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => { const url = 'http://localhost:9000/external-diagrams-mindmap.html'; - cy.visit(url); + urlSnapshotTest(url, {}, false, false); + // cy.visit(url); - cy.get('svg', { - // may be a bit slower than normal, since vite might need to re-compile mermaid/mermaid-mindmap/mermaid-example-diagram - timeout: 10000, - }).matchImageSnapshot(); + // cy.get('svg', { + // // may be a bit slower than normal, since vite might need to re-compile mermaid/mermaid-mindmap/mermaid-example-diagram + // timeout: 10000, + // }).matchImageSnapshot(); }); }); }); From 6c2647e8cf79c5c5a3d57ef3ebff036a38773e30 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 8 Dec 2022 16:39:21 +0100 Subject: [PATCH 0791/1038] Update url snapshot test for external diagrams --- cypress/integration/other/external-diagrams.spec.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cypress/integration/other/external-diagrams.spec.js b/cypress/integration/other/external-diagrams.spec.js index 903f8b77bb..be69dfc982 100644 --- a/cypress/integration/other/external-diagrams.spec.js +++ b/cypress/integration/other/external-diagrams.spec.js @@ -5,12 +5,6 @@ describe('mermaid', () => { it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => { const url = 'http://localhost:9000/external-diagrams-mindmap.html'; urlSnapshotTest(url, {}, false, false); - // cy.visit(url); - - // cy.get('svg', { - // // may be a bit slower than normal, since vite might need to re-compile mermaid/mermaid-mindmap/mermaid-example-diagram - // timeout: 10000, - // }).matchImageSnapshot(); }); }); }); From 0b01c3376d9637b06b87c620f67c687185645483 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 8 Dec 2022 19:41:17 +0100 Subject: [PATCH 0792/1038] #815 Adding labels to subgraphs --- cypress/platform/knsv2.html | 1 + .../src/flowRenderer-v3.js | 59 +++++++++++++++---- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 5522e93331..f1375e80e7 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -106,6 +106,7 @@ core1 --- mem exi --- rtc + rtc{{rtc}}
      diff --git a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      index b3a56f73f4..3c7f88b263 100644
      --- a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      +++ b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js
      @@ -63,6 +63,7 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook
       
           // We create a SVG label, either by delegating to addHtmlLabel or manually
           let vertexNode;
      +    const labelData = { width: 0, height: 0 };
           if (evaluate(getConfig().flowchart.htmlLabels)) {
             // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
             const node = {
      @@ -72,6 +73,10 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook
               ),
             };
             vertexNode = addHtmlLabel(svg, node).node();
      +      const bbox = vertexNode.getBBox();
      +      labelData.width = bbox.width;
      +      labelData.height = bbox.height;
      +      labelData.labelNode = vertexNode;
             vertexNode.parentNode.removeChild(vertexNode);
           } else {
             const svgLabel = doc.createElementNS('http://www.w3.org/2000/svg', 'text');
      @@ -88,6 +93,10 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook
               svgLabel.appendChild(tspan);
             }
             vertexNode = svgLabel;
      +      const bbox = vertexNode.getBBox();
      +      labelData.width = bbox.width;
      +      labelData.height = bbox.height;
      +      labelData.labelNode = vertexNode;
           }
       
           let radious = 0;
      @@ -176,12 +185,14 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook
             nodeEl = insertNode(nodes, node, vertex.dir);
             boundingBox = nodeEl.node().getBBox();
           }
      +
           const data = {
             id: vertex.id,
             // labelStyle: styles.labelStyle,
             // shape: _shape,
      -      // labelText: vertexText,
      -      labels: [{ text: vertexText }, { text: vertexText }],
      +      labelText: vertexText,
      +      labelData,
      +      // labels: [{ text: vertexText }],
             // rx: radious,
             // ry: radious,
             // class: classStr,
      @@ -615,8 +626,12 @@ export const draw = function (text, id, _version, diagObj) {
             id: 'root',
             layoutOptions: {
               'elk.hierarchyHandling': 'INCLUDE_CHILDREN',
      +        'org.eclipse.elk.padding': '[top=100, left=100, bottom=110, right=110]',
      +        // 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers': 120,
      +        // 'elk.layered.spacing.nodeNodeBetweenLayers': '140',
      +        'elk.layered.spacing.edgeNodeBetweenLayers': '30',
               //   'elk.algorithm': 'layered',
      -        //   'elk.direction': 'DOWN',
      +        'elk.direction': 'DOWN',
               //   'elk.port.side': 'SOUTH',
               // 'nodePlacement.strategy': 'SIMPLE',
               // 'org.eclipse.elk.spacing.labelLabel': 120,
      @@ -679,8 +694,20 @@ export const draw = function (text, id, _version, diagObj) {
             if (!node.parent) {
               graph.children.push(node);
             }
      +      // node.nodePadding = [120, 50, 50, 50];
      +      // node['org.eclipse.elk.spacing.nodeNode'] = 120;
      +      // Subgraph
             if (parentLookupDb.childrenById[nodeId] !== undefined) {
      -        // console.log('UGH node', node);
      +        node.labels = [
      +          {
      +            text: node.labelText,
      +            layoutOptions: {
      +              'nodeLabels.placement': '[H_CENTER, V_TOP, INSIDE]',
      +            },
      +            width: node.labelData.width,
      +            height: node.labelData.height,
      +          },
      +        ];
               delete node.x;
               delete node.y;
               delete node.width;
      @@ -730,8 +757,15 @@ export const draw = function (text, id, _version, diagObj) {
       const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => {
         nodeArray.forEach(function (node) {
           if (node) {
      +      nodeDb[node.id].offset = {
      +        posX: node.x + relX,
      +        posY: node.y + relY,
      +        x: relX,
      +        y: relY,
      +      };
             if (node.type === 'group') {
      -        subgraphsEl
      +        const subgraphEl = subgraphsEl.insert('g').attr('class', 'subgraph');
      +        subgraphEl
                 .insert('rect')
                 .attr('class', 'subgraph node')
                 .attr('style', 'fill:#ccc;stroke:black;stroke-width:1')
      @@ -739,7 +773,14 @@ const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => {
                 .attr('y', node.y + relY)
                 .attr('width', node.width)
                 .attr('height', node.height);
      -        log.info('Id (UGH)= ', node.type, node.domId, svg.select(`[id="${node.domId}"]`));
      +        const label = subgraphEl.insert('g').attr('class', 'label');
      +        label.attr(
      +          'transform',
      +          `translate(${node.labels[0].x + relX + node.x}, ${node.labels[0].y + relY + node.y})`
      +        );
      +        label.node().appendChild(node.labelData.labelNode);
      +
      +        log.info('Id (UGH)= ', node.type, node.labels);
             } else {
               log.info('Id (UGH)= ', node.id);
               node.el.attr(
      @@ -747,12 +788,6 @@ const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => {
                 `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`
               );
             }
      -      nodeDb[node.id].offset = {
      -        posX: node.x + relX,
      -        posY: node.y + relY,
      -        x: relX,
      -        y: relY,
      -      };
           }
         });
         nodeArray.forEach(function (node) {
      
      From e59b830d747750977d5ac4bf24ce86bb96e90292 Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Thu, 8 Dec 2022 11:25:04 -0800
      Subject: [PATCH 0793/1038] set svg role to 'graphics-document document'
      
      ---
       packages/mermaid/src/accessibility.spec.ts | 12 ++++++++++--
       packages/mermaid/src/accessibility.ts      | 17 ++++++++++++++++-
       2 files changed, 26 insertions(+), 3 deletions(-)
      
      diff --git a/packages/mermaid/src/accessibility.spec.ts b/packages/mermaid/src/accessibility.spec.ts
      index c633d0e15e..60415ea374 100644
      --- a/packages/mermaid/src/accessibility.spec.ts
      +++ b/packages/mermaid/src/accessibility.spec.ts
      @@ -6,6 +6,13 @@ describe('accessibility', () => {
         const fauxSvgNode = new MockedD3();
       
         describe('setA11yDiagramInfo', () => {
      +    it('sets the svg element role to "graphics-document document"', () => {
      +      // @ts-ignore  Required to easily handle the d3 select types
      +      const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
      +      setA11yDiagramInfo(fauxSvgNode, 'flowchart');
      +      expect(svgAttrSpy).toHaveBeenCalledWith('role', 'graphics-document document');
      +    });
      +
           it('sets the aria-roledescription to the diagram type', () => {
             // @ts-ignore  Required to easily handle the d3 select types
             const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
      @@ -13,11 +20,12 @@ describe('accessibility', () => {
             expect(svgAttrSpy).toHaveBeenCalledWith('aria-roledescription', 'flowchart');
           });
       
      -    it('does nothing if the diagram type is empty', () => {
      +    it('does not set the aria-roledescription if the diagram type is empty', () => {
             // @ts-ignore  Required to easily handle the d3 select types
             const svgAttrSpy = vi.spyOn(fauxSvgNode, 'attr').mockReturnValue(fauxSvgNode);
             setA11yDiagramInfo(fauxSvgNode, '');
      -      expect(svgAttrSpy).not.toHaveBeenCalled();
      +      expect(svgAttrSpy).toHaveBeenCalledTimes(1);
      +      expect(svgAttrSpy).toHaveBeenCalledWith('role', expect.anything()); // only called to set the role
           });
         });
       
      diff --git a/packages/mermaid/src/accessibility.ts b/packages/mermaid/src/accessibility.ts
      index b9e088e0be..13c2aa43ae 100644
      --- a/packages/mermaid/src/accessibility.ts
      +++ b/packages/mermaid/src/accessibility.ts
      @@ -1,5 +1,8 @@
       /**
        * Accessibility (a11y) functions, types, helpers
      + * @see https://www.w3.org/WAI/
      + * @see https://www.w3.org/TR/wai-aria-1.1/
      + * @see https://www.w3.org/TR/svg-aam-1.0/
        *
        */
       import { D3Element } from './mermaidAPI';
      @@ -7,12 +10,24 @@ import { D3Element } from './mermaidAPI';
       import isEmpty from 'lodash-es/isEmpty';
       
       /**
      - * Add aria-roledescription to the svg element to the diagramType
      + * SVG element role:
      + * The SVG element role _should_ be set to 'graphics-document' per SVG standard
      + * but in practice is not always done by browsers, etc. (As of 2022-12-08).
      + * A fallback role of 'document' should be set for those browsers, etc., that only support ARIA 1.0.
      + *
      + * @see https://www.w3.org/TR/svg-aam-1.0/#roleMappingGeneralRules
      + * @see https://www.w3.org/TR/graphics-aria-1.0/#graphics-document
      + */
      +const SVG_ROLE = 'graphics-document document';
      +
      +/**
      + * Add role and aria-roledescription to the svg element
        *
        * @param svg - d3 object that contains the SVG HTML element
        * @param diagramType - diagram name for to the aria-roledescription
        */
       export function setA11yDiagramInfo(svg: D3Element, diagramType: string | null | undefined) {
      +  svg.attr('role', SVG_ROLE);
         if (!isEmpty(diagramType)) {
           svg.attr('aria-roledescription', diagramType);
         }
      
      From de795a915e0b1136faf347c7131db388d265ceef Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Fri, 9 Dec 2022 04:56:55 -0800
      Subject: [PATCH 0794/1038] remove links from atom.io; add note Atom has been
       archived
      
      ---
       docs/misc/integrations.md                      | 8 ++++----
       packages/mermaid/src/docs/misc/integrations.md | 8 ++++----
       2 files changed, 8 insertions(+), 8 deletions(-)
      
      diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md
      index 007b9e7780..23a95c0a1a 100644
      --- a/docs/misc/integrations.md
      +++ b/docs/misc/integrations.md
      @@ -109,10 +109,10 @@ They also serve as proof of concept, for the variety of things that can be built
         - [md-it-mermaid](https://github.com/iamcco/md-it-mermaid)
         - [markdown-it-mermaid-fence-new](https://github.com/Revomatico/markdown-it-mermaid-fence-new)
         - [markdown-it-mermaid-less](https://github.com/searKing/markdown-it-mermaid-less)
      -- [Atom](https://atom.io)
      -  - [Markdown Preview Enhanced](https://atom.io/packages/markdown-preview-enhanced)
      -  - [Atom Mermaid](https://atom.io/packages/atom-mermaid)
      -  - [Language Mermaid Syntax Highlighter](https://atom.io/packages/language-mermaid)
      +- Atom _(Atom has been [archived.](https://github.blog/2022-06-08-sunsetting-atom/))_
      +  - Markdown Preview Enhanced
      +  - [Atom Mermaid](https://github.com/y-takey/atom-mermaid)
      +  - Language Mermaid Syntax Highlighter
       - [Sublime Text 3](https://sublimetext.com)
         - [Mermaid Package](https://packagecontrol.io/packages/Mermaid)
       - [Astah](https://astah.net)
      diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md
      index 06d09634ff..78fc33df93 100644
      --- a/packages/mermaid/src/docs/misc/integrations.md
      +++ b/packages/mermaid/src/docs/misc/integrations.md
      @@ -103,10 +103,10 @@ They also serve as proof of concept, for the variety of things that can be built
         - [md-it-mermaid](https://github.com/iamcco/md-it-mermaid)
         - [markdown-it-mermaid-fence-new](https://github.com/Revomatico/markdown-it-mermaid-fence-new)
         - [markdown-it-mermaid-less](https://github.com/searKing/markdown-it-mermaid-less)
      -- [Atom](https://atom.io)
      -  - [Markdown Preview Enhanced](https://atom.io/packages/markdown-preview-enhanced)
      -  - [Atom Mermaid](https://atom.io/packages/atom-mermaid)
      -  - [Language Mermaid Syntax Highlighter](https://atom.io/packages/language-mermaid)
      +- Atom _(Atom has been [archived.](https://github.blog/2022-06-08-sunsetting-atom/))_
      +  - Markdown Preview Enhanced
      +  - [Atom Mermaid](https://github.com/y-takey/atom-mermaid)
      +  - Language Mermaid Syntax Highlighter
       - [Sublime Text 3](https://sublimetext.com)
         - [Mermaid Package](https://packagecontrol.io/packages/Mermaid)
       - [Astah](https://astah.net)
      
      From e7b4f7f6cae45816049c2121b42c26af7e63a9f8 Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Fri, 9 Dec 2022 13:33:51 -0800
      Subject: [PATCH 0795/1038] trim state ids as they are processed by
       docTranslator
      
      ---
       .../mermaid/src/diagrams/state/stateDb.js     | 70 ++++++++++---------
       1 file changed, 38 insertions(+), 32 deletions(-)
      
      diff --git a/packages/mermaid/src/diagrams/state/stateDb.js b/packages/mermaid/src/diagrams/state/stateDb.js
      index 991aba078f..81b8ffb8bd 100644
      --- a/packages/mermaid/src/diagrams/state/stateDb.js
      +++ b/packages/mermaid/src/diagrams/state/stateDb.js
      @@ -94,9 +94,14 @@ const docTranslator = (parent, node, first) => {
           docTranslator(parent, node.state1, true);
           docTranslator(parent, node.state2, false);
         } else {
      -    if (node.stmt === STMT_STATE && node.id === '[*]') {
      -      node.id = first ? parent.id + '_start' : parent.id + '_end';
      -      node.start = first;
      +    if (node.stmt === STMT_STATE) {
      +      if (node.id === '[*]') {
      +        node.id = first ? parent.id + '_start' : parent.id + '_end';
      +        node.start = first;
      +      } else {
      +        // This is just a plain state, not a start or end
      +        node.id = node.id.trim();
      +      }
           }
       
           if (node.doc) {
      @@ -170,7 +175,7 @@ const extract = (_doc) => {
           switch (item.stmt) {
             case STMT_STATE:
               addState(
      -          item.id,
      +          item.id.trim(),
                 item.type,
                 item.doc,
                 item.description,
      @@ -184,10 +189,10 @@ const extract = (_doc) => {
               addRelation(item.state1, item.state2, item.description);
               break;
             case STMT_CLASSDEF:
      -        addStyleClass(item.id, item.classes);
      +        addStyleClass(item.id.trim(), item.classes);
               break;
             case STMT_APPLYCLASS:
      -        setCssClass(item.id, item.styleClass);
      +        setCssClass(item.id.trim(), item.styleClass);
               break;
           }
         });
      @@ -215,11 +220,12 @@ export const addState = function (
         styles = null,
         textStyles = null
       ) {
      +  const trimmedId = id?.trim();
         // add the state if needed
      -  if (currentDocument.states[id] === undefined) {
      -    log.info('Adding state ', id, descr);
      -    currentDocument.states[id] = {
      -      id: id,
      +  if (currentDocument.states[trimmedId] === undefined) {
      +    log.info('Adding state ', trimmedId, descr);
      +    currentDocument.states[trimmedId] = {
      +      id: trimmedId,
             descriptions: [],
             type,
             doc,
      @@ -229,49 +235,49 @@ export const addState = function (
             textStyles: [],
           };
         } else {
      -    if (!currentDocument.states[id].doc) {
      -      currentDocument.states[id].doc = doc;
      +    if (!currentDocument.states[trimmedId].doc) {
      +      currentDocument.states[trimmedId].doc = doc;
           }
      -    if (!currentDocument.states[id].type) {
      -      currentDocument.states[id].type = type;
      +    if (!currentDocument.states[trimmedId].type) {
      +      currentDocument.states[trimmedId].type = type;
           }
         }
       
         if (descr) {
      -    log.info('Setting state description', id, descr);
      +    log.info('Setting state description', trimmedId, descr);
           if (typeof descr === 'string') {
      -      addDescription(id, descr.trim());
      +      addDescription(trimmedId, descr.trim());
           }
       
           if (typeof descr === 'object') {
      -      descr.forEach((des) => addDescription(id, des.trim()));
      +      descr.forEach((des) => addDescription(trimmedId, des.trim()));
           }
         }
       
         if (note) {
      -    currentDocument.states[id].note = note;
      -    currentDocument.states[id].note.text = common.sanitizeText(
      -      currentDocument.states[id].note.text,
      +    currentDocument.states[trimmedId].note = note;
      +    currentDocument.states[trimmedId].note.text = common.sanitizeText(
      +      currentDocument.states[trimmedId].note.text,
             configApi.getConfig()
           );
         }
       
         if (classes) {
      -    log.info('Setting state classes', id, classes);
      +    log.info('Setting state classes', trimmedId, classes);
           const classesList = typeof classes === 'string' ? [classes] : classes;
      -    classesList.forEach((klass) => setCssClass(id, klass.trim()));
      +    classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));
         }
       
         if (styles) {
      -    log.info('Setting state styles', id, styles);
      +    log.info('Setting state styles', trimmedId, styles);
           const stylesList = typeof styles === 'string' ? [styles] : styles;
      -    stylesList.forEach((style) => setStyle(id, style.trim()));
      +    stylesList.forEach((style) => setStyle(trimmedId, style.trim()));
         }
       
         if (textStyles) {
      -    log.info('Setting state styles', id, styles);
      +    log.info('Setting state styles', trimmedId, styles);
           const textStylesList = typeof textStyles === 'string' ? [textStyles] : textStyles;
      -    textStylesList.forEach((textStyle) => setTextStyle(id, textStyle.trim()));
      +    textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));
         }
       };
       
      @@ -368,10 +374,10 @@ function endTypeIfNeeded(id = '', type = DEFAULT_STATE_TYPE) {
        * @param relationTitle
        */
       export function addRelationObjs(item1, item2, relationTitle) {
      -  let id1 = startIdIfNeeded(item1.id);
      -  let type1 = startTypeIfNeeded(item1.id, item1.type);
      -  let id2 = startIdIfNeeded(item2.id);
      -  let type2 = startTypeIfNeeded(item2.id, item2.type);
      +  let id1 = startIdIfNeeded(item1.id.trim());
      +  let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);
      +  let id2 = startIdIfNeeded(item2.id.trim());
      +  let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);
       
         addState(
           id1,
      @@ -412,9 +418,9 @@ export const addRelation = function (item1, item2, title) {
         if (typeof item1 === 'object') {
           addRelationObjs(item1, item2, title);
         } else {
      -    const id1 = startIdIfNeeded(item1);
      +    const id1 = startIdIfNeeded(item1.trim());
           const type1 = startTypeIfNeeded(item1);
      -    const id2 = endIdIfNeeded(item2);
      +    const id2 = endIdIfNeeded(item2.trim());
           const type2 = endTypeIfNeeded(item2);
       
           addState(id1, type1);
      
      From 2b7aa3f99d838892775da69c98985741fb542432 Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Fri, 9 Dec 2022 13:35:23 -0800
      Subject: [PATCH 0796/1038] start of parser spec; test for this bug
      
      ---
       .../state/parser/state-parser.spec.js         | 49 +++++++++++++++++++
       1 file changed, 49 insertions(+)
       create mode 100644 packages/mermaid/src/diagrams/state/parser/state-parser.spec.js
      
      diff --git a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js
      new file mode 100644
      index 0000000000..614e43491e
      --- /dev/null
      +++ b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js
      @@ -0,0 +1,49 @@
      +import stateDb from '../stateDb';
      +import stateDiagram from './stateDiagram';
      +import { setConfig } from '../../../config';
      +
      +setConfig({
      +  securityLevel: 'strict',
      +});
      +
      +describe('state parser can parse...', () => {
      +  beforeEach(function () {
      +    stateDiagram.parser.yy = stateDb;
      +    stateDiagram.parser.yy.clear();
      +  });
      +
      +  describe('groups (clusters/containers)', () => {
      +    it('state "Group Name" as stateIdentifier', () => {
      +      const diagramText = `stateDiagram-v2
      +        state "Small State 1" as namedState1
      +        %% Notice that this is named "Big State 1" with an "as"
      +        state "Big State 1" as bigState1 {
      +            bigState1InternalState
      +        }
      +        namedState1 --> bigState1: should point to \\nBig State 1 container
      +
      +        state "Small State 2" as namedState2
      +        %% Notice that bigState2 does not have a name; no "as"
      +        state bigState2 {
      +            bigState2InternalState
      +        }
      +        namedState2 --> bigState2: should point to \\nbigState2 container`;
      +
      +      stateDiagram.parser.parse(diagramText);
      +      stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2());
      +
      +      const states = stateDiagram.parser.yy.getStates();
      +      expect(states['namedState1']).not.toBeUndefined();
      +      expect(states['bigState1']).not.toBeUndefined();
      +      expect(states['bigState1'].doc[0].id).toEqual('bigState1InternalState');
      +      expect(states['namedState2']).not.toBeUndefined();
      +      expect(states['bigState2']).not.toBeUndefined();
      +      expect(states['bigState2'].doc[0].id).toEqual('bigState2InternalState');
      +      const relationships = stateDiagram.parser.yy.getRelations();
      +      expect(relationships[0].id1).toEqual('namedState1');
      +      expect(relationships[0].id2).toEqual('bigState1');
      +      expect(relationships[1].id1).toEqual('namedState2');
      +      expect(relationships[1].id2).toEqual('bigState2');
      +    });
      +  });
      +});
      
      From ae25a08fe3c9375dc5096c9d0c58f1f3b1733981 Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Fri, 9 Dec 2022 13:35:44 -0800
      Subject: [PATCH 0797/1038] (minor) add JSDOC comments
      
      ---
       packages/mermaid/src/diagrams/state/stateRenderer-v2.js | 4 ++--
       1 file changed, 2 insertions(+), 2 deletions(-)
      
      diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js
      index fa2470d6b9..bdba95d7ee 100644
      --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js
      +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js
      @@ -307,8 +307,8 @@ const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) =>
        *
        * @param g
        * @param parentParsedItem - parsed Item that is the parent of this document (doc)
      - * @param doc - the document to set up
      - * @param {object} diagramStates - the list of all known  states for the diagram
      + * @param doc - the document to set up; it is a list of parsed statements
      + * @param {object[]} diagramStates - the list of all known states for the diagram
        * @param diagramDb
        * @param {boolean} altFlag
        * @todo This duplicates some of what is done in stateDb.js extract method
      
      From f0b8657423b22046c64b10fd20a6e9ede224534c Mon Sep 17 00:00:00 2001
      From: "Ashley Engelund (weedySeaDragon @ github)" 
      Date: Fri, 9 Dec 2022 16:01:13 -0800
      Subject: [PATCH 0798/1038] state demo: AS descriptions for states in
       composites
      
      ---
       demos/state.html | 13 ++++++++++---
       1 file changed, 10 insertions(+), 3 deletions(-)
      
      diff --git a/demos/state.html b/demos/state.html
      index 7aaa7516a9..d80e239e73 100644
      --- a/demos/state.html
      +++ b/demos/state.html
      @@ -161,12 +161,19 @@ 

      This shows Composite states

      First --> Second First --> Third - state First { + state "the first composite" as First { [*] --> 1st - 1st --> [*] + state innerFirst { + state "1 in innerFirst" as 1st1st + 1st2nd: 2 in innerFirst + [*] --> 1st1st + 1st1st --> 1st2nd + %% 1st2nd --> 1st + } + 1st --> innerFirst + innerFirst --> 2nd } state Second { - [*] --> 2nd 2nd --> [*] } state Third { From d666981599ba0636811b705877ad082bcb4b28c6 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Fri, 9 Dec 2022 16:21:28 -0800 Subject: [PATCH 0799/1038] parser: remove extra popState; whitespace formatting; remove 'zxzx' weird string --- .../diagrams/state/parser/stateDiagram.jison | 79 ++++++++++--------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison b/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison index 67073210bf..74707c5d5d 100644 --- a/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison +++ b/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison @@ -65,14 +65,14 @@ \%%[^\n]* /* skip comments */ "scale"\s+ { this.pushState('SCALE'); /* console.log('Got scale', yytext);*/ return 'scale'; } \d+ return 'WIDTH'; -\s+"width" {this.popState();} +\s+"width" {this.popState(); } accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } (?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } (?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } -accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} -[\}] { this.popState(); } +accDescr\s*"{"\s* { this.begin("acc_descr_multiline"); } +[\}] { this.popState(); } [^\}]* return "acc_descr_multiline_value"; "classDef"\s+ { this.pushState('CLASSDEF'); return 'classDef'; } @@ -81,57 +81,60 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili [^\n]* { this.popState(); return 'CLASSDEF_STYLEOPTS' } "class"\s+ { this.pushState('CLASS'); return 'class'; } -(\w+)+((","\s*\w+)*) { this.popState(); this.pushState('CLASS_STYLE'); return 'CLASSENTITY_IDS' } +(\w+)+((","\s*\w+)*) { this.popState(); this.pushState('CLASS_STYLE'); return 'CLASSENTITY_IDS' } [^\n]* { this.popState(); return 'STYLECLASS' } "scale"\s+ { this.pushState('SCALE'); /* console.log('Got scale', yytext);*/ return 'scale'; } \d+ return 'WIDTH'; \s+"width" {this.popState();} +"state"\s+ { /* console.log('Starting STATE '); */ this.pushState('STATE'); } -"state"\s+ { /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE'); } .*"<>" {this.popState();yytext=yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yytext);*/return 'FORK';} .*"<>" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yytext);*/return 'JOIN';} -.*"<>" {this.popState();yytext=yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yytext);*/return 'CHOICE';} +.*"<>" {this.popState();yytext=yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yytext);*/return 'CHOICE';} .*"[[fork]]" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yytext);*/return 'FORK';} .*"[[join]]" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yytext);*/return 'JOIN';} -.*"[[choice]]" {this.popState();yytext=yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yytext);*/return 'CHOICE';} +.*"[[choice]]" {this.popState();yytext=yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yytext);*/return 'CHOICE';} + .*direction\s+TB[^\n]* { return 'direction_tb';} .*direction\s+BT[^\n]* { return 'direction_bt';} .*direction\s+RL[^\n]* { return 'direction_rl';} .*direction\s+LR[^\n]* { return 'direction_lr';} -["] { /*console.log('Starting STATE_STRING zxzx');*/this.begin("STATE_STRING");} -\s*"as"\s+ {this.popState();this.pushState('STATE_ID');return "AS";} -[^\n\{]* {this.popState();/* console.log('STATE_ID', yytext);*/return "ID";} -["] this.popState(); -[^"]* { /*console.log('Long description:', yytext);*/return "STATE_DESCR";} -[^\n\s\{]+ {/*console.log('COMPOSIT_STATE', yytext);*/return 'COMPOSIT_STATE';} -\n {this.popState();} -\{ {this.popState();this.pushState('struct'); /*console.log('begin struct', yytext);*/return 'STRUCT_START';} -\%\%(?!\{)[^\n]* /* skip comments inside state*/ -\} { /*console.log('Ending struct');*/ this.popState(); return 'STRUCT_STOP';}} -[\n] /* nothing */ +["] { /* console.log('Starting STATE_STRING'); */ this.pushState("STATE_STRING"); } +\s*"as"\s+ { this.pushState('STATE_ID'); /* console.log('pushState(STATE_ID)'); */ return "AS"; } +[^\n\{]* { this.popState(); /* console.log('STATE_ID', yytext); */ return "ID"; } +["] { this.popState(); } +[^"]* { /* console.log('Long description:', yytext); */ return "STATE_DESCR"; } +[^\n\s\{]+ { /* console.log('COMPOSIT_STATE', yytext); */ return 'COMPOSIT_STATE'; } +\n { this.popState(); } +\{ { this.popState(); this.pushState('struct'); /* console.log('begin struct', yytext); */ return 'STRUCT_START'; } +\%\%(?!\{)[^\n]* /* skip comments inside state*/ +\} { /*console.log('Ending struct');*/ this.popState(); return 'STRUCT_STOP';} } +[\n] /* nothing */ "note"\s+ { this.begin('NOTE'); return 'note'; } -"left of" { this.popState();this.pushState('NOTE_ID');return 'left_of';} -"right of" { this.popState();this.pushState('NOTE_ID');return 'right_of';} -\" { this.popState();this.pushState('FLOATING_NOTE');} -\s*"as"\s* {this.popState();this.pushState('FLOATING_NOTE_ID');return "AS";} -["] /**/ -[^"]* { /*console.log('Floating note text: ', yytext);*/return "NOTE_TEXT";} -[^\n]* {this.popState();/*console.log('Floating note ID', yytext);*/return "ID";} -\s*[^:\n\s\-]+ { this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yytext);*/return 'ID';} -\s*":"[^:\n;]+ { this.popState();/*console.log('Got NOTE_TEXT for note',yytext);*/yytext = yytext.substr(2).trim();return 'NOTE_TEXT';} -[\s\S]*?"end note" { this.popState();/*console.log('Got NOTE_TEXT for note',yytext);*/yytext = yytext.slice(0,-8).trim();return 'NOTE_TEXT';} - -"stateDiagram"\s+ { /*console.log('Got state diagram', yytext,'#');*/return 'SD'; } -"stateDiagram-v2"\s+ { /*console.log('Got state diagram', yytext,'#');*/return 'SD'; } -"hide empty description" { /*console.log('HIDE_EMPTY', yytext,'#');*/return 'HIDE_EMPTY'; } -"[*]" { /*console.log('EDGE_STATE=',yytext);*/ return 'EDGE_STATE';} -[^:\n\s\-\{]+ { /*console.log('=>ID=',yytext);*/ return 'ID';} -// \s*":"[^\+\->:\n;]+ { yytext = yytext.trim(); /*console.log('Descr = ', yytext);*/ return 'DESCR'; } -\s*":"[^:\n;]+ { yytext = yytext.trim(); /*console.log('Descr = ', yytext);*/ return 'DESCR'; } +"left of" { this.popState(); this.pushState('NOTE_ID'); return 'left_of'; } +"right of" { this.popState(); this.pushState('NOTE_ID'); return 'right_of'; } +\" { this.popState(); this.pushState('FLOATING_NOTE'); } +\s*"as"\s* { this.popState(); this.pushState('FLOATING_NOTE_ID'); return "AS"; } +["] /**/ +[^"]* { /* console.log('Floating note text: ', yytext); */ return "NOTE_TEXT"; } +[^\n]* { this.popState(); /* console.log('Floating note ID', yytext);*/ return "ID"; } +\s*[^:\n\s\-]+ { this.popState(); this.pushState('NOTE_TEXT'); /*console.log('Got ID for note', yytext);*/ return 'ID'; } +\s*":"[^:\n;]+ { this.popState(); /* console.log('Got NOTE_TEXT for note',yytext);*/yytext = yytext.substr(2).trim(); return 'NOTE_TEXT'; } +[\s\S]*?"end note" { this.popState(); /* console.log('Got NOTE_TEXT for note',yytext);*/yytext = yytext.slice(0,-8).trim(); return 'NOTE_TEXT'; } + +"stateDiagram"\s+ { /* console.log('Got state diagram', yytext,'#'); */ return 'SD'; } +"stateDiagram-v2"\s+ { /* console.log('Got state diagram', yytext,'#'); */ return 'SD'; } + +"hide empty description" { /* console.log('HIDE_EMPTY', yytext,'#'); */ return 'HIDE_EMPTY'; } + +"[*]" { /* console.log('EDGE_STATE=',yytext); */ return 'EDGE_STATE'; } +[^:\n\s\-\{]+ { /* console.log('=>ID=',yytext); */ return 'ID'; } +// \s*":"[^\+\->:\n;]+ { yytext = yytext.trim(); /* console.log('Descr = ', yytext); */ return 'DESCR'; } +\s*":"[^:\n;]+ { yytext = yytext.trim(); /* console.log('Descr = ', yytext); */ return 'DESCR'; } "-->" return '-->'; "--" return 'CONCURRENT'; @@ -201,7 +204,7 @@ statement | COMPOSIT_STATE | COMPOSIT_STATE STRUCT_START document STRUCT_STOP { - /* console.log('Adding document for state without id ', $1); */ + // console.log('Adding document for state without id ', $1); $$={ stmt: 'state', id: $1, type: 'default', description: '', doc: $3 } } | STATE_DESCR AS ID { @@ -217,7 +220,7 @@ statement } | STATE_DESCR AS ID STRUCT_START document STRUCT_STOP { - /* console.log('Adding document for state with id zxzx', $3, $4, yy.getDirection()); yy.addDocument($3);*/ + // console.log('state with id ', $3,' document = ', $5, ); $$={ stmt: 'state', id: $3, type: 'default', description: $1, doc: $5 } } | FORK { From ae7fd777a78ecc4a40a48d7675495926f0b85ea6 Mon Sep 17 00:00:00 2001 From: "Ashley Engelund (weedySeaDragon @ github)" Date: Fri, 9 Dec 2022 16:22:56 -0800 Subject: [PATCH 0800/1038] + parsing specs that actually check results --- .../state/parser/state-parser.spec.js | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js index 614e43491e..5ec5642e10 100644 --- a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js +++ b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js @@ -12,6 +12,72 @@ describe('state parser can parse...', () => { stateDiagram.parser.yy.clear(); }); + describe('states with id displayed as a (name)', () => { + describe('syntax 1: stateID as "name in quotes"', () => { + it('stateID as "some name"', () => { + const diagramText = `stateDiagram-v2 + state "Small State 1" as namedState1`; + stateDiagram.parser.parse(diagramText); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDiagram.parser.yy.getStates(); + expect(states['namedState1']).not.toBeUndefined(); + expect(states['namedState1'].descriptions.join(' ')).toEqual('Small State 1'); + }); + }); + + describe('syntax 2: stateID: "name in quotes" [colon after the id]', () => { + it('space before and after the colon', () => { + const diagramText = `stateDiagram-v2 + namedState1 : Small State 1`; + stateDiagram.parser.parse(diagramText); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDiagram.parser.yy.getStates(); + expect(states['namedState1']).not.toBeUndefined(); + expect(states['namedState1'].descriptions.join(' ')).toEqual('Small State 1'); + }); + + it('no spaces before and after the colon', () => { + const diagramText = `stateDiagram-v2 + namedState1:Small State 1`; + stateDiagram.parser.parse(diagramText); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDiagram.parser.yy.getStates(); + expect(states['namedState1']).not.toBeUndefined(); + expect(states['namedState1'].descriptions.join(' ')).toEqual('Small State 1'); + }); + }); + }); + + describe('can handle "as" in a state name', () => { + it('assemble, assemblies, state assemble, state assemblies', function () { + const diagramText = `stateDiagram-v2 + assemble + assemblies + state assemble + state assemblies + `; + stateDiagram.parser.parse(diagramText); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + const states = stateDiagram.parser.yy.getStates(); + expect(states['assemble']).not.toBeUndefined(); + expect(states['assemblies']).not.toBeUndefined(); + }); + + it('state "as" as as', function () { + const diagramText = `stateDiagram-v2 + state "as" as as + `; + stateDiagram.parser.parse(diagramText); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + const states = stateDiagram.parser.yy.getStates(); + expect(states['as']).not.toBeUndefined(); + expect(states['as'].descriptions.join(' ')).toEqual('as'); + }); + }); + describe('groups (clusters/containers)', () => { it('state "Group Name" as stateIdentifier', () => { const diagramText = `stateDiagram-v2 @@ -45,5 +111,23 @@ describe('state parser can parse...', () => { expect(relationships[1].id1).toEqual('namedState2'); expect(relationships[1].id2).toEqual('bigState2'); }); + + it('group has a state with stateID AS "state name" and state2ID: "another state name"', () => { + const diagramText = `stateDiagram-v2 + state "Big State 1" as bigState1 { + state "inner state 1" as inner1 + inner2: inner state 2 + inner1 --> inner2 + }`; + stateDiagram.parser.parse(diagramText); + stateDiagram.parser.yy.extract(stateDiagram.parser.yy.getRootDocV2()); + + const states = stateDiagram.parser.yy.getStates(); + expect(states['bigState1']).not.toBeUndefined(); + expect(states['bigState1'].doc[0].id).toEqual('inner1'); + expect(states['bigState1'].doc[0].description).toEqual('inner state 1'); + expect(states['bigState1'].doc[1].id).toEqual('inner2'); + expect(states['bigState1'].doc[1].description).toEqual('inner state 2'); + }); }); }); From 76e9e0737011d19977e0fbaed2d3f7b9a5b196d0 Mon Sep 17 00:00:00 2001 From: Ashley Engelund Date: Sat, 10 Dec 2022 13:46:24 -0800 Subject: [PATCH 0801/1038] Add links to github atom add-ons Co-authored-by: Alois Klink --- packages/mermaid/src/docs/misc/integrations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md index 78fc33df93..55d0e5b202 100644 --- a/packages/mermaid/src/docs/misc/integrations.md +++ b/packages/mermaid/src/docs/misc/integrations.md @@ -104,9 +104,9 @@ They also serve as proof of concept, for the variety of things that can be built - [markdown-it-mermaid-fence-new](https://github.com/Revomatico/markdown-it-mermaid-fence-new) - [markdown-it-mermaid-less](https://github.com/searKing/markdown-it-mermaid-less) - Atom _(Atom has been [archived.](https://github.blog/2022-06-08-sunsetting-atom/))_ - - Markdown Preview Enhanced + - [Markdown Preview Enhanced](https://github.com/shd101wyy/markdown-preview-enhanced) - [Atom Mermaid](https://github.com/y-takey/atom-mermaid) - - Language Mermaid Syntax Highlighter + - [Language Mermaid Syntax Highlighter](https://github.com/ytisf/language-mermaid) - [Sublime Text 3](https://sublimetext.com) - [Mermaid Package](https://packagecontrol.io/packages/Mermaid) - [Astah](https://astah.net) From e4c9aa198e0fdf6973acadc6fcba6cbca98f40da Mon Sep 17 00:00:00 2001 From: Ashley Engelund Date: Sat, 10 Dec 2022 13:47:01 -0800 Subject: [PATCH 0802/1038] Update docs/misc/integrations.md Co-authored-by: Alois Klink --- docs/misc/integrations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md index 23a95c0a1a..5f4d877927 100644 --- a/docs/misc/integrations.md +++ b/docs/misc/integrations.md @@ -110,9 +110,9 @@ They also serve as proof of concept, for the variety of things that can be built - [markdown-it-mermaid-fence-new](https://github.com/Revomatico/markdown-it-mermaid-fence-new) - [markdown-it-mermaid-less](https://github.com/searKing/markdown-it-mermaid-less) - Atom _(Atom has been [archived.](https://github.blog/2022-06-08-sunsetting-atom/))_ - - Markdown Preview Enhanced + - [Markdown Preview Enhanced](https://github.com/shd101wyy/markdown-preview-enhanced) - [Atom Mermaid](https://github.com/y-takey/atom-mermaid) - - Language Mermaid Syntax Highlighter + - [Language Mermaid Syntax Highlighter](https://github.com/ytisf/language-mermaid) - [Sublime Text 3](https://sublimetext.com) - [Mermaid Package](https://packagecontrol.io/packages/Mermaid) - [Astah](https://astah.net) From 14f7756fdb271e0948bc292e3b8665a361057b79 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sun, 11 Dec 2022 09:24:05 +0100 Subject: [PATCH 0803/1038] #815 Adding labels to edges --- cypress/platform/knsv2.html | 19 ++------ .../src/flowRenderer-v3.js | 45 ++++++++++++++++--- 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index f1375e80e7..d6af0549be 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -55,7 +55,7 @@
      Security check
      -
      +    
       cyto TD
         %% I could not figure out how to use double quotes in labels in Mermaid
         subgraph ibm[IBM Espresso CPU]
      @@ -109,21 +109,10 @@
         rtc{{rtc}}
       
      -
      +    
       cyto LR
      -subgraph TOP
      -    direction LR
      -    subgraph B1
      -        direction RL
      -        i1 -->f1
      -    end
      -    subgraph B2
      -        direction BT
      -        i2 -->f2
      -    end
      -  end
      -  B1 --> B2
      -  F --> f1
      +  B1 --be be--> B2
      +  B1 --bo bo--> B3
         
      inside1 --> inside2 & inside3 & inside4 & inside5 & inside6 a(letter a
      a) ---> b(letter diff --git a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js index 3c7f88b263..a799a35bf1 100644 --- a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js +++ b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js @@ -3,6 +3,7 @@ import { select, line, curveLinear, curveCardinal, curveBasis, selectAll } from import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; import { insertNode } from '../../mermaid/src/dagre-wrapper/nodes.js'; import insertMarkers from '../../mermaid/src/dagre-wrapper/markers.js'; +import createLabel from '../../mermaid/src/dagre-wrapper/createLabel'; import dagre from 'cytoscape-dagre'; // Replace with other function to avoid dependency to dagre-d3 import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; @@ -247,9 +248,11 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook * @param cy * @param diagObj * @param graph + * @param svg */ -export const addEdges = function (edges, diagObj, graph) { +export const addEdges = function (edges, diagObj, graph, svg) { // log.info('abc78 edges = ', edges); + const labelsEl = svg.insert('g').attr('class', 'edgeLabels'); let cnt = 0; let linkIdCnt = {}; @@ -378,11 +381,30 @@ export const addEdges = function (edges, diagObj, graph) { edgeData.id = linkId; edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd; + const labelEl = createLabel(edgeData.label, edgeData.labelStyle); + labelsEl.node().appendChild(labelEl); + const labelBox = labelEl.firstChild.getBoundingClientRect(); + // console.log('labelEl', labelEl); // Add the edge to the graph graph.edges.push({ id: 'e' + edge.start + edge.end, sources: [edge.start], targets: [edge.end], + labelEl: labelEl, + labels: [ + { + width: labelBox.width, + // width: 80, + height: labelBox.height, + orgWidth: labelBox.width, + orgHeight: labelBox.height, + text: edgeData.label, + layoutOptions: { + 'edgeLabels.inline': 'true', + 'edgeLabels.placement': 'CENTER', + }, + }, + ], edgeData, // targetPort: 'PortSide.NORTH', // id: cnt, @@ -553,13 +575,24 @@ const insertEdge = function (edgesEl, edge, edgeData, diagObj) { // console.log('Edge ctrl points:', points); // const curve = line().curve(curveCardinal); const curve = line().curve(curveLinear); - const edge2 = edgesEl + const edgePath = edgesEl .insert('path') .attr('d', curve(points)) // .attr('d', points)) .attr('class', 'path') .attr('fill', 'none'); - addmarkers(edge2, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute); + const edgeG = edgesEl.insert('g').attr('class', 'edgeLabel'); + const edgeEl = select(edgeG.node().appendChild(edge.labelEl)); + // console.log('Edge label', edgeEl, edge); + const box = edgeEl.node().firstChild.getBoundingClientRect(); + edgeEl.attr('width', box.width); + edgeEl.attr('height', box.height); + // edgeEl.height = 24; + edgeG.attr( + 'transform', + `translate(${edge.labels[0].x - box.width / 2}, ${edge.labels[0].y - box.height / 2})` + ); + addmarkers(edgesEl, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute); // edgesEl // .append('circle') // .style('stroke', 'red') @@ -631,7 +664,7 @@ export const draw = function (text, id, _version, diagObj) { // 'elk.layered.spacing.nodeNodeBetweenLayers': '140', 'elk.layered.spacing.edgeNodeBetweenLayers': '30', // 'elk.algorithm': 'layered', - 'elk.direction': 'DOWN', + 'elk.direction': 'WEST', // 'elk.port.side': 'SOUTH', // 'nodePlacement.strategy': 'SIMPLE', // 'org.eclipse.elk.spacing.labelLabel': 120, @@ -685,7 +718,7 @@ export const draw = function (text, id, _version, diagObj) { graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); const edgesEl = svg.insert('g').attr('class', 'edges edgePath'); const edges = diagObj.db.getEdges(); - graph = addEdges(edges, diagObj, graph); + graph = addEdges(edges, diagObj, graph, svg); // Iterate through all nodes and add the top level nodes to the graph const nodes = Object.keys(nodeDb); @@ -739,7 +772,7 @@ export const draw = function (text, id, _version, diagObj) { // }; elk.layout(graph).then(function (g) { // elk.layout(graph2).then(function (g) { - // console.log('Layout (UGH)- ', g); + // console.log('Layout (UGH)- ', g, JSON.stringify(g)); drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj); g.edges.map((edge, id) => { From 72a3cff13e3cf630ebf009a661d2abdada3febc1 Mon Sep 17 00:00:00 2001 From: steph Date: Sun, 11 Dec 2022 14:04:41 -0800 Subject: [PATCH 0804/1038] fix dev server watch mode --- .vite/build.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vite/build.ts b/.vite/build.ts index 50b7fb1ad5..9d22953221 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -127,7 +127,7 @@ const main = async () => { }; if (watch) { - build(getBuildConfig({ minify: false, watch, core: true, entryName: 'mermaid' })); + build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' })); if (!mermaidOnly) { build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); // build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); From 1b0ea981f9415ae1daa987243bfc90c79c9a2ec0 Mon Sep 17 00:00:00 2001 From: steph Date: Sun, 11 Dec 2022 18:59:01 -0800 Subject: [PATCH 0805/1038] update navbar --- .../mermaid/src/docs/.vitepress/config.ts | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 7d3ec40ddf..b7c033b11a 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -32,19 +32,13 @@ export default defineConfig({ function nav() { return [ - { text: 'Intro', link: '/intro/', activeMatch: '/intro/' }, + { text: 'Docs', link: '/intro/', activeMatch: '/intro/' }, { - text: 'Configuration', + text: 'Tutorials', link: '/config/Tutorials', activeMatch: '/config/', }, - { text: 'Syntax', link: '/syntax/classDiagram', activeMatch: '/syntax/' }, - { text: 'Misc', link: '/misc/integrations', activeMatch: '/misc/' }, - { - text: 'Community', - link: '/community/n00b-overview', - activeMatch: '/community/', - }, + { text: 'Integrations', link: '/misc/integrations', activeMatch: '/misc/' }, { text: version, items: [ @@ -62,6 +56,14 @@ function nav() { text: '💻 Live Editor', link: 'https://mermaid.live', }, + { + text: 'Slack', + link: 'https://mermaid-talk.slack.com', + }, + { + text: 'GitHub', + link: 'https://github.com/mermaid-js/mermaid', + }, ]; } From 07d8684fc76c6ffdbe77e8652d3de026bfa7b24c Mon Sep 17 00:00:00 2001 From: Maho Pacheco Date: Sun, 11 Dec 2022 19:34:25 -0800 Subject: [PATCH 0806/1038] Adding size to postal code --- demos/er.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/er.html b/demos/er.html index 06fbf020e7..124311a032 100644 --- a/demos/er.html +++ b/demos/er.html @@ -40,7 +40,7 @@ string city string region string state - string postal_code + string(5) postal_code string country } From 6fb9b3b35367719e75ca61ade50991ab2fd9eb6a Mon Sep 17 00:00:00 2001 From: Maho Pacheco Date: Sun, 11 Dec 2022 19:45:05 -0800 Subject: [PATCH 0807/1038] Adding UTs for attributes with variable length in er diagram --- .../src/diagrams/er/parser/erDiagram.spec.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index eb738fe4b2..06e2d7993d 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -214,6 +214,19 @@ describe('when parsing ER diagram it...', function () { expect(entities[entity].attributes.length).toBe(2); }); + it('should allow an entity with attribute that is a limited length string', function () { + const entity = 'BOOK'; + const attribute1 = 'character(10) isbn FK'; + const attribute2 = 'varchar(5) postal_code "Five digits"'; + + erDiagram.parser.parse(`erDiagram\n${entity} {\n${attribute1}\n${attribute2}\n}`); + const entities = erDb.getEntities(); + expect(Object.keys(entities).length).toBe(1); + expect(entities[entity].attributes.length).toBe(2); + expect(entities[entity].attributes[0].attributeType).toBe('character(10)'); + expect(entities[entity].attributes[1].attributeType).toBe('varchar(5)'); + }); + it('should allow an entity with multiple attributes to be defined', function () { const entity = 'BOOK'; const attribute1 = 'string title'; From e4622ba06e3cc8c5b1980f415db6b71260c00294 Mon Sep 17 00:00:00 2001 From: steph Date: Sun, 11 Dec 2022 20:53:14 -0800 Subject: [PATCH 0808/1038] fix text overflow --- docs/config/accessibility.md | 9 +- docs/config/directives.md | 4 +- docs/config/n00b-advanced.md | 20 ++-- docs/config/usage.md | 19 ++- docs/syntax/gantt.md | 109 ++++++++++-------- .../mermaid/src/docs/config/accessibility.md | 9 +- .../mermaid/src/docs/config/directives.md | 6 +- .../mermaid/src/docs/config/n00b-advanced.md | 14 +-- packages/mermaid/src/docs/config/usage.md | 21 ++-- packages/mermaid/src/docs/syntax/gantt.md | 59 +++++----- 10 files changed, 143 insertions(+), 127 deletions(-) diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md index e5b96670eb..bf8b3e5915 100644 --- a/docs/config/accessibility.md +++ b/docs/config/accessibility.md @@ -80,9 +80,12 @@ A **multiple line accessible description** _does not have a colon (`:`) after th Ex: - accDescr { The official Bob's Burgers corporate processes that are used - for making very, very big decisions. - This is actually a very simple flow: see the big decision and then make the big decision.} +```markdown +accDescr { +This is a multiple line accessible description. +It does not have a colon and is surrounded by curly brackets. +} +``` See [the accTitle and accDescr usage examples](#acctitle-and-accdescr-usage-examples) for how this can be used in a diagram and the resulting HTML generated. diff --git a/docs/config/directives.md b/docs/config/directives.md index 5507070801..f011085c31 100644 --- a/docs/config/directives.md +++ b/docs/config/directives.md @@ -32,7 +32,9 @@ Mermaid basically supports two types of configuration options to be overridden b **NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. - Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs +::: info +We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon. +::: ## Declaring directives diff --git a/docs/config/n00b-advanced.md b/docs/config/n00b-advanced.md index 5dd9074297..39c20d6326 100644 --- a/docs/config/n00b-advanced.md +++ b/docs/config/n00b-advanced.md @@ -10,17 +10,21 @@ A more condensed html code can be achieved by embedding the mermaid code in its own .js file, which is referenced like so: - stuff stuff -
      - - +```html +... +
    + + +``` The actual mermaid file could for example look like this: - mermaid content... - ---- +```javascript +mermaid content ... +``` ## mermaid configuration options -... +```markdown +(coming soon) +``` diff --git a/docs/config/usage.md b/docs/config/usage.md index 476806d8f8..0e1f4552b3 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -22,24 +22,21 @@ For the majority of users, Using the [Live Editor](https://mermaid.live/) would We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermaid Live Editor. -**Installing and Hosting Mermaid on a Webpage** +### Installing and Hosting Mermaid on a Webpage -**Using the npm package** +**Using the npm package:** - 1. You will need to install node v16, which would have npm. +1. You will need to install `node v16`, which would have npm. - 2. download yarn using npm. +2. Download `yarn` using npm. - 3. enter the following command: - yarn add mermaid +3. Enter the following command: `yarn add mermaid`. - 4. At this point, you can add mermaid as a dev dependency using this command: - yarn add --dev mermaid +4. At this point, you can add mermaid as a dev dependency using this command: `yarn add --dev mermaid`. - 5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions. - as is shown in the example below +5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions as is shown in the example below. -**Hosting mermaid on a web page.** +**Hosting mermaid on a web page:** > Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted.md) diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md index b20b6b7760..f54554bd4c 100644 --- a/docs/syntax/gantt.md +++ b/docs/syntax/gantt.md @@ -172,30 +172,35 @@ Final milestone : milestone, m2, 18:14, 2min The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`. - dateFormat YYYY-MM-DD +```markdown +dateFormat YYYY-MM-DD +``` The following formatting options are supported: - Input Example Description: - YYYY 2014 4 digit year - YY 14 2 digit year - Q 1..4 Quarter of year. Sets month to first month in quarter. - M MM 1..12 Month number - MMM MMMM January..Dec Month name in locale set by moment.locale() - D DD 1..31 Day of month - Do 1st..31st Day of month with ordinal - DDD DDDD 1..365 Day of year - X 1410715640.579 Unix timestamp - x 1410715640579 Unix ms timestamp - H HH 0..23 24 hour time - h hh 1..12 12 hour time used with a A. - a A am pm Post or ante meridiem - m mm 0..59 Minutes - s ss 0..59 Seconds - S 0..9 Tenths of a second - SS 0..99 Hundreds of a second - SSS 0..999 Thousandths of a second - Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z +```markdown +Input Example Description: + +YYYY 2014 4 digit year +YY 14 2 digit year +Q 1..4 Quarter of year. Sets month to first month in quarter. +M MM 1..12 Month number +MMM MMMM January..Dec Month name in locale set by moment.locale() +D DD 1..31 Day of month +Do 1st..31st Day of month with ordinal +DDD DDDD 1..365 Day of year +X 1410715640.579 Unix timestamp +x 1410715640579 Unix ms timestamp +H HH 0..23 24 hour time +h hh 1..12 12 hour time used with a A. +a A am pm Post or ante meridiem +m mm 0..59 Minutes +s ss 0..59 Seconds +S 0..9 Tenths of a second +SS 0..99 Hundreds of a second +SSS 0..999 Thousandths of a second +Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z +``` More info in: https://momentjs.com/docs/#/parsing/string-format/ @@ -203,34 +208,38 @@ More info in: https://momentjs.com/docs/#/parsing/string-format/ The default output date format is `YYYY-MM-DD`. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020. - axisFormat %Y-%m-%d +```markdown +axisFormat %Y-%m-%d +``` The following formatting strings are supported: - %a - abbreviated weekday name. - %A - full weekday name. - %b - abbreviated month name. - %B - full month name. - %c - date and time, as "%a %b %e %H:%M:%S %Y". - %d - zero-padded day of the month as a decimal number [01,31]. - %e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %_d. - %H - hour (24-hour clock) as a decimal number [00,23]. - %I - hour (12-hour clock) as a decimal number [01,12]. - %j - day of the year as a decimal number [001,366]. - %m - month as a decimal number [01,12]. - %M - minute as a decimal number [00,59]. - %L - milliseconds as a decimal number [000, 999]. - %p - either AM or PM. - %S - second as a decimal number [00,61]. - %U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. - %w - weekday as a decimal number [0(Sunday),6]. - %W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. - %x - date, as "%m/%d/%Y". - %X - time, as "%H:%M:%S". - %y - year without century as a decimal number [00,99]. - %Y - year with century as a decimal number. - %Z - time zone offset, such as "-0700". - %% - a literal "%" character. +```markdown +%a - abbreviated weekday name. +%A - full weekday name. +%b - abbreviated month name. +%B - full month name. +%c - date and time, as "%a %b %e %H:%M:%S %Y". +%d - zero-padded day of the month as a decimal number [01,31]. +%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %\_d. +%H - hour (24-hour clock) as a decimal number [00,23]. +%I - hour (12-hour clock) as a decimal number [01,12]. +%j - day of the year as a decimal number [001,366]. +%m - month as a decimal number [01,12]. +%M - minute as a decimal number [00,59]. +%L - milliseconds as a decimal number [000, 999]. +%p - either AM or PM. +%S - second as a decimal number [00,61]. +%U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. +%w - weekday as a decimal number [0(Sunday),6]. +%W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. +%x - date, as "%m/%d/%Y". +%X - time, as "%H:%M:%S". +%y - year without century as a decimal number [00,99]. +%Y - year with century as a decimal number. +%Z - time zone offset, such as "-0700". +%% - a literal "%" character. +``` More info in: @@ -238,11 +247,15 @@ More info in: The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`. - tickInterval 1day +```markdown +tickInterval 1day +``` The pattern is: - /^([1-9][0-9]*)(minute|hour|day|week|month)$/ +```markdown +/^([1-9][0-9]\*)(minute|hour|day|week|month)$/ +``` More info in: diff --git a/packages/mermaid/src/docs/config/accessibility.md b/packages/mermaid/src/docs/config/accessibility.md index e7947adec9..67fb090b80 100644 --- a/packages/mermaid/src/docs/config/accessibility.md +++ b/packages/mermaid/src/docs/config/accessibility.md @@ -74,10 +74,11 @@ A **multiple line accessible description** _does not have a colon (`:`) after th Ex: -``` -accDescr { The official Bob's Burgers corporate processes that are used - for making very, very big decisions. - This is actually a very simple flow: see the big decision and then make the big decision.} +```markdown +accDescr { +This is a multiple line accessible description. +It does not have a colon and is surrounded by curly brackets. +} ``` See [the accTitle and accDescr usage examples](#acctitle-and-accdescr-usage-examples) for how this can be used in a diagram and the resulting HTML generated. diff --git a/packages/mermaid/src/docs/config/directives.md b/packages/mermaid/src/docs/config/directives.md index bc74ad3094..968ea337b8 100644 --- a/packages/mermaid/src/docs/config/directives.md +++ b/packages/mermaid/src/docs/config/directives.md @@ -26,9 +26,9 @@ Mermaid basically supports two types of configuration options to be overridden b **NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. -``` -Soon we plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs -``` +::: info +We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon. +::: ## Declaring directives diff --git a/packages/mermaid/src/docs/config/n00b-advanced.md b/packages/mermaid/src/docs/config/n00b-advanced.md index 1e6546f5cf..2932faa485 100644 --- a/packages/mermaid/src/docs/config/n00b-advanced.md +++ b/packages/mermaid/src/docs/config/n00b-advanced.md @@ -4,8 +4,8 @@ A more condensed html code can be achieved by embedding the mermaid code in its own .js file, which is referenced like so: -``` -stuff stuff +```html +...
    @@ -13,12 +13,12 @@ stuff stuff The actual mermaid file could for example look like this: -``` -mermaid content... +```javascript +mermaid content ... ``` ---- - ## mermaid configuration options -... +```markdown +(coming soon) +``` diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md index 3eac4ad6f3..bbfc192c79 100644 --- a/packages/mermaid/src/docs/config/usage.md +++ b/packages/mermaid/src/docs/config/usage.md @@ -16,26 +16,21 @@ For the majority of users, Using the [Live Editor](https://mermaid.live/) would We have compiled some Video [Tutorials](./Tutorials.md) on how to use the mermaid Live Editor. -**Installing and Hosting Mermaid on a Webpage** +### Installing and Hosting Mermaid on a Webpage -**Using the npm package** +**Using the npm package:** -``` -1. You will need to install node v16, which would have npm. +1. You will need to install `node v16`, which would have npm. -2. download yarn using npm. +2. Download `yarn` using npm. -3. enter the following command: - yarn add mermaid +3. Enter the following command: `yarn add mermaid`. -4. At this point, you can add mermaid as a dev dependency using this command: - yarn add --dev mermaid +4. At this point, you can add mermaid as a dev dependency using this command: `yarn add --dev mermaid`. -5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions. - as is shown in the example below -``` +5. Alternatively, you can also deploy mermaid using the script tag in an HTML file with mermaid diagram descriptions as is shown in the example below. -**Hosting mermaid on a web page.** +**Hosting mermaid on a web page:** > Note:This topic explored in greater depth in the [User Guide for Beginners](../intro/n00b-gettingStarted.md) diff --git a/packages/mermaid/src/docs/syntax/gantt.md b/packages/mermaid/src/docs/syntax/gantt.md index c9301bfeee..7ddb727348 100644 --- a/packages/mermaid/src/docs/syntax/gantt.md +++ b/packages/mermaid/src/docs/syntax/gantt.md @@ -104,33 +104,34 @@ Final milestone : milestone, m2, 18:14, 2min The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`. -``` +```markdown dateFormat YYYY-MM-DD ``` The following formatting options are supported: -``` -Input Example Description: -YYYY 2014 4 digit year -YY 14 2 digit year -Q 1..4 Quarter of year. Sets month to first month in quarter. -M MM 1..12 Month number -MMM MMMM January..Dec Month name in locale set by moment.locale() -D DD 1..31 Day of month -Do 1st..31st Day of month with ordinal -DDD DDDD 1..365 Day of year -X 1410715640.579 Unix timestamp -x 1410715640579 Unix ms timestamp -H HH 0..23 24 hour time -h hh 1..12 12 hour time used with a A. -a A am pm Post or ante meridiem -m mm 0..59 Minutes -s ss 0..59 Seconds -S 0..9 Tenths of a second -SS 0..99 Hundreds of a second -SSS 0..999 Thousandths of a second -Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z +```markdown +Input Example Description: + +YYYY 2014 4 digit year +YY 14 2 digit year +Q 1..4 Quarter of year. Sets month to first month in quarter. +M MM 1..12 Month number +MMM MMMM January..Dec Month name in locale set by moment.locale() +D DD 1..31 Day of month +Do 1st..31st Day of month with ordinal +DDD DDDD 1..365 Day of year +X 1410715640.579 Unix timestamp +x 1410715640579 Unix ms timestamp +H HH 0..23 24 hour time +h hh 1..12 12 hour time used with a A. +a A am pm Post or ante meridiem +m mm 0..59 Minutes +s ss 0..59 Seconds +S 0..9 Tenths of a second +SS 0..99 Hundreds of a second +SSS 0..999 Thousandths of a second +Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z ``` More info in: https://momentjs.com/docs/#/parsing/string-format/ @@ -139,20 +140,20 @@ More info in: https://momentjs.com/docs/#/parsing/string-format/ The default output date format is `YYYY-MM-DD`. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020. -``` -axisFormat %Y-%m-%d +```markdown +axisFormat %Y-%m-%d ``` The following formatting strings are supported: -``` +```markdown %a - abbreviated weekday name. %A - full weekday name. %b - abbreviated month name. %B - full month name. %c - date and time, as "%a %b %e %H:%M:%S %Y". %d - zero-padded day of the month as a decimal number [01,31]. -%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %_d. +%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %\_d. %H - hour (24-hour clock) as a decimal number [00,23]. %I - hour (12-hour clock) as a decimal number [01,12]. %j - day of the year as a decimal number [001,366]. @@ -178,14 +179,14 @@ More info in: [https://github.com/d3/d3-time-format/tree/v4.0.0#locale_format](h The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`. -``` +```markdown tickInterval 1day ``` The pattern is: -``` -/^([1-9][0-9]*)(minute|hour|day|week|month)$/ +```markdown +/^([1-9][0-9]\*)(minute|hour|day|week|month)$/ ``` More info in: [https://github.com/d3/d3-time#interval_every](https://github.com/d3/d3-time#interval_every) From a975c8c9cdd92b49445aeb950cb7b6f13ea0dc61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 12 Dec 2022 01:45:57 +0000 Subject: [PATCH 0809/1038] chore(deps): update all non-major dependencies --- package.json | 4 +- pnpm-lock.yaml | 244 ++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 233 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 1faa1628dc..11dcaa2362 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.2.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.17.1", + "packageManager": "pnpm@7.18.1", "keywords": [ "diagram", "markdown", @@ -75,7 +75,7 @@ "coveralls": "^3.1.1", "cypress": "^10.11.0", "cypress-image-snapshot": "^4.0.1", - "esbuild": "^0.15.13", + "esbuild": "^0.16.0", "eslint": "^8.27.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55d7758012..ad57e3bef6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,8 +68,8 @@ importers: specifier: ^4.0.1 version: 4.0.1_bg25yee4qeg7mpleuvd346a3tq esbuild: - specifier: ^0.15.13 - version: 0.15.13 + specifier: ^0.16.0 + version: 0.16.4 eslint: specifier: ^8.27.0 version: 8.27.0 @@ -1727,6 +1727,96 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.16.4: + resolution: {integrity: sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.16.4: + resolution: {integrity: sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.4: + resolution: {integrity: sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.4: + resolution: {integrity: sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.4: + resolution: {integrity: sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.4: + resolution: {integrity: sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.4: + resolution: {integrity: sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.4: + resolution: {integrity: sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.4: + resolution: {integrity: sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.4: + resolution: {integrity: sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.15.13: resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} engines: {node: '>=12'} @@ -1736,6 +1826,114 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.16.4: + resolution: {integrity: sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.16.4: + resolution: {integrity: sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.4: + resolution: {integrity: sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.4: + resolution: {integrity: sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.4: + resolution: {integrity: sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.4: + resolution: {integrity: sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.4: + resolution: {integrity: sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.4: + resolution: {integrity: sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.4: + resolution: {integrity: sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.4: + resolution: {integrity: sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.4: + resolution: {integrity: sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.4: + resolution: {integrity: sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint/eslintrc/1.3.3: resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5505,6 +5703,36 @@ packages: esbuild-windows-arm64: 0.15.13 dev: true + /esbuild/0.16.4: + resolution: {integrity: sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.4 + '@esbuild/android-arm64': 0.16.4 + '@esbuild/android-x64': 0.16.4 + '@esbuild/darwin-arm64': 0.16.4 + '@esbuild/darwin-x64': 0.16.4 + '@esbuild/freebsd-arm64': 0.16.4 + '@esbuild/freebsd-x64': 0.16.4 + '@esbuild/linux-arm': 0.16.4 + '@esbuild/linux-arm64': 0.16.4 + '@esbuild/linux-ia32': 0.16.4 + '@esbuild/linux-loong64': 0.16.4 + '@esbuild/linux-mips64el': 0.16.4 + '@esbuild/linux-ppc64': 0.16.4 + '@esbuild/linux-riscv64': 0.16.4 + '@esbuild/linux-s390x': 0.16.4 + '@esbuild/linux-x64': 0.16.4 + '@esbuild/netbsd-x64': 0.16.4 + '@esbuild/openbsd-x64': 0.16.4 + '@esbuild/sunos-x64': 0.16.4 + '@esbuild/win32-arm64': 0.16.4 + '@esbuild/win32-ia32': 0.16.4 + '@esbuild/win32-x64': 0.16.4 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -6161,16 +6389,6 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -6715,7 +6933,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 requires-port: 1.0.0 transitivePeerDependencies: - debug From 32fcea3bdd7433cc414e7e807a9b3bea1e6815f9 Mon Sep 17 00:00:00 2001 From: Jesper Hasselquist Date: Mon, 12 Dec 2022 21:39:19 +0900 Subject: [PATCH 0810/1038] fix(docs): remove duplicate section Remove duplicate `Return Type` section --- packages/mermaid/src/docs/syntax/classDiagram.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index a0f4e56111..8cd5796ffe 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -141,10 +141,6 @@ Square : +setMessages(List~string~ messages) Square : +getMessages() List~string~ ``` -#### Return Type - -Optionally you can end the method/function definition with the data type that will be returned. - #### Visibility To describe the visibility (or encapsulation) of an attribute or method/function that is a part of a class (i.e. a class member), optional notation may be placed before that members' name: From dfa1d2695225e1cd203908f26bd32bc49474a2bd Mon Sep 17 00:00:00 2001 From: Jesper Hasselquist Date: Mon, 12 Dec 2022 22:32:50 +0900 Subject: [PATCH 0811/1038] fix(docs): build the docs --- docs/syntax/classDiagram.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index b6d48c9deb..c4fc077329 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -238,10 +238,6 @@ Square : +setMessages(List~string~ messages) Square : +getMessages() List~string~ ``` -#### Return Type - -Optionally you can end the method/function definition with the data type that will be returned. - #### Visibility To describe the visibility (or encapsulation) of an attribute or method/function that is a part of a class (i.e. a class member), optional notation may be placed before that members' name: From d7610dda8fac9277413915a20849c59a969f9900 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 12 Dec 2022 23:51:46 +0530 Subject: [PATCH 0812/1038] fix: Throw correct errors when parsing diagrams with errors --- cSpell.json | 4 ++ packages/mermaid/src/Diagram.ts | 2 +- packages/mermaid/src/diagram.spec.ts | 67 ++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 packages/mermaid/src/diagram.spec.ts diff --git a/cSpell.json b/cSpell.json index 45e7fe99a2..5711d29dcc 100644 --- a/cSpell.json +++ b/cSpell.json @@ -14,6 +14,7 @@ "bilkent", "bisheng", "braintree", + "brkt", "brolin", "brotli", "classdef", @@ -60,12 +61,14 @@ "mindmaps", "mitigations", "mkdocs", + "mult", "orlandoni", "phpbb", "plantuml", "playfair", "pnpm", "podlite", + "quence", "ranksep", "rect", "rects", @@ -81,6 +84,7 @@ "substate", "sveidqvist", "techn", + "teststr", "treemap", "ts-nocheck", "tuleap", diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index a2349c2556..83412e4aac 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -102,7 +102,6 @@ export const getDiagramFromText = ( try { // Trying to find the diagram getDiagram(type); - return new Diagram(txt, parseError); } catch (error) { const loader = getDiagramLoader(type); if (!loader) { @@ -118,6 +117,7 @@ export const getDiagramFromText = ( return new Diagram(txt, parseError); }); } + return new Diagram(txt, parseError); }; export default Diagram; diff --git a/packages/mermaid/src/diagram.spec.ts b/packages/mermaid/src/diagram.spec.ts new file mode 100644 index 0000000000..ebe088a868 --- /dev/null +++ b/packages/mermaid/src/diagram.spec.ts @@ -0,0 +1,67 @@ +import { describe, test, expect } from 'vitest'; +import Diagram, { getDiagramFromText } from './Diagram'; +import { addDetector } from './diagram-api/detectType'; +import { addDiagrams } from './diagram-api/diagram-orchestration'; + +addDiagrams(); + +describe('diagram detection', () => { + test('should detect inbuilt diagrams', () => { + const graph = getDiagramFromText('graph TD; A-->B') as Diagram; + expect(graph).toBeInstanceOf(Diagram); + expect(graph.type).toBe('flowchart-v2'); + const sequence = getDiagramFromText( + 'sequenceDiagram; Alice->>+John: Hello John, how are you?' + ) as Diagram; + expect(sequence).toBeInstanceOf(Diagram); + expect(sequence.type).toBe('sequence'); + }); + + test('should detect external diagrams', async () => { + addDetector( + 'loki', + (str) => str.startsWith('loki'), + () => + Promise.resolve({ + id: 'loki', + diagram: { + db: {}, + parser: { + parse: () => { + // no-op + }, + parser: { + yy: {}, + }, + }, + renderer: {}, + styles: {}, + }, + }) + ); + const diagram = (await getDiagramFromText('loki TD; A-->B')) as Diagram; + expect(diagram).toBeInstanceOf(Diagram); + expect(diagram.type).toBe('loki'); + }); + + test('should throw the right error for incorrect diagram', () => { + expect(() => getDiagramFromText('graph TD; A-->')).toThrowErrorMatchingInlineSnapshot(` +"Parse error on line 3: +graph TD; A--> +--------------^ +Expecting 'AMP', 'ALPHA', 'COLON', 'PIPE', 'TESTSTR', 'DOWN', 'DEFAULT', 'NUM', 'COMMA', 'MINUS', 'BRKT', 'DOT', 'PUNCTUATION', 'UNICODE_TEXT', 'PLUS', 'EQUALS', 'MULT', 'UNDERSCORE', got 'EOF'" + `); + expect(() => getDiagramFromText('sequenceDiagram; A-->B')).toThrowErrorMatchingInlineSnapshot(` +"Parse error on line 1: +...quenceDiagram; A-->B +-----------------------^ +Expecting 'TXT', got 'NEWLINE'" + `); + }); + + test('should throw the right error for unregistered diagrams', () => { + expect(() => getDiagramFromText('thor TD; A-->B')).toThrowError( + 'No diagram type detected for text: thor TD; A-->B' + ); + }); +}); From fac3a4d29bc7335f6a9df59f2c72bb3ea094d7a6 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 12 Dec 2022 23:52:48 +0530 Subject: [PATCH 0813/1038] Bump mermaid version --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 81d1d9be92..306ab318ea 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.1", + "version": "9.3.0-rc.2", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", From 89451ca6406f27f9eb50f558bc07d98005f8e5a8 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Dec 2022 00:22:57 +0530 Subject: [PATCH 0814/1038] fix: add .js to external imports. --- cSpell.json | 1 + packages/mermaid/src/accessibility.ts | 2 +- packages/mermaid/src/mermaidAPI.ts | 14 +++++++------- packages/mermaid/src/utils.ts | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/cSpell.json b/cSpell.json index 5711d29dcc..4e9e4945a5 100644 --- a/cSpell.json +++ b/cSpell.json @@ -85,6 +85,7 @@ "sveidqvist", "techn", "teststr", + "textlength", "treemap", "ts-nocheck", "tuleap", diff --git a/packages/mermaid/src/accessibility.ts b/packages/mermaid/src/accessibility.ts index b9e088e0be..ed28ff6893 100644 --- a/packages/mermaid/src/accessibility.ts +++ b/packages/mermaid/src/accessibility.ts @@ -4,7 +4,7 @@ */ import { D3Element } from './mermaidAPI'; -import isEmpty from 'lodash-es/isEmpty'; +import isEmpty from 'lodash-es/isEmpty.js'; /** * Add aria-roledescription to the svg element to the diagramType diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 193f5a9cc5..a63071364d 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -29,7 +29,7 @@ import utils, { directiveSanitizer } from './utils'; import DOMPurify from 'dompurify'; import { MermaidConfig } from './config.type'; import { evaluate } from './diagrams/common/common'; -import isEmpty from 'lodash-es/isEmpty'; +import isEmpty from 'lodash-es/isEmpty.js'; import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility'; // diagram names that support classDef statements @@ -55,8 +55,8 @@ const IFRAME_SANDBOX_OPTS = 'allow-top-navigation-by-user-activation allow-popup const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.'; // DOMPurify settings for svgCode -const DOMPURE_TAGS = ['foreignobject']; -const DOMPURE_ATTR = ['dominant-baseline']; +const DOMPURIFY_TAGS = ['foreignobject']; +const DOMPURIFY_ATTR = ['dominant-baseline']; // This is what is returned from getClasses(...) methods. // It is slightly renamed to ..StyleClassDef instead of just ClassDef because "class" is a greatly ambiguous and overloaded word. @@ -539,8 +539,8 @@ const render = function ( } else if (!isLooseSecurityLevel) { // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: DOMPURE_TAGS, - ADD_ATTR: DOMPURE_ATTR, + ADD_TAGS: DOMPURIFY_TAGS, + ADD_ATTR: DOMPURIFY_ATTR, }); } @@ -741,8 +741,8 @@ const renderAsync = async function ( } else if (!isLooseSecurityLevel) { // Sanitize the svgCode using DOMPurify svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: DOMPURE_TAGS, - ADD_ATTR: DOMPURE_ATTR, + ADD_TAGS: DOMPURIFY_TAGS, + ADD_ATTR: DOMPURIFY_ATTR, }); } diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 767fdaa7d7..628bf37d3f 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -21,7 +21,7 @@ import { log } from './logger'; import { detectType } from './diagram-api/detectType'; import assignWithDepth from './assignWithDepth'; import { MermaidConfig } from './config.type'; -import memoize from 'lodash-es/memoize'; +import memoize from 'lodash-es/memoize.js'; // Effectively an enum of the supported curve types, accessible by name const d3CurveTypes = { From 1d529d80d12a239a621afbcb8ed060c9e9a3edfd Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Dec 2022 00:23:41 +0530 Subject: [PATCH 0815/1038] Bump mermaid version --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 306ab318ea..19e2325c1a 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.2", + "version": "9.3.0-rc.3", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", From 3c44379af9b3149bdcedb2757c6aa4d02989b0aa Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Dec 2022 00:34:31 +0530 Subject: [PATCH 0816/1038] fix: add .js to external imports. --- packages/mermaid/package.json | 2 +- packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js | 2 +- packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js | 2 +- packages/mermaid/src/diagrams/class/classRenderer-v2.js | 2 +- packages/mermaid/src/diagrams/er/erRenderer.js | 2 +- packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js | 2 +- packages/mermaid/src/diagrams/flowchart/flowRenderer.js | 2 +- .../src/diagrams/flowchart/parser/flow-direction.spec.js | 1 - packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js | 1 - packages/mermaid/src/diagrams/state/stateRenderer-v2.js | 2 +- packages/mermaid/src/utils.spec.js | 2 +- 11 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 19e2325c1a..e4ce9e93ac 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.3", + "version": "9.3.0-rc.4", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 5722f7cc08..cb80e658f2 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -1,7 +1,7 @@ /** Decorates with functions required by mermaids dagre-wrapper. */ import { log } from '../logger'; import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; export let clusterDb = {}; let descendants = {}; diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js index f594e34309..ffc3e78033 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js @@ -1,5 +1,5 @@ import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; import { validate, adjustClustersAndEdges, diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js index 3fecfcb9f8..72bc3f0b1c 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js @@ -1,5 +1,5 @@ import { select } from 'd3'; -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; import { log } from '../../logger'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index ebf338ae16..59097760ff 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; import { line, curveBasis, select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import { getConfig } from '../../config'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index 3e46aaaa5f..b09a3227d8 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; import { select, curveLinear, selectAll } from 'd3'; import flowDb from './flowDb'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index 6cbc655328..32ab311597 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; import { select, curveLinear, selectAll } from 'd3'; import { getConfig } from '../../config'; import { render as Render } from 'dagre-d3-es'; diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js index 5c20947376..7726ce0f79 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js @@ -1,6 +1,5 @@ import flowDb from '../flowDb'; import flow from './flow'; -import filter from 'lodash-es/filter'; import { setConfig } from '../../../config'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js index 5ba6a5361e..ae6f178b89 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js @@ -1,6 +1,5 @@ import flowDb from '../flowDb'; import flow from './flow'; -import filter from 'lodash-es/filter'; import { setConfig } from '../../../config'; setConfig({ diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index fa2470d6b9..625dddef40 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib'; +import * as graphlib from 'dagre-d3-es/src/graphlib.js'; import { select } from 'd3'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js index e983d21c88..e9a9fc7dcd 100644 --- a/packages/mermaid/src/utils.spec.js +++ b/packages/mermaid/src/utils.spec.js @@ -3,7 +3,7 @@ import utils from './utils'; import assignWithDepth from './assignWithDepth'; import { detectType } from './diagram-api/detectType'; import { addDiagrams } from './diagram-api/diagram-orchestration'; -import memoize from 'lodash-es/memoize'; +import memoize from 'lodash-es/memoize.js'; import { MockedD3 } from './tests/MockedD3'; addDiagrams(); From 3f0b13a1311459d52d42d31f03adb9f6a6d54097 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Dec 2022 00:38:54 +0530 Subject: [PATCH 0817/1038] fix: add .js to external imports. --- packages/mermaid/src/dagre-wrapper/index.js | 2 +- packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js | 4 ++-- packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js | 4 ++-- packages/mermaid/src/diagrams/class/classRenderer-v2.js | 2 +- packages/mermaid/src/diagrams/er/erRenderer.js | 2 +- packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js | 2 +- packages/mermaid/src/diagrams/flowchart/flowRenderer.js | 2 +- packages/mermaid/src/diagrams/state/stateRenderer-v2.js | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/mermaid/src/dagre-wrapper/index.js b/packages/mermaid/src/dagre-wrapper/index.js index e2d7d51f46..ce3ef6014a 100644 --- a/packages/mermaid/src/dagre-wrapper/index.js +++ b/packages/mermaid/src/dagre-wrapper/index.js @@ -1,5 +1,5 @@ import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; -import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; +import * as graphlibJson from 'dagre-d3-es/src/graphlib/json.js'; import insertMarkers from './markers'; import { updateNodeBounds } from './shapes/util'; import { diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index cb80e658f2..875ac4deff 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -1,7 +1,7 @@ /** Decorates with functions required by mermaids dagre-wrapper. */ import { log } from '../logger'; -import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlibJson from 'dagre-d3-es/src/graphlib/json.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; export let clusterDb = {}; let descendants = {}; diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js index ffc3e78033..25fb75d643 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js @@ -1,5 +1,5 @@ -import * as graphlibJson from 'dagre-d3-es/src/graphlib/json'; -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlibJson from 'dagre-d3-es/src/graphlib/json.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { validate, adjustClustersAndEdges, diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js index 72bc3f0b1c..d95c29fd5f 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js @@ -1,5 +1,5 @@ import { select } from 'd3'; -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { log } from '../../logger'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 59097760ff..e8b80b6468 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { line, curveBasis, select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import { getConfig } from '../../config'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index b09a3227d8..29c7ba07a9 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { select, curveLinear, selectAll } from 'd3'; import flowDb from './flowDb'; diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index 32ab311597..63234b57cc 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { select, curveLinear, selectAll } from 'd3'; import { getConfig } from '../../config'; import { render as Render } from 'dagre-d3-es'; diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 625dddef40..ebe18535d9 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -1,4 +1,4 @@ -import * as graphlib from 'dagre-d3-es/src/graphlib.js'; +import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { select } from 'd3'; import { getConfig } from '../../config'; import { render } from '../../dagre-wrapper/index.js'; From 9f9c95b0b3b6ac651df4f78721b9daf34c489a7a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Dec 2022 13:42:07 +0530 Subject: [PATCH 0818/1038] fix: Incorrect removal of existing elements --- docs/config/setup/modules/mermaidAPI.md | 19 +++--- packages/mermaid/src/mermaidAPI.spec.ts | 85 +++++++++++-------------- packages/mermaid/src/mermaidAPI.ts | 23 +++---- 3 files changed, 53 insertions(+), 74 deletions(-) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 1b840dcd3c..40e4b567f3 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -90,7 +90,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:968](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L968) +[mermaidAPI.ts:961](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L961) ## Functions @@ -295,19 +295,18 @@ Put the svgCode into an iFrame. Return the iFrame code ### removeExistingElements -▸ **removeExistingElements**(`doc`, `isSandboxed`, `id`, `divSelector`, `iFrameSelector`): `void` +▸ **removeExistingElements**(`doc`, `id`, `divId`, `iFrameId`): `void` Remove any existing elements from the given document #### Parameters -| Name | Type | Description | -| :--------------- | :--------- | :---------------------------------------------- | -| `doc` | `Document` | the document to removed elements from | -| `isSandboxed` | `boolean` | whether or not we are in sandboxed mode | -| `id` | `string` | id for any existing SVG element | -| `divSelector` | `string` | selector for any existing enclosing div element | -| `iFrameSelector` | `string` | selector for any existing iFrame element | +| Name | Type | Description | +| :--------- | :--------- | :------------------------------------ | +| `doc` | `Document` | the document to removed elements from | +| `id` | `string` | id for any existing SVG element | +| `divId` | `string` | - | +| `iFrameId` | `string` | - | #### Returns @@ -315,4 +314,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:336](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L336) +[mermaidAPI.ts:335](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L335) diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index f9bad66d71..d2fd49f34b 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -470,61 +470,48 @@ describe('mermaidAPI', function () { svgElement.id = svgId; const tempDivElement = givenDocument.createElement('div'); // doesn't matter what the tag is in the test tempDivElement.id = tempDivId; - const tempiFrameElement = givenDocument.createElement('div'); // doesn't matter what the tag is in the test + const tempiFrameElement = givenDocument.createElement('iframe'); // doesn't matter what the tag is in the test tempiFrameElement.id = tempIframeId; it('removes an existing element with given id', () => { rootHtml.appendChild(svgElement); + rootHtml.append(tempDivElement); + rootHtml.append(tempiFrameElement); + expect(givenDocument.getElementById(svgElement.id)).toEqual(svgElement); - removeExistingElements(givenDocument, false, svgId, tempDivId, tempIframeId); + expect(givenDocument.getElementById(tempDivElement.id)).toEqual(tempDivElement); + expect(givenDocument.getElementById(tempiFrameElement.id)).toEqual(tempiFrameElement); + removeExistingElements(givenDocument, svgId, tempDivId, tempIframeId); expect(givenDocument.getElementById(svgElement.id)).toBeNull(); - }); - - describe('is in sandboxed mode', () => { - const inSandboxedMode = true; - - it('removes an existing element with the given iFrame selector', () => { - tempiFrameElement.append(svgElement); - rootHtml.append(tempiFrameElement); - rootHtml.append(tempDivElement); - - expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); - expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); - expect(givenDocument.getElementById(svgId)).toEqual(svgElement); - removeExistingElements( - givenDocument, - inSandboxedMode, - svgId, - '#' + tempDivId, - '#' + tempIframeId - ); - expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); - expect(givenDocument.getElementById(tempIframeId)).toBeNull(); - expect(givenDocument.getElementById(svgId)).toBeNull(); - }); - }); - describe('not in sandboxed mode', () => { - const inSandboxedMode = false; - - it('removes an existing element with the given enclosing div selector', () => { - tempDivElement.append(svgElement); - rootHtml.append(tempDivElement); - rootHtml.append(tempiFrameElement); - - expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); - expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); - expect(givenDocument.getElementById(svgId)).toEqual(svgElement); - removeExistingElements( - givenDocument, - inSandboxedMode, - svgId, - '#' + tempDivId, - '#' + tempIframeId - ); - expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); - expect(givenDocument.getElementById(tempDivId)).toBeNull(); - expect(givenDocument.getElementById(svgId)).toBeNull(); - }); + expect(givenDocument.getElementById(tempDivElement.id)).toBeNull(); + expect(givenDocument.getElementById(tempiFrameElement.id)).toBeNull(); + }); + + it('removes an existing iframe element even if div element is absent', () => { + tempiFrameElement.append(svgElement); + rootHtml.append(tempiFrameElement); + + expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); + expect(givenDocument.getElementById(tempDivId)).toBeNull(); + expect(givenDocument.getElementById(svgId)).toEqual(svgElement); + removeExistingElements(givenDocument, svgId, tempDivId, tempIframeId); + expect(givenDocument.getElementById(tempDivId)).toBeNull(); + expect(givenDocument.getElementById(tempIframeId)).toBeNull(); + expect(givenDocument.getElementById(svgId)).toBeNull(); + }); + + it('removes both existing div and iframe elements when both are present', () => { + tempDivElement.append(svgElement); + rootHtml.append(tempDivElement); + rootHtml.append(tempiFrameElement); + + expect(givenDocument.getElementById(tempIframeId)).toEqual(tempiFrameElement); + expect(givenDocument.getElementById(tempDivId)).toEqual(tempDivElement); + expect(givenDocument.getElementById(svgId)).toEqual(svgElement); + removeExistingElements(givenDocument, svgId, tempDivId, tempIframeId); + expect(givenDocument.getElementById(tempIframeId)).toBeNull(); + expect(givenDocument.getElementById(tempDivId)).toBeNull(); + expect(givenDocument.getElementById(svgId)).toBeNull(); }); }); diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index a63071364d..5bf11fad18 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -328,29 +328,22 @@ function sandboxedIframe(parentNode: D3Element, iFrameId: string): D3Element { * Remove any existing elements from the given document * * @param doc - the document to removed elements from - * @param isSandboxed - whether or not we are in sandboxed mode * @param id - id for any existing SVG element * @param divSelector - selector for any existing enclosing div element * @param iFrameSelector - selector for any existing iFrame element */ export const removeExistingElements = ( doc: Document, - isSandboxed: boolean, id: string, - divSelector: string, - iFrameSelector: string + divId: string, + iFrameId: string ) => { // Remove existing SVG element if it exists - const existingSvg = doc.getElementById(id); - if (existingSvg) { - existingSvg.remove(); - } - + doc.getElementById(id)?.remove(); // Remove previous temporary element if it exists - const element = isSandboxed ? doc.querySelector(iFrameSelector) : doc.querySelector(divSelector); - if (element) { - element.remove(); - } + // Both div and iframe needs to be cleared in case there is a config change happening between renders. + doc.getElementById(divId)?.remove(); + doc.getElementById(iFrameId)?.remove(); }; /** @@ -443,7 +436,7 @@ const render = function ( // No svgContainingElement was provided // If there is an existing element with the id, we remove it. This likely a previously rendered diagram - removeExistingElements(document, isSandboxed, id, iFrameID_selector, enclosingDivID_selector); + removeExistingElements(document, id, enclosingDivID, iFrameID); // Add the temporary div used for rendering with the enclosingDivID. // This temporary div will contain a svg with the id == id @@ -650,7 +643,7 @@ const renderAsync = async function ( // No svgContainingElement was provided // If there is an existing element with the id, we remove it. This likely a previously rendered diagram - removeExistingElements(document, isSandboxed, id, iFrameID_selector, enclosingDivID_selector); + removeExistingElements(document, id, enclosingDivID, iFrameID); // Add the temporary div used for rendering with the enclosingDivID. // This temporary div will contain a svg with the id == id From 2176bef537dbf668c5782ca22af8a777ad61b43d Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 13 Dec 2022 13:44:03 +0530 Subject: [PATCH 0819/1038] Bump mermaid version --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index e4ce9e93ac..1a271f27a4 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.4", + "version": "9.3.0-rc.5", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", From 16b51800d0dd4c2271c2ea569d23f9eb12061551 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 14 Dec 2022 09:45:18 +0530 Subject: [PATCH 0820/1038] Update dagre-es --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 20 +++++--------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 1a271f27a4..3fa78bfe12 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -54,7 +54,7 @@ "dependencies": { "@braintree/sanitize-url": "^6.0.0", "d3": "^7.0.0", - "dagre-d3-es": "7.0.4", + "dagre-d3-es": "7.0.5", "dompurify": "2.4.1", "khroma": "^2.0.0", "lodash-es": "^4.17.21", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55d7758012..3a91957380 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -173,8 +173,8 @@ importers: specifier: ^7.0.0 version: 7.6.1 dagre-d3-es: - specifier: 7.0.4 - version: 7.0.4 + specifier: 7.0.5 + version: 7.0.5 dompurify: specifier: 2.4.1 version: 2.4.1 @@ -4899,8 +4899,8 @@ packages: d3-zoom: 3.0.0 dev: false - /dagre-d3-es/7.0.4: - resolution: {integrity: sha512-fQL8ldFR9UYpecz48d1smrXNJ9zGUK38Vl5OzX6Fhn9LR+oQh0GzHRPQylP5kWawmMTKm1QtqcHMVySMJ5CYaQ==} + /dagre-d3-es/7.0.5: + resolution: {integrity: sha512-E42LEJ3KFzXCwNlYkY69HOlksJ2g+uuRIZkHd09Fe0yxOJqzHIzVn78Myjv8ZwFpFt9Izax2KHOK6B/GHfawTA==} dependencies: d3: 7.6.1 lodash-es: 4.17.21 @@ -6161,16 +6161,6 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -6715,7 +6705,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 requires-port: 1.0.0 transitivePeerDependencies: - debug From d194e78677d398b9e5a3a083388857ffe48deff2 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 14 Dec 2022 09:45:34 +0530 Subject: [PATCH 0821/1038] Bump mermaid version --- packages/mermaid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 3fa78bfe12..87837f81dd 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.5", + "version": "9.3.0-rc.6", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", From 152994047e74edd5731bde1dcedbad5602ad1c4e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 15 Dec 2022 09:12:08 +0530 Subject: [PATCH 0822/1038] bump dagre-es 7.0.6 --- packages/mermaid/package.json | 4 +-- pnpm-lock.yaml | 46 +++++++++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 87837f81dd..96f0a1c49d 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.6", + "version": "9.3.0-rc.7", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", @@ -54,7 +54,7 @@ "dependencies": { "@braintree/sanitize-url": "^6.0.0", "d3": "^7.0.0", - "dagre-d3-es": "7.0.5", + "dagre-d3-es": "7.0.6", "dompurify": "2.4.1", "khroma": "^2.0.0", "lodash-es": "^4.17.21", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a91957380..af68b53403 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -173,8 +173,8 @@ importers: specifier: ^7.0.0 version: 7.6.1 dagre-d3-es: - specifier: 7.0.5 - version: 7.0.5 + specifier: 7.0.6 + version: 7.0.6 dompurify: specifier: 2.4.1 version: 2.4.1 @@ -4899,10 +4899,46 @@ packages: d3-zoom: 3.0.0 dev: false - /dagre-d3-es/7.0.5: - resolution: {integrity: sha512-E42LEJ3KFzXCwNlYkY69HOlksJ2g+uuRIZkHd09Fe0yxOJqzHIzVn78Myjv8ZwFpFt9Izax2KHOK6B/GHfawTA==} + /d3/7.7.0: + resolution: {integrity: sha512-VEwHCMgMjD2WBsxeRGUE18RmzxT9Bn7ghDpzvTEvkLSBAKgTMydJjouZTjspgQfRHpPt/PB3EHWBa6SSyFQq4g==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.0 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.0 + d3-delaunay: 6.0.2 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.0.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.0.1 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.0.0 + d3-selection: 3.0.0 + d3-shape: 3.1.0 + d3-time: 3.0.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1_d3-selection@3.0.0 + d3-zoom: 3.0.0 + dev: false + + /dagre-d3-es/7.0.6: + resolution: {integrity: sha512-CaaE/nZh205ix+Up4xsnlGmpog5GGm81Upi2+/SBHxwNwrccBb3K51LzjZ1U6hgvOlAEUsVWf1xSTzCyKpJ6+Q==} dependencies: - d3: 7.6.1 + d3: 7.7.0 lodash-es: 4.17.21 dev: false From 774512df570b8105ea535ebc88daafbf2d4ded2b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 15 Dec 2022 14:18:54 +0530 Subject: [PATCH 0823/1038] v9.3.0 --- packages/mermaid-mindmap/package.json | 4 ++-- packages/mermaid/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 2795cf73b2..0f1a98303b 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -1,7 +1,7 @@ { "name": "@mermaid-js/mermaid-mindmap", - "version": "9.3.0-rc1", - "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", + "version": "9.3.0", + "description": "Mindmap diagram module for MermaidJS.", "module": "dist/mermaid-mindmap.core.mjs", "types": "dist/detector.d.ts", "type": "module", diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 96f0a1c49d..24d17fd36e 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0-rc.7", + "version": "9.3.0", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", From bbc4e90c8910a835e4f34a397148bbd3d1d208e9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 15 Dec 2022 14:57:08 +0530 Subject: [PATCH 0824/1038] fix Top level await --- .../mermaid/src/docs/.vitepress/theme/mermaid.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts index b287346f94..e9a038ec4c 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts @@ -1,13 +1,16 @@ import mermaid, { type MermaidConfig } from 'mermaid'; import mindmap from '@mermaid-js/mermaid-mindmap'; -try { - await mermaid.registerExternalDiagrams([mindmap]); -} catch (e) { - console.error(e); -} +const init = (async () => { + try { + await mermaid.registerExternalDiagrams([mindmap]); + } catch (e) { + console.error(e); + } +})(); export const render = async (id: string, code: string, config: MermaidConfig): Promise => { + await init; mermaid.initialize(config); const svg = await mermaid.renderAsync(id, code); return svg; From 3fb0b2792eb726af9c8f088e1c1076f0b0173b4a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 15 Dec 2022 15:33:51 +0530 Subject: [PATCH 0825/1038] fix: Add icon css --- docs/syntax/mindmap.md | 2 +- packages/mermaid/src/docs/.vitepress/theme/custom.css | 3 +++ packages/mermaid/src/docs/syntax/mindmap.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 0214a55126..7e1d9c0808 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -180,7 +180,7 @@ More shapes will be added, beginning with the shapes available in flowcharts. # Icons and classes -## icons +## Icons As with flowcharts you can add icons to your nodes but with an updated syntax. The styling for the font based icons are added during the integration so that they are available for the web page. _This is not something a diagram author can do but has to be done with the site administrator or the integrator_. Once the icon fonts are in place you add them to the mind map nodes using the `::icon()` syntax. You place the classes for the icon within the parenthesis like in the following example where icons for material design and fontawesome 4 are displayed. The intention is that this approach should be used for all diagrams supporting icons. **Experimental feature:** This wider scope is also the reason Mindmaps are experimental as this syntax and approach could change. diff --git a/packages/mermaid/src/docs/.vitepress/theme/custom.css b/packages/mermaid/src/docs/.vitepress/theme/custom.css index e1ef049cdf..28ef8d3385 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/custom.css +++ b/packages/mermaid/src/docs/.vitepress/theme/custom.css @@ -1,3 +1,6 @@ +@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css'); +@import url('https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css'); + :root { --vp-c-brand: #ff3670; --vp-c-brand-light: #ff5e8c; diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md index beaae7ad56..3b737a5721 100644 --- a/packages/mermaid/src/docs/syntax/mindmap.md +++ b/packages/mermaid/src/docs/syntax/mindmap.md @@ -112,7 +112,7 @@ More shapes will be added, beginning with the shapes available in flowcharts. # Icons and classes -## icons +## Icons As with flowcharts you can add icons to your nodes but with an updated syntax. The styling for the font based icons are added during the integration so that they are available for the web page. _This is not something a diagram author can do but has to be done with the site administrator or the integrator_. Once the icon fonts are in place you add them to the mind map nodes using the `::icon()` syntax. You place the classes for the icon within the parenthesis like in the following example where icons for material design and fontawesome 4 are displayed. The intention is that this approach should be used for all diagrams supporting icons. **Experimental feature:** This wider scope is also the reason Mindmaps are experimental as this syntax and approach could change. From d841ad8f3ecc34e4091bc8c1eaaa981e6d7e2c2a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 15 Dec 2022 17:09:24 +0530 Subject: [PATCH 0826/1038] Update vitepress --- packages/mermaid/package.json | 4 +- pnpm-lock.yaml | 438 +++++++++++++++++++++++++++------- 2 files changed, 360 insertions(+), 82 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 24d17fd36e..f31fac80ba 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -93,8 +93,8 @@ "typedoc-plugin-markdown": "^3.13.6", "typescript": "^4.8.4", "unist-util-flatmap": "^1.0.0", - "vitepress": "^1.0.0-alpha.28", - "vitepress-plugin-search": "^1.0.4-alpha.15" + "vitepress": "^1.0.0-alpha.31", + "vitepress-plugin-search": "^1.0.4-alpha.16" }, "files": [ "dist", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af68b53403..01cb0787e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -285,11 +285,11 @@ importers: specifier: ^1.0.0 version: 1.0.0 vitepress: - specifier: ^1.0.0-alpha.28 - version: 1.0.0-alpha.28_tbpndr44ulefs3hehwpi2mkf2y + specifier: ^1.0.0-alpha.31 + version: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y vitepress-plugin-search: - specifier: ^1.0.4-alpha.15 - version: 1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54 + specifier: ^1.0.4-alpha.16 + version: 1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am packages/mermaid-example-diagram: devDependencies: @@ -1727,6 +1727,96 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.16.7: + resolution: {integrity: sha512-yhzDbiVcmq6T1/XEvdcJIVcXHdLjDJ5cQ0Dp9R9p9ERMBTeO1dR5tc8YYv8zwDeBw1xZm+Eo3MRo8cwclhBS0g==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.16.7: + resolution: {integrity: sha512-tYFw0lBJSEvLoGzzYh1kXuzoX1iPkbOk3O29VqzQb0HbOy7t/yw1hGkvwoJhXHwzQUPsShyYcTgRf6bDBcfnTw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.7: + resolution: {integrity: sha512-3P2OuTxwAtM3k/yEWTNUJRjMPG1ce8rXs51GTtvEC5z1j8fC1plHeVVczdeHECU7aM2/Buc0MwZ6ciM/zysnWg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.7: + resolution: {integrity: sha512-VUb9GK23z8jkosHU9yJNUgQpsfJn+7ZyBm6adi2Ec5/U241eR1tAn82QicnUzaFDaffeixiHwikjmnec/YXEZg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.7: + resolution: {integrity: sha512-duterlv3tit3HI9vhzMWnSVaB1B6YsXpFq1Ntd6Fou82BB1l4tucYy3FI9dHv3tvtDuS0NiGf/k6XsdBqPZ01w==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.7: + resolution: {integrity: sha512-9kkycpBFes/vhi7B7o0cf+q2WdJi+EpVzpVTqtWFNiutARWDFFLcB93J8PR1cG228sucsl3B+7Ts27izE6qiaQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.7: + resolution: {integrity: sha512-5Ahf6jzWXJ4J2uh9dpy5DKOO+PeRUE/9DMys6VuYfwgQzd6n5+pVFm58L2Z2gRe611RX6SdydnNaiIKM3svY7g==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.7: + resolution: {integrity: sha512-QqJnyCfu5OF78Olt7JJSZ7OSv/B4Hf+ZJWp4kkq9xwMsgu7yWq3crIic8gGOpDYTqVKKMDAVDgRXy5Wd/nWZyQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.7: + resolution: {integrity: sha512-2wv0xYDskk2+MzIm/AEprDip39a23Chptc4mL7hsHg26P0gD8RUhzmDu0KCH2vMThUI1sChXXoK9uH0KYQKaDg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.7: + resolution: {integrity: sha512-APVYbEilKbD5ptmKdnIcXej2/+GdV65TfTjxR2Uk8t1EsOk49t6HapZW6DS/Bwlvh5hDwtLapdSumIVNGxgqLg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.15.13: resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} engines: {node: '>=12'} @@ -1736,6 +1826,114 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.16.7: + resolution: {integrity: sha512-5wPUAGclplQrAW7EFr3F84Y/d++7G0KykohaF4p54+iNWhUnMVU8Bh2sxiEOXUy4zKIdpHByMgJ5/Ko6QhtTUw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.16.7: + resolution: {integrity: sha512-hxzlXtWF6yWfkE/SMTscNiVqLOAn7fOuIF3q/kiZaXxftz1DhZW/HpnTmTTWrzrS7zJWQxHHT4QSxyAj33COmA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.7: + resolution: {integrity: sha512-WM83Dac0LdXty5xPhlOuCD5Egfk1xLND/oRLYeB7Jb/tY4kzFSDgLlq91wYbHua/s03tQGA9iXvyjgymMw62Vw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.7: + resolution: {integrity: sha512-3nkNnNg4Ax6MS/l8O8Ynq2lGEVJYyJ2EoY3PHjNJ4PuZ80EYLMrFTFZ4L/Hc16AxgtXKwmNP9TM0YKNiBzBiJQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.7: + resolution: {integrity: sha512-3SA/2VJuv0o1uD7zuqxEP+RrAyRxnkGddq0bwHQ98v1KNlzXD/JvxwTO3T6GM5RH6JUd29RTVQTOJfyzMkkppA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.7: + resolution: {integrity: sha512-xi/tbqCqvPIzU+zJVyrpz12xqciTAPMi2fXEWGnapZymoGhuL2GIWIRXg4O2v5BXaYA5TSaiKYE14L0QhUTuQg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.7: + resolution: {integrity: sha512-NUsYbq3B+JdNKn8SXkItFvdes9qTwEoS3aLALtiWciW/ystiCKM20Fgv9XQBOXfhUHyh5CLEeZDXzLOrwBXuCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.7: + resolution: {integrity: sha512-qjwzsgeve9I8Tbsko2FEkdSk2iiezuNGFgipQxY/736NePXDaDZRodIejYGWOlbYXugdxb0nif5yvypH6lKBmA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.7: + resolution: {integrity: sha512-mFWDz4RoBTzPphTCkM7Kc7Qpa0o/Z01acajR+Ai7LdfKgcP/C6jYOaKwv7nKzD0+MjOT20j7You9g4ozYy1dKQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.7: + resolution: {integrity: sha512-m39UmX19RvEIuC8sYZ0M+eQtdXw4IePDSZ78ZQmYyFaXY9krq4YzQCK2XWIJomNLtg4q+W5aXr8bW3AbqWNoVg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.7: + resolution: {integrity: sha512-1cbzSEZA1fANwmT6rjJ4G1qQXHxCxGIcNYFYR9ctI82/prT38lnwSRZ0i5p/MVXksw9eMlHlet6pGu2/qkXFCg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.7: + resolution: {integrity: sha512-QaQ8IH0JLacfGf5cf0HCCPnQuCTd/dAI257vXBgb/cccKGbH/6pVtI1gwhdAQ0Y48QSpTIFrh9etVyNdZY+zzw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint/eslintrc/1.3.3: resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2853,15 +3051,15 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/3.2.0_vite@3.2.3+vue@3.2.41: - resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} + /@vitejs/plugin-vue/4.0.0_vite@4.0.1+vue@3.2.45: + resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^3.0.0 + vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 3.2.3 - vue: 3.2.41 + vite: 4.0.1 + vue: 3.2.45 dev: true /@vitest/coverage-c8/0.25.1_oullksb5ic6y72oh2wekoaiuii: @@ -2889,114 +3087,113 @@ packages: sirv: 2.0.2 dev: true - /@vue/compiler-core/3.2.41: - resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} + /@vue/compiler-core/3.2.45: + resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==} dependencies: '@babel/parser': 7.19.1 - '@vue/shared': 3.2.41 + '@vue/shared': 3.2.45 estree-walker: 2.0.2 source-map: 0.6.1 dev: true - /@vue/compiler-dom/3.2.41: - resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} + /@vue/compiler-dom/3.2.45: + resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==} dependencies: - '@vue/compiler-core': 3.2.41 - '@vue/shared': 3.2.41 + '@vue/compiler-core': 3.2.45 + '@vue/shared': 3.2.45 dev: true - /@vue/compiler-sfc/3.2.41: - resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} - requiresBuild: true + /@vue/compiler-sfc/3.2.45: + resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==} dependencies: '@babel/parser': 7.19.1 - '@vue/compiler-core': 3.2.41 - '@vue/compiler-dom': 3.2.41 - '@vue/compiler-ssr': 3.2.41 - '@vue/reactivity-transform': 3.2.41 - '@vue/shared': 3.2.41 + '@vue/compiler-core': 3.2.45 + '@vue/compiler-dom': 3.2.45 + '@vue/compiler-ssr': 3.2.45 + '@vue/reactivity-transform': 3.2.45 + '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 postcss: 8.4.18 source-map: 0.6.1 dev: true - /@vue/compiler-ssr/3.2.41: - resolution: {integrity: sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==} + /@vue/compiler-ssr/3.2.45: + resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==} dependencies: - '@vue/compiler-dom': 3.2.41 - '@vue/shared': 3.2.41 + '@vue/compiler-dom': 3.2.45 + '@vue/shared': 3.2.45 dev: true /@vue/devtools-api/6.4.5: resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} dev: true - /@vue/reactivity-transform/3.2.41: - resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} + /@vue/reactivity-transform/3.2.45: + resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==} dependencies: '@babel/parser': 7.19.1 - '@vue/compiler-core': 3.2.41 - '@vue/shared': 3.2.41 + '@vue/compiler-core': 3.2.45 + '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 dev: true - /@vue/reactivity/3.2.41: - resolution: {integrity: sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==} + /@vue/reactivity/3.2.45: + resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} dependencies: - '@vue/shared': 3.2.41 + '@vue/shared': 3.2.45 dev: true - /@vue/runtime-core/3.2.41: - resolution: {integrity: sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==} + /@vue/runtime-core/3.2.45: + resolution: {integrity: sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==} dependencies: - '@vue/reactivity': 3.2.41 - '@vue/shared': 3.2.41 + '@vue/reactivity': 3.2.45 + '@vue/shared': 3.2.45 dev: true - /@vue/runtime-dom/3.2.41: - resolution: {integrity: sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==} + /@vue/runtime-dom/3.2.45: + resolution: {integrity: sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==} dependencies: - '@vue/runtime-core': 3.2.41 - '@vue/shared': 3.2.41 + '@vue/runtime-core': 3.2.45 + '@vue/shared': 3.2.45 csstype: 2.6.21 dev: true - /@vue/server-renderer/3.2.41_vue@3.2.41: - resolution: {integrity: sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==} + /@vue/server-renderer/3.2.45_vue@3.2.45: + resolution: {integrity: sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==} peerDependencies: - vue: 3.2.41 + vue: 3.2.45 dependencies: - '@vue/compiler-ssr': 3.2.41 - '@vue/shared': 3.2.41 - vue: 3.2.41 + '@vue/compiler-ssr': 3.2.45 + '@vue/shared': 3.2.45 + vue: 3.2.45 dev: true - /@vue/shared/3.2.41: - resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==} + /@vue/shared/3.2.45: + resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} dev: true - /@vueuse/core/9.4.0_vue@3.2.41: - resolution: {integrity: sha512-JzgenGj1ZF2BHOen5rsFiAyyI9sXAv7aKhNLlm9b7SwYQeKTcxTWdhudonURCSP3Egl9NQaRBzes2lv/1JUt/Q==} + /@vueuse/core/9.6.0_vue@3.2.45: + resolution: {integrity: sha512-qGUcjKQXHgN+jqXEgpeZGoxdCbIDCdVPz3QiF1uyecVGbMuM63o96I1GjYx5zskKgRI0FKSNsVWM7rwrRMTf6A==} dependencies: '@types/web-bluetooth': 0.0.16 - '@vueuse/metadata': 9.4.0 - '@vueuse/shared': 9.4.0_vue@3.2.41 - vue-demi: 0.13.11_vue@3.2.41 + '@vueuse/metadata': 9.6.0 + '@vueuse/shared': 9.6.0_vue@3.2.45 + vue-demi: 0.13.11_vue@3.2.45 transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata/9.4.0: - resolution: {integrity: sha512-7GKMdGAsJyQJl35MYOz/RDpP0FxuiZBRDSN79QIPbdqYx4Sd0sVTnIC68KJ6Oln0t0SouvSUMvRHuno216Ud2Q==} + /@vueuse/metadata/9.6.0: + resolution: {integrity: sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w==} dev: true - /@vueuse/shared/9.4.0_vue@3.2.41: - resolution: {integrity: sha512-fTuem51KwMCnqUKkI8B57qAIMcFovtGgsCtAeqxIzH3i6nE9VYge+gVfneNHAAy7lj8twbkNfqQSygOPJTm4tQ==} + /@vueuse/shared/9.6.0_vue@3.2.45: + resolution: {integrity: sha512-/eDchxYYhkHnFyrb00t90UfjCx94kRHxc7J1GtBCqCG4HyPMX+krV9XJgVtWIsAMaxKVU4fC8NSUviG1JkwhUQ==} dependencies: - vue-demi: 0.13.11_vue@3.2.41 + vue-demi: 0.13.11_vue@3.2.45 transitivePeerDependencies: - '@vue/composition-api' - vue @@ -5541,6 +5738,36 @@ packages: esbuild-windows-arm64: 0.15.13 dev: true + /esbuild/0.16.7: + resolution: {integrity: sha512-P6OBFYFSQOGzfApqCeYKqfKRRbCIRsdppTXFo4aAvtiW3o8TTyiIplBvHJI171saPAiy3WlawJHCveJVIOIx1A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.7 + '@esbuild/android-arm64': 0.16.7 + '@esbuild/android-x64': 0.16.7 + '@esbuild/darwin-arm64': 0.16.7 + '@esbuild/darwin-x64': 0.16.7 + '@esbuild/freebsd-arm64': 0.16.7 + '@esbuild/freebsd-x64': 0.16.7 + '@esbuild/linux-arm': 0.16.7 + '@esbuild/linux-arm64': 0.16.7 + '@esbuild/linux-ia32': 0.16.7 + '@esbuild/linux-loong64': 0.16.7 + '@esbuild/linux-mips64el': 0.16.7 + '@esbuild/linux-ppc64': 0.16.7 + '@esbuild/linux-riscv64': 0.16.7 + '@esbuild/linux-s390x': 0.16.7 + '@esbuild/linux-x64': 0.16.7 + '@esbuild/netbsd-x64': 0.16.7 + '@esbuild/openbsd-x64': 0.16.7 + '@esbuild/sunos-x64': 0.16.7 + '@esbuild/win32-arm64': 0.16.7 + '@esbuild/win32-ia32': 0.16.7 + '@esbuild/win32-x64': 0.16.7 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -9057,6 +9284,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss/8.4.20: + resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /preact/10.11.0: resolution: {integrity: sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==} dev: true @@ -9520,6 +9756,14 @@ packages: fsevents: 2.3.2 dev: true + /rollup/3.7.4: + resolution: {integrity: sha512-jN9rx3k5pfg9H9al0r0y1EYKSeiRANZRYX32SuNXAnKzh6cVyf4LZVto1KAuDnbHT03E1CpsgqDKaqQ8FZtgxw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -9873,6 +10117,7 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead dev: true /spawn-command/0.0.2-1: @@ -10774,8 +11019,41 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-search/1.0.4-alpha.15_s3edpouswd4dgoi2en7bdlrp54: - resolution: {integrity: sha512-Ef/VkhTVYlECVI0H9Ck6745UNPfYFppAqnlxVSMJXdxP2vjOZ5TYNczlTTQ2p9dh16MFw/IurbL1/GrG4nXdNw==} + /vite/4.0.1: + resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.16.7 + postcss: 8.4.20 + resolve: 1.22.1 + rollup: 3.7.4 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitepress-plugin-search/1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am: + resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: flexsearch: ^0.7.31 @@ -10788,23 +11066,23 @@ packages: flexsearch: 0.7.31 markdown-it: 13.0.1 vite: 3.2.3 - vitepress: 1.0.0-alpha.28_tbpndr44ulefs3hehwpi2mkf2y - vue: 3.2.41 + vitepress: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y + vue: 3.2.45 dev: true - /vitepress/1.0.0-alpha.28_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-pvbLssDMgLUN1terajmPlFBxHSDGO4DqwexKbjFyr7LeELerVuwGrG6F2J1hxmwOlbpLd1kHXEDqGm9JX/kTDQ==} + /vitepress/1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-FWFXLs7WLbFbemxjBWo2S2+qUZCIoeLLyAKfVUpIu3LUB8oQ8cyIANRGO6f6zsM51u2bvJU9Sm+V6Z0WjOWS2Q==} hasBin: true dependencies: '@docsearch/css': 3.3.0 '@docsearch/js': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.41 + '@vitejs/plugin-vue': 4.0.0_vite@4.0.1+vue@3.2.45 '@vue/devtools-api': 6.4.5 - '@vueuse/core': 9.4.0_vue@3.2.41 + '@vueuse/core': 9.6.0_vue@3.2.45 body-scroll-lock: 4.0.0-beta.0 shiki: 0.11.1 - vite: 3.2.3 - vue: 3.2.41 + vite: 4.0.1 + vue: 3.2.45 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -10956,7 +11234,7 @@ packages: resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} dev: true - /vue-demi/0.13.11_vue@3.2.41: + /vue-demi/0.13.11_vue@3.2.45: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true @@ -10968,17 +11246,17 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.41 + vue: 3.2.45 dev: true - /vue/3.2.41: - resolution: {integrity: sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==} + /vue/3.2.45: + resolution: {integrity: sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==} dependencies: - '@vue/compiler-dom': 3.2.41 - '@vue/compiler-sfc': 3.2.41 - '@vue/runtime-dom': 3.2.41 - '@vue/server-renderer': 3.2.41_vue@3.2.41 - '@vue/shared': 3.2.41 + '@vue/compiler-dom': 3.2.45 + '@vue/compiler-sfc': 3.2.45 + '@vue/runtime-dom': 3.2.45 + '@vue/server-renderer': 3.2.45_vue@3.2.45 + '@vue/shared': 3.2.45 dev: true /w3c-hr-time/1.0.2: From 9f2d29b68b00d9719add89b4f23938ff2db45077 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Thu, 15 Dec 2022 06:09:22 -0800 Subject: [PATCH 0827/1038] fix typescript error --- packages/mermaid/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 767fdaa7d7..7c844ca8c4 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -194,7 +194,7 @@ export const isSubstringInArray = function (str: string, arr: string[]): number * @param defaultCurve - The default curve to return * @returns The curve factory to use */ -export function interpolateToCurve(interpolate?: string, defaultCurve: CurveFactory): CurveFactory { +export function interpolateToCurve(interpolate: string | undefined, defaultCurve: CurveFactory): CurveFactory { if (!interpolate) { return defaultCurve; } From 78dd03dcdbae77ebf5cb163209be48dbb594d7a2 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Thu, 15 Dec 2022 09:29:30 -0500 Subject: [PATCH 0828/1038] lint --- packages/mermaid/src/utils.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 7c844ca8c4..70e47531fb 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -194,7 +194,10 @@ export const isSubstringInArray = function (str: string, arr: string[]): number * @param defaultCurve - The default curve to return * @returns The curve factory to use */ -export function interpolateToCurve(interpolate: string | undefined, defaultCurve: CurveFactory): CurveFactory { +export function interpolateToCurve( + interpolate: string | undefined, + defaultCurve: CurveFactory +): CurveFactory { if (!interpolate) { return defaultCurve; } From 992d1623a7168d98894452ef4932dca9f7e6e123 Mon Sep 17 00:00:00 2001 From: BD103 <59022059+BD103@users.noreply.github.com> Date: Thu, 15 Dec 2022 09:46:00 -0500 Subject: [PATCH 0829/1038] chore: update docs folder --- docs/config/theming.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/config/theming.md b/docs/config/theming.md index cfd86caa0b..ee5831fbb0 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -16,15 +16,15 @@ Themes follow and build upon the Levels of Configuration, and employ `directives The following are a list of **Deployable themes**, sample `%%init%%` directives and `initialize` calls. -1. **base**- Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes. +1. [**base**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-base.js) - Designed to be modified, as the name implies it is supposed to be used as the base for making custom themes. -2. **forest**- A theme full of light greens that is easy on the eyes. +2. [**forest**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-forest.js) - A theme full of light greens that is easy on the eyes. -3. **dark**- A theme that would go well with other dark-colored elements. +3. [**dark**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-dark.js) - A theme that would go well with other dark-colored elements. -4. **default**- The default theme for all diagrams. +4. [**default**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-default.js) - The default theme for all diagrams. -5. **neutral**- The theme to be used for black and white printing. +5. [**neutral**](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/themes/theme-neutral.js) - The theme to be used for black and white printing. ## Site-wide Themes From 2141057ab49fbfb4a7ddcfd959032820aeaa1c56 Mon Sep 17 00:00:00 2001 From: ashishj Date: Thu, 15 Dec 2022 17:00:53 +0100 Subject: [PATCH 0830/1038] add more runnning examples --- cypress/platform/ashish2.html | 18 +- .../mermaid-timeline/src/timelineRenderer.ts | 178 +++++------------- packages/mermaid/src/Diagram.ts | 2 +- 3 files changed, 55 insertions(+), 143 deletions(-) diff --git a/cypress/platform/ashish2.html b/cypress/platform/ashish2.html index 3fe2236807..f1ebaa8271 100644 --- a/cypress/platform/ashish2.html +++ b/cypress/platform/ashish2.html @@ -60,12 +60,12 @@ title My day section section with no tasks section Go to work at the dog office - 1930 : first step : second step + 1930 : first step : second step is a long step : third step 1940 : fourth step : fifth step section Go home 1950 : India got independent and already won war against Pakistan - 1960 : India fights poverty, looses war to China + 1960 : India fights poverty, looses war to China and gets nuclear weapons from USA and USSR 1970 : Green Revolution comes to india section Another section with no tasks I am a big big big tasks @@ -81,7 +81,7 @@ 2300 BC : People arrive from Europe and settle in Britain. They bring farming and metalworking. : New styles of pottery and ways of burying the dead appear. 2200 BC : The last major building works are completed at Stonehenge. People now bury their dead in stone circles. - : The first metal objects are made in Britain.Some other nice things happen. + : The first metal objects are made in Britain.Some other nice things happen. it is a good time to be alive.
    @@ -89,7 +89,7 @@
             title History of Social Media Platform
             section Rise of Social Media
               2002 : LinkedIn
    -          2004 : Facebook : Google
    +          2004 : Facebook : Google : Pixar
               2005 : Youtube
               2006 : Twitter
               2007 : Tumblr
    @@ -97,10 +97,13 @@
               2010 : Pinterest
         
    +---
    +timeline:disableMulticolor: true
    +---
      timeline
             title History of Social Media Platform
               2002 : LinkedIn
    -          2004 : Facebook : Google
    +          2004 : Facebook : Google : Pixar
               2005 : Youtube
               2006 : Twitter
               2007 : Tumblr
    @@ -134,7 +137,7 @@
             ::icon(mdi mdi-fire)
               gc7((grand
    grand
    child 8))
    -
    +    
           gantt
             title Style today marker (vertical line should be 5px wide and half-transparent blue)
             dateFormat YYYY-MM-DD
    @@ -168,6 +171,9 @@
             gantt: {
               useMaxWidth: false,
             },
    +        timeline: {
    +          disableMulticolor: false,
    +        },
             useMaxWidth: false,
             lazyLoadedDiagrams: [
               // './mermaid-mindmap-detector.esm.mjs',
    diff --git a/packages/mermaid-timeline/src/timelineRenderer.ts b/packages/mermaid-timeline/src/timelineRenderer.ts
    index aa3e2199c5..6fd68cf608 100644
    --- a/packages/mermaid-timeline/src/timelineRenderer.ts
    +++ b/packages/mermaid-timeline/src/timelineRenderer.ts
    @@ -38,11 +38,6 @@ export const draw = function (text, id, version, diagObj) {
           ? select(sandboxElement.nodes()[0].contentDocument.body)
           : select('body');
     
    -  // Init bounds
    -  bounds.init();
    -
    -
    -
       const svg = root.select('#' + id);
     
       svg.append('g');
    @@ -57,7 +52,6 @@ export const draw = function (text, id, version, diagObj) {
       //5. Initialize the diagram
       svgDraw.initGraphics(svg);
     
    -  //bounds.insert(0, 0, LEFT_MARGIN, 0);
       // fetch Sections
       const sections = diagObj.db.getSections();
       // log sections
    @@ -65,14 +59,16 @@ export const draw = function (text, id, version, diagObj) {
     
       let maxSectionHeight = 0;
       let maxTaskHeight = 0;
    -  let sectionBeginX = 0;
    +  //let sectionBeginX = 0;
    +  let depthY = 0;
       let sectionBeginY = 0;
       let masterX = 50 + LEFT_MARGIN;
    -  sectionBeginX = masterX;
    +  //sectionBeginX = masterX;
       let masterY = 50;
       sectionBeginY=50;
       //draw sections
       let sectionNumber = 0;
    +  let hasSections = true;
     
       //Calculate the max height of the sections
       sections.forEach(function (section) {
    @@ -90,7 +86,8 @@ export const draw = function (text, id, version, diagObj) {
       });
     
     //tasks length and maxEventCount
    -let maxEventCount = 0;
    +  let maxEventCount = 0;
    +  let maxEventLineLength = 0;
       log.info('tasks.length', tasks.length);
        //calculate max task height
       // for loop till tasks.length
    @@ -111,6 +108,22 @@ let maxEventCount = 0;
     
         //calculate maxEventCount
         maxEventCount = Math.max(maxEventCount, task.events.length);
    +    //calculate maxEventLineLength
    +    let maxEventLineLengthTemp = 0;
    +    for (let j = 0; j < task.events.length; j++) {
    +      const event = task.events[j];
    +       const eventNode = {
    +      descr: event,
    +      section: task.section,
    +      number : task.section,
    +      width: 150,
    +      padding: 20,
    +      maxHeight: 50,
    +    };
    +      maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf);
    +    }
    +    maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);
    +
       }
     
     
    @@ -132,17 +145,13 @@ let maxEventCount = 0;
           log.info('sectionNode', sectionNode);
           const sectionNodeWrapper = svg.append('g');
           const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);
    -      // add node to section list
    -      //sectionList.push(node);
    -      //const nodeHeight = node.height + 20;
    -      //Post process the node
    -      //append g
    +      log.info('sectionNode output', node);
     
           sectionNodeWrapper.attr(
             'transform',
             `translate(${masterX}, ${sectionBeginY})`
           );
    -      //maxSectionHeight = Math.max(maxSectionHeight, nodeHeight);
    +
           masterY += maxSectionHeight + 50;
     
     
    @@ -153,7 +162,7 @@ let maxEventCount = 0;
           if (tasksForSection.length > 0) {
     
     
    -        drawTasks(svg, tasksForSection, sectionNumber, masterX, masterY, maxTaskHeight, conf, maxEventCount,false);
    +        drawTasks(svg, tasksForSection, sectionNumber, masterX, masterY, maxTaskHeight, conf, maxEventCount,maxEventLineLength,maxSectionHeight,false);
           }
           // todo replace with total width of section and its tasks
           masterX += 200 * Math.max(tasksForSection.length, 1);
    @@ -163,143 +172,44 @@ let maxEventCount = 0;
         });
       } else {
         //draw tasks
    -    drawTasks(svg, tasks, sectionNumber, masterX, masterY, maxTaskHeight, conf, maxEventCount,true);
    +    hasSections = false;
    +    drawTasks(svg, tasks, sectionNumber, masterX, masterY, maxTaskHeight, conf, maxEventCount,maxEventLineLength,maxSectionHeight,true);
       }
     
    +// Get BBox of the diagram
    +  const box = svg.node().getBBox();
    +  log.info('bounds', box);
     
    -
    -
    -  // draw tasks
    -  //drawTasks(svg, tasks, 0);
    -
    -  const box = bounds.getBounds();
       if (title) {
         svg
           .append('text')
           .text(title)
    -      .attr('x', LEFT_MARGIN)
    +      .attr('x', (box.width/2)-LEFT_MARGIN)
           .attr('font-size', '4ex')
           .attr('font-weight', 'bold')
    -      .attr('y', 25);
    +      .attr('y', 20);
       }
    -
    -  const height = box.stopy - box.starty + 2 * conf.diagramMarginY;
    -  const width = LEFT_MARGIN + box.stopx + 2 * conf.diagramMarginX;
    -
    -// Setup the view box and size of the svg element
    -  setupGraphViewbox(undefined, svg, conf.timeline.padding, conf.timeline.useMaxWidth);
    -
       //5. Draw the diagram
    - const maxTaskLength = 500;
    -
    + depthY = hasSections?maxSectionHeight + maxTaskHeight + 150: maxTaskHeight + 100;
      // Draw activity line
       svg
         .append('line')
         .attr('x1', LEFT_MARGIN)
    -    .attr('y1', maxSectionHeight + maxTaskHeight +150) // One section head + one task + margins
    -    .attr('x2', tasks && tasks.length? (tasks.length*200)+ 400 :  400) // Subtract stroke width so arrow point is retained
    -    .attr('y2', maxSectionHeight + maxTaskHeight +150)
    +    .attr('y1', depthY) // One section head + one task + margins
    +    .attr('x2', (box.width)+3*LEFT_MARGIN) // Subtract stroke width so arrow point is retained
    +    .attr('y2', depthY)
         .attr('stroke-width', 4)
         .attr('stroke', 'black')
         .attr('marker-end', 'url(#arrowhead)');
     
    -  const extraVertForTitle = title ? 70 : 0;
    -  svg.attr('viewBox', `${box.startx} -25 ${width} ${height + extraVertForTitle}`);
    -  svg.attr('preserveAspectRatio', 'xMinYMin meet');
    -  svg.attr('height', height + extraVertForTitle + 25);
    +  // Setup the view box and size of the svg element
    +  setupGraphViewbox(undefined, svg, conf.timeline.padding?conf.timeline.padding:50, conf.timeline.useMaxWidth?conf.timeline.useMaxWidth:false);
     
       // addSVGAccessibilityFields(diagObj.db, diagram, id);
     };
     
    -export const bounds = {
    -  data: {
    -    startx: undefined,
    -    stopx: undefined,
    -    starty: undefined,
    -    stopy: undefined,
    -  },
    -  verticalPos: 0,
    -
    -  sequenceItems: [],
    -  init: function () {
    -    this.sequenceItems = [];
    -    this.data = {
    -      startx: undefined,
    -      stopx: undefined,
    -      starty: undefined,
    -      stopy: undefined,
    -    };
    -    this.verticalPos = 0;
    -  },
    -  updateVal: function (obj, key, val, fun) {
    -    if (typeof obj[key] === 'undefined') {
    -      obj[key] = val;
    -    } else {
    -      obj[key] = fun(val, obj[key]);
    -    }
    -  },
    -  updateBounds: function (startx, starty, stopx, stopy) {
    -    const conf = getConfig().timeline;
    -    // eslint-disable-next-line @typescript-eslint/no-this-alias
    -    const _self = this;
    -    let cnt = 0;
    -    /** @param {any} type */
    -    function updateFn(type) {
    -      return function updateItemBounds(item) {
    -        cnt++;
    -        // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
    -        const n = _self.sequenceItems.length - cnt + 1;
    -        _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
    -        _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
    -
    -        _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
    -        _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
    -
    -        if (!(type === 'activation')) {
    -          _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
    -          _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
    -
    -          _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
    -          _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
    -        }
    -      };
    -    }
    -
    -    this.sequenceItems.forEach(updateFn());
    -  },
    -  insert: function (startx, starty, stopx, stopy) {
    -    const _startx = Math.min(startx, stopx);
    -    const _stopx = Math.max(startx, stopx);
    -    const _starty = Math.min(starty, stopy);
    -    const _stopy = Math.max(starty, stopy);
    -
    -    this.updateVal(bounds.data, 'startx', _startx, Math.min);
    -    this.updateVal(bounds.data, 'starty', _starty, Math.min);
    -    this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
    -    this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
    -
    -    this.updateBounds(_startx, _starty, _stopx, _stopy);
    -  },
    -  bumpVerticalPos: function (bump) {
    -    this.verticalPos = this.verticalPos + bump;
    -    this.data.stopy = this.verticalPos;
    -  },
    -  getVerticalPos: function () {
    -    return this.verticalPos;
    -  },
    -  getBounds: function () {
    -    return this.data;
    -  },
    -};
    -
    -
    -
    -export const drawTasks = function (diagram, tasks, sectionColor, masterX, masterY, maxTaskHeight,conf,maxEventCount, isWithoutSections) {
    -
    -  const taskBeginY = masterY;
    -
    -  const taskBeginX = masterX;
     
    +export const drawTasks = function (diagram, tasks, sectionColor, masterX, masterY, maxTaskHeight,conf,maxEventCount,maxEventLineLength,maxSectionHeight, isWithoutSections) {
       // Draw the tasks
       for (let i = 0; i < tasks.length; i++) {
     
    @@ -336,22 +246,18 @@ export const drawTasks = function (diagram, tasks, sectionColor, masterX, master
         if (task.events) {
         // draw a line between the task and the events
           const lineWrapper = diagram.append('g').attr('class', 'lineWrapper');
    -
           let linelength = maxTaskHeight;
    -
    -
    -
         //add margin to task
         masterY += 100;
          linelength = linelength+ drawEvents(diagram, task.events, sectionColor, masterX, masterY, conf);
    -      masterY -= 100;
    +    masterY -= 100;
     
           lineWrapper
         .append('line')
         .attr('x1', masterX + 190/2)
         .attr('y1', masterY + maxTaskHeight) // One section head + one task + margins
         .attr('x2', masterX + 190/2) // Subtract stroke width so arrow point is retained
    -    .attr('y2', masterY  + linelength + maxEventCount * 100)
    +    .attr('y2', masterY + maxTaskHeight + (isWithoutSections?maxTaskHeight:maxSectionHeight) + maxEventLineLength+ 120)
         .attr('stroke-width', 2)
         .attr('stroke', 'black')
         .attr('marker-end', 'url(#arrowhead)')
    @@ -361,7 +267,7 @@ export const drawTasks = function (diagram, tasks, sectionColor, masterX, master
     
     
         masterX = masterX + 200;
    -    if (isWithoutSections) {
    +    if (isWithoutSections && !getConfig().timeline.disableMulticolor) {
            sectionColor++;
       }
       }
    diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts
    index a2349c2556..e509962f64 100644
    --- a/packages/mermaid/src/Diagram.ts
    +++ b/packages/mermaid/src/Diagram.ts
    @@ -43,7 +43,7 @@ export class Diagram {
         this.parser.parser.yy = this.db;
         if (diagram.init) {
           diagram.init(cnf);
    -      log.debug('Initialized diagram ' + this.type, cnf);
    +      log.info('Initialized diagram ' + this.type, cnf);
         }
         this.txt += '\n';
     
    
    From 333b974f10337d5ae9c332d0212fe87d0e7029f0 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 15 Dec 2022 21:50:00 +0530
    Subject: [PATCH 0831/1038] Add `workflow_dispatch` to lint.yml
    
    ---
     .github/workflows/lint.yml | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
    index d671445400..95e4256b1f 100644
    --- a/.github/workflows/lint.yml
    +++ b/.github/workflows/lint.yml
    @@ -7,6 +7,7 @@ on:
           - opened
           - synchronize
           - ready_for_review
    +  workflow_dispatch:
     
     permissions:
       contents: write
    
    From ac5a1b45014d7e049cea46ff3d32a0404dec62fc Mon Sep 17 00:00:00 2001
    From: Alois Klink 
    Date: Thu, 15 Dec 2022 00:01:29 +0000
    Subject: [PATCH 0832/1038] fix(er): switch to deterministic uuids in ER
    
    The entity relation diagram uses uuid v4, which is randomly generated.
    
    uuid v5 uses a SHA-1 hash, which makes the uuid deterministic.
    
    The input strings are unique for each diagram, so this should be
    okay.
    ---
     packages/mermaid/src/diagrams/er/erRenderer.js   | 16 +++++++++++++---
     .../mermaid/src/diagrams/er/erRenderer.spec.ts   | 12 ++++++++++++
     2 files changed, 25 insertions(+), 3 deletions(-)
     create mode 100644 packages/mermaid/src/diagrams/er/erRenderer.spec.ts
    
    diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js
    index ebf338ae16..7a79201607 100644
    --- a/packages/mermaid/src/diagrams/er/erRenderer.js
    +++ b/packages/mermaid/src/diagrams/er/erRenderer.js
    @@ -7,7 +7,7 @@ import utils from '../../utils';
     import erMarkers from './erMarkers';
     import { configureSvgSize } from '../../setupGraphViewbox';
     import { parseGenericTypes } from '../common/common';
    -import { v4 as uuid4 } from 'uuid';
    +import { v5 as uuid5 } from 'uuid';
     
     /** Regex used to remove chars from the entity name so the result can be used in an id */
     const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g;
    @@ -643,9 +643,15 @@ export const draw = function (text, id, _version, diagObj) {
       svg.attr('viewBox', `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);
     }; // draw
     
    +/** UUID namespace for ER diagram IDs */
    +const MERMAID_ERDIAGRAM_UUID = uuid5(
    +  'https://mermaid-js.github.io/mermaid/syntax/entityRelationshipDiagram.html',
    +  uuid5.URL
    +);
    +
     /**
      * Return a unique id based on the given string. Start with the prefix, then a hyphen, then the
    - * simplified str, then a hyphen, then a unique uuid. (Hyphens are only included if needed.)
    + * simplified str, then a hyphen, then a unique uuid based on the str. (Hyphens are only included if needed.)
      * Although the official XML standard for ids says that many more characters are valid in the id,
      * this keeps things simple by accepting only A-Za-z0-9.
      *
    @@ -656,7 +662,11 @@ export const draw = function (text, id, _version, diagObj) {
      */
     export function generateId(str = '', prefix = '') {
       const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, '');
    -  return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid4()}`;
    +  // we use `uuid v5` so that UUIDs are consistent given a string.
    +  return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid5(
    +    str,
    +    MERMAID_ERDIAGRAM_UUID
    +  )}`;
     }
     
     /**
    diff --git a/packages/mermaid/src/diagrams/er/erRenderer.spec.ts b/packages/mermaid/src/diagrams/er/erRenderer.spec.ts
    new file mode 100644
    index 0000000000..ca0f62bd28
    --- /dev/null
    +++ b/packages/mermaid/src/diagrams/er/erRenderer.spec.ts
    @@ -0,0 +1,12 @@
    +import { generateId } from './erRenderer';
    +
    +describe('erRenderer', () => {
    +  describe('generateId', () => {
    +    it('should be deterministic', () => {
    +      const id1 = generateId('hello world', 'my-prefix');
    +      const id2 = generateId('hello world', 'my-prefix');
    +
    +      expect(id1).toBe(id2);
    +    });
    +  });
    +});
    
    From e2b05d3cf68ba1f89b163bc51d4109167b59c0a5 Mon Sep 17 00:00:00 2001
    From: BD103 
    Date: Thu, 15 Dec 2022 18:24:23 +0000
    Subject: [PATCH 0833/1038] Update docs
    
    ---
     docs/config/theming.md | 78 ++++++++++++++++++++++++++++++++++++++++++
     1 file changed, 78 insertions(+)
    
    diff --git a/docs/config/theming.md b/docs/config/theming.md
    index 3fcd1cda12..8ccab7804c 100644
    --- a/docs/config/theming.md
    +++ b/docs/config/theming.md
    @@ -3,6 +3,12 @@
     > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
     >
     > ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md).
    +>
    +> **Warning**
    +>
    +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
    +>
    +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md).
     
     # Theme Configuration
     
    @@ -53,6 +59,18 @@ Example of `init` directive setting the `theme` to `forest`:
         a --> b
     ```
     
    +```mermaid-example
    +%%{init: {'theme':'forest'}}%%
    +  graph TD
    +    a --> b
    +```
    +
    +```mermaid
    +%%{init: {'theme':'forest'}}%%
    +  graph TD
    +    a --> b
    +```
    +
     > **Reminder**: the only theme that can be customed is the `base` theme. The following section covers how to use `themeVariables` for customizations.
     
     ## Customizing Themes with `themeVariables`
    @@ -127,6 +145,66 @@ Example of modifying `themeVariables` using the `init` directive:
               end
     ```
     
    +```mermaid-example
    +%%{
    +  init: {
    +    'theme': 'base',
    +    'themeVariables': {
    +      'primaryColor': '#BB2528',
    +      'primaryTextColor': '#fff',
    +      'primaryBorderColor': '#7C0000',
    +      'lineColor': '#F8B229',
    +      'secondaryColor': '#006100',
    +      'tertiaryColor': '#fff'
    +    }
    +  }
    +}%%
    +        graph TD
    +          A[Christmas] -->|Get money| B(Go shopping)
    +          B --> C{Let me think}
    +          B --> G[/Another/]
    +          C ==>|One| D[Laptop]
    +          C -->|Two| E[iPhone]
    +          C -->|Three| F[fa:fa-car Car]
    +          subgraph section
    +            C
    +            D
    +            E
    +            F
    +            G
    +          end
    +```
    +
    +```mermaid
    +%%{
    +  init: {
    +    'theme': 'base',
    +    'themeVariables': {
    +      'primaryColor': '#BB2528',
    +      'primaryTextColor': '#fff',
    +      'primaryBorderColor': '#7C0000',
    +      'lineColor': '#F8B229',
    +      'secondaryColor': '#006100',
    +      'tertiaryColor': '#fff'
    +    }
    +  }
    +}%%
    +        graph TD
    +          A[Christmas] -->|Get money| B(Go shopping)
    +          B --> C{Let me think}
    +          B --> G[/Another/]
    +          C ==>|One| D[Laptop]
    +          C -->|Two| E[iPhone]
    +          C -->|Three| F[fa:fa-car Car]
    +          subgraph section
    +            C
    +            D
    +            E
    +            F
    +            G
    +          end
    +```
    +
     ## Color and Color Calculation
     
     To ensure diagram readability, the default value of certain variables is calculated or derived from other variables. For example, `primaryBorderColor` is derived from the `primaryColor` variable. So if the `primaryColor` variable is customized, Mermaid will adjust `primaryBorderColor` automatically. Adjustments can mean a color inversion, a hue change, a darkening/lightening by 10%, etc.
    
    From 32a8061cc2e8b5a315329d3a970a905fbd2e0a08 Mon Sep 17 00:00:00 2001
    From: Tom PERRILLAT-COLLOMB 
    Date: Thu, 15 Dec 2022 18:55:08 +0000
    Subject: [PATCH 0834/1038] feat(er): add UK attribute constraint
    
    Any attribute can now be PK, FK or UK
    ---
     demos/er.html                                      | 14 ++++++++++++++
     .../mermaid/src/diagrams/er/parser/erDiagram.jison |  2 +-
     .../src/diagrams/er/parser/erDiagram.spec.js       |  9 +++++----
     3 files changed, 20 insertions(+), 5 deletions(-)
    
    diff --git a/demos/er.html b/demos/er.html
    index 06fbf020e7..a326185dec 100644
    --- a/demos/er.html
    +++ b/demos/er.html
    @@ -57,6 +57,20 @@
             number final_price
           }
         
    +
    + +
    +    erDiagram
    +      "HOSPITAL" {
    +        int id PK
    +        int doctor_id FK
    +        string address UK
    +        string name
    +        string phone_number
    +        string fax_number
    +      }
    +    
    +
    +``` + +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts index 15652c21c6..a1d92c736d 100644 --- a/packages/mermaid/src/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -36,6 +36,10 @@ export default defineConfig({ __dirname, '../../../mermaid-mindmap/dist/mermaid-mindmap.esm.min.mjs' ), // Use this one to build + '@mermaid-js/mermaid-timeline': path.join( + __dirname, + '../../../mermaid-timeline/dist/mermaid-timeline.esm.min.mjs' + ), }, }, server: { From d6ddf9568ef3ac93e23c546cb59168e0a38feb84 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 16 Dec 2022 00:49:35 +0530 Subject: [PATCH 0838/1038] Fix theming doc --- docs/book/class.png | Bin 0 -> 34954 bytes docs/book/cover.jpg | Bin 0 -> 17803 bytes docs/book/er.png | Bin 0 -> 13419 bytes docs/book/flowchart.png | Bin 0 -> 14794 bytes docs/book/gantt.png | Bin 0 -> 43239 bytes docs/book/index.html | 340 ++++++++++++++++++++ docs/book/sequence-diagram.png | Bin 0 -> 19823 bytes docs/book/state.png | Bin 0 -> 15574 bytes docs/config/theming.md | 6 - packages/mermaid/src/docs/config/theming.md | 6 - 10 files changed, 340 insertions(+), 12 deletions(-) create mode 100644 docs/book/class.png create mode 100644 docs/book/cover.jpg create mode 100644 docs/book/er.png create mode 100644 docs/book/flowchart.png create mode 100644 docs/book/gantt.png create mode 100644 docs/book/index.html create mode 100644 docs/book/sequence-diagram.png create mode 100644 docs/book/state.png diff --git a/docs/book/class.png b/docs/book/class.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2f663d86f967ca5d96c5fffca73b6e8efb3ad4 GIT binary patch literal 34954 zcmb@uby$?&*DpMD$p9kV0@5MULw87bqeu-c5<@E>D2RZBbhos04Im-i-7PT0(0y*d z&w1Y8?>g^up7Xxfb@=O^JJw!n?X^BD_TGHbR9D2urNjk+K={f^a@rseIuZmz17QO< zKoNGN9w1N@0>@WC$VUQ#K9ZBAOsVYent! z=qY7*r7PwH>i#11DJ40m==CY-k#wYQj z14X%ynAy1h1}4E)eX{U+$#jdGR=fB0@G$54x2M$crZb-(mu~vw^~avf(Ia%MIT&;q z*fiqaaPc_vkPB_q$TuhinP%bE0CF7a7rKA(cQh5g-B&5?V`|wK@N*CwK84G-4gmdaoYxvp;F~Hbx zXwR>~#rILNYg&e4nY54@NRN7!Sqxn zq(VVEoi)jL>FUgA8{Z_teCm0o2F6MxOmr8z~| zz=e9B?QJ<~U%A;;q<`9r+Oedmz_Tnc{32(aF-Xc%aHYW%p~JkN@vXVo{6sKqU)KOZ z{#FSR*ij^JO@AEe;sok!JM&X{Dnci`@LUQJOw1m;h4<=P-{kWajKO)6t7)C|pCruE z+>W9DAk@Esl@eaU2%$1e2Kz5=g#7DL#jaV5VgEe@u3istxTX`YJCW57CQi841d9k@E^jk>;J&(|Eo;= zr?|P_KL1PLf0O;+E;lGl{z2(?+C=|*?EbGq3dZB=&DuEzY%Ns4(mq@kZy#YzMoEW1 zrf1W5@(UU+;_R{nMd_aE{yzDSysXpIx6DYiKI{6cKC;iOBP^^)ip50a zNjC5ZsnrUg2DhSMc3mIN-8nvne~5v%rGZf2D@s-`Tn%KqM1o$XZk2If*}kThnlI@d z_QsNuv=#!b7wk<)=w>mD`7yk8d$*m>d6KUmRWF3a>UH=mAjo=LF?qAr%a})#j~1_y zZLneaJRFT)kZAZG6aitU_&PkVSnOZ;k2N6al=FHv$*sBvYL~6A5hgqe;n2xK zBo5MV_6t29xHUw$)AP%6JIXWk^i!S7%dgmLC=K}MTo)8Hpa!_06)N%?IX8 zlTD|}%)R*+md`*h?y}gT0edf$5-kc}Yl`!4=k}g}^v9Cfus`?&LWl~nZnHfnWWE8K z`dq;0nyWmtsWQm(8{`%AvtWAF%f+mml%@|w82>WqEX9}2B)^v@ixmRIo`xMkn2)re z11cwP2Te{_2gndcJQGOg`UKmgCoa4pc$aP->4FQVrV+c7rF4A-4Ugny?~C$l|7?1? zZT0lopm`}R$gQL4LSM9s zj8wAxyb>1yfF5i91Bx<7t$Xk5*&OlqdY^kiF^iC2)0sM3jh9&uAjW$vrc#U6M88IU zJgw}%e&2l4VFdf|0ZBoIxhYMtP~C2U0M*-6HjI1efZlbUH=l{7hDG(GdR(6QyT$Pw zfmco!ELu>GXlfBOHN!z8gasdNTk*oq=Zn-mA`ChjF4;XCY?>5f{Vo&AS>OUKVPCtD zEYmrVtWzs>2rS#vYMM`C4lN9V8F#FRYw|a{Ii4)~=AJY!p8ts*0V-?y{??@JjQp?> zq&YNig6Iw1>IFg@p8eMvi*!`iEwm#~EeLg%8KC1(YMyeX*4aV4YSFrvBK0WaATF6g z86fgT%r`Wlbk5a)BFRh7iSY2h0im3yXa^P!H$0Vb5vLtE&WS({=q9Zuve1@-sAl!8ai7wdS*H zuA^RuCX>?0AG<~$-%~IcwTwUA{|Y3@sF%BLI^9;X@}Su1R$GrwY{nlt5Mze7EHz>= z4`{Yn1!$e3rXuz4iAYeUG!%?S{cS zG0GOQiaCTHL=Pu_?&^UwSd<#%2H!4-_|i&AuwGSN+rSJ+R^_6OQ0)ZCs{AKN+z zKz*`L3hUIUmT!gH#|r{r)?5DyDJEO$Uh7~3mwhXvfv);${FDj4!8adCbj=YbERH}* z6VtE6t{V8(!a3RTNe@bdfMhfJP6}E^RFK5+fREj+r=|X+GRW5$UaNSSbrVMdN^AXr z2SI&f^1jJaG6lWDGS@yMLMIUO zNHRvNFTws3sBxCD|Gl+gPf4-=$58wjQj-|fldjRUl!0$*44&~dG%s}$Fc!!%5}rCSM{x%L}2}WpREd z=wyEo?yWW_vwGRBUb(W|S>G3aT=EC5>T?vx>ZC?}8DMF2+0F(xJp3gOzoB`LKOPj& zD&*O1MNYDb0{>U68}Y(y7KL@~^C$B8;_O^ct6q0XP2^T^zWVJ^S^A>YfW<*V2P%Gd)@fojd!)rGRf`<)~gb~4p3KEe8|8D;0w3Y!@nG2n0 z`h%(;X4+F6widEvX-T@0;nuF0djh|3r6?_1;jKWh{r2)b2W{)5ZX~(m^Fi9 z5J^e=A6d(Kede}`5PhJA##k5JT`jkfS?j5GFLU_b6A=HNzmVV8RS!;@`t^ zjOr^|km+-&an61MG*!;6G$g*NT|D4S!Tn48D|eG}XcGcFWx~&M$vAz-1$w}+JJKYm z@!}Tz2gasS1|GWMkMa?Js*EqE!67^hat#KyqvgL!-G(}%(9Wv;dMi0^G|S(%zQQSu zUB-?1Mj*x2D}gi%tBl}HKW3Bp^bR}n_0^SPU->L3c+RLSsRI9lt)PZCnKv;MEwFa5 zn$uuKJAv6Fi1;l92QGlDtRc=3E6uS;ZQO>vu>)ntS=1GAmj2IWF2g}dpn+3^GDBjd zI_wK?9rSw*Xvn9?-!nu!n$$!K`%h3&#{8Acfw4oxpT3jTQje-K*sFYG`9&S^dmlIt zj7;x0@l>7>w>|D{{`qerPidg^1Fa<|VkwzD`iWWmVfFPF84{wi=$NH14nhZpkonL5 z@9aPgO*7B%;qH-<#{P9XDPA&+(z~JjPnlJ*nDc*NZ-n!=f)tkWcVKgOl-TrH@M3Y+ zyM~)K{`!Er%)GqF=Z_!m@TBb_Ioxl|h-;(Rh}^LzC2KdAp9G1BdS8d}uXIdA&+Fr* zfFq5*quyqVVVSz2@bco)JHy}945wCD|C5v?UExM#jC}1PMuVFMd8T7ZERSDn4m5rM zzfW}@6|%nl$xiAp)UHU!_AS8u0Il4M#WMBipd~(PKeTJugk!*EVEX8~r*uzlPfeB9 z+nf1X;=c5tyQ|vw9VDbT6tIf63=s3`pH>G<%|AIk41%OlPxv?W$bWKMU7vhY_%n1eq$k*Y3vU4hr)7>vNGeZ&oaow#k7CHdJix}D;e zVwX95LC4mGc2`}09Its!Jd?lKJGZMYd1FQ;FVM^oI%#?LSicv&y>1omBlE^`^*JbC z0$qaV&%u2M`5LS)?6Y^{!*`%}C)aGlE}F1=%DkjHMEwp?G#4ksKq`_>K~}h4jRi6} z=#nyTt8P(T&n>j@v}3V7YomWe#$EwE$7CZ8{TZPfovr}E@U<9 zPr&Mc)x9(gjEd(7J}mMGuzKo!UTJtT=xqLdvcbBq9shf`Gg0;_P*hm2Ei>^cD2;N} zd23PpKbeqcYRBl`E&(yk*A^Sv-8X)6zWoBr_pc9j#t!B&kR+TcNw=RrRjnS6<$hCK zcbP0-?q-}%9vR`dzSN<`Z@!z1(y|KzIs^Kt{(iI-t=&1YST(`K#tcAX@4qOc|FeSq zw@UT@_9d(+=UcgPdZvz94I?WA3tR#;L*s$2=KtDE__w~ozg;e9K|nwQ_MQAx z6{G91Qmm?V%{pQBfKuOhTuQ;JE+6%KJhDN&lwuk^iuv@J=7zcF*po_q?yh7!9Yi{1 zP4*rU#jV?u;3`M6`wJmB!ETdI4yFLKkS3Z{H5N%d3n@5R&YyLMOoFQ;1%$B(368gz z5AZW7_=B$xpo%OiNx5Q*Q&#q^Dd=DIA-#OlS=Q&{Z^!u_CJU9nP}U1LWO}A%>jLAw zVJL|`nUx8qAdp#T8(eQT)pdRw6&ttx9cUBC?!^rIsM&~Nf8R}5ekLF@0oINKE5pEC z8Ex}gIg?;bW_;uztQ{K0s`4pUEKHwqxNSjeuJrdt;>iNCgbvS_nQgdo^DMDsH4+Oy ze`{8VS<2X%20;3rsZ1khhlPBo$hvf}(C&6+ZQI=Hr?IDO!|j`%)_a0AMp=DsVh1|z z!!V~j->Oc4pB0%O566va@e<^)jplS{&oh-TfP}U+$p*4~w7{)v<8l-T&=!a)Q@={> z-))N#SQjax$yHe>Fm5|Y+%m>`#x|U_xNz0JHbJerr@`gt`(_|vUO$00qB;Hfoy(gd zaC2Rr&)G*K(qAa4&89zO78OnUVYGA3Gj6Vcz75BQA8uCd?j&Z($e7ptC*3cD^+`1j zZ*pLKPMXVTc`#ltxZU#9{x zfpB@BUPpmn)Gn!3ZcKaWd};?m6>a`WGz$n8A$*jhQLmdK?+nr8a7Wd?f`g?+!HWGT z`8YN}v_A(+JF@lfz(@?AH_9-1-ygL-=FL=FhSwP}i`x!tp`o_jrQ=NkCtSEZE+1ap$Tn(?u< zymtEfsG=gvI47?#qx_j+e5JED5fvjxR7LG6eTBI)Ou3RUFh`q$W-aBYkZ-csX+JfL zlBE16A*Z|fJf-H@`Gt%kd7mE>FMq1>yK&v5a-|zjuw)2aRwtsjlBp(PLVk zFoN1p_7Aa-hFSJNN2$klB0(3V(XLRr$8gASMxeDgJQF4W!tBDluia&4Txlrmm*nXI zHJ`u6aL6;f#`*Z2>^!{-3F~Uvvxzz3YhtK_PIB=1Ew?^zzHwR#G^4Cggy zQ$Xn7`@eWyFgE^Xu@#&7tDJb1(X97~>-gqHYDj29-0K7+&6|mqWYoY%tOrGS_D5Mo z&m3W!%N474F)=tef#^vGpK-D1?~v3A`v&f{rUc$wlLsQci<5SE^=kO6&{6S5RR1k-sepuGO1ckw?^{Gw5I&5}Y@$b(1H1E&s-LcS8 z6yVL1`HxXMi(`=o4=6ybhO_wP$9Fs9vjtAuNJcMIh)Mfg!RmGtpbR8l^z4rjzK6Yj9v4hW#CC&1qe00`V~*Xz{X;$zYEeRvzuXu?;ZS*Q$!o%3*u zvZp1ye-Fb4^EUGG*r{2h;qHg=21!MPao>7bUGBq9u)1XS?qAGWPIOU@gkn0q3MAAV z!e2>txCkYWjqmTWp#_n&#M*(SK$e=uPV)(9g<)650=%E)ek8v3MCCjv)kBFjj)TJ- zdC%s@8zMjM18a?M;>;fuH8UUO+8#1(&NeiSY8}TBJaSCGunDEa|8wvn|I;z(giCwr zJI|}`^TZDzr7s^yzsz@4IKfHD*T!t{9#~V-j4r)W$6mTk`Lt9EM%&zV?n$XE<>fNH z?+X0^ajlgbvJNhy+Y+UG`vuEaUSW6I1&oX2jv0Oojfu0Jexx<}pvA~rp-$nSemHGq zIbRE|hM<0ua{t&>;SA^DB@7HlRk~l^rhw!c^RRryEowmXILJ#?ESgK&33|co?tS30 zRaqsoJ#_Q*;p$`<{N70g8TXkF2og~=pQ0LrU3%ba;#SGu{-YvM!E-e0*9)e4`SpEE zOV3@oSQv=zx~;p>U~MFH4E1rjx2xB{vrMlSb#1jIj332R8dPmw%QevWH^DbaRi)sS zy}d2IDHxc)m%l8=(xokajuOSbz^vsC&GrXDjRYfXc8+?^>#SBe>gt5iozjZP$h)49 zugMV8bH@z}NtZV)x&DxSF4LP6M+qMsn0*7Uexm;2?8Ul!;G2yY#+1$c^u^dX+l(?f z`HXzyo~W}33ta}0#p$b)B;JRsn+iV|h7@raY8h!*dz3q^j{T65YHA+!&5nf=`Q|0qnl4JXm!2`jX!##d!P^%7# z87m=Sza$fLJ6>0SOurA?bbJ}x(x*4z?g6zb{*{E*&ligq1{>{&`FRY?xXqr=u?%d( z_qW7n1n+hVRfY|%-!=QbSH(o*$AWszgM-b2rU=zV`>O3-pRn%E9EqroqEOLcW_muI z<`WXo?q(yXzgP-nWVCvnjE>Q_UUv?xgQYbPk@%+;(?A3{1GKJowvtbVuimAwm=~$; zvcvZ*-~^UCp5*8wk7K!oK&@2Rx0jDx2iolD(yO2Ftl&N9gAh5q=7Z#}o9Ou|U#*Mf zBhvq3TMAlm-@ZgPD^VMpmQG?tIRpILp2zdhMo;c9#fOwOsLJhYc@a# zI}Xj`K$eYB_l<{fsbDu=9)3_I9MWb;*W#x>F+|2`oMTy);SRO7;G+x%p`PT#H!s&)&k$5$;@mg|o+9 zK>yX`9Va`I6oIxGZ+u>8s?^(Fxbyw{R=YGb?CFo_I9uOy`TO7-e`FNK&1A7&d2erL zSRE!-{|gF1U@OO$1{#WZskBV^E)?tO=N#!^^OzVG4S?GO-%3Hi57k8INMI;!@JwVE zk4j<5E?UdeocqNJ0pa@7o~y^9^lZZ)cNlXH;>PAVYMe|gl}^^ko~eA! z6-yx^ridtWkDkDxR_ae^dCHiRy&=s{1=In8Oo|FLJshkfvIr@;-^G$Y4Bkwup8!y+-`%IffPA(fL#pr!>!B!6A&lvdDzH+ro2S63GVX;VE4@SOS z^s``8>wWyN>0ITnz2Qekg6+ukM;^+3I-|3_h5bJt;p#%bTF-VL?GjN`2DUvaD&Q8m zD*p5}QYGHRJ6ZecKAnh2@o_CWmH}75t86=9Kqk>$`o_#mOlS{7U!0DTlH)H)Nr0hq zZOD_-*th~rt2YzMyO&v&4kCYpOFfs@mp8H$v=uY3I^{0^iG7tvtd`Bf}T!hJ}=j`T9~*kE=*XNWx5_ zBSQ;ddbB$fL|M}=II*^TecyAN`QCA{?>?#d@ByeR!z)lWAs*L|HFzV}*hjrurp@@I zajlqXyT?y9vOVcL^nbbpvOe|cPsq$91@r{$`|0b=DpZQ5ntEE2z}2J}qNq@d8*4z4 z2xRZp4C3s&gd`t6_)UW4W>UMq_=YG_i`6r;DlL7}dInH#-HVASD58C$Yl4spQ7aa& zSM-*9y++qAoemAl#)w6#m}tM*(4)k_Xea>~Gt%?9!2T-Sy83k`vl|+=b_q}@yX@`d z-%wZc+-9EuonsUN2vs;zR`R2RMT0*rj~q)O)$Mz7y41Ot0(fa4@_$I?{O+`0=BzKI91&Gh6wSUkcsu7U|N7s7^t| zLu`7!;tvI9-l3!dPqEs3pSFY5Rof|NJp6bpV%6Z>=GcVC6tE|CE13#VEbZ7we`vXx z4k4R+1~@CG17;Q$1}A+~ip1IubO*q||P{Mh?ghB1E_nmI(59Ul}I?8QA(^Ndei7iqUqR6pu~=N!SnT#V0ic z6PWRP6Mqhmf&(4#@Xr95!x-7hnbJN-*01t1Vo@*JiwFssCVjy{R1tyJ3pHrbTKzhI zN;_s~D1!b__~xSR(^_e63A)@LDT4wq$|DON&6P91)K1q!%=d&IE;hVil`}^(ssd~% zRW?QoEcOjo(I4m+Xom9opr? zn)I$i1n)rrA!X$3O(04%p9^ibH8I0~EMn++Drev}cC`d?X;4tK^^*+AOP@sY`M$aMx{Ib09s#LEp`;z0Qcb|VU2n6 zp0?SGD|EMvSIg+aM%hwS)*jM&2cVy zo+A11gK2Cwf=(xk-~rfZ*t)bH24xCVAIfN@CTlBGQC%^V+DvN`0 zvtzoaRYK*Xb8*L1FZQpmEmdf{>F6YWTpRkacSV~SAYA!}kx~1IV7JhdntA(wRs^MA z543m^o>=c5c44i9gcJNz{9PRz?dPzM;S`zLTcqijQH21pva!31&@eiS8ZM>@S%fC_ z``qT&b7YkS|G>Fo(hCc_G#`%~nAY1`wS!->YX(Ut>Tr8_wxH?npksacny+0`B3^$U zw`?B`2Yw8h*$T(@l-D+QTlf+=p~E&ax-`93C4}!CC@>20I9WLF(-hzFxmlQ_Otf00 zsA&G2hY^ix_=tJs(L#J&Vp|lARp-Usy{%HXtcRNc;7-|1)D*{b9v?o4Pk?iOU4bUF zDRobts}p>CX7JI5XT#6{@B4}4l(oQbZK`IR-p*W%v0B9HQ6XYJST?zc=9B-oI0Ic4 zMn;zvD(YOs3vV~P$cz~OqCd|pn9G@>Y)tf0IN1&_36NZieBP$qaH>X*549|u4FI|ycGN{Pcg)fEbdMM#`b8~XZ{vDAx|hb8Wwv(F?7 zVOj4=u z8&1cVDQxh1T0Ir|>>(Y!!i|4qXdJ%nYfSgqXu9jF+VcB@N3_A~$QYpxkQiDHA4fo?z0BPTCXic?2a=)DS^ zcp0bY7)G1GFeR@u%1ZIrLzzol7o!c%3ftEi(sYN5zoaZ008)__6B{5vT^*xGt~-R; zEp4O7?~rlp`&MC&7c_MeIas#^k0fp^pBjK@Z{3;OfqSu-i}U@+6A@6wKjZL|IT;*Bff ziM9noct1S1`GXQZfuzD&G+~e5L*K5dbu!ZXt$2?Z$lIFehBD!Jlva45!iysCO_6Bx z4NqU_M?vlYWl9D%p1|&-qiXNa5MA~Fty;VJWxamEP3BsweP0k((@`Hs7guQom|C53 z+mOJIX&)SxsR;v@S~6{JZp(OITKmb!^pUl(n!Iz@3vr<+5DV~)G`oif6QQ-So;Z_Y zfipxTe<&ISLjQ<1*m~h2WNW6&^q<5ck)EPrViZ`k;l9g#s+WKIgg1}3N9e9W0gIAs zH?(Mfzf%m>0-t}MpB49Y9?P$Ow>OlL+uXd<**R`cw_l;*W?@=GuoGuG#rDM zhFv#}fV$P6aA$P5UG$s9O!am#QwwTzTw+u3YT)`4>M>n}u*%>Rz7Ptnn86mChCCK{ zdI?+8$~$N-E3TrX$FUvaiL<8UtrgG_Pk$b_I)SKg*@xG zgFEUU6ljsa5Yfrz=}enOZX9B_PdsE~sJ-i#{8e9Imfp0{6!0e?4eiq1>TMp?S31;5 z$C}e_bO?r(tgdd`KY45{jgV3q?#fFFPWtIlF@K3cxMD+_cs1b|=FnX@(bVtU&^!pB znB!2`VZ+B@0(kwalCJt+C{V?m4?*FPze{hZ%P2Zq49FS^5+TYkqtrR#fD}Q7i$WSj zdp;qP@92dzUvW8s4y2%!RM$<@{v4O`u&6SOH0onmXA1-PPJM2`22Z{MvX!+^!?n8Iaq*2KI`#BaXzQmhcJQ@|&=tPDH6N zqnK3lG}Mo{#N`NB1?ePmLp*QqyetiRS}ky8<_L8+MQA&RBEK@#b zmqN^_NXG{-0D@E&I2gb%ay@mHV#H$zsn>$Y_+}SU{h!zAp+I}`(KJr~Kx&P6BN_!ks~D)b9*G$Gu27>3F)=XILnivv7kHE)nm_3}tcPAIz?ZAZ1<3H7a@xnNUm#@3Q^D>O{&oc|k=`*6wKs2_)5 zB_fb>J6TN+LL0y6H;6P|wjXGLV(Hc%I6s^`O>49-n{2&(2`oAilL)b*SFf{SwC*5~I^YB7zP&tXzWb{M+VGh{Zhg66F^f4wL|`=H^I z^A@V8txqksnKpNH_vxLoH++_7tQ&@Qd5KU(X(+>ZX;6D+0R?GpAG#L}PJ)#%1m=Vq zW60~;QuRL)dhEn`ZA~8%$Anm zj|s3ceoZjcLcH>!ut^ZS^j>Fa_RBJzs>{N|b6`}0ussRefP{s+C5M7P5+DP zWCI{|k3tDetXd&*I)b#u>=13+834>!m1eXwjkE>#9DU{*G&T?L9La2j`!-jy=h%ME z_^hel%~bD?vR?Qgv5AKMIDsTX)vzVV`maEJ44Wn)MGob!5Hvy%gRS`%bn z)rE$AGtXr?AZp5N4tUqei1Oep-==YjY`FkyPCUo+5j&((0C)O8oaS9UilPc^bzWm6 zyF{VKXK?bp21m1z34(sVw~|0x(fWZ2xvtuVujYZiHPr~B)yB-nai?_c_e4=8JfJcXW84LzOwoltfNxw}*wYTQ_7am?k z&q)^^c5e;ZpYCjC0hP(nbM2)VM4*mEKTmQ0WYlJ(5!go~f8rOHWff@;S?|H+7CH2E zH{X+-d60-!Sk<&{*D(!CQAIK`m7Dvee}3zn^h}CzU6fh;wr8esnDNI4@H5?GT}X7S z^#j{s8~$=y*{JOs9s9VSYdW1REt660_uh2E2M0NxgteIgnpeLbvdgAD3T;RBf$;Hg zcax(>>)o7}Z?0}+3GvcR&ulO_C(TgJ`>ul$_2B1^B79TR>aq1}Sv~3$!*ZF8$7BAY z@{c&J3rFCT{%>n1qRFNoZR7d~dPmtwPjj*d$dhvS)BttQML(kZZDpCm@gu91D{slH zPQx0j3Jo%e`r9Axj`)=qo3EZ_wKx>fDB@JE8!xqzn3ONQ$X3(?`jtii7d~3MZSrde zZ&ze07HIV29Oll4igcb2fyX55>evo@cP+Rt#V6YG0dp&J$jF!ALdzx9%6Spi4|y%Q zkX=MQvNF~X%mNkumHFG#=asK#zcb|mS+OU%Afo@fZ@L}?^Ty+?bC&`2_PyS5-hJyI z&xR#`>XqVlZU>lGzyo(yckox=5}Giz2$SvWY(a|+&8NlB=+s?GJqZPKO~>_xhN;DK zOG-THyKKI)@$5G3#9^h|vDFzP-(IYnbZ!uRcwKmMv6=vOV=&MzuD!TDJY6a|+i&@n zewQb9*SB1@cp?|BYl*DoE^8-Nhhn`NUKqP?*&NA1BQw7PGo?lrt(1CFcUifx9rp1o zXOu|3(-Z*o;-S1Os#dIh`}*gP(fdnG!U2lDtDX`5vTnQEu}KAX)3%(naQw-4bG6DZ^l(DlqV=-N z&LlXblXi}lcqzI2VnIzTyWG01P6WZanP${O+ z!Sle0^45#9xVe1J?MeJ%ZgUe=B6FkUrJOjxF`gtHGC&tWPA!Ev2{TJBrU}6>c6a%F zfAndN7D!n5&ts9V6YkH_#y>G;U9$1zyCAG!M`=VGc-iV};8fmlgY`Pz!@b$42|^fm7_4o+;MH`99=Xdp z{S)JCaubCMa2x6RNo+-WqIo&ejfCM?GV`*Pv-E5Vhix)^YxK@_VtaM ztPtJB_zCHQEhB^0hQrX{n}vO+pR^_#Fi7H^YN8gh!j8eu9p*}0W93R7&qM8Xq65KB z*`ye_pNWt-KRYUL@`8-Hh)S(X@G*J4q88Q9tDbu<91TATr}gwg=-c$+AI%fGK?}_m z6)XQ3FO{nfsaDIs@^=T$UwG11s0k2j=q9MRA3#4Y%#m%r*0_sx65dQRtfjKAW&M%U zrcVa|Ah_#K28Y=jrDU5)UpLme#yFYbURk7HeF+vZYv*qqi(8seP+1ifd>?WE}F zuUU@EH0vv7P(p>)i{_wQhi#jIx#*E#O~|7rcPsm=%Gw(Nn?z^2Mg|w^-fulELIets z`TiW3U^23!P5eN@yZ#+2*H5mnV9`RF;Nas(iM`D{0D(&V_SlczY+DdHLSNPLn@dUp z8kqH(vz08~`R0brNeh!tJK)rz0VqEO6H>jtu=Hpm*P0~NF(0UVP$4O|J3n;hl>#hE zJw9#Q#J7+pq_kvd>GIG*{haq*A^y^Z(H$1b-ChYzsQ+BMKQwH`d$&%)wHJVQ$MhRw z^O8W37aiwe_Z1CsUOs~iiPB@5Cj5y6dU2{1vC~^prWOE3p^5L^k-NKv)Xlxx=m8dr z<%c9U?y}!BKb=ch`n}cKNiF3-cE<+1h{cue0$Up=ugU5C`X#S?n(&qeVH$0vSoo+fQmOd^R<`$Tm|yJ`6)JPsO#$@aG?vq44X(6u92-E z&bhAg$(xhj7)&S&emZShBCy~r>NcNg_l9>vdsKleP@ndUJNmtzfn$@fIf51WTDIn& zL7Q1A%6GKa%&bR}w6&CrVHi`0n!d{FN$^u1!EZ=suG?UV;YnS{BVW>tHQN`G>R96n z+UD;Ct~1+=MzsJ^)d%l4dz3R*c04N7hDS<)d|rPj7A1rB@Yb)vwx?0Q!@NiQobkhXT8cU6i`6cd$uwwtm)G{9y`Z&}k_slhbdGcKs3e`)Q06)cw z*I8Q1`$<=NF5>#AAgy^4+@2+{7Cy%?L(|4~`%@Z0U!^0oNn@^X;|9$@?QunT(!l1S z_Q?2jSm?G;sKvcLB-~L~4QAWg#6?ja!o)yBr5e95z=7N5=4Wj+oL-cSoHC7$G|(PW z>Ekf-;8>2%ioq+tBitef2FDZ7S!%5B&Y6%12#X1Mw4>jc+&kEu?VZVSNC~)2>}NKf zt-80tc`QcCF~;WhC##VFUwK6LLaj;w=-}<=&G`LZX;g=% zU@!W&W+uB(2!+#bdfZ*1WR&D|35^_PjrLMe205q8I=jf2kJj}@Uv1$W*w*UDob>mi zc;wTa1!;tp7n3dXX1r)a6;~B))@>}1PCaAKYmOiaDfZt1Z}QOs-g}grVDJtNnsF_U zAb+W=0wWR%rY!mUl#~R}`KmHk`HmQ7#iRna)1)%2E;rVoBR1w$o@&Yj@^hA~mr27< zJ(f**Q#%%(3pTB~X!FH9HJ~T^$j**2v357N*{*0KzQRPipTmPhe2jUUBq^oTbPm{} zQ$|xVu7W`G;{E-Wr~LHyVDp;YVviuVlb$l{6Tj|FJTsVpJW3Ucm8IPW;jU?Z{LEjsPllunP`jDK;{COH zjTP{n^4HI?&q~Rxv#N5N*Zy>a&%*HZm^XjZ*(n3Z%8d#;JOFTT8I*A@ey}kCHvXX7 zS8(A0T$ed-dZq%o3~(!C{;fj46iH+)e{(qvbmA;(*Xu-A8DLz#RXnZFz_1;*AW5%J7S;20SYe12%EqMHii*mFxND%oj_gX7gKFFHw*qmsNBfT zpXk{K{)$e{yTf@Ucs9Q*Q97Yv|4Iy4D8*I@J(cH18C378)jc`MOJI?cZg4XIyx)Rq z!l|v|`m=ArtKx25KNIf6u7cCj+;g|N!eyEoZe1|!I(sI$$wIhjOGyRT1)iPR*Kftm z49~cO1~mU=8CX7JZV$uzw_jQL!2Nw$5oH)NTnFIvJgeDsCIO_uU2-)D93TcxgBqJF zyO!lc1%TDvf8=<)s+{!hX+N+B{6FY*$WPKP0{?D+m9=Oy9-Hi-@bb@p{tCwht}6ac z1ku}993lSEWxdQYz`5TF0wmn%6L5l!@Vx!gyBb+n^j-Y~=Ko)ZuS9B1!X~4nuv6Ad zZ=b&P@H$M}n6J}e=eO6^Lv;RhuQYI8Zgo#lP}_Y1t*c%}gpZ`@LcAFqmF@GJ9SD*O z#OBp^ew@e5Rokws5sN-3((-tB-NH?4(8xNb;%xf*-^^5P9vjg@=}ORe734z)T>zx5 zUAakt`aykLwKwhP05`}uaxwxtk4Y49YOEU;a8_G;@*Fk^YFT^7fjQZC9BO0)#7ipme3;C#?@dF=z@wiD)K8G?8387Fr1GzP@fM>tnWH_Co*Eyw@J* z?Jg?fn=K<)+O0`orWOb!!)d$&QsimlXudoP&mfKs!U>EUyu)Uo)<`m)5&e3jh~;-* z2WxMTG(fbxu52H?b7))ki=0JU`gYuld}pD{LVvDGe|39xqG0`J@??8>d1$7au;Fcl z#C%#3-u7^YB+s^fI3Kh%bM!|MeD@qww`}5wew6xLrlH*XBey_@YAV=bzd|b6BH+X1=O75oL}&8LxNJrQ|{nrf=Qu z>7&bg)nSDhq;tVa@l}rA7(x7c&o~NnnlG9r-@-*h?_}Sjm!G`+K>OR2?213rgo8pO zoKF=-g8JSczIn6GN9yc@Sq~YCZb*8-f@Tn=kUer;xNanPM)e|J(fZ||Ftl4%f0Gc_ zPIdM#DC@BAR_GrRo$r4U&)idm$fFRnlgh>% zO74uFfKg0S50rib$@jY`Op~IQ0wXS!cr*ux>FDK>n%uZY#ulGy%U&=Xzm%;R4lgai za-Ew?o*)AyJVIAE`0?tVPc?v(==-z=qCT_&$6CL?2}Lu72K2%#$e8&3uZK%2a$Ov6 z?3E95EWfrEK^50O5XXj=3sRuQ%M?<|oRUF#5tzpC~bt)=#P-X6;E^kkGVHkDRB+i*FxTTtwAA%<(D=E`&v+y=x`qY*v` zL9;wVK3GWE*4*0~mI5bQXTqygV87?z=ey#Jutk`H9-*UN+o~@vAt|Js{(dlzsX0EE zESLG|EY18{15puLfo~m;Y!yOPi;MF#GkS-XiE@E~x;HmP2V{3;`BdS zd#ku8+qUg{h9M;tC8R`Dy1PR{y1PZXyI~L%X_Ri1?rsJ~ z4vNC-38zG;>RIkV;Gg+TExOa(XgD)9hhuNcnJZ1(=D%Z`6867CWbD}kDDCkf&|!6e zA3hwH1$Qt_adzw1#dW1~--sQcwHGCUEzsM5-9MBIc=h_0MN}gbpKayWd=<7SHu6z< zTVN2OGfR&LSIicKmI{hZCW)E2le7TmhrR7BW`lGcY_jmkJT5Qx??un_aM^la#z)J6YYhJ^*^Q|}}d1G3b{n?Bs6Qt^nQ$RhDbKFv4P6JOX5on9k zN1D-@^WS0i2j>Te@1|N8ne;wo?!d^PWG3(sJzt&_DvpUEUp$gA;l_t;;RWwTsh;w< z!11o)4*WuYOo_sZ!A!`g{}BP8qLf1--a2HR76pz6ZRx+8*$*hqzaXvhW>rSX_FvFp zgV;7%T!m*q>+J!47uG!|;aL~x@1&6`lxBir#uB0h+K-`(G*aFU19oM}ca)=(3mQ*zRs>q?L`Xnh@*&pB7WVuhh^# zQm-7}9Sd}hF$$G+Jm-S|nv)%KLE9_3NQT%2^ zx!9k_ZYoPFiRYI8y0N20oIgNuU7?a zEPJ5uEUpeMl2whEU}{Jdt1oU=&**Gh*2h#-eQaajR{w}a{#1pP-JxmzC-P;OaYKI? zkpOjZZ6?e1;FEaXITay-j4wQYC>IHcHQdlwUQxqQWC_7Rte51DMQi8h&D1dV%2 ziNv0EY$VqSt~Qrx3K}g`@xC3f)3;S7dc(5(0+F|qVScU-d+*==0F6Iu7M>U=^7?|M zYM||7nPEJQzcFNfuu47GaChxmXI4k=>0_R;JUP}c9a!|>L3XZAneZ-J)LUppE#pSS zCF+%(+I#`D;eEJabiIbQAYj+-6(Xo6Mj5}(jNr94;$=62;|lU;ip{u=rgHcla=+#2 z5p^xR_kq@KMrDo^QN)!o@t5rHqn2#QyiDi}p3z5*};1_W<)$G&X)Sp8MZF7Zm-N zmsK)+;Gb-2-n~$C?VIT^^wbW#DxYa97dv^{CACw_Ql=k-+|2*T!~#ujxJ*uO*#S6S z#Szs9fA|oZay6L=df9!6m~ivcvXK(UGH#Tsb}BpAt8JJhxc*cCa0EjknKgS2K8QUS zcbjM_^0SN|Zb=&0!?l!{ZE!Q`qmk=b+gw(Zk5dTDc06w`^8oX_b|=c_T)ti$b50pY zV?ID8VjGIjfZz7H8Q0Rww2gr5A41cv?fq_OjTjQHkn=#2O1BC#rVqNXx1QcMJ?oWw zzQ0*wwHbhwB6wci?^EW4`CPkygg*|{Z{M}l)UbFxU2Jyb9PvMuOjG;zH?-j&;=FJ1 z!em?P3GLUpT>;SaG*R8Io(YqtUF@!0oJzx&*m>rkmf0<(;ChMV4ZcxEC7GJIKk7x- zxia}y-MAmet?amf<0rzkCRFb`eC6BrPV6v_0+edBTuYuzsPzOW*H8GGDy9lKcEJmf zZs=&3K}06V-*z1}9fD*&PvT7y-Nj-KvI*N>1iU_43U*q~$@l@!SO$#Vui&gri()CT z$3#ruV`xhQ|C_Lr&>6*xMD$3Cy91KV036b-`_oh=PoV5|T{URDn*2#l%{omy z@~%^gxu|OPx(-H%pN>#vPV?TCDDYWrsdzE;@Nd%DmoqZQn$;Orx6%(|Ldq(sZ@}mK0_#_uP z6`%BAHka{6uwE6(KzZ4JUNnPy^;csW8-T?|_sR@HEvDl@e@Fk=0$!~*r;VcEmP@4|F+DaZ=^ z79g8PkUOQ9IZ@e3WM)=xz!E@uy{lhzWzLtoTv0?JZmr924+|ke@Q?w?C;;k;x6{B+ zIFApj`mJO*3im%9@3CbPS2$s{owN62a=i^ZK*Q+JGnBK+l_-Z7JS-@Dnom^w+mLZP z!#N?&hM*<~lONt3WpW!RfOQ1)F}{jqL*yrC*;u<-s#m+s1&2=sx(IK(#`?%Yc|6zO zYm@yTJD7a8s3il{7^$-7Pg3+3cAY0lvd=qck#X5$`()CiCnnmy-u3q;AVP3HBo(2k z;LSgN^0}RZX2c}(a2UR8dKD;dJ-0CcWKqw#VQ?2*TK7^Hl!h+|01m$giel0gu)9`v zRESIhuL9isPzgSSxyp@H(fNM|Ee?>W)m-JRGw-D?4h(c3&QKO>-Km{i+z&mxh%lC0 zF%)nvYt?T1(Z1L}&_foZ#j-zgbupZ+Mz(hLu`{FDD1TEO=N7B*`wzEjHFZOWw1N!L zmC0Wmv0gn59zfC8o+T5#7WS{d`yx{}33pQJ;!&H)Kj{~HKt5i(6|N6&2y8$5?$lM-4J}6KJqN71(b;!R(-uW47o5J-r zvtBt&B6(*pvy$Sex#daby8rF4o?jcm=Gs?Bye3N*YHX14{yec>o6b|C1;l1aPYV50 z-is|lhUvnoCe<*i_2`bRXV}+Y%>AwEB80GSa3pECPQ+-K9qi)C*bvb`{{c@F^*7N&j0;HO!ve5{-v#mtMMA5LfzG8W*A;RUsd+9@Jdu8y&s_cQerm zWyIiR`}KO=IZ;FKPoNLb%cCrSg*y7XO$HrxztWf*Y$ki*07R}oPX_jHvY#^_Di45l zV^!{Ca_{>TdH96C#nIs)Xgq2Aaeg^BFP^W2+M3t^oNZ^<`GOfjXC@`*t-T6IqXJ~< zUfb=sE&E?11>=LZ_7S|30=(UI7@sjvyjo+I^U?S|*)`u39q_>7)qDDokr)QxIcPjk1w7I{jilU{LmlsYOO;ObbiN0ij54>sD^JNw4jdP#Q?4gKQ~wsv%T4_$ zl|vJBHS=*Oe>Lo%U$i5jIKBrqD=BoV zZ-Ou zG-Gt~VznvTV%?|0Ag2i@9V$Zh+o{sLf2Slf$i=5#xP^wrl;-Y;G&sh zE}>gPqf4d-Vx@N$duOCLCt-7Vu00yT!Rp{DSXc!3Qcy3Rq6uqjVGmApBhkjvLjq_W zEWw3-)ShL--P-guvlRNOs!C~-C1XozgfWsCFziR2wZ=3QYMKy8zMkS73t;>y-y2tA zav5E2;x~`!AMEI76H=wTeucU$GIP=0nO`t12&_p0mj|}xisDErJ^>{aK!QAAo1Vb| zE9--8(ZYB}q8cGI@TJ%K-%AQW_znCu?B9nbAXNsgm(;?wZSCWbbGDue^XaTw0*_x- z^oLDsps%#|#{ObWF+3lCuVkFn@5L>yU?_{Yo1UywW%U{G*@;W(TnUtVzl5RlxQ7IQ z6o*nRR-m59$?DR~(VESodcd8vUP}XU>l(gxzQh7+ns|Sbodo_)1xo&o4$9BNmpf^>BHLiu+Md0GQ2Flwn#kHwx} z#bE3Vqpywa-NvwBoZXWqdxXXlXHU=~mBz~VCb%k(XI$FQLwk6wcfq8y52h`a0lS6$ z7nG}UKvo@^n=#-}ue9lcr#5X9=gj8?k4zeo{;e#wY0H!N6PA!K$dw^Z^$#}%bQBRl zDkkc+Xm2YRd0Aau`41Jv>Dj+=DG@_=U|n9BYA~9k&F{a3M zOU;B_dwkjY4Woo?5Whz(TfwW#y6VxECxDEE_)B6pW(+ycgSctYnL{ZyavD{9&iKVO z4$23h6UGM!3^yX4*Ozl}8_fy$2WHR$x@!ihAoyo3s@@G_vNFWQfckMocSWtK?X-g+ zS@<#94^uH1R?E+w0^J8!@xfD`#QNKBT$CxlOnr4#0jd;R%q_h0x!%$Bbn*$b1re1S z;$`umvb=!&8&Hs*cQYz8GLi&q;Xd>|tz=|oS-MsS78VHuGVy}s_FgyY1F2}ZSB ziV(V+=DS@l+8>1q8|TP-1pUSRkKAcnm~}o_e4^%(EsEK)PAzdcqrs|jOC`m3|q{7F<=`W_dC;#HeOD1 z!l3>f80|t*Nq+nrOXnv4X}o|_vGuW+SbH6Y*o%zsYq}B54u9@erqGql^IK6zHQ5zs zl;3o4W&7NfEINWIAR=E{IVey>+UuqNLs?4-DuKtcSs@zkY zAs1YCKTv!D&1?xXWJhs;;5WZ(vMT}o;7>$Es#I_cW}%_h7kS&6*9#j(dSF;VlI#ql zBEe}=RYVC;+Z5X)@MAoE+CBzLh&!5`cR2)*P?YGe&`G+61sp2`ZT=?v-mU0X%M4KB?`!AA>&`r>H;tS8F6Ir1_ zmm%{UTQQm)0ByAagUkrZGMYG)Cn9>WjrRPVHB29%c=5xlFb}~(3BDHDkz#trJEjHBQ3p^mzVho5EIY8+b!6Sgzi-lBOa zVC-I`%`7T{^q^Gv*Y2dehb%#AWt_r?&+Pxq{ZvN&pSAHxHk2f1GFH1!kUP;A#@G8r zDOXW`*N;5=6tVVEF4vPl#5hA2qwJB?+lj~tfKK}ym-?Sn^|>&02(B72s4T)Q@v2xf zv+LdPHTwg?z)^fL9YoP;wSmQ&R^q+U^CVAIs4w=rOA%&s3^h_<{_t*8*&7-aw@c0gQ?!fb57}sKZpaTjJRSR^;tjm{!umtYu!ws!X5QUa)lXnq)T`6iNqf1jYeT zOc07DkN$M_ix&Pj9gGD*y}}){wyF{W1=AkkY4;7|>V9X`@IM6b7x7QdTV1o$fD0D+ z67!|V?J;0k=5=iuL54==aJoT%y}g$qC(6SJK!}Z4+P#9}yH`&cI4>hOCVpD`ZbK)! z=u-RRNBs6_U&0_*ioCJ{3K0|AkbPV4?h+OWZL6TyX(s&mxN)i~*3%-)Db$iv&Oh!C%Ft(q4C>=TEJ0n<$ zYjSF<$>Eva0?cO)4Ua$vR%ENg!jAhI8i$g_)Cw{Ku+qT9WZ7&-VoX0 zIKzrCjI?fruvNLFnk(Dd@Lu&{UX?jvSP4?j*1!I4hK4K%Y<#*K4P?@?Ls`|PMR7Er zexsH(bds6MMRF|q%KHAK4a(0wVsa3G!bSpEQXUHTNYu0N5M)=ZyI6skmp*iO$6|$IR;iONB&j zEl&fY!mf(Lh#Wua0VnT~#}P8HM~M*^F??{pkO>%%QLy=-#t;PQs&5Ncyjfgi;k*`` z*|Q7_Pvo|)ouII-MV{CZK(C&g@XVXPjpBn^Bx)QoPd6I zj7<0gTYC=d%x>sEvp*Tvm9rqK?cWjV8V&fyW%>Nukd-rGB72^C)x7yQ^>V-#Gg+4|8Wak@!9`&db`t z5&;uRGTW(tbN;&s9i|JZJJ`aFdig29=wwA7k_nhOqim|H%J0r<*C{AMnA~mC61Kh6 zhn?_w7k}R_*_XbfXt!BkyR^kev?x0J2i64k;YT{=@W8xkU5@4Z78*R!HR%HAd92)T zW=nZP!f&7{<=&@u@&?#*oL9{e^t$KzF~<&xE1|_Nj_~u-8$7qu^M9=F#0if)zhKHE z5snWNVeNPk@nXscfN+gJ{E=tL?yzBLQnD`c&9aGTu6NMYCcZ4kxhv9gjiJvZyAzTi z*53L{*0=Qj3b`2Wx*4dq*VaXhJRNT*xy%$J^p>m3^zd5B-!g zVg=*Nx6377dKCNA=Z8!=(>!HAFR&hS18T9i*=fR6wH5W6QyIA>gxrhBNMycf%4FpvxjSen* zZ-fw&R8=6K4Wtf=q)fdKT{6-*OF9gZD0xmI<+xk&50*0Tk1w&DMQ_$;cXr%{}Pnq>q`ICn8u+SO>2K)~@b*`MKJ?TDJ;laDnEh*`xi7!?koRDNs znRR~Ewl*mk1JPlRg>xVuvYOo`%L~wON5k3HG?Wz$$o_0hV+mf+uIP+91%_pJPiJ>a6#6UhVMr3j)jLOC1igME9+BZ!sV^*)F3 z)875gWum?xJ9(qPduy>n?is-WTD{_zFxAVm^3FH$Wcys zz9^GT#&OQjYOg0D^?=UXrnm#@&XrvKyQ~r8Ktt~#{X;_?2s!6K7h<4?(Ghd$Hd=iH zrn`)>44hpWn>4p_ZP_zaUxkrpKW9G%mC9ub2qA|=b1@Qr2398|%3JL`S#BC}xex~6 zOi-#zUqY@sYx=>Eo1nv79mCiNH|VI0H+F)v^{41_?q)_B3l#ZliIgkQRtiGKHj(3$ z6ft?g@`oB}e8899Z#bL6-#{=DaG<|xI_&uGF;OrgxVwQC7$jc6Lx#a;d9ZKl;LHu6 zx`h@2#g2rBZ#_CEr{|i<{Lq8_KGt`ov**kFu1Nj*xoi)G?LV-WY%Ylw!dzr)3!C#0 zo!PTVA6j@F0?yw!wvrWjXM9gv#{8!U35(84u&{o%g{~PE`O|W^?5jNu`!E$->1&o| z8fXk#fa6xC{yjPP2Bir`R1SpSs0xU=A))kxXD*4uN{SR2b!Sa zZx!^=p-QjDu>10W4Um~yT~ILt*q4JgPcEFUej!MGf& zQGyHLPAtTfv7I!y)9Uz2vwP=uCv{6@)EqwDOn_1!)s_5e*5A54w{n(@1 zg!tJz1p$@s+Q;oCw_L=Qvx2NWP2N?uqK~cDqWCB3>aMYiHB~F>Zp!u-qAr&pb zBsF+osv8|+Lz%2wGHzj+0A;^TYZ~FwQh6_+^ciRtqj&Jog<~Tz*Txc(1g&N~d1~@y z`|I7`Y)>tFT*GaatMz+;kl1a0;x76KhX1L$2?TfZ`O6Vi7p6ZG|Hk!{R_tTh+4VHQ zGyV`0rjHzi{M2fQ#K>g$9fU-E;&p16{we!e`Bfw)akPQ(HQR79`~5Zfd)`HF^wtf) zVp!-zUU~DhZRHXp5NKF9$O$~;qd z-ff7e1tDH+FUy8xJ13HKeh9wPR zo9MTNIqZ zW<88M90EYA>bI=WT%n)LL*PgG;N8TWZ|#J&BDkxo)etEbQ9Y%Lo5W78qD6|SEt|8k$&?Z#dJ-F?B0DlV;oGN{)OgB8VD{j8x9mEch1PXf5#0LBEVA{fR%49+|4dS#a@M3j z@1N;4cFK=T=vr?6S2AODdL-w8{?+H60I=u%u$>=<_)rc&nipJ1cD$iqX0*gLWFCoTc!;-RkuQ1sqO-9z0y1nF4s{qMv=T2n zN$PS1|0DCI{J(~v861n7d`dp9h+O(79me~-acZQPmK(rSbmXLG4Rr@Z1`>i}7+AP7 zc!@4+o8jLz1%pbaOc{{%XWKuD^4=?&^Cq5ehUEXs~6GCfd8ps$? z;)9>$Ck&IOrHFFby8k-4-ZnFX z%P*JTm$K4bE|u_yJ8LP;6BEXZ_yu>qce!qTn!Jp`uR)xAT#qvmLo{NzVT#tWN1hAX zY6^*@@;pd)x%i-Lysm))dMvRSKu}+|4OP!}mY*jyFzH?1)`b=)Tv+-cBYo-;-4wN$ ztRme8y=io4n&l6MnNub)TqtrfTQ-1V*u_=G(P}c=&nQn9J1UBovdjQH9)Va83_kG= zg&~rgnPr8Yi-SB9YutEO{0LbKgotv}1t;Y_xU@1kM>PKJ5ejD@rHot!t&YR(RG0aR*!499mL2sqJ$dE<$nPAI*4PEcU-pTN ztAE)TIyHhDvNn3)$4#ZkG3M4|z;u$^o_Qr<2VnFcMVSa2iq9(9U0 zhgIz~ka$w^&JL`(BplW@%V>lV(tE^^-{?xc^74Tw3fUS)HbNOAl#zYPrmOo@q~BA^ z__f;c03F-^v?}?3WY_;6{)JpCdPkY_9o&iVc5iZMABXp5DX#q7(-fm@+%Hm1xey#voqBImzR1$a$>eeYk?$`6F0U|dJ zqIKH0T!mXb(pRR^4-5WW3+fnNJ6|7{>FUhtvDynMz`?o&9sqO6HeYXSUUrICjRnqo z%yr7a;S6XJhj+XYsYCiKVpB;eB$FB z4z%$?(9+fg*8}eviz&pB7)E4=)m#OwE~ZAKbT}Z#piU3=FI*4>iaHbytcp?aON#Tx?7(#2>Y^}F|al+juI>r&$ulh7#b}?hF zfy+sVyl-3@w=-~@@M71GEP*#`sDZO0;Fbk`9)Q3m4keIK{dZTcd$08pAY@Frh8o+v zJwXSUAI3$62WCy2hFaT3j=F00i2TzI1Kpv%ALJf{)#!+fDDHErN+dq4Ll%W7?zNtS zXUxp{8$y$eK(GEg51>FjT8TrNSxsNZEa4p;$sjgacu*dUuNdFjbFc2&GSsyVC!cA@ z&iB%X_%rR+4W35B9G3>X+*Yy*1GLe=2geo^0*A~yGkN`_Z4Yga1_}a;Rczc_WC!~2>(h;s5 z2$zAUMMDu$Y|ks)YvuZ9r7nH3Meg?5;m7zHDLhtAW{3W2p<5K{i@@Z(`P+DXlPN7YzEJZyWTn?NOLnNN-V~%#m)+NwvGC5n*MVK2aYNxG|FaH@)c~fpF`Lw@}e-& z(-a#@dS(i^XWlgnU>)vtD&=oP$u%yYXN;CS?UzmbG6=(Q^+~Z%5*r%S)CA`e*<^*U z%KaOD3GHEl_$1=<8aE)>O!wa{_T*5nOgZi_X=)ngYEiO}9a5VCwLql?jA1~EW!p0+ zz5SdQ$Zw@XP*7Ifl~Cc2LW&U09jD^UL9> z-YPs_Sh7?gTmx?KTI{&8S?zI(0M1Z(c-HihO6CZxVN1`>Q9rpeu_8v7@ICs&$axv0 zIGw>m`x6zM&dFx|o-rX(rrKJQb6~#*bW@g}a!RKuNJxQq&3iZM3jKvQf^;V#1KRR6 zP-@+Nyvi^ZBi0-J@hoWYrRiIRnHGs}oeV0>hcGL!xNJ}sfNQu~3FA#y!cU*k^NXfB zZkCv8V`Mu5&SEl_Qcv!rk9^?l{;Rt|+<#v&gaazoJMVTf*>YKpE(;A1Su3dA>d;K4 zDxd=k>JDr3Pmn&Bc&-=puw&p4WKbXC-E2no7)T02W#bs%*ATnV=U(Q*-VFI-ga2|V zHT%E?^OnD^{Qe>>r9_3SrtCmM`fapsz$9IBUbW>}-Y5w==Sz^#x8BnGt3o z1YflGuosZ=tidA6n&tX=q1EMEir%ifd$1aJt(S%Xsmwi@hriH?Dm+l^ORtH=vw)0I zVJu~^c1P%7@%xQ^6!T(_pvxB$I&>cW3s1OK9Ze)M7nohmn`sqPZ$^E(&IjFj`^Le$ zD#iZOcpn`>!9bEj)Epp*?$L^hjakZx!>>2u)RI46@FJG}R`MG^Ul$cE_PCV%tAG!v zOJMv+NQ0Mha$o?Ar|m9Bp=bpxsbo7FgM-jmi+B?2KFU0NCHNKp;x!^FMd**qMb4*J z7veO7&Yk!=Sh=k?SR^BxY7$uiNB!2|3zOE=syoztGE=^4m*T%4uLt0_0C4W0eu@io+9PIP=xVWJW7$1%-1H~~ zjK6)P8~(EYuc|b7mso6XQ~n3Z98vz8_3F@>+sbX?SD1VbMyZtQ**{13hwAK27F*Gd zQqjQetoJX0a4sPF^IwJi!p!QhrzF`hLHUqMTPa2FX2X6$(jcT&4~pC34mSMp{4)aP zgqF^16Pse#FWvAZX&mZKK+eM|^nSQNkwOe%{FRQ7)q$5=CdQ=HdP&95q=&PHr9Y)# zNH(QF$ue^XbjvwS6@u~4i!WY%Si3Nv)usQ?5a+)ux%rm^S zXO@0!&5d`V(b{AGt@l!7Zo6F_Q+xCd^zAiW_Gjm@o%#05@RjC2ao7C1N;~AFBF+)` zkV>^xD`@06?;t#=cKbU%`bpGF-C?bERx^%lC$y;)kt9(C&&PmZU7n2NkV;dVwu4@4 zrJl-c*#*+IiVN>bcS0fdD4vY!XYIXHcruv2dGln$dcu7M=8>&4V{N}KtSh}84xjyO zow3sua?LxI`1V@uFlKW2c=i?)Q>2yMSd|vw9ZljI7kkiIFyspvNCRta zb1wKRiD{O=J72uGw4X;?qT9~Y-SB{tbfR~>{)Noz=zn1o>X7rx;xrLk<=p&TFL6ul zkDnI(gq?|zks~JiVTahVx|_?Kzqnf5w|Z@prto0z@>)Xj`Hc6SX9e`H<@K z+xA>bkh#m79)6opvp7f;C;t8Z1)X4^mLT~TH%|gQhWo|uu8MleS+PyNLJvN5TKVKs zC+?d&CX0ddEh#ePXt^2uC&q6@jSzSnSuKJNVG;?cbaB8Fp?qE1L& zPwa3b-5ByxPilLX2Kcl?h%&B$oatJCwKCVh$b6`qytT<`1C->r|0=8P6G2vO`h?GqQW^*7%mx}z1z1FdQQ zD?pm&34K9t(~FNxnaIbwx1qm&LZ?_kJ7U)}1w#}#b}xaagTWV9W#t%VhoNut3v{O| zv>%ob_-xy0+pNtJcR69LoUjBvR~p_9K}|)$tcdD6*9)|Oso$=v6ah!;6N^2v<7Jp% ztlJ2$?_SWFki}k)exV|v5h$S$Md~D@t?Hj@;i44^lo5+P`UeAjL@_WF7Q7yf@U2AY zHh1;nhYm3@k|d^jMiY zIHdXzj*PqR-tKi0fjPIj05^<7lWT1!^LeD%T*q&wBuQ_0T|e~6>D=z9AcqTAUiFlM z;GrUSmLYp2Aq1cERUVUes2mUo{__z69<4!!r zuFM={q-4}2(N+KuoJM5{KKWc+N`I&T^k8*I7M+6GxGD1KDzL26%?(c;MMjc`Z-ne# zFp*I(Gy6|q%K5Ww($p5PYl2=R;E*_4o5XM2pv~rUG6f6(Gq{omG7F zGs$&KNlO$pSX)bj`xW+DJPi&HOs^^xhs+qu$`m_J?BDW%JSi9vOJulgbo57rf3DE! zKNzn@a{AB?;32>*HdN1%qFB7O8gGCXnAWN2XLs@c;%Y;4E+qdgmk3Un;tpCLoJ*st zBg0tT!B$DJ`QjrRktZPQ#JKi#leyX-zewtDJ@|l>I8_l$2u!h6BN7kILnAw%u*2HY z^0qWiwa6?~OpN!$ZGECvOd~ts7%U*>BHb@9&2L*Ar^L{?GKmpTo2)GNnfOW4@hn=5 z&!&z~pO7kHo{iGS*w8j)%C3u`}ME0Ey`}2OZgSEhd>;Y-UB`7a$?O!nz?#}H`6a-nC#CNNc(SniQ z!CPv_ZY%@6OrgC3-263fWBgmP&xqB?L59A_??TQDkdKGVflW^@*`XCj(X?;;PraFf zx=i-_KgS_q>yDa6dKK>P*#6@|&zaW0;|sr20@a-(rw%6Cy7 zi1$QApOr+DM_x!VM6b-5+WZsWhekm0{vI}*dw+Apw+oFf%h_KYh@9EJP;ysVRs@dX zE}Ty9I#Fi-<6?+DO8AV^L8H6FBs8#3*PE$j&i^P3&jdb*q(FG}lMW#>!w@AN+~;Hk+#@lVwG328NxPb_0ZHa0T;lT}W3x#Ot_YYjtv~xlzF1ZrYJ1tPh;Jz6hn} zkdTh~QZpJebm&gfI>BQ@%AI4ue3=4Tksp8A5G0G@ zVXKrGY0dLosvxMe^_N0L5iGi*z#I8V`=W+0p$;{&z?ZO#&6m$iE7w- z*DqL}_WKScc5}{1m(vaKAq9qHpPDunrNI6+S@`-jIY|4J>CC+_5Ffpx zvgY?oe5P=a*O#EUNxU9u+|1tt4MB{Y-UTJ|9m(;|{qo&H>75CsF~#J2FL95Kgvh+x zE6N&id(!3AVO~TgGoaol`k8e6{?l}A-_P+`8P+H4QdhXvxVv!SpO3pXr=q(Dr5Vx! z@ie~{SRWr$Dci4_C-LlG#HD=&Ty3@7ez!E-`{|^)FuZ~j7?B5e!Mym}4GhohscHzAQiT-ffm=Z^>ZJ^9l-y+Dq}u%)r~mN-nGlscKI{C?&aV7fm1njNC{=@Xmsm|oo|TygINPe=uY*zDIyB|NSt3#s^0E3f(hrX zP%lTzT1IJ8nD{rucSMez3CRNX-dL<79RLVz_OQU8`Q4*K#`;r@d^UuzdA0n~QN@-$ zhs+dU4_o>m@J!(*hcVfoRqLbQy#Ub;0#`)qB~#*v>w8R9u`eIISB^<(>{-)t?^-U8 z;sCAjKQN*FISmObHLC(LSHN^XY0?j|SHPISvVwKa zE)v_ce3027h{%4C1V#={wp3*0Q}Xeg86jObNJgjFK*{y9Ja%Zyhf;wiMJ%ZIWWKZ5 zIVz)|1S{F|q<#$^d*9I0PAiVHMOoZ952&a>KZp)TTP{zCsR%txMND&ACLpfD6~(DG zUxALv4>7#HUS%wO`ePp#${XxBpuZyRWzP&9>r!(o001zhWF^HlGQrxGhdJM66^3W` zX4l~7@1?*_IX|`mbTcep>yW!AUFGY%)_?b8hq^kp0vtO++lA4E9)5C8eC?^+mr%SC zB7%AMke->DdDq08`?_uZ%J%L_XFV!G;vKbvs2{aS%a!!92Ht`EK(Hd*q^yO(i#Cc^ z{tRr#=TBm*cRKwy%F2a5hG@zuUJ*~os?|oWY?5*OiXcGK%q7yN>8Bgv7Uf$0yfBKg zHGy@v$^U+e6pF}Z&Xh5%7{ zEQpUR0(_f5xdtT*EML{3=%a1P{%Lb*rqS062+72Td<~>|NumFi#B3BwUTfD{Lg4ut zaGv*^{95=pqaf<+k39zds}~PwFb?KUaAH&C`xc-3bLbwZs~PQqRJ92*EX@UVH0*^+a0_UsIq$`qPIH zP3aTKI|AWy=#dR4q({>tv_|l>~qQwudpO;|?xu;Xh5fJ#MAmf7YYPOtU!JsWv>ww{Iu&xh zVZ}H?W!ac5{-*|{?(lSyE#r0ErwJvAZz%L9ob}wxn2s1dtf%w&+)doNI>rAAizY=F z-{yQ7f0>cwE`7DKGI&UlLHovHx$yQ!^qMK;q?(Q*u>wp>T9|hc^u$y&oV`@+R1>=F zZ9n$x8UBWjPq&ciOOCvEx;xC$R^azmI8SA2n4Cdv9OyR9F2Bd%3%xE8^_2(G^)87` z97}}xxd1rs4Cl^DNPD3dYbf^ z-_y$j=2RaU^%TL$-wS{NEuJsHCB%M@mQUc=vc@ogRgk%I ztGbRzfJI=lVx~hT`3^Q2RXeHyx3KI2rq?|~E|b3=QvZ222F;^Zm7~pM4`4fdL1U7x z{^({=^^ZIgI3Ij$({ndC+QP&!c`33}b1+XLaGBvO7oEdRt^jNPL(mOZ(rk+ddjJ@EWZ&or3v%7iVa zprA)tWtTzkF7WIC_Rcxt=_r*=*g&tp$yoR_gw~^zxQ25eT3W8 z(u){PD;Ik~7;L&^ls(hs?XXoZK=AFxLH!wt5=v_x2*>*912MP+;Ll8jJb}s>-oFzu zL;>G)>gm^_glpVQblP5rnaXk6PUu4GV`fNGa)Ud>;0(%a(tZtuS7X1JDlSbYSm}}m zdWYmE%(5HiL+L{(=+*jnTlok8BQc2r`WMe!hYPuP6x2n?Hhe%^0&SUae0Y;>$aZkM z?^LTk(#5DnOTl0YC_u1iHSdX<|2USyhnUqpL`SAAkNK&Bw#EVyOU*1z@r~A~0Z;R{^WwH4&9yPLqXF#~Ds|%z zk%x{%?Kro`Rz;T@_ZQLgy*f5M7G)AI++TTJ=3k2n+x!~1fQdJ}Q&h+@Y=>|h9{>Wl z^IF?+aTq*$YThFJtLs=A&0Fj|9V~np$|NjG6wkAT@T5gE{r+AF%*1 zh>zvo*X2~Xmt}q`A1~Q-cdIC*h$8Ul=26T1&*1K&ZApqW&UVH}>x1Yg>L*=1YLx#g zY;(~RBwEm>FHNF^=Q_9+&R1cY8r!WJQ93Q7x-^G$#EoT8`Ps@ccc3T zC`n;*&&u`Fpn_GA&`7zv6AA)|)8B%V`fX)Mr6A8=J`905QrLrZcSKf){tve&CI9!& zErlG=-pkZ=Rb!J);fZ0Y>ilc2QoR}3QKgnl`Hn=>{Qo$P^+zDV%jYr6I5Q;xFtv7G2S+BdgWLxdCYj;(hed_%A@@EHtsURaS1Au`60AQeBz@K$MC;$lw8H5Z% zK|w-6MnOSA$3#U&LBk=y!^FkF$Hqp-$Hu_Lz`(`ECB(tUB?1$Z6A>~|l2YT4l5s#d z8F^_SY%mB=Ml^I3R8(|yR5VOHz{fRwCq{6{K0I*mva9A*Zh5+0zD#E|0`tJ`691tD> z5f%gkg~GjL|Ng+jz#+f`5&x_KP~l(zu$XX|P}Jk|8;T{p*T`J24`}ZjL z3ne8>CjYu@saiPqklC;#-N+koZjF;z z8DqwA6h8Bha8!01WN^VF_j)qMs)Iyf>c-Qv6>AXvEO~)wjFb6E3u zon`&{2hR7y*m&B=iA$2 zrR|#Wzr6ln@XO`27jdzk<~xB0N|6~3s#K8%5-^xUGV#VkfV<+Z7i>)ZGxAbPnV*wB zQ;u4}lv=7ZR0$${&?vAsTXLSyN&Rp~i!CKL6y7qF*F?Bqw5p26<}LOXp1oxtCIBTnAn;-VPdhzRM_cJrhj0PgkRIQ&mp&a&HiIgbyV*L}l z6sEav0_=k9$rGlv0iyXewgON2whCN3iMS;fR zB^Q=zYQOn9glCFd-9*!84cKW8rPAQ$mGjN$8Q#y= zU7X<^*>g13bH3KdQ82R;r%r}Sg)KD>F|yQ2&$3|WhkCKm-P+-L`!Nk##*FshmR~+M zON>gj_qg_muZkOvEwh!q2@X+quV)(_!`F4voRuEYtT!8G!de!rYylZxzPT8iakhDK z*%OiE=+^A<5(;>an6YP)EgqZWV9Qam(^RH@z1i|rBd-Y_^KmwF2DA&`o48}yZ&ppok*a= z=Hd36N2`E=$G40grO!MlwJK%Sw#9YcnXAXUHiw>72Fvc}Np%aE8_e9RmD8{7?HzcD zo6MOqm-I(A-_}fx3=4d1Y+N@@B@xt<`bHq&q13LoQgu3_(}o*+RD(kJg)Ps|Nbb=i z*b|-(>%+yH$L zNhno=9Ib>nrRK|Q)Ib9mFo_}xRPAXaFPSm$dt3}fmHRKgwez)E>kGL@26lR&0u7j! zXoV7-iA0OT&aO@wC}E}toyK4?lX3Wodkx3y=&!!7%)em>?OBQ0t)v9R?tB$i9?WvD zO1*LJT=OuVT)g28LW+{3Vdqa&Fw+1b4~1fQk4DtfC*{!6)L=)Qijt^qdZxc>5L(~i zd^P_Oq{x}nIdIUbEKUftM#MUGeE#kGQ0Go|d$Wy}7dG>YLUHaf85=1n6IezAy^PN= z7$UKrv1s{{d*+fK*RzNNNJ^?nF-E=jgh?HRu?PMD(i84-M-AQ7i2`72e zmjpM#50gQ+K4K4TF!;KIxD$J-IIyFcx9x?^k-WJiHCq%a7Hnv?jN&hYh&1LNphI5`fLxefKWxqZL0OiU}KZFo|Y$Du< z{xN>}G^la>)9t{(_zBh$ITPu{rctP{0&R;Gj=x!tcZB}{qI|lp7TmWv{w)c6$KSX_ zL^%+;n5s38#~M726&Bv`t{RE2xT9xX(&uacmv{ADuPl2`sTc-t?f2Se_%Bw(5AMIL zXqngBZ-+jJmmv zoO-+vi2pgE=j}^s*z9Z^A?N-Fz#I;B;lxCh1wIPHN{kOC|A+uUm2u=?Gr1*CeS5nX zd7jI-_kAbe}HHX+cFD(Lnx@qy=GY%itIV{8YtCz@{ULra<> z(b;ikR0jeaJ0(Q31s(45spP@he-gt|dygFG+Xx()CMfE{|JdaI12B|j&K)(r4e;}w zdh#iuvn55WU5c1&fx{A;WvN3FOVMPkbszM1tBX{i{eTRDk}gsjn$SHMbb|(f0m0HV6L)K`)h&Bgx4y3Wrfc{AuE7l@H(H+lU!(>9MK6j~ z*`LZA?=2}dd0n1T-n(y(-l;$R3;fOt&qcqQ+p1=ynYa_0>DW!{hZ*@*JfC#O-ws<< z=Z8TNQ%n)V2^R@2>sfUH+S69|E>DXTn%Xm8zAoWW6Pw*~0GS*s;wW#Pg@3uW`ITu! z=|SX4^@m)V4$R6*B#9a;68T(hu}Va80lsqJFP|mLE1R@HjY-W3uRE*ucA&~_tw&w3 zn7!ZNR%pZ_FN?81`5fy&qL4oyCe|w;oYD7>!v z1|jlTF@I!h42$P=qKCMN=$pj~^3{CWJJm^1C^p0_zt^&n&ZfcCN;JiK=E_Xw9y6AW zbG44Ke7J%dpzW(ytr@d5wTgJMAQ7I6)cj0Adc`WaFoQd;i&vshr7h@p^*qx7 zs(#TT0j;!=Mk}@42Wxs=9x4lm1oD(%Jk58&zONyP)#%0934^TyHM_4ZEp$Q{rrxkQ zF)P!2B3D!V46hshKv2Q zw=x?6U112&VF}wXQO|%{L4mDN@>@Lx>7Z&&A@5>h z62`<*^w=Ez4queP*`zVGqS}FTyob8ix-0LZ-_o^}*{I%$?ZTLP2$H4k8}=AH2&*P5 zqdbB->Ilg}t<~H@MVXCuV6-I85$bRWhuTPQuX1#1v4xG5jU=G%bT$2l!P0%Y`^5ZL z4jDC*r#0MMv zP#WFf2@^$5;)GzJ&RA*opJEO5%CU|e_A6$M^*B_08d1MKU~c%iP~`)oO-g^j5<1|gJse%xlcdEHw>ED zPiwR`6+6$|99jtD0o{3>SIaLitMbje?_s^Y;c1u(QnUmRp{!#@reZ9jL*^sv>Is7U9ZCxIb+Xog*;lC72R-_ ztkBqcI&B|YYrjy;ORU8l8d#$ombFsHUG{Y~i=(Qg+Igfnf#cAjcBHSNn*Aj40HMaw z2Xs`LV9+Sc?C3KQud>lwSh-OY0a?X2N%< zN`EA3E-YvIBQ!JYN+%C#uz?B=HMHiE9DSzBIjTBtwC5OV1~octS5w2qb(O;FdKC_6 zhq4<58=e+_CG<#lo&N!JHU8@D(vCM;mqLIvmM)1 zOsneW-y&K9E<@twr>gVP;aLhwq)fy2=y7XaTH8JpjARH?G8A-mqOpA0aLx|z2>sYp zjk5Et-AOJ64DI}$V=%shU;-w*Lm ze9*Xy1{0rjiJ4kuqmK`ZkmKN_-|z45(Trshq@bNrFdEOdl;3vq5Qxayg!Tyc7r zo<&UkU_Zr9+bB_D^vU#JoH`U|#Mn-l!I90|-{;A*8m^z?=KRsUw>U%dac!cG`Px+9 zd-#%#e11I^e~8?PU?#oAE!s&Q*VRitB3UHo9C9#Nx8e2aue5|f&Bt|WEO`w{X8(64 zRwnc)0G_?xtAB8zYTA+OwB&Rr)EuKLAA*$@jy6U}zVdgxT*MVKedPFJw9~b-O>q_$eYU7uU%wS}j#{1om?hk-R zSLHVs(Tvx|aGM;4Aj*;AnuwLUw6f(V&kOGFVDW!6neUtkoj043Kiu^@@s&NE7NXyr z4*dg|FU<70zI?g#o6qH8B%KW*{S7}@T*$os!fvItZXKv)i%s^)YH=r5++Jjh8ja(4 zIFQm6o8%7{BKTc5^-OO-cSZji_QM4yD*V+xOeQELz`W;D`qAZX^MO79&c0f9sy^$VgrnI##WmhO^~LZ>6oVQ>MQFworoJ%gI|p!o_;J5*m$0e|r4Y3gjYHBy(P{qt zfBCz}9`Fgemt??#?j_-1;h|Bz{|er{>?MI%nAkYby(9-bE;}ce7)0FU?-mjk1_lJs zdR=XZ-A3b}@Flg;-t6;mZ49)@;$ZNl^`B;xA^v|hV|4v#KOlY0Uwrp-T>f80*3M@p zM-v_Rf083!TZ6AxzF$hn?^3hatMD({A@ruoTz1Y%70A)@+E;Odl(rl68~Ul@R`TYq z5@~QmtT57xh0}QFTmIJ?-esZW9K@20^e7G&UKjG%!e@|?JuC4fT==a`KBb{>bw0kh z$`UUQ!qB==#+rj-Zo6xC$0HvixuDF{X6bj|MIIQ0G>z`?miw7zWNczx|B;#QG-0;x zAtGf;ovUeylKN%V_!u62>k@6%J`lO8XI`Ep%{QpbdD9TIQvmS z6?blEn&(haqLPopP;L@Vtt|kzK$(Ou1`RIX(>{#Zl8g_B@DNxsKQ>D$FJ!a4k|4tJ zH3{Xz7b@bHo-wYoV9{+7MeM;IkS2kXBz>ZhY)rWY9RwG>^Q5>}f0dPyfseFV4Mtw2 z(}2aSL5f#Wk5@pVm8&B;svG_KwkWQn6_gkHHYZJ%I+4mRSnh~Q!1%A7vR7zqy3kuY zJZjI3q{!?c9WlvFt~&d*1F?}Ds#pTi8%!}2;xbx9bcOdE;69o;i`>D(82W<#25GFU zo?rVVSIVejhha@-p-j(V&bT@GP8`b2AP~4Ogf^@Lm1&)Y5C)!pokj?GIL_Cy*rC@( zj7_Jv>HW4t>bI3TC1h9n^;&9iy|(sVy5tYTTsDf>HvI|lFq9mWg9wEV&Nh;<$al-6 zz6gR+)>*%96rsK{Cd=~kIIYmbd#V0P)w8ilrbU+K1(3T7jejN6TYR5&POLL9T+NFZ zD{zIG4{zTtdJW0kH5o@e;W+Ts5c+)0LD}8G)!vSx^D~C`ffqZI+H)R3Uu-GX*8h=a zncCfC9DYrKCvW=T6CQ6}U@AC{*=(EMNrLO+6ZZA{d7YozNW503ll;jnV$2dT-avYS zl-T8;$LU!p?J=-LxwJ$oL!TQJm-81(-yp!tYo1(=V93}@gn2nuMOdO*A&p#hZ00IES3?u>z=#gPxGWZ0To>Urntt*f_ z-^^gcMQMoIvECz{2QzVm#OS2{^!+D)Tl;p=`o^4`pO+BZ278l(PCZpmH0G9L~#vW7Q)$^J3HVim8O0rJUPLCTstmSz> zT+GK!9+gQx7^h?a{G6V&FCP3c+h53Pslg7hucb&js^ud0@DSP}L&5Kmhi@(w|7LqB z!NMf3riDjtDG_h*BBz7_Kb0q6CJjxp(8fR_3`Qah8TV}}qgJJ+&kH(6-EN^!B8)r^ zs*>btX^5sA3(!ZrxhoA#>7A`uFtyuI!Mu4}8d}3UTk+iiSq6}^Mt?gngt8v}hTO!d zG{m#5d~j+HY6_ALp-_+zM=Od@Ui*B1_W|M`fVZr;=;0$DZzy(opgYdvwk*QcEZj@+ z$U@=p91g|g!7h5`3m)%mD>W2%#iQLS^Q72PgvFDs#iQM!82EDOWpK6d{vA94Oz4e2 z5Dth09YGlQzi|NQ;9*m;i>sSrg4x92ARH2E8ZJToIE9T=N%Nd$!Ml>K$xUCc{wp4U zBnnG=oT5O39VJzyPXB*Y$<4ga3!ux7I{NzV-<90a)-K$;Mfk}0qt4e<^5bf&G7bu{ z_sI<#7m;y!2kvonG!n0xFk5)MLRHpXJ9DS*_##^XSU=|pl-5VB-?w$vW zv7RRlGK_&g^mDf^^+#7tma}m93K z&E8wA$~7Lk31-%v_Eh)cbkC58bQjn`r5#D$SIh} zgl98sQW3hRz2p=L$J0ld1(>R;kdHPuauf4t6eCKiGPjz>@Q5BaHp_yU&7AsyABq=6 z?PhHLuyOJ2yQkM>SD&mC&t^y0MPzE2!mvqo(?)&9vlq}&T5S0FT$M|SpplJ3 z$P5Z5qU7}5m92w}?R2N#>Vs%A!tXxFXUJGujX2jxkexE|?0Tx2*mSqW+Z8VPaY|NF zYg5h70@-nJDL)5~m8Gjj|G=!&bIpVH%{HwSKU+7r+QeJM%`5X$OQvE4_pQ54g0^0< zJ(W*x_~}aUt<24xERugxYieB_maMk@HI(m4l>PSwk%6F!dO!ss2`;Mg2UVTZ%CdB2 z8m`Y{_@i8?oMH>7Y(E%>;S>vO-O(Jf&ga;s;ZPM2hzcZ4l(wRGf`F*f0|>Ckcyf_p zgjpx>a-fPpC0JniMu8d)Tovv#Y)~*rlUq7o@ENKk$4J5MMGnODtu}LAAaC})3T^YdC+HT3X6v-C0C6*OYn&3fQRAxi)9g*+8{d!WlLO9 zE_ws|G|5fwTdCb;7p@7U&n~PtQksv>y;o8)&73BWRT4WQArP7~ zQWGxef@JGIfMq`Qu;e}BaxWCqTFv_TNiy|>lgaP64)^&|50Xe3R`o=3&r2tc41A%E zL`irQ?x%`CDOoE5jp5EBMv>#F0&^7BsiL=*@js!X+PHbAwQ8!|yIv&AZSMb#016V+ z3NA%FMWrvqnvV=PrO;}5-wH5+R6R6Y7tEbLQ5Lm`oHnooJ>xdD4rrsV=*~;1KD=K` zKVDG1DZKegb0bM!+_FFpQ}lyk<{oin;0EefS1eGueu~nEqWOpoY`e!*qguy)#BswD zeVP$PjdSHr#prWx0EBQ}52GsqT9@hVn)AkJ)7qxyIK*^WJl> z#>(B}rmZ{IHuM8Q^iMc*&NupRBf~yhZ>O}oY_KkVB2~sWA{Lws#uUmm3>w#Z`wQM} zXx?(*Bf7Q|`u=PiN`;qy@E-uy@Zy2xV8xre_s9_+TtJA7vS_($S1k|vE^iOD-)6XG zkY&X4v~>oiC6}nFOuxX4$`7xE}Pq1;wR8X>Y{h z5%QT{AtUES4s%_cKuHe6@XKK{{1YMDOe~XOF=pG^F=h&Ga`VD1y_%~qK1DRMz&jaS zRSOqSqISa1QZc49!yI9USNCa?wt{dNPf<^DV+bj?pp-&#H)DY<5Ae@V;qrB6@W z*gejEEOTn(RRsopMt%EiM+Wv=B=lH6EnMIV4k!^Al)Xo&X1PR|mx6^QaspstiFqSb zzrtR&{Ay64u28B`sa2)TnEHQKX?O$O%`ie2L^v2A%D--9UXD~?{ap?VU)DpHpvM0B z%c~@{-G2qdMJY!GHgva{zNh|NS%2f`-+K4ID{TEs@6s2bB!3HWfA|}Mr8m&x7FwwL zOaCtlA`a?>YL2rf)=`g4kLPsruIa8n0L8{ltIhYNUoM)RJ}sPk>9@cB5c8QfDxDR0 z&aFWf>@gW49+~r2IR1?1tY)E)%jxZg@m-(+SRuj#O8oORI($V~kWj~WFvu8$Y1`>3 zSeRg@&XYNc-VbEJ{GrBvmAzfDS)g5@6#NiKdf_fv3Rn`u-yf3c=f;xOSVFUd;6FvaDww2mWIuQx}qZ$ zQ+%gJ#$*|C#g5B(T(Vd?iw6{=>?DTQ>XeIxfm@;*HPJ=JoLvFZ>LL%_<0j|!lgZnP zYZhxn7NH|juS>)k9HRXsV2dhHsdiC%Uu`iLFQr!!Vqj^fAQ8%tCFl4ql&H(Ds?g@uok{vK)``%GX1kj!906Z@HR5{ zl9|D=tZDEH&3(k5j@Ry9x}I)bw^)aOd7MT)zSl2F5QRbs z;`7E_1n~BL=-N);lOB`1)Uu70xw?iDJ64D^eU&6{MFkh--tjwROCL(+aAftU1JFUy zTU__Iu%KdtepKfLf9rapWSf<;P_*ojZ5kYLyX{c^RyeM~C8 z;<%lZ51Tteyy)uES)1`^+ixn-fSAL`9Syki1o2~@5nNkA&1^~sW^uR%z>Z_q*yOjb zifqIuqLjIC!})6XtZrf1ZSe>w4U(k_A$>k;xM2ypW=?^tbcD*4Z!2WELn;zJoMvXL z>`mBv3KqdE-pS0U3&PPcdg-ouu!4&6id-ZTi! zDyWM(@G->*fWwoZ6EkrxCd89CC@GYRQWQ=vTV&{&4ge#8k(2vjxG-VCWFT^-)iIr5 zTF@8^Eqyh-J}Ndf>;lXNa{`OXU%7<1!PKOhP+0zGRyl#F4zmN}Q6i=c0KZaf&p8Ek z?!8iIFqH|Nw2%Q)N|_$~;#gI3U(WdP;3&vEY+zN=e$e_f8}__4{sF9fE+dcC;OMPH zR>rFS0|c;^UgCh^?7GIJQ0hZyDy0NZVtZKO&-NoFW^j%y9p!mZlU#A|IIAGY(V@ax zl6mI#_lZ28X(KR|y*Wf}>7q0J{RSyXe4_HlV;j3Gx2we$pjiFw&tzLzoU~ zJR={hyEK`I7_7-Tj8r7^JZz4dU^{9#t{h+*p&mH6iYT34zCJd`o<$5xAbTt+55P;* zQ*p@KXyWO+AXVdssWOP_7$n9n7I~)^PWJQgGzvZkt4GW-@ z!bS+tEf_JAG>R0b>L!k@)zLVzl@trs2SicAmN0oFhDG)z%1Qai0i1=J%oqtbJdk4a zx?c=k;p&38hEExENP^Zakxq$$$^sxBq7EUb3SWx$N(JQF*!_^@gP3TqT^@hOhC};G zmz8EVm{B=R4hT~VCdFysH1wek7Xbj`ODsee*tOV}d)GlJv_orlX-(jxV1z!*fkI*a zC?dT^M#3?9{7At!?Pev{eAJMeHBHE#6=Nl+Bpz z1Uj#b{5jaO4NCUlyo~SeY9KtA&f8x@;SvFEVpzfbkU|Nt73TGs1W-k)UM(nk<3d2{ z&dQI@cCGCYi4GJdG}0UhHVBz%Z_fJJ-bzHs8CG*W6HF8KnFQ;c;Z!MOU25yQ_3rNc z8jK^Ec2E_nZ)-!jQB+!c-V7*bkffkr3w=69s@Q!Vh=I)G*}^Lw*;b2<=lhlt^CM+F zK5eSn`P|xO9P`+)q7ezgF|4?A#`#kYblmDr?)f2)qgQn(ncG3&4l%-`raL#|yPwxE z)Vr97q<11S_FG%e@@VJKIV7p!FY0Q%F>sWO^->VSn%kdvOWsd34nATZGth>bp=?=^ z`zdFU7=RB@S8>&UPqB+TVz?Su7Ht0I<$NM+AlP~9H69XSt_-RjcW=&TIVKPXDyEZ^ z_nX{50Fn-@C6Xu@Nl38v7w6&MH z!%|_afqH6|`XYd{->+`6u!VPOsJ4*bgV_9-c}D^(6V?MN*_~LUOLA0d(odZ&?0ora z5*HOH`IEHM5g1=bnlYlE9v9ylaL0{8CMARGpFKu#!R;7ar_pm(l*(2y#AK@0+{wg6 zCZHHX%$lGtzD{9<@zK88K`r+9C?vr_fkq_St(E5}UMwOrHaPaV+*zT~+Q{_^spu!q zui}0wW>G|bX&KU$ZO)qPVx^Ddwo8un39jxP4tqTV^OWeR;c)@t0Vf)1f#KrqSEnsE zxms&nt=1NU;bP&%H%{LOi(dz;#kpe8>joFRZl(&!Vlxs}nC!BHEseKpH-eX-n;`qi zyRVbQ{=*=kV2BSK%S{@gmTKuTPGU3JWsfIEAEHx&DF&;BXP6PZ6D+RgB|2-5ZH`;>tead!xqfQ4V114(`rNM>=N8hwS|K#bo#k7V)pZGpxCbs%3NWO@OG1xi8WwKpgG~W zBJ0WT!gH!2M!hTzkylq%9ja32di~4H-Q_=mXZO1t#E+uO;IAcA=*wO&Y7Dr1(w;|$ z%r1Qc!dpcJYg2>9;Xu?O4PbL7kT?h51WSbGtTs*>EiVvNQLmUxMsEg$Aa0;;7UkBO zwy|76Q}726N$(j1yP=PZkSrNbsVm-q&DVYjP*1Q-cV7YPGe2wM*5NBBVcnAYXo{nTruU(HRQE2JC_xLeyZbI1xJ8I_QiLwe$j~03|?`-B&;` zG60W05H>L~*?B22FcP2*R$!I`E=ODn=cK(}d^DbcTIuPPH8mkj!QhG>QBMu(mJY&O zCOF>IpzMjh=>rq1>jutu|9>OOj$=??p3*R4Lc_AK03ZVFzaq7NZ)`BZ;_7UsF3@|L zpd>N1!v4npzOlh%fHD-cq0XkiU%meR3*&iZ%fJ0UQt_7m|1O1W`TtE6Pl!Fg2>zAQ zdw%`939YyPEB*YB3bg*eOh^AS{HVvCaA0M-=l=OZ^TGPE?Ze)$PSt&nuin-o*M6d2 zKYXr);G$-G@-a3sP@s{2z*o2Lbb~)7AFL^NNLBpz?*qOgex_<<+Muh>t@z|{y*EZz zEX;pA%PQ1@p^e_#e+z5Nk4_ip!cQ&;Jz=+j&PXC5tUc84G^AVQGa=;MvO|KvB$Xu@ zwJTJ2kMmCCO?OBSxQ+cRnDM-s^eEExB=t71gdPdvWrv8akS&Q%uf#DEGOOu4>1=#H(8DIJlK^e;3)FaEZ=E2BV?8XEz1kTy z31fl~JRF=lR&Ko={U7>FktqSn=8v_uua|NM2vbx8&1pj|~IR>wsHjslo__foad%@{Tq3z`B8zq`@dFnal-t^Q7iM+6BM-_w>-PwYC@^c*40xt46D+ z3ZTGPN<(i$%LsujoGey#d{(kFrMksue0cbT9-*Vn~iPufyzYpP5Y{F;R0P@JWUrmV?Lb(Z1l_hY0b1j3KN}f9D<=w%?f=_BJ3ET+Aig+qYVb zw5frK1xC;|b?%xCz5ZlS8cAg>vf!8g9?V_fBcsQAz4#>k8Hs%B=sfNNY~Z(@koj|b z4@{IGfq|x^9>XM)KY%+^pLJQ@m}&JxN>rNk+NQc#Tqf}wBF?J;2lf0`TD%mPkK?bN z`yZR%@aXZ0DGR?vFuYD@mZ@>7F-ezo28QekO;m0fASPbE*!rt9B{tX4Z_-{FMvWl% z{^}aIGCgEgv$#u7q_@>1mFQe7IZD4AKC$$r&aR`nE_y@{H9xxx1eu2l3z})!3Pr&+ zerYU1aP!$iip(KX8Q+lp84nuHB0r$*Ghc+P5La-}-^<*jVMU1<5FJ)o-$NK(%LZDm zzdT*rz3k;0^Yt6&iPBXbn+OH+Cz~ihNP0j zPkh5UN8JL287!%>+|S9dca#^km~R^%g6RT_eD%~ZSalOUN8Irvq_{35$dwg##a6pG zrriRj6f!Be+{p3XobRv4&YeZ%JXMj58Xjw2=47aU96pTn4B7DC4HiS2w+ORG4a)Il~^eurN z&h;EH2dJzyUAoc>N>8X4na$2iXy`YYBR@*VEK*fAEe|(8kb&d6eJwXV+A}V@F&DSv zH>@IznCpq+QZ8ib9lzTigVGIOdBnh8FHE}bX=O!bH*EgTw z!Dl<%N*N@-E0-Y8B(FD{dfHrAli{uLjG9QtQqi5@sXVj6DxDNG%Nt(>qk-d)LdNlU z@)8&7UMmZtvm;Hk|v~ChcQ1WVD8;eDv*cmg}6V2RnPE4lQrp!m!fBXmax_$5?#W zue)}X13lR(R`ANiDv>-a4jQ%+GcK!umHi*Ivll4)VZlwSWxrDq4Gftm9;1Wh^sep; zYPD-fZ$Ifb7Zr(8PmEqbLpfb#<9_4jV(3kQN&`H>->-;8oASk*Og$h;B;@1Vu#f`B z>GHHc08K$UcTy@G?>G|Wj1{r*^Vt+~}d00uqhU6!8; zh17=HmZ^vC{b7sZ$XwwrQF%ekRYW<~LB*dnw0lfjj#-o}Q2Hbs6hlCopt|e^&GD3P z_4@5Z1-nk#pVybOWDw3Tc7V8&-1yr-u7;9TR?u*-7GUjXm;-;1O)u-fYaDiN*F95I zL7g291`E4_rrZ796By-5Ox)K6nNpK(MTE>~6$M}pMCmE1juPZnUFkc?G#g*M5kL`a z0b4P*jN?ebja{N02Q!=S?%A4eMIe%uP|+YyH9X5(LPw!NWUg;&GZX1WC7od<$jQs6 zQ}92j7-BDq$b6jDrkM~0KQ=~5w-tEe@kmo&d|!R@o=(fw%v{41xw`6ru_lT%1v@;} zx`$u8-%?wz3{hi%gk% zOSuv(5zpmJ#0WAwGn#%-33vZIM%n$v$wbVM8!aoZN#ghllzB1ZPXJqU-3$CEcq04voM95*-AwE$;@|ey$bN-Q;B~^4#u0009z7k*|LR%@5#_Rj?5BVHMQskcfE2M zy8;BI0dfF(RDfNX)3JvaXSc&5XSIDxJumSN@_~MmxcDlkSQRmimll_zU8Wc_YVu8?HnfZqUnwD~7$K@8d!}kJTNQeZ=OS`2#TNl3k*zdNT-Jmw-w?;K)(~ zx^s|GEGV{9k4&FvF|z5t9rzHh6alz|vZ3m9MAyEf!s7i9;ALTwa=Jx9xPLNQ%l_P&wQ!M|LcsIs%`8>pnvCvuA&ei|Noi*c$Lm+wc| z@2^e;{mGq*1GCYnubH2a4`}jtX594C2==!-N8iZ|ua)ooFjdQIx=YEQhFqb`e&Db` zpSFlhvvBp+fvrW*VK?jnO-D7Wo%)rd9o#>U=d8Gp5B`|YMcgDy*1uf@1o{2Z%NYBdN$`T6j=}CwIbgKM3X~C3w8rM_|GzTsix6 znW$jtbNZci))m2}RWIkl)=FR#kg(bN2e2a~x>N$s!+!rfBi3+Zo!ot$Mkq+(!(H^O zx(ZYjqUvj%=glcF`*i(LZK|+Tf9wcO`d(_K8a<+Srzczb>M3V6|DLw{Vc%UX!JPAP zByb0Lo!mNVr{IF!BJSvYaU_-z$uxSX!RPZGHfPnc42w%+<$Y*h?%2uW;`U2sT!Z8C zCEsN0y-%5Mq?(0P$(E?w$N@Ad6j2s;vrG2Gy$=OfdpBa?t76r3qb zfTQtqZt>N2|BW|ku8``Fj+;=z-$#A?UeKE!AvSuWX(mB-97`9ymD1JIbfn%P`4rrr zK|-Foqn_I^(~?Hn<5y34^th~6WVsn(rhS^4J%O!=X!E_`#u&E@ z&$}FW35Ois0qsX-NFF7tQ!(^q%R{9?wqD

    y{(-`u^dIjWHRrLfhUK$DDj6 zAJZ;K3mKaPEk0j~wW~8}E9FG(;;Tw9#r*+vY)AgRg8gsuiRNcmHjMAH?C&^9I71TF z-v^s9p8s6C3j_cV0Q&z)x!$j}&etf4Jy?d__G8Y}xizNDG;ip^i%~$K8 zbK9qpe)8<+;=o?Z^3GgH1C{e zq>Zpj9r?`69=R*xnNW7wJ!H0rGhQV+X_)$Fy?|KvS);Ll#; zD7H39tmsy3QP~zZ1ta`pPC>cjqjBOY+f9NvvgRXTLnHm?Y{L0I31{|B$34B{g!>1NtU-p+uP-~e196Sb`@^7l&I z-!izuiw^_KE|SfWkcvw%V5NrmFsSE@edMF6qSRDRKnUYiOY~e{#`BhsPz9&{G3;;p zQMK<2_RHZ3xPWhJwKw0{{u!$$tJ9jTIJ3oQA=*-XTFttL?<#qGsOM5KOgT!$5UXvU zfMKjNS>5_^;`0Po=(~s-9=;brH?l|WIo~P?_uNVT08+{Wo{R3EMm4a|e8B$DYK!nxt3=L3^sjkHMfV_mhkTxJ4&5E_NVj_sD4ll$RNdu! zEsvxB;S;^|{7D*petLAQa{78N0k*mb!!MVt#oX&=jSXQ{3h{qDo0yEaeL0o_nL59r zVm}hdgYM=q!TF{%@Yy)e+Q=Gj8?T7beMsA?vTH8)dKq6=oy%A8M`*suVA^t%P(;h_ zq#Xwso&DU($cSNQyty`lrK&9-$0?z%#9HqT#mVyM`o@OW!ryVex;lcTi!UZpn`GTv zczw)aQhEt3mAHZ7K*U)zIgH@6qneiFGL9hMxQ(>!giY7-7cZ%-$DU(G)79xFEvVt7 zG4-k&D!o?{%k-lz;*)RT73Y%AE%1ZMuy@>Bk-IuF2Y$yh&sATMFyilyd!3ly8sCyc zQ|?hENr2d77~7|uD10C9U7@G2%MF6QZ&Z`bEcB?zeqR|(+1g)jbQLXol9@s5SkrB} zy*%LU{?=}B+E*;SPItE4p?zhR`RSu&COHI z>_=z(1BE1>1BDFlhgUc|IeC+9g>ZF|_{*X#Xix@XKPJucui+MmAegLkT@M;Q6xUL@ zY}ZmH=He%50s4N!R7R=wR7Ue0?oN#o<-fn^cBUz*^&DXc%dAYp=cDq^_#3yjNS~Uo)3^j^0>L%71a~I{32woqg9HgQ&>^@J+$BKc zK>~rs-KTTsy;*O5%vy8rn;-MS^(4_*X;m6;H8o*M9X__chSd`V&fKk;Kh_c_7MMLm|;3`$Wyu`vbbRglNN=n zMmq}wbo|Yfc3Z`1t^Rmm#nszyx2Lc-6;yU|6nrpjjE%nP1gTDDp{EIcA|H^dm<@qJ zPqR>eRtPM-@{k$lJB(h|5r_Q8G)qIMA<4CIe3tyd9p)y0<&7jR4mklIC{i&J0+E#_ zB4l~^4oa3t7WyIbBQ=HW)1NRV7Uus=h|d6baHB&Q3X{&N6ot8^d>Dy#;w}4I?av^0 zJF{e(5nv?3pz&XH{(pwz|4m;0h0AcL=Ds~-u1|x1-sA3XUBOFBDh1_k*jQ@Mz4+3} zyOTEgy34JH+yn49is)j7OxM7UHQ*ULfHz<{Bfa-gfg%&(@W>ymyce<^WTlpD^q}Dp zZdj^C(8u2=#~}2$`!!;`o69ON4A^pVuxg9HNXd_jn{@I_S)%-)xu#zbEwC`H4_YIpDMcOHA+7q3Kk0y zlv-r3PhNJnBZ~(KJf#3(05#b`T3kWIfGHwl=i=Kp48R&=CH~3r?`uaMpzG1g<$Jc5 zL-nd>b_v+x`C|#Z0*s=~+ReCt^O5U!%K zCl}ZFXGBCuOn{@UgB4s{Cj_hrU3#;ggBeF^GJ0QVVLcg{H#Fwz-a)6*3|agO}}RKg{kNHgB9|yC#%FdnUm(TRntNN zy#UZGjR9cc0>N+&rknZOe$wB5EvRiJ5?maQ;qm*zjWuQ`q-6pf5#e@bOkGF>W110; zQYQ=sKfFdx6$&He61e`Ue2y)2q#hm~f&NdG+5c4yBdmF)#ghPDM_G+ffsOEiC_oGm zoE9@Hc9fS(hY0(BqLkHLMtx)7-j#@N#&KC!7#d3zPD`mqBtJS}(8!yK=4l}gVMEp? zrkOI4n3QR+o(X>>PND>EnDo}Q&U$V0A?dgNmTk6%qVi1M`&6L@L75Z80~S9b!Xm|x z>QmL`-6t>lzKg+tHaL_PH|)(%-+4MGg?R=O0I;iV<7krZ^>Oq2ar<#0>h3C4=(1?3 z8o^okikc$IOv-U5i((xasNH(^`E!H?)s}FCc55Si$n(P@hTLN!#Dl_GG>kmDIVx3X zeCe|2g;QMM)xZp!M6x9s+b^N=#^iQgaq#-ae}5}gh%&!vj*TKZLmg{&<%cs|qjG1hw90a8n)7xr9qa){&nahrix8THa` z?VHLkL*G5U-s?)|r=iNSZThmGe1ECFcYMy(+H+NL^(E?Vd{O_I2u`T9(&}W4YLLo^ z^}hJV8e^5Pyr?!C?*OgpVTQdXT%1 z@@6|g!II*!W3K5KR?%fMQaO>DLV1<`^LbZxKvRsAvw!|FsloRX1gC3A1$Exb$#jhx z%fXLIe0q_Gdv`4TztNMHl$7RmgU|ci>|yXlMFi)KrOvwhzl1!k3%20Gg|gj*+dcPYsZ zzCor5ID8`PrvjNA`N`yDe-3S&Zce|?qy{&OsXVndg@U>n))-7bGH*(osX#9xDA&tw z6&DN1YaQy>MS4W4a_y`B2Pu$Mqp`R4`-MOmQ;qQlW zU3|t+<^`)vbh=Hy-g&Z5Z9Ywhd@HKKO;nNQfpV&iiX9fB4Z3kDU^aeqUi_RsR619) zhl^jD2sh}upPpFd%bPUDNa@PF>Pg*;4SAUxLBs<#+%T?d1R{hld5)A68K_H$EE0{i zVIsVL;y7!&(B^ae@xtCRt;~ankb|2hR$+Y5G!nJd^{VR)wWfv64ws<(p%g{(GkQMS z@81=uiCQevzS$BH5)8!3KXN}z7H!Z$dg>BxMWmFT5&r#>$s4efHG-QT8Ix@$z#x%n z6*<$-t=mOS!R__ard&?8`O7i6t$uhB5S((Oi=-4&aVTv)9k#^Hrxw2s=UO}TussYX zN2pA5;f6);4$P6p@W(VQh!1zY5%{Ei7_823U}7A|L|9p>d2X@cxExqvmXFF5jDq}D z2GhhA|E6?`tiN$s($K#^mPq`TqFC#pAAPwupJv5-l5F(tF(1fqGi6+tz^EDGUzU@U zCZxFwe)41HGvtbu#j)>Yu4IlC?}2OSAR1>`$@e6Z_otU-mEnC!SJ^$Xq{UG7GJ11j zxRrU(+kf)wCtPE0559PLB&AJfcTP`1XXP`8nmg{H9>Srt76uaZtJ2fsvlxP%lWJw- z4HdfSd615X`O57tXePtcWHGaI^gRBFm-wLfiA^T68C2&U-{VO2i7I}1 zLd!Ff?=?*icr9sE57Z)O28|yLn?i+=cjZP#cXraj5VN&+sfWV6d=UE4_u7)UVVX4j zq?j(@x=0WAw`*A52A;%5srC!RF|T>ugOr~B+y`YBKj+_}@LwhNMTV7VIiQpZ4p%x< z4+$g@DjHziumbo%e|KsGNKAO%hCth0hoVgUTQRcgxm|}(z7Z%PP7I|7CiN-dN zj_Wtg_-Ci`Ys@EViun6?`6X^dgx0fZ8CayDW+^C9c={7uoM0?@)^A*S8CTAmBUS4uv%F;Z1kC z8!w1%yN2)ELv!Ls7BenC7KA{6h4pTziNAjdN>u9;YI$-{s%K?0od- zt#jJ9=N~XjhKGa+oV}mmy@R@I%2-X4n`-5Y;s(4`f&#Oj4_V196<5+I<2qnlsbw)S zET;ae)W|U5NZ${bvw4YFAD=!uqB4(bhi!$s(a>0r^D|fPut~azsUoA}6OAI)O8G#*y5%lz&oj?cGlHpHLilZyzEuzTiE^aQs8ISg)gw1?e*68U zzMt60&-E`DGz>EuPw0zznIz33QPSBmMG6!EG&Msnq^j`g-K6(h^bO=c3sB$-?_oz* z-pKDI!XUs++lu)EJG<>pDV(Gewk3KTcj8KvmHo7dg#8VAGG`M5F+-D|HEotizu^Nl zmc3KB5|L#qz2>K@Axpui^29*h2&TnYvSXVZi8O(rZP z>rbM1L5=xO0~7?`C24s})DXYG#z{!ajgU-c#~XlmTMo|H!? z(S+NWz3T)N=}}LL8`gIib0YtfT@DTAmxiKvV%F0tCeoCVtS?IeYyZu2gd|Wv^ZihkPh{!_OAF;2Pzjng_+DZO6 zbJJBV$+{XhqA1Uy`P!V`lBab6fi_+?{Gc%boAY1}%?s9q5nj+-$x`hu5j^LmwkN%- z%_~rFi@~}1SPDmg#mpBd5usRG?fVzKB^;Ubgi2iy3>5N=HT-qPgn=i0RADBpek<5g zfKKe{5pKNAF-VjL`R$Li{)4Dje#4~&8(Tu}>RB0R3u{~C1$Dw`pER~au0D)bH$5<& znpgd`B$P=zVS2xBp{VF{s4hp@vB`g7LsI*qQA2BH!hd4u9ll+Z^9)RJFDmfXAd1C@4Z*l;q@Wp~t~KyJxgO zdjK;=W?MshthyZ#k{l83+KgO@{xDk4j}tJq+x_lQ`Inql z_l^IEfUvjee8Ud69x1Eu;)3W8kIIHAnfF1ZfJct+)Qh&aV8ymA1E8;26Mex%4`@?Q zKVE)9Lw1>tBWyMMAr?23nNj$#=1ZI7mJzb$bS+}!B{fmQnHy#v^%Zf<&8`~KUT(zW z4*3^?)eCkds+zao6QaoV^|(X%@G#boIaZGI%;BxncbF=c*?*r&H;JPg3%XIkLCg#s z(!R}~OR}bC@oVWm+WeEoqsx`rOU{4^q`#}S5KtejH9WA-nP0^-4ZY1yy?+(ZT&R4O z+3==oq6nelT>5-ar}57%>}OylP5hr;Qtm6ybFba=Oo8Zbe1P)IFV;tUvUgu+(3oFA zbCg_eaZyCKp85RviK7x^njhaJ2$eK(#$?>%Y-yIO~zSEXCz^>vT zgV=UeaZv&j<{@6sn8c9wLsHl=7*I{Rdt+1R0e^Jsg304Z+ZSDvHA8yVohLq#tv}LG zr>=Yz3shq$0@DCOUf&RfrWUK8e*oFsYsM3T=YKaoVVDCzTZ0Vgkip5u9YSh3L!m;& z7HJ<962?*QS-Sj|vcO_nBwv?!aUTFATwdXk;$TuE$PBhIF1j(P|3+v|`|wbrxKH9} zsGPms1oVsNhLN1KS*_StCG1M2EoGH1Dulqvflb|v;S+#~T$umeg6T@}2YujRa&2L6 zrZw;#99uWIBg(d~ zE0@y3ti+0ToaOTS(O0Sl@H-gSE!*Q_T3yIp=YKIh|LY4F6dO5K(%f)Gt)|f>w&<(D zGGW4+pLln6T-zA|UNX@8j4odS)aqU`6qM)0~1mp^DZzC z%l-YICTtatdsBK(iTFdtk86sXUPG_@Z&#Hj#fn>#TCCQ^u^dQKz5TiA+lvjVzYR=Y z;;(Y?N~fJoD^EQ({fGfwSoEipTU=f4S^F#Sk0-ipe%*9xf{+l|^>Qr0P#Q+EKaB;t zr68z{cujRq-@FpL+5tG@28sffHvBiT(Pg;pLCjSuXHkjA*x@TYa=<@&!9sBYK!^+R zmie65*-JlFw%`(zXbe5+*(UY@04O+D&-YuU0yJDi6HV zQ$MFznLT|DuBe#jWfWdIJTg|kgJ1o$W0L+ihW8C+`q_KS-Q0Nw`CdQOJ&1-|X?s>Mmb(cP|rCcf{D!@U zzN2f0v}r^4M8EN|@^MZ^g=&JL)b1oy5n0|)K=2%YHc?bBc50NM3EdVu|L*>@(WCOP3Z185d?1kL-uTQ;B-;*mrotA0dgb%YW?pVSIDK(wVyyKk z>H$oCS!w-2V?F% zq86>MD)~wAaPIr{pex>U(x{2f=UdXhyegvBkE5s!ZJzUn*_m&7zQyZq=p;NLB~CEH zElpWgG#U?M-S~pl)CTI-bb+Qn7#wH+Xl|c;Ohl_?sHMRttaYmn(NTrg(3^hcX8k^G zKY{%t;PN%euUou_5qNtGKGizX`F3|K9@2t4Gk?U2P&Jy0jjh+C2~Xd;wF@P-f}@vG zj1zpiu#r2fhGh-$ooZ%tYO+I-iALeq<8uKNBuQzWbm272izW%KrGFwj<&EZgGF$nr z+=C#pMi2R4y%M68@4`-3HH<4{te3?^|h?+!@ zNy_l6`?~Sw`Wm)K*s_y@Wh!)#TAs4w38~tP);&a&x6e`+y6dZLZT0-D7hoef>PC=i z>otNOL8Y=$zudH6XS%2^#pt5j@6b#&3FXO`WUtKqNH#80=rX4hao9fAHfT6`{= zKij;tDu^bf9l0=ifp$mZBV@$hL=vGny!@?m%J6kIU(NLcmhEt3q29t>eGm8Axsjk> z4=I+5^)ap3``{n&Wzu5Q7Tqk)1dtxWsiGh9p9G7~N%tXpvD^mNt0{Lk5z_GBPjw$B{A?GrxKF7%Ap8c@EI% zXK3^`yx=?gAiPUsK?3x;RGvXC;USysSF1pGi(2@#${S1}(x{lq(PK241C1^_+(OBs zseClRlk3*W5YKilXYel%!TJvqXN$Ntlqg+$j??cE1I^B^Pu%rG-xKGM;T%SJdLHTx zE+1k%tV92lnc}kvkwjI_n6G9-5Z|1!hzK)A{C_+UT4ZU8a&(*5jPDe@_8Zk$esMZ5 zdC`3-c43AK^FSI-NcNR{4mY4Cc@99Vj}ssKU>b*Zz53x3v(X7 zO?G+Gvz|7^?756;yeb16X7pC>usCu^x>}=2u?RI2Dh%ZIelIpWl#FWl{iRZ?N>e*wfj9D1@p3N z_mhWGs(8yv(?)h8F_HT=BPtRLE~AO;ul!a2WVtPRTX>&~o$^*(Ol8+WER3I|$rd&0MyBDki@5xRSdDR&YZ*670e3 zLp%y3Tj0AQOr-sW+7(ahx6w4tkv{IVvWCTt@h--+*o>}2Tez%hSM{}PrZHT-!z9nv z_p;Nx9Wm3%Ly6Iz;*>b!k7st)*ElxtHO)3Tq+Qum2C=2k_UO1460R?a>k656Xg*eg&xY~E^RNK+XyaFoG2OMh zk*|8*H6P~P#{_TgAIw@a4r4OB$CkWxJC@ep9Jgu5ehg&4u{kb_>5#|? zZlGHPLweoT;H_my`m}4(%u8#&Dqfr!?u|uC9Xro9bxBEnbx%s2?v^-^cI8>nM-i89 zZJBd1KuSG(xI-oc2I(!`1M*kDQ+96xeY59VL})!V4L0d8xR&vF+2IRQ*8vmS zecY>M^_tKru6xIef^l?qf@81whJA_Gu*XhjcgLla2I)ddYOWs{6cekqZj81!cn%WE zvf+ZG^Do#GEGknCqWo+WNAiXd-|7h+DJU!lT^}*fa5WJMxqp3VHa)Wu3pK3P=20ShaqR?bA#WPkeF1!vVl1dRfif{( zLc%S5)ETBkFvFP}Ngx?;V|>?w`sHfgvK(XM57R~`T|05$j>ajz{H?Yp`Cj=~45`IW zJ*GRQotM%9z1GC1?4Bge=B(isdXf)6_V)tj0S;0 z&l$UBm;1OoD_n+NTV7pDHvi^qiiE$pDeb-NCF{**qV%<)W2i_llGWir*J^dMiCaW8 zlWREMvsEQ8nlIA7AsRlY+r19zlF?7zze53}5g5hfM8GKI~;d%DI2a z4`sPmPp^e~lFN>K2jTEEb|-vLCW$iVS-TRmpn|Nw_EPK3Tm0QyNZ2awixM2l=4`@` zwe=tCS`7TSayISIo;(mF8|xYmdT!D+JVc;lueArJvlBdj)?9WIfyE&N%I*G%MA$RA zwi-M-Q&~b+$9n4n5h#{OLv}mz zrRRU|-eoI%g17{-J-bC`p)6d$$7&7lF&Z2GFmx45^Jx&iJT1RhXMeoqj57@(QPgL= zhy~UrTo#=sR<2Ecq@cT+52V_s>AVy2FIs|aV*a%biAJ);6jT&)J1z=^|3-3}^)Kg1 zHIlWqxC51M9hCCFJ)m({O&Km4qZIihewa}3Pxkoa$39-e*mcIEz+YGJt~N$Q--D=v zzZGp=q$;%IH+I(p!3tOwP86!!^^EJv*2}_8V^{T*VW%?s(DK2M(I4a?t-NUr%Q|6) zs-u*GEymTtkh53gg>lyq_~*;JV1=w)`ih!BMZ&14?_^P@qUyoaE5(QoXsp(4RHi>E z0BL(_=nDv(M{;X@x=naQu|u-`7#Z;BH?XpCO zibxqOP;ld|8|L4=8itIFpKg4*`5^say=NA6zBb3eQ1B(-drhEoT;@{^q(=Nz&SHd5E*%q5DL<5JFp znAgm#ptu$N_%lsE!)W|m?>;n-o>lb1i~t9-G@30rMKRg<_&R?5sLaaSqU1oLE?eYh z+vK{3{|rZ%stWpLpd2nTHoEM$_#d0ZrF1NZlu;2eu#yi>3dsQ)Y-knr^%t%vRK#ka zgtF`aD=Wy~bk7Ds6Ts#~6uVu+*sP>YD0e0!4<(YeRY+FpIJ7G?1*ga*{u_D**3~PN z*AD&kM7m3Kw^tCsIr;2Au(Iz=@Y?j=&qjm(y9zG|#T>@+kCJp(nP*L2rg4Q%yOgB< z&p=Q#TD(!F@UXVVZ&vB>@l)jmlFVr(a1z`~Zz=#yH3de^$6z0b$UB+Tq2>vw=c(8( zVYKHpt4B4~D5C?w&mdrSV107)AQXorr@Ws&Xh*F z%}txo9d#30Pk)UflNAmR8Jj2Q`ySYdSnu$Nxac(WedqM!rbFfjTowFm;b{|7tfoFV zh0ic(F{j|E6CPqWLNalgs^4>E()dLsR1CxHCNdIHUq1!@lwVKFnNjM2s*VKlL$j}#>1 z7{(qwN=De*6a~ZjD z4(*jOQu^`{wnC1hf%m~jcD!ulCo5ro9QK!HHBVygq#za>WDvZ!eF-6isi$}4tL1`v zUvxky+*TSC^YV&W2xKS8rO-}>oDVLyliZFc-9Jq-!WDe5Z7Z9LR-aB4cv||Hj2a96 zK-&wJ8tE;KL2Hw4p^gtSPCo*-pk zDONl5OoreHA@TSl4ont3=wk}GQpHceh)l#*>4mhV%T&z^^2s zk3E9t1wO&vXEL>a0#6{su*iS)D@HmmEH_vXB)-3w?3B{XCQwnts5(p9Uw&&Nnh%u* zuVc$yKE7#Y1Yo#Jz?c(5s~D@7ijAHHb$uQk)YRWvGMXj+gndiapfys|oV_rO?Mzcv6`Qp8VEroeH;9u0L6F5cx(Jjz(Ji{d=3Qk& z4(y-Is4S4tTFu96qawIo-ENsnoF*)h5-&60{Z zT>oBlm1S;Xgp)?~#76EfAHf^{mf-;xY%2yhH&=4@sB5#(+k{RyV}Qd4X-BXjBSnwf zQh&w1oqjwh0p-SRFc&_?bsaeS4s21i6ER#Gu^w124x+6!LkuTKyeekc`W*BAhJC1e z?xgGSHFHP+*dZRYe%7@Cae+0?$Y#~0i95&-(d}DGg6w5%-ev{Pnt=^RTNzti`v34} z+&cR}QL=``p?}Y4<8u(NK5ADp4&+Y-){BCaA4nvL-cOAc1kdalMcqOlcb|3rf+R*K z2Id6KscWeF&S0L&=uym*>fm)_{50NMbGgu%2pZCvph>W^JZ_ElnSq#S=J~p+=edcJ9EwdWAFo_ zVgBLn$c;#*l!YOtkQfz#0M#?XiKE_mUz-GyIDsitkYt(vYU+pU-*YgKOoB}+Q;O36 zkbS9#;mek$5PwnnAC^(@r&eMAlf>>K+Ul_GwuMfF3SA!w_aeT9=GWOg=GjY!cm2Pf zOST8XOa2Zd^^wn#T533h#ku((_7HMVigdj};s|4-?J~C`YKk)+C0-viql%9$(>BTS z(3>R9(C~36*jx7h?^ewJ)gGb$+=kBo3%soVow%P58zoKo`@uRssb!kh)ASrZFkZmE zWibPh>QU##Uc1HGjw6W202zuhFxueN~KApqc-Q zW~Q=Y+UTZxUTT5DBz^xf8KsZk&NDgyhkY~jkv;rOqb~V7#I=Ai*y%Mw$0$^CF1UUa zGx*2(>TrX(g^mpG?HMa6x_gY}j0d@fbThQCcq+7boGIx2@JJGh(*M;QzEX(^EHvU? zxZ&~7zRGXixTqb!Q>=q@hE&=G96M$aP>BUhhRDzS===;J$3Afg^bxJg4<@O z04a6a=0t=am3b@yn3^3KL@1XX>-h+SDh`2`(Rx6ar9 zBubC%QJ*Hl3}y$8Q(t5)9epq=C`XB|xx>Zt)3M95tLXu<9}>7O^L0*)xT6t=eFNuK znCh=E0qvc(3(t&>u(!5-E=*OI8&FvLoy@$vz#W4(&#_4df3V5wnV0q=R8hs-@%P*XWRa3)&$+i{}Z}n&)sD>F-Gq zGw^J0<>ppYIpH<23Dm9s50hiLax>qLU27sPz&HqIZ8P>~caE}b0BdqT{X zBiD26a|K(xd_P+<_}^#Y8=ALv-cxz}nlia}!vTnZrJVV_$zyuDD-6JJfrg-sfqvef z*AfFL$CaFJYQB?LNVQkq1YMtxdo{IKe%`Qe-Q!=EQ*WfC6_Ee{NeB(L#n$nM4^Qb z`+@|x!>X~B^}t#QVo%TnK4M+;6D@J?a2cz5S#O_sfBXC37B`FZ9^)rch|u_=mE76I z+K`6gtHy&F`kVcQ7mDK;ZlKh zdm7J2_wT#>0MwJi0go(uwLk)*XkbZbZG~th9ku$)UTe}T-3hbK5e}EAcSo;6-RL8W zSXG2ps+q3knTakdA9r=<9NM66zEh^}kKNB4fdy`L&I5Q881aC{uA=1fP2COyTq>ja zaa(<_fVd(OldnW1TfJ604?k#jVU*i7+|*c=y=TRh6=(@OC~DM023OLwT9vEF8r}s| zdId?$##_a=7B3S6HuV96JLecYt-o$M&c-j6+XUKPl^=a~qIk29VO3GH|JuvFlo9>p zD>h>Q&OyGsz%4C(@OD|dpf3;};{0Nh6luR2;a z(r>Bg$Kd=U@LypH6z%F^ln|K;D*bKsSJ-D*W8T~OtwPRx_nDF-dJ1i67W!L0*c#|~1w^Rogq(9StfRAiI7sc1UsFd0q^ zxK{o(b4#3plVe~^_cwlB95eC!UG{kTX1R4*LmCqc1DwSyPzkkf*|AMaIKXWSO zzf4!0=lbs^Vvtn~-3;24FpB4+L-cPW9$Dh*f1GUj&mNEYFBAEn2D%Lrr3{Es^21sE QcZx_!PE8grZTjKA0f;sM5dZ)H literal 0 HcmV?d00001 diff --git a/docs/book/flowchart.png b/docs/book/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..714626b70e398905987bec0c460308fa7a84471f GIT binary patch literal 14794 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 literal 0 HcmV?d00001 diff --git a/docs/book/gantt.png b/docs/book/gantt.png new file mode 100644 index 0000000000000000000000000000000000000000..95c8d08a14bc4306426530921fd538b404dfc1da GIT binary patch literal 43239 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 + + + + + + The Official Guide to Mermaid.js + + + + + + + + + + + + + + + + +

    +
    + + + + + + + + + + + + +
    +
    +
    +

    + Get up to speed with using Mermaid diagrams along with real-world examples and expert tips + from the authors to facilitate a seamless development workflow +

    +
    +
    +
    +
    +
    +

    + Flowcharts is a diagram type that visualizes a process or an algorithm by showing the + steps in order, as well as the different paths the execution can take. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    + Sequence diagrams lets you model and visualize interactions between different actors + or objects in a system, as well as the order of those interactions +

    +
    +
    +
    +
    +
    +

    + A class diagram is a graphical representation that is used to visualize and describe + an object-oriented system. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    + An entity-relationship diagram is a graphical representation that is used to + visualize the different types of entities that exist within a system. +

    +
    +
    +
    +
    +
    +

    + Use State diagrams to model and document state machines, an abstract way of + representing a system or an algorithm. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    + A Gantt chart is a graphical representation that is used to visualize and describe + tasks (events or activities) over time. +

    +
    +
    +
    +
    +

    + These were a few of the diagrams supported by Mermaid. +

    +
    + +
    +
    +

    + Book description +

    +
    +

    + Mermaid lets you represent diagrams using text and code which simplifies the maintenance + of complex diagrams. This is a great option for developers as they’re more familiar with + code, rather than special tools for generating diagrams. Besides, diagrams in code + simplify maintenance and ensure that the code is supported by version control systems. + In some cases, Mermaid makes refactoring support for name changes possible while also + enabling team collaboration for review distribution and updates. +

    +

    + Developers working with any system will be able to put their knowledge to work with this + practical guide to using Mermaid for documentation. The book is also a great reference + for looking up the syntax for specific diagrams when authoring diagrams. +

    +

    + You’ll start by getting up to speed with the importance of accurate and visual + documentation. Next, the book introduces Mermaid and establishes how to use it to create + effective documentation. By using different tools, editors, or a custom documentation + platform, you’ll also learn how to use Mermaid syntax for various diagrams. Later + chapters cover advanced configuration settings and theme options to manipulate your + diagram as per your needs. +

    +

    + By the end of this Mermaid book, you’ll have become well-versed with the different types + of Mermaid diagrams and how they can be used in your workflows. +

    +
    +
    +
    +
    +
    +

    + What you will learn +

    +
    +
    +
    +
    +
    +
    +
      +
    • + Understand good and bad documentation, and the art of effective documentation +
    • +
    • + Become well-versed with maintaining complex diagrams with ease +
    • +
    • + Learn how to set up a custom documentation system +
    • +
    • + Learn how to implement Mermaid diagrams in your workflows +
    • +
    • + Understand how to set up themes for a Mermaid diagram for an entire site +
    • +
    • + Discover how to draw different types of diagrams such as flowcharts, class + diagrams, Gantt charts, and more +
    • +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + +
    +

    + Purchase The Official Guide to Mermaid.js +

    +
    +
    +
    +

    +

    Written by Knut Sveidqvist and Ashish Jain.

    +

    + Knut is the creator of Mermaid and both authors are active core team members of the + Mermaid open-source project. +

    +

    + + + +
    + + + diff --git a/docs/book/sequence-diagram.png b/docs/book/sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8c51ac1c5d6601960112784757061943d9d6dc8c GIT binary patch literal 19823 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%0D)Muw-s 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 DRc_Wx literal 0 HcmV?d00001 diff --git a/docs/config/theming.md b/docs/config/theming.md index 8ccab7804c..9b81be1b9b 100644 --- a/docs/config/theming.md +++ b/docs/config/theming.md @@ -3,12 +3,6 @@ > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > > ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md). -> -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md). # Theme Configuration diff --git a/packages/mermaid/src/docs/config/theming.md b/packages/mermaid/src/docs/config/theming.md index 3fcd1cda12..fb3026fec7 100644 --- a/packages/mermaid/src/docs/config/theming.md +++ b/packages/mermaid/src/docs/config/theming.md @@ -1,9 +1,3 @@ -> **Warning** -> -> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. -> -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/theming.md](../../packages/mermaid/src/docs/config/theming.md). - # Theme Configuration Dynamic and integrated theme configuration was introduced in Mermaid version 8.7.0. From 61ef4692b0ecd5cd9255212f266652b42ce6595a Mon Sep 17 00:00:00 2001 From: ashishj Date: Thu, 15 Dec 2022 20:24:13 +0100 Subject: [PATCH 0839/1038] Updated documentation and examples --- packages/mermaid/src/docs/syntax/timeline.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/packages/mermaid/src/docs/syntax/timeline.md b/packages/mermaid/src/docs/syntax/timeline.md index 571072ec9b..3438b45426 100644 --- a/packages/mermaid/src/docs/syntax/timeline.md +++ b/packages/mermaid/src/docs/syntax/timeline.md @@ -13,9 +13,6 @@ timeline 2004 : Facebook : Google 2005 : Youtube 2006 : Twitter - 2007 : Tumblr - 2008 : Instagram - 2010 : Pinterest ``` @@ -54,9 +51,6 @@ timeline 2004 : Facebook : Google 2005 : Youtube 2006 : Twitter - 2007 : Tumblr - 2008 : Instagram - 2010 : Pinterest ``` In this way we can use a text outline to generate a timeline diagram. @@ -83,7 +77,6 @@ timeline section 21st century Industry 4.0 : Internet, Robotics, Internet of Things Industry 5.0 : Artificial intelligence, Big data,3D printing - Industry 6.0 : Quantum computing, Nanotechnology : Human-Cyber Interface ``` As you can see, the time periods are placed in the sections, and the sections are placed in the order they are defined. @@ -125,9 +118,7 @@ However, if there is no section defined, then we have two possibilities: 2004 : Facebook : Google 2005 : Youtube 2006 : Twitter - 2007 : Tumblr - 2008 : Instagram - 2010 : Pinterest + ``` Note that this is no, section defined, and each time period and its corresponding events will have its own color scheme. @@ -156,9 +147,7 @@ let us look at same example, where we have disabled the multiColor option. 2004 : Facebook : Google 2005 : Youtube 2006 : Twitter - 2007 : Tumblr - 2008 : Instagram - 2010 : Pinterest + ``` ### Customizing Color scheme @@ -292,7 +281,7 @@ Timeline uses the experimental lazy loading & async rendering features which cou ```html ``` From 2743b72a8702bdcfdaac20f79906d59466e8d767 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 16 Dec 2022 01:12:50 +0530 Subject: [PATCH 0840/1038] Add book landing page back --- packages/mermaid/package.json | 3 +- packages/mermaid/src/docs.mts | 2 +- packages/mermaid/src/docs/landing/class.png | Bin 0 -> 34954 bytes packages/mermaid/src/docs/landing/cover.jpg | Bin 0 -> 17803 bytes packages/mermaid/src/docs/landing/er.png | Bin 0 -> 13419 bytes .../mermaid/src/docs/landing/flowchart.png | Bin 0 -> 14794 bytes packages/mermaid/src/docs/landing/gantt.png | Bin 0 -> 43239 bytes packages/mermaid/src/docs/landing/index.html | 337 ++++++++++++++++++ .../src/docs/landing/sequence-diagram.png | Bin 0 -> 19823 bytes packages/mermaid/src/docs/landing/state.png | Bin 0 -> 15574 bytes pnpm-lock.yaml | 180 ++++++++++ 11 files changed, 520 insertions(+), 2 deletions(-) create mode 100644 packages/mermaid/src/docs/landing/class.png create mode 100644 packages/mermaid/src/docs/landing/cover.jpg create mode 100644 packages/mermaid/src/docs/landing/er.png create mode 100644 packages/mermaid/src/docs/landing/flowchart.png create mode 100644 packages/mermaid/src/docs/landing/gantt.png create mode 100644 packages/mermaid/src/docs/landing/index.html create mode 100644 packages/mermaid/src/docs/landing/sequence-diagram.png create mode 100644 packages/mermaid/src/docs/landing/state.png diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index f31fac80ba..cd809fef13 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -28,7 +28,7 @@ "docs:build": "rimraf ../../docs && pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts --verify", "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", - "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress", + "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing", "docs:dev": "pnpm docs:pre:vitepress && concurrently \"vitepress dev src/vitepress\" \"ts-node-esm src/docs.mts --watch --vitepress\"", "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "docs:spellcheck": "cspell --config ../../cSpell.json \"src/docs/**/*.md\"", @@ -77,6 +77,7 @@ "chokidar": "^3.5.3", "concurrently": "^7.5.0", "coveralls": "^3.1.1", + "cpy-cli": "^4.2.0", "cspell": "^6.14.3", "globby": "^13.1.2", "jison": "^0.4.18", diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 313d1f2dec..17505b6b9e 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -260,7 +260,7 @@ const transformHtml = (filename: string) => { }; const getGlobs = (globs: string[]): string[] => { - globs.push('!**/dist', '!**/redirect.spec.ts'); + globs.push('!**/dist', '!**/redirect.spec.ts', '!**/landing'); if (!vitepress) { globs.push('!**/.vitepress', '!**/vite.config.ts', '!src/docs/index.md'); } diff --git a/packages/mermaid/src/docs/landing/class.png b/packages/mermaid/src/docs/landing/class.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2f663d86f967ca5d96c5fffca73b6e8efb3ad4 GIT binary patch literal 34954 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

    y{(-`u^dIjWHRrLfhUK$DDj6 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 QcZx_!PE8grZTjKA0f;sM5dZ)H literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/landing/flowchart.png b/packages/mermaid/src/docs/landing/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..714626b70e398905987bec0c460308fa7a84471f GIT binary patch literal 14794 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 literal 0 HcmV?d00001 diff --git a/packages/mermaid/src/docs/landing/gantt.png b/packages/mermaid/src/docs/landing/gantt.png new file mode 100644 index 0000000000000000000000000000000000000000..95c8d08a14bc4306426530921fd538b404dfc1da GIT binary patch literal 43239 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 + + + + + + The Official Guide to Mermaid.js + + + + + + + + + + + + + + + + +

    +
    + + + + + + + + + + + + +
    +
    +
    +

    + Get up to speed with using Mermaid diagrams along with real-world examples and expert tips + from the authors to facilitate a seamless development workflow +

    +
    +
    +
    +
    +
    +

    + Flowcharts is a diagram type that visualizes a process or an algorithm by showing the + steps in order, as well as the different paths the execution can take. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    + Sequence diagrams lets you model and visualize interactions between different actors + or objects in a system, as well as the order of those interactions +

    +
    +
    +
    +
    +
    +

    + A class diagram is a graphical representation that is used to visualize and describe + an object-oriented system. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    + An entity-relationship diagram is a graphical representation that is used to + visualize the different types of entities that exist within a system. +

    +
    +
    +
    +
    +
    +

    + Use State diagrams to model and document state machines, an abstract way of + representing a system or an algorithm. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +

    + A Gantt chart is a graphical representation that is used to visualize and describe + tasks (events or activities) over time. +

    +
    +
    +
    +
    +

    + These were a few of the diagrams supported by Mermaid. +

    +
    + +
    +
    +

    + Book description +

    +
    +

    + Mermaid lets you represent diagrams using text and code which simplifies the maintenance + of complex diagrams. This is a great option for developers as they’re more familiar with + code, rather than special tools for generating diagrams. Besides, diagrams in code + simplify maintenance and ensure that the code is supported by version control systems. + In some cases, Mermaid makes refactoring support for name changes possible while also + enabling team collaboration for review distribution and updates. +

    +

    + Developers working with any system will be able to put their knowledge to work with this + practical guide to using Mermaid for documentation. The book is also a great reference + for looking up the syntax for specific diagrams when authoring diagrams. +

    +

    + You’ll start by getting up to speed with the importance of accurate and visual + documentation. Next, the book introduces Mermaid and establishes how to use it to create + effective documentation. By using different tools, editors, or a custom documentation + platform, you’ll also learn how to use Mermaid syntax for various diagrams. Later + chapters cover advanced configuration settings and theme options to manipulate your + diagram as per your needs. +

    +

    + By the end of this Mermaid book, you’ll have become well-versed with the different types + of Mermaid diagrams and how they can be used in your workflows. +

    +
    +
    +
    +
    +
    +

    + What you will learn +

    +
    +
    +
    +
    +
    +
    +
      +
    • + Understand good and bad documentation, and the art of effective documentation +
    • +
    • + Become well-versed with maintaining complex diagrams with ease +
    • +
    • + Learn how to set up a custom documentation system +
    • +
    • + Learn how to implement Mermaid diagrams in your workflows +
    • +
    • + Understand how to set up themes for a Mermaid diagram for an entire site +
    • +
    • + Discover how to draw different types of diagrams such as flowcharts, class + diagrams, Gantt charts, and more +
    • +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + +
    +

    + Purchase The Official Guide to Mermaid.js +

    +
    +
    +
    +

    +

    Written by Knut Sveidqvist and Ashish Jain.

    +

    + Knut is the creator of Mermaid and both authors are active core team members of the + Mermaid open-source project. +

    +

    + + + +
    + + + diff --git a/packages/mermaid/src/docs/landing/sequence-diagram.png b/packages/mermaid/src/docs/landing/sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8c51ac1c5d6601960112784757061943d9d6dc8c GIT binary patch literal 19823 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%0D)Muw-s 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 DRc_Wx literal 0 HcmV?d00001 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01cb0787e9..951d3cc1ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -236,6 +236,9 @@ importers: coveralls: specifier: ^3.1.1 version: 3.1.1 + cpy-cli: + specifier: ^4.2.0 + version: 4.2.0 cspell: specifier: ^6.14.3 version: 6.14.3 @@ -3492,6 +3495,14 @@ packages: indent-string: 4.0.0 dev: true + /aggregate-error/4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + dev: true + /ajv-formats/2.1.1_ajv@8.11.0: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -3684,6 +3695,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /arrify/3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + dev: true + /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -4018,6 +4034,16 @@ packages: quick-lru: 4.0.1 dev: true + /camelcase-keys/7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + dev: true + /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -4163,6 +4189,13 @@ packages: engines: {node: '>=6'} dev: true + /clean-stack/4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + /clear-module/4.1.2: resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} engines: {node: '>=8'} @@ -4512,6 +4545,39 @@ packages: request: 2.88.2 dev: true + /cp-file/9.1.0: + resolution: {integrity: sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==} + engines: {node: '>=10'} + dependencies: + graceful-fs: 4.2.10 + make-dir: 3.1.0 + nested-error-stacks: 2.1.1 + p-event: 4.2.0 + dev: true + + /cpy-cli/4.2.0: + resolution: {integrity: sha512-b04b+cbdr29CdpREPKw/itrfjO43Ty0Aj7wRM6M6LoE4GJxZJCk9Xp+Eu1IqztkKh3LxIBt1tDplENsa6KYprg==} + engines: {node: '>=12.20'} + hasBin: true + dependencies: + cpy: 9.0.1 + meow: 10.1.5 + dev: true + + /cpy/9.0.1: + resolution: {integrity: sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==} + engines: {node: ^12.20.0 || ^14.17.0 || >=16.0.0} + dependencies: + arrify: 3.0.0 + cp-file: 9.1.0 + globby: 13.1.2 + junk: 4.0.0 + micromatch: 4.0.5 + nested-error-stacks: 2.1.1 + p-filter: 3.0.0 + p-map: 5.5.0 + dev: true + /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -5247,6 +5313,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decamelize/5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true + /decimal.js/10.4.1: resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} dev: true @@ -5792,6 +5863,11 @@ packages: engines: {node: '>=10'} dev: true + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + /escodegen/1.14.3: resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} engines: {node: '>=4.0'} @@ -7080,6 +7156,11 @@ packages: engines: {node: '>=8'} dev: true + /indent-string/5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -8041,6 +8122,11 @@ packages: verror: 1.10.0 dev: true + /junk/4.0.0: + resolution: {integrity: sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w==} + engines: {node: '>=12.20'} + dev: true + /keyv/4.5.0: resolution: {integrity: sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==} dependencies: @@ -8427,6 +8513,24 @@ packages: fs-monkey: 1.0.3 dev: true + /meow/10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.0.2 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + dev: true + /meow/8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -8796,6 +8900,10 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true + /nested-error-stacks/2.1.1: + resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} + dev: true + /netmask/2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} @@ -8982,6 +9090,20 @@ packages: engines: {node: '>=8'} dev: true + /p-event/4.2.0: + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} + dependencies: + p-timeout: 3.2.0 + dev: true + + /p-filter/3.0.0: + resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-map: 5.5.0 + dev: true + /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -9034,6 +9156,13 @@ packages: aggregate-error: 3.1.0 dev: true + /p-map/5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.1 + dev: true + /p-retry/4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} @@ -9042,6 +9171,13 @@ packages: retry: 0.13.1 dev: true + /p-timeout/3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + dependencies: + p-finally: 1.0.0 + dev: true + /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9478,6 +9614,15 @@ packages: type-fest: 0.8.1 dev: true + /read-pkg-up/8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + dev: true + /read-pkg/5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} @@ -9488,6 +9633,16 @@ packages: type-fest: 0.6.0 dev: true + /read-pkg/6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + dev: true + /readable-stream/1.1.14: resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} dependencies: @@ -9540,6 +9695,14 @@ packages: strip-indent: 3.0.0 dev: true + /redent/4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + dev: true + /regexp-tree/0.1.24: resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} hasBin: true @@ -10342,6 +10505,13 @@ packages: min-indent: 1.0.1 dev: true + /strip-indent/4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 + dev: true + /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -10566,6 +10736,11 @@ packages: engines: {node: '>=8'} dev: true + /trim-newlines/4.0.2: + resolution: {integrity: sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==} + engines: {node: '>=12'} + dev: true + /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true @@ -10704,6 +10879,11 @@ packages: engines: {node: '>=8'} dev: true + /type-fest/1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + /type-is/1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} From 60d01856984d0b98a82ec9811ea1163dbe08814e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 16 Dec 2022 00:37:37 +0530 Subject: [PATCH 0841/1038] Fix book link --- README.md | 2 +- packages/mermaid/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 059940a028..9a500283ce 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ English | [简体中文](./README.zh-CN.md) **Thanks to all involved, people committing pull requests, people answering questions! 🙏** -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! +Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! ## About diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md index 91c2d16401..e6c7db6085 100644 --- a/packages/mermaid/README.md +++ b/packages/mermaid/README.md @@ -10,7 +10,7 @@ English | [简体中文](./README.zh-CN.md) **Thanks to all involved, people committing pull requests, people answering questions! 🙏** -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! +Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! ## About From 7855edae6babc14f9de9dd6de070d71e6800ba53 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 15 Dec 2022 20:20:04 +0000 Subject: [PATCH 0842/1038] perf(er): pre-calculcate er UUID namespace Pre-calculate the entity-relationship diagram namespace UUID. This UUID is always constant, so we can pre-calculate it to save a bit of processing power on the client. Co-authored-by: "Ashley Engelund (weedySeaDragon @ github)" Co-authored-by: Sidharth Vinod --- .../mermaid/src/diagrams/er/erRenderer.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 7a79201607..08b448219c 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -643,11 +643,20 @@ export const draw = function (text, id, _version, diagObj) { svg.attr('viewBox', `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); }; // draw -/** UUID namespace for ER diagram IDs */ -const MERMAID_ERDIAGRAM_UUID = uuid5( - 'https://mermaid-js.github.io/mermaid/syntax/entityRelationshipDiagram.html', - uuid5.URL -); +/** + * UUID namespace for ER diagram IDs + * + * This can be generated via running: + * + * ```js + * const { v5: uuid5 } = await import('uuid'); + * uuid5( + * 'https://mermaid-js.github.io/mermaid/syntax/entityRelationshipDiagram.html', + * uuid5.URL + * ); + * ``` + */ +const MERMAID_ERDIAGRAM_UUID = '28e9f9db-3c8d-5aa5-9faf-44286ae5937c'; /** * Return a unique id based on the given string. Start with the prefix, then a hyphen, then the From 528facf88d7b474eef03b829b314cfd9b373fe91 Mon Sep 17 00:00:00 2001 From: steph Date: Thu, 15 Dec 2022 13:11:07 -0800 Subject: [PATCH 0843/1038] minor syntax update --- docs/config/directives.md | 5 ++--- packages/mermaid/src/docs/config/directives.md | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/config/directives.md b/docs/config/directives.md index f011085c31..e845596ad5 100644 --- a/docs/config/directives.md +++ b/docs/config/directives.md @@ -32,9 +32,8 @@ Mermaid basically supports two types of configuration options to be overridden b **NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. -::: info -We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon. -::: +> **Note** +> We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon. ## Declaring directives diff --git a/packages/mermaid/src/docs/config/directives.md b/packages/mermaid/src/docs/config/directives.md index 968ea337b8..ac57e6d217 100644 --- a/packages/mermaid/src/docs/config/directives.md +++ b/packages/mermaid/src/docs/config/directives.md @@ -26,9 +26,9 @@ Mermaid basically supports two types of configuration options to be overridden b **NOTE:** These options listed here are not all the configuration options. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. -::: info +```note We plan to publish a complete list of top-level configurations & all the diagram specific configurations, with their possible values in the docs soon. -::: +``` ## Declaring directives From 521a30dcd7dc1fa1041d85c30d1584f93053b6e8 Mon Sep 17 00:00:00 2001 From: Ashley Engelund Date: Fri, 16 Dec 2022 06:37:05 -0800 Subject: [PATCH 0844/1038] add a space near the start for symmetry and readability Co-authored-by: Sidharth Vinod --- packages/mermaid/src/diagrams/state/parser/stateDiagram.jison | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison b/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison index 74707c5d5d..dc050b2ffa 100644 --- a/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison +++ b/packages/mermaid/src/diagrams/state/parser/stateDiagram.jison @@ -65,7 +65,7 @@ \%%[^\n]* /* skip comments */ "scale"\s+ { this.pushState('SCALE'); /* console.log('Got scale', yytext);*/ return 'scale'; } \d+ return 'WIDTH'; -\s+"width" {this.popState(); } +\s+"width" { this.popState(); } accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } (?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } From bb9b0b015e85be9d229e54c9c745febc1013ca10 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 16 Dec 2022 16:28:24 +0100 Subject: [PATCH 0845/1038] #815 Styling subgraphs with color shades --- cSpell.json | 1 + cypress/platform/knsv2.html | 35 ++- .../src/flowRenderer-v3.js | 233 ++++++++++-------- .../mermaid-flowchart-v3/src/render-utils.js | 119 +++++++++ .../src/render-utils.spec.js | 39 +++ packages/mermaid-flowchart-v3/src/styles.ts | 23 ++ packages/mermaid/src/dagre-wrapper/edges.js | 3 +- packages/mermaid/src/themes/theme-base.js | 11 +- packages/mermaid/src/themes/theme-dark.js | 7 + packages/mermaid/src/themes/theme-default.js | 5 + packages/mermaid/src/themes/theme-forest.js | 7 + packages/mermaid/src/themes/theme-neutral.js | 6 + 12 files changed, 374 insertions(+), 115 deletions(-) create mode 100644 packages/mermaid-flowchart-v3/src/render-utils.js create mode 100644 packages/mermaid-flowchart-v3/src/render-utils.spec.js diff --git a/cSpell.json b/cSpell.json index c7630d7ee0..cfffbcdb74 100644 --- a/cSpell.json +++ b/cSpell.json @@ -83,6 +83,7 @@ "treemap", "ts-nocheck", "tuleap", + "ugge", "unist", "verdana", "viewports", diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index d6af0549be..ae9de8fca0 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -56,7 +56,7 @@
    Security check
    -cyto TD
    +cyto TB
       %% I could not figure out how to use double quotes in labels in Mermaid
       subgraph ibm[IBM Espresso CPU]
         core0[IBM PowerPC Broadway Core 0]
    @@ -111,8 +111,35 @@
         >
         
     cyto LR
    -  B1 --be be--> B2
    -  B1 --bo bo--> B3
    +  B1 --be be--x B2
    +  B1 --bo bo--o B3
    +  subgraph Ugge
    +      B2
    +      B3
    +      subgraph inner
    +          B4
    +          B5
    +      end
    +      subgraph inner2
    +        subgraph deeper
    +          C4
    +          C5
    +        end
    +        C6
    +      end
    +
    +      B4 --> C4
    +
    +      B3 -- X --> B4
    +      B2 --> inner
    +
    +      C4 --> C5
    +  end
    +
    +  subgraph outer
    +      B6
    +  end
    +  B6 --> B5
       
    inside1 --> inside2 & inside3 & inside4 & inside5 & inside6 a(letter a
    a) ---> b(letter @@ -159,7 +186,7 @@ // console.error('Mermaid error: ', err); }; mermaid.initialize({ - theme: 'base', + theme: 'dark', startOnLoad: true, logLevel: 0, flowchart: { diff --git a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js index a799a35bf1..677d977240 100644 --- a/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js +++ b/packages/mermaid-flowchart-v3/src/flowRenderer-v3.js @@ -4,7 +4,8 @@ import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; import { insertNode } from '../../mermaid/src/dagre-wrapper/nodes.js'; import insertMarkers from '../../mermaid/src/dagre-wrapper/markers.js'; import createLabel from '../../mermaid/src/dagre-wrapper/createLabel'; -import dagre from 'cytoscape-dagre'; +import { insertEdgeLabel, positionEdgeLabel } from '../../mermaid/src/dagre-wrapper/edges.js'; +import { findCommonAncestor } from './render-utils'; // Replace with other function to avoid dependency to dagre-d3 import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; @@ -26,7 +27,7 @@ export const setConf = function (cnf) { } }; -const nodeDb = {}; +let nodeDb = {}; // /** // * Function that adds the vertices found during parsing to the graph to be rendered. @@ -381,10 +382,9 @@ export const addEdges = function (edges, diagObj, graph, svg) { edgeData.id = linkId; edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd; - const labelEl = createLabel(edgeData.label, edgeData.labelStyle); - labelsEl.node().appendChild(labelEl); - const labelBox = labelEl.firstChild.getBoundingClientRect(); - // console.log('labelEl', labelEl); + const edgesNode = select(edges); + const labelEl = insertEdgeLabel(labelsEl, edgeData); + // console.log('labelEl', labelEl, edgeData.width); // Add the edge to the graph graph.edges.push({ id: 'e' + edge.start + edge.end, @@ -393,11 +393,11 @@ export const addEdges = function (edges, diagObj, graph, svg) { labelEl: labelEl, labels: [ { - width: labelBox.width, + width: edgeData.width, // width: 80, - height: labelBox.height, - orgWidth: labelBox.width, - orgHeight: labelBox.height, + height: edgeData.height, + orgWidth: edgeData.width, + orgHeight: edgeData.height, text: edgeData.label, layoutOptions: { 'edgeLabels.inline': 'true', @@ -413,9 +413,19 @@ export const addEdges = function (edges, diagObj, graph, svg) { return graph; }; -const addmarkers = function (svgPath, edgeData, diagramType, arrowMarkerAbsolute) { - // // TODO: Can we load this config only from the rendered graph type? - let url; +// TODO: break out and share with dagre wrapper. The current code in dagre wrapper also adds +// adds the line to the graph, but we don't need that here. This is why we cant use the dagre +// wrapper directly for this +/** + * Add the markers to the edge depending on the type of arrow is + * @param svgPath + * @param edgeData + * @param diagramType + * @param arrowMarkerAbsolute + */ +const addMarkersToEdge = function (svgPath, edgeData, diagramType, arrowMarkerAbsolute) { + let url = ''; + // Check configuration for absolute path if (arrowMarkerAbsolute) { url = window.location.protocol + @@ -426,6 +436,8 @@ const addmarkers = function (svgPath, edgeData, diagramType, arrowMarkerAbsolute url = url.replace(/\(/g, '\\('); url = url.replace(/\)/g, '\\)'); } + + // look in edge data and decide which marker to use switch (edgeData.arrowTypeStart) { case 'arrow_cross': svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')'); @@ -526,114 +538,104 @@ const addSubGraphs = function (db) { if (parentLookupDb.parentById[subgraph.id] !== undefined) { data.parent = parentLookupDb.parentById[subgraph.id]; } - // cy.add({ - // group: 'nodes', - // data, - // }); }); return parentLookupDb; }; /* Reverse engineered with trial and error */ -const calcOffset = function (src, dest, sourceId, targetId) { - if (src === dest) { +const calcOffsetOld = function (src, dest, sourceId, targetId, srcDepth, targetDepth, so, to) { + // if (src === dest) { + // return src; + // } + // if (sourceId === 'B6') { + // return 0; + // } + // if (sourceId === 'B4') { + // return 318; + // } + if (srcDepth < targetDepth) { return src; } + if (srcDepth > targetDepth) { + return dest; + } + if (srcDepth === targetDepth) { + return src; + } + // if (src < dest) { + // return dest + src; + // } return 0; }; -const insertEdge = function (edgesEl, edge, edgeData, diagObj) { +const calcOffset = function (src, dest, parentLookupDb) { + const ancestor = findCommonAncestor(src, dest, parentLookupDb); + if (ancestor === undefined || ancestor === 'root') { + return { x: 0, y: 0 }; + } + + const ancestoprOffset = nodeDb[ancestor].offset; + return { x: ancestoprOffset.posX, y: ancestoprOffset.posY }; +}; + +const insertEdge = function (edgesEl, edge, edgeData, diagObj, parentLookupDb) { const srcOffset = nodeDb[edge.sources[0]].offset; const targetOffset = nodeDb[edge.targets[0]].offset; - const offset = { - x: calcOffset( - srcOffset.x, - targetOffset.x, - nodeDb[edge.sources[0]].id, - nodeDb[edge.targets[0]].id - ), - y: calcOffset( - srcOffset.y, - targetOffset.y, - nodeDb[edge.sources[0]].id, - nodeDb[edge.targets[0]].id - ), - }; - // console.log('srcOffset', srcOffset.x, targetOffset.x, srcOffset.y, targetOffset.y); + const offset = calcOffset(edge.sources[0], edge.targets[0], parentLookupDb); + const src = edge.sections[0].startPoint; const dest = edge.sections[0].endPoint; const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : []; - // const dest = edge.target().position(); - // const dest = edge.targetEndpoint(); + const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]); const points = [ [src.x + offset.x, src.y + offset.y], ...segPoints, [dest.x + offset.x, dest.y + offset.y], ]; - // console.log('Edge ctrl points:', edge.segmentPoints(), 'Bounds:', bounds, edge.source(), points); - // console.log('Edge ctrl points:', points); - // const curve = line().curve(curveCardinal); + + // const curve = line().curve(curveBasis); const curve = line().curve(curveLinear); const edgePath = edgesEl .insert('path') .attr('d', curve(points)) - // .attr('d', points)) .attr('class', 'path') .attr('fill', 'none'); const edgeG = edgesEl.insert('g').attr('class', 'edgeLabel'); - const edgeEl = select(edgeG.node().appendChild(edge.labelEl)); - // console.log('Edge label', edgeEl, edge); - const box = edgeEl.node().firstChild.getBoundingClientRect(); - edgeEl.attr('width', box.width); - edgeEl.attr('height', box.height); - // edgeEl.height = 24; + const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl)); + const box = edgeWithLabel.node().firstChild.getBoundingClientRect(); + edgeWithLabel.attr('width', box.width); + edgeWithLabel.attr('height', box.height); + edgeG.attr( 'transform', - `translate(${edge.labels[0].x - box.width / 2}, ${edge.labels[0].y - box.height / 2})` + `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})` ); - addmarkers(edgesEl, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute); - // edgesEl - // .append('circle') - // .style('stroke', 'red') - // .style('fill', 'red') - // .attr('r', 1) - // .attr('cx', src.x) - // .attr('cy', src.y); - // edgesEl - // .append('circle') - // .style('stroke', 'white') - // .style('fill', 'white') - // .attr('r', 1) - // .attr('cx', segments[0].x) - // .attr('cy', segments[0].y); - // edgesEl - // .append('circle') - // .style('stroke', 'pink') - // .style('fill', 'pink') - // .attr('r', 1) - // .attr('cx', dest.x) - // .attr('cy', dest.y); + addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute); }; /** - * + * Recursive function that iterates over an array of nodes and inserts the children of each node. + * It also recursively populates the inserts the children of the children and so on. * @param {*} graph * @param nodeArray * @param parentLookupDb */ const insertChildren = (nodeArray, parentLookupDb) => { nodeArray.forEach((node) => { + // Check if we have reached the end of the tree if (!node.children) { node.children = []; } + // Check if the node has children const childIds = parentLookupDb.childrenById[node.id]; - // console.log('UGH', node.id, childIds); + // If the node has children, add them to the node if (childIds) { childIds.forEach((childId) => { node.children.push(nodeDb[childId]); }); } + // Recursive call insertChildren(node.children, parentLookupDb); }); }; @@ -648,6 +650,7 @@ const insertChildren = (nodeArray, parentLookupDb) => { export const draw = function (text, id, _version, diagObj) { // Add temporary render element diagObj.db.clear(); + nodeDb = {}; diagObj.db.setGen('gen-2'); // Parse the graph definition diagObj.parser.parse(text); @@ -659,12 +662,13 @@ export const draw = function (text, id, _version, diagObj) { id: 'root', layoutOptions: { 'elk.hierarchyHandling': 'INCLUDE_CHILDREN', + // 'elk.hierarchyHandling': 'SEPARATE_CHILDREN', 'org.eclipse.elk.padding': '[top=100, left=100, bottom=110, right=110]', // 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers': 120, // 'elk.layered.spacing.nodeNodeBetweenLayers': '140', 'elk.layered.spacing.edgeNodeBetweenLayers': '30', // 'elk.algorithm': 'layered', - 'elk.direction': 'WEST', + 'elk.direction': 'DOWN', // 'elk.port.side': 'SOUTH', // 'nodePlacement.strategy': 'SIMPLE', // 'org.eclipse.elk.spacing.labelLabel': 120, @@ -679,14 +683,27 @@ export const draw = function (text, id, _version, diagObj) { edges: [], }; log.info('Drawing flowchart using v3 renderer'); + + // Set the direction, // Fetch the default direction, use TD if none was found let dir = diagObj.db.getDirection(); - if (dir === undefined) { - dir = 'TD'; + switch (dir) { + case 'BT': + graph.layoutOptions['elk.direction'] = 'UP'; + break; + case 'TB': + graph.layoutOptions['elk.direction'] = 'DOWN'; + break; + case 'LR': + graph.layoutOptions['elk.direction'] = 'RIGHT'; + break; + case 'RL': + graph.layoutOptions['elk.direction'] = 'LEFT'; + break; } - const { securityLevel, flowchart: conf } = getConfig(); + // Find the root dom node to ne used in rendering // Handle root and document for when rendering in sandbox mode let sandboxElement; if (securityLevel === 'sandbox') { @@ -699,25 +716,46 @@ export const draw = function (text, id, _version, diagObj) { const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; const svg = root.select(`[id="${id}"]`); + + // Define the supported markers for the diagram const markers = ['point', 'circle', 'cross']; + + // Add the marker definitions to the svg as marker tags insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute); + // Fetch the vertices/nodes and edges/links from the parsed graph definition const vert = diagObj.db.getVertices(); + // Setup nodes from the subgraphs with type group, these will be used + // as nodes with children in the subgraph let subG; const subGraphs = diagObj.db.getSubGraphs(); log.info('Subgraphs - ', subGraphs); for (let i = subGraphs.length - 1; i >= 0; i--) { subG = subGraphs[i]; - log.info('Subgraph - ', subG); diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir); } + + // Add an element in the svg to be used to hold the subgraphs container + // elements const subGraphsEl = svg.insert('g').attr('class', 'subgraphs'); + // Create the lookup db for the subgraphs and their children to used when creating + // the tree structured graph const parentLookupDb = addSubGraphs(diagObj.db); + + // Add the nodes to the graph, this will entail creating the actual nodes + // in order to get the size of the node. You can't get the size of a node + // that is not in the dom so we need to add it to the dom, get the size + // we will position the nodes when we get the layout from elkjs graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); + + // Time for the edges, we start with adding an element in the node to hold the edges const edgesEl = svg.insert('g').attr('class', 'edges edgePath'); + // Fetch the edges form the parsed graph definition const edges = diagObj.db.getEdges(); + + // Add the edges to the graph, this will entail creating the actual edges graph = addEdges(edges, diagObj, graph, svg); // Iterate through all nodes and add the top level nodes to the graph @@ -748,46 +786,21 @@ export const draw = function (text, id, _version, diagObj) { } }); insertChildren(graph.children, parentLookupDb); - // console.log('Graph (UGH)- ', JSON.parse(JSON.stringify(graph)), JSON.stringify(graph)); - // const graph2 = { - // id: 'root', - // layoutOptions: { 'elk.algorithm': 'layered' }, - // children: [ - // { - // id: 'N1', - // width: 30, - // height: 30, - // padding: 12, - // children: [ - // { id: 'n1', width: 30, height: 30 }, - // { id: 'n2', width: 30, height: 30 }, - // { id: 'n3', width: 30, height: 30 }, - // ], - // }, - // ], - // edges: [ - // { id: 'e1', sources: ['n1'], targets: ['n2'] }, - // { id: 'e2', sources: ['n1'], targets: ['n3'] }, - // ], - // }; elk.layout(graph).then(function (g) { - // elk.layout(graph2).then(function (g) { - // console.log('Layout (UGH)- ', g, JSON.stringify(g)); - drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj); + drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); g.edges.map((edge, id) => { - // console.log('Edge (UGH)- ', edge); - insertEdge(edgesEl, edge, edge.edgeData, diagObj); + insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb); }); setupGraphViewbox({}, svg, conf.diagramPadding, conf.useMaxWidth); resolve(); }); // Remove element after layout - // renderEl.remove(); + renderEl.remove(); }); }; -const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => { +const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { nodeArray.forEach(function (node) { if (node) { nodeDb[node.id].offset = { @@ -795,13 +808,15 @@ const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => { posY: node.y + relY, x: relX, y: relY, + depth, + width: node.width, + height: node.height, }; if (node.type === 'group') { const subgraphEl = subgraphsEl.insert('g').attr('class', 'subgraph'); subgraphEl .insert('rect') - .attr('class', 'subgraph node') - .attr('style', 'fill:#ccc;stroke:black;stroke-width:1') + .attr('class', 'subgraph subgraph-lvl-' + (depth % 5) + ' node') .attr('x', node.x + relX) .attr('y', node.y + relY) .attr('width', node.width) @@ -825,7 +840,7 @@ const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj) => { }); nodeArray.forEach(function (node) { if (node && node.type === 'group') { - drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj); + drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1); } }); }; diff --git a/packages/mermaid-flowchart-v3/src/render-utils.js b/packages/mermaid-flowchart-v3/src/render-utils.js new file mode 100644 index 0000000000..20f6483d2e --- /dev/null +++ b/packages/mermaid-flowchart-v3/src/render-utils.js @@ -0,0 +1,119 @@ +export const findCommonAncestorCoPilot = (id1, id2, treeData) => { + const { parentById, childrenById } = treeData; + const parents1 = []; + const parents2 = []; + let cnt = 0; + let currentId = id1; + while (currentId) { + parents1.push(currentId); + currentId = parentById[currentId]; + cnt++; + if (cnt > 200) { + throw new Error('Infinite loop detected!'); + } + } + currentId = id2; + while (currentId) { + parents2.push(currentId); + currentId = parentById[currentId]; + cnt++; + if (cnt > 200) { + throw new Error('Infinite loop detected!'); + } + } + let commonAncestor = 'root'; + while (parents1.length && parents2.length) { + cnt++; + if (cnt > 200) { + throw new Error('Infinite loop detected!'); + } + const p1 = parents1.pop(); + const p2 = parents2.pop(); + if (p1 === p2) { + commonAncestor = p1; + } else { + break; + } + } + return commonAncestor; +}; + +export const findCommonAncestor = (id1, id2, treeData) => { + const { parentById } = treeData; + const visited = new Set(); + let currentId = id1; + while (currentId) { + visited.add(currentId); + if (currentId === id2) { + return currentId; + } + currentId = parentById[currentId]; + } + currentId = id2; + while (currentId) { + if (visited.has(currentId)) { + return currentId; + } + currentId = parentById[currentId]; + } + return 'root'; +}; + +export const findCommonAncestorKnut = (id1, id2, treeData) => { + const { parentById, childrenById } = treeData; + const parents1 = []; + const parents2 = []; + let cnt = 0; + let currentId = id1; + while (currentId) { + parents1.push(currentId); + currentId = parentById[currentId]; + cnt++; + if (cnt > 200) { + throw new Error('Infinite loop detected!'); + } + } + currentId = id2; + while (currentId) { + parents2.push(currentId); + currentId = parentById[currentId]; + if (currentId === 'root') { + return 'root'; + } + + if (parents1.includes(currentId)) { + return currentId; + } + + cnt++; + if (cnt > 200) { + throw new Error('Infinite loop detected!'); + } + } + return 'root'; +}; + +export const findCommonAncestorRecursive = (id1, id2, treeData) => { + const { parentById, childrenById } = treeData; + + // Base case: return the current node if it is the common ancestor + if (id1 === id2) { + return id1; + } + + // Recursive case: search for the common ancestor in the parent nodes + const parent1 = parentById[id1]; + const parent2 = parentById[id2]; + if (parent1 && parent2) { + return findCommonAncestor(parent1, parent2, treeData); + } + + // Edge case: one of the nodes is the root of the tree + if (parent1) { + return parent1; + } + if (parent2) { + return parent2; + } + return 'root'; +}; diff --git a/packages/mermaid-flowchart-v3/src/render-utils.spec.js b/packages/mermaid-flowchart-v3/src/render-utils.spec.js new file mode 100644 index 0000000000..fcc04b4ee4 --- /dev/null +++ b/packages/mermaid-flowchart-v3/src/render-utils.spec.js @@ -0,0 +1,39 @@ +import { findCommonAncestor } from './render-utils'; +describe('when rendering a flowchart using elk ', function () { + let lookupDb; + beforeEach(function () { + /** + * root: + * B1 + * outer + * B6 + * Ugge + * B2 + * B3 + * inner + * B4 + * B5 + * inner2 + * C4 + * C5 + */ + lookupDb = JSON.parse( + '{"parentById":{"B4":"inner","B5":"inner","C4":"inner2","C5":"inner2","B2":"Ugge","B3":"Ugge","inner":"Ugge","inner2":"Ugge","B6":"outer"},"childrenById":{"inner":["B4","B5"],"inner2":["C4","C5"],"Ugge":["B2","B3","inner","inner2"],"outer":["B6"]}}' + ); + }); + it('Sieblings in a subgraph', function () { + expect(findCommonAncestor('B4', 'B5', lookupDb)).toBe('inner'); + }); + it('Find an uncle', function () { + expect(findCommonAncestor('B4', 'B2', lookupDb)).toBe('Ugge'); + }); + it('Find a cousin', function () { + expect(findCommonAncestor('B4', 'C4', lookupDb)).toBe('Ugge'); + }); + it('Find a grandparent', function () { + expect(findCommonAncestor('B4', 'B6', lookupDb)).toBe('root'); + }); + it('Sieblings in the root', function () { + expect(findCommonAncestor('B1', 'outer', lookupDb)).toBe('root'); + }); +}); diff --git a/packages/mermaid-flowchart-v3/src/styles.ts b/packages/mermaid-flowchart-v3/src/styles.ts index a89d33d3dc..1f76ff435a 100644 --- a/packages/mermaid-flowchart-v3/src/styles.ts +++ b/packages/mermaid-flowchart-v3/src/styles.ts @@ -15,6 +15,20 @@ export interface FlowChartStyleOptions { titleColor: string; } +const genSections = (options) => { + let sections = ''; + + for (let i = 0; i < 5; i++) { + sections += ` + .subgraph-lvl-${i} { + fill: ${options[`surface${i}`]}; + stroke: ${options[`surfacePeer${i}`]}; + } + `; + } + return sections; +}; + const getStyles = (options: FlowChartStyleOptions) => `.label { font-family: ${options.fontFamily}; @@ -109,6 +123,15 @@ const getStyles = (options: FlowChartStyleOptions) => font-size: 18px; fill: ${options.textColor}; } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + ${genSections(options)} `; export default getStyles; diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index 5213d06846..8f78403c0e 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -107,6 +107,7 @@ export const insertEdgeLabel = (elem, edge) => { terminalLabels[edge.id].endRight = endEdgeLabelRight; setTerminalWidth(fo, edge.endLabelRight); } + return labelElement; }; /** @@ -463,7 +464,7 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph .attr('style', edge.style); // DEBUG code, adds a red circle at each edge coordinate - // edge.points.forEach(point => { + // edge.points.forEach((point) => { // elem // .append('circle') // .style('stroke', 'red') diff --git a/packages/mermaid/src/themes/theme-base.js b/packages/mermaid/src/themes/theme-base.js index c940a00554..8ff544febb 100644 --- a/packages/mermaid/src/themes/theme-base.js +++ b/packages/mermaid/src/themes/theme-base.js @@ -13,7 +13,6 @@ class Theme { * deducing colors for instance line color. Default value is #f4f4f4. */ this.background = '#f4f4f4'; - this.darkMode = false; this.primaryColor = '#fff4dd'; @@ -169,6 +168,16 @@ class Theme { this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; } + const multiplier = this.darkMode ? -4 : -1; + for (let i = 0; i < 5; i++) { + this['surface' + i] = + this['surface' + i] || + adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) }); + this['surfacePeer' + i] = + this['surfacePeer' + i] || + adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) }); + } + /* class */ this.classText = this.classText || this.textColor; diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js index 5ba63e1558..af21b4f13a 100644 --- a/packages/mermaid/src/themes/theme-dark.js +++ b/packages/mermaid/src/themes/theme-dark.js @@ -196,6 +196,13 @@ class Theme { this['cScalePeer' + i] = this['cScalePeer' + i] || lighten(this['cScale' + i], 10); } + for (let i = 0; i < 5; i++) { + this['surface' + i] = + this['surface' + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) }); + this['surfacePeer' + i] = + this['surfacePeer' + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) }); + } + // Setup teh label color for the set this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? 'black' : this.labelTextColor); diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js index 95710629bd..969551ee6b 100644 --- a/packages/mermaid/src/themes/theme-default.js +++ b/packages/mermaid/src/themes/theme-default.js @@ -147,6 +147,11 @@ class Theme { this['cScaleInv' + i] = this['cScaleInv' + i] || adjust(this['cScale' + i], { h: 180 }); } + for (let i = 0; i < 5; i++) { + this['surface' + i] = this['surface' + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) }); + this['surfacePeer' + i] = + this['surfacePeer' + i] || adjust(this.mainBkg, { h: 30, l: -(7 + i * 5) }); + } // Setup the label color for the set this.scaleLabelColor = this.scaleLabelColor !== 'calculated' && this.scaleLabelColor diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js index 860326dea4..59adc91392 100644 --- a/packages/mermaid/src/themes/theme-forest.js +++ b/packages/mermaid/src/themes/theme-forest.js @@ -130,6 +130,13 @@ class Theme { this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; } + for (let i = 0; i < 5; i++) { + this['surface' + i] = + this['surface' + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) }); + this['surfacePeer' + i] = + this['surfacePeer' + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) }); + } + /* Flowchart variables */ this.nodeBkg = this.mainBkg; diff --git a/packages/mermaid/src/themes/theme-neutral.js b/packages/mermaid/src/themes/theme-neutral.js index f227103873..e7a136c6bf 100644 --- a/packages/mermaid/src/themes/theme-neutral.js +++ b/packages/mermaid/src/themes/theme-neutral.js @@ -147,6 +147,12 @@ class Theme { this['cScaleLabel' + i] = this['cScaleLabel' + i] || this.scaleLabelColor; } + for (let i = 0; i < 5; i++) { + this['surface' + i] = this['surface' + i] || adjust(this.mainBkg, { l: -(5 + i * 5) }); + this['surfacePeer' + i] = + this['surfacePeer' + i] || adjust(this.mainBkg, { l: -(8 + i * 5) }); + } + /* Flowchart variables */ this.nodeBkg = this.mainBkg; From 7670ada9acc552dcec0d6db53c8458c6d16df9ac Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 16 Dec 2022 21:59:44 +0530 Subject: [PATCH 0846/1038] Add CNAME --- docs/CNAME | 1 + packages/mermaid/package.json | 2 +- packages/mermaid/src/docs/CNAME | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 docs/CNAME create mode 100644 packages/mermaid/src/docs/CNAME diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000000..878812ee90 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +mermaid.js.org \ No newline at end of file diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index cd809fef13..c3804896ee 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -28,7 +28,7 @@ "docs:build": "rimraf ../../docs && pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts --verify", "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", - "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing", + "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing && cpy --flat src/docs/CNAME ./src/vitepress/.vitepress/dist/", "docs:dev": "pnpm docs:pre:vitepress && concurrently \"vitepress dev src/vitepress\" \"ts-node-esm src/docs.mts --watch --vitepress\"", "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "docs:spellcheck": "cspell --config ../../cSpell.json \"src/docs/**/*.md\"", diff --git a/packages/mermaid/src/docs/CNAME b/packages/mermaid/src/docs/CNAME new file mode 100644 index 0000000000..878812ee90 --- /dev/null +++ b/packages/mermaid/src/docs/CNAME @@ -0,0 +1 @@ +mermaid.js.org \ No newline at end of file From 1e3d76a0aa154826771a59c6b778a7cdffee097b Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Fri, 16 Dec 2022 16:31:20 +0000 Subject: [PATCH 0847/1038] docs(README.zh-CN): fix book image src Copied from https://github.com/mermaid-js/mermaid/commit/ec026eaf8230d9f97fe4004f8ef0d294ca16a098 --- README.zh-CN.md | 2 +- packages/mermaid/README.zh-CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 4bdbc4ae7d..6b3e28b192 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -10,7 +10,7 @@ **感谢所有参与进来提交 PR,解答疑问的人们! 🙏** -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! +Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! ## 关于 Mermaid diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md index 0ccef27e48..f34c7a6471 100644 --- a/packages/mermaid/README.zh-CN.md +++ b/packages/mermaid/README.zh-CN.md @@ -10,7 +10,7 @@ **感谢所有参与进来提交 PR,解答疑问的人们! 🙏** -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! +Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! ## 关于 Mermaid From 570551548319ae2b5a77c60f1ee40ef70fc633df Mon Sep 17 00:00:00 2001 From: Tom PERRILLAT-COLLOMB Date: Fri, 16 Dec 2022 22:17:39 +0000 Subject: [PATCH 0848/1038] fix(generic): fix generic type regex instead of looking for single tildes, we are now looking for pairs, which avoid bugs when there is an odd number of tildes --- demos/classchart.html | 13 +++++++++++++ .../mermaid/src/diagrams/common/common.spec.js | 1 + packages/mermaid/src/diagrams/common/common.ts | 14 ++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/demos/classchart.html b/demos/classchart.html index 031f3b608f..84cc7bec58 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -138,7 +138,20 @@

    Class diagram demos

    Pineapple : -int leafCount() Pineapple : -int spikeCount()
    +
    +
    +    classDiagram
    +      class Person {
    +        +Id : Guid
    +        +FirstName : string
    +        +LastName : string
    +        -privateProperty : string
    +        #ProtectedProperty : string
    +        ~InternalProperty : string
    +        ~AnotherInternalProperty : List~MyType~
    +      }
    +    

    diff --git a/packages/mermaid/src/diagrams/common/common.spec.js b/packages/mermaid/src/diagrams/common/common.spec.js index 68f5138e78..3ebe8b1d61 100644 --- a/packages/mermaid/src/diagrams/common/common.spec.js +++ b/packages/mermaid/src/diagrams/common/common.spec.js @@ -68,5 +68,6 @@ describe('generic parser', function () { expect(parseGenericTypes('test ~Array~Array~string[]~~~')).toEqual( 'test >>' ); + expect(parseGenericTypes('~test')).toEqual('~test'); }); }); diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index 628908aab6..d34a2df685 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -154,11 +154,17 @@ export const evaluate = (val?: string | boolean): boolean => export const parseGenericTypes = function (text: string): string { let cleanedText = text; - if (text.includes('~')) { - cleanedText = cleanedText.replace(/~([^~].*)/, '<$1'); - cleanedText = cleanedText.replace(/~([^~]*)$/, '>$1'); + if (text.split('~').length - 1 >= 2) { + let newCleanedText = cleanedText; - return parseGenericTypes(cleanedText); + // use a do...while loop instead of replaceAll to detect recursion + // e.g. Array~Array~T~~ + do { + cleanedText = newCleanedText; + newCleanedText = cleanedText.replace(/~([^\s,:;]+)~/, '<$1>'); + } while (newCleanedText != cleanedText); + + return parseGenericTypes(newCleanedText); } else { return cleanedText; } From 56e28a7f405a69827790397479c9d5485d0174eb Mon Sep 17 00:00:00 2001 From: Tom PERRILLAT-COLLOMB Date: Fri, 16 Dec 2022 22:35:20 +0000 Subject: [PATCH 0849/1038] test(generic): add generic type unit test --- packages/mermaid/src/diagrams/common/common.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mermaid/src/diagrams/common/common.spec.js b/packages/mermaid/src/diagrams/common/common.spec.js index 3ebe8b1d61..8fd6229da9 100644 --- a/packages/mermaid/src/diagrams/common/common.spec.js +++ b/packages/mermaid/src/diagrams/common/common.spec.js @@ -69,5 +69,6 @@ describe('generic parser', function () { 'test >>' ); expect(parseGenericTypes('~test')).toEqual('~test'); + expect(parseGenericTypes('~test Array~string~')).toEqual('~test Array'); }); }); From a6ea439ef376d3d46a7ce6960d787d98b95532a4 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Sun, 18 Dec 2022 23:44:14 +0900 Subject: [PATCH 0850/1038] docs: fix typo --- docs/community/newDiagram.md | 2 +- packages/mermaid/src/docs/community/newDiagram.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/community/newDiagram.md b/docs/community/newDiagram.md index 288af42cdb..bb7e2a9615 100644 --- a/docs/community/newDiagram.md +++ b/docs/community/newDiagram.md @@ -60,7 +60,7 @@ Place the renderer in the diagram folder. ### Step 3: Detection of the new diagram type -The second thing to do is to add the capability to detect the new new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type. +The second thing to do is to add the capability to detect the new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type. [This key will be used to as the aria roledescription](#aria-roledescription), so it should be a word that clearly describes the diagram type. For example, if your new diagram use a UML deployment diagram, a good key would be "UMLDeploymentDiagram" because assistive technologies such as a screen reader would voice that as "U-M-L Deployment diagram." Another good key would be "deploymentDiagram" because that would be voiced as "Deployment Diagram." A bad key would be "deployment" because that would not sufficiently describe the diagram. diff --git a/packages/mermaid/src/docs/community/newDiagram.md b/packages/mermaid/src/docs/community/newDiagram.md index 57a4546712..75e17e4c9b 100644 --- a/packages/mermaid/src/docs/community/newDiagram.md +++ b/packages/mermaid/src/docs/community/newDiagram.md @@ -55,7 +55,7 @@ Place the renderer in the diagram folder. ### Step 3: Detection of the new diagram type -The second thing to do is to add the capability to detect the new new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type. +The second thing to do is to add the capability to detect the new diagram to type to the detectType in utils.js. The detection should return a key for the new diagram type. [This key will be used to as the aria roledescription](#aria-roledescription), so it should be a word that clearly describes the diagram type. For example, if your new diagram use a UML deployment diagram, a good key would be "UMLDeploymentDiagram" because assistive technologies such as a screen reader would voice that as "U-M-L Deployment diagram." Another good key would be "deploymentDiagram" because that would be voiced as "Deployment Diagram." A bad key would be "deployment" because that would not sufficiently describe the diagram. From e46e918b232c41b85071baffe7ee6e5debbb92ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 01:03:22 +0000 Subject: [PATCH 0851/1038] chore(deps): update pnpm to v7.18.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5d3e444942..596cac22bc 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.18.1", + "packageManager": "pnpm@7.18.2", "keywords": [ "diagram", "markdown", From 8e7dd1d14883a438cf090a12750b72d4d89af4b5 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 19 Dec 2022 13:29:09 +0530 Subject: [PATCH 0852/1038] fix: Remove basepath from docs --- packages/mermaid/src/docs/.vitepress/config.ts | 4 ++-- packages/mermaid/src/docs/.vitepress/theme/index.ts | 2 +- packages/mermaid/src/docs/.vitepress/theme/redirect.ts | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 216541d52e..33e930cb8f 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -14,9 +14,9 @@ export default defineConfig({ lang: 'en-US', title: 'Mermaid', description: 'Create diagrams and visualizations using text and code.', - base: '/mermaid/', + base: '/', markdown: allMarkdownTransformers, - head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/mermaid/favicon.ico' }]], + head: [['link', { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]], themeConfig: { nav: nav(), editLink: { diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index efb065feaa..ef929aa5db 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -18,7 +18,7 @@ export default { if (newPath) { console.log(`Redirecting to ${newPath} from ${window.location}`); // router.go isn't loading the ID properly. - window.location.href = `/mermaid/${newPath}`; + window.location.href = `/${newPath}`; } } catch (e) {} }; diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts index ca4606be0d..b6cfa4de29 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts @@ -10,7 +10,9 @@ export interface Redirect { const getBaseFile = (link: string): Redirect => { const url = new URL(link); if ( - (url.hostname !== 'mermaid-js.github.io' && url.hostname !== 'localhost') || + (url.hostname !== 'mermaid-js.github.io' && + url.hostname !== 'mermaid.js.org' && + url.hostname !== 'localhost') || url.pathname !== '/mermaid/' ) { throw new Error('Not mermaidjs url'); From fd5780d5a13aa583322105c5f70afdafe28e03d5 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 19 Dec 2022 13:51:05 +0530 Subject: [PATCH 0853/1038] fix Redirect --- .../mermaid/src/docs/.vitepress/theme/redirect.spec.ts | 4 +--- packages/mermaid/src/docs/.vitepress/theme/redirect.ts | 7 +++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts index c263641082..6070abee44 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts @@ -8,6 +8,7 @@ test.each([ ['http://localhost:1234/mermaid/#/flowchart.md', 'syntax/flowchart.html'], ['http://localhost/mermaid/#/flowchart.md', 'syntax/flowchart.html'], ['https://mermaid-js.github.io/mermaid/#/flowchart.md', 'syntax/flowchart.html'], + ['https://mermaid.js.org/#/flowchart.md', 'syntax/flowchart.html'], ['https://mermaid-js.github.io/mermaid/#/./flowchart', 'syntax/flowchart.html'], ['https://mermaid-js.github.io/mermaid/#/flowchart', 'syntax/flowchart.html'], ['https://mermaid-js.github.io/mermaid/#flowchart', 'syntax/flowchart.html'], @@ -31,7 +32,4 @@ test.each([ test('should throw for invalid URL', () => { // Not mermaid domain expect(() => getRedirect('https://www.google.com')).toThrowError(); - - // Not `/mermaid/` path - expect(() => getRedirect('http://localhost/#/flowchart.md')).toThrowError(); }); diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts index b6cfa4de29..58537b0ef5 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts @@ -10,10 +10,9 @@ export interface Redirect { const getBaseFile = (link: string): Redirect => { const url = new URL(link); if ( - (url.hostname !== 'mermaid-js.github.io' && - url.hostname !== 'mermaid.js.org' && - url.hostname !== 'localhost') || - url.pathname !== '/mermaid/' + url.hostname !== 'mermaid-js.github.io' && + url.hostname !== 'mermaid.js.org' && + url.hostname !== 'localhost' ) { throw new Error('Not mermaidjs url'); } From 81aee3554ea2caba457aa31cf1e93aca4c42b59c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 19 Dec 2022 14:26:20 +0530 Subject: [PATCH 0854/1038] Revert "Add CNAME" This reverts commit 7670ada9acc552dcec0d6db53c8458c6d16df9ac. --- docs/CNAME | 1 - packages/mermaid/package.json | 2 +- packages/mermaid/src/docs/CNAME | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 docs/CNAME delete mode 100644 packages/mermaid/src/docs/CNAME diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 878812ee90..0000000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -mermaid.js.org \ No newline at end of file diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index c3804896ee..cd809fef13 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -28,7 +28,7 @@ "docs:build": "rimraf ../../docs && pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts", "docs:verify": "pnpm docs:spellcheck && pnpm docs:code && ts-node-esm src/docs.mts --verify", "docs:pre:vitepress": "rimraf src/vitepress && pnpm docs:code && ts-node-esm src/docs.mts --vitepress", - "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing && cpy --flat src/docs/CNAME ./src/vitepress/.vitepress/dist/", + "docs:build:vitepress": "pnpm docs:pre:vitepress && vitepress build src/vitepress && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing", "docs:dev": "pnpm docs:pre:vitepress && concurrently \"vitepress dev src/vitepress\" \"ts-node-esm src/docs.mts --watch --vitepress\"", "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "docs:spellcheck": "cspell --config ../../cSpell.json \"src/docs/**/*.md\"", diff --git a/packages/mermaid/src/docs/CNAME b/packages/mermaid/src/docs/CNAME deleted file mode 100644 index 878812ee90..0000000000 --- a/packages/mermaid/src/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -mermaid.js.org \ No newline at end of file From 86946c9bfdc97940a388733c4ded4cd9199410d3 Mon Sep 17 00:00:00 2001 From: Frank Mayer Date: Mon, 19 Dec 2022 15:38:52 +0100 Subject: [PATCH 0855/1038] fixed Composition arrow Composition arrow was displayed as \*-- but should be *-- --- packages/mermaid/src/docs/syntax/classDiagram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index 8cd5796ffe..50593f7293 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -172,7 +172,7 @@ There are eight different types of relations defined for classes under UML which | Type | Description | | ------- | ------------- | | `<\|--` | Inheritance | -| `\*--` | Composition | +| `*--` | Composition | | `o--` | Aggregation | | `-->` | Association | | `--` | Link (Solid) | From fca58f59429da0221c8431b7c2c32441aea6c996 Mon Sep 17 00:00:00 2001 From: steph Date: Mon, 19 Dec 2022 17:45:25 -0800 Subject: [PATCH 0856/1038] remove text and add social icons --- docs/book/class.png | Bin 34954 -> 0 bytes docs/book/cover.jpg | Bin 17803 -> 0 bytes docs/book/er.png | Bin 13419 -> 0 bytes docs/book/flowchart.png | Bin 14794 -> 0 bytes docs/book/gantt.png | Bin 43239 -> 0 bytes docs/book/index.html | 340 ------------------ docs/book/sequence-diagram.png | Bin 19823 -> 0 bytes docs/book/state.png | Bin 15574 -> 0 bytes .../mermaid/src/docs/.vitepress/config.ts | 13 +- 9 files changed, 4 insertions(+), 349 deletions(-) delete mode 100644 docs/book/class.png delete mode 100644 docs/book/cover.jpg delete mode 100644 docs/book/er.png delete mode 100644 docs/book/flowchart.png delete mode 100644 docs/book/gantt.png delete mode 100644 docs/book/index.html delete mode 100644 docs/book/sequence-diagram.png delete mode 100644 docs/book/state.png diff --git a/docs/book/class.png b/docs/book/class.png deleted file mode 100644 index 5b2f663d86f967ca5d96c5fffca73b6e8efb3ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34954 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

    y{(-`u^dIjWHRrLfhUK$DDj6 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 QcZx_!PE8grZTjKA0f;sM5dZ)H diff --git a/docs/book/flowchart.png b/docs/book/flowchart.png deleted file mode 100644 index 714626b70e398905987bec0c460308fa7a84471f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14794 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 diff --git a/docs/book/gantt.png b/docs/book/gantt.png deleted file mode 100644 index 95c8d08a14bc4306426530921fd538b404dfc1da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43239 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 - - - - - - The Official Guide to Mermaid.js - - - - - - - - - - - - - - - - -

    -
    - - - - - - - - - - - - -
    -
    -
    -

    - Get up to speed with using Mermaid diagrams along with real-world examples and expert tips - from the authors to facilitate a seamless development workflow -

    -
    -
    -
    -
    -
    -

    - Flowcharts is a diagram type that visualizes a process or an algorithm by showing the - steps in order, as well as the different paths the execution can take. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - Sequence diagrams lets you model and visualize interactions between different actors - or objects in a system, as well as the order of those interactions -

    -
    -
    -
    -
    -
    -

    - A class diagram is a graphical representation that is used to visualize and describe - an object-oriented system. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - An entity-relationship diagram is a graphical representation that is used to - visualize the different types of entities that exist within a system. -

    -
    -
    -
    -
    -
    -

    - Use State diagrams to model and document state machines, an abstract way of - representing a system or an algorithm. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - A Gantt chart is a graphical representation that is used to visualize and describe - tasks (events or activities) over time. -

    -
    -
    -
    -
    -

    - These were a few of the diagrams supported by Mermaid. -

    -
    - -
    -
    -

    - Book description -

    -
    -

    - Mermaid lets you represent diagrams using text and code which simplifies the maintenance - of complex diagrams. This is a great option for developers as they’re more familiar with - code, rather than special tools for generating diagrams. Besides, diagrams in code - simplify maintenance and ensure that the code is supported by version control systems. - In some cases, Mermaid makes refactoring support for name changes possible while also - enabling team collaboration for review distribution and updates. -

    -

    - Developers working with any system will be able to put their knowledge to work with this - practical guide to using Mermaid for documentation. The book is also a great reference - for looking up the syntax for specific diagrams when authoring diagrams. -

    -

    - You’ll start by getting up to speed with the importance of accurate and visual - documentation. Next, the book introduces Mermaid and establishes how to use it to create - effective documentation. By using different tools, editors, or a custom documentation - platform, you’ll also learn how to use Mermaid syntax for various diagrams. Later - chapters cover advanced configuration settings and theme options to manipulate your - diagram as per your needs. -

    -

    - By the end of this Mermaid book, you’ll have become well-versed with the different types - of Mermaid diagrams and how they can be used in your workflows. -

    -
    -
    -
    -
    -
    -

    - What you will learn -

    -
    -
    -
    -
    -
    -
    -
      -
    • - Understand good and bad documentation, and the art of effective documentation -
    • -
    • - Become well-versed with maintaining complex diagrams with ease -
    • -
    • - Learn how to set up a custom documentation system -
    • -
    • - Learn how to implement Mermaid diagrams in your workflows -
    • -
    • - Understand how to set up themes for a Mermaid diagram for an entire site -
    • -
    • - Discover how to draw different types of diagrams such as flowcharts, class - diagrams, Gantt charts, and more -
    • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - -
    -

    - Purchase The Official Guide to Mermaid.js -

    -
    -
    -
    -

    -

    Written by Knut Sveidqvist and Ashish Jain.

    -

    - Knut is the creator of Mermaid and both authors are active core team members of the - Mermaid open-source project. -

    -

    - - - -
    - - - diff --git a/docs/book/sequence-diagram.png b/docs/book/sequence-diagram.png deleted file mode 100644 index 8c51ac1c5d6601960112784757061943d9d6dc8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19823 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%0D)Muw-s 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 DRc_Wx diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 707bdf03bd..9b5f1547e8 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -23,10 +23,13 @@ export default defineConfig({ pattern: 'https://github.com/mermaid-js/mermaid/edit/develop/packages/mermaid/src/docs/:path', text: 'Edit this page on GitHub', }, - sidebar: { '/': sidebarAll(), }, + socialLinks: [ + { icon: 'github', link: 'https://github.com/mermaid-js/mermaid' }, + { icon: 'slack', link: 'https://mermaid-talk.slack.com' }, + ], }, }); @@ -56,14 +59,6 @@ function nav() { text: '💻 Live Editor', link: 'https://mermaid.live', }, - { - text: 'Slack', - link: 'https://mermaid-talk.slack.com', - }, - { - text: 'GitHub', - link: 'https://github.com/mermaid-js/mermaid', - }, ]; } From 72d9e872846cf900ee19144aab853e76620314ee Mon Sep 17 00:00:00 2001 From: sidharthv96 Date: Tue, 20 Dec 2022 05:14:37 +0000 Subject: [PATCH 0857/1038] Update docs --- docs/syntax/classDiagram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index c4fc077329..97032ff56c 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -267,7 +267,7 @@ There are eight different types of relations defined for classes under UML which | Type | Description | | ------- | ------------- | | `<\|--` | Inheritance | -| `\*--` | Composition | +| `*--` | Composition | | `o--` | Aggregation | | `-->` | Association | | `--` | Link (Solid) | From 469bdcef2fb938d3d884826cf59329663e6aae96 Mon Sep 17 00:00:00 2001 From: steph Date: Sun, 18 Dec 2022 20:15:29 -0800 Subject: [PATCH 0858/1038] add support for vitepress blocks --- packages/mermaid/src/docs.mts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 313d1f2dec..a4ec0d7189 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -146,9 +146,22 @@ const readSyncedUTF8file = (filename: string): string => { return readFileSync(filename, 'utf8'); }; -const transformToBlockQuote = (content: string, type: string) => { - const title = type === 'warning' ? 'Warning' : 'Note'; - return `> **${title}** \n> ${content.replace(/\n/g, '\n> ')}`; +const blockIcons: Record = { + tip: '💡 ', + danger: '‼️ ', +}; + +const capitalize = (word: string) => word[0].toUpperCase() + word.slice(1); + +const transformToBlockQuote = (content: string, type: string, customTitle?: string | null) => { + if (vitepress) { + const vitepressType = type === 'note' ? 'info' : type; + return `::: ${vitepressType} ${customTitle || ''}\n${content}\n:::`; + } else { + const icon = blockIcons[type] || ''; + const title = `${icon}${customTitle || capitalize(type)}`; + return `> **${title}** \n> ${content.replace(/\n/g, '\n> ')}`; + } }; const injectPlaceholders = (text: string): string => @@ -194,8 +207,8 @@ const transformMarkdown = (file: string) => { } // Transform codeblocks into block quotes. - if (['note', 'tip', 'warning'].includes(c.lang)) { - return [remark.parse(transformToBlockQuote(c.value, c.lang))]; + if (['note', 'tip', 'warning', 'danger'].includes(c.lang)) { + return [remark.parse(transformToBlockQuote(c.value, c.lang, c.meta))]; } return [c]; From cdba2b4ac81947f5751de10311de2dfbe52c738e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 20 Dec 2022 10:56:39 +0530 Subject: [PATCH 0859/1038] Update CDN links --- README.md | 2 +- README.zh-CN.md | 2 +- docs/config/8.6.0_docs.md | 2 +- docs/config/usage.md | 2 +- docs/intro/index.md | 6 +++--- packages/mermaid/README.md | 2 +- packages/mermaid/README.zh-CN.md | 2 +- packages/mermaid/src/docs/config/8.6.0_docs.md | 2 +- packages/mermaid/src/docs/config/usage.md | 2 +- packages/mermaid/src/docs/intro/index.md | 6 +++--- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9a500283ce..ad98ee8bfa 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include- For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. diff --git a/README.zh-CN.md b/README.zh-CN.md index 4bdbc4ae7d..415b4bf3e6 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -28,7 +28,7 @@ Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://merma 如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md index abd1587129..0b1d641128 100644 --- a/docs/config/8.6.0_docs.md +++ b/docs/config/8.6.0_docs.md @@ -8,7 +8,7 @@ ## [New Mermaid Live-Editor Beta](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) -## [CDN](https://unpkg.com/mermaid/) +## [CDN](https://www.jsdelivr.com/package/npm/mermaid) With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. diff --git a/docs/config/usage.md b/docs/config/usage.md index 476806d8f8..59fc37c405 100644 --- a/docs/config/usage.md +++ b/docs/config/usage.md @@ -12,7 +12,7 @@ Diagrams can be re-rendered/modified by modifying their descriptions. ### CDN - + Please note that you can switch versions through the dropdown box at the top right. diff --git a/docs/intro/index.md b/docs/intro/index.md index 5aa068e27c..25b3a55645 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -35,7 +35,7 @@ Use Mermaid with your favorite applications, check out the list of [Integrations For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -243,13 +243,13 @@ journey ### CDN - https://unpkg.com/mermaid@/dist/ + https://cdn.jsdelivr.net/npm@/dist/ To select a version: Replace `` with the desired version number. -Latest Version: +Latest Version: ## Deploying Mermaid diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md index e6c7db6085..d453d2ec06 100644 --- a/packages/mermaid/README.md +++ b/packages/mermaid/README.md @@ -33,7 +33,7 @@ You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include- For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md), [Usage](./docs/usage.md) and [Tutorials](./docs/Tutorials.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md index 0ccef27e48..2e91ffcc00 100644 --- a/packages/mermaid/README.zh-CN.md +++ b/packages/mermaid/README.zh-CN.md @@ -28,7 +28,7 @@ Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://merma 如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/n00b-overview.md), [用法](./docs/usage.md) 和 [教程](./docs/Tutorials.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) diff --git a/packages/mermaid/src/docs/config/8.6.0_docs.md b/packages/mermaid/src/docs/config/8.6.0_docs.md index bc19e08d59..7b470eab81 100644 --- a/packages/mermaid/src/docs/config/8.6.0_docs.md +++ b/packages/mermaid/src/docs/config/8.6.0_docs.md @@ -2,7 +2,7 @@ ## [New Mermaid Live-Editor Beta](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) -## [CDN](https://unpkg.com/mermaid/) +## [CDN](https://www.jsdelivr.com/package/npm/mermaid) With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md index 3eac4ad6f3..4aff836324 100644 --- a/packages/mermaid/src/docs/config/usage.md +++ b/packages/mermaid/src/docs/config/usage.md @@ -6,7 +6,7 @@ Diagrams can be re-rendered/modified by modifying their descriptions. ### CDN -[https://unpkg.com/mermaid/](https://unpkg.com/mermaid/) +[https://www.jsdelivr.com/package/npm/mermaid](https://www.jsdelivr.com/package/npm/mermaid) Please note that you can switch versions through the dropdown box at the top right. diff --git a/packages/mermaid/src/docs/intro/index.md b/packages/mermaid/src/docs/intro/index.md index df1aa3b621..5783b802fa 100644 --- a/packages/mermaid/src/docs/intro/index.md +++ b/packages/mermaid/src/docs/intro/index.md @@ -30,7 +30,7 @@ Use Mermaid with your favorite applications, check out the list of [Integrations For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -55,14 +55,14 @@ In our release process we rely heavily on visual regression tests using [applito ### CDN ``` -https://unpkg.com/mermaid@/dist/ +@/dist/ ``` To select a version: Replace `` with the desired version number. -Latest Version: [https://unpkg.com/browse/mermaid@8.8.0/](https://unpkg.com/browse/mermaid@8.8.0/) +Latest Version: [/mermaid@](/mermaid@) ## Deploying Mermaid From 3beb828988e2255c210b0908eb5c70c9a17a511b Mon Sep 17 00:00:00 2001 From: Tom PERRILLAT-COLLOMB Date: Tue, 20 Dec 2022 18:35:03 +0100 Subject: [PATCH 0860/1038] chore(pr): add task in PR template --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 41d9c4cff8..3574c35997 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,4 +14,5 @@ Make sure you - [ ] :book: have read the [contribution guidelines](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) - [ ] :computer: have added unit/e2e tests (if appropriate) +- [ ] :notebook: have added documentation (if appropriate) - [ ] :bookmark: targeted `develop` branch From 0f337d654f3f11c7828a2f1105790df619a806f9 Mon Sep 17 00:00:00 2001 From: Steph <35910788+huynhicode@users.noreply.github.com> Date: Tue, 20 Dec 2022 09:37:26 -0800 Subject: [PATCH 0861/1038] Update packages/mermaid/src/docs/syntax/gantt.md Co-authored-by: Alois Klink --- packages/mermaid/src/docs/syntax/gantt.md | 44 +++++++++++------------ 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/packages/mermaid/src/docs/syntax/gantt.md b/packages/mermaid/src/docs/syntax/gantt.md index 7ddb727348..920869fba7 100644 --- a/packages/mermaid/src/docs/syntax/gantt.md +++ b/packages/mermaid/src/docs/syntax/gantt.md @@ -110,29 +110,27 @@ dateFormat YYYY-MM-DD The following formatting options are supported: -```markdown -Input Example Description: - -YYYY 2014 4 digit year -YY 14 2 digit year -Q 1..4 Quarter of year. Sets month to first month in quarter. -M MM 1..12 Month number -MMM MMMM January..Dec Month name in locale set by moment.locale() -D DD 1..31 Day of month -Do 1st..31st Day of month with ordinal -DDD DDDD 1..365 Day of year -X 1410715640.579 Unix timestamp -x 1410715640579 Unix ms timestamp -H HH 0..23 24 hour time -h hh 1..12 12 hour time used with a A. -a A am pm Post or ante meridiem -m mm 0..59 Minutes -s ss 0..59 Seconds -S 0..9 Tenths of a second -SS 0..99 Hundreds of a second -SSS 0..999 Thousandths of a second -Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z -``` +| Input | Example | Description | +| ---------- | -------------- | ------------------------------------------------------ | +| `YYYY` | 2014 | 4 digit year | +| `YY` | 14 | 2 digit year | +| `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. | +| `M MM` | 1..12 | Month number | +| `MMM MMMM` | January..Dec | Month name in locale set by `moment.locale()` | +| `D DD` | 1..31 | Day of month | +| `Do` | 1st..31st | Day of month with ordinal | +| `DDD DDDD` | 1..365 | Day of year | +| `X` | 1410715640.579 | Unix timestamp | +| `x` | 1410715640579 | Unix ms timestamp | +| `H HH` | 0..23 | 24 hour time | +| `h hh` | 1..12 | 12 hour time used with `a A`. | +| `a A` | am pm | Post or ante meridiem | +| `m mm` | 0..59 | Minutes | +| `s ss` | 0..59 | Seconds | +| `S` | 0..9 | Tenths of a second | +| `SS` | 0..99 | Hundreds of a second | +| `SSS` | 0..999 | Thousandths of a second | +| `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z | More info in: https://momentjs.com/docs/#/parsing/string-format/ From b220718b96a432eb343489353e1d9bdb21e40b00 Mon Sep 17 00:00:00 2001 From: Steph <35910788+huynhicode@users.noreply.github.com> Date: Tue, 20 Dec 2022 09:37:42 -0800 Subject: [PATCH 0862/1038] Update packages/mermaid/src/docs/syntax/gantt.md Co-authored-by: Alois Klink --- packages/mermaid/src/docs/syntax/gantt.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/docs/syntax/gantt.md b/packages/mermaid/src/docs/syntax/gantt.md index 920869fba7..b51b3ab5c0 100644 --- a/packages/mermaid/src/docs/syntax/gantt.md +++ b/packages/mermaid/src/docs/syntax/gantt.md @@ -183,8 +183,8 @@ tickInterval 1day The pattern is: -```markdown -/^([1-9][0-9]\*)(minute|hour|day|week|month)$/ +```javascript +/^([1-9][0-9]*)(minute|hour|day|week|month)$/ ``` More info in: [https://github.com/d3/d3-time#interval_every](https://github.com/d3/d3-time#interval_every) From 895c16a79343d94d0a84d6aa2ddd20c1405d90f9 Mon Sep 17 00:00:00 2001 From: Omer Rosenbaum <52040016+Omerr@users.noreply.github.com> Date: Wed, 21 Dec 2022 10:56:09 +0200 Subject: [PATCH 0863/1038] Add Swimm to the list of integrations --- packages/mermaid/src/docs/misc/integrations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md index 55d0e5b202..e163758723 100644 --- a/packages/mermaid/src/docs/misc/integrations.md +++ b/packages/mermaid/src/docs/misc/integrations.md @@ -15,6 +15,7 @@ They also serve as proof of concept, for the variety of things that can be built - [Azure Devops](https://docs.microsoft.com/en-us/azure/devops/project/wiki/wiki-markdown-guidance?view=azure-devops#add-mermaid-diagrams-to-a-wiki-page) (**Native support**) - [Tuleap](https://docs.tuleap.org/user-guide/writing-in-tuleap.html#graphs) (**Native support**) - [Joplin](https://joplinapp.org) (**Native support**) +- [Swimm](https://swimm.io) (**Native support**) - [Notion](https://notion.so) (**Native support**) - [Observable](https://observablehq.com/@observablehq/mermaid) (**Native support**) - [Obsidian](https://help.obsidian.md/How+to/Format+your+notes#Diagram) (**Native support**) From 22b66193dc774fc71115ae899f834dad3edb1fe9 Mon Sep 17 00:00:00 2001 From: steph Date: Wed, 21 Dec 2022 11:24:48 -0800 Subject: [PATCH 0864/1038] update outdate format info formatting --- docs/syntax/gantt.md | 100 +++++++++++----------- packages/mermaid/src/docs/syntax/gantt.md | 54 ++++++------ 2 files changed, 76 insertions(+), 78 deletions(-) diff --git a/docs/syntax/gantt.md b/docs/syntax/gantt.md index f54554bd4c..5a9729d63c 100644 --- a/docs/syntax/gantt.md +++ b/docs/syntax/gantt.md @@ -178,29 +178,27 @@ dateFormat YYYY-MM-DD The following formatting options are supported: -```markdown -Input Example Description: - -YYYY 2014 4 digit year -YY 14 2 digit year -Q 1..4 Quarter of year. Sets month to first month in quarter. -M MM 1..12 Month number -MMM MMMM January..Dec Month name in locale set by moment.locale() -D DD 1..31 Day of month -Do 1st..31st Day of month with ordinal -DDD DDDD 1..365 Day of year -X 1410715640.579 Unix timestamp -x 1410715640579 Unix ms timestamp -H HH 0..23 24 hour time -h hh 1..12 12 hour time used with a A. -a A am pm Post or ante meridiem -m mm 0..59 Minutes -s ss 0..59 Seconds -S 0..9 Tenths of a second -SS 0..99 Hundreds of a second -SSS 0..999 Thousandths of a second -Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z -``` +| Input | Example | Description | +| ---------- | -------------- | ------------------------------------------------------ | +| `YYYY` | 2014 | 4 digit year | +| `YY` | 14 | 2 digit year | +| `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. | +| `M MM` | 1..12 | Month number | +| `MMM MMMM` | January..Dec | Month name in locale set by `moment.locale()` | +| `D DD` | 1..31 | Day of month | +| `Do` | 1st..31st | Day of month with ordinal | +| `DDD DDDD` | 1..365 | Day of year | +| `X` | 1410715640.579 | Unix timestamp | +| `x` | 1410715640579 | Unix ms timestamp | +| `H HH` | 0..23 | 24 hour time | +| `h hh` | 1..12 | 12 hour time used with `a A`. | +| `a A` | am pm | Post or ante meridiem | +| `m mm` | 0..59 | Minutes | +| `s ss` | 0..59 | Seconds | +| `S` | 0..9 | Tenths of a second | +| `SS` | 0..99 | Hundreds of a second | +| `SSS` | 0..999 | Thousandths of a second | +| `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z | More info in: https://momentjs.com/docs/#/parsing/string-format/ @@ -214,32 +212,32 @@ axisFormat %Y-%m-%d The following formatting strings are supported: -```markdown -%a - abbreviated weekday name. -%A - full weekday name. -%b - abbreviated month name. -%B - full month name. -%c - date and time, as "%a %b %e %H:%M:%S %Y". -%d - zero-padded day of the month as a decimal number [01,31]. -%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %\_d. -%H - hour (24-hour clock) as a decimal number [00,23]. -%I - hour (12-hour clock) as a decimal number [01,12]. -%j - day of the year as a decimal number [001,366]. -%m - month as a decimal number [01,12]. -%M - minute as a decimal number [00,59]. -%L - milliseconds as a decimal number [000, 999]. -%p - either AM or PM. -%S - second as a decimal number [00,61]. -%U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. -%w - weekday as a decimal number [0(Sunday),6]. -%W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. -%x - date, as "%m/%d/%Y". -%X - time, as "%H:%M:%S". -%y - year without century as a decimal number [00,99]. -%Y - year with century as a decimal number. -%Z - time zone offset, such as "-0700". -%% - a literal "%" character. -``` +| Format | Definition | +| ------ | ------------------------------------------------------------------------------------------ | +| %a | abbreviated weekday name | +| %A | full weekday name | +| %b | abbreviated month name | +| %B | full month name | +| %c | date and time, as "%a %b %e %H:%M:%S %Y" | +| %d | zero-padded day of the month as a decimal number \[01,31] | +| %e | space-padded day of the month as a decimal number \[ 1,31]; equivalent to %\_d | +| %H | hour (24-hour clock) as a decimal number \[00,23] | +| %I | hour (12-hour clock) as a decimal number \[01,12] | +| %j | day of the year as a decimal number \[001,366] | +| %m | month as a decimal number \[01,12] | +| %M | minute as a decimal number \[00,59] | +| %L | milliseconds as a decimal number \[000, 999] | +| %p | either AM or PM | +| %S | second as a decimal number \[00,61] | +| %U | week number of the year (Sunday as the first day of the week) as a decimal number \[00,53] | +| %w | weekday as a decimal number \[0(Sunday),6] | +| %W | week number of the year (Monday as the first day of the week) as a decimal number \[00,53] | +| %x | date, as "%m/%d/%Y" | +| %X | time, as "%H:%M:%S" | +| %y | year without century as a decimal number \[00,99] | +| %Y | year with century as a decimal number | +| %Z | time zone offset, such as "-0700" | +| %% | a literal "%" character | More info in: @@ -253,8 +251,8 @@ tickInterval 1day The pattern is: -```markdown -/^([1-9][0-9]\*)(minute|hour|day|week|month)$/ +```javascript +/^([1-9][0-9]*)(minute|hour|day|week|month)$/; ``` More info in: diff --git a/packages/mermaid/src/docs/syntax/gantt.md b/packages/mermaid/src/docs/syntax/gantt.md index b51b3ab5c0..0cc915ca1b 100644 --- a/packages/mermaid/src/docs/syntax/gantt.md +++ b/packages/mermaid/src/docs/syntax/gantt.md @@ -144,32 +144,32 @@ axisFormat %Y-%m-%d The following formatting strings are supported: -```markdown -%a - abbreviated weekday name. -%A - full weekday name. -%b - abbreviated month name. -%B - full month name. -%c - date and time, as "%a %b %e %H:%M:%S %Y". -%d - zero-padded day of the month as a decimal number [01,31]. -%e - space-padded day of the month as a decimal number [ 1,31]; equivalent to %\_d. -%H - hour (24-hour clock) as a decimal number [00,23]. -%I - hour (12-hour clock) as a decimal number [01,12]. -%j - day of the year as a decimal number [001,366]. -%m - month as a decimal number [01,12]. -%M - minute as a decimal number [00,59]. -%L - milliseconds as a decimal number [000, 999]. -%p - either AM or PM. -%S - second as a decimal number [00,61]. -%U - week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. -%w - weekday as a decimal number [0(Sunday),6]. -%W - week number of the year (Monday as the first day of the week) as a decimal number [00,53]. -%x - date, as "%m/%d/%Y". -%X - time, as "%H:%M:%S". -%y - year without century as a decimal number [00,99]. -%Y - year with century as a decimal number. -%Z - time zone offset, such as "-0700". -%% - a literal "%" character. -``` +| Format | Definition | +| ------ | ----------------------------------------------------------------------------------------- | +| %a | abbreviated weekday name | +| %A | full weekday name | +| %b | abbreviated month name | +| %B | full month name | +| %c | date and time, as "%a %b %e %H:%M:%S %Y" | +| %d | zero-padded day of the month as a decimal number [01,31] | +| %e | space-padded day of the month as a decimal number [ 1,31]; equivalent to %\_d | +| %H | hour (24-hour clock) as a decimal number [00,23] | +| %I | hour (12-hour clock) as a decimal number [01,12] | +| %j | day of the year as a decimal number [001,366] | +| %m | month as a decimal number [01,12] | +| %M | minute as a decimal number [00,59] | +| %L | milliseconds as a decimal number [000, 999] | +| %p | either AM or PM | +| %S | second as a decimal number [00,61] | +| %U | week number of the year (Sunday as the first day of the week) as a decimal number [00,53] | +| %w | weekday as a decimal number [0(Sunday),6] | +| %W | week number of the year (Monday as the first day of the week) as a decimal number [00,53] | +| %x | date, as "%m/%d/%Y" | +| %X | time, as "%H:%M:%S" | +| %y | year without century as a decimal number [00,99] | +| %Y | year with century as a decimal number | +| %Z | time zone offset, such as "-0700" | +| %% | a literal "%" character | More info in: [https://github.com/d3/d3-time-format/tree/v4.0.0#locale_format](https://github.com/d3/d3-time-format/tree/v4.0.0#locale_format) @@ -184,7 +184,7 @@ tickInterval 1day The pattern is: ```javascript -/^([1-9][0-9]*)(minute|hour|day|week|month)$/ +/^([1-9][0-9]*)(minute|hour|day|week|month)$/; ``` More info in: [https://github.com/d3/d3-time#interval_every](https://github.com/d3/d3-time#interval_every) From 69928e3ede028c8e2de0eee531e662c863a6013d Mon Sep 17 00:00:00 2001 From: steph Date: Wed, 21 Dec 2022 14:21:47 -0800 Subject: [PATCH 0865/1038] retrigger CI From 913ba34386c6dc10e52c212a6a2670860d58c8f3 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 22 Dec 2022 10:33:41 +0100 Subject: [PATCH 0866/1038] #815 Adding possibility to configure elk as renderer for flowcharts --- cypress/platform/knsv2.html | 96 +++++++++++++++---- docs/config/setup/modules/defaultConfig.md | 2 +- packages/mermaid-flowchart-v3/src/detector.ts | 11 ++- packages/mermaid/src/defaultConfig.ts | 5 +- .../src/diagrams/flowchart/flowDetector-v2.ts | 9 +- .../src/diagrams/flowchart/flowDetector.ts | 3 + 6 files changed, 99 insertions(+), 27 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index ae9de8fca0..84a491dc67 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -55,8 +55,9 @@
    Security check
    -
    -cyto TB
    +    
    +%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
    +flowchart TB
       %% I could not figure out how to use double quotes in labels in Mermaid
       subgraph ibm[IBM Espresso CPU]
         core0[IBM PowerPC Broadway Core 0]
    @@ -109,8 +110,65 @@
       rtc{{rtc}}
     
    +
    -cyto LR
    +flowchart TB
    +  %% I could not figure out how to use double quotes in labels in Mermaid
    +  subgraph ibm[IBM Espresso CPU]
    +    core0[IBM PowerPC Broadway Core 0]
    +    core1[IBM PowerPC Broadway Core 1]
    +    core2[IBM PowerPC Broadway Core 2]
    +
    +    rom[16 KB ROM]
    +
    +    core0 --- core2
    +
    +    rom --> core2
    +  end
    +
    +  subgraph amd[AMD Latte GPU]
    +    mem[Memory & I/O Bridge]
    +    dram[DRAM Controller]
    +    edram[32 MB EDRAM MEM1]
    +    rom[512 B SEEPROM]
    +
    +    sata[SATA IF]
    +    exi[EXI]
    +
    +    subgraph gx[GX]
    +      sram[3 MB 1T-SRAM]
    +    end
    +
    +    radeon[AMD Radeon R7xx GX2]
    +
    +    mem --- gx
    +    mem --- radeon
    +
    +    rom --- mem
    +
    +    mem --- sata
    +    mem --- exi
    +
    +    dram --- sata
    +    dram --- exi
    +  end
    +
    +  ddr3[2 GB DDR3 RAM MEM2]
    +
    +  mem --- ddr3
    +  dram --- ddr3
    +  edram --- ddr3
    +
    +  core1 --- mem
    +
    +  exi --- rtc
    +  rtc{{rtc}}
    +
    +
    +   +
    +      flowchart LR
       B1 --be be--x B2
       B1 --bo bo--o B3
       subgraph Ugge
    @@ -142,24 +200,19 @@
       B6 --> B5
       
    - inside1 --> inside2 & inside3 & inside4 & inside5 & inside6 a(letter a
    a) ---> b(letter - b)--> c(letter c) --> d -->e(letter e
    e) --> a b <--> d(letter b
    d)
    -      mindmap
    -  root
    -    child1((Circle))
    -        grandchild 1
    -        grandchild 2
    -    child2(Round rectangle)
    -        grandchild 3
    -        grandchild 4
    -    child3[Square]
    -        grandchild 5
    -        ::icon(mdi mdi-fire)
    -        gc6((grand
    child 6)) - ::icon(mdi mdi-fire) - gc7((grand
    grand
    child 8)) -
    +sequenceDiagram + Customer->>+Stripe: Makes a payment request + Stripe->>+Bank: Forwards the payment request to the bank + Bank->>+Customer: Asks for authorization + Customer->>+Bank: Provides authorization + Bank->>+Stripe: Sends a response with payment details + Stripe->>+Merchant: Sends a notification of payment receipt + Merchant->>+Stripe: Confirms the payment + Stripe->>+Customer: Sends a confirmation of payment + Customer->>+Merchant: Receives goods or services +
           gantt
             title Style today marker (vertical line should be 5px wide and half-transparent blue)
    @@ -186,10 +239,11 @@
             // console.error('Mermaid error: ', err);
           };
           mermaid.initialize({
    -        theme: 'dark',
    +        // theme: 'forest',
             startOnLoad: true,
             logLevel: 0,
             flowchart: {
    +          // defaultRenderer: 'elk',
               useMaxWidth: false,
               htmlLabels: true,
             },
    diff --git a/docs/config/setup/modules/defaultConfig.md b/docs/config/setup/modules/defaultConfig.md
    index 05f6f8a2c6..4089ef00d9 100644
    --- a/docs/config/setup/modules/defaultConfig.md
    +++ b/docs/config/setup/modules/defaultConfig.md
    @@ -14,7 +14,7 @@
     
     #### Defined in
     
    -[defaultConfig.ts:1933](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1933)
    +[defaultConfig.ts:1934](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L1934)
     
     ---
     
    diff --git a/packages/mermaid-flowchart-v3/src/detector.ts b/packages/mermaid-flowchart-v3/src/detector.ts
    index fd4f670c41..5ec09114ad 100644
    --- a/packages/mermaid-flowchart-v3/src/detector.ts
    +++ b/packages/mermaid-flowchart-v3/src/detector.ts
    @@ -3,11 +3,18 @@ import type { ExternalDiagramDefinition } from 'mermaid';
     const id = 'flowchart-v3';
     
     const detector = (txt: string, config) => {
    +  if (config?.flowchart?.defaultRenderer === 'dagre-d3') {
    +    return false;
    +  }
    +  if (config?.flowchart?.defaultRenderer === 'dagre-wrapper') {
    +    return false;
    +  }
    +
       // If we have configured to use dagre-wrapper then we should return true in this function for graph code thus making it use the new flowchart diagram
    -  if (config?.flowchart?.defaultRenderer === 'cytoscape' && txt.match(/^\s*graph/) !== null) {
    +  if (txt.match(/^\s*graph/) !== null) {
         return true;
       }
    -  return txt.match(/^\s*cyto/) !== null;
    +  return txt.match(/^\s*flowchart/) !== null;
     };
     
     const loader = async () => {
    diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts
    index 37d4f71fff..fb6d88d99e 100644
    --- a/packages/mermaid/src/defaultConfig.ts
    +++ b/packages/mermaid/src/defaultConfig.ts
    @@ -247,12 +247,13 @@ const config: Partial = {
         /**
          * | Parameter       | Description | Type    | Required | Values                  |
          * | --------------- | ----------- | ------- | -------- | ----------------------- |
    -     * | defaultRenderer | See notes   | boolean | 4        | dagre-d3, dagre-wrapper |
    +     * | defaultRenderer | See notes   | boolean | 4        | dagre-d3, dagre-wrapper, elk |
          *
          * **Notes:**
          *
          * Decides which rendering engine that is to be used for the rendering. Legal values are:
    -     * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
    +     * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
    +     * elkjs
          *
          * Default value: 'dagre-wrapper'
          */
    diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts
    index c88a63fa68..3916325de6 100644
    --- a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts
    +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts
    @@ -1,8 +1,15 @@
     import type { DiagramDetector } from '../../diagram-api/types';
     
     export const flowDetectorV2: DiagramDetector = (txt, config) => {
    +  if (config?.flowchart?.defaultRenderer === 'dagre-d3') {
    +    return false;
    +  }
    +  if (config?.flowchart?.defaultRenderer === 'elk') {
    +    return false;
    +  }
    +
       // If we have configured to use dagre-wrapper then we should return true in this function for graph code thus making it use the new flowchart diagram
    -  if (config?.flowchart?.defaultRenderer === 'dagre-wrapper' && txt.match(/^\s*graph/) !== null) {
    +  if (txt.match(/^\s*graph/) !== null) {
         return true;
       }
       return txt.match(/^\s*flowchart/) !== null;
    diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts
    index 02ef63f994..d46b7d8f5d 100644
    --- a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts
    +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts
    @@ -6,5 +6,8 @@ export const flowDetector: DiagramDetector = (txt, config) => {
       if (config?.flowchart?.defaultRenderer === 'dagre-wrapper') {
         return false;
       }
    +  if (config?.flowchart?.defaultRenderer === 'elk') {
    +    return false;
    +  }
       return txt.match(/^\s*graph/) !== null;
     };
    
    From 1da20d7aa539e9291928b627d68cdd66960e647d Mon Sep 17 00:00:00 2001
    From: Omer Rosenbaum 
    Date: Thu, 22 Dec 2022 11:39:21 +0200
    Subject: [PATCH 0867/1038] Added swimm to cSpell
    
    ---
     cSpell.json | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/cSpell.json b/cSpell.json
    index 4e9e4945a5..49cb8ada14 100644
    --- a/cSpell.json
    +++ b/cSpell.json
    @@ -83,6 +83,7 @@
         "stylis",
         "substate",
         "sveidqvist",
    +    "swimm",
         "techn",
         "teststr",
         "textlength",
    
    From d75f70f8085afc98f273dd733a10a24e2963cf5a Mon Sep 17 00:00:00 2001
    From: Omer Rosenbaum 
    Date: Thu, 22 Dec 2022 11:41:54 +0200
    Subject: [PATCH 0868/1038] Rebuild the docs -> update integrations with swimm
    
    ---
     docs/misc/integrations.md | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md
    index 5f4d877927..50f3237cd3 100644
    --- a/docs/misc/integrations.md
    +++ b/docs/misc/integrations.md
    @@ -21,6 +21,7 @@ They also serve as proof of concept, for the variety of things that can be built
     - [Azure Devops](https://docs.microsoft.com/en-us/azure/devops/project/wiki/wiki-markdown-guidance?view=azure-devops#add-mermaid-diagrams-to-a-wiki-page) (**Native support**)
     - [Tuleap](https://docs.tuleap.org/user-guide/writing-in-tuleap.html#graphs) (**Native support**)
     - [Joplin](https://joplinapp.org) (**Native support**)
    +- [Swimm](https://swimm.io) (**Native support**)
     - [Notion](https://notion.so) (**Native support**)
     - [Observable](https://observablehq.com/@observablehq/mermaid) (**Native support**)
     - [Obsidian](https://help.obsidian.md/How+to/Format+your+notes#Diagram) (**Native support**)
    
    From c535b10534a5e6345e0e458c66e1cfb4ff2ca64e Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Thu, 22 Dec 2022 11:00:30 +0100
    Subject: [PATCH 0869/1038] Adding info in the docs for enabling elk
     flowcharts.
    
    ---
     docs/syntax/flowchart.md                      | 14 +++++++++++++-
     packages/mermaid/src/docs/syntax/flowchart.md | 16 +++++++++++++++-
     2 files changed, 28 insertions(+), 2 deletions(-)
    
    diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md
    index 8b3859f8a1..fa410623dd 100644
    --- a/docs/syntax/flowchart.md
    +++ b/docs/syntax/flowchart.md
    @@ -990,7 +990,19 @@ flowchart LR
         C -->|Two| E[Result two]
     ```
     
    -## Configuration...
    +## Configuration
    +
    +### Renderer
    +
    +The layout of the flowchart diagram can be don in multiple ways. The default rendering is done using an algorithm called dagre. It is possible to use another algorithm called **elk** for rendering flowcharts which is better for large and more complex diagrams. This is an expermental feature but worth exploring.
    +
    +This can be enabled using directives by adding this in the diagram code:
    +
    +    %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
    +
    +Note that the site needs to use mermaid version 9.4+ for this to work and have this featured enabled in the lazy-loading configuration.
    +
    +### Width
     
     It is possible to adjust the width of the rendered flowchart.
     
    diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md
    index 7f8284a2fb..a66f795b75 100644
    --- a/packages/mermaid/src/docs/syntax/flowchart.md
    +++ b/packages/mermaid/src/docs/syntax/flowchart.md
    @@ -669,7 +669,21 @@ flowchart LR
         C -->|Two| E[Result two]
     ```
     
    -## Configuration...
    +## Configuration
    +
    +### Renderer
    +
    +The layout of the flowchart diagram can be don in multiple ways. The default rendering is done using an algorithm called dagre. It is possible to use another algorithm called **elk** for rendering flowcharts which is better for large and more complex diagrams. This is an expermental feature but worth exploring.
    +
    +This can be enabled using directives by adding this in the diagram code:
    +
    +```
    +%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
    +```
    +
    +Note that the site needs to use mermaid version 9.4+ for this to work and have this featured enabled in the lazy-loading configuration.
    +
    +### Width
     
     It is possible to adjust the width of the rendered flowchart.
     
    
    From df42f96b5a1900fb1d830e1604128e3605cfc6e2 Mon Sep 17 00:00:00 2001
    From: Tom PERRILLAT-COLLOMB 
    Date: Thu, 22 Dec 2022 11:17:44 +0100
    Subject: [PATCH 0870/1038] docs(classDiagram): add nested generic type example
     in docs
    
    ---
     demos/classchart.html                         |   2 +-
     docs/book/class.png                           | Bin 34954 -> 0 bytes
     docs/book/cover.jpg                           | Bin 17803 -> 0 bytes
     docs/book/er.png                              | Bin 13419 -> 0 bytes
     docs/book/flowchart.png                       | Bin 14794 -> 0 bytes
     docs/book/gantt.png                           | Bin 43239 -> 0 bytes
     docs/book/index.html                          | 340 ------------------
     docs/book/sequence-diagram.png                | Bin 19823 -> 0 bytes
     docs/book/state.png                           | Bin 15574 -> 0 bytes
     docs/syntax/classDiagram.md                   |   4 +-
     .../mermaid/src/docs/syntax/classDiagram.md   |   3 +-
     11 files changed, 6 insertions(+), 343 deletions(-)
     delete mode 100644 docs/book/class.png
     delete mode 100644 docs/book/cover.jpg
     delete mode 100644 docs/book/er.png
     delete mode 100644 docs/book/flowchart.png
     delete mode 100644 docs/book/gantt.png
     delete mode 100644 docs/book/index.html
     delete mode 100644 docs/book/sequence-diagram.png
     delete mode 100644 docs/book/state.png
    
    diff --git a/demos/classchart.html b/demos/classchart.html
    index 84cc7bec58..0f564d4219 100644
    --- a/demos/classchart.html
    +++ b/demos/classchart.html
    @@ -149,7 +149,7 @@ 

    Class diagram demos

    -privateProperty : string #ProtectedProperty : string ~InternalProperty : string - ~AnotherInternalProperty : List~MyType~ + ~AnotherInternalProperty : List~List~string~~ }

    diff --git a/docs/book/class.png b/docs/book/class.png deleted file mode 100644 index 5b2f663d86f967ca5d96c5fffca73b6e8efb3ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34954 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

    y{(-`u^dIjWHRrLfhUK$DDj6 zAJZ;K3mKaPEk0j~wW~8}E9FG(;;Tw9#r*+vY)AgRg8gsuiRNcmHjMAH?C&^9I71TF z-v^s9p8s6C3j_cV0Q&z)x!$j}&etf4Jy?d__G8Y}xizNDG;ip^i%~$K8 zbK9qpe)8<+;=o?Z^3GgH1C{e zq>Zpj9r?`69=R*xnNW7wJ!H0rGhQV+X_)$Fy?|KvS);Ll#; zD7H39tmsy3QP~zZ1ta`pPC>cjqjBOY+f9NvvgRXTLnHm?Y{L0I31{|B$34B{g!>1NtU-p+uP-~e196Sb`@^7l&I z-!izuiw^_KE|SfWkcvw%V5NrmFsSE@edMF6qSRDRKnUYiOY~e{#`BhsPz9&{G3;;p zQMK<2_RHZ3xPWhJwKw0{{u!$$tJ9jTIJ3oQA=*-XTFttL?<#qGsOM5KOgT!$5UXvU zfMKjNS>5_^;`0Po=(~s-9=;brH?l|WIo~P?_uNVT08+{Wo{R3EMm4a|e8B$DYK!nxt3=L3^sjkHMfV_mhkTxJ4&5E_NVj_sD4ll$RNdu! zEsvxB;S;^|{7D*petLAQa{78N0k*mb!!MVt#oX&=jSXQ{3h{qDo0yEaeL0o_nL59r zVm}hdgYM=q!TF{%@Yy)e+Q=Gj8?T7beMsA?vTH8)dKq6=oy%A8M`*suVA^t%P(;h_ zq#Xwso&DU($cSNQyty`lrK&9-$0?z%#9HqT#mVyM`o@OW!ryVex;lcTi!UZpn`GTv zczw)aQhEt3mAHZ7K*U)zIgH@6qneiFGL9hMxQ(>!giY7-7cZ%-$DU(G)79xFEvVt7 zG4-k&D!o?{%k-lz;*)RT73Y%AE%1ZMuy@>Bk-IuF2Y$yh&sATMFyilyd!3ly8sCyc zQ|?hENr2d77~7|uD10C9U7@G2%MF6QZ&Z`bEcB?zeqR|(+1g)jbQLXol9@s5SkrB} zy*%LU{?=}B+E*;SPItE4p?zhR`RSu&COHI z>_=z(1BE1>1BDFlhgUc|IeC+9g>ZF|_{*X#Xix@XKPJucui+MmAegLkT@M;Q6xUL@ zY}ZmH=He%50s4N!R7R=wR7Ue0?oN#o<-fn^cBUz*^&DXc%dAYp=cDq^_#3yjNS~Uo)3^j^0>L%71a~I{32woqg9HgQ&>^@J+$BKc zK>~rs-KTTsy;*O5%vy8rn;-MS^(4_*X;m6;H8o*M9X__chSd`V&fKk;Kh_c_7MMLm|;3`$Wyu`vbbRglNN=n zMmq}wbo|Yfc3Z`1t^Rmm#nszyx2Lc-6;yU|6nrpjjE%nP1gTDDp{EIcA|H^dm<@qJ zPqR>eRtPM-@{k$lJB(h|5r_Q8G)qIMA<4CIe3tyd9p)y0<&7jR4mklIC{i&J0+E#_ zB4l~^4oa3t7WyIbBQ=HW)1NRV7Uus=h|d6baHB&Q3X{&N6ot8^d>Dy#;w}4I?av^0 zJF{e(5nv?3pz&XH{(pwz|4m;0h0AcL=Ds~-u1|x1-sA3XUBOFBDh1_k*jQ@Mz4+3} zyOTEgy34JH+yn49is)j7OxM7UHQ*ULfHz<{Bfa-gfg%&(@W>ymyce<^WTlpD^q}Dp zZdj^C(8u2=#~}2$`!!;`o69ON4A^pVuxg9HNXd_jn{@I_S)%-)xu#zbEwC`H4_YIpDMcOHA+7q3Kk0y zlv-r3PhNJnBZ~(KJf#3(05#b`T3kWIfGHwl=i=Kp48R&=CH~3r?`uaMpzG1g<$Jc5 zL-nd>b_v+x`C|#Z0*s=~+ReCt^O5U!%K zCl}ZFXGBCuOn{@UgB4s{Cj_hrU3#;ggBeF^GJ0QVVLcg{H#Fwz-a)6*3|agO}}RKg{kNHgB9|yC#%FdnUm(TRntNN zy#UZGjR9cc0>N+&rknZOe$wB5EvRiJ5?maQ;qm*zjWuQ`q-6pf5#e@bOkGF>W110; zQYQ=sKfFdx6$&He61e`Ue2y)2q#hm~f&NdG+5c4yBdmF)#ghPDM_G+ffsOEiC_oGm zoE9@Hc9fS(hY0(BqLkHLMtx)7-j#@N#&KC!7#d3zPD`mqBtJS}(8!yK=4l}gVMEp? zrkOI4n3QR+o(X>>PND>EnDo}Q&U$V0A?dgNmTk6%qVi1M`&6L@L75Z80~S9b!Xm|x z>QmL`-6t>lzKg+tHaL_PH|)(%-+4MGg?R=O0I;iV<7krZ^>Oq2ar<#0>h3C4=(1?3 z8o^okikc$IOv-U5i((xasNH(^`E!H?)s}FCc55Si$n(P@hTLN!#Dl_GG>kmDIVx3X zeCe|2g;QMM)xZp!M6x9s+b^N=#^iQgaq#-ae}5}gh%&!vj*TKZLmg{&<%cs|qjG1hw90a8n)7xr9qa){&nahrix8THa` z?VHLkL*G5U-s?)|r=iNSZThmGe1ECFcYMy(+H+NL^(E?Vd{O_I2u`T9(&}W4YLLo^ z^}hJV8e^5Pyr?!C?*OgpVTQdXT%1 z@@6|g!II*!W3K5KR?%fMQaO>DLV1<`^LbZxKvRsAvw!|FsloRX1gC3A1$Exb$#jhx z%fXLIe0q_Gdv`4TztNMHl$7RmgU|ci>|yXlMFi)KrOvwhzl1!k3%20Gg|gj*+dcPYsZ zzCor5ID8`PrvjNA`N`yDe-3S&Zce|?qy{&OsXVndg@U>n))-7bGH*(osX#9xDA&tw z6&DN1YaQy>MS4W4a_y`B2Pu$Mqp`R4`-MOmQ;qQlW zU3|t+<^`)vbh=Hy-g&Z5Z9Ywhd@HKKO;nNQfpV&iiX9fB4Z3kDU^aeqUi_RsR619) zhl^jD2sh}upPpFd%bPUDNa@PF>Pg*;4SAUxLBs<#+%T?d1R{hld5)A68K_H$EE0{i zVIsVL;y7!&(B^ae@xtCRt;~ankb|2hR$+Y5G!nJd^{VR)wWfv64ws<(p%g{(GkQMS z@81=uiCQevzS$BH5)8!3KXN}z7H!Z$dg>BxMWmFT5&r#>$s4efHG-QT8Ix@$z#x%n z6*<$-t=mOS!R__ard&?8`O7i6t$uhB5S((Oi=-4&aVTv)9k#^Hrxw2s=UO}TussYX zN2pA5;f6);4$P6p@W(VQh!1zY5%{Ei7_823U}7A|L|9p>d2X@cxExqvmXFF5jDq}D z2GhhA|E6?`tiN$s($K#^mPq`TqFC#pAAPwupJv5-l5F(tF(1fqGi6+tz^EDGUzU@U zCZxFwe)41HGvtbu#j)>Yu4IlC?}2OSAR1>`$@e6Z_otU-mEnC!SJ^$Xq{UG7GJ11j zxRrU(+kf)wCtPE0559PLB&AJfcTP`1XXP`8nmg{H9>Srt76uaZtJ2fsvlxP%lWJw- z4HdfSd615X`O57tXePtcWHGaI^gRBFm-wLfiA^T68C2&U-{VO2i7I}1 zLd!Ff?=?*icr9sE57Z)O28|yLn?i+=cjZP#cXraj5VN&+sfWV6d=UE4_u7)UVVX4j zq?j(@x=0WAw`*A52A;%5srC!RF|T>ugOr~B+y`YBKj+_}@LwhNMTV7VIiQpZ4p%x< z4+$g@DjHziumbo%e|KsGNKAO%hCth0hoVgUTQRcgxm|}(z7Z%PP7I|7CiN-dN zj_Wtg_-Ci`Ys@EViun6?`6X^dgx0fZ8CayDW+^C9c={7uoM0?@)^A*S8CTAmBUS4uv%F;Z1kC z8!w1%yN2)ELv!Ls7BenC7KA{6h4pTziNAjdN>u9;YI$-{s%K?0od- zt#jJ9=N~XjhKGa+oV}mmy@R@I%2-X4n`-5Y;s(4`f&#Oj4_V196<5+I<2qnlsbw)S zET;ae)W|U5NZ${bvw4YFAD=!uqB4(bhi!$s(a>0r^D|fPut~azsUoA}6OAI)O8G#*y5%lz&oj?cGlHpHLilZyzEuzTiE^aQs8ISg)gw1?e*68U zzMt60&-E`DGz>EuPw0zznIz33QPSBmMG6!EG&Msnq^j`g-K6(h^bO=c3sB$-?_oz* z-pKDI!XUs++lu)EJG<>pDV(Gewk3KTcj8KvmHo7dg#8VAGG`M5F+-D|HEotizu^Nl zmc3KB5|L#qz2>K@Axpui^29*h2&TnYvSXVZi8O(rZP z>rbM1L5=xO0~7?`C24s})DXYG#z{!ajgU-c#~XlmTMo|H!? z(S+NWz3T)N=}}LL8`gIib0YtfT@DTAmxiKvV%F0tCeoCVtS?IeYyZu2gd|Wv^ZihkPh{!_OAF;2Pzjng_+DZO6 zbJJBV$+{XhqA1Uy`P!V`lBab6fi_+?{Gc%boAY1}%?s9q5nj+-$x`hu5j^LmwkN%- z%_~rFi@~}1SPDmg#mpBd5usRG?fVzKB^;Ubgi2iy3>5N=HT-qPgn=i0RADBpek<5g zfKKe{5pKNAF-VjL`R$Li{)4Dje#4~&8(Tu}>RB0R3u{~C1$Dw`pER~au0D)bH$5<& znpgd`B$P=zVS2xBp{VF{s4hp@vB`g7LsI*qQA2BH!hd4u9ll+Z^9)RJFDmfXAd1C@4Z*l;q@Wp~t~KyJxgO zdjK;=W?MshthyZ#k{l83+KgO@{xDk4j}tJq+x_lQ`Inql z_l^IEfUvjee8Ud69x1Eu;)3W8kIIHAnfF1ZfJct+)Qh&aV8ymA1E8;26Mex%4`@?Q zKVE)9Lw1>tBWyMMAr?23nNj$#=1ZI7mJzb$bS+}!B{fmQnHy#v^%Zf<&8`~KUT(zW z4*3^?)eCkds+zao6QaoV^|(X%@G#boIaZGI%;BxncbF=c*?*r&H;JPg3%XIkLCg#s z(!R}~OR}bC@oVWm+WeEoqsx`rOU{4^q`#}S5KtejH9WA-nP0^-4ZY1yy?+(ZT&R4O z+3==oq6nelT>5-ar}57%>}OylP5hr;Qtm6ybFba=Oo8Zbe1P)IFV;tUvUgu+(3oFA zbCg_eaZyCKp85RviK7x^njhaJ2$eK(#$?>%Y-yIO~zSEXCz^>vT zgV=UeaZv&j<{@6sn8c9wLsHl=7*I{Rdt+1R0e^Jsg304Z+ZSDvHA8yVohLq#tv}LG zr>=Yz3shq$0@DCOUf&RfrWUK8e*oFsYsM3T=YKaoVVDCzTZ0Vgkip5u9YSh3L!m;& z7HJ<962?*QS-Sj|vcO_nBwv?!aUTFATwdXk;$TuE$PBhIF1j(P|3+v|`|wbrxKH9} zsGPms1oVsNhLN1KS*_StCG1M2EoGH1Dulqvflb|v;S+#~T$umeg6T@}2YujRa&2L6 zrZw;#99uWIBg(d~ zE0@y3ti+0ToaOTS(O0Sl@H-gSE!*Q_T3yIp=YKIh|LY4F6dO5K(%f)Gt)|f>w&<(D zGGW4+pLln6T-zA|UNX@8j4odS)aqU`6qM)0~1mp^DZzC z%l-YICTtatdsBK(iTFdtk86sXUPG_@Z&#Hj#fn>#TCCQ^u^dQKz5TiA+lvjVzYR=Y z;;(Y?N~fJoD^EQ({fGfwSoEipTU=f4S^F#Sk0-ipe%*9xf{+l|^>Qr0P#Q+EKaB;t zr68z{cujRq-@FpL+5tG@28sffHvBiT(Pg;pLCjSuXHkjA*x@TYa=<@&!9sBYK!^+R zmie65*-JlFw%`(zXbe5+*(UY@04O+D&-YuU0yJDi6HV zQ$MFznLT|DuBe#jWfWdIJTg|kgJ1o$W0L+ihW8C+`q_KS-Q0Nw`CdQOJ&1-|X?s>Mmb(cP|rCcf{D!@U zzN2f0v}r^4M8EN|@^MZ^g=&JL)b1oy5n0|)K=2%YHc?bBc50NM3EdVu|L*>@(WCOP3Z185d?1kL-uTQ;B-;*mrotA0dgb%YW?pVSIDK(wVyyKk z>H$oCS!w-2V?F% zq86>MD)~wAaPIr{pex>U(x{2f=UdXhyegvBkE5s!ZJzUn*_m&7zQyZq=p;NLB~CEH zElpWgG#U?M-S~pl)CTI-bb+Qn7#wH+Xl|c;Ohl_?sHMRttaYmn(NTrg(3^hcX8k^G zKY{%t;PN%euUou_5qNtGKGizX`F3|K9@2t4Gk?U2P&Jy0jjh+C2~Xd;wF@P-f}@vG zj1zpiu#r2fhGh-$ooZ%tYO+I-iALeq<8uKNBuQzWbm272izW%KrGFwj<&EZgGF$nr z+=C#pMi2R4y%M68@4`-3HH<4{te3?^|h?+!@ zNy_l6`?~Sw`Wm)K*s_y@Wh!)#TAs4w38~tP);&a&x6e`+y6dZLZT0-D7hoef>PC=i z>otNOL8Y=$zudH6XS%2^#pt5j@6b#&3FXO`WUtKqNH#80=rX4hao9fAHfT6`{= zKij;tDu^bf9l0=ifp$mZBV@$hL=vGny!@?m%J6kIU(NLcmhEt3q29t>eGm8Axsjk> z4=I+5^)ap3``{n&Wzu5Q7Tqk)1dtxWsiGh9p9G7~N%tXpvD^mNt0{Lk5z_GBPjw$B{A?GrxKF7%Ap8c@EI% zXK3^`yx=?gAiPUsK?3x;RGvXC;USysSF1pGi(2@#${S1}(x{lq(PK241C1^_+(OBs zseClRlk3*W5YKilXYel%!TJvqXN$Ntlqg+$j??cE1I^B^Pu%rG-xKGM;T%SJdLHTx zE+1k%tV92lnc}kvkwjI_n6G9-5Z|1!hzK)A{C_+UT4ZU8a&(*5jPDe@_8Zk$esMZ5 zdC`3-c43AK^FSI-NcNR{4mY4Cc@99Vj}ssKU>b*Zz53x3v(X7 zO?G+Gvz|7^?756;yeb16X7pC>usCu^x>}=2u?RI2Dh%ZIelIpWl#FWl{iRZ?N>e*wfj9D1@p3N z_mhWGs(8yv(?)h8F_HT=BPtRLE~AO;ul!a2WVtPRTX>&~o$^*(Ol8+WER3I|$rd&0MyBDki@5xRSdDR&YZ*670e3 zLp%y3Tj0AQOr-sW+7(ahx6w4tkv{IVvWCTt@h--+*o>}2Tez%hSM{}PrZHT-!z9nv z_p;Nx9Wm3%Ly6Iz;*>b!k7st)*ElxtHO)3Tq+Qum2C=2k_UO1460R?a>k656Xg*eg&xY~E^RNK+XyaFoG2OMh zk*|8*H6P~P#{_TgAIw@a4r4OB$CkWxJC@ep9Jgu5ehg&4u{kb_>5#|? zZlGHPLweoT;H_my`m}4(%u8#&Dqfr!?u|uC9Xro9bxBEnbx%s2?v^-^cI8>nM-i89 zZJBd1KuSG(xI-oc2I(!`1M*kDQ+96xeY59VL})!V4L0d8xR&vF+2IRQ*8vmS zecY>M^_tKru6xIef^l?qf@81whJA_Gu*XhjcgLla2I)ddYOWs{6cekqZj81!cn%WE zvf+ZG^Do#GEGknCqWo+WNAiXd-|7h+DJU!lT^}*fa5WJMxqp3VHa)Wu3pK3P=20ShaqR?bA#WPkeF1!vVl1dRfif{( zLc%S5)ETBkFvFP}Ngx?;V|>?w`sHfgvK(XM57R~`T|05$j>ajz{H?Yp`Cj=~45`IW zJ*GRQotM%9z1GC1?4Bge=B(isdXf)6_V)tj0S;0 z&l$UBm;1OoD_n+NTV7pDHvi^qiiE$pDeb-NCF{**qV%<)W2i_llGWir*J^dMiCaW8 zlWREMvsEQ8nlIA7AsRlY+r19zlF?7zze53}5g5hfM8GKI~;d%DI2a z4`sPmPp^e~lFN>K2jTEEb|-vLCW$iVS-TRmpn|Nw_EPK3Tm0QyNZ2awixM2l=4`@` zwe=tCS`7TSayISIo;(mF8|xYmdT!D+JVc;lueArJvlBdj)?9WIfyE&N%I*G%MA$RA zwi-M-Q&~b+$9n4n5h#{OLv}mz zrRRU|-eoI%g17{-J-bC`p)6d$$7&7lF&Z2GFmx45^Jx&iJT1RhXMeoqj57@(QPgL= zhy~UrTo#=sR<2Ecq@cT+52V_s>AVy2FIs|aV*a%biAJ);6jT&)J1z=^|3-3}^)Kg1 zHIlWqxC51M9hCCFJ)m({O&Km4qZIihewa}3Pxkoa$39-e*mcIEz+YGJt~N$Q--D=v zzZGp=q$;%IH+I(p!3tOwP86!!^^EJv*2}_8V^{T*VW%?s(DK2M(I4a?t-NUr%Q|6) zs-u*GEymTtkh53gg>lyq_~*;JV1=w)`ih!BMZ&14?_^P@qUyoaE5(QoXsp(4RHi>E z0BL(_=nDv(M{;X@x=naQu|u-`7#Z;BH?XpCO zibxqOP;ld|8|L4=8itIFpKg4*`5^say=NA6zBb3eQ1B(-drhEoT;@{^q(=Nz&SHd5E*%q5DL<5JFp znAgm#ptu$N_%lsE!)W|m?>;n-o>lb1i~t9-G@30rMKRg<_&R?5sLaaSqU1oLE?eYh z+vK{3{|rZ%stWpLpd2nTHoEM$_#d0ZrF1NZlu;2eu#yi>3dsQ)Y-knr^%t%vRK#ka zgtF`aD=Wy~bk7Ds6Ts#~6uVu+*sP>YD0e0!4<(YeRY+FpIJ7G?1*ga*{u_D**3~PN z*AD&kM7m3Kw^tCsIr;2Au(Iz=@Y?j=&qjm(y9zG|#T>@+kCJp(nP*L2rg4Q%yOgB< z&p=Q#TD(!F@UXVVZ&vB>@l)jmlFVr(a1z`~Zz=#yH3de^$6z0b$UB+Tq2>vw=c(8( zVYKHpt4B4~D5C?w&mdrSV107)AQXorr@Ws&Xh*F z%}txo9d#30Pk)UflNAmR8Jj2Q`ySYdSnu$Nxac(WedqM!rbFfjTowFm;b{|7tfoFV zh0ic(F{j|E6CPqWLNalgs^4>E()dLsR1CxHCNdIHUq1!@lwVKFnNjM2s*VKlL$j}#>1 z7{(qwN=De*6a~ZjD z4(*jOQu^`{wnC1hf%m~jcD!ulCo5ro9QK!HHBVygq#za>WDvZ!eF-6isi$}4tL1`v zUvxky+*TSC^YV&W2xKS8rO-}>oDVLyliZFc-9Jq-!WDe5Z7Z9LR-aB4cv||Hj2a96 zK-&wJ8tE;KL2Hw4p^gtSPCo*-pk zDONl5OoreHA@TSl4ont3=wk}GQpHceh)l#*>4mhV%T&z^^2s zk3E9t1wO&vXEL>a0#6{su*iS)D@HmmEH_vXB)-3w?3B{XCQwnts5(p9Uw&&Nnh%u* zuVc$yKE7#Y1Yo#Jz?c(5s~D@7ijAHHb$uQk)YRWvGMXj+gndiapfys|oV_rO?Mzcv6`Qp8VEroeH;9u0L6F5cx(Jjz(Ji{d=3Qk& z4(y-Is4S4tTFu96qawIo-ENsnoF*)h5-&60{Z zT>oBlm1S;Xgp)?~#76EfAHf^{mf-;xY%2yhH&=4@sB5#(+k{RyV}Qd4X-BXjBSnwf zQh&w1oqjwh0p-SRFc&_?bsaeS4s21i6ER#Gu^w124x+6!LkuTKyeekc`W*BAhJC1e z?xgGSHFHP+*dZRYe%7@Cae+0?$Y#~0i95&-(d}DGg6w5%-ev{Pnt=^RTNzti`v34} z+&cR}QL=``p?}Y4<8u(NK5ADp4&+Y-){BCaA4nvL-cOAc1kdalMcqOlcb|3rf+R*K z2Id6KscWeF&S0L&=uym*>fm)_{50NMbGgu%2pZCvph>W^JZ_ElnSq#S=J~p+=edcJ9EwdWAFo_ zVgBLn$c;#*l!YOtkQfz#0M#?XiKE_mUz-GyIDsitkYt(vYU+pU-*YgKOoB}+Q;O36 zkbS9#;mek$5PwnnAC^(@r&eMAlf>>K+Ul_GwuMfF3SA!w_aeT9=GWOg=GjY!cm2Pf zOST8XOa2Zd^^wn#T533h#ku((_7HMVigdj};s|4-?J~C`YKk)+C0-viql%9$(>BTS z(3>R9(C~36*jx7h?^ewJ)gGb$+=kBo3%soVow%P58zoKo`@uRssb!kh)ASrZFkZmE zWibPh>QU##Uc1HGjw6W202zuhFxueN~KApqc-Q zW~Q=Y+UTZxUTT5DBz^xf8KsZk&NDgyhkY~jkv;rOqb~V7#I=Ai*y%Mw$0$^CF1UUa zGx*2(>TrX(g^mpG?HMa6x_gY}j0d@fbThQCcq+7boGIx2@JJGh(*M;QzEX(^EHvU? zxZ&~7zRGXixTqb!Q>=q@hE&=G96M$aP>BUhhRDzS===;J$3Afg^bxJg4<@O z04a6a=0t=am3b@yn3^3KL@1XX>-h+SDh`2`(Rx6ar9 zBubC%QJ*Hl3}y$8Q(t5)9epq=C`XB|xx>Zt)3M95tLXu<9}>7O^L0*)xT6t=eFNuK znCh=E0qvc(3(t&>u(!5-E=*OI8&FvLoy@$vz#W4(&#_4df3V5wnV0q=R8hs-@%P*XWRa3)&$+i{}Z}n&)sD>F-Gq zGw^J0<>ppYIpH<23Dm9s50hiLax>qLU27sPz&HqIZ8P>~caE}b0BdqT{X zBiD26a|K(xd_P+<_}^#Y8=ALv-cxz}nlia}!vTnZrJVV_$zyuDD-6JJfrg-sfqvef z*AfFL$CaFJYQB?LNVQkq1YMtxdo{IKe%`Qe-Q!=EQ*WfC6_Ee{NeB(L#n$nM4^Qb z`+@|x!>X~B^}t#QVo%TnK4M+;6D@J?a2cz5S#O_sfBXC37B`FZ9^)rch|u_=mE76I z+K`6gtHy&F`kVcQ7mDK;ZlKh zdm7J2_wT#>0MwJi0go(uwLk)*XkbZbZG~th9ku$)UTe}T-3hbK5e}EAcSo;6-RL8W zSXG2ps+q3knTakdA9r=<9NM66zEh^}kKNB4fdy`L&I5Q881aC{uA=1fP2COyTq>ja zaa(<_fVd(OldnW1TfJ604?k#jVU*i7+|*c=y=TRh6=(@OC~DM023OLwT9vEF8r}s| zdId?$##_a=7B3S6HuV96JLecYt-o$M&c-j6+XUKPl^=a~qIk29VO3GH|JuvFlo9>p zD>h>Q&OyGsz%4C(@OD|dpf3;};{0Nh6luR2;a z(r>Bg$Kd=U@LypH6z%F^ln|K;D*bKsSJ-D*W8T~OtwPRx_nDF-dJ1i67W!L0*c#|~1w^Rogq(9StfRAiI7sc1UsFd0q^ zxK{o(b4#3plVe~^_cwlB95eC!UG{kTX1R4*LmCqc1DwSyPzkkf*|AMaIKXWSO zzf4!0=lbs^Vvtn~-3;24FpB4+L-cPW9$Dh*f1GUj&mNEYFBAEn2D%Lrr3{Es^21sE QcZx_!PE8grZTjKA0f;sM5dZ)H diff --git a/docs/book/flowchart.png b/docs/book/flowchart.png deleted file mode 100644 index 714626b70e398905987bec0c460308fa7a84471f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14794 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 diff --git a/docs/book/gantt.png b/docs/book/gantt.png deleted file mode 100644 index 95c8d08a14bc4306426530921fd538b404dfc1da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43239 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 - - - - - - The Official Guide to Mermaid.js - - - - - - - - - - - - - - - - -

    -
    - - - - - - - - - - - - -
    -
    -
    -

    - Get up to speed with using Mermaid diagrams along with real-world examples and expert tips - from the authors to facilitate a seamless development workflow -

    -
    -
    -
    -
    -
    -

    - Flowcharts is a diagram type that visualizes a process or an algorithm by showing the - steps in order, as well as the different paths the execution can take. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - Sequence diagrams lets you model and visualize interactions between different actors - or objects in a system, as well as the order of those interactions -

    -
    -
    -
    -
    -
    -

    - A class diagram is a graphical representation that is used to visualize and describe - an object-oriented system. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - An entity-relationship diagram is a graphical representation that is used to - visualize the different types of entities that exist within a system. -

    -
    -
    -
    -
    -
    -

    - Use State diagrams to model and document state machines, an abstract way of - representing a system or an algorithm. -

    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    - A Gantt chart is a graphical representation that is used to visualize and describe - tasks (events or activities) over time. -

    -
    -
    -
    -
    -

    - These were a few of the diagrams supported by Mermaid. -

    -
    - -
    -
    -

    - Book description -

    -
    -

    - Mermaid lets you represent diagrams using text and code which simplifies the maintenance - of complex diagrams. This is a great option for developers as they’re more familiar with - code, rather than special tools for generating diagrams. Besides, diagrams in code - simplify maintenance and ensure that the code is supported by version control systems. - In some cases, Mermaid makes refactoring support for name changes possible while also - enabling team collaboration for review distribution and updates. -

    -

    - Developers working with any system will be able to put their knowledge to work with this - practical guide to using Mermaid for documentation. The book is also a great reference - for looking up the syntax for specific diagrams when authoring diagrams. -

    -

    - You’ll start by getting up to speed with the importance of accurate and visual - documentation. Next, the book introduces Mermaid and establishes how to use it to create - effective documentation. By using different tools, editors, or a custom documentation - platform, you’ll also learn how to use Mermaid syntax for various diagrams. Later - chapters cover advanced configuration settings and theme options to manipulate your - diagram as per your needs. -

    -

    - By the end of this Mermaid book, you’ll have become well-versed with the different types - of Mermaid diagrams and how they can be used in your workflows. -

    -
    -
    -
    -
    -
    -

    - What you will learn -

    -
    -
    -
    -
    -
    -
    -
      -
    • - Understand good and bad documentation, and the art of effective documentation -
    • -
    • - Become well-versed with maintaining complex diagrams with ease -
    • -
    • - Learn how to set up a custom documentation system -
    • -
    • - Learn how to implement Mermaid diagrams in your workflows -
    • -
    • - Understand how to set up themes for a Mermaid diagram for an entire site -
    • -
    • - Discover how to draw different types of diagrams such as flowcharts, class - diagrams, Gantt charts, and more -
    • -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - -
    -

    - Purchase The Official Guide to Mermaid.js -

    -
    -
    -
    -

    -

    Written by Knut Sveidqvist and Ashish Jain.

    -

    - Knut is the creator of Mermaid and both authors are active core team members of the - Mermaid open-source project. -

    -

    - - - -
    - - - diff --git a/docs/book/sequence-diagram.png b/docs/book/sequence-diagram.png deleted file mode 100644 index 8c51ac1c5d6601960112784757061943d9d6dc8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19823 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%0D)Muw-s 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 DRc_Wx diff --git a/docs/syntax/classDiagram.md b/docs/syntax/classDiagram.md index c4fc077329..132ef9f3eb 100644 --- a/docs/syntax/classDiagram.md +++ b/docs/syntax/classDiagram.md @@ -206,7 +206,7 @@ class BankAccount{ #### Generic Types -Members can be defined using generic types, such as `List`, for fields, parameters, and return types by enclosing the type within `~` (**tilde**). Note: **nested** type declarations such as `List>` are not currently supported. +Members can be defined using generic types, such as `List`, for fields, parameters, and return types by enclosing the type within `~` (**tilde**). **Nested** type declarations such as `List>` are supported. Generics can be represented as part of a class definition and also in the parameters or the return value of a method/function: @@ -222,6 +222,7 @@ class Square~Shape~{ Square : -List~string~ messages Square : +setMessages(List~string~ messages) Square : +getMessages() List~string~ +Square : +getDistanceMatrix() List~List~int~~ ``` ```mermaid @@ -236,6 +237,7 @@ class Square~Shape~{ Square : -List~string~ messages Square : +setMessages(List~string~ messages) Square : +getMessages() List~string~ +Square : +getDistanceMatrix() List~List~int~~ ``` #### Visibility diff --git a/packages/mermaid/src/docs/syntax/classDiagram.md b/packages/mermaid/src/docs/syntax/classDiagram.md index 8cd5796ffe..54a5cff232 100644 --- a/packages/mermaid/src/docs/syntax/classDiagram.md +++ b/packages/mermaid/src/docs/syntax/classDiagram.md @@ -123,7 +123,7 @@ class BankAccount{ #### Generic Types -Members can be defined using generic types, such as `List`, for fields, parameters, and return types by enclosing the type within `~` (**tilde**). Note: **nested** type declarations such as `List>` are not currently supported. +Members can be defined using generic types, such as `List`, for fields, parameters, and return types by enclosing the type within `~` (**tilde**). **Nested** type declarations such as `List>` are supported. Generics can be represented as part of a class definition and also in the parameters or the return value of a method/function: @@ -139,6 +139,7 @@ class Square~Shape~{ Square : -List~string~ messages Square : +setMessages(List~string~ messages) Square : +getMessages() List~string~ +Square : +getDistanceMatrix() List~List~int~~ ``` #### Visibility From d8aa44f0c50d93eb2d8c209dbb4121e3f0940fa3 Mon Sep 17 00:00:00 2001 From: nekikara Date: Sat, 24 Dec 2022 20:25:59 +0100 Subject: [PATCH 0871/1038] fix typos accessing techn property in drawC4Shape function --- cypress/integration/rendering/c4.spec.js | 122 ++++++++++++++++++++ packages/mermaid/src/diagrams/c4/svgDraw.js | 6 +- 2 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 cypress/integration/rendering/c4.spec.js diff --git a/cypress/integration/rendering/c4.spec.js b/cypress/integration/rendering/c4.spec.js new file mode 100644 index 0000000000..0cf128ff63 --- /dev/null +++ b/cypress/integration/rendering/c4.spec.js @@ -0,0 +1,122 @@ +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; + +describe('C4 diagram', () => { + it('should render a simple C4Context diagram', () => { + imgSnapshotTest( + ` + C4Context + accTitle: C4 context demo + accDescr: Many large C4 diagrams + + title System Context diagram for Internet Banking System + + Enterprise_Boundary(b0, "BankBoundary0") { + Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") + + System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + + Enterprise_Boundary(b1, "BankBoundary") { + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + } + } + + BiRel(customerA, SystemAA, "Uses") + Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") + Rel(SystemC, customerA, "Sends e-mails to") + + UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red") + UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5") + UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20") + `, + {} + ); + cy.get('svg'); + }); + it('should render a simple C4Container diagram', () => { + imgSnapshotTest( + ` + C4Container + title Container diagram for Internet Banking System + + System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system", $tags="v1.0") + Person(customer, Customer, "A customer of the bank, with personal bank accounts", $tags="v1.0") + + Container_Boundary(c1, "Internet Banking") { + Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to customers via their web browser") + } + + Rel(customer, spa, "Uses", "HTTPS") + Rel(email_system, customer, "Sends e-mails to") + `, + {} + ); + cy.get('svg'); + }); + it('should render a simple C4Component diagram', () => { + imgSnapshotTest( + ` + C4Component + title Component diagram for Internet Banking System - API Application + + Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.") + + Container_Boundary(api, "API Application") { + Component(sign, "Sign In Controller", "MVC Rest Controller", "Allows users to sign in to the internet banking system") + } + + Rel_Back(spa, sign, "Uses", "JSON/HTTPS") + UpdateRelStyle(spa, sign, $offsetY="-40") + `, + {} + ); + cy.get('svg'); + }); + it('should render a simple C4Dynamic diagram', () => { + imgSnapshotTest( + ` + C4Dynamic + title Dynamic diagram for Internet Banking System - API Application + + ContainerDb(c4, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") + Container(c1, "Single-Page Application", "JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.") + Container_Boundary(b, "API Application") { + Component(c3, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.") + Component(c2, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.") + } + Rel(c1, c2, "Submits credentials to", "JSON/HTTPS") + Rel(c2, c3, "Calls isAuthenticated() on") + Rel(c3, c4, "select * from users where username = ?", "JDBC") + + UpdateRelStyle(c1, c2, $textColor="red", $offsetY="-40") + UpdateRelStyle(c2, c3, $textColor="red", $offsetX="-40", $offsetY="60") + UpdateRelStyle(c3, c4, $textColor="red", $offsetY="-40", $offsetX="10") + `, + {} + ); + cy.get('svg'); + }); + it('should render a simple C4Deployment diagram', () => { + imgSnapshotTest( + ` + C4Deployment + title Deployment Diagram for Internet Banking System - Live + + Deployment_Node(mob, "Customer's mobile device", "Apple IOS or Android"){ + Container(mobile, "Mobile App", "Xamarin", "Provides a limited subset of the Internet Banking functionality to customers via their mobile device.") + } + + Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center"){ + Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS"){ + Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x"){ + Container(api, "API Application", "Java and Spring MVC", "Provides Internet Banking functionality via a JSON/HTTPS API.") + } + } + } + + Rel(mobile, api, "Makes API calls to", "json/HTTPS") + `, + {} + ); + cy.get('svg'); + }); +}); diff --git a/packages/mermaid/src/diagrams/c4/svgDraw.js b/packages/mermaid/src/diagrams/c4/svgDraw.js index d3d66a80d3..e34a9d37f3 100644 --- a/packages/mermaid/src/diagrams/c4/svgDraw.js +++ b/packages/mermaid/src/diagrams/c4/svgDraw.js @@ -371,12 +371,12 @@ export const drawC4Shape = function (elem, c4Shape, conf) { textFontConf = conf[c4Shape.typeC4Shape.text + 'Font'](); textFontConf.fontColor = fontColor; - if (c4Shape.thchn && c4Shape.thchn.text !== '') { + if (c4Shape.techn && c4Shape.techn?.text !== '') { _drawTextCandidateFunc(conf)( - c4Shape.thchn.text, + c4Shape.techn.text, c4ShapeElem, c4Shape.x, - c4Shape.y + c4Shape.thchn.Y, + c4Shape.y + c4Shape.techn.Y, c4Shape.width, c4Shape.height, { fill: fontColor, 'font-style': 'italic' }, From d8c3f8fc1611c86cdd20c9b7a76f81c83103598b Mon Sep 17 00:00:00 2001 From: steph Date: Mon, 26 Dec 2022 12:04:58 -0800 Subject: [PATCH 0872/1038] updates to the homepage --- packages/mermaid/src/docs/index.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 6c27639044..28d553dd36 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -21,13 +21,17 @@ hero: features: - title: ➕ Easy to use! - details: Mermaid allows even non-programmers to easily create detailed and diagrams through the Mermaid Live Editor. + details: Easily create and render detailed diagrams and charts with the Mermaid Live Editor. + link: https://mermaid.live/ - title: 🎥 Video Tutorials! - details: Has video tutorials for beginners and advanced users. - - title: 🏆 Award winner! - details: Mermaid was nominated and won the JS Open Source Awards (2019) in the category "The most exciting use of technology"!!! + details: Curated list of video tutorials and examples created by the community. + link: ../../config/Tutorials.html - title: 🧩 Integrations available! - details: Use Mermaid with your favorite applications, check out the list of Integrations and Usages of Mermaid. + details: Use Mermaid with your favorite applications, check out the integrations list. + link: ../../misc/integrations.md + - title: 🏆 Award winning! + details: 2019 JavaScript Open Source Award winner for "The Most Exciting Use of Technology". + link: https://osawards.com/javascript/2019 --- diff --git a/cypress/platform/ghsa1.html b/cypress/platform/ghsa1.html index 890a8e0dd2..59c316eb36 100644 --- a/cypress/platform/ghsa1.html +++ b/cypress/platform/ghsa1.html @@ -21,6 +21,9 @@

    Background should be yellow!!!

    const diagram = document.getElementById('diagram'); const svg = mermaid.render('diagram-svg', graph); diagram.innerHTML = svg; + if (window.Cypress) { + window.rendered = true; + } diff --git a/cypress/platform/ghsa2.html b/cypress/platform/ghsa2.html index 6d4dccca32..3ff69158bb 100644 --- a/cypress/platform/ghsa2.html +++ b/cypress/platform/ghsa2.html @@ -21,6 +21,9 @@

    This element does not belong to the SVG but we can style it

    const diagram = document.getElementById('diagram'); const svg = mermaid.render('diagram-svg', graph); diagram.innerHTML = svg; + if (window.Cypress) { + window.rendered = true; + } diff --git a/cypress/platform/ghsa3.html b/cypress/platform/ghsa3.html index 63dfa0d01e..79fa401316 100644 --- a/cypress/platform/ghsa3.html +++ b/cypress/platform/ghsa3.html @@ -94,6 +94,9 @@

    PAGE SHOULD NOT BE RED

    // document.querySelector('#diagram').innerHTML = diagram; mermaid.render('diagram', diagram, (res) => { document.querySelector('#res').innerHTML = res; + if (window.Cypress) { + window.rendered = true; + } }); From 01a535b8e02be3796d69504a11feb4c46fc8dffd Mon Sep 17 00:00:00 2001 From: sidharthv96 Date: Mon, 16 Jan 2023 09:52:48 +0000 Subject: [PATCH 0912/1038] Update docs --- docs/syntax/sequenceDiagram.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/syntax/sequenceDiagram.md b/docs/syntax/sequenceDiagram.md index f4f4486eeb..77503b0241 100644 --- a/docs/syntax/sequenceDiagram.md +++ b/docs/syntax/sequenceDiagram.md @@ -102,16 +102,16 @@ Messages can be of two displayed either solid or with a dotted line. There are six types of arrows currently supported: -| Type | Description | -| ---- | ------------------------------------------------ | -| -> | Solid line without arrow | -| --> | Dotted line without arrow | -| ->> | Solid line with arrowhead | -| -->> | Dotted line with arrowhead | -| -x | Solid line with a cross at the end | -| --x | Dotted line with a cross at the end. | -| -) | Solid line with an open arrow at the end (async) | -| --) | Dotted line with a open arrow at the end (async) | +| Type | Description | +| ------ | ------------------------------------------------ | +| `->` | Solid line without arrow | +| `-->` | Dotted line without arrow | +| `->>` | Solid line with arrowhead | +| `-->>` | Dotted line with arrowhead | +| `-x` | Solid line with a cross at the end | +| `--x` | Dotted line with a cross at the end. | +| `-)` | Solid line with an open arrow at the end (async) | +| `--)` | Dotted line with a open arrow at the end (async) | ## Activations From 9629c8d8d6a01dfda90fbc8d3eefe4eb8f1a8620 Mon Sep 17 00:00:00 2001 From: Jon Ruskin Date: Tue, 17 Jan 2023 08:31:36 -0700 Subject: [PATCH 0913/1038] use undefined not null --- packages/mermaid/src/diagrams/sequence/svgDraw.js | 8 ++++++-- packages/mermaid/src/utils.spec.js | 4 ++-- packages/mermaid/src/utils.ts | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index 4958656744..220db22096 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -218,7 +218,11 @@ export const drawText = function (elem, textData) { } } for (let [i, line] of lines.entries()) { - if (textData.textMargin !== undefined && textData.textMargin === 0 && _textFontSize !== null) { + if ( + textData.textMargin !== undefined && + textData.textMargin === 0 && + _textFontSize !== undefined + ) { dy = i * _textFontSize; } @@ -234,7 +238,7 @@ export const drawText = function (elem, textData) { if (textData.fontFamily !== undefined) { textElem.style('font-family', textData.fontFamily); } - if (_textFontSizePx !== null) { + if (_textFontSizePx !== undefined) { textElem.style('font-size', _textFontSizePx); } if (textData.fontWeight !== undefined) { diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js index f8bf613fdf..0f0bc1e92a 100644 --- a/packages/mermaid/src/utils.spec.js +++ b/packages/mermaid/src/utils.spec.js @@ -421,10 +421,10 @@ describe('when parsing font sizes', function () { }); it('handles undefined input', function () { - expect(utils.parseFontSize(undefined)).toEqual([null, null]); + expect(utils.parseFontSize(undefined)).toEqual([undefined, undefined]); }); it('handles unparseable input', function () { - expect(utils.parseFontSize({ fontSize: 14 })).toEqual([null, null]); + expect(utils.parseFontSize({ fontSize: 14 })).toEqual([undefined, undefined]); }); }); diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index a4ef5f6307..876c815436 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -962,7 +962,7 @@ export const parseFontSize = (fontSize: string | number | undefined): [number?, const fontSizeNumber = parseInt(fontSize, 10); if (Number.isNaN(fontSizeNumber)) { // if a number value can't be parsed, return null for both values - return [null, null]; + return [undefined, undefined]; } else if (fontSize === String(fontSizeNumber)) { // if a string input doesn't contain any units, assume px units return [fontSizeNumber, fontSize + 'px']; From 96dedc7b5e1cb66a3935789a2eb2bfcea487653a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 17 Jan 2023 21:37:32 +0530 Subject: [PATCH 0914/1038] flowchart-elk repro --- cypress/platform/sidv.html | 281 ++++++++++++++++++++++++++++++++++++- 1 file changed, 275 insertions(+), 6 deletions(-) diff --git a/cypress/platform/sidv.html b/cypress/platform/sidv.html index c9bf56b7dd..539288464f 100644 --- a/cypress/platform/sidv.html +++ b/cypress/platform/sidv.html @@ -1,14 +1,283 @@ + + + + + + + + -
    -    none
    -    hello world
    +    
    +%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
    +graph TB
    +      a --> b
    +      a --> c
    +      b --> d
    +      c --> d
         
    - - From 549483d19b8f7f38d80944dbdbfd2ad1333f1238 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 17 Jan 2023 22:09:22 +0530 Subject: [PATCH 0915/1038] Update funding :) --- .github/FUNDING.yml | 4 +++- cSpell.json | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index a3427c2f43..b7e5d38d9b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,8 @@ # These are supported funding model platforms -github: [knsv] +github: + - knsv + - sidharthv96 #patreon: # Replace with a single Patreon username #open_collective: # Replace with a single Open Collective username #ko_fi: # Replace with a single Ko-fi username diff --git a/cSpell.json b/cSpell.json index 26550c527f..6f93af103e 100644 --- a/cSpell.json +++ b/cSpell.json @@ -85,6 +85,7 @@ "setupgraphviewbox", "shiki", "sidharth", + "sidharthv", "sphinxcontrib", "statediagram", "stylis", From afe3f593e1e5bfcc0181b950e1fafee684f53184 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 18 Jan 2023 00:47:49 +0530 Subject: [PATCH 0916/1038] fix(#4003): Remove unhandled promises Add eslint rules to check for unhandled promises Fix all existing unhandled promise issues --- .eslintignore | 3 +- .eslintrc.cjs | 150 ++++++++++ .eslintrc.json | 137 --------- cypress/platform/viewer.js | 2 +- package.json | 8 +- packages/mermaid/src/Diagram.ts | 2 +- .../flowchart/elk/flowRenderer-elk.js | 259 ++++++++--------- packages/mermaid/src/docs.mts | 6 +- packages/mermaid/src/mermaid.ts | 19 +- pnpm-lock.yaml | 268 +++++++++++++----- scripts/jison/lint.mts | 6 +- tests/webpack/src/index.js | 6 +- tsconfig.eslint.json | 9 + 13 files changed, 504 insertions(+), 371 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 .eslintrc.json create mode 100644 tsconfig.eslint.json diff --git a/.eslintignore b/.eslintignore index e1957aef99..04348c4108 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,4 +3,5 @@ dist/** docs/Setup.md cypress.config.js cypress/plugins/index.js -coverage \ No newline at end of file +coverage +*.json \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000000..e6f99a8bf9 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,150 @@ +module.exports = { + env: { + browser: true, + es6: true, + 'jest/globals': true, + node: true, + }, + root: true, + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaFeatures: { + experimentalObjectRestSpread: true, + jsx: true, + }, + tsconfigRootDir: __dirname, + sourceType: 'module', + ecmaVersion: 2020, + allowAutomaticSingleRunInference: true, + project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'], + parser: '@typescript-eslint/parser', + }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:json/recommended', + 'plugin:markdown/recommended', + 'plugin:@cspell/recommended', + 'prettier', + ], + plugins: [ + '@typescript-eslint', + 'no-only-tests', + 'html', + 'jest', + 'jsdoc', + 'json', + '@cspell', + 'lodash', + 'unicorn', + ], + rules: { + curly: 'error', + 'no-console': 'error', + 'no-prototype-builtins': 'off', + 'no-unused-vars': 'off', + 'cypress/no-async-tests': 'off', + '@typescript-eslint/no-floating-promises': 'error', + '@typescript-eslint/no-misused-promises': 'error', + '@typescript-eslint/ban-ts-comment': [ + 'error', + { + 'ts-expect-error': 'allow-with-description', + 'ts-ignore': 'allow-with-description', + 'ts-nocheck': 'allow-with-description', + 'ts-check': 'allow-with-description', + minimumDescriptionLength: 10, + }, + ], + 'json/*': ['error', 'allowComments'], + '@cspell/spellchecker': [ + 'error', + { + checkIdentifiers: false, + checkStrings: false, + checkStringTemplates: false, + }, + ], + 'no-empty': [ + 'error', + { + allowEmptyCatch: true, + }, + ], + 'no-only-tests/no-only-tests': 'error', + 'lodash/import-scope': ['error', 'method'], + 'unicorn/better-regex': 'error', + 'unicorn/no-abusive-eslint-disable': 'error', + 'unicorn/no-array-push-push': 'error', + 'unicorn/no-for-loop': 'error', + 'unicorn/no-instanceof-array': 'error', + 'unicorn/no-typeof-undefined': 'error', + 'unicorn/no-unnecessary-await': 'error', + 'unicorn/no-unsafe-regex': 'warn', + 'unicorn/no-useless-promise-resolve-reject': 'error', + 'unicorn/prefer-array-find': 'error', + 'unicorn/prefer-array-flat-map': 'error', + 'unicorn/prefer-array-index-of': 'error', + 'unicorn/prefer-array-some': 'error', + 'unicorn/prefer-default-parameters': 'error', + 'unicorn/prefer-includes': 'error', + 'unicorn/prefer-negative-index': 'error', + 'unicorn/prefer-object-from-entries': 'error', + 'unicorn/prefer-string-starts-ends-with': 'error', + 'unicorn/prefer-string-trim-start-end': 'error', + 'unicorn/string-content': 'error', + 'unicorn/prefer-spread': 'error', + 'unicorn/no-lonely-if': 'error', + }, + overrides: [ + { + files: ['cypress/**', 'demos/**'], + rules: { + 'no-console': 'off', + }, + }, + { + files: ['*.{js,jsx,mjs,cjs}'], + extends: ['plugin:jsdoc/recommended'], + rules: { + 'jsdoc/check-indentation': 'off', + 'jsdoc/check-alignment': 'off', + 'jsdoc/check-line-alignment': 'off', + 'jsdoc/multiline-blocks': 'off', + 'jsdoc/newline-after-description': 'off', + 'jsdoc/tag-lines': 'off', + 'jsdoc/require-param-description': 'off', + 'jsdoc/require-param-type': 'off', + 'jsdoc/require-returns': 'off', + 'jsdoc/require-returns-description': 'off', + }, + }, + { + files: ['*.{ts,tsx}'], + plugins: ['tsdoc'], + rules: { + 'tsdoc/syntax': 'error', + }, + }, + { + files: ['*.spec.{ts,js}', 'cypress/**', 'demos/**', '**/docs/**'], + rules: { + 'jsdoc/require-jsdoc': 'off', + '@typescript-eslint/no-unused-vars': 'off', + }, + }, + { + files: ['*.html', '*.md', '**/*.md/*'], + rules: { + 'no-var': 'error', + 'no-undef': 'off', + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-floating-promises': 'off', + '@typescript-eslint/no-misused-promises': 'off', + }, + parserOptions: { + project: null, + }, + }, + ], +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 9d7eacecd2..0000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true, - "jest/globals": true, - "node": true - }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "jsx": true - }, - "sourceType": "module" - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:json/recommended", - "plugin:markdown/recommended", - "plugin:@cspell/recommended", - "prettier" - ], - "plugins": [ - "@typescript-eslint", - "no-only-tests", - "html", - "jest", - "jsdoc", - "json", - "@cspell", - "lodash", - "unicorn" - ], - "rules": { - "curly": "error", - "no-console": "error", - "no-prototype-builtins": "off", - "no-unused-vars": "off", - "cypress/no-async-tests": "off", - "@typescript-eslint/ban-ts-comment": [ - "error", - { - "ts-expect-error": "allow-with-description", - "ts-ignore": "allow-with-description", - "ts-nocheck": "allow-with-description", - "ts-check": "allow-with-description", - "minimumDescriptionLength": 10 - } - ], - "json/*": ["error", "allowComments"], - "@cspell/spellchecker": [ - "error", - { - "checkIdentifiers": false, - "checkStrings": false, - "checkStringTemplates": false - } - ], - "no-empty": [ - "error", - { - "allowEmptyCatch": true - } - ], - "no-only-tests/no-only-tests": "error", - "lodash/import-scope": ["error", "method"], - "unicorn/better-regex": "error", - "unicorn/no-abusive-eslint-disable": "error", - "unicorn/no-array-push-push": "error", - "unicorn/no-for-loop": "error", - "unicorn/no-instanceof-array": "error", - "unicorn/no-typeof-undefined": "error", - "unicorn/no-unnecessary-await": "error", - "unicorn/no-unsafe-regex": "warn", - "unicorn/no-useless-promise-resolve-reject": "error", - "unicorn/prefer-array-find": "error", - "unicorn/prefer-array-flat-map": "error", - "unicorn/prefer-array-index-of": "error", - "unicorn/prefer-array-some": "error", - "unicorn/prefer-default-parameters": "error", - "unicorn/prefer-includes": "error", - "unicorn/prefer-negative-index": "error", - "unicorn/prefer-object-from-entries": "error", - "unicorn/prefer-string-starts-ends-with": "error", - "unicorn/prefer-string-trim-start-end": "error", - "unicorn/string-content": "error", - "unicorn/prefer-spread": "error", - "unicorn/no-lonely-if": "error" - }, - "overrides": [ - { - "files": ["cypress/**", "demos/**"], - "rules": { - "no-console": "off" - } - }, - { - "files": ["*.{js,jsx,mjs,cjs}"], - "extends": ["plugin:jsdoc/recommended"], - "rules": { - "jsdoc/check-indentation": "off", - "jsdoc/check-alignment": "off", - "jsdoc/check-line-alignment": "off", - "jsdoc/multiline-blocks": "off", - "jsdoc/newline-after-description": "off", - "jsdoc/tag-lines": "off", - "jsdoc/require-param-description": "off", - "jsdoc/require-param-type": "off", - "jsdoc/require-returns": "off", - "jsdoc/require-returns-description": "off" - } - }, - { - "files": ["*.{ts,tsx}"], - "plugins": ["tsdoc"], - "rules": { - "tsdoc/syntax": "error" - } - }, - { - "files": ["*.spec.{ts,js}", "cypress/**", "demos/**", "**/docs/**"], - "rules": { - "jsdoc/require-jsdoc": "off", - "@typescript-eslint/no-unused-vars": "off" - } - }, - { - "files": ["*.html", "*.md", "**/*.md/*"], - "rules": { - "no-var": "error", - "no-undef": "off", - "@typescript-eslint/no-unused-vars": "off" - } - } - ] -} diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index c10ae73b1b..01b49435f1 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -151,7 +151,7 @@ if (typeof document !== 'undefined') { contentLoadedApi(); } else { this.console.log('Not using api'); - contentLoaded(); + void contentLoaded(); } }, false diff --git a/package.json b/package.json index 620f7dbeb5..a9577c52c6 100644 --- a/package.json +++ b/package.json @@ -67,8 +67,8 @@ "@types/node": "^18.11.9", "@types/prettier": "^2.7.1", "@types/rollup-plugin-visualizer": "^4.2.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^5.48.2", + "@typescript-eslint/parser": "^5.48.2", "@vitest/coverage-c8": "^0.27.0", "@vitest/ui": "^0.27.0", "concurrently": "^7.5.0", @@ -76,8 +76,8 @@ "cypress": "^10.11.0", "cypress-image-snapshot": "^4.0.1", "esbuild": "^0.17.0", - "eslint": "^8.27.0", - "eslint-config-prettier": "^8.5.0", + "eslint": "^8.32.0", + "eslint-config-prettier": "^8.6.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-html": "^7.1.0", "eslint-plugin-jest": "^27.1.5", diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 4072ad14cd..ed0762ece5 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -6,7 +6,7 @@ import { extractFrontMatter } from './diagram-api/frontmatter'; import { isDetailedError } from './utils'; import type { DetailedError } from './utils'; -export type ParseErrorFunction = (err: string | DetailedError, hash?: any) => void; +export type ParseErrorFunction = (err: string | DetailedError | unknown, hash?: any) => void; export class Diagram { type = 'graph'; diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js index 36783dbb22..19ca0ccc17 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js @@ -609,7 +609,7 @@ const insertChildren = (nodeArray, parentLookupDb) => { * @param id */ -export const draw = function (text, id, _version, diagObj) { +export const draw = async function (text, id, _version, diagObj) { // Add temporary render element diagObj.db.clear(); nodeDb = {}; @@ -617,149 +617,128 @@ export const draw = function (text, id, _version, diagObj) { // Parse the graph definition diagObj.parser.parse(text); - return new Promise(function (resolve, reject) { - const renderEl = select('body').append('div').attr('style', 'height:400px').attr('id', 'cy'); - // .attr('style', 'display:none') - let graph = { - id: 'root', - layoutOptions: { - 'elk.hierarchyHandling': 'INCLUDE_CHILDREN', - // 'elk.hierarchyHandling': 'SEPARATE_CHILDREN', - 'org.eclipse.elk.padding': '[top=100, left=100, bottom=110, right=110]', - // 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers': 120, - // 'elk.layered.spacing.nodeNodeBetweenLayers': '140', - 'elk.layered.spacing.edgeNodeBetweenLayers': '30', - // 'elk.algorithm': 'layered', - 'elk.direction': 'DOWN', - // 'elk.port.side': 'SOUTH', - // 'nodePlacement.strategy': 'SIMPLE', - // 'org.eclipse.elk.spacing.labelLabel': 120, - // 'org.eclipse.elk.graphviz.concentrate': true, - // 'org.eclipse.elk.spacing.nodeNode': 120, - // 'org.eclipse.elk.spacing.edgeEdge': 120, - // 'org.eclipse.elk.spacing.edgeNode': 120, - // 'org.eclipse.elk.spacing.nodeEdge': 120, - // 'org.eclipse.elk.spacing.componentComponent': 120, - }, - children: [], - edges: [], - }; - log.info('Drawing flowchart using v3 renderer'); - - // Set the direction, - // Fetch the default direction, use TD if none was found - let dir = diagObj.db.getDirection(); - switch (dir) { - case 'BT': - graph.layoutOptions['elk.direction'] = 'UP'; - break; - case 'TB': - graph.layoutOptions['elk.direction'] = 'DOWN'; - break; - case 'LR': - graph.layoutOptions['elk.direction'] = 'RIGHT'; - break; - case 'RL': - graph.layoutOptions['elk.direction'] = 'LEFT'; - break; - } - const { securityLevel, flowchart: conf } = getConfig(); + const renderEl = select('body').append('div').attr('style', 'height:400px').attr('id', 'cy'); + let graph = { + id: 'root', + layoutOptions: { + 'elk.hierarchyHandling': 'INCLUDE_CHILDREN', + 'org.eclipse.elk.padding': '[top=100, left=100, bottom=110, right=110]', + 'elk.layered.spacing.edgeNodeBetweenLayers': '30', + 'elk.direction': 'DOWN', + }, + children: [], + edges: [], + }; + log.info('Drawing flowchart using v3 renderer'); + + // Set the direction, + // Fetch the default direction, use TD if none was found + let dir = diagObj.db.getDirection(); + switch (dir) { + case 'BT': + graph.layoutOptions['elk.direction'] = 'UP'; + break; + case 'TB': + graph.layoutOptions['elk.direction'] = 'DOWN'; + break; + case 'LR': + graph.layoutOptions['elk.direction'] = 'RIGHT'; + break; + case 'RL': + graph.layoutOptions['elk.direction'] = 'LEFT'; + break; + } + const { securityLevel, flowchart: conf } = getConfig(); - // Find the root dom node to ne used in rendering - // Handle root and document for when rendering in sandbox mode - let sandboxElement; - if (securityLevel === 'sandbox') { - sandboxElement = select('#i' + id); - } - const root = - securityLevel === 'sandbox' - ? select(sandboxElement.nodes()[0].contentDocument.body) - : select('body'); - const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; - - const svg = root.select(`[id="${id}"]`); - - // Define the supported markers for the diagram - const markers = ['point', 'circle', 'cross']; - - // Add the marker definitions to the svg as marker tags - insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute); - - // Fetch the vertices/nodes and edges/links from the parsed graph definition - const vert = diagObj.db.getVertices(); - - // Setup nodes from the subgraphs with type group, these will be used - // as nodes with children in the subgraph - let subG; - const subGraphs = diagObj.db.getSubGraphs(); - log.info('Subgraphs - ', subGraphs); - for (let i = subGraphs.length - 1; i >= 0; i--) { - subG = subGraphs[i]; - diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir); - } + // Find the root dom node to ne used in rendering + // Handle root and document for when rendering in sandbox mode + let sandboxElement; + if (securityLevel === 'sandbox') { + sandboxElement = select('#i' + id); + } + const root = + securityLevel === 'sandbox' + ? select(sandboxElement.nodes()[0].contentDocument.body) + : select('body'); + const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; + + const svg = root.select(`[id="${id}"]`); + + // Define the supported markers for the diagram + const markers = ['point', 'circle', 'cross']; + + // Add the marker definitions to the svg as marker tags + insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute); + + // Fetch the vertices/nodes and edges/links from the parsed graph definition + const vert = diagObj.db.getVertices(); + + // Setup nodes from the subgraphs with type group, these will be used + // as nodes with children in the subgraph + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + log.info('Subgraphs - ', subGraphs); + for (let i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir); + } - // Add an element in the svg to be used to hold the subgraphs container - // elements - const subGraphsEl = svg.insert('g').attr('class', 'subgraphs'); - - // Create the lookup db for the subgraphs and their children to used when creating - // the tree structured graph - const parentLookupDb = addSubGraphs(diagObj.db); - - // Add the nodes to the graph, this will entail creating the actual nodes - // in order to get the size of the node. You can't get the size of a node - // that is not in the dom so we need to add it to the dom, get the size - // we will position the nodes when we get the layout from elkjs - graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); - - // Time for the edges, we start with adding an element in the node to hold the edges - const edgesEl = svg.insert('g').attr('class', 'edges edgePath'); - // Fetch the edges form the parsed graph definition - const edges = diagObj.db.getEdges(); - - // Add the edges to the graph, this will entail creating the actual edges - graph = addEdges(edges, diagObj, graph, svg); - - // Iterate through all nodes and add the top level nodes to the graph - const nodes = Object.keys(nodeDb); - nodes.forEach((nodeId) => { - const node = nodeDb[nodeId]; - if (!node.parent) { - graph.children.push(node); - } - // node.nodePadding = [120, 50, 50, 50]; - // node['org.eclipse.elk.spacing.nodeNode'] = 120; - // Subgraph - if (parentLookupDb.childrenById[nodeId] !== undefined) { - node.labels = [ - { - text: node.labelText, - layoutOptions: { - 'nodeLabels.placement': '[H_CENTER, V_TOP, INSIDE]', - }, - width: node.labelData.width, - height: node.labelData.height, + // Add an element in the svg to be used to hold the subgraphs container + // elements + const subGraphsEl = svg.insert('g').attr('class', 'subgraphs'); + + // Create the lookup db for the subgraphs and their children to used when creating + // the tree structured graph + const parentLookupDb = addSubGraphs(diagObj.db); + + // Add the nodes to the graph, this will entail creating the actual nodes + // in order to get the size of the node. You can't get the size of a node + // that is not in the dom so we need to add it to the dom, get the size + // we will position the nodes when we get the layout from elkjs + graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); + + // Time for the edges, we start with adding an element in the node to hold the edges + const edgesEl = svg.insert('g').attr('class', 'edges edgePath'); + // Fetch the edges form the parsed graph definition + const edges = diagObj.db.getEdges(); + + // Add the edges to the graph, this will entail creating the actual edges + graph = addEdges(edges, diagObj, graph, svg); + + // Iterate through all nodes and add the top level nodes to the graph + const nodes = Object.keys(nodeDb); + nodes.forEach((nodeId) => { + const node = nodeDb[nodeId]; + if (!node.parent) { + graph.children.push(node); + } + // Subgraph + if (parentLookupDb.childrenById[nodeId] !== undefined) { + node.labels = [ + { + text: node.labelText, + layoutOptions: { + 'nodeLabels.placement': '[H_CENTER, V_TOP, INSIDE]', }, - ]; - delete node.x; - delete node.y; - delete node.width; - delete node.height; - } - }); - insertChildren(graph.children, parentLookupDb); - elk.layout(graph).then(function (g) { - drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); - - g.edges.map((edge, id) => { - insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb); - }); - setupGraphViewbox({}, svg, conf.diagramPadding, conf.useMaxWidth); - resolve(); - }); - // Remove element after layout - renderEl.remove(); + width: node.labelData.width, + height: node.labelData.height, + }, + ]; + delete node.x; + delete node.y; + delete node.width; + delete node.height; + } + }); + insertChildren(graph.children, parentLookupDb); + const g = await elk.layout(graph); + drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); + g.edges?.map((edge) => { + insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb); }); + setupGraphViewbox({}, svg, conf.diagramPadding, conf.useMaxWidth); + // Remove element after layout + renderEl.remove(); }; const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 99da3f3813..33649ce6d9 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -331,7 +331,7 @@ const getFilesFromGlobs = async (globs: string[]): Promise => { }; /** Main method (entry point) */ -(async () => { +const main = async () => { if (verifyOnly) { console.log('Verifying that all files are in sync with the source files'); } @@ -400,4 +400,6 @@ const getFilesFromGlobs = async (globs: string[]): Promise => { } }); } -})(); +}; + +void main(); diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 3c09d2c922..b859a6a842 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -17,7 +17,6 @@ import { ExternalDiagramDefinition } from './diagram-api/types'; export type { MermaidConfig, DetailedError, ExternalDiagramDefinition, ParseErrorFunction }; -let externalDiagramsRegistered = false; /** * ## init * @@ -51,12 +50,7 @@ const init = async function ( callback?: Function ) { try { - // Not really sure if we need to check this, or simply call initThrowsErrorsAsync directly. - if (externalDiagramsRegistered) { - await initThrowsErrorsAsync(config, nodes, callback); - } else { - initThrowsErrors(config, nodes, callback); - } + await initThrowsErrorsAsync(config, nodes, callback); } catch (e) { log.warn('Syntax Error rendering'); if (isDetailedError(e)) { @@ -68,8 +62,7 @@ const init = async function ( } }; -// eslint-disable-next-line @typescript-eslint/ban-types -const handleError = (error: unknown, errors: DetailedError[], parseError?: Function) => { +const handleError = (error: unknown, errors: DetailedError[], parseError?: ParseErrorFunction) => { log.warn(error); if (isDetailedError(error)) { // handle case where error string and hash were @@ -225,7 +218,6 @@ const loadExternalDiagrams = async (...diagrams: ExternalDiagramDefinition[]) => */ const initThrowsErrorsAsync = async function ( config?: MermaidConfig, - // eslint-disable-next-line no-undef nodes?: string | HTMLElement | NodeListOf, // eslint-disable-next-line @typescript-eslint/ban-types callback?: Function @@ -336,7 +328,6 @@ const registerExternalDiagrams = async ( } else { await loadExternalDiagrams(...diagrams); } - externalDiagramsRegistered = true; }; /** @@ -348,7 +339,7 @@ const contentLoaded = function () { if (mermaid.startOnLoad) { const { startOnLoad } = mermaidAPI.getConfig(); if (startOnLoad) { - mermaid.init(); + void mermaid.init(); } } }; @@ -427,7 +418,7 @@ const parseAsync = (txt: string): Promise => { ); }); executionQueue.push(performCall); - executeQueue(); + void executeQueue(); }); }; @@ -460,7 +451,7 @@ const renderAsync = ( ); }); executionQueue.push(performCall); - executeQueue(); + void executeQueue(); }); }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfc7885973..53017ba5b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,11 +44,11 @@ importers: specifier: ^4.2.1 version: 4.2.1 '@typescript-eslint/eslint-plugin': - specifier: ^5.42.1 - version: 5.42.1_2udltptbznfmezdozpdoa2aemq + specifier: ^5.48.2 + version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi '@typescript-eslint/parser': - specifier: ^5.42.1 - version: 5.42.1_rmayb2veg2btbq6mbmnyivgasy + specifier: ^5.48.2 + version: 5.48.2_yygwinqv3a2io74xmwofqb7uka '@vitest/coverage-c8': specifier: ^0.27.0 version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce @@ -71,32 +71,32 @@ importers: specifier: ^0.17.0 version: 0.17.0 eslint: - specifier: ^8.27.0 - version: 8.27.0 + specifier: ^8.32.0 + version: 8.32.0 eslint-config-prettier: - specifier: ^8.5.0 - version: 8.5.0_eslint@8.27.0 + specifier: ^8.6.0 + version: 8.6.0_eslint@8.32.0 eslint-plugin-cypress: specifier: ^2.12.1 - version: 2.12.1_eslint@8.27.0 + version: 2.12.1_eslint@8.32.0 eslint-plugin-html: specifier: ^7.1.0 version: 7.1.0 eslint-plugin-jest: specifier: ^27.1.5 - version: 27.1.5_kdswgjmqcx7mthqz7ow2zlfevy + version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 eslint-plugin-jsdoc: specifier: ^39.6.2 - version: 39.6.2_eslint@8.27.0 + version: 39.6.2_eslint@8.32.0 eslint-plugin-json: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-lodash: specifier: ^7.4.0 - version: 7.4.0_eslint@8.27.0 + version: 7.4.0_eslint@8.32.0 eslint-plugin-markdown: specifier: ^3.0.0 - version: 3.0.0_eslint@8.27.0 + version: 3.0.0_eslint@8.32.0 eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 @@ -105,7 +105,7 @@ importers: version: 0.2.17 eslint-plugin-unicorn: specifier: ^45.0.0 - version: 45.0.0_eslint@8.27.0 + version: 45.0.0_eslint@8.32.0 express: specifier: ^4.18.2 version: 4.18.2 @@ -229,10 +229,10 @@ importers: version: 8.3.4 '@typescript-eslint/eslint-plugin': specifier: ^5.42.1 - version: 5.42.1_2udltptbznfmezdozpdoa2aemq + version: 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq '@typescript-eslint/parser': specifier: ^5.42.1 - version: 5.42.1_rmayb2veg2btbq6mbmnyivgasy + version: 5.42.1_yygwinqv3a2io74xmwofqb7uka chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -336,6 +336,9 @@ importers: specifier: ^2.0.2 version: 2.0.2 devDependencies: + '@types/cytoscape': + specifier: ^3.19.9 + version: 3.19.9 concurrently: specifier: ^7.5.0 version: 7.5.0 @@ -2144,14 +2147,14 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.3: - resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + /@eslint/eslintrc/1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.0 - globals: 13.17.0 + globals: 13.19.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -2171,8 +2174,8 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array/0.11.7: - resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -2656,6 +2659,10 @@ packages: '@types/node': 18.11.9 dev: true + /@types/cytoscape/3.19.9: + resolution: {integrity: sha512-oqCx0ZGiBO0UESbjgq052vjDAy2X53lZpMrWqiweMpvVwKw/2IiYDdzPFK6+f4tMfdv9YKEM9raO5bAZc3UYBg==} + dev: true + /@types/d3-array/3.0.3: resolution: {integrity: sha512-Reoy+pKnvsksN0lQUlcH6dOGjRZ/3WRwXR//m+/8lt1BXeI4xyaUZoqULNjyXXRuh0Mj4LNpkCvhUpQlY3X5xQ==} dev: true @@ -3136,7 +3143,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq: + /@typescript-eslint/eslint-plugin/5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq: resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3147,12 +3154,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.42.1_yygwinqv3a2io74xmwofqb7uka '@typescript-eslint/scope-manager': 5.42.1 - '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/type-utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka debug: 4.3.4 - eslint: 8.27.0 + eslint: 8.32.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3163,7 +3170,34 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + /@typescript-eslint/eslint-plugin/5.48.2_iljmjqxcygjq3saipl7gerxpvi: + resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/type-utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka + debug: 4.3.4 + eslint: 8.32.0 + ignore: 5.2.0 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.42.1_yygwinqv3a2io74xmwofqb7uka: resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3177,7 +3211,27 @@ packages: '@typescript-eslint/types': 5.42.1 '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.27.0 + eslint: 8.32.0 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.48.2_yygwinqv3a2io74xmwofqb7uka: + resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 + debug: 4.3.4 + eslint: 8.32.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color @@ -3191,7 +3245,15 @@ packages: '@typescript-eslint/visitor-keys': 5.42.1 dev: true - /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + /@typescript-eslint/scope-manager/5.48.2: + resolution: {integrity: sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/visitor-keys': 5.48.2 + dev: true + + /@typescript-eslint/type-utils/5.42.1_yygwinqv3a2io74xmwofqb7uka: resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3202,9 +3264,29 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka debug: 4.3.4 - eslint: 8.27.0 + eslint: 8.32.0 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/type-utils/5.48.2_yygwinqv3a2io74xmwofqb7uka: + resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 + '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka + debug: 4.3.4 + eslint: 8.32.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -3216,6 +3298,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types/5.48.2: + resolution: {integrity: sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4: resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3237,7 +3324,28 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + /@typescript-eslint/typescript-estree/5.48.2_typescript@4.8.4: + resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/visitor-keys': 5.48.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.42.1_yygwinqv3a2io74xmwofqb7uka: resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3248,9 +3356,29 @@ packages: '@typescript-eslint/scope-manager': 5.42.1 '@typescript-eslint/types': 5.42.1 '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - eslint: 8.27.0 + eslint: 8.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.32.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils/5.48.2_yygwinqv3a2io74xmwofqb7uka: + resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.12 + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 + eslint: 8.32.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.27.0 + eslint-utils: 3.0.0_eslint@8.32.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -3265,6 +3393,14 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@typescript-eslint/visitor-keys/5.48.2: + resolution: {integrity: sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.48.2 + eslint-visitor-keys: 3.3.0 + dev: true + /@vitejs/plugin-vue/4.0.0_vite@4.0.1+vue@3.2.45: resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3661,12 +3797,12 @@ packages: acorn: 8.8.0 dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: + /acorn-jsx/5.3.2_acorn@8.8.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.0 + acorn: 8.8.1 dev: true /acorn-walk/7.2.0: @@ -6168,21 +6304,21 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.27.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier/8.6.0_eslint@8.32.0: + resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.27.0 + eslint: 8.32.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.27.0: + /eslint-plugin-cypress/2.12.1_eslint@8.32.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.27.0 + eslint: 8.32.0 globals: 11.12.0 dev: true @@ -6192,7 +6328,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.5_kdswgjmqcx7mthqz7ow2zlfevy: + /eslint-plugin-jest/27.1.5_5rcd23qw3h5vuffwo2owxb3hw4: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6205,16 +6341,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq - '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - eslint: 8.27.0 + '@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi + '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka + eslint: 8.32.0 jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc/39.6.2_eslint@8.27.0: + /eslint-plugin-jsdoc/39.6.2_eslint@8.32.0: resolution: {integrity: sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -6224,7 +6360,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.27.0 + eslint: 8.32.0 esquery: 1.4.0 semver: 7.3.8 spdx-expression-parse: 3.0.1 @@ -6240,23 +6376,23 @@ packages: vscode-json-languageservice: 4.2.1 dev: true - /eslint-plugin-lodash/7.4.0_eslint@8.27.0: + /eslint-plugin-lodash/7.4.0_eslint@8.32.0: resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.27.0 + eslint: 8.32.0 lodash: 4.17.21 dev: true - /eslint-plugin-markdown/3.0.0_eslint@8.27.0: + /eslint-plugin-markdown/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.27.0 + eslint: 8.32.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color @@ -6274,7 +6410,7 @@ packages: '@microsoft/tsdoc-config': 0.16.2 dev: true - /eslint-plugin-unicorn/45.0.0_eslint@8.27.0: + /eslint-plugin-unicorn/45.0.0_eslint@8.32.0: resolution: {integrity: sha512-iP8cMRxXKHonKioOhnCoCcqVhoqhAp6rB+nsoLjXFDxTHz3btWMAp8xwzjHA0B1K6YV/U/Yvqn1bUXZt8sJPuQ==} engines: {node: '>=14.18'} peerDependencies: @@ -6283,8 +6419,8 @@ packages: '@babel/helper-validator-identifier': 7.19.1 ci-info: 3.6.2 clean-regexp: 1.0.0 - eslint: 8.27.0 - eslint-utils: 3.0.0_eslint@8.27.0 + eslint: 8.32.0 + eslint-utils: 3.0.0_eslint@8.32.0 esquery: 1.4.0 indent-string: 4.0.0 is-builtin-module: 3.2.0 @@ -6315,13 +6451,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.27.0: + /eslint-utils/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.27.0 + eslint: 8.32.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6335,13 +6471,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.27.0: - resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==} + /eslint/8.32.0: + resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.3 - '@humanwhocodes/config-array': 0.11.7 + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -6351,7 +6487,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.27.0 + eslint-utils: 3.0.0_eslint@8.32.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -6360,7 +6496,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.17.0 + globals: 13.19.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 @@ -6387,8 +6523,8 @@ packages: resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 eslint-visitor-keys: 3.3.0 dev: true @@ -7050,8 +7186,8 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.17.0: - resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} + /globals/13.19.0: + resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 diff --git a/scripts/jison/lint.mts b/scripts/jison/lint.mts index c410d59997..95edd4fb1e 100644 --- a/scripts/jison/lint.mts +++ b/scripts/jison/lint.mts @@ -23,7 +23,7 @@ const lint = async (file: string): Promise => { return result.errorCount === 0; }; -(async () => { +const main = async () => { const jisonFiles = await globby(['./packages/**/*.jison', '!./**/node_modules/**'], { dot: true, }); @@ -31,4 +31,6 @@ const lint = async (file: string): Promise => { if (lintResults.includes(false)) { process.exit(1); } -})(); +}; + +void main(); diff --git a/tests/webpack/src/index.js b/tests/webpack/src/index.js index 899f665962..0929726941 100644 --- a/tests/webpack/src/index.js +++ b/tests/webpack/src/index.js @@ -13,8 +13,8 @@ const load = async () => { await mermaid.registerExternalDiagrams([mindmap]); await render('info'); - setTimeout(async () => { - await render(`mindmap + setTimeout(() => { + void render(`mindmap root((mindmap)) Origins Long history @@ -35,4 +35,4 @@ const load = async () => { }, 2500); }; -window.addEventListener('load', load, false); +window.addEventListener('load', () => void load(), false); diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 0000000000..5090f49d1e --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,9 @@ +{ + // extend your base config to share compilerOptions, etc + "extends": "./tsconfig.json", + "compilerOptions": { + // ensure that nobody can accidentally use this config for a build + "noEmit": true + }, + "include": ["packages", "tests", "scripts", "cypress", "__mocks__", "./.eslintrc.cjs", "./*"] +} From 5b9839cbd0cf108060879716559a993cc90b7866 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 18 Jan 2023 00:53:00 +0530 Subject: [PATCH 0917/1038] fix package.json add `@types/cytoscape` --- packages/mermaid-mindmap/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index 0f1a98303b..e79e2df4f3 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -47,6 +47,7 @@ "non-layered-tidy-tree-layout": "^2.0.2" }, "devDependencies": { + "@types/cytoscape": "^3.19.9", "concurrently": "^7.5.0", "mermaid": "workspace:*", "rimraf": "^3.0.2" From 3aeef7b846bdae8f3d65c56a66fdd90780a277ea Mon Sep 17 00:00:00 2001 From: Bastian Ebeling <230051+Barry1@users.noreply.github.com> Date: Thu, 19 Jan 2023 07:15:32 +0100 Subject: [PATCH 0918/1038] Update integrations.md Corrected `Vs Code` to `VS Code` and inserted `Markdown Preview Enhanced` --- packages/mermaid/src/docs/misc/integrations.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/misc/integrations.md index e163758723..cf4ccc9f89 100644 --- a/packages/mermaid/src/docs/misc/integrations.md +++ b/packages/mermaid/src/docs/misc/integrations.md @@ -89,9 +89,10 @@ They also serve as proof of concept, for the variety of things that can be built ## Editor Plugins -- [Vs Code](https://code.visualstudio.com/) +- [VS Code](https://code.visualstudio.com/) - [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid) - [Mermaid Preview](https://marketplace.visualstudio.com/items?itemName=vstirbu.vscode-mermaid-preview) + - [Markdown Preview Enhanced](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced) - [Mermaid Markdown Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=bpruitt-goddard.mermaid-markdown-syntax-highlighting) - [Mermaid Editor](https://marketplace.visualstudio.com/items?itemName=tomoyukim.vscode-mermaid-editor) - [Mermaid Export](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.mermaid-export) From 652a42fe1aed7911a781a84716940a973b995639 Mon Sep 17 00:00:00 2001 From: ashishj Date: Thu, 19 Jan 2023 19:03:05 +0100 Subject: [PATCH 0919/1038] Add directive parsing functionality to timeline diagram --- cypress/platform/ashish2.html | 16 ++-- packages/mermaid-timeline/src/mermaidUtils.ts | 10 ++- packages/mermaid-timeline/src/timelineDb.js | 13 ++- .../mermaid-timeline/src/timelineRenderer.ts | 3 +- packages/mermaid/src/config.type.ts | 1 + packages/mermaid/src/defaultConfig.ts | 3 + .../mermaid/src/diagram-api/diagramAPI.ts | 8 +- packages/mermaid/src/diagram-api/types.ts | 4 +- packages/mermaid/src/directiveUtils.ts | 84 +++++++++++++++++++ packages/mermaid/src/mermaidAPI.ts | 77 +---------------- 10 files changed, 126 insertions(+), 93 deletions(-) create mode 100644 packages/mermaid/src/directiveUtils.ts diff --git a/cypress/platform/ashish2.html b/cypress/platform/ashish2.html index f1ebaa8271..f77f95606d 100644 --- a/cypress/platform/ashish2.html +++ b/cypress/platform/ashish2.html @@ -55,7 +55,7 @@
    Security check
    -
    +    
      timeline
             title My day
             section section with no tasks
    @@ -71,7 +71,7 @@
               I am a big big big tasks
               I am not so big tasks
         
    -
    +     
      timeline
             title England's History Timeline
             section Stone Age
    @@ -85,9 +85,9 @@
     
         
    +      %%{init: { 'logLevel': 'debug', 'theme': 'default', 'timeline': {'disableMulticolor':false} } }%%
      timeline
             title History of Social Media Platform
    -        section Rise of Social Media
               2002 : LinkedIn
               2004 : Facebook : Google : Pixar
               2005 : Youtube
    @@ -97,9 +97,11 @@
               2010 : Pinterest
         
    ----
    -timeline:disableMulticolor: true
    ----
    +      %%{init: { 'logLevel': 'debug', 'theme': 'default', 'themeVariables': {
    +              'cScale0': '#ffffff',
    +              'cScale1': '#00ff00',
    +              'cScale2': '#0000ff',
    +              } } }%%
      timeline
             title History of Social Media Platform
               2002 : LinkedIn
    @@ -110,7 +112,7 @@
               2008s : Instagram
               2010 : Pinterest
         
    -
    +    
      timeline
             title History of Social Media Platform
               2002 : LinkedIn
    diff --git a/packages/mermaid-timeline/src/mermaidUtils.ts b/packages/mermaid-timeline/src/mermaidUtils.ts
    index 1061f87cff..af3f97571a 100644
    --- a/packages/mermaid-timeline/src/mermaidUtils.ts
    +++ b/packages/mermaid-timeline/src/mermaidUtils.ts
    @@ -23,7 +23,10 @@ export const log: Record = {
     export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void;
     export let getConfig: () => object;
     export let sanitizeText: (str: string) => string;
    -export const getCommonDb=() => localCommonDb;
    +export const getCommonDb = () => localCommonDb;
    +export let parseDirective = (p: any, statement: string, context: string, type: string) => {
    +  return;
    +}
     /**
      * Placeholder for the real function that will be injected by mermaid.
      */
    @@ -52,9 +55,11 @@ export const injectUtils = (
       _getConfig: any,
       _sanitizeText: any,
       _setupGraphViewbox: any,
    -  _commonDb: any
    +  _commonDb: any,
    +  _parseDirective: any
     ) => {
       _log.info('Mermaid utils injected into timeline-diagram');
    +  _log.info('123 ' , _parseDirective);
       log.trace = _log.trace;
       log.debug = _log.debug;
       log.info = _log.info;
    @@ -66,5 +71,6 @@ export const injectUtils = (
       sanitizeText = _sanitizeText;
       setupGraphViewbox = _setupGraphViewbox;
       localCommonDb = _commonDb;
    +  parseDirective = _parseDirective;
     
     };
    diff --git a/packages/mermaid-timeline/src/timelineDb.js b/packages/mermaid-timeline/src/timelineDb.js
    index dda3a97cb9..e5de2aee39 100644
    --- a/packages/mermaid-timeline/src/timelineDb.js
    +++ b/packages/mermaid-timeline/src/timelineDb.js
    @@ -1,4 +1,4 @@
    -import { getCommonDb as _getCommonDb,log  } from './mermaidUtils';
    +import { getCommonDb as _getCommonDb, parseDirective as _parseDirective ,log  } from './mermaidUtils';
     
     let currentSection = '';
     let currentTaskId = 0;
    @@ -9,6 +9,10 @@ const rawTasks = [];
     
     export const getCommonDb = _getCommonDb;
     
    +export const parseDirective = ( statement, context, type) => {
    +  _parseDirective(this, statement, context, type);
    +};
    +
     export const clear = function () {
       sections.length = 0;
       tasks.length = 0;
    @@ -79,14 +83,14 @@ const compileTasks = function () {
       };
     
       let allProcessed = true;
    -  for (let i = 0; i < rawTasks.length; i++) {
    +  for (const [i, rawTask] of rawTasks.entries()) {
         compileTask(i);
     
    -    allProcessed = allProcessed && rawTasks[i].processed;
    +    allProcessed = allProcessed && rawTask.processed;
       }
       return allProcessed;
     };
    -
    +log.info('456 parseDirective',parseDirective);
     export default {
       clear,
       getCommonDb,
    @@ -96,5 +100,6 @@ export default {
       addTask,
       addTaskOrg,
       addEvent,
    +  parseDirective
     };
     
    diff --git a/packages/mermaid-timeline/src/timelineRenderer.ts b/packages/mermaid-timeline/src/timelineRenderer.ts
    index 063d070a74..5ed6c554e1 100644
    --- a/packages/mermaid-timeline/src/timelineRenderer.ts
    +++ b/packages/mermaid-timeline/src/timelineRenderer.ts
    @@ -17,7 +17,8 @@ export const draw = function (text, id, version, diagObj) {
       //1. Fetch the configuration
       const conf = getConfig();
       const LEFT_MARGIN = conf.leftMargin?conf.leftMargin:50;
    -
    +  //log conf
    +  log.info('conf', conf);
       //2. Clear the diagram db before parsing
       diagObj.db.clear();
     
    diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts
    index 63fe078fa6..4740758242 100644
    --- a/packages/mermaid/src/config.type.ts
    +++ b/packages/mermaid/src/config.type.ts
    @@ -314,6 +314,7 @@ export interface TimelineDiagramConfig extends BaseDiagramConfig {
       actorColours?: string[];
       sectionFills?: string[];
       sectionColours?: string[];
    +  disableMulticolor?: boolean;
     }
     
     export interface GanttDiagramConfig extends BaseDiagramConfig {
    diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts
    index 5bb4a1bd82..cee89e4aa3 100644
    --- a/packages/mermaid/src/defaultConfig.ts
    +++ b/packages/mermaid/src/defaultConfig.ts
    @@ -984,6 +984,8 @@ const config: Partial = {
          */
         useMaxWidth: true,
     
    +
    +
         /**
          * | Parameter   | Description                       | Type | Required | Values      |
          * | ----------- | --------------------------------- | ---- | -------- | ----------- |
    @@ -1009,6 +1011,7 @@ const config: Partial = {
     
         sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],
         sectionColours: ['#fff'],
    +    disableMulticolor: false,
       },
       class: {
         /**
    diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts
    index ddb22df2cc..574e72fbc6 100644
    --- a/packages/mermaid/src/diagram-api/diagramAPI.ts
    +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts
    @@ -5,7 +5,8 @@ import { sanitizeText as _sanitizeText } from '../diagrams/common/common';
     import { setupGraphViewbox as _setupGraphViewbox } from '../setupGraphViewbox';
     import { addStylesForDiagram } from '../styles';
     import { DiagramDefinition, DiagramDetector } from './types';
    -import  * as  _commonDb  from '../commonDb';
    +import * as  _commonDb from '../commonDb';
    +import { parseDirective as _parseDirective} from '../directiveUtils';
     
     
     /*
    @@ -19,6 +20,7 @@ export const getConfig = _getConfig;
     export const sanitizeText = (text: string) => _sanitizeText(text, getConfig());
     export const setupGraphViewbox = _setupGraphViewbox;
     export const getCommonDb = () => { return _commonDb };
    +export const parseDirective =  (p: any, statement: string, context: string, type: string)=>_parseDirective(p, statement, context, type);
     
     const diagrams: Record = {};
     export interface Detectors {
    @@ -49,7 +51,9 @@ export const registerDiagram = (
       addStylesForDiagram(id, diagram.styles);
     
       if (diagram.injectUtils) {
    -    diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox,getCommonDb());
    +    console.log('parseDirective', parseDirective);
    +
    +    diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox,getCommonDb(),parseDirective);
       }
     };
     
    diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts
    index 22b4c1c8c7..883cf3987d 100644
    --- a/packages/mermaid/src/diagram-api/types.ts
    +++ b/packages/mermaid/src/diagram-api/types.ts
    @@ -7,6 +7,7 @@ export interface InjectUtils {
       _sanitizeText: any;
       _setupGraphViewbox: any;
       _commonDb: any;
    +  _parseDirective: any;
     }
     
     /**
    @@ -31,7 +32,8 @@ export interface DiagramDefinition {
         _getConfig: InjectUtils['_getConfig'],
         _sanitizeText: InjectUtils['_sanitizeText'],
         _setupGraphViewbox: InjectUtils['_setupGraphViewbox'],
    -    _commonDb: InjectUtils['_commonDb']
    +    _commonDb: InjectUtils['_commonDb'],
    +    _parseDirective: InjectUtils['_parseDirective'],
       ) => void;
     }
     
    diff --git a/packages/mermaid/src/directiveUtils.ts b/packages/mermaid/src/directiveUtils.ts
    new file mode 100644
    index 0000000000..79888daf9d
    --- /dev/null
    +++ b/packages/mermaid/src/directiveUtils.ts
    @@ -0,0 +1,84 @@
    +
    +
    +import * as configApi from './config';
    +
    +import { log } from './logger';
    +import { directiveSanitizer } from './utils';
    +
    +let currentDirective: { type?: string; args?: any } | undefined = {};
    +
    +export const parseDirective = function (p: any, statement: string, context: string, type: string): void {
    +  log.info('parseDirective is being called', statement, context, type);
    +  try {
    +    if (statement !== undefined) {
    +      statement = statement.trim();
    +      switch (context) {
    +        case 'open_directive':
    +          currentDirective = {};
    +          break;
    +        case 'type_directive':
    +          if (!currentDirective) {
    +            throw new Error('currentDirective is undefined');
    +          }
    +          currentDirective.type = statement.toLowerCase();
    +          break;
    +        case 'arg_directive':
    +          if (!currentDirective) {
    +            throw new Error('currentDirective is undefined');
    +          }
    +          currentDirective.args = JSON.parse(statement);
    +          break;
    +        case 'close_directive':
    +          handleDirective(p, currentDirective, type);
    +          currentDirective = undefined;
    +          break;
    +      }
    +    }
    +  } catch (error) {
    +    log.error(
    +      `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`
    +    );
    +    // @ts-ignore: TODO Fix ts errors
    +    log.error(error.message);
    +  }
    +};
    +
    +const handleDirective = function (p: any, directive: any, type: string): void {
    +  log.info(`Directive type=${directive.type} with args:`, directive.args);
    +  switch (directive.type) {
    +    case 'init':
    +    case 'initialize': {
    +      ['config'].forEach((prop) => {
    +        if (directive.args[prop] !== undefined) {
    +          if (type === 'flowchart-v2') {
    +            type = 'flowchart';
    +          }
    +          directive.args[type] = directive.args[prop];
    +          delete directive.args[prop];
    +        }
    +      });
    +      log.info('sanitize in handleDirective', directive.args);
    +      directiveSanitizer(directive.args);
    +      log.info('sanitize in handleDirective (done)', directive.args);
    +      configApi.addDirective(directive.args);
    +      break;
    +    }
    +    case 'wrap':
    +    case 'nowrap':
    +      if (p && p['setWrap']) {
    +        p.setWrap(directive.type === 'wrap');
    +      }
    +      break;
    +    case 'themeCss':
    +      log.warn('themeCss encountered');
    +      break;
    +    default:
    +      log.warn(
    +        `Unhandled directive: source: '%%{${directive.type}: ${JSON.stringify(
    +          directive.args ? directive.args : {}
    +        )}}%%`,
    +        directive
    +      );
    +      break;
    +  }
    +};
    diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
    index 5bf11fad18..ed2f547e96 100644
    --- a/packages/mermaid/src/mermaidAPI.ts
    +++ b/packages/mermaid/src/mermaidAPI.ts
    @@ -31,6 +31,7 @@ import { MermaidConfig } from './config.type';
     import { evaluate } from './diagrams/common/common';
     import isEmpty from 'lodash-es/isEmpty.js';
     import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility';
    +import { parseDirective } from './directiveUtils';
     
     // diagram names that support classDef statements
     const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram', 'stateDiagram-v2'];
    @@ -777,82 +778,6 @@ const renderAsync = async function (
       return svgCode;
     };
     
    -let currentDirective: { type?: string; args?: any } | undefined = {};
    -
    -const parseDirective = function (p: any, statement: string, context: string, type: string): void {
    -  try {
    -    if (statement !== undefined) {
    -      statement = statement.trim();
    -      switch (context) {
    -        case 'open_directive':
    -          currentDirective = {};
    -          break;
    -        case 'type_directive':
    -          if (!currentDirective) {
    -            throw new Error('currentDirective is undefined');
    -          }
    -          currentDirective.type = statement.toLowerCase();
    -          break;
    -        case 'arg_directive':
    -          if (!currentDirective) {
    -            throw new Error('currentDirective is undefined');
    -          }
    -          currentDirective.args = JSON.parse(statement);
    -          break;
    -        case 'close_directive':
    -          handleDirective(p, currentDirective, type);
    -          currentDirective = undefined;
    -          break;
    -      }
    -    }
    -  } catch (error) {
    -    log.error(
    -      `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`
    -    );
    -    // @ts-ignore: TODO Fix ts errors
    -    log.error(error.message);
    -  }
    -};
    -
    -const handleDirective = function (p: any, directive: any, type: string): void {
    -  log.debug(`Directive type=${directive.type} with args:`, directive.args);
    -  switch (directive.type) {
    -    case 'init':
    -    case 'initialize': {
    -      ['config'].forEach((prop) => {
    -        if (directive.args[prop] !== undefined) {
    -          if (type === 'flowchart-v2') {
    -            type = 'flowchart';
    -          }
    -          directive.args[type] = directive.args[prop];
    -          delete directive.args[prop];
    -        }
    -      });
    -      log.debug('sanitize in handleDirective', directive.args);
    -      directiveSanitizer(directive.args);
    -      log.debug('sanitize in handleDirective (done)', directive.args);
    -      configApi.addDirective(directive.args);
    -      break;
    -    }
    -    case 'wrap':
    -    case 'nowrap':
    -      if (p && p['setWrap']) {
    -        p.setWrap(directive.type === 'wrap');
    -      }
    -      break;
    -    case 'themeCss':
    -      log.warn('themeCss encountered');
    -      break;
    -    default:
    -      log.warn(
    -        `Unhandled directive: source: '%%{${directive.type}: ${JSON.stringify(
    -          directive.args ? directive.args : {}
    -        )}}%%`,
    -        directive
    -      );
    -      break;
    -  }
    -};
     
     /**
      * @param  options - Initial Mermaid options
    
    From be818ad57f45cbaa3969ffa4509290e5081b70b4 Mon Sep 17 00:00:00 2001
    From: ashishj 
    Date: Thu, 19 Jan 2023 20:30:11 +0100
    Subject: [PATCH 0920/1038] Pushing fix for broken themeVariable functionality
    
    ---
     cypress/platform/ashish2.html                 | 29 +++++++++++---
     packages/mermaid-timeline/src/mermaidUtils.ts |  3 +-
     packages/mermaid-timeline/src/svgDraw.js      |  2 +-
     packages/mermaid-timeline/src/timelineDb.js   |  2 +-
     .../mermaid-timeline/src/timelineRenderer.ts  | 38 ++++++++-----------
     .../mermaid/src/diagram-api/diagramAPI.ts     |  2 -
     packages/mermaid/src/directiveUtils.ts        |  2 +-
     packages/mermaid/src/docs/syntax/timeline.md  |  4 +-
     packages/mermaid/src/themes/theme-default.js  |  4 +-
     9 files changed, 47 insertions(+), 39 deletions(-)
    
    diff --git a/cypress/platform/ashish2.html b/cypress/platform/ashish2.html
    index f77f95606d..c6dfdc6b0d 100644
    --- a/cypress/platform/ashish2.html
    +++ b/cypress/platform/ashish2.html
    @@ -84,8 +84,8 @@
                       : The first metal objects are made in Britain.Some other nice things happen. it is a good time to be alive.
     
         
    -
    -      %%{init: { 'logLevel': 'debug', 'theme': 'default', 'timeline': {'disableMulticolor':false} } }%%
    +    
    +      %%{'init': { 'logLevel': 'debug', 'theme': 'default', 'timeline': {'disableMulticolor':false} } }%%
      timeline
             title History of Social Media Platform
               2002 : LinkedIn
    @@ -97,10 +97,10 @@
               2010 : Pinterest
         
    -      %%{init: { 'logLevel': 'debug', 'theme': 'default', 'themeVariables': {
    -              'cScale0': '#ffffff',
    +      %%{init: { 'logLevel': 'debug', 'theme': 'base', 'themeVariables': {
    +              'cScale0': '#ff0000',
                   'cScale1': '#00ff00',
    -              'cScale2': '#0000ff',
    +              'cScale2': '#ff0000'
                   } } }%%
      timeline
             title History of Social Media Platform
    @@ -112,6 +112,25 @@
               2008s : Instagram
               2010 : Pinterest
         
    + +
    +          %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': {
    +              'cScale0': '#ff0000',
    +              'cScale1': '#00ff00',
    +              'cScale2': '#0000ff'
    +       } } }%%
    +       timeline
    +        title History of Social Media Platform
    +          2002 : LinkedIn
    +          2004 : Facebook : Google
    +          2005 : Youtube
    +          2006 : Twitter
    +          2007 : Tumblr
    +          2008 : Instagram
    +          2010 : Pinterest
    +
    +    
    +
      timeline
             title History of Social Media Platform
    diff --git a/packages/mermaid-timeline/src/mermaidUtils.ts b/packages/mermaid-timeline/src/mermaidUtils.ts
    index af3f97571a..b733507edb 100644
    --- a/packages/mermaid-timeline/src/mermaidUtils.ts
    +++ b/packages/mermaid-timeline/src/mermaidUtils.ts
    @@ -58,8 +58,7 @@ export const injectUtils = (
       _commonDb: any,
       _parseDirective: any
     ) => {
    -  _log.info('Mermaid utils injected into timeline-diagram');
    -  _log.info('123 ' , _parseDirective);
    +  _log.debug('Mermaid utils injected into timeline-diagram');
       log.trace = _log.trace;
       log.debug = _log.debug;
       log.info = _log.info;
    diff --git a/packages/mermaid-timeline/src/svgDraw.js b/packages/mermaid-timeline/src/svgDraw.js
    index bed0e29421..88f90401c8 100644
    --- a/packages/mermaid-timeline/src/svgDraw.js
    +++ b/packages/mermaid-timeline/src/svgDraw.js
    @@ -519,7 +519,7 @@ export const drawNode = function (elem, node, fullSection, conf) {
         'class',
         (node.class ? node.class + ' ' : '') +
           'timeline-node ' +
    -      (section < 0 ? 'section-root' : 'section-' + section)
    +      ('section-' + section)
       );
       const bkgElem = nodeElem.append('g');
     
    diff --git a/packages/mermaid-timeline/src/timelineDb.js b/packages/mermaid-timeline/src/timelineDb.js
    index e5de2aee39..b92715fe94 100644
    --- a/packages/mermaid-timeline/src/timelineDb.js
    +++ b/packages/mermaid-timeline/src/timelineDb.js
    @@ -90,7 +90,7 @@ const compileTasks = function () {
       }
       return allProcessed;
     };
    -log.info('456 parseDirective',parseDirective);
    +
     export default {
       clear,
       getCommonDb,
    diff --git a/packages/mermaid-timeline/src/timelineRenderer.ts b/packages/mermaid-timeline/src/timelineRenderer.ts
    index 5ed6c554e1..86a83f674f 100644
    --- a/packages/mermaid-timeline/src/timelineRenderer.ts
    +++ b/packages/mermaid-timeline/src/timelineRenderer.ts
    @@ -1,8 +1,6 @@
     // @ts-nocheck TODO: fix file
     import { select } from 'd3';
     import svgDraw from './svgDraw';
    -import addSVGAccessibilityFields from '../../accessibility';
    -
     import { log, getConfig, setupGraphViewbox } from './mermaidUtils';
     
     export const setConf = function (cnf) {
    @@ -17,15 +15,14 @@ export const draw = function (text, id, version, diagObj) {
       //1. Fetch the configuration
       const conf = getConfig();
       const LEFT_MARGIN = conf.leftMargin?conf.leftMargin:50;
    -  //log conf
    -  log.info('conf', conf);
    +
       //2. Clear the diagram db before parsing
       diagObj.db.clear();
     
       //3. Parse the diagram text
       diagObj.parser.parse(text + '\n');
     
    -  log.info('timeline', diagObj.db);
    +  log.debug('timeline', diagObj.db);
     
       const securityLevel = conf.securityLevel;
       // Handle root and Document for when rendering in sandbox mode
    @@ -45,17 +42,14 @@ export const draw = function (text, id, version, diagObj) {
       //4. Fetch the diagram data
       const tasks = diagObj.db.getTasks();
       const title = diagObj.db.getCommonDb().getDiagramTitle();
    -
    -  //log tasks
    -  log.info(tasks);
    +  log.debug('task',tasks);
     
       //5. Initialize the diagram
       svgDraw.initGraphics(svg);
     
       // fetch Sections
       const sections = diagObj.db.getSections();
    -  // log sections
    -  log.info(sections);
    +  log.debug('sections', sections);
     
       let maxSectionHeight = 0;
       let maxTaskHeight = 0;
    @@ -81,14 +75,14 @@ export const draw = function (text, id, version, diagObj) {
           maxHeight: maxSectionHeight,
         };
         const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf);
    -    log.info('sectionHeight before draw', sectionHeight);
    +    log.debug('sectionHeight before draw', sectionHeight);
         maxSectionHeight = Math.max(maxSectionHeight, sectionHeight +20);
       });
     
     //tasks length and maxEventCount
       let maxEventCount = 0;
       let maxEventLineLength = 0;
    -  log.info('tasks.length', tasks.length);
    +  log.debug('tasks.length', tasks.length);
        //calculate max task height
       // for loop till tasks.length
       for (const [i, task] of tasks.entries()) {
    @@ -102,7 +96,7 @@ export const draw = function (text, id, version, diagObj) {
           maxHeight: maxTaskHeight,
         };
         const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf);
    -    log.info('taskHeight before draw', taskHeight);
    +    log.debug('taskHeight before draw', taskHeight);
         maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);
     
         //calculate maxEventCount
    @@ -126,8 +120,8 @@ export const draw = function (text, id, version, diagObj) {
       }
     
     
    -  log.info('maxSectionHeight before draw', maxSectionHeight);
    -  log.info('maxTaskHeight before draw', maxTaskHeight);
    +  log.debug('maxSectionHeight before draw', maxSectionHeight);
    +  log.debug('maxTaskHeight before draw', maxTaskHeight);
     
       if (sections && sections.length > 0) {
         sections.forEach((section) => {
    @@ -140,11 +134,10 @@ export const draw = function (text, id, version, diagObj) {
             padding: 20,
             maxHeight: maxSectionHeight,
           };
    -      //log section node
    -      log.info('sectionNode', sectionNode);
    +      log.debug('sectionNode', sectionNode);
           const sectionNodeWrapper = svg.append('g');
           const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);
    -      log.info('sectionNode output', node);
    +      log.debug('sectionNode output', node);
     
           sectionNodeWrapper.attr(
             'transform',
    @@ -177,7 +170,7 @@ export const draw = function (text, id, version, diagObj) {
     
     // Get BBox of the diagram
       const box = svg.node().getBBox();
    -  log.info('bounds', box);
    +  log.debug('bounds', box);
     
       if (title) {
         svg
    @@ -223,14 +216,13 @@ export const drawTasks = function (diagram, tasks, sectionColor, masterX, master
           maxHeight: maxTaskHeight,
         };
     
    -    //log task node
    -    log.info('taskNode', taskNode);
    +    log.debug('taskNode', taskNode);
         // create task wrapper
         const taskWrapper = diagram.append('g').attr('class', 'taskWrapper');
         const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf);
         const taskHeight = node.height;
         //log task height
    -    log.info('taskHeight after draw', taskHeight);
    +    log.debug('taskHeight after draw', taskHeight);
         taskWrapper.attr(
           'transform',
           `translate(${masterX}, ${masterY})`
    @@ -294,7 +286,7 @@ export const drawEvents = function (diagram, events, sectionColor, masterX, mast
         };
     
         //log task node
    -    log.info('eventNode', eventNode);
    +    log.debug('eventNode', eventNode);
         // create event wrapper
         const eventWrapper = diagram.append('g').attr('class', 'eventWrapper');
         const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf)
    diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts
    index 574e72fbc6..69c4d81105 100644
    --- a/packages/mermaid/src/diagram-api/diagramAPI.ts
    +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts
    @@ -51,8 +51,6 @@ export const registerDiagram = (
       addStylesForDiagram(id, diagram.styles);
     
       if (diagram.injectUtils) {
    -    console.log('parseDirective', parseDirective);
    -
         diagram.injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewbox,getCommonDb(),parseDirective);
       }
     };
    diff --git a/packages/mermaid/src/directiveUtils.ts b/packages/mermaid/src/directiveUtils.ts
    index 79888daf9d..677647d445 100644
    --- a/packages/mermaid/src/directiveUtils.ts
    +++ b/packages/mermaid/src/directiveUtils.ts
    @@ -8,7 +8,7 @@ import { directiveSanitizer } from './utils';
     let currentDirective: { type?: string; args?: any } | undefined = {};
     
     export const parseDirective = function (p: any, statement: string, context: string, type: string): void {
    -  log.info('parseDirective is being called', statement, context, type);
    +  log.debug('parseDirective is being called', statement, context, type);
       try {
         if (statement !== undefined) {
           statement = statement.trim();
    diff --git a/packages/mermaid/src/docs/syntax/timeline.md b/packages/mermaid/src/docs/syntax/timeline.md
    index 3438b45426..44b72bd794 100644
    --- a/packages/mermaid/src/docs/syntax/timeline.md
    +++ b/packages/mermaid/src/docs/syntax/timeline.md
    @@ -140,7 +140,7 @@ mermaid.initialize({
     
     let us look at same example, where we have disabled the multiColor option.
     ```mermaid-example
    -   %%{init: { 'logLevel': 'debug', 'theme': 'base', 'timeline': {'disableMulticolor': true}}%%
    +   %%{init: { 'logLevel': 'debug', 'theme': 'base', 'timeline': {'disableMulticolor': true}}}%%
         timeline
             title History of Social Media Platform
               2002 : LinkedIn
    @@ -164,7 +164,7 @@ Now let's override the default values for the `cScale0` to `cScale2` variables:
         %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': {
                   'cScale0': '#ff0000',
                   'cScale1': '#00ff00',
    -              'cScale2': '#0000ff',
    +              'cScale2': '#0000ff'
            } } }%%
            timeline
             title History of Social Media Platform
    diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js
    index 969551ee6b..4fb8980409 100644
    --- a/packages/mermaid/src/themes/theme-default.js
    +++ b/packages/mermaid/src/themes/theme-default.js
    @@ -122,6 +122,7 @@ class Theme {
       updateColors() {
         /* Color Scale */
         /* Each color-set will have a background, a foreground and a border color */
    +
         this.cScale0 = this.cScale0 || this.primaryColor;
         this.cScale1 = this.cScale1 || this.secondaryColor;
         this.cScale2 = this.cScale2 || this.tertiaryColor;
    @@ -138,10 +139,9 @@ class Theme {
         this['cScalePeer' + 2] = this['cScalePeer' + 2] || darken(this.tertiaryColor, 40);
         for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
           // Setup the peer color for the set, useful for borders
    -      this['cScale' + i] = darken(this['cScale' + i], 10);
    +       this['cScale' + i] = darken(this['cScale' + i], 10);
           this['cScalePeer' + i] = this['cScalePeer' + i] || darken(this['cScale' + i], 25);
         }
    -
         // Setup the inverted color for the set
         for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
           this['cScaleInv' + i] = this['cScaleInv' + i] || adjust(this['cScale' + i], { h: 180 });
    
    From e865368649aa3ad75c75b8e45cc1e31e090735a2 Mon Sep 17 00:00:00 2001
    From: ashishj 
    Date: Thu, 19 Jan 2023 20:42:33 +0100
    Subject: [PATCH 0921/1038] Updating version and clean up  package.json
    
    ---
     packages/mermaid-timeline/package.json | 25 +++++++------------------
     1 file changed, 7 insertions(+), 18 deletions(-)
    
    diff --git a/packages/mermaid-timeline/package.json b/packages/mermaid-timeline/package.json
    index 0c2ebf1368..8447d19818 100644
    --- a/packages/mermaid-timeline/package.json
    +++ b/packages/mermaid-timeline/package.json
    @@ -1,14 +1,14 @@
     {
       "name": "@mermaid-js/mermaid-timeline",
    -  "version": "9.2.0-rc2",
    -  "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
    -  "main": "dist/mermaid-timeline.core.mjs",
    +  "version": "9.4.0",
    +  "description": "Timeline diagram module for Mermaid.js.",
       "module": "dist/mermaid-timeline.core.mjs",
    +  "types": "dist/detector.d.ts",
       "type": "module",
       "exports": {
         ".": {
    -      "require": "./dist/mermaid-timeline.min.js",
    -      "import": "./dist/mermaid-timeline.core.mjs"
    +      "import": "./dist/mermaid-timeline.core.mjs",
    +      "types": "./dist/detector.d.ts"
         },
         "./*": "./*"
       },
    @@ -19,24 +19,13 @@
         "mermaid"
       ],
       "scripts": {
    -    "clean": "rimraf dist",
    -    "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly",
    -    "build:watch": "yarn build:code --watch",
    -    "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"",
    -    "build": "yarn clean; yarn build:esbuild",
    -    "dev": "node .esbuild/serve.cjs",
    -    "release": "yarn build",
    -    "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .",
    -    "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .",
    -    "lint:jison": "ts-node-esm src/jison/lint.mts",
    -    "todo-prepare": "concurrently \"husky install ../../.husky\" \"yarn build\"",
    -    "todo-pre-commit": "lint-staged"
    +    "prepublishOnly": "pnpm -w run build"
       },
       "repository": {
         "type": "git",
         "url": "https://github.com/mermaid-js/mermaid"
       },
    -  "author": "Knut Sveidqvist",
    +  "author": "Ashish Jain",
       "license": "MIT",
       "standard": {
         "ignore": [
    
    From 3cd15cdcf2a2d6e81a296831323c57981fececfc Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Thu, 19 Jan 2023 20:50:36 +0100
    Subject: [PATCH 0922/1038] #4012 Handling rows with only spaces in them
    
    ---
     packages/mermaid-mindmap/src/mindmap.spec.js      | 12 ++++++++++++
     packages/mermaid-mindmap/src/parser/mindmap.jison |  5 ++++-
     2 files changed, 16 insertions(+), 1 deletion(-)
    
    diff --git a/packages/mermaid-mindmap/src/mindmap.spec.js b/packages/mermaid-mindmap/src/mindmap.spec.js
    index e3f018350b..2a2dd13bb8 100644
    --- a/packages/mermaid-mindmap/src/mindmap.spec.js
    +++ b/packages/mermaid-mindmap/src/mindmap.spec.js
    @@ -347,4 +347,16 @@ root
         expect(child.children.length).toEqual(2);
         expect(child.children[1].nodeId).toEqual('b');
       });
    +  it('MMP-23 Rows with only spaces should not interfere', function () {
    +    let str = 'mindmap\nroot\n A\n \n\n B';
    +    mindmap.parse(str);
    +    const mm = mindmap.yy.getMindmap();
    +    expect(mm.nodeId).toEqual('root');
    +    expect(mm.children.length).toEqual(2);
    +
    +    const child = mm.children[0];
    +    expect(child.nodeId).toEqual('A');
    +    const child2 = mm.children[1];
    +    expect(child2.nodeId).toEqual('B');
    +  });
     });
    diff --git a/packages/mermaid-mindmap/src/parser/mindmap.jison b/packages/mermaid-mindmap/src/parser/mindmap.jison
    index a96ee62614..651d9dc09b 100644
    --- a/packages/mermaid-mindmap/src/parser/mindmap.jison
    +++ b/packages/mermaid-mindmap/src/parser/mindmap.jison
    @@ -25,6 +25,7 @@
     \n				   { this.popState();}
     // [\s]*"::icon("   { this.begin('ICON'); }
     "::icon("   { yy.getLogger().trace('Begin icon');this.begin('ICON'); }
    +[\s]+[\n]     {yy.getLogger().trace('SPACELINE');return 'SPACELINE'                 /* skip all whitespace */    ;}
     [\n]+               return 'NL';
     [^\)]+			 { return 'ICON'; }
     \)				   {yy.getLogger().trace('end icon');this.popState();}
    @@ -72,6 +73,7 @@ start
     stop
       : NL {yy.getLogger().trace('Stop NL ');}
       | EOF {yy.getLogger().trace('Stop EOF ');}
    +  | SPACELINE
       | stop NL {yy.getLogger().trace('Stop NL2 ');}
       | stop EOF {yy.getLogger().trace('Stop EOF2 ');}
       ;
    @@ -81,9 +83,10 @@ document
     	;
     
     statement
    -	: SPACELIST node       { yy.getLogger().trace('Node: ',$2.id);yy.addNode($1.length, $2.id, $2.descr, $2.type);  }
    +	: SPACELIST node       { yy.getLogger().info('Node: ',$2.id);yy.addNode($1.length, $2.id, $2.descr, $2.type);  }
     	| SPACELIST ICON       { yy.getLogger().trace('Icon: ',$2);yy.decorateNode({icon: $2}); }
     	| SPACELIST CLASS      { yy.decorateNode({class: $2}); }
    +  | SPACELINE { yy.getLogger().trace('SPACELIST');}
     	| node					       { yy.getLogger().trace('Node: ',$1.id);yy.addNode(0, $1.id, $1.descr, $1.type);  }
     	| ICON                 { yy.decorateNode({icon: $1}); }
     	| CLASS                { yy.decorateNode({class: $1}); }
    
    From 7ef71cc04db5f855fe5d3a99f04727a3381febe3 Mon Sep 17 00:00:00 2001
    From: ashishj 
    Date: Thu, 19 Jan 2023 21:05:38 +0100
    Subject: [PATCH 0923/1038] Remove old test cases
    
    ---
     .../src/parser/timeline.spec.js               | 150 ------------------
     .../mermaid-timeline/src/timelineDb.spec.js   |  91 -----------
     2 files changed, 241 deletions(-)
     delete mode 100644 packages/mermaid-timeline/src/parser/timeline.spec.js
     delete mode 100644 packages/mermaid-timeline/src/timelineDb.spec.js
    
    diff --git a/packages/mermaid-timeline/src/parser/timeline.spec.js b/packages/mermaid-timeline/src/parser/timeline.spec.js
    deleted file mode 100644
    index cc54d9f78b..0000000000
    --- a/packages/mermaid-timeline/src/parser/timeline.spec.js
    +++ /dev/null
    @@ -1,150 +0,0 @@
    -import { parser } from './journey';
    -import journeyDb from '../journeyDb';
    -
    -const parserFnConstructor = (str) => {
    -  return () => {
    -    parser.parse(str);
    -  };
    -};
    -
    -describe('when parsing a journey diagram it', function () {
    -  beforeEach(function () {
    -    parser.yy = journeyDb;
    -    parser.yy.clear();
    -  });
    -
    -  it('should handle a title definition', function () {
    -    const str = 'journey\ntitle Adding journey diagram functionality to mermaid';
    -
    -    expect(parserFnConstructor(str)).not.toThrow();
    -  });
    -
    -  it('should handle an accessibility description (accDescr)', function () {
    -    const str =
    -      'journey\n' +
    -      'accDescr: A user journey for family shopping\n' +
    -      'title Adding journey diagram functionality to mermaid\n' +
    -      'section Order from website';
    -
    -    expect(parserFnConstructor(str)).not.toThrow();
    -  });
    -  it('should handle an accessibility multiline description (accDescr)', function () {
    -    const str =
    -      'journey\n' +
    -      `accDescr {
    -        A user journey for
    -        family shopping
    -      }` +
    -      'title Adding journey diagram functionality to mermaid\n' +
    -      'accTitle: Adding acc journey diagram functionality to mermaid\n' +
    -      'section Order from website';
    -
    -    expect(parserFnConstructor(str)).not.toThrow();
    -    expect(journeyDb.getAccDescription()).toBe('A user journey for\nfamily shopping');
    -    expect(journeyDb.getDiagramTitle()).toBe('Adding journey diagram functionality to mermaid');
    -    expect(journeyDb.getAccTitle()).toBe('Adding acc journey diagram functionality to mermaid');
    -  });
    -  it('should handle an accessibility title (accDescr)', function () {
    -    const str = `journey
    -    accTitle: The title
    -    section Order from website`;
    -
    -    expect(parserFnConstructor(str)).not.toThrow();
    -    expect(journeyDb.getAccDescription()).toBe('');
    -    expect(journeyDb.getAccTitle()).toBe('The title');
    -  });
    -
    -  it('should handle a section definition', function () {
    -    const str =
    -      'journey\n' +
    -      'title Adding journey diagram functionality to mermaid\n' +
    -      'section Order from website';
    -
    -    expect(parserFnConstructor(str)).not.toThrow();
    -  });
    -  it('should handle multiline section titles with different line breaks', function () {
    -    const str =
    -      'journey\n' +
    -      'title Adding gantt diagram functionality to mermaid\n' +
    -      'section Line1
    Line2
    Line3
    Line4Line5'; - - expect(parserFnConstructor(str)).not.toThrow(); - }); - - it('should handle a task definition', function () { - const str = - 'journey\n' + - 'title Adding journey diagram functionality to mermaid\n' + - 'section Documentation\n' + - 'A task: 5: Alice, Bob, Charlie\n' + - 'B task: 3:Bob, Charlie\n' + - 'C task: 5\n' + - 'D task: 5: Charlie, Alice\n' + - 'E task: 5:\n' + - 'section Another section\n' + - 'P task: 5:\n' + - 'Q task: 5:\n' + - 'R task: 5:'; - expect(parserFnConstructor(str)).not.toThrow(); - - const tasks = parser.yy.getTasks(); - expect(tasks.length).toEqual(8); - - expect(tasks[0]).toEqual({ - score: 5, - people: ['Alice', 'Bob', 'Charlie'], - section: 'Documentation', - task: 'A task', - type: 'Documentation', - }); - expect(tasks[1]).toEqual({ - score: 3, - people: ['Bob', 'Charlie'], - section: 'Documentation', - type: 'Documentation', - task: 'B task', - }); - expect(tasks[2]).toEqual({ - score: 5, - people: [], - section: 'Documentation', - type: 'Documentation', - task: 'C task', - }); - expect(tasks[3]).toEqual({ - score: 5, - people: ['Charlie', 'Alice'], - section: 'Documentation', - task: 'D task', - type: 'Documentation', - }); - expect(tasks[4]).toEqual({ - score: 5, - people: [''], - section: 'Documentation', - type: 'Documentation', - task: 'E task', - }); - expect(tasks[5]).toEqual({ - score: 5, - people: [''], - section: 'Another section', - type: 'Another section', - task: 'P task', - }); - expect(tasks[6]).toEqual({ - score: 5, - people: [''], - section: 'Another section', - type: 'Another section', - task: 'Q task', - }); - expect(tasks[7]).toEqual({ - score: 5, - people: [''], - section: 'Another section', - type: 'Another section', - task: 'R task', - }); - }); -}); diff --git a/packages/mermaid-timeline/src/timelineDb.spec.js b/packages/mermaid-timeline/src/timelineDb.spec.js deleted file mode 100644 index 3a17ca2029..0000000000 --- a/packages/mermaid-timeline/src/timelineDb.spec.js +++ /dev/null @@ -1,91 +0,0 @@ -import journeyDb from './journeyDb'; - -describe('when using the journeyDb', function () { - beforeEach(function () { - journeyDb.clear(); - }); - - describe('when calling the clear function', function () { - beforeEach(function () { - journeyDb.addSection('weekends skip test'); - journeyDb.addTask('test1', '4: id1, id3'); - journeyDb.addTask('test2', '2: id2'); - journeyDb.clear(); - }); - - it.each` - fn | expected - ${'getTasks'} | ${[]} - ${'getAccTitle'} | ${''} - ${'getSections'} | ${[]} - ${'getActors'} | ${[]} - `('should clear $fn', ({ fn, expected }) => { - expect(journeyDb[fn]()).toEqual(expected); - }); - }); - - describe('when calling the clear function', function () { - beforeEach(function () { - journeyDb.addSection('weekends skip test'); - journeyDb.addTask('test1', '3: id1, id3'); - journeyDb.addTask('test2', '1: id2'); - journeyDb.clear(); - }); - it.each` - fn | expected - ${'getTasks'} | ${[]} - ${'getAccTitle'} | ${''} - ${'getAccDescription'} | ${''} - ${'getSections'} | ${[]} - `('should clear $fn', ({ fn, expected }) => { - expect(journeyDb[fn]()).toEqual(expected); - }); - }); - - describe('tasks and actors should be added', function () { - journeyDb.setAccTitle('Shopping'); - journeyDb.setAccDescription('A user journey for family shopping'); - journeyDb.addSection('Journey to the shops'); - journeyDb.addTask('Get car keys', ':5:Dad'); - journeyDb.addTask('Go to car', ':3:Dad, Mum, Child#1, Child#2'); - journeyDb.addTask('Drive to supermarket', ':4:Dad'); - journeyDb.addSection('Do shopping'); - journeyDb.addTask('Go shopping', ':5:Mum'); - - expect(journeyDb.getAccTitle()).toEqual('Shopping'); - expect(journeyDb.getAccDescription()).toEqual('A user journey for family shopping'); - expect(journeyDb.getTasks()).toEqual([ - { - score: 5, - people: ['Dad'], - section: 'Journey to the shops', - task: 'Get car keys', - type: 'Journey to the shops', - }, - { - score: 3, - people: ['Dad', 'Mum', 'Child#1', 'Child#2'], - section: 'Journey to the shops', - task: 'Go to car', - type: 'Journey to the shops', - }, - { - score: 4, - people: ['Dad'], - section: 'Journey to the shops', - task: 'Drive to supermarket', - type: 'Journey to the shops', - }, - { - score: 5, - people: ['Mum'], - section: 'Do shopping', - task: 'Go shopping', - type: 'Do shopping', - }, - ]); - expect(journeyDb.getActors()).toEqual(['Child#1', 'Child#2', 'Dad', 'Mum']); - - expect(journeyDb.getSections()).toEqual(['Journey to the shops', 'Do shopping']); - }); -}); From 96d5bc7695f6e823d79ef2bc3c831ce46bc0941e Mon Sep 17 00:00:00 2001 From: cnjeftia Date: Fri, 20 Jan 2023 11:29:16 +0800 Subject: [PATCH 0924/1038] docs: minor fix on markdown --- packages/mermaid/README.zh-CN.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md index f34c7a6471..9f709a81a7 100644 --- a/packages/mermaid/README.zh-CN.md +++ b/packages/mermaid/README.zh-CN.md @@ -325,7 +325,9 @@ _很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在 来自 Knut Sveidqvist: -> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库! _ >_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ >_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ +> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ +>_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ +>_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ > > _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ From 5925d8b731444b67e6ef8f757d8abf2f9ab08fcb Mon Sep 17 00:00:00 2001 From: cnjeftia Date: Fri, 20 Jan 2023 11:45:11 +0800 Subject: [PATCH 0925/1038] docs: minor fix on markdown in root folder --- README.zh-CN.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 6b3e28b192..8b254dd500 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -325,7 +325,9 @@ _很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在 来自 Knut Sveidqvist: -> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库! _ >_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ >_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ +> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ +>_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ +>_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ > > _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ From 023f2354cdd659fc9827a567342ded4ed6df7579 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 20 Jan 2023 08:31:01 +0100 Subject: [PATCH 0926/1038] --- cypress/platform/knsv2.html | 36 ++++++++++++++++--------- packages/mermaid-mindmap/src/svgDraw.js | 6 ++--- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index afc12dbe93..e281846277 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -54,7 +54,7 @@ -
    +    
     %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
     graph TB
           a --> b
    @@ -62,14 +62,14 @@
           b --> d
           c --> d
         
    -
    +    
     flowchart-elk TB
           a --> b
           a --> c
           b --> d
           c --> d
         
    -
    +    
     %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
     flowchart TB
       %% I could not figure out how to use double quotes in labels in Mermaid
    @@ -125,7 +125,7 @@
     

    -
    +    
     flowchart TB
       %% I could not figure out how to use double quotes in labels in Mermaid
       subgraph ibm[IBM Espresso CPU]
    @@ -227,14 +227,24 @@
         Customer->>+Merchant: Receives goods or services
             
    -
    -      gantt
    -        title Style today marker (vertical line should be 5px wide and half-transparent blue)
    -        dateFormat YYYY-MM-DD
    -        axisFormat %d
    -        todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
    -        section Section1
    -        Today: 1, -1h
    +    
    +mindmap
    +  root((mindmap))
    +    Origins
    +      Long history
    +      ::icon(fa fa-book)
    +      Popularisation
    +        British popular psychology author Tony Buzan
    +    Research
    +      On effectiveness
    and features + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid
    @@ -252,7 +262,7 @@ // console.error('Mermaid error: ', err); }; mermaid.initialize({ - // theme: 'forest', + theme: 'dark', startOnLoad: true, logLevel: 0, flowchart: { diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid-mindmap/src/svgDraw.js index d4f57f1f17..e4a52ad98d 100644 --- a/packages/mermaid-mindmap/src/svgDraw.js +++ b/packages/mermaid-mindmap/src/svgDraw.js @@ -203,14 +203,12 @@ const roundedRectBkg = function (elem, node) { * @returns {number} The height nodes dom element */ export const drawNode = function (elem, node, fullSection, conf) { - const section = (fullSection % MAX_SECTIONS) - 1; + const section = fullSection % MAX_SECTIONS; const nodeElem = elem.append('g'); node.section = section; nodeElem.attr( 'class', - (node.class ? node.class + ' ' : '') + - 'mindmap-node ' + - (section < 0 ? 'section-root' : 'section-' + section) + (node.class ? node.class + ' ' : '') + 'mindmap-node ' + ('section-' + section) ); const bkgElem = nodeElem.append('g'); From 80903e427ce2031002e2ac15f28bdf8d34cdc381 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 20 Jan 2023 10:18:26 +0100 Subject: [PATCH 0927/1038] #4012 Allowing multiple lines before the mindmap statement --- packages/mermaid-mindmap/src/mindmap.spec.js | 12 ++++++++++++ packages/mermaid-mindmap/src/parser/mindmap.jison | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/mermaid-mindmap/src/mindmap.spec.js b/packages/mermaid-mindmap/src/mindmap.spec.js index 2a2dd13bb8..292d7ebf81 100644 --- a/packages/mermaid-mindmap/src/mindmap.spec.js +++ b/packages/mermaid-mindmap/src/mindmap.spec.js @@ -354,6 +354,18 @@ root expect(mm.nodeId).toEqual('root'); expect(mm.children.length).toEqual(2); + const child = mm.children[0]; + expect(child.nodeId).toEqual('A'); + const child2 = mm.children[1]; + expect(child2.nodeId).toEqual('B'); + }); + it('MMP-24 Handle rows above the mindmap declarations', function () { + let str = '\n \nmindmap\nroot\n A\n \n\n B'; + mindmap.parse(str); + const mm = mindmap.yy.getMindmap(); + expect(mm.nodeId).toEqual('root'); + expect(mm.children.length).toEqual(2); + const child = mm.children[0]; expect(child.nodeId).toEqual('A'); const child2 = mm.children[1]; diff --git a/packages/mermaid-mindmap/src/parser/mindmap.jison b/packages/mermaid-mindmap/src/parser/mindmap.jison index 651d9dc09b..b604d3b1eb 100644 --- a/packages/mermaid-mindmap/src/parser/mindmap.jison +++ b/packages/mermaid-mindmap/src/parser/mindmap.jison @@ -67,9 +67,16 @@ start // %{ : info document 'EOF' { return yy; } } : MINDMAP document { return yy; } | MINDMAP NL document { return yy; } - | SPACELIST MINDMAP document { return yy; } + | spaceLines MINDMAP document { return yy; } + | spaceLines MINDMAP NL document { return yy; } ; +spaceLines + : SPACELINE + | spaceLines SPACELINE + | spaceLines NL + ; + stop : NL {yy.getLogger().trace('Stop NL ');} | EOF {yy.getLogger().trace('Stop EOF ');} From bc56a7d4f1a9a171d5b70e6f3cf8fccfbf70c9f4 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 20 Jan 2023 10:21:13 +0100 Subject: [PATCH 0928/1038] #4012 Neater grammar for the rows before mindmap --- packages/mermaid-mindmap/src/mindmap.spec.js | 12 ++++++++++++ packages/mermaid-mindmap/src/parser/mindmap.jison | 13 ++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/packages/mermaid-mindmap/src/mindmap.spec.js b/packages/mermaid-mindmap/src/mindmap.spec.js index 292d7ebf81..753804a5de 100644 --- a/packages/mermaid-mindmap/src/mindmap.spec.js +++ b/packages/mermaid-mindmap/src/mindmap.spec.js @@ -366,6 +366,18 @@ root expect(mm.nodeId).toEqual('root'); expect(mm.children.length).toEqual(2); + const child = mm.children[0]; + expect(child.nodeId).toEqual('A'); + const child2 = mm.children[1]; + expect(child2.nodeId).toEqual('B'); + }); + it('MMP-25 Handle rows above the mindmap declarations, no space', function () { + let str = '\n\n\nmindmap\nroot\n A\n \n\n B'; + mindmap.parse(str); + const mm = mindmap.yy.getMindmap(); + expect(mm.nodeId).toEqual('root'); + expect(mm.children.length).toEqual(2); + const child = mm.children[0]; expect(child.nodeId).toEqual('A'); const child2 = mm.children[1]; diff --git a/packages/mermaid-mindmap/src/parser/mindmap.jison b/packages/mermaid-mindmap/src/parser/mindmap.jison index b604d3b1eb..d2f6bbf1af 100644 --- a/packages/mermaid-mindmap/src/parser/mindmap.jison +++ b/packages/mermaid-mindmap/src/parser/mindmap.jison @@ -65,11 +65,9 @@ start // %{ : info document 'EOF' { return yy; } } - : MINDMAP document { return yy; } - | MINDMAP NL document { return yy; } - | spaceLines MINDMAP document { return yy; } - | spaceLines MINDMAP NL document { return yy; } - ; + : mindMap + | spaceLines mindMap + ; spaceLines : SPACELINE @@ -77,6 +75,11 @@ spaceLines | spaceLines NL ; +mindMap + : MINDMAP document { return yy; } + | MINDMAP NL document { return yy; } + ; + stop : NL {yy.getLogger().trace('Stop NL ');} | EOF {yy.getLogger().trace('Stop EOF ');} From de8928b2d92e1684691682d339e2e17700939275 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 20 Jan 2023 12:48:06 +0100 Subject: [PATCH 0929/1038] #4016 Fix for max_sections in mindmap renderer --- packages/mermaid-mindmap/src/svgDraw.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid-mindmap/src/svgDraw.js index e4a52ad98d..79eab6e1da 100644 --- a/packages/mermaid-mindmap/src/svgDraw.js +++ b/packages/mermaid-mindmap/src/svgDraw.js @@ -203,7 +203,7 @@ const roundedRectBkg = function (elem, node) { * @returns {number} The height nodes dom element */ export const drawNode = function (elem, node, fullSection, conf) { - const section = fullSection % MAX_SECTIONS; + const section = fullSection % (MAX_SECTIONS - 1); const nodeElem = elem.append('g'); node.section = section; nodeElem.attr( @@ -303,7 +303,7 @@ export const drawNode = function (elem, node, fullSection, conf) { }; export const drawEdge = function drawEdge(edgesElem, mindmap, parent, depth, fullSection) { - const section = (fullSection % MAX_SECTIONS) - 1; + const section = fullSection % (MAX_SECTIONS - 1); const sx = parent.x + parent.width / 2; const sy = parent.y + parent.height / 2; const ex = mindmap.x + mindmap.width / 2; From b26cdb3e46901ec433701a21123391a3b845c6e2 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Tue, 3 Jan 2023 05:59:24 +0000 Subject: [PATCH 0930/1038] build(docs): support YAML frontmatter in markdown Vitepress uses YAML frontmatter to configure Vitepress specific settings, see https://vitepress.vuejs.org/config/frontmatter-configs We just need to use `remark-frontmatter` to add support for it. GitHub also renders the YAML front-matter nicely in a table automatically, but maybe we should instead strip it, if it's only used by Vitepress? --- packages/mermaid/package.json | 1 + packages/mermaid/src/docs.mts | 7 ++++-- pnpm-lock.yaml | 45 +++++++++++++++++++++++++++++++---- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index c5699ae281..f7eff67318 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -90,6 +90,7 @@ "path-browserify": "^1.0.1", "prettier": "^2.7.1", "remark": "^14.0.2", + "remark-frontmatter": "^4.0.1", "remark-gfm": "^3.0.1", "rimraf": "^3.0.2", "start-server-and-test": "^1.14.0", diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 99da3f3813..7a32e34ee0 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -38,14 +38,17 @@ import type { Code, Root } from 'mdast'; import { posix, dirname, relative, join } from 'path'; import prettier from 'prettier'; import { remark as remarkBuilder } from 'remark'; +import remarkFrontmatter from 'remark-frontmatter'; import remarkGfm from 'remark-gfm'; import chokidar from 'chokidar'; import mm from 'micromatch'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; -// support tables and other GitHub Flavored Markdown syntax in markdown -const remark = remarkBuilder().use(remarkGfm); +const remark = remarkBuilder() + // support tables and other GitHub Flavored Markdown syntax in markdown + .use(remarkGfm) + .use(remarkFrontmatter, ['yaml']); // support YAML front-matter in Markdown const MERMAID_MAJOR_VERSION = ( JSON.parse(readFileSync('../mermaid/package.json', 'utf8')).version as string diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfc7885973..7ab8e73405 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -275,6 +275,9 @@ importers: remark: specifier: ^14.0.2 version: 14.0.2 + remark-frontmatter: + specifier: ^4.0.1 + version: 4.0.1 remark-gfm: specifier: ^3.0.1 version: 3.0.1 @@ -3970,7 +3973,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -6663,6 +6666,12 @@ packages: reusify: 1.0.4 dev: true + /fault/2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + dependencies: + format: 0.2.2 + dev: true + /faye-websocket/0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} @@ -6762,7 +6771,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2_debug@4.3.2: + /follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6770,8 +6779,6 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -6813,6 +6820,11 @@ packages: mime-types: 2.1.35 dev: true + /format/0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + dev: true + /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -7306,7 +7318,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -8747,6 +8759,12 @@ packages: - supports-color dev: true + /mdast-util-frontmatter/1.0.0: + resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} + dependencies: + micromark-extension-frontmatter: 1.0.0 + dev: true + /mdast-util-gfm-autolink-literal/1.0.2: resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} dependencies: @@ -8917,6 +8935,14 @@ packages: uvu: 0.5.6 dev: true + /micromark-extension-frontmatter/1.0.0: + resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} + dependencies: + fault: 2.0.1 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + dev: true + /micromark-extension-gfm-autolink-literal/1.0.3: resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} dependencies: @@ -10148,6 +10174,15 @@ packages: jsesc: 0.5.0 dev: true + /remark-frontmatter/4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-frontmatter: 1.0.0 + micromark-extension-frontmatter: 1.0.0 + unified: 10.1.2 + dev: true + /remark-gfm/3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: From 8f4caa4537417bea52a551d6ac333825e2639519 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sat, 14 Jan 2023 01:57:59 +0000 Subject: [PATCH 0931/1038] refactor(docs): use remark-compatible plugin Change the `transformBlocks` function, which transforms a markdown str, and instead making it into a `transformMarkdownAst` function, which transforms a Markdown AST. This means we can use the remark/unifiedjs plugin infrastructure, see https://unifiedjs.com/learn/guide/create-a-plugin/ --- packages/mermaid/src/docs.mts | 83 +++++++++++++++---------------- packages/mermaid/src/docs.spec.ts | 50 +++++++------------ 2 files changed, 59 insertions(+), 74 deletions(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 7a32e34ee0..4fe18001b9 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -37,7 +37,7 @@ import { JSDOM } from 'jsdom'; import type { Code, Root } from 'mdast'; import { posix, dirname, relative, join } from 'path'; import prettier from 'prettier'; -import { remark as remarkBuilder } from 'remark'; +import { remark } from 'remark'; import remarkFrontmatter from 'remark-frontmatter'; import remarkGfm from 'remark-gfm'; import chokidar from 'chokidar'; @@ -45,11 +45,6 @@ import mm from 'micromatch'; // @ts-ignore No typescript declaration file import flatmap from 'unist-util-flatmap'; -const remark = remarkBuilder() - // support tables and other GitHub Flavored Markdown syntax in markdown - .use(remarkGfm) - .use(remarkFrontmatter, ['yaml']); // support YAML front-matter in Markdown - const MERMAID_MAJOR_VERSION = ( JSON.parse(readFileSync('../mermaid/package.json', 'utf8')).version as string ).split('.')[0]; @@ -205,47 +200,45 @@ const transformIncludeStatements = (file: string, text: string): string => { }; /** - * Transform code blocks in a Markdown file. - * Use remark.parse() to turn the given content (a String) into an AST. + * Remark plugin that transforms code blocks in a Markdown file. + * * For any AST node that is a code block: transform it as needed: * - blocks marked as MERMAID_DIAGRAM_ONLY will be set to a 'mermaid' code block so it will be rendered as (only) a diagram * - blocks marked as MERMAID_EXAMPLE_KEYWORDS will be copied and the original node will be a code only block and the copy with be rendered as the diagram * - blocks marked as BLOCK_QUOTE_KEYWORDS will be transformed into block quotes * - * Convert the AST back to a string and return it. - * - * @param content - the contents of a Markdown file - * @returns the contents with transformed code blocks + * @returns plugin function for Remark */ -export const transformBlocks = (content: string): string => { - const ast: Root = remark.parse(content); - const astWithTransformedBlocks = flatmap(ast, (node: Code) => { - if (node.type !== 'code' || !node.lang) { - return [node]; // no transformation if this is not a code block - } - - if (node.lang === MERMAID_DIAGRAM_ONLY) { - // Set the lang to 'mermaid' so it will be rendered as a diagram. - node.lang = MERMAID_KEYWORD; - return [node]; - } else if (MERMAID_EXAMPLE_KEYWORDS.includes(node.lang)) { - // Return 2 nodes: - // 1. the original node with the language now set to 'mermaid-example' (will be rendered as code), and - // 2. a copy of the original node with the language set to 'mermaid' (will be rendered as a diagram) - node.lang = MERMAID_CODE_ONLY_KEYWORD; - return [node, Object.assign({}, node, { lang: MERMAID_KEYWORD })]; - } - - // Transform these blocks into block quotes. - if (BLOCK_QUOTE_KEYWORDS.includes(node.lang)) { - return [remark.parse(transformToBlockQuote(node.value, node.lang, node.meta))]; - } - - return [node]; // default is to do nothing to the node - }); - - return remark.stringify(astWithTransformedBlocks); -}; +export function transformMarkdownAst() { + return (tree: Root, _file?: any): Root => { + const astWithTransformedBlocks = flatmap(tree, (node: Code) => { + if (node.type !== 'code' || !node.lang) { + return [node]; // no transformation if this is not a code block + } + + if (node.lang === MERMAID_DIAGRAM_ONLY) { + // Set the lang to 'mermaid' so it will be rendered as a diagram. + node.lang = MERMAID_KEYWORD; + return [node]; + } else if (MERMAID_EXAMPLE_KEYWORDS.includes(node.lang)) { + // Return 2 nodes: + // 1. the original node with the language now set to 'mermaid-example' (will be rendered as code), and + // 2. a copy of the original node with the language set to 'mermaid' (will be rendered as a diagram) + node.lang = MERMAID_CODE_ONLY_KEYWORD; + return [node, Object.assign({}, node, { lang: MERMAID_KEYWORD })]; + } + + // Transform these blocks into block quotes. + if (BLOCK_QUOTE_KEYWORDS.includes(node.lang)) { + return [remark.parse(transformToBlockQuote(node.value, node.lang, node.meta))]; + } + + return [node]; // default is to do nothing to the node + }); + + return astWithTransformedBlocks; + }; +} /** * Transform a markdown file and write the transformed file to the directory for published @@ -263,7 +256,13 @@ export const transformBlocks = (content: string): string => { */ const transformMarkdown = (file: string) => { const doc = injectPlaceholders(transformIncludeStatements(file, readSyncedUTF8file(file))); - let transformed = transformBlocks(doc); + + let transformed = remark() + .use(remarkGfm) + .use(remarkFrontmatter, ['yaml']) // support YAML front-matter in Markdown + .use(transformMarkdownAst) // mermaid project specific plugin + .processSync(doc).toString(); + if (!noHeader) { // Add the header to the start of the file transformed = `${generateHeader(file)}\n${transformed}`; diff --git a/packages/mermaid/src/docs.spec.ts b/packages/mermaid/src/docs.spec.ts index ea5f54d692..5b47146d58 100644 --- a/packages/mermaid/src/docs.spec.ts +++ b/packages/mermaid/src/docs.spec.ts @@ -1,40 +1,20 @@ -import { transformBlocks, transformToBlockQuote } from './docs.mjs'; +import { transformMarkdownAst, transformToBlockQuote } from './docs.mjs'; + import { remark as remarkBuilder } from 'remark'; // import it this way so we can mock it import { vi, afterEach, describe, it, expect } from 'vitest'; -const remark = remarkBuilder(); - -vi.mock('remark', async (importOriginal) => { - const { remark: originalRemarkBuilder } = (await importOriginal()) as { - remark: typeof remarkBuilder; - }; - - // make sure that both `docs.mts` and this test file are using the same remark - // object so that we can mock it - const sharedRemark = originalRemarkBuilder(); - return { - remark: () => sharedRemark, - }; -}); - afterEach(() => { vi.restoreAllMocks(); }); describe('docs.mts', () => { - describe('transformBlocks', () => { - it('uses remark.parse to create the AST for the file ', () => { - const remarkParseSpy = vi - .spyOn(remark, 'parse') - .mockReturnValue({ type: 'root', children: [] }); - const contents = 'Markdown file contents'; - transformBlocks(contents); - expect(remarkParseSpy).toHaveBeenCalledWith(contents); - }); + describe('transformMarkdownAst', () => { describe('checks each AST node', () => { it('does no transformation if there are no code blocks', async () => { const contents = 'Markdown file contents\n'; - const result = transformBlocks(contents); + const result = ( + await remarkBuilder().use(transformMarkdownAst).process(contents) + ).toString(); expect(result).toEqual(contents); }); @@ -46,8 +26,10 @@ describe('docs.mts', () => { const lang_keyword = 'mermaid-nocode'; const contents = beforeCodeLine + '```' + lang_keyword + '\n' + diagram_text + '\n```\n'; - it('changes the language to "mermaid"', () => { - const result = transformBlocks(contents); + it('changes the language to "mermaid"', async () => { + const result = ( + await remarkBuilder().use(transformMarkdownAst).process(contents) + ).toString(); expect(result).toEqual( beforeCodeLine + '\n' + '```' + 'mermaid' + '\n' + diagram_text + '\n```\n' ); @@ -61,8 +43,10 @@ describe('docs.mts', () => { const contents = beforeCodeLine + '```' + lang_keyword + '\n' + diagram_text + '\n```\n'; - it('changes the language to "mermaid-example" and adds a copy of the code block with language = "mermaid"', () => { - const result = transformBlocks(contents); + it('changes the language to "mermaid-example" and adds a copy of the code block with language = "mermaid"', async () => { + const result = ( + await remarkBuilder().use(transformMarkdownAst).process(contents) + ).toString(); expect(result).toEqual( beforeCodeLine + '\n' + @@ -77,12 +61,14 @@ describe('docs.mts', () => { }); }); - it('calls transformToBlockQuote with the node information', () => { + it('calls transformToBlockQuote with the node information', async () => { const lang_keyword = 'note'; const contents = beforeCodeLine + '```' + lang_keyword + '\n' + 'This is the text\n' + '```\n'; - const result = transformBlocks(contents); + const result = ( + await remarkBuilder().use(transformMarkdownAst).process(contents) + ).toString(); expect(result).toEqual(beforeCodeLine + '\n> **Note**\n' + '> This is the text\n'); }); }); From 2f1a521db65d7fe77bcf050c24469db43a573b3d Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 19 Jan 2023 00:06:58 +0000 Subject: [PATCH 0932/1038] build(docs): add auto-generated header after YAML Add the auto-generated header after any YAML front-matter blocks. YAML front-matter is normally only valid in Markdown when it's at the beginning of the Markdown file. GitHub/Vitepress may otherwise render it incorrectly. --- packages/mermaid/src/docs.mts | 40 ++++++++++++++++++++++++------- packages/mermaid/src/docs.spec.ts | 14 +++++++---- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 4fe18001b9..07f393df14 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -199,17 +199,32 @@ const transformIncludeStatements = (file: string, text: string): string => { }); }; +/** Options for {@link transformMarkdownAst} */ +interface TransformMarkdownAstOptions { + /** + * Used to indicate the original/source file. + */ + originalFilename: string; + /** If `true`, add a warning that the file is autogenerated */ + addAutogeneratedWarning?: boolean; +} + /** - * Remark plugin that transforms code blocks in a Markdown file. + * Remark plugin that transforms mermaid repo markdown to Vitepress/GFM markdown. * * For any AST node that is a code block: transform it as needed: * - blocks marked as MERMAID_DIAGRAM_ONLY will be set to a 'mermaid' code block so it will be rendered as (only) a diagram * - blocks marked as MERMAID_EXAMPLE_KEYWORDS will be copied and the original node will be a code only block and the copy with be rendered as the diagram * - blocks marked as BLOCK_QUOTE_KEYWORDS will be transformed into block quotes * + * If `addAutogeneratedWarning` is `true`, generates a header stating that this file is autogenerated. + * * @returns plugin function for Remark */ -export function transformMarkdownAst() { +export function transformMarkdownAst({ + originalFilename, + addAutogeneratedWarning, +}: TransformMarkdownAstOptions) { return (tree: Root, _file?: any): Root => { const astWithTransformedBlocks = flatmap(tree, (node: Code) => { if (node.type !== 'code' || !node.lang) { @@ -236,6 +251,17 @@ export function transformMarkdownAst() { return [node]; // default is to do nothing to the node }); + if (addAutogeneratedWarning) { + // Add the header to the start of the file + const headerNode = remark.parse(generateHeader(originalFilename)).children[0]; + if (astWithTransformedBlocks.children[0].type === 'yaml') { + // insert header after the YAML frontmatter if it exists + astWithTransformedBlocks.children.splice(1, 0, headerNode); + } else { + astWithTransformedBlocks.children.unshift(headerNode); + } + } + return astWithTransformedBlocks; }; } @@ -260,13 +286,9 @@ const transformMarkdown = (file: string) => { let transformed = remark() .use(remarkGfm) .use(remarkFrontmatter, ['yaml']) // support YAML front-matter in Markdown - .use(transformMarkdownAst) // mermaid project specific plugin - .processSync(doc).toString(); - - if (!noHeader) { - // Add the header to the start of the file - transformed = `${generateHeader(file)}\n${transformed}`; - } + .use(transformMarkdownAst, { originalFilename: file, addAutogeneratedWarning: !noHeader }) // mermaid project specific plugin + .processSync(doc) + .toString(); if (vitepress && file === 'src/docs/index.md') { // Skip transforming index if vitepress is enabled diff --git a/packages/mermaid/src/docs.spec.ts b/packages/mermaid/src/docs.spec.ts index 5b47146d58..1ce708e935 100644 --- a/packages/mermaid/src/docs.spec.ts +++ b/packages/mermaid/src/docs.spec.ts @@ -7,13 +7,15 @@ afterEach(() => { vi.restoreAllMocks(); }); +const originalFilename = 'example-input-filename.md'; + describe('docs.mts', () => { describe('transformMarkdownAst', () => { describe('checks each AST node', () => { it('does no transformation if there are no code blocks', async () => { const contents = 'Markdown file contents\n'; const result = ( - await remarkBuilder().use(transformMarkdownAst).process(contents) + await remarkBuilder().use(transformMarkdownAst, { originalFilename }).process(contents) ).toString(); expect(result).toEqual(contents); }); @@ -28,7 +30,9 @@ describe('docs.mts', () => { it('changes the language to "mermaid"', async () => { const result = ( - await remarkBuilder().use(transformMarkdownAst).process(contents) + await remarkBuilder() + .use(transformMarkdownAst, { originalFilename }) + .process(contents) ).toString(); expect(result).toEqual( beforeCodeLine + '\n' + '```' + 'mermaid' + '\n' + diagram_text + '\n```\n' @@ -45,7 +49,9 @@ describe('docs.mts', () => { it('changes the language to "mermaid-example" and adds a copy of the code block with language = "mermaid"', async () => { const result = ( - await remarkBuilder().use(transformMarkdownAst).process(contents) + await remarkBuilder() + .use(transformMarkdownAst, { originalFilename }) + .process(contents) ).toString(); expect(result).toEqual( beforeCodeLine + @@ -67,7 +73,7 @@ describe('docs.mts', () => { beforeCodeLine + '```' + lang_keyword + '\n' + 'This is the text\n' + '```\n'; const result = ( - await remarkBuilder().use(transformMarkdownAst).process(contents) + await remarkBuilder().use(transformMarkdownAst, { originalFilename }).process(contents) ).toString(); expect(result).toEqual(beforeCodeLine + '\n> **Note**\n' + '> This is the text\n'); }); From 76c3716b2d070762208968fab2313025612197d0 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Tue, 3 Jan 2023 06:03:27 +0000 Subject: [PATCH 0933/1038] docs: add vitepress metadata to flowchart docs Changes the title in Vitepress, as well as using `outline: "deep"` for a better outline/table-of-contents for the page. See https://vitepress.vuejs.org/config/theme-configs#outline for docs on what `outline: "deep"` does. --- docs/syntax/flowchart.md | 5 +++++ packages/mermaid/src/docs/syntax/flowchart.md | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md index 0ef94d24b4..b31b27c477 100644 --- a/docs/syntax/flowchart.md +++ b/docs/syntax/flowchart.md @@ -1,3 +1,8 @@ +--- +title: Flowcharts Syntax +outline: 'deep' # shows all h3 headings in outline in Vitepress +--- + > **Warning** > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md index 9a0e7bc247..4ca3c5466b 100644 --- a/packages/mermaid/src/docs/syntax/flowchart.md +++ b/packages/mermaid/src/docs/syntax/flowchart.md @@ -1,3 +1,8 @@ +--- +title: Flowcharts Syntax +outline: 'deep' # shows all h3 headings in outline in Vitepress +--- + # Flowcharts - Basic Syntax All Flowcharts are composed of **nodes**, the geometric shapes and **edges**, the arrows or lines. The mermaid code defines the way that these **nodes** and **edges** are made and interact. From 816f2f512e4ff85d9ce9be8b25f0686815640c23 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 22 Jan 2023 19:12:13 +0000 Subject: [PATCH 0934/1038] build(docs): hide YAML when building for GitHub YAML front-matter is currently only used for Vitepress. Because of that, to avoid confusion, we can remove this YAML front-matter when converting the Markdown in packages/mermaid/src/docs to go into the `docs/` folder for GitHub browsing. --- docs/syntax/flowchart.md | 5 ----- packages/mermaid/src/docs.mts | 23 +++++++++++++++++++++-- packages/mermaid/src/docs.spec.ts | 26 +++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md index b31b27c477..0ef94d24b4 100644 --- a/docs/syntax/flowchart.md +++ b/docs/syntax/flowchart.md @@ -1,8 +1,3 @@ ---- -title: Flowcharts Syntax -outline: 'deep' # shows all h3 headings in outline in Vitepress ---- - > **Warning** > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. diff --git a/packages/mermaid/src/docs.mts b/packages/mermaid/src/docs.mts index 07f393df14..e221984b33 100644 --- a/packages/mermaid/src/docs.mts +++ b/packages/mermaid/src/docs.mts @@ -207,6 +207,11 @@ interface TransformMarkdownAstOptions { originalFilename: string; /** If `true`, add a warning that the file is autogenerated */ addAutogeneratedWarning?: boolean; + /** + * If `true`, remove the YAML metadata from the Markdown input. + * Generally, YAML metadata is only used for Vitepress. + */ + removeYAML?: boolean; } /** @@ -224,6 +229,7 @@ interface TransformMarkdownAstOptions { export function transformMarkdownAst({ originalFilename, addAutogeneratedWarning, + removeYAML, }: TransformMarkdownAstOptions) { return (tree: Root, _file?: any): Root => { const astWithTransformedBlocks = flatmap(tree, (node: Code) => { @@ -249,7 +255,7 @@ export function transformMarkdownAst({ } return [node]; // default is to do nothing to the node - }); + }) as Root; if (addAutogeneratedWarning) { // Add the header to the start of the file @@ -262,6 +268,14 @@ export function transformMarkdownAst({ } } + if (removeYAML) { + const firstNode = astWithTransformedBlocks.children[0]; + if (firstNode.type == 'yaml') { + // YAML is currently only used for Vitepress metadata, so we should remove it for GFM output + astWithTransformedBlocks.children.shift(); + } + } + return astWithTransformedBlocks; }; } @@ -286,7 +300,12 @@ const transformMarkdown = (file: string) => { let transformed = remark() .use(remarkGfm) .use(remarkFrontmatter, ['yaml']) // support YAML front-matter in Markdown - .use(transformMarkdownAst, { originalFilename: file, addAutogeneratedWarning: !noHeader }) // mermaid project specific plugin + .use(transformMarkdownAst, { + // mermaid project specific plugin + originalFilename: file, + addAutogeneratedWarning: !noHeader, + removeYAML: !noHeader, + }) .processSync(doc) .toString(); diff --git a/packages/mermaid/src/docs.spec.ts b/packages/mermaid/src/docs.spec.ts index 1ce708e935..50feaee6ad 100644 --- a/packages/mermaid/src/docs.spec.ts +++ b/packages/mermaid/src/docs.spec.ts @@ -1,6 +1,7 @@ import { transformMarkdownAst, transformToBlockQuote } from './docs.mjs'; -import { remark as remarkBuilder } from 'remark'; // import it this way so we can mock it +import { remark } from 'remark'; // import it this way so we can mock it +import remarkFrontmatter from 'remark-frontmatter'; import { vi, afterEach, describe, it, expect } from 'vitest'; afterEach(() => { @@ -8,6 +9,7 @@ afterEach(() => { }); const originalFilename = 'example-input-filename.md'; +const remarkBuilder = remark().use(remarkFrontmatter, ['yaml']); // support YAML front-matter in Markdown describe('docs.mts', () => { describe('transformMarkdownAst', () => { @@ -79,6 +81,28 @@ describe('docs.mts', () => { }); }); }); + + it('should remove YAML if `removeYAML` is true', async () => { + const contents = `--- +title: Flowcharts Syntax +--- + +This Markdown should be kept. +`; + const withYaml = ( + await remarkBuilder().use(transformMarkdownAst, { originalFilename }).process(contents) + ).toString(); + // no change + expect(withYaml).toEqual(contents); + + const withoutYaml = ( + await remarkBuilder() + .use(transformMarkdownAst, { originalFilename, removeYAML: true }) + .process(contents) + ).toString(); + // no change + expect(withoutYaml).toEqual('This Markdown should be kept.\n'); + }); }); describe('transformToBlockQuote', () => { From e4491136c306d668e0fe77f6dbf2c3d909cc5824 Mon Sep 17 00:00:00 2001 From: sidharthv96 Date: Tue, 24 Jan 2023 07:02:14 +0000 Subject: [PATCH 0935/1038] Update docs --- docs/misc/integrations.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/misc/integrations.md b/docs/misc/integrations.md index 50f3237cd3..c14e4febbe 100644 --- a/docs/misc/integrations.md +++ b/docs/misc/integrations.md @@ -95,9 +95,10 @@ They also serve as proof of concept, for the variety of things that can be built ## Editor Plugins -- [Vs Code](https://code.visualstudio.com/) +- [VS Code](https://code.visualstudio.com/) - [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid) - [Mermaid Preview](https://marketplace.visualstudio.com/items?itemName=vstirbu.vscode-mermaid-preview) + - [Markdown Preview Enhanced](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced) - [Mermaid Markdown Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=bpruitt-goddard.mermaid-markdown-syntax-highlighting) - [Mermaid Editor](https://marketplace.visualstudio.com/items?itemName=tomoyukim.vscode-mermaid-editor) - [Mermaid Export](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.mermaid-export) From fb6ba231d05729bf7f6edb0ec311c3ef2618941d Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 24 Jan 2023 15:59:37 +0530 Subject: [PATCH 0936/1038] chore: Skip 57-elk test --- cypress/integration/rendering/flowchart-elk.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/rendering/flowchart-elk.spec.js b/cypress/integration/rendering/flowchart-elk.spec.js index 0d4ec42110..6ba95474cd 100644 --- a/cypress/integration/rendering/flowchart-elk.spec.js +++ b/cypress/integration/rendering/flowchart-elk.spec.js @@ -284,7 +284,7 @@ _one --> b { htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' } ); }); - it('57-elk: handle nested subgraphs with outgoing links 4', () => { + it.skip('57-elk: handle nested subgraphs with outgoing links 4', () => { imgSnapshotTest( `flowchart-elk LR subgraph A From ead40379637352600e48f2a785a9ac68a5ee1f64 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 24 Jan 2023 16:00:59 +0530 Subject: [PATCH 0937/1038] chore: Enable 57-elk test --- cypress/integration/rendering/flowchart-elk.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/rendering/flowchart-elk.spec.js b/cypress/integration/rendering/flowchart-elk.spec.js index 6ba95474cd..0d4ec42110 100644 --- a/cypress/integration/rendering/flowchart-elk.spec.js +++ b/cypress/integration/rendering/flowchart-elk.spec.js @@ -284,7 +284,7 @@ _one --> b { htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' } ); }); - it.skip('57-elk: handle nested subgraphs with outgoing links 4', () => { + it('57-elk: handle nested subgraphs with outgoing links 4', () => { imgSnapshotTest( `flowchart-elk LR subgraph A From b36e5d0d3ba9fc774e830dd21c2f149277d198c1 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 24 Jan 2023 16:08:43 +0530 Subject: [PATCH 0938/1038] fix: Remove unnecessary void's. Co-authored-by: Alois Klink --- packages/mermaid/src/mermaid.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index b859a6a842..6af1a2b0f7 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -339,7 +339,8 @@ const contentLoaded = function () { if (mermaid.startOnLoad) { const { startOnLoad } = mermaidAPI.getConfig(); if (startOnLoad) { - void mermaid.init(); + // eslint-disable-next-line no-console + mermaid.init().catch((err) => console.error('Mermaid failed to initialize', err)); } } }; @@ -418,7 +419,7 @@ const parseAsync = (txt: string): Promise => { ); }); executionQueue.push(performCall); - void executeQueue(); + executeQueue().catch(reject); }); }; @@ -451,7 +452,7 @@ const renderAsync = ( ); }); executionQueue.push(performCall); - void executeQueue(); + executeQueue().catch(reject); }); }; From 6792bb94b74147906171ee9aa9578325c411b0af Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 24 Jan 2023 16:11:04 +0530 Subject: [PATCH 0939/1038] chore: Use logger --- packages/mermaid/src/mermaid.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 6af1a2b0f7..be06c21679 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -339,8 +339,7 @@ const contentLoaded = function () { if (mermaid.startOnLoad) { const { startOnLoad } = mermaidAPI.getConfig(); if (startOnLoad) { - // eslint-disable-next-line no-console - mermaid.init().catch((err) => console.error('Mermaid failed to initialize', err)); + mermaid.init().catch((err) => log.error('Mermaid failed to initialize', err)); } } }; From c9833dcd794fd50065daf6a26c600151dfb9b4c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 24 Jan 2023 10:43:54 +0000 Subject: [PATCH 0940/1038] chore(deps): update pnpm to v7.25.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 620f7dbeb5..51c9af8e4a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.25.0", + "packageManager": "pnpm@7.25.1", "keywords": [ "diagram", "markdown", From 26e9b1790b46a020e0160d6b1667204e85c78da1 Mon Sep 17 00:00:00 2001 From: Tom PERRILLAT-COLLOMB Date: Tue, 24 Jan 2023 21:20:11 +0100 Subject: [PATCH 0941/1038] feat(er): allow multiple constraints on attributes little changes in grammar to get a list of constraints (PK, FK or UK), so little changes in renderer to handle this list --- demos/er.html | 14 ++++++++++++++ packages/mermaid/src/diagrams/er/erRenderer.js | 7 +++++-- .../src/diagrams/er/parser/erDiagram.jison | 11 +++++++++-- .../src/diagrams/er/parser/erDiagram.spec.js | 16 ++++++++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/demos/er.html b/demos/er.html index 34e06acf85..347eb5e139 100644 --- a/demos/er.html +++ b/demos/er.html @@ -71,6 +71,20 @@

    +
    +      erDiagram
    +        "HOSPITAL" {
    +          int id PK
    +          int doctor_id PK,FK
    +          string address UK
    +          string name
    +          string phone_number
    +          string fax_number
    +        }
    +      
    +
    + ``` From dc0a46f742cfce4bb8de7fee9fafa63dfe05ad66 Mon Sep 17 00:00:00 2001 From: Tom PERRILLAT-COLLOMB Date: Wed, 25 Jan 2023 19:40:40 +0100 Subject: [PATCH 0950/1038] test(er): improve tests on multiple key constraints --- demos/er.html | 4 ++-- docs/syntax/entityRelationshipDiagram.md | 10 ++++----- .../src/diagrams/er/parser/erDiagram.spec.js | 22 ++++++++++++------- .../docs/syntax/entityRelationshipDiagram.md | 6 ++--- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/demos/er.html b/demos/er.html index 634a8f9e59..662b8cbed3 100644 --- a/demos/er.html +++ b/demos/er.html @@ -75,7 +75,7 @@ erDiagram "HOSPITAL" { int id PK - int doctor_id PK,FK + int doctor_id PK, FK string address UK string name string phone_number @@ -103,7 +103,7 @@ int age } NAMED-DRIVER { - string carRegistrationNumber PK,FK + string carRegistrationNumber PK, FK string driverLicence PK,FK } MANUFACTURER only one to zero or more CAR : makes diff --git a/docs/syntax/entityRelationshipDiagram.md b/docs/syntax/entityRelationshipDiagram.md index f06af0c0bd..9fa5fa5173 100644 --- a/docs/syntax/entityRelationshipDiagram.md +++ b/docs/syntax/entityRelationshipDiagram.md @@ -200,7 +200,7 @@ The `type` and `name` values must begin with an alphabetic character and may con #### Attribute Keys and Comments -Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK,FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. +Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK, FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. ```mermaid-example erDiagram @@ -220,8 +220,8 @@ erDiagram int age } NAMED-DRIVER { - string carRegistrationNumber PK,FK - string driverLicence PK,FK + string carRegistrationNumber PK, FK + string driverLicence PK, FK } MANUFACTURER only one to zero or more CAR : makes ``` @@ -244,8 +244,8 @@ erDiagram int age } NAMED-DRIVER { - string carRegistrationNumber PK,FK - string driverLicence PK,FK + string carRegistrationNumber PK, FK + string driverLicence PK, FK } MANUFACTURER only one to zero or more CAR : makes ``` diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index 2a8f1a28b3..40ec28ada9 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -191,19 +191,25 @@ describe('when parsing ER diagram it...', function () { }); it('should allow an entity with attributes that have many constraints and comments', function () { - const entity = 'BOOK'; - const attribute1 = 'int customer_number PK,FK "comment"'; - const attribute2 = 'datetime customer_status_start_datetime PK,UK'; - const attribute3 = 'string customer_name'; + const entity = 'CUSTOMER'; + const attribute1 = 'int customer_number PK, FK "comment1"'; + const attribute2 = 'datetime customer_status_start_datetime PK,UK, FK'; + const attribute3 = 'datetime customer_status_end_datetime PK , UK "comment3"'; + const attribute4 = 'string customer_firstname'; + const attribute5 = 'string customer_lastname "comment5"'; erDiagram.parser.parse( - `erDiagram\n${entity} {\n${attribute1} \n\n${attribute2}\n${attribute3}\n}` + `erDiagram\n${entity} {\n${attribute1}\n${attribute2}\n${attribute3}\n${attribute4}\n${attribute5}\n}` ); const entities = erDb.getEntities(); expect(entities[entity].attributes[0].attributeKeyTypeList).toEqual(['PK', 'FK']); - expect(entities[entity].attributes[0].attributeComment).toBe('comment'); - expect(entities[entity].attributes[1].attributeKeyTypeList).toEqual(['PK', 'UK']); - expect(entities[entity].attributes[2].attributeKeyTypeList).toBeUndefined(); + expect(entities[entity].attributes[0].attributeComment).toBe('comment1'); + expect(entities[entity].attributes[1].attributeKeyTypeList).toEqual(['PK', 'UK', 'FK']); + expect(entities[entity].attributes[2].attributeKeyTypeList).toEqual(['PK', 'UK']); + expect(entities[entity].attributes[2].attributeComment).toBe('comment3'); + expect(entities[entity].attributes[3].attributeKeyTypeList).toBeUndefined(); + expect(entities[entity].attributes[4].attributeKeyTypeList).toBeUndefined(); + expect(entities[entity].attributes[4].attributeComment).toBe('comment5'); }); it('should allow an entity with attribute that has a generic type', function () { diff --git a/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md index abce894670..7067a65d91 100644 --- a/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md +++ b/packages/mermaid/src/docs/syntax/entityRelationshipDiagram.md @@ -146,7 +146,7 @@ The `type` and `name` values must begin with an alphabetic character and may con #### Attribute Keys and Comments -Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK,FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. +Attributes may also have a `key` or comment defined. Keys can be `PK`, `FK` or `UK`, for Primary Key, Foreign Key or Unique Key. To specify multiple key constraints on a single attribute, separate them with a comma (e.g., `PK, FK`).. A `comment` is defined by double quotes at the end of an attribute. Comments themselves cannot have double-quote characters in them. ```mermaid-example erDiagram @@ -166,8 +166,8 @@ erDiagram int age } NAMED-DRIVER { - string carRegistrationNumber PK,FK - string driverLicence PK,FK + string carRegistrationNumber PK, FK + string driverLicence PK, FK } MANUFACTURER only one to zero or more CAR : makes ``` From be332cfdef3e08084f5af54eef2009cb57f7336c Mon Sep 17 00:00:00 2001 From: Tristan F Date: Wed, 25 Jan 2023 15:34:24 -0500 Subject: [PATCH 0951/1038] docs(readme): update broken twitter badge (From https://github.com/badges/shields/issues/8837): The Twitter API has changed in recent days by closing support for 3rd party apps, breaking the Twitter follow count badge. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a500283ce..9fed47a691 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) English | [简体中文](./README.zh-CN.md) From 19e3624e89562b4e83e7f8c9e15c46fd8d39a5ae Mon Sep 17 00:00:00 2001 From: Emerson Bottero Date: Thu, 26 Jan 2023 01:23:41 -0300 Subject: [PATCH 0952/1038] fix: moment-mini default exporter --- packages/mermaid/src/diagrams/gantt/ganttDb.js | 3 ++- packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts | 3 ++- packages/mermaid/src/diagrams/gantt/ganttRenderer.js | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index a1c74dd62f..28e8724716 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -1,4 +1,5 @@ -import moment from 'moment-mini'; +import * as _moment from 'moment-mini'; +const moment = _moment; import { sanitizeUrl } from '@braintree/sanitize-url'; import { log } from '../../logger'; import * as configApi from '../../config'; diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts index 09df96f12f..a2ad995679 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts @@ -1,5 +1,6 @@ // @ts-nocheck TODO: Fix TS -import moment from 'moment-mini'; +import * as _moment from 'moment-mini'; +const moment = _moment; import ganttDb from './ganttDb'; import { convert } from '../../tests/util'; diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index faec35a862..79f129f1ce 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -1,4 +1,5 @@ -import moment from 'moment-mini'; +import * as _moment from 'moment-mini'; +const moment = _moment; import { log } from '../../logger'; import { select, From 003997372eea347283a1f9481591d1c8f158a762 Mon Sep 17 00:00:00 2001 From: ashishjain0512 Date: Thu, 26 Jan 2023 11:48:25 +0000 Subject: [PATCH 0953/1038] Update docs --- docs/syntax/timeline.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/syntax/timeline.md b/docs/syntax/timeline.md index 882efd499d..4e917bc109 100644 --- a/docs/syntax/timeline.md +++ b/docs/syntax/timeline.md @@ -16,7 +16,8 @@ timeline title History of Social Media Platform 2002 : LinkedIn - 2004 : Facebook : Google + 2004 : Facebook + : Google 2005 : Youtube 2006 : Twitter ``` @@ -25,7 +26,8 @@ timeline timeline title History of Social Media Platform 2002 : LinkedIn - 2004 : Facebook : Google + 2004 : Facebook + : Google 2005 : Youtube 2006 : Twitter ``` From 8b4426aebf0a2c44df3aacca7a7f37de02164ebe Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Thu, 26 Jan 2023 16:31:40 +0000 Subject: [PATCH 0954/1038] build(lint): cache prettier on `pnpm run lint` [Prettier 2.7.0](https://prettier.io/blog/2022/06/14/2.7.0.html) added a `--cache` CLI option to greatly speed up subsequent prettier runs. By default, the cache is stored in `./node_modules/.cache/prettier/.prettier-cache` and uses an `md5` checksum of the contents as the cache-key. On my PC, running `pnpm run lint` used to take 13.9 seconds, but now it only takes 6 seconds. Potential issues ---------------- Although updating Node.JS/Prettier will invalidate the cache, updating or changing prettier plugins won't invalidate the cache. Since we do use `prettier-plugin-jsdoc` in Mermaid, this might cause a minor issue, but CI should catch it. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1f2828dfa..f6130fa47e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", + "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run", From a89cb9f0d61f1cdefabf8a1b780f844a303c67aa Mon Sep 17 00:00:00 2001 From: Tristan F Date: Thu, 26 Jan 2023 12:07:44 -0500 Subject: [PATCH 0955/1038] docs(readme-ch): fix twitter link --- README.zh-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 6b3e28b192..0f0cef7a8d 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,6 +1,6 @@ # mermaid -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) [English](./README.md) | 简体中文 From 7179f1bcbaabba4250fe18f63396d2ff477df3ab Mon Sep 17 00:00:00 2001 From: Emerson Bottero Date: Thu, 26 Jan 2023 20:55:57 -0300 Subject: [PATCH 0956/1038] chore: remove moment-mini --- packages/mermaid/package.json | 1 - .../mermaid/src/diagrams/gantt/ganttDb.js | 3 +- .../src/diagrams/gantt/ganttDb.spec.ts | 3 +- .../src/diagrams/gantt/ganttRenderer.js | 3 +- packages/mermaid/src/logger.ts | 2 +- pnpm-lock.yaml | 660 +++++++----------- 6 files changed, 264 insertions(+), 408 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index f7eff67318..8fcff194f0 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -59,7 +59,6 @@ "elkjs": "^0.8.2", "khroma": "^2.0.0", "lodash-es": "^4.17.21", - "moment-mini": "^2.24.0", "non-layered-tidy-tree-layout": "^2.0.2", "stylis": "^4.1.2", "ts-dedent": "^2.2.0", diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index 28e8724716..273a02d586 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -1,5 +1,4 @@ -import * as _moment from 'moment-mini'; -const moment = _moment; +import moment from 'moment'; import { sanitizeUrl } from '@braintree/sanitize-url'; import { log } from '../../logger'; import * as configApi from '../../config'; diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts index a2ad995679..2b0e9f435c 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts @@ -1,6 +1,5 @@ // @ts-nocheck TODO: Fix TS -import * as _moment from 'moment-mini'; -const moment = _moment; +import moment from 'moment'; import ganttDb from './ganttDb'; import { convert } from '../../tests/util'; diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index 79f129f1ce..360322b68c 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -1,5 +1,4 @@ -import * as _moment from 'moment-mini'; -const moment = _moment; +import moment from 'moment'; import { log } from '../../logger'; import { select, diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index b1c035e225..8bd46d6dbd 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/no-empty-function */ /* eslint-disable no-console */ -import moment from 'moment-mini'; +import moment from 'moment'; export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2c9758eb1..10682814d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,375 +1,261 @@ -lockfileVersion: 5.4-inlineSpecifiers +lockfileVersion: 5.4 importers: .: + specifiers: + '@applitools/eyes-cypress': ^3.27.6 + '@commitlint/cli': ^17.2.0 + '@commitlint/config-conventional': ^17.2.0 + '@cspell/eslint-plugin': ^6.14.2 + '@types/eslint': ^8.4.10 + '@types/express': ^4.17.14 + '@types/js-yaml': ^4.0.5 + '@types/jsdom': ^20.0.1 + '@types/lodash': ^4.14.188 + '@types/mdast': ^3.0.10 + '@types/node': ^18.11.9 + '@types/prettier': ^2.7.1 + '@types/rollup-plugin-visualizer': ^4.2.1 + '@typescript-eslint/eslint-plugin': ^5.48.2 + '@typescript-eslint/parser': ^5.48.2 + '@vitest/coverage-c8': ^0.27.0 + '@vitest/ui': ^0.27.0 + concurrently: ^7.5.0 + coveralls: ^3.1.1 + cypress: ^10.11.0 + cypress-image-snapshot: ^4.0.1 + esbuild: ^0.17.0 + eslint: ^8.32.0 + eslint-config-prettier: ^8.6.0 + eslint-plugin-cypress: ^2.12.1 + eslint-plugin-html: ^7.1.0 + eslint-plugin-jest: ^27.1.5 + eslint-plugin-jsdoc: ^39.6.2 + eslint-plugin-json: ^3.1.0 + eslint-plugin-lodash: ^7.4.0 + eslint-plugin-markdown: ^3.0.0 + eslint-plugin-no-only-tests: ^3.1.0 + eslint-plugin-tsdoc: ^0.2.17 + eslint-plugin-unicorn: ^45.0.0 + express: ^4.18.2 + globby: ^13.1.2 + husky: ^8.0.2 + jest: ^29.3.1 + jison: ^0.4.18 + js-yaml: ^4.1.0 + jsdom: ^20.0.2 + lint-staged: ^13.0.3 + path-browserify: ^1.0.1 + pnpm: ^7.15.0 + prettier: ^2.7.1 + prettier-plugin-jsdoc: ^0.4.2 + rimraf: ^3.0.2 + rollup-plugin-visualizer: ^5.8.3 + start-server-and-test: ^1.14.0 + ts-node: ^10.9.1 + typescript: ^4.8.4 + vite: ^3.2.3 + vitest: ^0.27.1 devDependencies: - '@applitools/eyes-cypress': - specifier: ^3.27.6 - version: 3.27.6 - '@commitlint/cli': - specifier: ^17.2.0 - version: 17.2.0 - '@commitlint/config-conventional': - specifier: ^17.2.0 - version: 17.2.0 - '@cspell/eslint-plugin': - specifier: ^6.14.2 - version: 6.14.2 - '@types/eslint': - specifier: ^8.4.10 - version: 8.4.10 - '@types/express': - specifier: ^4.17.14 - version: 4.17.14 - '@types/js-yaml': - specifier: ^4.0.5 - version: 4.0.5 - '@types/jsdom': - specifier: ^20.0.1 - version: 20.0.1 - '@types/lodash': - specifier: ^4.14.188 - version: 4.14.188 - '@types/mdast': - specifier: ^3.0.10 - version: 3.0.10 - '@types/node': - specifier: ^18.11.9 - version: 18.11.9 - '@types/prettier': - specifier: ^2.7.1 - version: 2.7.1 - '@types/rollup-plugin-visualizer': - specifier: ^4.2.1 - version: 4.2.1 - '@typescript-eslint/eslint-plugin': - specifier: ^5.48.2 - version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi - '@typescript-eslint/parser': - specifier: ^5.48.2 - version: 5.48.2_yygwinqv3a2io74xmwofqb7uka - '@vitest/coverage-c8': - specifier: ^0.27.0 - version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce - '@vitest/ui': - specifier: ^0.27.0 - version: 0.27.1 - concurrently: - specifier: ^7.5.0 - version: 7.5.0 - coveralls: - specifier: ^3.1.1 - version: 3.1.1 - cypress: - specifier: ^10.11.0 - version: 10.11.0 - cypress-image-snapshot: - specifier: ^4.0.1 - version: 4.0.1_bg25yee4qeg7mpleuvd346a3tq - esbuild: - specifier: ^0.17.0 - version: 0.17.0 - eslint: - specifier: ^8.32.0 - version: 8.32.0 - eslint-config-prettier: - specifier: ^8.6.0 - version: 8.6.0_eslint@8.32.0 - eslint-plugin-cypress: - specifier: ^2.12.1 - version: 2.12.1_eslint@8.32.0 - eslint-plugin-html: - specifier: ^7.1.0 - version: 7.1.0 - eslint-plugin-jest: - specifier: ^27.1.5 - version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 - eslint-plugin-jsdoc: - specifier: ^39.6.2 - version: 39.6.2_eslint@8.32.0 - eslint-plugin-json: - specifier: ^3.1.0 - version: 3.1.0 - eslint-plugin-lodash: - specifier: ^7.4.0 - version: 7.4.0_eslint@8.32.0 - eslint-plugin-markdown: - specifier: ^3.0.0 - version: 3.0.0_eslint@8.32.0 - eslint-plugin-no-only-tests: - specifier: ^3.1.0 - version: 3.1.0 - eslint-plugin-tsdoc: - specifier: ^0.2.17 - version: 0.2.17 - eslint-plugin-unicorn: - specifier: ^45.0.0 - version: 45.0.0_eslint@8.32.0 - express: - specifier: ^4.18.2 - version: 4.18.2 - globby: - specifier: ^13.1.2 - version: 13.1.2 - husky: - specifier: ^8.0.2 - version: 8.0.2 - jest: - specifier: ^29.3.1 - version: 29.3.1_odkjkoia5xunhxkdrka32ib6vi - jison: - specifier: ^0.4.18 - version: 0.4.18 - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - jsdom: - specifier: ^20.0.2 - version: 20.0.2 - lint-staged: - specifier: ^13.0.3 - version: 13.0.3 - path-browserify: - specifier: ^1.0.1 - version: 1.0.1 - pnpm: - specifier: ^7.15.0 - version: 7.15.0 - prettier: - specifier: ^2.7.1 - version: 2.7.1 - prettier-plugin-jsdoc: - specifier: ^0.4.2 - version: 0.4.2_prettier@2.7.1 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - rollup-plugin-visualizer: - specifier: ^5.8.3 - version: 5.8.3 - start-server-and-test: - specifier: ^1.14.0 - version: 1.14.0 - ts-node: - specifier: ^10.9.1 - version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - typescript: - specifier: ^4.8.4 - version: 4.8.4 - vite: - specifier: ^3.2.3 - version: 3.2.3_@types+node@18.11.9 - vitest: - specifier: ^0.27.1 - version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + '@applitools/eyes-cypress': 3.27.6 + '@commitlint/cli': 17.2.0 + '@commitlint/config-conventional': 17.2.0 + '@cspell/eslint-plugin': 6.14.2 + '@types/eslint': 8.4.10 + '@types/express': 4.17.14 + '@types/js-yaml': 4.0.5 + '@types/jsdom': 20.0.1 + '@types/lodash': 4.14.188 + '@types/mdast': 3.0.10 + '@types/node': 18.11.9 + '@types/prettier': 2.7.1 + '@types/rollup-plugin-visualizer': 4.2.1 + '@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi + '@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@vitest/coverage-c8': 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + '@vitest/ui': 0.27.1 + concurrently: 7.5.0 + coveralls: 3.1.1 + cypress: 10.11.0 + cypress-image-snapshot: 4.0.1_bg25yee4qeg7mpleuvd346a3tq + esbuild: 0.17.0 + eslint: 8.32.0 + eslint-config-prettier: 8.6.0_eslint@8.32.0 + eslint-plugin-cypress: 2.12.1_eslint@8.32.0 + eslint-plugin-html: 7.1.0 + eslint-plugin-jest: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 + eslint-plugin-jsdoc: 39.6.2_eslint@8.32.0 + eslint-plugin-json: 3.1.0 + eslint-plugin-lodash: 7.4.0_eslint@8.32.0 + eslint-plugin-markdown: 3.0.0_eslint@8.32.0 + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-tsdoc: 0.2.17 + eslint-plugin-unicorn: 45.0.0_eslint@8.32.0 + express: 4.18.2 + globby: 13.1.2 + husky: 8.0.2 + jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jison: 0.4.18 + js-yaml: 4.1.0 + jsdom: 20.0.2 + lint-staged: 13.0.3 + path-browserify: 1.0.1 + pnpm: 7.15.0 + prettier: 2.7.1 + prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 + rimraf: 3.0.2 + rollup-plugin-visualizer: 5.8.3 + start-server-and-test: 1.14.0 + ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 + typescript: 4.8.4 + vite: 3.2.3_@types+node@18.11.9 + vitest: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce packages/mermaid: - dependencies: - '@braintree/sanitize-url': - specifier: ^6.0.0 - version: 6.0.0 - d3: - specifier: ^7.0.0 - version: 7.6.1 - dagre-d3-es: - specifier: 7.0.6 - version: 7.0.6 - dompurify: - specifier: 2.4.3 - version: 2.4.3 - elkjs: - specifier: ^0.8.2 - version: 0.8.2 - khroma: - specifier: ^2.0.0 - version: 2.0.0 - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 - moment-mini: - specifier: ^2.24.0 - version: 2.29.4 - non-layered-tidy-tree-layout: - specifier: ^2.0.2 - version: 2.0.2 - stylis: - specifier: ^4.1.2 - version: 4.1.2 - ts-dedent: - specifier: ^2.2.0 - version: 2.2.0 - uuid: - specifier: ^9.0.0 - version: 9.0.0 + specifiers: + '@braintree/sanitize-url': ^6.0.0 + '@types/d3': ^7.4.0 + '@types/dompurify': ^2.4.0 + '@types/jsdom': ^20.0.1 + '@types/lodash-es': ^4.17.6 + '@types/micromatch': ^4.0.2 + '@types/prettier': ^2.7.1 + '@types/stylis': ^4.0.2 + '@types/uuid': ^8.3.4 + '@typescript-eslint/eslint-plugin': ^5.42.1 + '@typescript-eslint/parser': ^5.42.1 + chokidar: ^3.5.3 + concurrently: ^7.5.0 + coveralls: ^3.1.1 + cpy-cli: ^4.2.0 + cspell: ^6.14.3 + d3: ^7.0.0 + dagre-d3-es: 7.0.6 + dompurify: 2.4.3 + elkjs: ^0.8.2 + globby: ^13.1.2 + jison: ^0.4.18 + js-base64: ^3.7.2 + jsdom: ^20.0.2 + khroma: ^2.0.0 + lodash-es: ^4.17.21 + micromatch: ^4.0.5 + moment: ^2.29.4 + non-layered-tidy-tree-layout: ^2.0.2 + path-browserify: ^1.0.1 + prettier: ^2.7.1 + remark: ^14.0.2 + remark-frontmatter: ^4.0.1 + remark-gfm: ^3.0.1 + rimraf: ^3.0.2 + start-server-and-test: ^1.14.0 + stylis: ^4.1.2 + ts-dedent: ^2.2.0 + typedoc: ^0.23.18 + typedoc-plugin-markdown: ^3.13.6 + typescript: ^4.8.4 + unist-util-flatmap: ^1.0.0 + uuid: ^9.0.0 + vitepress: ^1.0.0-alpha.31 + vitepress-plugin-search: ^1.0.4-alpha.16 + dependencies: + '@braintree/sanitize-url': 6.0.0 + d3: 7.6.1 + dagre-d3-es: 7.0.6 + dompurify: 2.4.3 + elkjs: 0.8.2 + khroma: 2.0.0 + lodash-es: 4.17.21 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.1.2 + ts-dedent: 2.2.0 + uuid: 9.0.0 devDependencies: - '@types/d3': - specifier: ^7.4.0 - version: 7.4.0 - '@types/dompurify': - specifier: ^2.4.0 - version: 2.4.0 - '@types/jsdom': - specifier: ^20.0.1 - version: 20.0.1 - '@types/lodash-es': - specifier: ^4.17.6 - version: 4.17.6 - '@types/micromatch': - specifier: ^4.0.2 - version: 4.0.2 - '@types/prettier': - specifier: ^2.7.1 - version: 2.7.1 - '@types/stylis': - specifier: ^4.0.2 - version: 4.0.2 - '@types/uuid': - specifier: ^8.3.4 - version: 8.3.4 - '@typescript-eslint/eslint-plugin': - specifier: ^5.42.1 - version: 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq - '@typescript-eslint/parser': - specifier: ^5.42.1 - version: 5.42.1_yygwinqv3a2io74xmwofqb7uka - chokidar: - specifier: ^3.5.3 - version: 3.5.3 - concurrently: - specifier: ^7.5.0 - version: 7.5.0 - coveralls: - specifier: ^3.1.1 - version: 3.1.1 - cpy-cli: - specifier: ^4.2.0 - version: 4.2.0 - cspell: - specifier: ^6.14.3 - version: 6.14.3 - globby: - specifier: ^13.1.2 - version: 13.1.2 - jison: - specifier: ^0.4.18 - version: 0.4.18 - js-base64: - specifier: ^3.7.2 - version: 3.7.2 - jsdom: - specifier: ^20.0.2 - version: 20.0.2 - micromatch: - specifier: ^4.0.5 - version: 4.0.5 - moment: - specifier: ^2.29.4 - version: 2.29.4 - path-browserify: - specifier: ^1.0.1 - version: 1.0.1 - prettier: - specifier: ^2.7.1 - version: 2.7.1 - remark: - specifier: ^14.0.2 - version: 14.0.2 - remark-frontmatter: - specifier: ^4.0.1 - version: 4.0.1 - remark-gfm: - specifier: ^3.0.1 - version: 3.0.1 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - start-server-and-test: - specifier: ^1.14.0 - version: 1.14.0 - typedoc: - specifier: ^0.23.18 - version: 0.23.18_typescript@4.8.4 - typedoc-plugin-markdown: - specifier: ^3.13.6 - version: 3.13.6_typedoc@0.23.18 - typescript: - specifier: ^4.8.4 - version: 4.8.4 - unist-util-flatmap: - specifier: ^1.0.0 - version: 1.0.0 - vitepress: - specifier: ^1.0.0-alpha.31 - version: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-search: - specifier: ^1.0.4-alpha.16 - version: 1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am + '@types/d3': 7.4.0 + '@types/dompurify': 2.4.0 + '@types/jsdom': 20.0.1 + '@types/lodash-es': 4.17.6 + '@types/micromatch': 4.0.2 + '@types/prettier': 2.7.1 + '@types/stylis': 4.0.2 + '@types/uuid': 8.3.4 + '@typescript-eslint/eslint-plugin': 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq + '@typescript-eslint/parser': 5.42.1_yygwinqv3a2io74xmwofqb7uka + chokidar: 3.5.3 + concurrently: 7.5.0 + coveralls: 3.1.1 + cpy-cli: 4.2.0 + cspell: 6.14.3 + globby: 13.1.2 + jison: 0.4.18 + js-base64: 3.7.2 + jsdom: 20.0.2 + micromatch: 4.0.5 + moment: 2.29.4 + path-browserify: 1.0.1 + prettier: 2.7.1 + remark: 14.0.2 + remark-frontmatter: 4.0.1 + remark-gfm: 3.0.1 + rimraf: 3.0.2 + start-server-and-test: 1.14.0 + typedoc: 0.23.18_typescript@4.8.4 + typedoc-plugin-markdown: 3.13.6_typedoc@0.23.18 + typescript: 4.8.4 + unist-util-flatmap: 1.0.0 + vitepress: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-search: 1.0.4-alpha.16_4vhf5pdiohzt3iya6parl37qd4 packages/mermaid-example-diagram: + specifiers: + concurrently: ^7.5.0 + rimraf: ^3.0.2 devDependencies: - concurrently: - specifier: ^7.5.0 - version: 7.5.0 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 + concurrently: 7.5.0 + rimraf: 3.0.2 packages/mermaid-mindmap: - dependencies: - '@braintree/sanitize-url': - specifier: ^6.0.0 - version: 6.0.0 - cytoscape: - specifier: ^3.23.0 - version: 3.23.0 - cytoscape-cose-bilkent: - specifier: ^4.1.0 - version: 4.1.0_cytoscape@3.23.0 - cytoscape-fcose: - specifier: ^2.1.0 - version: 2.1.0_cytoscape@3.23.0 - d3: - specifier: ^7.0.0 - version: 7.6.1 - khroma: - specifier: ^2.0.0 - version: 2.0.0 - non-layered-tidy-tree-layout: - specifier: ^2.0.2 - version: 2.0.2 + specifiers: + '@braintree/sanitize-url': ^6.0.0 + '@types/cytoscape': ^3.19.9 + concurrently: ^7.5.0 + cytoscape: ^3.23.0 + cytoscape-cose-bilkent: ^4.1.0 + cytoscape-fcose: ^2.1.0 + d3: ^7.0.0 + khroma: ^2.0.0 + mermaid: workspace:* + non-layered-tidy-tree-layout: ^2.0.2 + rimraf: ^3.0.2 + dependencies: + '@braintree/sanitize-url': 6.0.0 + cytoscape: 3.23.0 + cytoscape-cose-bilkent: 4.1.0_cytoscape@3.23.0 + cytoscape-fcose: 2.1.0_cytoscape@3.23.0 + d3: 7.6.1 + khroma: 2.0.0 + non-layered-tidy-tree-layout: 2.0.2 devDependencies: - '@types/cytoscape': - specifier: ^3.19.9 - version: 3.19.9 - concurrently: - specifier: ^7.5.0 - version: 7.5.0 - mermaid: - specifier: workspace:* - version: link:../mermaid - rimraf: - specifier: ^3.0.2 - version: 3.0.2 + '@types/cytoscape': 3.19.9 + concurrently: 7.5.0 + mermaid: link:../mermaid + rimraf: 3.0.2 tests/webpack: - dependencies: - '@mermaid-js/mermaid-mindmap': - specifier: workspace:* - version: link:../../packages/mermaid-mindmap - mermaid: - specifier: workspace:* - version: link:../../packages/mermaid + specifiers: + '@mermaid-js/mermaid-mindmap': workspace:* + mermaid: workspace:* + webpack: ^5.74.0 + webpack-cli: ^4.10.0 + webpack-dev-server: ^4.11.1 + dependencies: + '@mermaid-js/mermaid-mindmap': link:../../packages/mermaid-mindmap + mermaid: link:../../packages/mermaid devDependencies: - webpack: - specifier: ^5.74.0 - version: 5.75.0_webpack-cli@4.10.0 - webpack-cli: - specifier: ^4.10.0 - version: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi - webpack-dev-server: - specifier: ^4.11.1 - version: 4.11.1_pda42hcaj7d62cr262fr632kue + webpack: 5.75.0_webpack-cli@4.10.0 + webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue packages: @@ -1348,8 +1234,8 @@ packages: '@cspell/dict-docker': 1.1.3 '@cspell/dict-dotnet': 4.0.0 '@cspell/dict-elixir': 4.0.0 - '@cspell/dict-en-gb': 1.1.33 '@cspell/dict-en_us': 4.1.0 + '@cspell/dict-en-gb': 1.1.33 '@cspell/dict-filetypes': 3.0.0 '@cspell/dict-fonts': 3.0.0 '@cspell/dict-fullstack': 3.0.0 @@ -1396,8 +1282,8 @@ packages: '@cspell/dict-docker': 1.1.3 '@cspell/dict-dotnet': 4.0.0 '@cspell/dict-elixir': 4.0.0 - '@cspell/dict-en-gb': 1.1.33 '@cspell/dict-en_us': 4.1.0 + '@cspell/dict-en-gb': 1.1.33 '@cspell/dict-filetypes': 3.0.0 '@cspell/dict-fonts': 3.0.0 '@cspell/dict-fullstack': 3.0.0 @@ -4109,7 +3995,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 transitivePeerDependencies: - debug dev: true @@ -4746,7 +4632,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true /concurrently/7.5.0: @@ -4816,8 +4702,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - JSONStream: 1.3.5 is-text-path: 1.0.1 + JSONStream: 1.3.5 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -6917,6 +6803,18 @@ packages: optional: true dev: true + /follow-redirects/1.15.2_debug@4.3.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.2 + dev: true + /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -8324,12 +8222,12 @@ packages: engines: {node: '>=0.4'} hasBin: true dependencies: - JSONSelect: 0.4.0 cjson: 0.3.0 ebnf-parser: 0.1.10 escodegen: 1.3.3 esprima: 1.1.1 jison-lex: 0.3.4 + JSONSelect: 0.4.0 lex-parser: 0.1.4 nomnom: 1.5.2 dev: true @@ -9413,10 +9311,6 @@ packages: ufo: 1.0.1 dev: true - /moment-mini/2.29.4: - resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} - dev: false - /moment/2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} dev: true @@ -11782,39 +11676,6 @@ packages: - terser dev: true - /vite/3.2.3: - resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.15.13 - postcss: 8.4.18 - resolve: 1.22.1 - rollup: 2.79.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/3.2.3_@types+node@18.11.9: resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -11916,7 +11777,7 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-search/1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am: + /vitepress-plugin-search/1.0.4-alpha.16_4vhf5pdiohzt3iya6parl37qd4: resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -11929,7 +11790,6 @@ packages: '@types/markdown-it': 12.2.3 flexsearch: 0.7.31 markdown-it: 13.0.1 - vite: 3.2.3 vitepress: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.45 dev: true From cb1a20264d85e6f5c948b64eae62943647e8c124 Mon Sep 17 00:00:00 2001 From: GavinPen Date: Sat, 28 Jan 2023 17:42:30 +0000 Subject: [PATCH 0957/1038] Update mindmap.md Minor Improvement to wording --- packages/mermaid/src/docs/syntax/mindmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md index 3b737a5721..833f269417 100644 --- a/packages/mermaid/src/docs/syntax/mindmap.md +++ b/packages/mermaid/src/docs/syntax/mindmap.md @@ -55,7 +55,7 @@ In this way we can use a text outline to generate a hierarchical mindmap. ## Different shapes -Mermaids mindmaps can show node using different shapes. When specifying a shape for a node the syntax for the is similar to flowchart nodes, with an id followed by the shape definition and with the text within the shape delimiters. Where possible we try/will try to keep the same shapes as for flowcharts even though they are not all supported from the start. +Mermaid mindmaps can show nodes using different shapes. When specifying a shape for a node the syntax is similar to flowchart nodes, with an id followed by the shape definition and with the text within the shape delimiters. Where possible we try/will try to keep the same shapes as for flowcharts, even though they are not all supported from the start. Mindmap can show the following shapes: From b9bed14cda818b4aaaa0a00c7bcd3c981aaec32b Mon Sep 17 00:00:00 2001 From: sidharthv96 Date: Sat, 28 Jan 2023 19:46:10 +0000 Subject: [PATCH 0958/1038] Update docs --- docs/syntax/mindmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 7e1d9c0808..d72de6f10c 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -88,7 +88,7 @@ In this way we can use a text outline to generate a hierarchical mindmap. ## Different shapes -Mermaids mindmaps can show node using different shapes. When specifying a shape for a node the syntax for the is similar to flowchart nodes, with an id followed by the shape definition and with the text within the shape delimiters. Where possible we try/will try to keep the same shapes as for flowcharts even though they are not all supported from the start. +Mermaid mindmaps can show nodes using different shapes. When specifying a shape for a node the syntax is similar to flowchart nodes, with an id followed by the shape definition and with the text within the shape delimiters. Where possible we try/will try to keep the same shapes as for flowcharts, even though they are not all supported from the start. Mindmap can show the following shapes: From df10d649896a660e3b81a7584069d633918401c9 Mon Sep 17 00:00:00 2001 From: Emerson Bottero Date: Sun, 29 Jan 2023 11:24:48 -0300 Subject: [PATCH 0959/1038] chore: add moment to dependencies --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 22 +++++----------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 8fcff194f0..b990a161a6 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -59,6 +59,7 @@ "elkjs": "^0.8.2", "khroma": "^2.0.0", "lodash-es": "^4.17.21", + "moment": "^2.29.4", "non-layered-tidy-tree-layout": "^2.0.2", "stylis": "^4.1.2", "ts-dedent": "^2.2.0", @@ -85,7 +86,6 @@ "js-base64": "^3.7.2", "jsdom": "^20.0.2", "micromatch": "^4.0.5", - "moment": "^2.29.4", "path-browserify": "^1.0.1", "prettier": "^2.7.1", "remark": "^14.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10682814d4..20f7a0bba9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -167,6 +167,7 @@ importers: elkjs: 0.8.2 khroma: 2.0.0 lodash-es: 4.17.21 + moment: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.2 ts-dedent: 2.2.0 @@ -192,7 +193,6 @@ importers: js-base64: 3.7.2 jsdom: 20.0.2 micromatch: 4.0.5 - moment: 2.29.4 path-browserify: 1.0.1 prettier: 2.7.1 remark: 14.0.2 @@ -3747,10 +3747,8 @@ packages: indent-string: 5.0.0 dev: true - /ajv-formats/2.1.1_ajv@8.11.0: + /ajv-formats/2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -6793,16 +6791,6 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -7352,7 +7340,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -9313,7 +9301,7 @@ packages: /moment/2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - dev: true + dev: false /mri/1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -10500,7 +10488,7 @@ packages: dependencies: '@types/json-schema': 7.0.11 ajv: 8.11.0 - ajv-formats: 2.1.1_ajv@8.11.0 + ajv-formats: 2.1.1 ajv-keywords: 5.1.0_ajv@8.11.0 dev: true From 4900647bf0fe1fb7e1e4e60acc5bdbdc2c2c01df Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 29 Jan 2023 20:27:31 +0000 Subject: [PATCH 0960/1038] ci(lint): show nice error on lint failure Prints a nice error on GitHub Actions if `pnpm run lint` fails. --- .github/workflows/lint.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 95e4256b1f..a21fbc0056 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -37,7 +37,20 @@ jobs: CYPRESS_CACHE_FOLDER: .cache/Cypress - name: Run Linting - run: pnpm run lint + shell: bash + run: | + if ! pnpm run lint; then + # print a nice error message on lint failure + ERROR_MESSAGE='Running `pnpm run lint` failed.' + ERROR_MESSAGE+=' Running `pnpm run lint:fix` may fix this issue. ' + ERROR_MESSAGE+=" If this error doesn't occur on your local machine," + ERROR_MESSAGE+=' make sure your packages are up-to-date by running `pnpm install`.' + ERROR_MESSAGE+=' You may also need to delete your prettier cache by running' + ERROR_MESSAGE+=' `rm ./node_modules/.cache/prettier/.prettier-cache`.' + echo "::error title=Lint failure::${ERROR_MESSAGE}" + # make sure to return an error exitcode so that GitHub actions shows a red-cross + exit 1 + fi - name: Verify Docs id: verifyDocs From c2ec63d4fd9faffcf95fc0318f5939eac5c4da7d Mon Sep 17 00:00:00 2001 From: Tom PERRILLAT-COLLOMB Date: Wed, 25 Jan 2023 23:16:06 +0100 Subject: [PATCH 0961/1038] feat(er): allow leading underscore for attributes name --- .../src/diagrams/er/parser/erDiagram.jison | 4 +-- .../src/diagrams/er/parser/erDiagram.spec.js | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison index 15ca0c72f8..1e3972a3b8 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.jison +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.jison @@ -32,7 +32,7 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili \s+ /* skip whitespace in block */ \b((?:PK)|(?:FK)|(?:UK))\b return 'ATTRIBUTE_KEY' (.*?)[~](.*?)*[~] return 'ATTRIBUTE_WORD'; -[A-Za-z][A-Za-z0-9\-_\[\]\(\)]* return 'ATTRIBUTE_WORD' +[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]* return 'ATTRIBUTE_WORD' \"[^"]*\" return 'COMMENT'; [\n]+ /* nothing */ "}" { this.popState(); return 'BLOCK_STOP'; } @@ -81,7 +81,7 @@ start document : /* empty */ { $$ = [] } - | document line {$1.push($2);$$ = $1} + | document line {$1.push($2);$$ = $1} ; line diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index 40ec28ada9..ca497a2ac2 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -135,6 +135,37 @@ describe('when parsing ER diagram it...', function () { }); }); + describe('attribute name', () => { + it('should allow alphanumeric characters, dashes, underscores and brackets (not leading chars)', function () { + const entity = 'BOOK'; + const attribute1 = 'string myBookTitle'; + const attribute2 = 'string MYBOOKSUBTITLE_1'; + const attribute3 = 'string author-ref[name](1)'; + + erDiagram.parser.parse( + `erDiagram\n${entity} {\n${attribute1}\n${attribute2}\n${attribute3}\n}` + ); + const entities = erDb.getEntities(); + + expect(Object.keys(entities).length).toBe(1); + expect(entities[entity].attributes.length).toBe(3); + expect(entities[entity].attributes[0].attributeName).toBe('myBookTitle'); + expect(entities[entity].attributes[1].attributeName).toBe('MYBOOKSUBTITLE_1'); + expect(entities[entity].attributes[2].attributeName).toBe('author-ref[name](1)'); + }); + + it('should not allow leading numbers, dashes or brackets', function () { + const entity = 'BOOK'; + const nonLeadingChars = '0-[]()'; + [...nonLeadingChars].forEach((nonLeadingChar) => { + expect(() => { + const attribute = `string ${nonLeadingChar}author`; + erDiagram.parser.parse(`erDiagram\n${entity} {\n${attribute}\n}`); + }).toThrow(); + }); + }); + }); + it('should allow an entity with a single attribute to be defined', function () { const entity = 'BOOK'; const attribute = 'string title'; From 8d6d90021adbc1dd7aa2aab8ce94386658bf16ca Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 5 Feb 2023 11:54:56 +0530 Subject: [PATCH 0962/1038] Update cypress/integration/rendering/sequencediagram.spec.js --- cypress/integration/rendering/sequencediagram.spec.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/cypress/integration/rendering/sequencediagram.spec.js b/cypress/integration/rendering/sequencediagram.spec.js index 4e22bb99c6..1f063c13ea 100644 --- a/cypress/integration/rendering/sequencediagram.spec.js +++ b/cypress/integration/rendering/sequencediagram.spec.js @@ -34,10 +34,7 @@ context('Sequence diagram', () => { { sequence: { useMaxWidth: false } } ); cy.get('svg').should((svg) => { - // const height = parseFloat(svg.attr('height')); const width = parseFloat(svg.attr('width')); - // expect(height).to.be.within(920, 971); - // use within because the absolute value can be slightly different depending on the environment ±5% expect(width).to.be.within(830 * 0.95, 830 * 1.05); expect(svg).to.not.have.attr('style'); }); From b3e509b7d4548a7f440b0cabbb1459e1ab0c3ff2 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 5 Feb 2023 19:25:57 +0000 Subject: [PATCH 0963/1038] build(lint): cache eslint with strategy content Cache eslint using `--cache-strategy content` instead of the default `--cache-strategy metadata`. By default, `eslint` uses the file metadata (e.g. modification time) to detect when the cache should be invalidated. However, this is not efficient with `git`, since git constantly changes the modification time, e.g. running `git switch main && git switch original-branch` would not change the file contents, but would change the file mtimes and force eslint to re-lint everything. Using the file contents is slower (~3% for me), but more resilient. See https://eslint.org/docs/latest/use/command-line-interface#--cache-strategy --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f6130fa47e..e7cb9bdf01 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", + "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run", From 98b21483528b528bd011d7a3a116d633239045c8 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 5 Feb 2023 19:01:01 +0000 Subject: [PATCH 0964/1038] build(pre-commit): cache eslint in pre-commit Run eslint with `--cache` to speed up pre-commit scripts. This was added to the `pnpm run lint` script in b7f9495a (build: add eslint --cache file, 2022-08-27) and doesn't seem to be causing any issues. I haven't enabled `--cache` for `prettier` since as of prettier 2.8.0, their cache invalidation doesn't yet work with prettier plugins. --- .lintstagedrc.mjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.lintstagedrc.mjs b/.lintstagedrc.mjs index ff1d8c1074..ac26230932 100644 --- a/.lintstagedrc.mjs +++ b/.lintstagedrc.mjs @@ -1,5 +1,11 @@ export default { - '!(docs/**/*)*.{ts,js,json,html,md,mts}': ['eslint --fix', 'prettier --write'], + '!(docs/**/*)*.{ts,js,json,html,md,mts}': [ + 'eslint --cache --cache-strategy content --fix', + // don't cache prettier yet, since we use `prettier-plugin-jsdoc`, + // and prettier doesn't invalidate cache on plugin updates" + // https://prettier.io/docs/en/cli.html#--cache + 'prettier --write', + ], 'cSpell.json': ['ts-node-esm scripts/fixCSpell.ts'], '**/*.jison': ['pnpm -w run lint:jison'], }; From ac67794fb29b90906dc2a7890d5b49eddc3aedb1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 Feb 2023 00:02:46 +0000 Subject: [PATCH 0965/1038] fix(deps): update dependency dagre-d3-es to v7.0.8 --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 661 +++++++++++++++++++++------------- 2 files changed, 404 insertions(+), 259 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index b990a161a6..3dd6c5af09 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -54,7 +54,7 @@ "dependencies": { "@braintree/sanitize-url": "^6.0.0", "d3": "^7.0.0", - "dagre-d3-es": "7.0.6", + "dagre-d3-es": "7.0.8", "dompurify": "2.4.3", "elkjs": "^0.8.2", "khroma": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20f7a0bba9..8d2c0a4bd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,261 +1,372 @@ -lockfileVersion: 5.4 +lockfileVersion: 5.4-inlineSpecifiers importers: .: - specifiers: - '@applitools/eyes-cypress': ^3.27.6 - '@commitlint/cli': ^17.2.0 - '@commitlint/config-conventional': ^17.2.0 - '@cspell/eslint-plugin': ^6.14.2 - '@types/eslint': ^8.4.10 - '@types/express': ^4.17.14 - '@types/js-yaml': ^4.0.5 - '@types/jsdom': ^20.0.1 - '@types/lodash': ^4.14.188 - '@types/mdast': ^3.0.10 - '@types/node': ^18.11.9 - '@types/prettier': ^2.7.1 - '@types/rollup-plugin-visualizer': ^4.2.1 - '@typescript-eslint/eslint-plugin': ^5.48.2 - '@typescript-eslint/parser': ^5.48.2 - '@vitest/coverage-c8': ^0.27.0 - '@vitest/ui': ^0.27.0 - concurrently: ^7.5.0 - coveralls: ^3.1.1 - cypress: ^10.11.0 - cypress-image-snapshot: ^4.0.1 - esbuild: ^0.17.0 - eslint: ^8.32.0 - eslint-config-prettier: ^8.6.0 - eslint-plugin-cypress: ^2.12.1 - eslint-plugin-html: ^7.1.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-json: ^3.1.0 - eslint-plugin-lodash: ^7.4.0 - eslint-plugin-markdown: ^3.0.0 - eslint-plugin-no-only-tests: ^3.1.0 - eslint-plugin-tsdoc: ^0.2.17 - eslint-plugin-unicorn: ^45.0.0 - express: ^4.18.2 - globby: ^13.1.2 - husky: ^8.0.2 - jest: ^29.3.1 - jison: ^0.4.18 - js-yaml: ^4.1.0 - jsdom: ^20.0.2 - lint-staged: ^13.0.3 - path-browserify: ^1.0.1 - pnpm: ^7.15.0 - prettier: ^2.7.1 - prettier-plugin-jsdoc: ^0.4.2 - rimraf: ^3.0.2 - rollup-plugin-visualizer: ^5.8.3 - start-server-and-test: ^1.14.0 - ts-node: ^10.9.1 - typescript: ^4.8.4 - vite: ^3.2.3 - vitest: ^0.27.1 devDependencies: - '@applitools/eyes-cypress': 3.27.6 - '@commitlint/cli': 17.2.0 - '@commitlint/config-conventional': 17.2.0 - '@cspell/eslint-plugin': 6.14.2 - '@types/eslint': 8.4.10 - '@types/express': 4.17.14 - '@types/js-yaml': 4.0.5 - '@types/jsdom': 20.0.1 - '@types/lodash': 4.14.188 - '@types/mdast': 3.0.10 - '@types/node': 18.11.9 - '@types/prettier': 2.7.1 - '@types/rollup-plugin-visualizer': 4.2.1 - '@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi - '@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka - '@vitest/coverage-c8': 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce - '@vitest/ui': 0.27.1 - concurrently: 7.5.0 - coveralls: 3.1.1 - cypress: 10.11.0 - cypress-image-snapshot: 4.0.1_bg25yee4qeg7mpleuvd346a3tq - esbuild: 0.17.0 - eslint: 8.32.0 - eslint-config-prettier: 8.6.0_eslint@8.32.0 - eslint-plugin-cypress: 2.12.1_eslint@8.32.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-jest: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 - eslint-plugin-jsdoc: 39.6.2_eslint@8.32.0 - eslint-plugin-json: 3.1.0 - eslint-plugin-lodash: 7.4.0_eslint@8.32.0 - eslint-plugin-markdown: 3.0.0_eslint@8.32.0 - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-tsdoc: 0.2.17 - eslint-plugin-unicorn: 45.0.0_eslint@8.32.0 - express: 4.18.2 - globby: 13.1.2 - husky: 8.0.2 - jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi - jison: 0.4.18 - js-yaml: 4.1.0 - jsdom: 20.0.2 - lint-staged: 13.0.3 - path-browserify: 1.0.1 - pnpm: 7.15.0 - prettier: 2.7.1 - prettier-plugin-jsdoc: 0.4.2_prettier@2.7.1 - rimraf: 3.0.2 - rollup-plugin-visualizer: 5.8.3 - start-server-and-test: 1.14.0 - ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - typescript: 4.8.4 - vite: 3.2.3_@types+node@18.11.9 - vitest: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + '@applitools/eyes-cypress': + specifier: ^3.27.6 + version: 3.27.6 + '@commitlint/cli': + specifier: ^17.2.0 + version: 17.2.0 + '@commitlint/config-conventional': + specifier: ^17.2.0 + version: 17.2.0 + '@cspell/eslint-plugin': + specifier: ^6.14.2 + version: 6.14.2 + '@types/eslint': + specifier: ^8.4.10 + version: 8.4.10 + '@types/express': + specifier: ^4.17.14 + version: 4.17.14 + '@types/js-yaml': + specifier: ^4.0.5 + version: 4.0.5 + '@types/jsdom': + specifier: ^20.0.1 + version: 20.0.1 + '@types/lodash': + specifier: ^4.14.188 + version: 4.14.188 + '@types/mdast': + specifier: ^3.0.10 + version: 3.0.10 + '@types/node': + specifier: ^18.11.9 + version: 18.11.9 + '@types/prettier': + specifier: ^2.7.1 + version: 2.7.1 + '@types/rollup-plugin-visualizer': + specifier: ^4.2.1 + version: 4.2.1 + '@typescript-eslint/eslint-plugin': + specifier: ^5.48.2 + version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi + '@typescript-eslint/parser': + specifier: ^5.48.2 + version: 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@vitest/coverage-c8': + specifier: ^0.27.0 + version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + '@vitest/ui': + specifier: ^0.27.0 + version: 0.27.1 + concurrently: + specifier: ^7.5.0 + version: 7.5.0 + coveralls: + specifier: ^3.1.1 + version: 3.1.1 + cypress: + specifier: ^10.11.0 + version: 10.11.0 + cypress-image-snapshot: + specifier: ^4.0.1 + version: 4.0.1_bg25yee4qeg7mpleuvd346a3tq + esbuild: + specifier: ^0.17.0 + version: 0.17.0 + eslint: + specifier: ^8.32.0 + version: 8.32.0 + eslint-config-prettier: + specifier: ^8.6.0 + version: 8.6.0_eslint@8.32.0 + eslint-plugin-cypress: + specifier: ^2.12.1 + version: 2.12.1_eslint@8.32.0 + eslint-plugin-html: + specifier: ^7.1.0 + version: 7.1.0 + eslint-plugin-jest: + specifier: ^27.1.5 + version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 + eslint-plugin-jsdoc: + specifier: ^39.6.2 + version: 39.6.2_eslint@8.32.0 + eslint-plugin-json: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-lodash: + specifier: ^7.4.0 + version: 7.4.0_eslint@8.32.0 + eslint-plugin-markdown: + specifier: ^3.0.0 + version: 3.0.0_eslint@8.32.0 + eslint-plugin-no-only-tests: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-tsdoc: + specifier: ^0.2.17 + version: 0.2.17 + eslint-plugin-unicorn: + specifier: ^45.0.0 + version: 45.0.0_eslint@8.32.0 + express: + specifier: ^4.18.2 + version: 4.18.2 + globby: + specifier: ^13.1.2 + version: 13.1.2 + husky: + specifier: ^8.0.2 + version: 8.0.2 + jest: + specifier: ^29.3.1 + version: 29.3.1_odkjkoia5xunhxkdrka32ib6vi + jison: + specifier: ^0.4.18 + version: 0.4.18 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 + jsdom: + specifier: ^20.0.2 + version: 20.0.2 + lint-staged: + specifier: ^13.0.3 + version: 13.0.3 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + pnpm: + specifier: ^7.15.0 + version: 7.15.0 + prettier: + specifier: ^2.7.1 + version: 2.7.1 + prettier-plugin-jsdoc: + specifier: ^0.4.2 + version: 0.4.2_prettier@2.7.1 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + rollup-plugin-visualizer: + specifier: ^5.8.3 + version: 5.8.3 + start-server-and-test: + specifier: ^1.14.0 + version: 1.14.0 + ts-node: + specifier: ^10.9.1 + version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 + typescript: + specifier: ^4.8.4 + version: 4.8.4 + vite: + specifier: ^3.2.3 + version: 3.2.3_@types+node@18.11.9 + vitest: + specifier: ^0.27.1 + version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce packages/mermaid: - specifiers: - '@braintree/sanitize-url': ^6.0.0 - '@types/d3': ^7.4.0 - '@types/dompurify': ^2.4.0 - '@types/jsdom': ^20.0.1 - '@types/lodash-es': ^4.17.6 - '@types/micromatch': ^4.0.2 - '@types/prettier': ^2.7.1 - '@types/stylis': ^4.0.2 - '@types/uuid': ^8.3.4 - '@typescript-eslint/eslint-plugin': ^5.42.1 - '@typescript-eslint/parser': ^5.42.1 - chokidar: ^3.5.3 - concurrently: ^7.5.0 - coveralls: ^3.1.1 - cpy-cli: ^4.2.0 - cspell: ^6.14.3 - d3: ^7.0.0 - dagre-d3-es: 7.0.6 - dompurify: 2.4.3 - elkjs: ^0.8.2 - globby: ^13.1.2 - jison: ^0.4.18 - js-base64: ^3.7.2 - jsdom: ^20.0.2 - khroma: ^2.0.0 - lodash-es: ^4.17.21 - micromatch: ^4.0.5 - moment: ^2.29.4 - non-layered-tidy-tree-layout: ^2.0.2 - path-browserify: ^1.0.1 - prettier: ^2.7.1 - remark: ^14.0.2 - remark-frontmatter: ^4.0.1 - remark-gfm: ^3.0.1 - rimraf: ^3.0.2 - start-server-and-test: ^1.14.0 - stylis: ^4.1.2 - ts-dedent: ^2.2.0 - typedoc: ^0.23.18 - typedoc-plugin-markdown: ^3.13.6 - typescript: ^4.8.4 - unist-util-flatmap: ^1.0.0 - uuid: ^9.0.0 - vitepress: ^1.0.0-alpha.31 - vitepress-plugin-search: ^1.0.4-alpha.16 - dependencies: - '@braintree/sanitize-url': 6.0.0 - d3: 7.6.1 - dagre-d3-es: 7.0.6 - dompurify: 2.4.3 - elkjs: 0.8.2 - khroma: 2.0.0 - lodash-es: 4.17.21 - moment: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.1.2 - ts-dedent: 2.2.0 - uuid: 9.0.0 + dependencies: + '@braintree/sanitize-url': + specifier: ^6.0.0 + version: 6.0.0 + d3: + specifier: ^7.0.0 + version: 7.6.1 + dagre-d3-es: + specifier: 7.0.8 + version: 7.0.8 + dompurify: + specifier: 2.4.3 + version: 2.4.3 + elkjs: + specifier: ^0.8.2 + version: 0.8.2 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + moment: + specifier: ^2.29.4 + version: 2.29.4 + non-layered-tidy-tree-layout: + specifier: ^2.0.2 + version: 2.0.2 + stylis: + specifier: ^4.1.2 + version: 4.1.2 + ts-dedent: + specifier: ^2.2.0 + version: 2.2.0 + uuid: + specifier: ^9.0.0 + version: 9.0.0 devDependencies: - '@types/d3': 7.4.0 - '@types/dompurify': 2.4.0 - '@types/jsdom': 20.0.1 - '@types/lodash-es': 4.17.6 - '@types/micromatch': 4.0.2 - '@types/prettier': 2.7.1 - '@types/stylis': 4.0.2 - '@types/uuid': 8.3.4 - '@typescript-eslint/eslint-plugin': 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq - '@typescript-eslint/parser': 5.42.1_yygwinqv3a2io74xmwofqb7uka - chokidar: 3.5.3 - concurrently: 7.5.0 - coveralls: 3.1.1 - cpy-cli: 4.2.0 - cspell: 6.14.3 - globby: 13.1.2 - jison: 0.4.18 - js-base64: 3.7.2 - jsdom: 20.0.2 - micromatch: 4.0.5 - path-browserify: 1.0.1 - prettier: 2.7.1 - remark: 14.0.2 - remark-frontmatter: 4.0.1 - remark-gfm: 3.0.1 - rimraf: 3.0.2 - start-server-and-test: 1.14.0 - typedoc: 0.23.18_typescript@4.8.4 - typedoc-plugin-markdown: 3.13.6_typedoc@0.23.18 - typescript: 4.8.4 - unist-util-flatmap: 1.0.0 - vitepress: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y - vitepress-plugin-search: 1.0.4-alpha.16_4vhf5pdiohzt3iya6parl37qd4 + '@types/d3': + specifier: ^7.4.0 + version: 7.4.0 + '@types/dompurify': + specifier: ^2.4.0 + version: 2.4.0 + '@types/jsdom': + specifier: ^20.0.1 + version: 20.0.1 + '@types/lodash-es': + specifier: ^4.17.6 + version: 4.17.6 + '@types/micromatch': + specifier: ^4.0.2 + version: 4.0.2 + '@types/prettier': + specifier: ^2.7.1 + version: 2.7.1 + '@types/stylis': + specifier: ^4.0.2 + version: 4.0.2 + '@types/uuid': + specifier: ^8.3.4 + version: 8.3.4 + '@typescript-eslint/eslint-plugin': + specifier: ^5.42.1 + version: 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq + '@typescript-eslint/parser': + specifier: ^5.42.1 + version: 5.42.1_yygwinqv3a2io74xmwofqb7uka + chokidar: + specifier: ^3.5.3 + version: 3.5.3 + concurrently: + specifier: ^7.5.0 + version: 7.5.0 + coveralls: + specifier: ^3.1.1 + version: 3.1.1 + cpy-cli: + specifier: ^4.2.0 + version: 4.2.0 + cspell: + specifier: ^6.14.3 + version: 6.14.3 + globby: + specifier: ^13.1.2 + version: 13.1.2 + jison: + specifier: ^0.4.18 + version: 0.4.18 + js-base64: + specifier: ^3.7.2 + version: 3.7.2 + jsdom: + specifier: ^20.0.2 + version: 20.0.2 + micromatch: + specifier: ^4.0.5 + version: 4.0.5 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + prettier: + specifier: ^2.7.1 + version: 2.7.1 + remark: + specifier: ^14.0.2 + version: 14.0.2 + remark-frontmatter: + specifier: ^4.0.1 + version: 4.0.1 + remark-gfm: + specifier: ^3.0.1 + version: 3.0.1 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + start-server-and-test: + specifier: ^1.14.0 + version: 1.14.0 + typedoc: + specifier: ^0.23.18 + version: 0.23.18_typescript@4.8.4 + typedoc-plugin-markdown: + specifier: ^3.13.6 + version: 3.13.6_typedoc@0.23.18 + typescript: + specifier: ^4.8.4 + version: 4.8.4 + unist-util-flatmap: + specifier: ^1.0.0 + version: 1.0.0 + vitepress: + specifier: ^1.0.0-alpha.31 + version: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y + vitepress-plugin-search: + specifier: ^1.0.4-alpha.16 + version: 1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am packages/mermaid-example-diagram: - specifiers: - concurrently: ^7.5.0 - rimraf: ^3.0.2 devDependencies: - concurrently: 7.5.0 - rimraf: 3.0.2 + concurrently: + specifier: ^7.5.0 + version: 7.5.0 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 packages/mermaid-mindmap: - specifiers: - '@braintree/sanitize-url': ^6.0.0 - '@types/cytoscape': ^3.19.9 - concurrently: ^7.5.0 - cytoscape: ^3.23.0 - cytoscape-cose-bilkent: ^4.1.0 - cytoscape-fcose: ^2.1.0 - d3: ^7.0.0 - khroma: ^2.0.0 - mermaid: workspace:* - non-layered-tidy-tree-layout: ^2.0.2 - rimraf: ^3.0.2 - dependencies: - '@braintree/sanitize-url': 6.0.0 - cytoscape: 3.23.0 - cytoscape-cose-bilkent: 4.1.0_cytoscape@3.23.0 - cytoscape-fcose: 2.1.0_cytoscape@3.23.0 - d3: 7.6.1 - khroma: 2.0.0 - non-layered-tidy-tree-layout: 2.0.2 + dependencies: + '@braintree/sanitize-url': + specifier: ^6.0.0 + version: 6.0.0 + cytoscape: + specifier: ^3.23.0 + version: 3.23.0 + cytoscape-cose-bilkent: + specifier: ^4.1.0 + version: 4.1.0_cytoscape@3.23.0 + cytoscape-fcose: + specifier: ^2.1.0 + version: 2.1.0_cytoscape@3.23.0 + d3: + specifier: ^7.0.0 + version: 7.6.1 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + non-layered-tidy-tree-layout: + specifier: ^2.0.2 + version: 2.0.2 devDependencies: - '@types/cytoscape': 3.19.9 - concurrently: 7.5.0 - mermaid: link:../mermaid - rimraf: 3.0.2 + '@types/cytoscape': + specifier: ^3.19.9 + version: 3.19.9 + concurrently: + specifier: ^7.5.0 + version: 7.5.0 + mermaid: + specifier: workspace:* + version: link:../mermaid + rimraf: + specifier: ^3.0.2 + version: 3.0.2 tests/webpack: - specifiers: - '@mermaid-js/mermaid-mindmap': workspace:* - mermaid: workspace:* - webpack: ^5.74.0 - webpack-cli: ^4.10.0 - webpack-dev-server: ^4.11.1 - dependencies: - '@mermaid-js/mermaid-mindmap': link:../../packages/mermaid-mindmap - mermaid: link:../../packages/mermaid + dependencies: + '@mermaid-js/mermaid-mindmap': + specifier: workspace:* + version: link:../../packages/mermaid-mindmap + mermaid: + specifier: workspace:* + version: link:../../packages/mermaid devDependencies: - webpack: 5.75.0_webpack-cli@4.10.0 - webpack-cli: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi - webpack-dev-server: 4.11.1_pda42hcaj7d62cr262fr632kue + webpack: + specifier: ^5.74.0 + version: 5.75.0_webpack-cli@4.10.0 + webpack-cli: + specifier: ^4.10.0 + version: 4.10.0_uaydpeuxkjjcxdbyfgk36cjdxi + webpack-dev-server: + specifier: ^4.11.1 + version: 4.11.1_pda42hcaj7d62cr262fr632kue packages: @@ -1234,8 +1345,8 @@ packages: '@cspell/dict-docker': 1.1.3 '@cspell/dict-dotnet': 4.0.0 '@cspell/dict-elixir': 4.0.0 - '@cspell/dict-en_us': 4.1.0 '@cspell/dict-en-gb': 1.1.33 + '@cspell/dict-en_us': 4.1.0 '@cspell/dict-filetypes': 3.0.0 '@cspell/dict-fonts': 3.0.0 '@cspell/dict-fullstack': 3.0.0 @@ -1282,8 +1393,8 @@ packages: '@cspell/dict-docker': 1.1.3 '@cspell/dict-dotnet': 4.0.0 '@cspell/dict-elixir': 4.0.0 - '@cspell/dict-en_us': 4.1.0 '@cspell/dict-en-gb': 1.1.33 + '@cspell/dict-en_us': 4.1.0 '@cspell/dict-filetypes': 3.0.0 '@cspell/dict-fonts': 3.0.0 '@cspell/dict-fullstack': 3.0.0 @@ -3747,8 +3858,10 @@ packages: indent-string: 5.0.0 dev: true - /ajv-formats/2.1.1: + /ajv-formats/2.1.1_ajv@8.11.0: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -3993,7 +4106,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -4700,8 +4813,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -5413,8 +5526,8 @@ packages: d3-zoom: 3.0.0 dev: false - /d3/7.7.0: - resolution: {integrity: sha512-VEwHCMgMjD2WBsxeRGUE18RmzxT9Bn7ghDpzvTEvkLSBAKgTMydJjouZTjspgQfRHpPt/PB3EHWBa6SSyFQq4g==} + /d3/7.8.2: + resolution: {integrity: sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ==} engines: {node: '>=12'} dependencies: d3-array: 3.2.0 @@ -5449,10 +5562,10 @@ packages: d3-zoom: 3.0.0 dev: false - /dagre-d3-es/7.0.6: - resolution: {integrity: sha512-CaaE/nZh205ix+Up4xsnlGmpog5GGm81Upi2+/SBHxwNwrccBb3K51LzjZ1U6hgvOlAEUsVWf1xSTzCyKpJ6+Q==} + /dagre-d3-es/7.0.8: + resolution: {integrity: sha512-eykdoYQ4FwCJinEYS0gPL2f2w+BPbSLvnQSJ3Ye1vAoPjdkq6xIMKBv+UkICd3qZE26wBKIn3p+6n0QC7R1LyA==} dependencies: - d3: 7.7.0 + d3: 7.8.2 lodash-es: 4.17.21 dev: false @@ -6791,7 +6904,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2_debug@4.3.2: + /follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6799,8 +6912,6 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -7340,7 +7451,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -8210,12 +8321,12 @@ packages: engines: {node: '>=0.4'} hasBin: true dependencies: + JSONSelect: 0.4.0 cjson: 0.3.0 ebnf-parser: 0.1.10 escodegen: 1.3.3 esprima: 1.1.1 jison-lex: 0.3.4 - JSONSelect: 0.4.0 lex-parser: 0.1.4 nomnom: 1.5.2 dev: true @@ -10488,7 +10599,7 @@ packages: dependencies: '@types/json-schema': 7.0.11 ajv: 8.11.0 - ajv-formats: 2.1.1 + ajv-formats: 2.1.1_ajv@8.11.0 ajv-keywords: 5.1.0_ajv@8.11.0 dev: true @@ -11664,6 +11775,39 @@ packages: - terser dev: true + /vite/3.2.3: + resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.15.13 + postcss: 8.4.18 + resolve: 1.22.1 + rollup: 2.79.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vite/3.2.3_@types+node@18.11.9: resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -11765,7 +11909,7 @@ packages: fsevents: 2.3.2 dev: true - /vitepress-plugin-search/1.0.4-alpha.16_4vhf5pdiohzt3iya6parl37qd4: + /vitepress-plugin-search/1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am: resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: @@ -11778,6 +11922,7 @@ packages: '@types/markdown-it': 12.2.3 flexsearch: 0.7.31 markdown-it: 13.0.1 + vite: 3.2.3 vitepress: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.45 dev: true From 84d563584f7ba841db2acf5e20228b7d34490110 Mon Sep 17 00:00:00 2001 From: Natasha Jarus Date: Fri, 27 Jan 2023 10:34:42 -0800 Subject: [PATCH 0966/1038] bugfix: add missing d3 curves to flowchart and docs --- docs/syntax/flowchart.md | 4 ++-- .../diagrams/sequence/sequenceDiagram.spec.js | 10 +++++++++- packages/mermaid/src/docs/syntax/flowchart.md | 4 ++-- packages/mermaid/src/utils.ts | 18 ++++++++++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md index 0ef94d24b4..6ef8a10468 100644 --- a/docs/syntax/flowchart.md +++ b/docs/syntax/flowchart.md @@ -842,8 +842,8 @@ In the example below the style defined in the linkStyle statement will belong to ### Styling line curves It is possible to style the type of curve used for lines between items, if the default method does not meet your needs. -Available curve styles include `basis`, `bump`, `linear`, `monotoneX`, `monotoneY`, `natural`, `step`, `stepAfter`, -and `stepBefore`. +Available curve styles include `basis`, `bumpX`, `bumpY`, `cardinal`, `catmullRom`, `linear`, `monotoneX`, `monotoneY`, +`natural`, `step`, `stepAfter`, and `stepBefore`. In this example, a left-to-right graph uses the `stepBefore` curve style: diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index c509fdae55..8132a2666f 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -52,8 +52,16 @@ vi.mock('d3', () => { curveBasis: 'basis', curveBasisClosed: 'basisClosed', curveBasisOpen: 'basisOpen', - curveLinear: 'linear', + curveBumpX: 'bumpX', + curveBumpY: 'bumpY', + curveBundle: 'bundle', + curveCardinalClosed: 'cardinalClosed', + curveCardinalOpen: 'cardinalOpen', curveCardinal: 'cardinal', + curveCatmullRomClosed: 'catmullRomClosed', + curveCatmullRomOpen: 'catmullRomOpen', + curveCatmullRom: 'catmullRom', + curveLinear: 'linear', curveLinearClosed: 'linearClosed', curveMonotoneX: 'monotoneX', curveMonotoneY: 'monotoneY', diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md index 4ca3c5466b..587b3b1fcd 100644 --- a/packages/mermaid/src/docs/syntax/flowchart.md +++ b/packages/mermaid/src/docs/syntax/flowchart.md @@ -552,8 +552,8 @@ linkStyle 3 stroke:#ff3,stroke-width:4px,color:red; ### Styling line curves It is possible to style the type of curve used for lines between items, if the default method does not meet your needs. -Available curve styles include `basis`, `bump`, `linear`, `monotoneX`, `monotoneY`, `natural`, `step`, `stepAfter`, -and `stepBefore`. +Available curve styles include `basis`, `bumpX`, `bumpY`, `cardinal`, `catmullRom`, `linear`, `monotoneX`, `monotoneY`, +`natural`, `step`, `stepAfter`, and `stepBefore`. In this example, a left-to-right graph uses the `stepBefore` curve style: diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 876c815436..76fce19991 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -4,6 +4,15 @@ import { curveBasis, curveBasisClosed, curveBasisOpen, + curveBumpX, + curveBumpY, + curveBundle, + curveCardinalClosed, + curveCardinalOpen, + curveCardinal, + curveCatmullRomClosed, + curveCatmullRomOpen, + curveCatmullRom, CurveFactory, curveLinear, curveLinearClosed, @@ -28,6 +37,15 @@ const d3CurveTypes = { curveBasis: curveBasis, curveBasisClosed: curveBasisClosed, curveBasisOpen: curveBasisOpen, + curveBumpX: curveBumpX, + curveBumpY: curveBumpY, + curveBundle: curveBundle, + curveCardinalClosed: curveCardinalClosed, + curveCardinalOpen: curveCardinalOpen, + curveCardinal: curveCardinal, + curveCatmullRomClosed: curveCatmullRomClosed, + curveCatmullRomOpen: curveCatmullRomOpen, + curveCatmullRom: curveCatmullRom, curveLinear: curveLinear, curveLinearClosed: curveLinearClosed, curveMonotoneX: curveMonotoneX, From 73ee9e9a92af9e7f1e789ea7db346b500c2c10f4 Mon Sep 17 00:00:00 2001 From: Omer Rosenbaum <52040016+Omerr@users.noreply.github.com> Date: Tue, 7 Feb 2023 19:45:48 +0200 Subject: [PATCH 0967/1038] Showcase section to the docs - keepings docs up to date (#4055) * Add a Showcase section to the docs with Swimm * Build docs * Move FAQ to Config * Create showcases page * Build docs * Prettier * feat: Redirect old docs URLs --------- Co-authored-by: Sidharth Vinod --- docs/{misc => config}/faq.md | 2 +- docs/{misc => ecosystem}/integrations.md | 2 +- docs/ecosystem/showcases.md | 9 +++++ .../mermaid/src/docs/.vitepress/config.ts | 11 +++--- .../src/docs/.vitepress/theme/index.ts | 3 -- .../docs/.vitepress/theme/redirect.spec.ts | 37 ++++++++++--------- .../src/docs/.vitepress/theme/redirect.ts | 32 ++++++++-------- .../mermaid/src/docs/{misc => config}/faq.md | 0 .../docs/{misc => ecosystem}/integrations.md | 0 .../mermaid/src/docs/ecosystem/showcases.md | 3 ++ 10 files changed, 57 insertions(+), 42 deletions(-) rename docs/{misc => config}/faq.md (94%) rename docs/{misc => ecosystem}/integrations.md (99%) create mode 100644 docs/ecosystem/showcases.md rename packages/mermaid/src/docs/{misc => config}/faq.md (100%) rename packages/mermaid/src/docs/{misc => ecosystem}/integrations.md (100%) create mode 100644 packages/mermaid/src/docs/ecosystem/showcases.md diff --git a/docs/misc/faq.md b/docs/config/faq.md similarity index 94% rename from docs/misc/faq.md rename to docs/config/faq.md index c7155a5b0e..76132762a1 100644 --- a/docs/misc/faq.md +++ b/docs/config/faq.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/misc/faq.md](../../packages/mermaid/src/docs/misc/faq.md). +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/faq.md](../../packages/mermaid/src/docs/config/faq.md). # Frequently Asked Questions diff --git a/docs/misc/integrations.md b/docs/ecosystem/integrations.md similarity index 99% rename from docs/misc/integrations.md rename to docs/ecosystem/integrations.md index c14e4febbe..33b6b966e5 100644 --- a/docs/misc/integrations.md +++ b/docs/ecosystem/integrations.md @@ -2,7 +2,7 @@ > > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. > -> ## Please edit the corresponding file in [/packages/mermaid/src/docs/misc/integrations.md](../../packages/mermaid/src/docs/misc/integrations.md). +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/ecosystem/integrations.md](../../packages/mermaid/src/docs/ecosystem/integrations.md). # Integrations diff --git a/docs/ecosystem/showcases.md b/docs/ecosystem/showcases.md new file mode 100644 index 0000000000..9f18103b9b --- /dev/null +++ b/docs/ecosystem/showcases.md @@ -0,0 +1,9 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/ecosystem/showcases.md](../../packages/mermaid/src/docs/ecosystem/showcases.md). + +# Showcases + +- [Swimm - Up-to-date diagrams with Swimm, the knowledge management tool for code](https://docs.swimm.io/Features/diagrams-and-charts). diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 9b5f1547e8..a6d1579bbf 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -77,8 +77,8 @@ function sidebarAll() { ], }, ...sidebarSyntax(), + ...sidebarEcosystem(), ...sidebarConfig(), - ...sidebarMisc(), ...sidebarCommunity(), ]; } @@ -125,19 +125,20 @@ function sidebarConfig() { { text: 'Accessibility', link: '/config/accessibility' }, { text: 'Mermaid CLI', link: '/config/mermaidCLI' }, { text: 'Advanced usage', link: '/config/n00b-advanced' }, + { text: 'FAQ', link: '/config/faq' }, ], }, ]; } -function sidebarMisc() { +function sidebarEcosystem() { return [ { - text: '📚 Misc', + text: '📚 Ecosystem', collapsible: true, items: [ - { text: 'Use-Cases and Integrations', link: '/misc/integrations' }, - { text: 'FAQ', link: '/misc/faq' }, + { text: 'Showcases', link: '/ecosystem/showcases' }, + { text: 'Use-Cases and Integrations', link: '/ecosystem/integrations' }, ], }, ]; diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index ef929aa5db..273880d91a 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -10,9 +10,6 @@ export default { // register global components app.component('Mermaid', Mermaid); router.onBeforeRouteChange = (to) => { - if (router.route.path !== '/') { - return; - } try { const newPath = getRedirect(to); if (newPath) { diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts index 6070abee44..ec04042642 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts @@ -5,31 +5,34 @@ import { expect, test } from 'vitest'; import { getRedirect } from './redirect'; test.each([ + // Old docs, localhost ['http://localhost:1234/mermaid/#/flowchart.md', 'syntax/flowchart.html'], ['http://localhost/mermaid/#/flowchart.md', 'syntax/flowchart.html'], - ['https://mermaid-js.github.io/mermaid/#/flowchart.md', 'syntax/flowchart.html'], - ['https://mermaid.js.org/#/flowchart.md', 'syntax/flowchart.html'], - ['https://mermaid-js.github.io/mermaid/#/./flowchart', 'syntax/flowchart.html'], - ['https://mermaid-js.github.io/mermaid/#/flowchart', 'syntax/flowchart.html'], - ['https://mermaid-js.github.io/mermaid/#flowchart', 'syntax/flowchart.html'], - ['https://mermaid-js.github.io/mermaid/#/flowchart', 'syntax/flowchart.html'], - ['https://mermaid-js.github.io/mermaid/#/flowchart.md?id=my-id', 'syntax/flowchart.html#my-id'], - ['https://mermaid-js.github.io/mermaid/#/./flowchart.md?id=my-id', 'syntax/flowchart.html#my-id'], + // Old docs, github pages + ['https://mermaid-js.github.io/mermaid/#/flowchart.md', 'syntax/flowchart.html'], // without dot + ['https://mermaid-js.github.io/mermaid/#/./flowchart', 'syntax/flowchart.html'], // with dot + ['https://mermaid-js.github.io/mermaid/#flowchart', 'syntax/flowchart.html'], // without slash + ['https://mermaid-js.github.io/mermaid/#/flowchart', 'syntax/flowchart.html'], // with slash + ['https://mermaid-js.github.io/mermaid/#/flowchart.md?id=my-id', 'syntax/flowchart.html#my-id'], // with id + ['https://mermaid-js.github.io/mermaid/#/./flowchart.md?id=my-id', 'syntax/flowchart.html#my-id'], // with id and dot [ - 'https://mermaid-js.github.io/mermaid/#/flowchart?another=test&id=my-id&one=more', + 'https://mermaid-js.github.io/mermaid/#/flowchart?another=test&id=my-id&one=more', // with multiple params 'syntax/flowchart.html#my-id', ], - ['https://mermaid-js.github.io/mermaid/#/n00b-advanced', 'config/n00b-advanced.html'], - ['https://mermaid-js.github.io/mermaid/#/n00b-advanced.md', 'config/n00b-advanced.html'], + ['https://mermaid-js.github.io/mermaid/#/n00b-advanced', 'config/n00b-advanced.html'], // without .md + ['https://mermaid-js.github.io/mermaid/#/n00b-advanced.md', 'config/n00b-advanced.html'], // with .md [ - 'https://mermaid-js.github.io/mermaid/#/flowchart?id=a-node-in-the-form-of-a-circle', + 'https://mermaid-js.github.io/mermaid/#/flowchart?id=a-node-in-the-form-of-a-circle', // with id, without .md 'syntax/flowchart.html#a-node-in-the-form-of-a-circle', ], + // Old docs, without base path, new domain + ['https://mermaid.js.org/#/flowchart.md', 'syntax/flowchart.html'], + // New docs, without base path, new domain + ['https://mermaid.js.org/misc/faq.html', 'configure/faq.html'], + [ + 'https://mermaid.js.org/misc/faq.html#frequently-asked-questions', + 'configure/faq.html#frequently-asked-questions', + ], // with hash ])('should process url %s to %s', (link: string, path: string) => { expect(getRedirect(link)).toBe(path); }); - -test('should throw for invalid URL', () => { - // Not mermaid domain - expect(() => getRedirect('https://www.google.com')).toThrowError(); -}); diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts index 58537b0ef5..0109aea10d 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts @@ -1,4 +1,4 @@ -export interface Redirect { +interface Redirect { path: string; id?: string; } @@ -7,15 +7,7 @@ export interface Redirect { * Extracts the base slug from the old URL. * @param link - The old URL. */ -const getBaseFile = (link: string): Redirect => { - const url = new URL(link); - if ( - url.hostname !== 'mermaid-js.github.io' && - url.hostname !== 'mermaid.js.org' && - url.hostname !== 'localhost' - ) { - throw new Error('Not mermaidjs url'); - } +const getBaseFile = (url: URL): Redirect => { const [path, params, ...rest] = url.hash .toLowerCase() .replace('.md', '') @@ -32,7 +24,7 @@ const getBaseFile = (link: string): Redirect => { return { path, id }; }; -const redirectMap: Record = { +const idRedirectMap: Record = { '8.6.0_docs': '', accessibility: 'config/theming', breakingchanges: '', @@ -76,15 +68,25 @@ const redirectMap: Record = { 'user-journey': 'syntax/userJourney', }; +const urlRedirectMap: Record = { + '/misc/faq.html': 'configure/faq.html', +}; + /** * * @param link - The old documentation URL. * @returns The new documentation path. */ export const getRedirect = (link: string): string | undefined => { - const { path, id } = getBaseFile(link); - if (!(path in redirectMap)) { - return; + const url = new URL(link); + // Redirects for deprecated vitepress URLs + if (url.pathname in urlRedirectMap) { + return `${urlRedirectMap[url.pathname]}${url.hash}`; + } + + // Redirects for old docs URLs + const { path, id } = getBaseFile(url); + if (path in idRedirectMap) { + return `${idRedirectMap[path]}.html${id ? `#${id}` : ''}`; } - return `${redirectMap[path]}.html${id ? `#${id}` : ''}`; }; diff --git a/packages/mermaid/src/docs/misc/faq.md b/packages/mermaid/src/docs/config/faq.md similarity index 100% rename from packages/mermaid/src/docs/misc/faq.md rename to packages/mermaid/src/docs/config/faq.md diff --git a/packages/mermaid/src/docs/misc/integrations.md b/packages/mermaid/src/docs/ecosystem/integrations.md similarity index 100% rename from packages/mermaid/src/docs/misc/integrations.md rename to packages/mermaid/src/docs/ecosystem/integrations.md diff --git a/packages/mermaid/src/docs/ecosystem/showcases.md b/packages/mermaid/src/docs/ecosystem/showcases.md new file mode 100644 index 0000000000..0c756759f2 --- /dev/null +++ b/packages/mermaid/src/docs/ecosystem/showcases.md @@ -0,0 +1,3 @@ +# Showcases + +- [Swimm - Up-to-date diagrams with Swimm, the knowledge management tool for code](https://docs.swimm.io/Features/diagrams-and-charts). From 6a045db83cea7b98acca475fc984141e893dae10 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 8 Feb 2023 11:24:09 +0100 Subject: [PATCH 0968/1038] Fix for e2e issue with mindmap tests, not related to timeline --- packages/mermaid-mindmap/src/svgDraw.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid-mindmap/src/svgDraw.js index 79eab6e1da..2b1aa021e2 100644 --- a/packages/mermaid-mindmap/src/svgDraw.js +++ b/packages/mermaid-mindmap/src/svgDraw.js @@ -206,10 +206,11 @@ export const drawNode = function (elem, node, fullSection, conf) { const section = fullSection % (MAX_SECTIONS - 1); const nodeElem = elem.append('g'); node.section = section; - nodeElem.attr( - 'class', - (node.class ? node.class + ' ' : '') + 'mindmap-node ' + ('section-' + section) - ); + let sectionClass = 'section-' + section; + if (section < 0) { + sectionClass += ' section-root'; + } + nodeElem.attr('class', (node.class ? node.class + ' ' : '') + 'mindmap-node ' + sectionClass); const bkgElem = nodeElem.append('g'); // Create the wrapped text element From 7f254e37e96f13d246ed84832f881fedf2996c65 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 8 Feb 2023 16:01:29 +0530 Subject: [PATCH 0969/1038] Cleanup --- .vite/build.ts | 30 +- .vite/server.ts | 5 +- Setup.md | 1755 ----------------- .../diagrams/timeline/diagram-definition.ts | 2 - .../src/diagrams/timeline/mermaidUtils.ts | 72 - .../diagrams/timeline/parser/timeline.jison | 2 +- 6 files changed, 3 insertions(+), 1863 deletions(-) delete mode 100644 Setup.md delete mode 100644 packages/mermaid/src/diagrams/timeline/mermaidUtils.ts diff --git a/.vite/build.ts b/.vite/build.ts index 16f8a8c88f..019461c499 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -41,26 +41,6 @@ const packageOptions = { packageName: 'mermaid-mindmap', file: 'detector.ts', }, - // 'mermaid-timeline': { - // name: 'mermaid-timeline', - // packageName: 'mermaid-timeline', - // file: 'detector.ts', - // }, - // 'mermaid-timeline-detector': { - // name: 'mermaid-timeline-detector', - // packageName: 'mermaid-timeline', - // file: 'detector.ts', - // }, - // 'mermaid-example-diagram': { - // name: 'mermaid-example-diagram', - // packageName: 'mermaid-example-diagram', - // file: 'diagram-definition.ts', - // }, - // 'mermaid-example-diagram-detector': { - // name: 'mermaid-example-diagram-detector', - // packageName: 'mermaid-example-diagram', - // file: 'detector.ts', - // }, }; interface BuildOptions { @@ -134,12 +114,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) if (watch && config.build) { config.build.watch = { - include: [ - 'packages/mermaid-mindmap/src/**', - 'packages/mermaid/src/**', - // 'packages/mermaid-example-diagram/src/**', - // 'packages/mermaid-timeline/src/**', - ], + include: ['packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**'], }; } @@ -165,9 +140,6 @@ if (watch) { build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' })); if (!mermaidOnly) { build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); - // build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); - //build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-timeline' })); - //build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-timeline-detector' })); } } else if (visualize) { await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' })); diff --git a/.vite/server.ts b/.vite/server.ts index a0baade336..aced396ecb 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -1,6 +1,5 @@ import express, { NextFunction, Request, Response } from 'express'; import { createServer as createViteServer } from 'vite'; -// import { getBuildConfig } from './build'; const cors = (req: Request, res: Response, next: NextFunction) => { res.header('Access-Control-Allow-Origin', '*'); @@ -22,9 +21,8 @@ async function createServer() { app.use(cors); app.use(express.static('./packages/mermaid/dist')); - app.use(express.static('./packages/mermaid-example-diagram/dist')); + // app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(express.static('./packages/mermaid-mindmap/dist')); - //app.use(express.static('./packages/mermaid-timeline/dist')); app.use(vite.middlewares); app.use(express.static('demos')); app.use(express.static('cypress/platform')); @@ -34,5 +32,4 @@ async function createServer() { }); } -// build(getBuildConfig({ minify: false, watch: true })); createServer(); diff --git a/Setup.md b/Setup.md deleted file mode 100644 index 4d09fcfcad..0000000000 --- a/Setup.md +++ /dev/null @@ -1,1755 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs. - - - -## mermaidAPI - -This is the API to be used when optionally handling the integration with the web page, instead of -using the default integration provided by mermaid.js. - -The core of this api is the [**render**][1] function which, given a graph -definition as text, renders the graph/diagram and returns an svg element for the graph. - -It is then up to the user of the API to make use of the svg, either insert it somewhere in the -page or do something completely different. - -In addition to the render function, a number of behavioral configuration options are available. - -## Configuration - -**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click -here][2]].** - -## **What follows are config instructions for older versions** - -These are the default options which can be overridden with the initialization call like so: - -**Example 1:**
     mermaid.initialize({ flowchart:{ htmlLabels: false } }); 
    - -**Example 2:**
      
    - -A summary of all options and their defaults is found [here][3]. -A description of each option follows below. - -## theme - -Theme , the CSS style sheet - -| Parameter | Description | Type | Required | Values | -| --------- | --------------- | ------ | -------- | ---------------------------------------------- | -| theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' | - -**Notes:** To disable any pre-defined mermaid theme, use "null".
     "theme": "forest",
    -"themeCSS": ".node rect { fill: red; }" 
    - -## fontFamily - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- | -| fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'. - -## logLevel - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------------------------- | ------ | -------- | -------- | --------------------------------------------- | -| logLevel | This option decides the amount of logging to be used. | string | number | Required | 'trace','debug','info','warn','error','fatal' | - -**Notes:** - -- Trace: 0 -- Debug: 1 -- Info: 2 -- Warn: 3 -- Error: 4 -- Fatal: 5 (default) - -## securityLevel - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ | -| securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' | - -**Notes**: - -- **strict**: (**default**) tags in text are encoded, click functionality is disabled -- **loose**: tags in text are allowed, click functionality is enabled -- **antiscript**: html tags in text are allowed, (only script element is removed), click - functionality is enabled -- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This - prevent any JavaScript from running in the context. This may hinder interactive functionality - of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc. - -## startOnLoad - -| Parameter | Description | Type | Required | Values | -| ----------- | -------------------------------------------- | ------- | -------- | ----------- | -| startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false | - -**Notes:** Default value: true - -## arrowMarkerAbsolute - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- | -| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false | - -**Notes**: - -This matters if you are using base tag settings. - -Default value: false - -## secure - -This option controls which currentConfig keys are considered _secure_ and can only be changed -via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the -`secure` keys in the current currentConfig. This prevents malicious graph directives from -overriding a site's default security. - -**Notes**: - -Default value: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] - -## deterministicIds - -This option controls if the generated ids of nodes in the SVG are generated randomly or based -on a seed. If set to false, the IDs are generated based on the current date and thus are not -deterministic. This is the default behaviour. - -**Notes**: - -This matters if your files are checked into sourcecontrol e.g. git and should not change unless -content is changed. - -Default value: false - -## deterministicIDSeed - -This option is the optional seed for deterministic ids. if set to undefined but -deterministicIds is true, a simple number iterator is used. You can set this attribute to base -the seed on a static string. - -## flowchart - -The object containing configurations specific for flowcharts - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 8 - -### htmlLabels - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | -| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false | - -**Notes:** Default value: true. - -### nodeSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------------------------- | ------- | -------- | ------------------- | -| nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number | - -**Notes:** - -Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the -vertical spacing for LR as well as RL graphs.\*\* - -Default value: 50 - -### rankSpacing - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- | -| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number | - -**Notes**: - -Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal -spacing for LR as well as RL graphs. - -Default value 50 - -### curve - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- | -| curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' | - -**Notes:** - -Default Value: 'basis' - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ----------------------- | -| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - -Default value: 'dagre-wrapper' - -## sequence - -The object containing configurations specific for sequence diagrams - -### activationWidth - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------- | ------- | -------- | ------------------ | -| activationWidth | Width of the activation rect | Integer | Required | Any Positive Value | - -**Notes:** Default value :10 - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### actorMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ---------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------ | -------- | ------------------------- | -| messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### mirrorActors - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ------- | -------- | ----------- | -| mirrorActors | Mirror actors under diagram | boolean | Required | true, false | - -**Notes:** Default value: true - -### forceMenus - -| Parameter | Description | Type | Required | Values | -| ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- | -| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False | - -**Notes:** - -Default value: false. - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | ------------------------------------ | ------- | -------- | ----------- | -| rightAngles | display curve arrows as right angles | boolean | Required | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curve - -Default value: false - -### showSequenceNumbers - -| Parameter | Description | Type | Required | Values | -| ------------------- | ------------------------------- | ------- | -------- | ----------- | -| showSequenceNumbers | This will show the node numbers | boolean | Required | true, false | - -**Notes:** Default value: false - -### actorFontSize - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value | - -**Notes:** **Default value 14**.. - -### actorFontFamily - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- | -| actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: "'Open Sans", sans-serif' - -### actorFontWeight - -This sets the font weight of the actor's description - -**Notes:** Default value: 400. - -### noteFontSize - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------- | ------- | -------- | ------------------ | -| noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 14 - -### noteFontFamily - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- | -| noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif' - -### noteFontWeight - -This sets the font weight of the note's description - -**Notes:** Default value: 400 - -### noteAlign - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- | -| noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### messageFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------------- | ------- | -------- | ------------------- | -| messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number | - -**Notes:** Default value: 16 - -### messageFontFamily - -| Parameter | Description | Type | Required | Values | -| ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- | -| messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily | - -**Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif' - -### messageFontWeight - -This sets the font weight of the message's description - -**Notes:** Default value: 400. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: false. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -### labelBoxWidth - -This sets the width of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 50. - -### labelBoxHeight - -This sets the height of the loop-box (loop, alt, opt, par) - -**Notes:** Default value: 20. - -## gantt - -The object containing configurations specific for gantt diagrams - -### titleTopMargin - -### titleTopMargin - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 25 - -### barHeight - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------- | -------- | ------------------ | -| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### barGap - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ | -| barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value | - -**Notes:** Default value: 4 - -### topPadding - -| Parameter | Description | Type | Required | Values | -| ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ | -| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### rightPadding - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ | -| rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### leftPadding - -| Parameter | Description | Type | Required | Values | -| ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ | -| leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value | - -**Notes:** Default value: 75 - -### gridLineStartPadding - -| Parameter | Description | Type | Required | Values | -| -------------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value | - -**Notes:** Default value: 35 - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ------------------ | -| fontSize | Font size | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### sectionFontSize - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------- | ------- | -------- | ------------------ | -| sectionFontSize | Font size for sections | Integer | Required | Any Positive Value | - -**Notes:** Default value: 11 - -### numberSectionStyles - -| Parameter | Description | Type | Required | Values | -| ------------------- | ---------------------------------------- | ------- | -------- | ------------------ | -| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value | - -**Notes:** Default value: 4 - -### axisFormat - -| Parameter | Description | Type | Required | Values | -| ---------- | --------------------------- | ---- | -------- | ---------------- | -| axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd | - -**Notes:** - -This might need adjustment to match your locale and preferences - -Default value: '%Y-%m-%d'. - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### topAxis - -| Parameter | Description | Type | Required | Values | -| --------- | ----------- | ------- | -------- | ----------- | -| topAxis | See notes | Boolean | 4 | True, False | - -**Notes:** when this flag is set date labels will be added to the top of the chart - -**Default value false**. - -## journey - -The object containing configurations specific for journey diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### leftMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | Margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ----------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages. | Integer | Required | Any Positive Value | - -**Notes:** - -Space between messages. - -Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ---- | -------- | ------------------------- | -| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------- | ---- | -------- | ----------- | -| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curves - -Default value: false - -## timeline - -The object containing configurations specific for timeline diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | -------------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### leftMargin - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------- | ------- | -------- | ------------------ | -| actorMargin | Margin between actors | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------- | ------- | -------- | ------------------ | -| width | Width of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 150 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| height | Height of actor boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 65 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------------ | ------- | -------- | ------------------ | -| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### boxTextMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | -------------------------------------------- | ------- | -------- | ------------------ | -| boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 5 - -### noteMargin - -| Parameter | Description | Type | Required | Values | -| ---------- | ------------------- | ------- | -------- | ------------------ | -| noteMargin | Margin around notes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### messageMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | ----------------------- | ------- | -------- | ------------------ | -| messageMargin | Space between messages. | Integer | Required | Any Positive Value | - -**Notes:** - -Space between messages. - -Default value: 35 - -### messageAlign - -| Parameter | Description | Type | Required | Values | -| ------------ | --------------------------- | ---- | -------- | ------------------------- | -| messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' | - -**Notes:** Default value: 'center' - -### bottomMarginAdj - -| Parameter | Description | Type | Required | Values | -| --------------- | ------------------------------------------ | ------- | -------- | ------------------ | -| bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value | - -**Notes:** - -Depending on css styling this might need adjustment. - -Default value: 1 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -### rightAngles - -| Parameter | Description | Type | Required | Values | -| ----------- | --------------------------------- | ---- | -------- | ----------- | -| rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false | - -**Notes:** - -This will display arrows that start and begin at the same node as right angles, rather than a -curves - -Default value: false - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ----------------------- | -| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - -**Notes**: - -Decides which rendering engine that is to be used for the rendering. Legal values are: -dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - -Default value: 'dagre-d3' - -## useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See notes | boolean | 4 | true, false | - -**Notes:** - -When this flag is set the height and width is set to 100% and is then scaling with the -available space if not the absolute space required is used. - -Default value: true - -## defaultRenderer - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ----------------------- | -| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper | - -**Notes:** - -Decides which rendering engine that is to be used for the rendering. Legal values are: -dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid - -Default value: 'dagre-d3' - -## er - -The object containing configurations specific for entity relationship diagrams - -### diagramPadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ----------------------------------------------- | ------- | -------- | ------------------ | -| diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value | - -**Notes:** - -The amount of padding around the diagram as a whole so that embedded diagrams have margins, -expressed in pixels - -Default value: 20 - -### layoutDirection - -| Parameter | Description | Type | Required | Values | -| --------------- | ---------------------------------------- | ------ | -------- | ---------------------- | -| layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" | - -**Notes:** - -'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left. - -T = top, B = bottom, L = left, and R = right. - -Default value: 'TB' - -### minEntityWidth - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------- | ------- | -------- | ------------------ | -| minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value | - -**Notes:** Expressed in pixels. Default value: 100 - -### minEntityHeight - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------------------------------- | ------- | -------- | ------------------ | -| minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value | - -**Notes:** Expressed in pixels Default value: 75 - -### entityPadding - -| Parameter | Description | Type | Required | Values | -| ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ | -| entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value | - -**Notes:** - -The minimum internal padding between text in an entity box and the enclosing box borders, -expressed in pixels. - -Default value: 15 - -### stroke - -| Parameter | Description | Type | Required | Values | -| --------- | ----------------------------------- | ------ | -------- | -------------------- | -| stroke | Stroke color of box edges and lines | string | 4 | Any recognized color | - -**Notes:** Default value: 'gray' - -### fill - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------- | ------ | -------- | -------------------- | -| fill | Fill color of entity boxes | string | 4 | Any recognized color | - -**Notes:** Default value: 'honeydew' - -### fontSize - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| fontSize | Font Size in pixels | Integer | | Any Positive Value | - -**Notes:** - -Font size (expressed as an integer representing a number of pixels) Default value: 12 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## pie - -The object containing configurations specific for pie diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## requirement - -The object containing configurations specific for req diagrams - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** - -When this flag is set to true, the diagram width is locked to 100% and scaled based on -available space. If set to false, the diagram reserves its absolute width. - -Default value: true - -## c4 - -The object containing configurations specific for c4 diagrams - -### diagramMarginX - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### diagramMarginY - -| Parameter | Description | Type | Required | Values | -| -------------- | ------------------------------------------- | ------- | -------- | ------------------ | -| diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### c4ShapeMargin - -| Parameter | Description | Type | Required | Values | -| ------------- | --------------------- | ------- | -------- | ------------------ | -| c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 50 - -### c4ShapePadding - -| Parameter | Description | Type | Required | Values | -| -------------- | ---------------------- | ------- | -------- | ------------------ | -| c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 20 - -### width - -| Parameter | Description | Type | Required | Values | -| --------- | --------------------- | ------- | -------- | ------------------ | -| width | Width of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 216 - -### height - -| Parameter | Description | Type | Required | Values | -| --------- | ---------------------- | ------- | -------- | ------------------ | -| height | Height of person boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 60 - -### boxMargin - -| Parameter | Description | Type | Required | Values | -| --------- | ------------------- | ------- | -------- | ------------------ | -| boxMargin | Margin around boxes | Integer | Required | Any Positive Value | - -**Notes:** Default value: 10 - -### useMaxWidth - -| Parameter | Description | Type | Required | Values | -| ----------- | ----------- | ------- | -------- | ----------- | -| useMaxWidth | See Notes | boolean | Required | true, false | - -**Notes:** When this flag is set to true, the height and width is set to 100% and is then -scaling with the available space. If set to false, the absolute space required is used. - -Default value: true - -### c4ShapeInRow - -| Parameter | Description | Type | Required | Values | -| ------------ | ----------- | ------- | -------- | ------------------ | -| c4ShapeInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many shapes to place in each row. - -Default value: 4 - -### c4BoundaryInRow - -| Parameter | Description | Type | Required | Values | -| --------------- | ----------- | ------- | -------- | ------------------ | -| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value | - -**Notes:** How many boundarys to place in each row. - -Default value: 2 - -### personFontSize - -This sets the font size of Person shape for the diagram - -**Notes:** Default value: 14. - -### personFontFamily - -This sets the font family of Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### personFontWeight - -This sets the font weight of Person shape for the diagram - -**Notes:** Default value: normal. - -### external_personFontSize - -This sets the font size of External Person shape for the diagram - -**Notes:** Default value: 14. - -### external_personFontFamily - -This sets the font family of External Person shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_personFontWeight - -This sets the font weight of External Person shape for the diagram - -**Notes:** Default value: normal. - -### systemFontSize - -This sets the font size of System shape for the diagram - -**Notes:** Default value: 14. - -### systemFontFamily - -This sets the font family of System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### systemFontWeight - -This sets the font weight of System shape for the diagram - -**Notes:** Default value: normal. - -### external_systemFontSize - -This sets the font size of External System shape for the diagram - -**Notes:** Default value: 14. - -### external_systemFontFamily - -This sets the font family of External System shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_systemFontWeight - -This sets the font weight of External System shape for the diagram - -**Notes:** Default value: normal. - -### system_dbFontSize - -This sets the font size of System DB shape for the diagram - -**Notes:** Default value: 14. - -### system_dbFontFamily - -This sets the font family of System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_dbFontWeight - -This sets the font weight of System DB shape for the diagram - -**Notes:** Default value: normal. - -### external_system_dbFontSize - -This sets the font size of External System DB shape for the diagram - -**Notes:** Default value: 14. - -### external_system_dbFontFamily - -This sets the font family of External System DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_dbFontWeight - -This sets the font weight of External System DB shape for the diagram - -**Notes:** Default value: normal. - -### system_queueFontSize - -This sets the font size of System Queue shape for the diagram - -**Notes:** Default value: 14. - -### system_queueFontFamily - -This sets the font family of System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### system_queueFontWeight - -This sets the font weight of System Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_system_queueFontSize - -This sets the font size of External System Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_system_queueFontFamily - -This sets the font family of External System Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_system_queueFontWeight - -This sets the font weight of External System Queue shape for the diagram - -**Notes:** Default value: normal. - -### boundaryFontSize - -This sets the font size of Boundary shape for the diagram - -**Notes:** Default value: 14. - -### boundaryFontFamily - -This sets the font family of Boundary shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### boundaryFontWeight - -This sets the font weight of Boundary shape for the diagram - -**Notes:** Default value: normal. - -### messageFontSize - -This sets the font size of Message shape for the diagram - -**Notes:** Default value: 12. - -### messageFontFamily - -This sets the font family of Message shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### messageFontWeight - -This sets the font weight of Message shape for the diagram - -**Notes:** Default value: normal. - -### containerFontSize - -This sets the font size of Container shape for the diagram - -**Notes:** Default value: 14. - -### containerFontFamily - -This sets the font family of Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### containerFontWeight - -This sets the font weight of Container shape for the diagram - -**Notes:** Default value: normal. - -### external_containerFontSize - -This sets the font size of External Container shape for the diagram - -**Notes:** Default value: 14. - -### external_containerFontFamily - -This sets the font family of External Container shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_containerFontWeight - -This sets the font weight of External Container shape for the diagram - -**Notes:** Default value: normal. - -### container_dbFontSize - -This sets the font size of Container DB shape for the diagram - -**Notes:** Default value: 14. - -### container_dbFontFamily - -This sets the font family of Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_dbFontWeight - -This sets the font weight of Container DB shape for the diagram - -**Notes:** Default value: normal. - -### external_container_dbFontSize - -This sets the font size of External Container DB shape for the diagram - -**Notes:** Default value: 14. - -### external_container_dbFontFamily - -This sets the font family of External Container DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_dbFontWeight - -This sets the font weight of External Container DB shape for the diagram - -**Notes:** Default value: normal. - -### container_queueFontSize - -This sets the font size of Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### container_queueFontFamily - -This sets the font family of Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### container_queueFontWeight - -This sets the font weight of Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_container_queueFontSize - -This sets the font size of External Container Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_container_queueFontFamily - -This sets the font family of External Container Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_container_queueFontWeight - -This sets the font weight of External Container Queue shape for the diagram - -**Notes:** Default value: normal. - -### componentFontSize - -This sets the font size of Component shape for the diagram - -**Notes:** Default value: 14. - -### componentFontFamily - -This sets the font family of Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### componentFontWeight - -This sets the font weight of Component shape for the diagram - -**Notes:** Default value: normal. - -### external_componentFontSize - -This sets the font size of External Component shape for the diagram - -**Notes:** Default value: 14. - -### external_componentFontFamily - -This sets the font family of External Component shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_componentFontWeight - -This sets the font weight of External Component shape for the diagram - -**Notes:** Default value: normal. - -### component_dbFontSize - -This sets the font size of Component DB shape for the diagram - -**Notes:** Default value: 14. - -### component_dbFontFamily - -This sets the font family of Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_dbFontWeight - -This sets the font weight of Component DB shape for the diagram - -**Notes:** Default value: normal. - -### external_component_dbFontSize - -This sets the font size of External Component DB shape for the diagram - -**Notes:** Default value: 14. - -### external_component_dbFontFamily - -This sets the font family of External Component DB shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_dbFontWeight - -This sets the font weight of External Component DB shape for the diagram - -**Notes:** Default value: normal. - -### component_queueFontSize - -This sets the font size of Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### component_queueFontFamily - -This sets the font family of Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### component_queueFontWeight - -This sets the font weight of Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### external_component_queueFontSize - -This sets the font size of External Component Queue shape for the diagram - -**Notes:** Default value: 14. - -### external_component_queueFontFamily - -This sets the font family of External Component Queue shape for the diagram - -**Notes:** Default value: "Open Sans", sans-serif. - -### external_component_queueFontWeight - -This sets the font weight of External Component Queue shape for the diagram - -**Notes:** Default value: normal. - -### wrap - -This sets the auto-wrap state for the diagram - -**Notes:** Default value: true. - -### wrapPadding - -This sets the auto-wrap padding for the diagram (sides only) - -**Notes:** Default value: 0. - -## parse - -### Parameters - -- `text` **[string][4]** -- `parseError` **[Function][5]?** - -Returns **[boolean][6]** - -## setSiteConfig - -## setSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls -to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) -will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this -function _Default value: At default, will mirror Global Config_ - -### Parameters - -- `conf` **MermaidConfig** The base currentConfig to use as siteConfig - -Returns **[object][7]** The siteConfig - -## getSiteConfig - -## getSiteConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------------------- | ----------- | -------------------------------- | -| setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig | - -**Notes**: Returns **any** values in siteConfig. - -Returns **[object][7]** The siteConfig - -## setConfig - -## setConfig - -| Function | Description | Type | Values | -| ------------- | ------------------------------------- | ----------- | --------------------------------------- | -| setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | - -**Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure -keys. Any values found in conf with key found in siteConfig.secure will be replaced with the -corresponding siteConfig value. - -### Parameters - -- `conf` **any** The potential currentConfig - -Returns **any** The currentConfig merged with the sanitized conf - -## render - -Function that renders an svg with a graph from a chart definition. Usage example below. - -```javascript -mermaidAPI.initialize({ - startOnLoad: true, -}); -$(function () { - const graphDefinition = 'graph TB\na-->b'; - const cb = function (svgGraph) { - console.log(svgGraph); - }; - mermaidAPI.render('id1', graphDefinition, cb); -}); -``` - -### Parameters - -- `id` **[string][4]** The id of the element to be rendered -- `text` **[string][4]** The graph definition -- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void** -- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be - inserted. If one is provided a hidden div will be inserted in the body of the page instead. The - element will be removed when rendering is completed. - -Returns **void** - -## getConfig - -## getConfig - -| Function | Description | Type | Return Values | -| --------- | ------------------------- | ----------- | ------------------------------ | -| getConfig | Obtains the currentConfig | Get Request | Any Values from current Config | - -**Notes**: Returns **any** the currentConfig - -Returns **any** The currentConfig - -## sanitize - -## sanitize - -| Function | Description | Type | Values | -| -------- | -------------------------------------- | ----------- | ------ | -| sanitize | Sets the siteConfig to desired values. | Put Request | None | - -Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies -options in-place - -### Parameters - -- `options` **any** The potential setConfig parameter - -## addDirective - -Pushes in a directive to the configuration - -### Parameters - -- `directive` **[object][7]** The directive to push in - -## reset - -## reset - -| Function | Description | Type | Required | Values | -| -------- | ---------------------------- | ----------- | -------- | ------ | -| reset | Resets currentConfig to conf | Put Request | Required | None | - -## conf - -| Parameter | Description | Type | Required | Values | -| --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- | -| conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array | - -**Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`) - -### Parameters - -- `config` (optional, default `siteConfig`) - -Returns **void** - -## initialize - -### Parameters - -- `options` **MermaidConfig** - -## - -## mermaidAPI configuration defaults - -```html - -``` - -[1]: Setup.md?id=render -[2]: 8.6.0_docs.md -[3]: #mermaidapi-configuration-defaults -[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean -[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[8]: https://developer.mozilla.org/docs/Web/API/Element diff --git a/packages/mermaid/src/diagrams/timeline/diagram-definition.ts b/packages/mermaid/src/diagrams/timeline/diagram-definition.ts index 9f18f261da..898af8b785 100644 --- a/packages/mermaid/src/diagrams/timeline/diagram-definition.ts +++ b/packages/mermaid/src/diagrams/timeline/diagram-definition.ts @@ -3,12 +3,10 @@ import parser from './parser/timeline.jison'; import * as db from './timelineDb'; import renderer from './timelineRenderer'; import styles from './styles'; -import { injectUtils } from './mermaidUtils'; export const diagram = { db, renderer, parser, styles, - injectUtils, }; diff --git a/packages/mermaid/src/diagrams/timeline/mermaidUtils.ts b/packages/mermaid/src/diagrams/timeline/mermaidUtils.ts deleted file mode 100644 index 0c64692031..0000000000 --- a/packages/mermaid/src/diagrams/timeline/mermaidUtils.ts +++ /dev/null @@ -1,72 +0,0 @@ -const warning = () => null; -let localCommonDb = {}; - -export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; - -export const LEVELS: Record = { - trace: 0, - debug: 1, - info: 2, - warn: 3, - error: 4, - fatal: 5, -}; - -export const log: Record = { - trace: warning, - debug: warning, - info: warning, - warn: warning, - error: warning, - fatal: warning, -}; -export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; -export let getConfig: () => object; -export let sanitizeText: (str: string) => string; -export const getCommonDb = () => localCommonDb; -export let parseDirective = (p: any, statement: string, context: string, type: string) => { - return; -}; -/** - * Placeholder for the real function that will be injected by mermaid. - */ -// eslint-disable @typescript-eslint/no-explicit-any -export let setupGraphViewbox: ( - graph: any, - svgElem: any, - padding: any, - useMaxWidth: boolean -) => void; - -/** - * Function called by mermaid that injects utility functions that help the diagram to be a good citizen. - * @param _log - The log function to use - * @param _setLogLevel - The function to set the log level - * @param _getConfig - The function to get the configuration - * @param _sanitizeText - The function to sanitize text - * @param _setupGraphViewbox - The function to setup the graph view-box - * @param _commonDb - The common database - */ -export const injectUtils = ( - _log: Record, - _setLogLevel: any, - _getConfig: any, - _sanitizeText: any, - _setupGraphViewbox: any, - _commonDb: any, - _parseDirective: any -) => { - _log.debug('Mermaid utils injected into timeline-diagram'); - log.trace = _log.trace; - log.debug = _log.debug; - log.info = _log.info; - log.warn = _log.warn; - log.error = _log.error; - log.fatal = _log.fatal; - setLogLevel = _setLogLevel; - getConfig = _getConfig; - sanitizeText = _sanitizeText; - setupGraphViewbox = _setupGraphViewbox; - localCommonDb = _commonDb; - parseDirective = _parseDirective; -}; diff --git a/packages/mermaid/src/diagrams/timeline/parser/timeline.jison b/packages/mermaid/src/diagrams/timeline/parser/timeline.jison index db22a9bcf9..59b96516a4 100644 --- a/packages/mermaid/src/diagrams/timeline/parser/timeline.jison +++ b/packages/mermaid/src/diagrams/timeline/parser/timeline.jison @@ -1,6 +1,6 @@ /** mermaid * https://mermaidjs.github.io/ - * (c) 2015 Knut Sveidqvist + * (c) 2023 Knut Sveidqvist * MIT license. */ %lex From ce037a84cafdc6b89da5f842c21e976aa569dbb9 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 8 Feb 2023 13:16:33 +0100 Subject: [PATCH 0970/1038] Fixing build after last batch of changes --- package.json | 3 ++ .../src/diagrams/timeline/timelineDb.js | 12 ++---- .../src/diagrams/timeline/timelineRenderer.ts | 4 +- packages/mermaid/src/mermaid.ts | 1 - pnpm-lock.yaml | 37 +++++++++---------- 5 files changed, 27 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index e7cb9bdf01..1b43df2b4f 100644 --- a/package.json +++ b/package.json @@ -110,5 +110,8 @@ }, "volta": { "node": "18.13.0" + }, + "dependencies": { + "remark-frontmatter": "^4.0.1" } } diff --git a/packages/mermaid/src/diagrams/timeline/timelineDb.js b/packages/mermaid/src/diagrams/timeline/timelineDb.js index dca0728c8a..7bc5c26923 100644 --- a/packages/mermaid/src/diagrams/timeline/timelineDb.js +++ b/packages/mermaid/src/diagrams/timeline/timelineDb.js @@ -1,9 +1,5 @@ -import { - getCommonDb as _getCommonDb, - parseDirective as _parseDirective, - log, -} from './mermaidUtils'; - +import { parseDirective as _parseDirective } from '../../directiveUtils'; +import * as commonDb from '../../commonDb'; let currentSection = ''; let currentTaskId = 0; @@ -11,7 +7,7 @@ const sections = []; const tasks = []; const rawTasks = []; -export const getCommonDb = _getCommonDb; +export const getCommonDb = () => commonDb; export const parseDirective = (statement, context, type) => { _parseDirective(this, statement, context, type); @@ -22,7 +18,7 @@ export const clear = function () { tasks.length = 0; currentSection = ''; rawTasks.length = 0; - _getCommonDb().clear(); + commonDb.clear(); }; export const addSection = function (txt) { diff --git a/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts b/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts index 613e3ff485..02e706bf6c 100644 --- a/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts +++ b/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts @@ -1,7 +1,9 @@ // @ts-nocheck TODO: fix file import { select } from 'd3'; import svgDraw from './svgDraw'; -import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; +import { log } from '../../logger'; +import { getConfig } from '../../config'; +import { setupGraphViewbox } from '../../setupGraphViewbox'; export const setConf = function (cnf) { const keys = Object.keys(cnf); diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index a6eda57784..be06c21679 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -330,7 +330,6 @@ const registerExternalDiagrams = async ( } }; -externalDiagramsRegistered = true; /** * ##contentLoaded Callback function that is called when page is loaded. This functions fetches * configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9613048288..72e53be4ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,6 +3,10 @@ lockfileVersion: 5.4-inlineSpecifiers importers: .: + dependencies: + remark-frontmatter: + specifier: ^4.0.1 + version: 4.0.1 devDependencies: '@applitools/eyes-cypress': specifier: ^3.27.6 @@ -2996,7 +3000,6 @@ packages: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: '@types/unist': 2.0.6 - dev: true /@types/mdurl/1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} @@ -3125,7 +3128,6 @@ packages: /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: true /@types/uuid/8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} @@ -4122,7 +4124,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 transitivePeerDependencies: - debug dev: true @@ -4201,7 +4203,6 @@ packages: /bail/2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: true /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -6756,7 +6757,6 @@ packages: /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: true /extract-zip/2.0.1_supports-color@8.1.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} @@ -6819,7 +6819,6 @@ packages: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} dependencies: format: 0.2.2 - dev: true /faye-websocket/0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} @@ -6930,6 +6929,18 @@ packages: optional: true dev: true + /follow-redirects/1.15.2_debug@4.3.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.2 + dev: true + /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -6972,7 +6983,6 @@ packages: /format/0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -7661,7 +7671,6 @@ packages: /is-buffer/2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - dev: true /is-builtin-module/3.2.0: resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} @@ -7760,7 +7769,6 @@ packages: /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - dev: true /is-plain-object/2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -8912,7 +8920,6 @@ packages: resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} dependencies: micromark-extension-frontmatter: 1.0.0 - dev: true /mdast-util-gfm-autolink-literal/1.0.2: resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} @@ -9090,7 +9097,6 @@ packages: fault: 2.0.1 micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 - dev: true /micromark-extension-gfm-autolink-literal/1.0.3: resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} @@ -9213,7 +9219,6 @@ packages: dependencies: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 - dev: true /micromark-util-chunked/1.0.0: resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} @@ -9290,11 +9295,9 @@ packages: /micromark-util-symbol/1.0.1: resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} - dev: true /micromark-util-types/1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} - dev: true /micromark/2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} @@ -10326,7 +10329,6 @@ packages: mdast-util-frontmatter: 1.0.0 micromark-extension-frontmatter: 1.0.0 unified: 10.1.2 - dev: true /remark-gfm/3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} @@ -11370,7 +11372,6 @@ packages: /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} - dev: true /ts-dedent/2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} @@ -11589,7 +11590,6 @@ packages: is-plain-obj: 4.1.0 trough: 2.1.0 vfile: 5.3.5 - dev: true /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} @@ -11616,7 +11616,6 @@ packages: resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} dependencies: '@types/unist': 2.0.6 - dev: true /unist-util-visit-parents/5.1.1: resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} @@ -11757,7 +11756,6 @@ packages: dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 - dev: true /vfile/5.3.5: resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} @@ -11766,7 +11764,6 @@ packages: is-buffer: 2.0.5 unist-util-stringify-position: 3.0.2 vfile-message: 3.1.2 - dev: true /vite-node/0.27.1_@types+node@18.11.9: resolution: {integrity: sha512-d6+ue/3NzsfndWaPbYh/bFkHbmAWfDXI4B874zRx+WREnG6CUHUbBC8lKaRYZjeR6gCPN5m1aVNNRXBYICA9XA==} From 580903051f23e19334617604f6cdd2a44de0736f Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 8 Feb 2023 13:40:41 +0100 Subject: [PATCH 0971/1038] Fixing broken test --- package.json | 15 +- .../src/diagrams/timeline/timeline.spec.js | 20 +- pnpm-lock.yaml | 254 +++++++++--------- 3 files changed, 138 insertions(+), 151 deletions(-) diff --git a/package.json b/package.json index 1b43df2b4f..620f7dbeb5 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.25.1", + "packageManager": "pnpm@7.25.0", "keywords": [ "diagram", "markdown", @@ -23,7 +23,7 @@ "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", + "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run", @@ -67,8 +67,8 @@ "@types/node": "^18.11.9", "@types/prettier": "^2.7.1", "@types/rollup-plugin-visualizer": "^4.2.1", - "@typescript-eslint/eslint-plugin": "^5.48.2", - "@typescript-eslint/parser": "^5.48.2", + "@typescript-eslint/eslint-plugin": "^5.42.1", + "@typescript-eslint/parser": "^5.42.1", "@vitest/coverage-c8": "^0.27.0", "@vitest/ui": "^0.27.0", "concurrently": "^7.5.0", @@ -76,8 +76,8 @@ "cypress": "^10.11.0", "cypress-image-snapshot": "^4.0.1", "esbuild": "^0.17.0", - "eslint": "^8.32.0", - "eslint-config-prettier": "^8.6.0", + "eslint": "^8.27.0", + "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-html": "^7.1.0", "eslint-plugin-jest": "^27.1.5", @@ -110,8 +110,5 @@ }, "volta": { "node": "18.13.0" - }, - "dependencies": { - "remark-frontmatter": "^4.0.1" } } diff --git a/packages/mermaid/src/diagrams/timeline/timeline.spec.js b/packages/mermaid/src/diagrams/timeline/timeline.spec.js index 41047d764d..0697b194e2 100644 --- a/packages/mermaid/src/diagrams/timeline/timeline.spec.js +++ b/packages/mermaid/src/diagrams/timeline/timeline.spec.js @@ -1,6 +1,6 @@ import { parser as timeline } from './parser/timeline'; import * as timelineDB from './timelineDb'; -import { injectUtils } from './mermaidUtils'; +// import { injectUtils } from './mermaidUtils'; import * as _commonDb from '../../commonDb'; import { parseDirective as _parseDirective } from '../../directiveUtils'; @@ -12,15 +12,15 @@ import { setupGraphViewBox, } from '../../diagram-api/diagramAPI'; -injectUtils( - log, - setLogLevel, - getConfig, - sanitizeText, - setupGraphViewBox, - _commonDb, - _parseDirective -); +// injectUtils( +// log, +// setLogLevel, +// getConfig, +// sanitizeText, +// setupGraphViewBox, +// _commonDb, +// _parseDirective +// ); describe('when parsing a timeline ', function () { beforeEach(function () { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72e53be4ed..5d6ca2bdae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,10 +3,6 @@ lockfileVersion: 5.4-inlineSpecifiers importers: .: - dependencies: - remark-frontmatter: - specifier: ^4.0.1 - version: 4.0.1 devDependencies: '@applitools/eyes-cypress': specifier: ^3.27.6 @@ -48,11 +44,11 @@ importers: specifier: ^4.2.1 version: 4.2.1 '@typescript-eslint/eslint-plugin': - specifier: ^5.48.2 - version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi + specifier: ^5.42.1 + version: 5.51.0_ea5vny3vf4guc7b4slvddguozq '@typescript-eslint/parser': - specifier: ^5.48.2 - version: 5.48.2_yygwinqv3a2io74xmwofqb7uka + specifier: ^5.42.1 + version: 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 '@vitest/coverage-c8': specifier: ^0.27.0 version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce @@ -75,32 +71,32 @@ importers: specifier: ^0.17.0 version: 0.17.0 eslint: - specifier: ^8.32.0 - version: 8.32.0 + specifier: ^8.27.0 + version: 8.33.0 eslint-config-prettier: - specifier: ^8.6.0 - version: 8.6.0_eslint@8.32.0 + specifier: ^8.5.0 + version: 8.6.0_eslint@8.33.0 eslint-plugin-cypress: specifier: ^2.12.1 - version: 2.12.1_eslint@8.32.0 + version: 2.12.1_eslint@8.33.0 eslint-plugin-html: specifier: ^7.1.0 version: 7.1.0 eslint-plugin-jest: specifier: ^27.1.5 - version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 + version: 27.1.5_5egy7e47lxq7vf4ol2lvjduk2u eslint-plugin-jsdoc: specifier: ^39.6.2 - version: 39.6.2_eslint@8.32.0 + version: 39.6.2_eslint@8.33.0 eslint-plugin-json: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-lodash: specifier: ^7.4.0 - version: 7.4.0_eslint@8.32.0 + version: 7.4.0_eslint@8.33.0 eslint-plugin-markdown: specifier: ^3.0.0 - version: 3.0.0_eslint@8.32.0 + version: 3.0.0_eslint@8.33.0 eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 @@ -109,7 +105,7 @@ importers: version: 0.2.17 eslint-plugin-unicorn: specifier: ^45.0.0 - version: 45.0.0_eslint@8.32.0 + version: 45.0.0_eslint@8.33.0 express: specifier: ^4.18.2 version: 4.18.2 @@ -233,10 +229,10 @@ importers: version: 8.3.4 '@typescript-eslint/eslint-plugin': specifier: ^5.42.1 - version: 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq + version: 5.42.1_2kuwieraxvrmnnxygbwcc7q6te '@typescript-eslint/parser': specifier: ^5.42.1 - version: 5.42.1_yygwinqv3a2io74xmwofqb7uka + version: 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -353,22 +349,6 @@ importers: specifier: ^3.0.2 version: 3.0.2 - packages/mermaid-timeline: - dependencies: - d3: - specifier: ^7.0.0 - version: 7.6.1 - khroma: - specifier: ^2.0.0 - version: 2.0.0 - devDependencies: - concurrently: - specifier: ^7.4.0 - version: 7.5.0 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - tests/webpack: dependencies: '@mermaid-js/mermaid-mindmap': @@ -2174,7 +2154,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.0 - globals: 13.19.0 + globals: 13.20.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -3000,6 +2980,7 @@ packages: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: '@types/unist': 2.0.6 + dev: true /@types/mdurl/1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} @@ -3128,6 +3109,7 @@ packages: /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true /@types/uuid/8.3.4: resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} @@ -3161,7 +3143,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq: + /@typescript-eslint/eslint-plugin/5.42.1_2kuwieraxvrmnnxygbwcc7q6te: resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3172,12 +3154,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.42.1_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/parser': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 '@typescript-eslint/scope-manager': 5.42.1 - '@typescript-eslint/type-utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka - '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/type-utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3188,8 +3170,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.48.2_iljmjqxcygjq3saipl7gerxpvi: - resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==} + /@typescript-eslint/eslint-plugin/5.51.0_ea5vny3vf4guc7b4slvddguozq: + resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3199,12 +3181,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka - '@typescript-eslint/scope-manager': 5.48.2 - '@typescript-eslint/type-utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka - '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/parser': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/type-utils': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/utils': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 + grapheme-splitter: 1.0.4 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3215,7 +3198,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.42.1_yygwinqv3a2io74xmwofqb7uka: + /@typescript-eslint/parser/5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4: resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3229,14 +3212,14 @@ packages: '@typescript-eslint/types': 5.42.1 '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.48.2_yygwinqv3a2io74xmwofqb7uka: - resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==} + /@typescript-eslint/parser/5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4: + resolution: {integrity: sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3245,11 +3228,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.48.2 - '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.8.4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color @@ -3263,15 +3246,15 @@ packages: '@typescript-eslint/visitor-keys': 5.42.1 dev: true - /@typescript-eslint/scope-manager/5.48.2: - resolution: {integrity: sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==} + /@typescript-eslint/scope-manager/5.51.0: + resolution: {integrity: sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/visitor-keys': 5.48.2 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/visitor-keys': 5.51.0 dev: true - /@typescript-eslint/type-utils/5.42.1_yygwinqv3a2io74xmwofqb7uka: + /@typescript-eslint/type-utils/5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4: resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3282,17 +3265,17 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/type-utils/5.48.2_yygwinqv3a2io74xmwofqb7uka: - resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} + /@typescript-eslint/type-utils/5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4: + resolution: {integrity: sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3301,10 +3284,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 - '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -3316,8 +3299,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.48.2: - resolution: {integrity: sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==} + /@typescript-eslint/types/5.51.0: + resolution: {integrity: sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3342,8 +3325,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.48.2_typescript@4.8.4: - resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==} + /@typescript-eslint/typescript-estree/5.51.0_typescript@4.8.4: + resolution: {integrity: sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3351,8 +3334,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/visitor-keys': 5.48.2 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/visitor-keys': 5.51.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3363,7 +3346,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.42.1_yygwinqv3a2io74xmwofqb7uka: + /@typescript-eslint/utils/5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4: resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3374,29 +3357,29 @@ packages: '@typescript-eslint/scope-manager': 5.42.1 '@typescript-eslint/types': 5.42.1 '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - eslint: 8.32.0 + eslint: 8.33.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint-utils: 3.0.0_eslint@8.33.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils/5.48.2_yygwinqv3a2io74xmwofqb7uka: - resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} + /@typescript-eslint/utils/5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4: + resolution: {integrity: sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.12 - '@typescript-eslint/scope-manager': 5.48.2 - '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 - eslint: 8.32.0 + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.8.4 + eslint: 8.33.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint-utils: 3.0.0_eslint@8.33.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -3411,11 +3394,11 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.48.2: - resolution: {integrity: sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==} + /@typescript-eslint/visitor-keys/5.51.0: + resolution: {integrity: sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/types': 5.51.0 eslint-visitor-keys: 3.3.0 dev: true @@ -3803,7 +3786,7 @@ packages: /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.0 + acorn: 8.8.1 acorn-walk: 8.2.0 dev: true @@ -4124,7 +4107,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -4203,6 +4186,7 @@ packages: /bail/2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: true /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -4760,7 +4744,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true /concurrently/7.5.0: @@ -6321,21 +6305,21 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.6.0_eslint@8.32.0: + /eslint-config-prettier/8.6.0_eslint@8.33.0: resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.32.0: + /eslint-plugin-cypress/2.12.1_eslint@8.33.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 globals: 11.12.0 dev: true @@ -6345,7 +6329,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.5_5rcd23qw3h5vuffwo2owxb3hw4: + /eslint-plugin-jest/27.1.5_5egy7e47lxq7vf4ol2lvjduk2u: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6358,16 +6342,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi - '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka - eslint: 8.32.0 + '@typescript-eslint/eslint-plugin': 5.51.0_ea5vny3vf4guc7b4slvddguozq + '@typescript-eslint/utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 + eslint: 8.33.0 jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc/39.6.2_eslint@8.32.0: + /eslint-plugin-jsdoc/39.6.2_eslint@8.33.0: resolution: {integrity: sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -6377,7 +6361,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.32.0 + eslint: 8.33.0 esquery: 1.4.0 semver: 7.3.8 spdx-expression-parse: 3.0.1 @@ -6393,23 +6377,23 @@ packages: vscode-json-languageservice: 4.2.1 dev: true - /eslint-plugin-lodash/7.4.0_eslint@8.32.0: + /eslint-plugin-lodash/7.4.0_eslint@8.33.0: resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 lodash: 4.17.21 dev: true - /eslint-plugin-markdown/3.0.0_eslint@8.32.0: + /eslint-plugin-markdown/3.0.0_eslint@8.33.0: resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.32.0 + eslint: 8.33.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color @@ -6427,7 +6411,7 @@ packages: '@microsoft/tsdoc-config': 0.16.2 dev: true - /eslint-plugin-unicorn/45.0.0_eslint@8.32.0: + /eslint-plugin-unicorn/45.0.0_eslint@8.33.0: resolution: {integrity: sha512-iP8cMRxXKHonKioOhnCoCcqVhoqhAp6rB+nsoLjXFDxTHz3btWMAp8xwzjHA0B1K6YV/U/Yvqn1bUXZt8sJPuQ==} engines: {node: '>=14.18'} peerDependencies: @@ -6436,8 +6420,8 @@ packages: '@babel/helper-validator-identifier': 7.19.1 ci-info: 3.6.2 clean-regexp: 1.0.0 - eslint: 8.32.0 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint: 8.33.0 + eslint-utils: 3.0.0_eslint@8.33.0 esquery: 1.4.0 indent-string: 4.0.0 is-builtin-module: 3.2.0 @@ -6468,13 +6452,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.32.0: + /eslint-utils/3.0.0_eslint@8.33.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6488,8 +6472,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.32.0: - resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} + /eslint/8.33.0: + resolution: {integrity: sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -6504,7 +6488,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint-utils: 3.0.0_eslint@8.33.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -6513,7 +6497,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.19.0 + globals: 13.20.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 @@ -6757,6 +6741,7 @@ packages: /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true /extract-zip/2.0.1_supports-color@8.1.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} @@ -6819,6 +6804,7 @@ packages: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} dependencies: format: 0.2.2 + dev: true /faye-websocket/0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} @@ -6929,18 +6915,6 @@ packages: optional: true dev: true - /follow-redirects/1.15.2_debug@4.3.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dependencies: - debug: 4.3.2 - dev: true - /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -6983,6 +6957,7 @@ packages: /format/0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -7221,8 +7196,8 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.19.0: - resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -7671,6 +7646,7 @@ packages: /is-buffer/2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} + dev: true /is-builtin-module/3.2.0: resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} @@ -7769,6 +7745,7 @@ packages: /is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + dev: true /is-plain-object/2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -8916,10 +8893,13 @@ packages: - supports-color dev: true - /mdast-util-frontmatter/1.0.0: - resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} + /mdast-util-frontmatter/1.0.1: + resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.3.0 micromark-extension-frontmatter: 1.0.0 + dev: true /mdast-util-gfm-autolink-literal/1.0.2: resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} @@ -9097,6 +9077,7 @@ packages: fault: 2.0.1 micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 + dev: true /micromark-extension-gfm-autolink-literal/1.0.3: resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} @@ -9219,6 +9200,7 @@ packages: dependencies: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: true /micromark-util-chunked/1.0.0: resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} @@ -9295,9 +9277,11 @@ packages: /micromark-util-symbol/1.0.1: resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + dev: true /micromark-util-types/1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + dev: true /micromark/2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} @@ -10326,9 +10310,10 @@ packages: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: '@types/mdast': 3.0.10 - mdast-util-frontmatter: 1.0.0 + mdast-util-frontmatter: 1.0.1 micromark-extension-frontmatter: 1.0.0 unified: 10.1.2 + dev: true /remark-gfm/3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} @@ -11234,7 +11219,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.0 + acorn: 8.8.1 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -11372,6 +11357,7 @@ packages: /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: true /ts-dedent/2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} @@ -11590,6 +11576,7 @@ packages: is-plain-obj: 4.1.0 trough: 2.1.0 vfile: 5.3.5 + dev: true /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} @@ -11616,6 +11603,7 @@ packages: resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} dependencies: '@types/unist': 2.0.6 + dev: true /unist-util-visit-parents/5.1.1: resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==} @@ -11756,6 +11744,7 @@ packages: dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 + dev: true /vfile/5.3.5: resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} @@ -11764,6 +11753,7 @@ packages: is-buffer: 2.0.5 unist-util-stringify-position: 3.0.2 vfile-message: 3.1.2 + dev: true /vite-node/0.27.1_@types+node@18.11.9: resolution: {integrity: sha512-d6+ue/3NzsfndWaPbYh/bFkHbmAWfDXI4B874zRx+WREnG6CUHUbBC8lKaRYZjeR6gCPN5m1aVNNRXBYICA9XA==} From 82f7e1b754539bedec06df459f45e68fc58e9bd7 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 8 Feb 2023 13:50:58 +0100 Subject: [PATCH 0972/1038] Version updates --- package.json | 12 +-- pnpm-lock.yaml | 217 ++++++++++++++++++++++++++----------------------- 2 files changed, 121 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index 620f7dbeb5..e7cb9bdf01 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.25.0", + "packageManager": "pnpm@7.25.1", "keywords": [ "diagram", "markdown", @@ -23,7 +23,7 @@ "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --check .", + "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run", @@ -67,8 +67,8 @@ "@types/node": "^18.11.9", "@types/prettier": "^2.7.1", "@types/rollup-plugin-visualizer": "^4.2.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^5.48.2", + "@typescript-eslint/parser": "^5.48.2", "@vitest/coverage-c8": "^0.27.0", "@vitest/ui": "^0.27.0", "concurrently": "^7.5.0", @@ -76,8 +76,8 @@ "cypress": "^10.11.0", "cypress-image-snapshot": "^4.0.1", "esbuild": "^0.17.0", - "eslint": "^8.27.0", - "eslint-config-prettier": "^8.5.0", + "eslint": "^8.32.0", + "eslint-config-prettier": "^8.6.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-html": "^7.1.0", "eslint-plugin-jest": "^27.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d6ca2bdae..9613048288 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,11 +44,11 @@ importers: specifier: ^4.2.1 version: 4.2.1 '@typescript-eslint/eslint-plugin': - specifier: ^5.42.1 - version: 5.51.0_ea5vny3vf4guc7b4slvddguozq + specifier: ^5.48.2 + version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi '@typescript-eslint/parser': - specifier: ^5.42.1 - version: 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 + specifier: ^5.48.2 + version: 5.48.2_yygwinqv3a2io74xmwofqb7uka '@vitest/coverage-c8': specifier: ^0.27.0 version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce @@ -71,32 +71,32 @@ importers: specifier: ^0.17.0 version: 0.17.0 eslint: - specifier: ^8.27.0 - version: 8.33.0 + specifier: ^8.32.0 + version: 8.32.0 eslint-config-prettier: - specifier: ^8.5.0 - version: 8.6.0_eslint@8.33.0 + specifier: ^8.6.0 + version: 8.6.0_eslint@8.32.0 eslint-plugin-cypress: specifier: ^2.12.1 - version: 2.12.1_eslint@8.33.0 + version: 2.12.1_eslint@8.32.0 eslint-plugin-html: specifier: ^7.1.0 version: 7.1.0 eslint-plugin-jest: specifier: ^27.1.5 - version: 27.1.5_5egy7e47lxq7vf4ol2lvjduk2u + version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4 eslint-plugin-jsdoc: specifier: ^39.6.2 - version: 39.6.2_eslint@8.33.0 + version: 39.6.2_eslint@8.32.0 eslint-plugin-json: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-lodash: specifier: ^7.4.0 - version: 7.4.0_eslint@8.33.0 + version: 7.4.0_eslint@8.32.0 eslint-plugin-markdown: specifier: ^3.0.0 - version: 3.0.0_eslint@8.33.0 + version: 3.0.0_eslint@8.32.0 eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 @@ -105,7 +105,7 @@ importers: version: 0.2.17 eslint-plugin-unicorn: specifier: ^45.0.0 - version: 45.0.0_eslint@8.33.0 + version: 45.0.0_eslint@8.32.0 express: specifier: ^4.18.2 version: 4.18.2 @@ -229,10 +229,10 @@ importers: version: 8.3.4 '@typescript-eslint/eslint-plugin': specifier: ^5.42.1 - version: 5.42.1_2kuwieraxvrmnnxygbwcc7q6te + version: 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq '@typescript-eslint/parser': specifier: ^5.42.1 - version: 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 + version: 5.42.1_yygwinqv3a2io74xmwofqb7uka chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -349,6 +349,22 @@ importers: specifier: ^3.0.2 version: 3.0.2 + packages/mermaid-timeline: + dependencies: + d3: + specifier: ^7.0.0 + version: 7.6.1 + khroma: + specifier: ^2.0.0 + version: 2.0.0 + devDependencies: + concurrently: + specifier: ^7.4.0 + version: 7.5.0 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + tests/webpack: dependencies: '@mermaid-js/mermaid-mindmap': @@ -2154,7 +2170,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.0 - globals: 13.20.0 + globals: 13.19.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -3143,7 +3159,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.42.1_2kuwieraxvrmnnxygbwcc7q6te: + /@typescript-eslint/eslint-plugin/5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq: resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3154,12 +3170,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/parser': 5.42.1_yygwinqv3a2io74xmwofqb7uka '@typescript-eslint/scope-manager': 5.42.1 - '@typescript-eslint/type-utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 - '@typescript-eslint/utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/type-utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka debug: 4.3.4 - eslint: 8.33.0 + eslint: 8.32.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3170,8 +3186,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.51.0_ea5vny3vf4guc7b4slvddguozq: - resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==} + /@typescript-eslint/eslint-plugin/5.48.2_iljmjqxcygjq3saipl7gerxpvi: + resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3181,13 +3197,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 - '@typescript-eslint/scope-manager': 5.51.0 - '@typescript-eslint/type-utils': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 - '@typescript-eslint/utils': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/type-utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka + '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka debug: 4.3.4 - eslint: 8.33.0 - grapheme-splitter: 1.0.4 + eslint: 8.32.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3198,7 +3213,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4: + /@typescript-eslint/parser/5.42.1_yygwinqv3a2io74xmwofqb7uka: resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3212,14 +3227,14 @@ packages: '@typescript-eslint/types': 5.42.1 '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.33.0 + eslint: 8.32.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4: - resolution: {integrity: sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==} + /@typescript-eslint/parser/5.48.2_yygwinqv3a2io74xmwofqb7uka: + resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3228,11 +3243,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.51.0 - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 debug: 4.3.4 - eslint: 8.33.0 + eslint: 8.32.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color @@ -3246,15 +3261,15 @@ packages: '@typescript-eslint/visitor-keys': 5.42.1 dev: true - /@typescript-eslint/scope-manager/5.51.0: - resolution: {integrity: sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==} + /@typescript-eslint/scope-manager/5.48.2: + resolution: {integrity: sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/visitor-keys': 5.51.0 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/visitor-keys': 5.48.2 dev: true - /@typescript-eslint/type-utils/5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4: + /@typescript-eslint/type-utils/5.42.1_yygwinqv3a2io74xmwofqb7uka: resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3265,17 +3280,17 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka debug: 4.3.4 - eslint: 8.33.0 + eslint: 8.32.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/type-utils/5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4: - resolution: {integrity: sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==} + /@typescript-eslint/type-utils/5.48.2_yygwinqv3a2io74xmwofqb7uka: + resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3284,10 +3299,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.8.4 - '@typescript-eslint/utils': 5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 + '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka debug: 4.3.4 - eslint: 8.33.0 + eslint: 8.32.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -3299,8 +3314,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.51.0: - resolution: {integrity: sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==} + /@typescript-eslint/types/5.48.2: + resolution: {integrity: sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3325,8 +3340,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.51.0_typescript@4.8.4: - resolution: {integrity: sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==} + /@typescript-eslint/typescript-estree/5.48.2_typescript@4.8.4: + resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3334,8 +3349,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/visitor-keys': 5.51.0 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/visitor-keys': 5.48.2 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3346,7 +3361,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4: + /@typescript-eslint/utils/5.42.1_yygwinqv3a2io74xmwofqb7uka: resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3357,29 +3372,29 @@ packages: '@typescript-eslint/scope-manager': 5.42.1 '@typescript-eslint/types': 5.42.1 '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - eslint: 8.33.0 + eslint: 8.32.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.33.0 + eslint-utils: 3.0.0_eslint@8.32.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils/5.51.0_o2s6jvgtr2hafiobaqfgu6k2l4: - resolution: {integrity: sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==} + /@typescript-eslint/utils/5.48.2_yygwinqv3a2io74xmwofqb7uka: + resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.12 - '@typescript-eslint/scope-manager': 5.51.0 - '@typescript-eslint/types': 5.51.0 - '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.8.4 - eslint: 8.33.0 + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4 + eslint: 8.32.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.33.0 + eslint-utils: 3.0.0_eslint@8.32.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -3394,11 +3409,11 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.51.0: - resolution: {integrity: sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==} + /@typescript-eslint/visitor-keys/5.48.2: + resolution: {integrity: sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/types': 5.48.2 eslint-visitor-keys: 3.3.0 dev: true @@ -3786,7 +3801,7 @@ packages: /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.1 + acorn: 8.8.0 acorn-walk: 8.2.0 dev: true @@ -4744,7 +4759,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true /concurrently/7.5.0: @@ -6305,21 +6320,21 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.6.0_eslint@8.33.0: + /eslint-config-prettier/8.6.0_eslint@8.32.0: resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.33.0 + eslint: 8.32.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.33.0: + /eslint-plugin-cypress/2.12.1_eslint@8.32.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.33.0 + eslint: 8.32.0 globals: 11.12.0 dev: true @@ -6329,7 +6344,7 @@ packages: htmlparser2: 8.0.1 dev: true - /eslint-plugin-jest/27.1.5_5egy7e47lxq7vf4ol2lvjduk2u: + /eslint-plugin-jest/27.1.5_5rcd23qw3h5vuffwo2owxb3hw4: resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6342,16 +6357,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.51.0_ea5vny3vf4guc7b4slvddguozq - '@typescript-eslint/utils': 5.42.1_o2s6jvgtr2hafiobaqfgu6k2l4 - eslint: 8.33.0 + '@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi + '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka + eslint: 8.32.0 jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsdoc/39.6.2_eslint@8.33.0: + /eslint-plugin-jsdoc/39.6.2_eslint@8.32.0: resolution: {integrity: sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -6361,7 +6376,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.33.0 + eslint: 8.32.0 esquery: 1.4.0 semver: 7.3.8 spdx-expression-parse: 3.0.1 @@ -6377,23 +6392,23 @@ packages: vscode-json-languageservice: 4.2.1 dev: true - /eslint-plugin-lodash/7.4.0_eslint@8.33.0: + /eslint-plugin-lodash/7.4.0_eslint@8.32.0: resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.33.0 + eslint: 8.32.0 lodash: 4.17.21 dev: true - /eslint-plugin-markdown/3.0.0_eslint@8.33.0: + /eslint-plugin-markdown/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.33.0 + eslint: 8.32.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color @@ -6411,7 +6426,7 @@ packages: '@microsoft/tsdoc-config': 0.16.2 dev: true - /eslint-plugin-unicorn/45.0.0_eslint@8.33.0: + /eslint-plugin-unicorn/45.0.0_eslint@8.32.0: resolution: {integrity: sha512-iP8cMRxXKHonKioOhnCoCcqVhoqhAp6rB+nsoLjXFDxTHz3btWMAp8xwzjHA0B1K6YV/U/Yvqn1bUXZt8sJPuQ==} engines: {node: '>=14.18'} peerDependencies: @@ -6420,8 +6435,8 @@ packages: '@babel/helper-validator-identifier': 7.19.1 ci-info: 3.6.2 clean-regexp: 1.0.0 - eslint: 8.33.0 - eslint-utils: 3.0.0_eslint@8.33.0 + eslint: 8.32.0 + eslint-utils: 3.0.0_eslint@8.32.0 esquery: 1.4.0 indent-string: 4.0.0 is-builtin-module: 3.2.0 @@ -6452,13 +6467,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.33.0: + /eslint-utils/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.33.0 + eslint: 8.32.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6472,8 +6487,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.33.0: - resolution: {integrity: sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==} + /eslint/8.32.0: + resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -6488,7 +6503,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.33.0 + eslint-utils: 3.0.0_eslint@8.32.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -6497,7 +6512,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.19.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 @@ -7196,8 +7211,8 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals/13.19.0: + resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -8893,11 +8908,9 @@ packages: - supports-color dev: true - /mdast-util-frontmatter/1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} + /mdast-util-frontmatter/1.0.0: + resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-markdown: 1.3.0 micromark-extension-frontmatter: 1.0.0 dev: true @@ -10310,7 +10323,7 @@ packages: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: '@types/mdast': 3.0.10 - mdast-util-frontmatter: 1.0.1 + mdast-util-frontmatter: 1.0.0 micromark-extension-frontmatter: 1.0.0 unified: 10.1.2 dev: true @@ -11219,7 +11232,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.1 + acorn: 8.8.0 commander: 2.20.3 source-map-support: 0.5.21 dev: true From 74df4a7a68364428e17b8332aff09e8e9a0f07dc Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 8 Feb 2023 17:42:58 +0100 Subject: [PATCH 0973/1038] Mind map coming in from the cold. A lazy loaded diagram in the same way as timeline. --- .vite/build.ts | 10 +- .vite/server.ts | 2 +- .../other/external-diagrams.spec.js | 4 +- ...=> external-diagrams-example-diagram.html} | 32 +--- cypress/platform/knsv2.html | 12 +- cypress/platform/knsv3.html | 142 +++++++++--------- cypress/platform/viewer.js | 4 +- package.json | 2 +- packages/mermaid-example-diagram/Readme.md | 3 - packages/mermaid-example-diagram/package.json | 39 +++-- .../mermaid-example-diagram/src/detector.ts | 22 +-- .../src/diagram-definition.ts | 2 - .../src/exampleDiagram.spec.js | 14 +- .../src/mermaidUtils.ts | 32 ++-- .../mermaid-example-diagram/tsconfig.json | 1 + packages/mermaid-mindmap/package.json | 65 -------- packages/mermaid-mindmap/src/mermaidUtils.ts | 59 -------- packages/mermaid-mindmap/tsconfig.json | 10 -- packages/mermaid/package.json | 4 + .../mermaid/src/diagram-api/detectType.ts | 5 +- .../src/diagram-api/diagram-orchestration.ts | 5 +- .../src/diagrams/mindmap}/detector.ts | 3 +- .../diagrams/mindmap}/diagram-definition.ts | 2 - .../src/diagrams/mindmap}/mindmap.spec.js | 14 +- .../src/diagrams/mindmap}/mindmapDb.js | 7 +- .../src/diagrams/mindmap}/mindmapRenderer.js | 4 +- .../diagrams/mindmap}/parser/mindmap.jison | 0 .../src/diagrams/mindmap}/styles.js | 0 .../src/diagrams/mindmap}/svgDraw.js | 0 .../src/diagrams/mindmap}/types/index.d.ts | 0 .../src/docs/.vitepress/theme/mermaid.ts | 4 +- packages/mermaid/src/docs/vite.config.ts | 4 +- pnpm-lock.yaml | 41 +++-- tests/webpack/package.json | 2 +- 34 files changed, 206 insertions(+), 344 deletions(-) rename cypress/platform/{external-diagrams-mindmap.html => external-diagrams-example-diagram.html} (60%) delete mode 100644 packages/mermaid-example-diagram/Readme.md delete mode 100644 packages/mermaid-mindmap/package.json delete mode 100644 packages/mermaid-mindmap/src/mermaidUtils.ts delete mode 100644 packages/mermaid-mindmap/tsconfig.json rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/detector.ts (81%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/diagram-definition.ts (84%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/mindmap.spec.js (98%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/mindmapDb.js (93%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/mindmapRenderer.js (97%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/parser/mindmap.jison (100%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/styles.js (100%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/svgDraw.js (100%) rename packages/{mermaid-mindmap/src => mermaid/src/diagrams/mindmap}/types/index.d.ts (100%) diff --git a/.vite/build.ts b/.vite/build.ts index 019461c499..c9d44219f8 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -36,9 +36,9 @@ const packageOptions = { packageName: 'mermaid', file: 'mermaid.ts', }, - 'mermaid-mindmap': { - name: 'mermaid-mindmap', - packageName: 'mermaid-mindmap', + 'mermaid-example-diagram': { + name: 'mermaid-example-diagram', + packageName: 'mermaid-example-diagram', file: 'detector.ts', }, }; @@ -114,7 +114,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) if (watch && config.build) { config.build.watch = { - include: ['packages/mermaid-mindmap/src/**', 'packages/mermaid/src/**'], + include: ['packages/mermaid-example-diagram/src/**', 'packages/mermaid/src/**'], }; } @@ -139,7 +139,7 @@ const main = async () => { if (watch) { build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' })); if (!mermaidOnly) { - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' })); + build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); } } else if (visualize) { await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' })); diff --git a/.vite/server.ts b/.vite/server.ts index aced396ecb..0f1fef91d3 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -22,7 +22,7 @@ async function createServer() { app.use(cors); app.use(express.static('./packages/mermaid/dist')); // app.use(express.static('./packages/mermaid-example-diagram/dist')); - app.use(express.static('./packages/mermaid-mindmap/dist')); + app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(vite.middlewares); app.use(express.static('demos')); app.use(express.static('cypress/platform')); diff --git a/cypress/integration/other/external-diagrams.spec.js b/cypress/integration/other/external-diagrams.spec.js index be69dfc982..c942351626 100644 --- a/cypress/integration/other/external-diagrams.spec.js +++ b/cypress/integration/other/external-diagrams.spec.js @@ -2,8 +2,8 @@ import { urlSnapshotTest } from '../../helpers/util'; describe('mermaid', () => { describe('registerDiagram', () => { - it('should work on @mermaid-js/mermaid-mindmap and mermaid-example-diagram', () => { - const url = 'http://localhost:9000/external-diagrams-mindmap.html'; + it('should work on @mermaid-js/mermaid-example-diagram', () => { + const url = 'http://localhost:9000/external-diagrams-example-diagram.html'; urlSnapshotTest(url, {}, false, false); }); }); diff --git a/cypress/platform/external-diagrams-mindmap.html b/cypress/platform/external-diagrams-example-diagram.html similarity index 60% rename from cypress/platform/external-diagrams-mindmap.html rename to cypress/platform/external-diagrams-example-diagram.html index e445a7627c..9d2cad778f 100644 --- a/cypress/platform/external-diagrams-mindmap.html +++ b/cypress/platform/external-diagrams-example-diagram.html @@ -2,34 +2,8 @@

    Should correctly load a third-party diagram using registerDiagram

    -mindmap
    -  root
    -    A
    -    B
    -    C
    -    D
    -    E
    -    A2
    -    B2
    -    C2
    -    D2
    -    E2
    -    child1((Circle))
    -        grandchild 1
    -        grandchild 2
    -    child2(Round rectangle)
    -        grandchild 3
    -        grandchild 4
    -    child3[Square]
    -        grandchild 5
    -        ::icon(mdi mdi-fire)
    -        gc6((grand
    child 6)) - ::icon(mdi mdi-fire) - gc7((grand
    grand
    child 8)) +example-diagram
    - @@ -37,11 +11,11 @@

    Should correctly load a third-party diagram using registerDiagram

    diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index 01b49435f1..4d7db84f7a 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -1,5 +1,5 @@ import mermaid2 from '../../packages/mermaid/src/mermaid'; -import mindmap from '../../packages/mermaid-mindmap/src/detector'; +import externalExample from '../../packages/mermaid-example-diagram/src/detector'; function b64ToUtf8(str) { return decodeURIComponent(escape(window.atob(str))); @@ -44,7 +44,7 @@ const contentLoaded = async function () { document.getElementsByTagName('body')[0].appendChild(div); } - await mermaid2.registerExternalDiagrams([mindmap]); + await mermaid2.registerExternalDiagrams([externalExample]); mermaid2.initialize(graphObj.mermaid); await mermaid2.init(); markRendered(); diff --git a/package.json b/package.json index e7cb9bdf01..c96f2c8d7a 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "build:vite": "ts-node-esm --transpileOnly .vite/build.ts", "build:mermaid": "pnpm build:vite --mermaid", "build:viz": "pnpm build:mermaid --visualize", - "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-mindmap/tsconfig.json --emitDeclarationOnly", + "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-example-diagran/tsconfig.json --emitDeclarationOnly", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", diff --git a/packages/mermaid-example-diagram/Readme.md b/packages/mermaid-example-diagram/Readme.md deleted file mode 100644 index 38056e3c7f..0000000000 --- a/packages/mermaid-example-diagram/Readme.md +++ /dev/null @@ -1,3 +0,0 @@ -### Do not refer this package. It is not ready. - -### Refer mermaid-mindmap instead. diff --git a/packages/mermaid-example-diagram/package.json b/packages/mermaid-example-diagram/package.json index 8e958806a7..c4d3a57ccd 100644 --- a/packages/mermaid-example-diagram/package.json +++ b/packages/mermaid-example-diagram/package.json @@ -1,36 +1,25 @@ { "name": "@mermaid-js/mermaid-example-diagram", - "version": "9.2.0-rc2", - "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", - "main": "dist/mermaid-mindmap.core.mjs", - "module": "dist/mermaid-mindmap.core.mjs", + "version": "9.3.0", + "description": "Example of external diagram module for MermaidJS.", + "module": "dist/mermaid-example-diagram.core.mjs", + "types": "dist/detector.d.ts", "type": "module", "exports": { ".": { - "require": "./dist/mermaid-example-diagram.min.js", - "import": "./dist/mermaid-example-diagram.core.mjs" + "import": "./dist/mermaid-example-diagram.core.mjs", + "types": "./dist/detector.d.ts" }, "./*": "./*" }, "keywords": [ "diagram", "markdown", - "mindmap", + "example", "mermaid" ], "scripts": { - "clean": "rimraf dist", - "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", - "build:watch": "yarn build:code --watch", - "build:esbuild": "concurrently \"yarn build:code\" \"yarn build:types\"", - "build": "yarn clean; yarn build:esbuild", - "dev": "node .esbuild/serve.cjs", - "release": "yarn build", - "lint": "eslint --cache --ignore-path .gitignore . && yarn lint:jison && prettier --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write .", - "lint:jison": "ts-node-esm src/jison/lint.mts", - "todo-prepare": "concurrently \"husky install ../../.husky\" \"yarn build\"", - "todo-pre-commit": "lint-staged" + "prepublishOnly": "pnpm -w run build" }, "repository": { "type": "git", @@ -48,9 +37,19 @@ "page" ] }, - "dependencies": {}, + "dependencies": { + "@braintree/sanitize-url": "^6.0.0", + "cytoscape": "^3.23.0", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.1.0", + "d3": "^7.0.0", + "khroma": "^2.0.0", + "non-layered-tidy-tree-layout": "^2.0.2" + }, "devDependencies": { + "@types/cytoscape": "^3.19.9", "concurrently": "^7.5.0", + "mermaid": "workspace:*", "rimraf": "^3.0.2" }, "resolutions": { diff --git a/packages/mermaid-example-diagram/src/detector.ts b/packages/mermaid-example-diagram/src/detector.ts index d30b99fba2..fdf7345bb4 100644 --- a/packages/mermaid-example-diagram/src/detector.ts +++ b/packages/mermaid-example-diagram/src/detector.ts @@ -1,18 +1,20 @@ -// @ts-ignore: TODO Fix ts errors -export const id = 'example-diagram'; +import type { ExternalDiagramDefinition } from 'mermaid'; -/** - * Detector function that will be called by mermaid to determine if the diagram is this type of diagram. - * - * @param txt - The diagram text will be passed to the detector - * @returns True if the diagram text matches a diagram of this type - */ +const id = 'example-diagram'; -export const detector = (txt: string) => { +const detector = (txt: string) => { return txt.match(/^\s*example-diagram/) !== null; }; -export const loadDiagram = async () => { +const loader = async () => { const { diagram } = await import('./diagram-definition'); return { id, diagram }; }; + +const plugin: ExternalDiagramDefinition = { + id, + detector, + loader, +}; + +export default plugin; diff --git a/packages/mermaid-example-diagram/src/diagram-definition.ts b/packages/mermaid-example-diagram/src/diagram-definition.ts index 95f7cc11d2..c31b3d6e71 100644 --- a/packages/mermaid-example-diagram/src/diagram-definition.ts +++ b/packages/mermaid-example-diagram/src/diagram-definition.ts @@ -12,5 +12,3 @@ export const diagram = { styles, injectUtils, }; - -export { detector, id } from './detector'; diff --git a/packages/mermaid-example-diagram/src/exampleDiagram.spec.js b/packages/mermaid-example-diagram/src/exampleDiagram.spec.js index db539aac05..96c8cd5b26 100644 --- a/packages/mermaid-example-diagram/src/exampleDiagram.spec.js +++ b/packages/mermaid-example-diagram/src/exampleDiagram.spec.js @@ -1,5 +1,17 @@ import { parser } from './parser/exampleDiagram'; -import db from './exampleDiagramDb'; +import * as db from './exampleDiagramDb'; +import { injectUtils } from './mermaidUtils'; +// Todo fix utils functions for tests +import { + log, + setLogLevel, + getConfig, + sanitizeText, + setupGraphViewBox, +} from '../../mermaid/src/diagram-api/diagramAPI'; + +injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox); + describe('when parsing an info graph it', function () { let ex; beforeEach(function () { diff --git a/packages/mermaid-example-diagram/src/mermaidUtils.ts b/packages/mermaid-example-diagram/src/mermaidUtils.ts index 9ba66be5a8..44cc85f73c 100644 --- a/packages/mermaid-example-diagram/src/mermaidUtils.ts +++ b/packages/mermaid-example-diagram/src/mermaidUtils.ts @@ -1,4 +1,8 @@ -const warning = () => null; +const warning = (s: string) => { + // Todo remove debug code + // eslint-disable-next-line no-console + console.error('Log function was called before initialization', s); +}; export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; @@ -19,13 +23,11 @@ export const log: Record = { error: warning, fatal: warning, }; + export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; export let getConfig: () => object; export let sanitizeText: (str: string) => string; -export let commonDb: any; -/** - * Placeholder for the real function that will be injected by mermaid. - */ +export let commonDb: () => object; // eslint-disable @typescript-eslint/no-explicit-any export let setupGraphViewbox: ( graph: any, @@ -34,25 +36,15 @@ export let setupGraphViewbox: ( useMaxWidth: boolean ) => void; -/** - * Function called by mermaid that injects utility functions that help the diagram to be a good citizen. - * - * @param _log - log from mermaid/src/diagramAPI.ts - * @param _setLogLevel - setLogLevel from mermaid/src/diagramAPI.ts - * @param _getConfig - getConfig from mermaid/src/diagramAPI.ts - * @param _sanitizeText - sanitizeText from mermaid/src/diagramAPI.ts - * @param _setupGraphViewbox - setupGraphViewbox from mermaid/src/diagramAPI.ts - * @param _commonDb -`commonDb` from mermaid/src/diagramAPI.ts - */ export const injectUtils = ( _log: Record, - _setLogLevel: typeof setLogLevel, - _getConfig: typeof getConfig, - _sanitizeText: typeof sanitizeText, - _setupGraphViewbox: typeof setupGraphViewbox, + _setLogLevel: any, + _getConfig: any, + _sanitizeText: any, + _setupGraphViewbox: any, _commonDb: any ) => { - _log.info('Mermaid utils injected into timeline-diagram'); + _log.info('Mermaid utils injected'); log.trace = _log.trace; log.debug = _log.debug; log.info = _log.info; diff --git a/packages/mermaid-example-diagram/tsconfig.json b/packages/mermaid-example-diagram/tsconfig.json index 45076b7b52..310137cc0f 100644 --- a/packages/mermaid-example-diagram/tsconfig.json +++ b/packages/mermaid-example-diagram/tsconfig.json @@ -1,5 +1,6 @@ { "extends": "../../tsconfig.json", + "module": "esnext", "compilerOptions": { "rootDir": "./src", "outDir": "./dist" diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json deleted file mode 100644 index e79e2df4f3..0000000000 --- a/packages/mermaid-mindmap/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "@mermaid-js/mermaid-mindmap", - "version": "9.3.0", - "description": "Mindmap diagram module for MermaidJS.", - "module": "dist/mermaid-mindmap.core.mjs", - "types": "dist/detector.d.ts", - "type": "module", - "exports": { - ".": { - "import": "./dist/mermaid-mindmap.core.mjs", - "types": "./dist/detector.d.ts" - }, - "./*": "./*" - }, - "keywords": [ - "diagram", - "markdown", - "mindmap", - "mermaid" - ], - "scripts": { - "prepublishOnly": "pnpm -w run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/mermaid-js/mermaid" - }, - "author": "Knut Sveidqvist", - "license": "MIT", - "standard": { - "ignore": [ - "**/parser/*.js", - "dist/**/*.js", - "cypress/**/*.js" - ], - "globals": [ - "page" - ] - }, - "dependencies": { - "@braintree/sanitize-url": "^6.0.0", - "cytoscape": "^3.23.0", - "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.1.0", - "d3": "^7.0.0", - "khroma": "^2.0.0", - "non-layered-tidy-tree-layout": "^2.0.2" - }, - "devDependencies": { - "@types/cytoscape": "^3.19.9", - "concurrently": "^7.5.0", - "mermaid": "workspace:*", - "rimraf": "^3.0.2" - }, - "resolutions": { - "d3": "^7.0.0" - }, - "files": [ - "dist" - ], - "sideEffects": [ - "**/*.css", - "**/*.scss" - ] -} diff --git a/packages/mermaid-mindmap/src/mermaidUtils.ts b/packages/mermaid-mindmap/src/mermaidUtils.ts deleted file mode 100644 index 44cc85f73c..0000000000 --- a/packages/mermaid-mindmap/src/mermaidUtils.ts +++ /dev/null @@ -1,59 +0,0 @@ -const warning = (s: string) => { - // Todo remove debug code - // eslint-disable-next-line no-console - console.error('Log function was called before initialization', s); -}; - -export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'; - -export const LEVELS: Record = { - trace: 0, - debug: 1, - info: 2, - warn: 3, - error: 4, - fatal: 5, -}; - -export const log: Record = { - trace: warning, - debug: warning, - info: warning, - warn: warning, - error: warning, - fatal: warning, -}; - -export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void; -export let getConfig: () => object; -export let sanitizeText: (str: string) => string; -export let commonDb: () => object; -// eslint-disable @typescript-eslint/no-explicit-any -export let setupGraphViewbox: ( - graph: any, - svgElem: any, - padding: any, - useMaxWidth: boolean -) => void; - -export const injectUtils = ( - _log: Record, - _setLogLevel: any, - _getConfig: any, - _sanitizeText: any, - _setupGraphViewbox: any, - _commonDb: any -) => { - _log.info('Mermaid utils injected'); - log.trace = _log.trace; - log.debug = _log.debug; - log.info = _log.info; - log.warn = _log.warn; - log.error = _log.error; - log.fatal = _log.fatal; - setLogLevel = _setLogLevel; - getConfig = _getConfig; - sanitizeText = _sanitizeText; - setupGraphViewbox = _setupGraphViewbox; - commonDb = _commonDb; -}; diff --git a/packages/mermaid-mindmap/tsconfig.json b/packages/mermaid-mindmap/tsconfig.json deleted file mode 100644 index 310137cc0f..0000000000 --- a/packages/mermaid-mindmap/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "module": "esnext", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["./src/**/*.ts"], - "typeRoots": ["./src/types"] -} diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 3dd6c5af09..cae7d43a81 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -53,6 +53,9 @@ }, "dependencies": { "@braintree/sanitize-url": "^6.0.0", + "cytoscape": "^3.23.0", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.1.0", "d3": "^7.0.0", "dagre-d3-es": "7.0.8", "dompurify": "2.4.3", @@ -66,6 +69,7 @@ "uuid": "^9.0.0" }, "devDependencies": { + "@types/cytoscape": "^3.19.9", "@types/d3": "^7.4.0", "@types/dompurify": "^2.4.0", "@types/jsdom": "^20.0.1", diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts index 92291e282c..b75e914fb9 100644 --- a/packages/mermaid/src/diagram-api/detectType.ts +++ b/packages/mermaid/src/diagram-api/detectType.ts @@ -55,9 +55,10 @@ export const registerLazyLoadedDiagrams = (...diagrams: ExternalDiagramDefinitio export const addDetector = (key: string, detector: DiagramDetector, loader?: DiagramLoader) => { if (detectors[key]) { - throw new Error(`Detector with key ${key} already exists`); + log.error(`Detector with key ${key} already exists`); + } else { + detectors[key] = { detector, loader }; } - detectors[key] = { detector, loader }; log.debug(`Detector with key ${key} added${loader ? ' with loader' : ''}`); }; diff --git a/packages/mermaid/src/diagram-api/diagram-orchestration.ts b/packages/mermaid/src/diagram-api/diagram-orchestration.ts index 81ddb6163d..a68e99dd00 100644 --- a/packages/mermaid/src/diagram-api/diagram-orchestration.ts +++ b/packages/mermaid/src/diagram-api/diagram-orchestration.ts @@ -96,7 +96,10 @@ import errorStyles from '../diagrams/error/styles'; import flowchartElk from '../diagrams/flowchart/elk/detector'; import { registerLazyLoadedDiagrams } from './detectType'; +// Lazy loaded diagrams import timelineDetector from '../diagrams/timeline/detector'; +import mindmapDetector from '../diagrams/mindmap/detector'; + let hasLoadedDiagrams = false; export const addDiagrams = () => { if (hasLoadedDiagrams) { @@ -105,7 +108,7 @@ export const addDiagrams = () => { // This is added here to avoid race-conditions. // We could optimize the loading logic somehow. hasLoadedDiagrams = true; - registerLazyLoadedDiagrams(flowchartElk, timelineDetector); + registerLazyLoadedDiagrams(flowchartElk, timelineDetector, mindmapDetector); registerDiagram( 'error', diff --git a/packages/mermaid-mindmap/src/detector.ts b/packages/mermaid/src/diagrams/mindmap/detector.ts similarity index 81% rename from packages/mermaid-mindmap/src/detector.ts rename to packages/mermaid/src/diagrams/mindmap/detector.ts index da3caf51eb..82664225b8 100644 --- a/packages/mermaid-mindmap/src/detector.ts +++ b/packages/mermaid/src/diagrams/mindmap/detector.ts @@ -1,5 +1,4 @@ -import type { ExternalDiagramDefinition } from 'mermaid'; - +import type { ExternalDiagramDefinition } from '../../diagram-api/types'; const id = 'mindmap'; const detector = (txt: string) => { diff --git a/packages/mermaid-mindmap/src/diagram-definition.ts b/packages/mermaid/src/diagrams/mindmap/diagram-definition.ts similarity index 84% rename from packages/mermaid-mindmap/src/diagram-definition.ts rename to packages/mermaid/src/diagrams/mindmap/diagram-definition.ts index e7856289d8..61b41d3471 100644 --- a/packages/mermaid-mindmap/src/diagram-definition.ts +++ b/packages/mermaid/src/diagrams/mindmap/diagram-definition.ts @@ -3,12 +3,10 @@ import mindmapParser from './parser/mindmap'; import * as mindmapDb from './mindmapDb'; import mindmapRenderer from './mindmapRenderer'; import mindmapStyles from './styles'; -import { injectUtils } from './mermaidUtils'; export const diagram = { db: mindmapDb, renderer: mindmapRenderer, parser: mindmapParser, styles: mindmapStyles, - injectUtils, }; diff --git a/packages/mermaid-mindmap/src/mindmap.spec.js b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js similarity index 98% rename from packages/mermaid-mindmap/src/mindmap.spec.js rename to packages/mermaid/src/diagrams/mindmap/mindmap.spec.js index 753804a5de..8c90f774f9 100644 --- a/packages/mermaid-mindmap/src/mindmap.spec.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js @@ -1,16 +1,16 @@ import { parser as mindmap } from './parser/mindmap'; import * as mindmapDB from './mindmapDb'; -import { injectUtils } from './mermaidUtils'; +// import { injectUtils } from './mermaidUtils'; // Todo fix utils functions for tests import { - log, + // log, setLogLevel, - getConfig, - sanitizeText, - setupGraphViewBox, -} from '../../mermaid/src/diagram-api/diagramAPI'; + // getConfig, + // sanitizeText, + // setupGraphViewBox, +} from '../../diagram-api/diagramAPI'; -injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox); +// injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox); describe('when parsing a mindmap ', function () { beforeEach(function () { diff --git a/packages/mermaid-mindmap/src/mindmapDb.js b/packages/mermaid/src/diagrams/mindmap/mindmapDb.js similarity index 93% rename from packages/mermaid-mindmap/src/mindmapDb.js rename to packages/mermaid/src/diagrams/mindmap/mindmapDb.js index 16861cd233..71aa449d92 100644 --- a/packages/mermaid-mindmap/src/mindmapDb.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmapDb.js @@ -1,5 +1,8 @@ -/** Created by knut on 15-01-14. */ -import { sanitizeText, getConfig, log } from './mermaidUtils'; +import { getConfig } from '../../config'; +import { sanitizeText as _sanitizeText } from '../../diagrams/common/common'; +import { log } from '../../logger'; + +export const sanitizeText = (text) => _sanitizeText(text, getConfig()); let nodes = []; let cnt = 0; diff --git a/packages/mermaid-mindmap/src/mindmapRenderer.js b/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js similarity index 97% rename from packages/mermaid-mindmap/src/mindmapRenderer.js rename to packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js index 6ffe80f5e8..0e68a10154 100644 --- a/packages/mermaid-mindmap/src/mindmapRenderer.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js @@ -1,6 +1,8 @@ /** Created by knut on 14-12-11. */ import { select } from 'd3'; -import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; +import { log } from '../../logger'; +import { getConfig } from '../../config'; +import { setupGraphViewbox } from '../../setupGraphViewbox'; import svgDraw from './svgDraw'; import cytoscape from 'cytoscape'; import coseBilkent from 'cytoscape-cose-bilkent'; diff --git a/packages/mermaid-mindmap/src/parser/mindmap.jison b/packages/mermaid/src/diagrams/mindmap/parser/mindmap.jison similarity index 100% rename from packages/mermaid-mindmap/src/parser/mindmap.jison rename to packages/mermaid/src/diagrams/mindmap/parser/mindmap.jison diff --git a/packages/mermaid-mindmap/src/styles.js b/packages/mermaid/src/diagrams/mindmap/styles.js similarity index 100% rename from packages/mermaid-mindmap/src/styles.js rename to packages/mermaid/src/diagrams/mindmap/styles.js diff --git a/packages/mermaid-mindmap/src/svgDraw.js b/packages/mermaid/src/diagrams/mindmap/svgDraw.js similarity index 100% rename from packages/mermaid-mindmap/src/svgDraw.js rename to packages/mermaid/src/diagrams/mindmap/svgDraw.js diff --git a/packages/mermaid-mindmap/src/types/index.d.ts b/packages/mermaid/src/diagrams/mindmap/types/index.d.ts similarity index 100% rename from packages/mermaid-mindmap/src/types/index.d.ts rename to packages/mermaid/src/diagrams/mindmap/types/index.d.ts diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts index dd55d67826..52c9e88f2f 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts @@ -1,10 +1,10 @@ import mermaid, { type MermaidConfig } from 'mermaid'; -import mindmap from '@mermaid-js/mermaid-mindmap'; +// import mindmap from '@mermaid-js/mermaid-mindmap'; // import timeline from '@mermaid-js/mermaid-timeline'; const init = (async () => { try { - await mermaid.registerExternalDiagrams([mindmap, timeline]); + await mermaid.registerExternalDiagrams([]); } catch (e) { console.error(e); } diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts index 356e9398ca..3f29b497dc 100644 --- a/packages/mermaid/src/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -32,9 +32,9 @@ export default defineConfig({ alias: { mermaid: path.join(__dirname, '../../dist/mermaid.esm.min.mjs'), // Use this one to build - '@mermaid-js/mermaid-mindmap': path.join( + '@mermaid-js/mermaid-example-diagram': path.join( __dirname, - '../../../mermaid-mindmap/dist/mermaid-mindmap.esm.min.mjs' + '../../../mermaid-example-diagram/dist/mermaid-example-diagram.esm.min.mjs' ), // Use this one to build // '@mermaid-js/mermaid-timeline': path.join( // __dirname, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9613048288..eee2aea418 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,6 +169,15 @@ importers: '@braintree/sanitize-url': specifier: ^6.0.0 version: 6.0.0 + cytoscape: + specifier: ^3.23.0 + version: 3.23.0 + cytoscape-cose-bilkent: + specifier: ^4.1.0 + version: 4.1.0_cytoscape@3.23.0 + cytoscape-fcose: + specifier: ^2.1.0 + version: 2.1.0_cytoscape@3.23.0 d3: specifier: ^7.0.0 version: 7.6.1 @@ -203,6 +212,9 @@ importers: specifier: ^9.0.0 version: 9.0.0 devDependencies: + '@types/cytoscape': + specifier: ^3.19.9 + version: 3.19.9 '@types/d3': specifier: ^7.4.0 version: 7.4.0 @@ -304,15 +316,6 @@ importers: version: 1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am packages/mermaid-example-diagram: - devDependencies: - concurrently: - specifier: ^7.5.0 - version: 7.5.0 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - - packages/mermaid-mindmap: dependencies: '@braintree/sanitize-url': specifier: ^6.0.0 @@ -328,7 +331,7 @@ importers: version: 2.1.0_cytoscape@3.23.0 d3: specifier: ^7.0.0 - version: 7.6.1 + version: 7.8.2 khroma: specifier: ^2.0.0 version: 2.0.0 @@ -349,27 +352,23 @@ importers: specifier: ^3.0.2 version: 3.0.2 - packages/mermaid-timeline: - dependencies: - d3: - specifier: ^7.0.0 - version: 7.6.1 - khroma: - specifier: ^2.0.0 - version: 2.0.0 + packages/mermaid-example-diagram-new: devDependencies: concurrently: - specifier: ^7.4.0 + specifier: ^7.5.0 version: 7.5.0 + mermaid: + specifier: workspace:* + version: link:../mermaid rimraf: specifier: ^3.0.2 version: 3.0.2 tests/webpack: dependencies: - '@mermaid-js/mermaid-mindmap': + '@mermaid-js/mermaid-example-diagram': specifier: workspace:* - version: link:../../packages/mermaid-mindmap + version: link:../../packages/mermaid-example-diagram-new mermaid: specifier: workspace:* version: link:../../packages/mermaid diff --git a/tests/webpack/package.json b/tests/webpack/package.json index c58f456a6b..e518453992 100644 --- a/tests/webpack/package.json +++ b/tests/webpack/package.json @@ -18,6 +18,6 @@ }, "dependencies": { "mermaid": "workspace:*", - "@mermaid-js/mermaid-mindmap": "workspace:*" + "@mermaid-js/mermaid-example-diagram": "workspace:*" } } From c4eb1608b0c0e37cd2f136122ce4fcad4cd5c8fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 19:30:57 +0000 Subject: [PATCH 0974/1038] chore(deps): update all non-major dependencies --- package.json | 10 +-- pnpm-lock.yaml | 195 +++++++++++++++++++++++++++---------------------- 2 files changed, 112 insertions(+), 93 deletions(-) diff --git a/package.json b/package.json index e7cb9bdf01..b113afd9eb 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "9.3.0-rc1", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", - "packageManager": "pnpm@7.25.1", + "packageManager": "pnpm@7.27.0", "keywords": [ "diagram", "markdown", @@ -69,8 +69,8 @@ "@types/rollup-plugin-visualizer": "^4.2.1", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", - "@vitest/coverage-c8": "^0.27.0", - "@vitest/ui": "^0.27.0", + "@vitest/coverage-c8": "^0.28.0", + "@vitest/ui": "^0.28.0", "concurrently": "^7.5.0", "coveralls": "^3.1.1", "cypress": "^10.11.0", @@ -106,9 +106,9 @@ "ts-node": "^10.9.1", "typescript": "^4.8.4", "vite": "^3.2.3", - "vitest": "^0.27.1" + "vitest": "^0.28.0" }, "volta": { - "node": "18.13.0" + "node": "18.14.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9613048288..2ff618a17f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,11 +50,11 @@ importers: specifier: ^5.48.2 version: 5.48.2_yygwinqv3a2io74xmwofqb7uka '@vitest/coverage-c8': - specifier: ^0.27.0 - version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + specifier: ^0.28.0 + version: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu '@vitest/ui': - specifier: ^0.27.0 - version: 0.27.1 + specifier: ^0.28.0 + version: 0.28.4 concurrently: specifier: ^7.5.0 version: 7.5.0 @@ -161,8 +161,8 @@ importers: specifier: ^3.2.3 version: 3.2.3_@types+node@18.11.9 vitest: - specifier: ^0.27.1 - version: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + specifier: ^0.28.0 + version: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu packages/mermaid: dependencies: @@ -349,22 +349,6 @@ importers: specifier: ^3.0.2 version: 3.0.2 - packages/mermaid-timeline: - dependencies: - d3: - specifier: ^7.0.0 - version: 7.6.1 - khroma: - specifier: ^2.0.0 - version: 2.0.0 - devDependencies: - concurrently: - specifier: ^7.4.0 - version: 7.5.0 - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - tests/webpack: dependencies: '@mermaid-js/mermaid-mindmap': @@ -2651,11 +2635,7 @@ packages: /@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.3 - dev: true - - /@types/chai/4.3.3: - resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} + '@types/chai': 4.3.4 dev: true /@types/chai/4.3.4: @@ -3428,11 +3408,13 @@ packages: vue: 3.2.45 dev: true - /@vitest/coverage-c8/0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce: - resolution: {integrity: sha512-/9VTGDIAp4hv8PBawfyijxhkiyucfOxFRRP+7kzy3Dj0wONy1Mc2MBoPmiH4aZVc0LViQqecrQLs8JVGt42keA==} + /@vitest/coverage-c8/0.28.4_ppxbkcip27yigfcjmn2ppf4tvu: + resolution: {integrity: sha512-btelLBxaWhHnywXRQxDlrvPhGdnuIaD3XulsxcZRIcnpLPbFu39dNTT0IYu2QWP2ZZrV0AmNtdLIfD4c77zMAg==} dependencies: c8: 7.12.0 - vitest: 0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce + picocolors: 1.0.0 + std-env: 3.3.2 + vitest: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -3447,14 +3429,48 @@ packages: - terser dev: true - /@vitest/ui/0.27.1: - resolution: {integrity: sha512-o9LmWY/XyWt5Pqb+bLLK+N3Vk+PP2jqrdDDMEAY43dB6vtZ+gYuOt5IutUfB7gXeJ6xeIlzUZ/OabrR3leldCA==} + /@vitest/expect/0.28.4: + resolution: {integrity: sha512-JqK0NZ4brjvOSL8hXAnIsfi+jxDF7rH/ZWCGCt0FAqRnVFc1hXsfwXksQvEnKqD84avRt3gmeXoK4tNbmkoVsQ==} + dependencies: + '@vitest/spy': 0.28.4 + '@vitest/utils': 0.28.4 + chai: 4.3.7 + dev: true + + /@vitest/runner/0.28.4: + resolution: {integrity: sha512-Q8UV6GjDvBSTfUoq0QXVCNpNOUrWu4P2qvRq7ssJWzn0+S0ojbVOxEjMt+8a32X6SdkhF8ak+2nkppsqV0JyNQ==} + dependencies: + '@vitest/utils': 0.28.4 + p-limit: 4.0.0 + pathe: 1.1.0 + dev: true + + /@vitest/spy/0.28.4: + resolution: {integrity: sha512-8WuhfXLlvCXpNXEGJW6Gc+IKWI32435fQJLh43u70HnZ1otJOa2Cmg2Wy2Aym47ZnNCP4NolF+8cUPwd0MigKQ==} + dependencies: + tinyspy: 1.0.2 + dev: true + + /@vitest/ui/0.28.4: + resolution: {integrity: sha512-LQfCCFc17n49mwtraV9/NAWl2DUqJS/9ZEa3fqJjoYO+HowdseQ5jvWflpzliCyfrIAh6cXVo1bNzHnDXe0cbw==} dependencies: fast-glob: 3.2.12 flatted: 3.2.7 + pathe: 1.1.0 + picocolors: 1.0.0 sirv: 2.0.2 dev: true + /@vitest/utils/0.28.4: + resolution: {integrity: sha512-l2QztOLdc2LkR+w/lP52RGh8hW+Ul4KESmCAgVE8q737I7e7bQoAfkARKpkPJ4JQtGpwW4deqlj1732VZD7TFw==} + dependencies: + cli-truncate: 3.1.0 + diff: 5.1.0 + loupe: 2.3.6 + picocolors: 1.0.0 + pretty-format: 27.5.1 + dev: true + /@vue/compiler-core/3.2.45: resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==} dependencies: @@ -3801,7 +3817,7 @@ packages: /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.0 + acorn: 8.8.1 acorn-walk: 8.2.0 dev: true @@ -8789,6 +8805,12 @@ packages: get-func-name: 2.0.0 dev: true + /loupe/2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + /lowercase-keys/2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} @@ -9421,7 +9443,7 @@ packages: resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} dependencies: acorn: 8.8.1 - pathe: 1.0.0 + pathe: 1.1.0 pkg-types: 1.0.1 ufo: 1.0.1 dev: true @@ -9711,6 +9733,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate/3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} @@ -9893,12 +9922,8 @@ packages: engines: {node: '>=8'} dev: true - /pathe/0.2.0: - resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} - dev: true - - /pathe/1.0.0: - resolution: {integrity: sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==} + /pathe/1.1.0: + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} dev: true /pathval/1.1.1: @@ -9970,7 +9995,7 @@ packages: dependencies: jsonc-parser: 3.2.0 mlly: 1.1.0 - pathe: 1.0.0 + pathe: 1.1.0 dev: true /plist/3.0.6: @@ -10067,6 +10092,15 @@ packages: engines: {node: '>=6'} dev: true + /pretty-format/27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + /pretty-format/29.3.1: resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10200,6 +10234,10 @@ packages: unpipe: 1.0.0 dev: true + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + /react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -11031,6 +11069,10 @@ packages: engines: {node: '>= 0.8'} dev: true + /std-env/3.3.2: + resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} + dev: true + /stream-combiner/0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} dependencies: @@ -11232,7 +11274,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.0 + acorn: 8.8.1 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -11281,8 +11323,8 @@ packages: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true - /tinypool/0.3.0: - resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} + /tinypool/0.3.1: + resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} engines: {node: '>=14.0.0'} dev: true @@ -11768,19 +11810,19 @@ packages: vfile-message: 3.1.2 dev: true - /vite-node/0.27.1_@types+node@18.11.9: - resolution: {integrity: sha512-d6+ue/3NzsfndWaPbYh/bFkHbmAWfDXI4B874zRx+WREnG6CUHUbBC8lKaRYZjeR6gCPN5m1aVNNRXBYICA9XA==} + /vite-node/0.28.4_@types+node@18.11.9: + resolution: {integrity: sha512-KM0Q0uSG/xHHKOJvVHc5xDBabgt0l70y7/lWTR7Q0pR5/MrYxadT+y32cJOE65FfjGmJgxpVEEY+69btJgcXOQ==} engines: {node: '>=v14.16.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 mlly: 1.1.0 - pathe: 0.2.0 + pathe: 1.1.0 picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.0.1_@types+node@18.11.9 + vite: 3.2.3_@types+node@18.11.9 transitivePeerDependencies: - '@types/node' - less @@ -11891,40 +11933,6 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.1_@types+node@18.11.9: - resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 18.11.9 - esbuild: 0.16.7 - postcss: 8.4.20 - resolve: 1.22.1 - rollup: 3.7.4 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vitepress-plugin-search/1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am: resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} @@ -11970,8 +11978,8 @@ packages: - terser dev: true - /vitest/0.27.1_6vhkb7zox2ro6wmx3rlvm5i5ce: - resolution: {integrity: sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g==} + /vitest/0.28.4_ppxbkcip27yigfcjmn2ppf4tvu: + resolution: {integrity: sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -11995,7 +12003,11 @@ packages: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.11.9 - '@vitest/ui': 0.27.1 + '@vitest/expect': 0.28.4 + '@vitest/runner': 0.28.4 + '@vitest/spy': 0.28.4 + '@vitest/ui': 0.28.4 + '@vitest/utils': 0.28.4 acorn: 8.8.1 acorn-walk: 8.2.0 cac: 6.7.14 @@ -12003,14 +12015,16 @@ packages: debug: 4.3.4 jsdom: 20.0.2 local-pkg: 0.4.2 + pathe: 1.1.0 picocolors: 1.0.0 source-map: 0.6.1 + std-env: 3.3.2 strip-literal: 1.0.0 tinybench: 2.3.1 - tinypool: 0.3.0 + tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.0.1_@types+node@18.11.9 - vite-node: 0.27.1_@types+node@18.11.9 + vite: 3.2.3_@types+node@18.11.9 + vite-node: 0.28.4_@types+node@18.11.9 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -12590,6 +12604,11 @@ packages: engines: {node: '>=10'} dev: true + /yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + /zwitch/2.0.2: resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} dev: true From f83f09d8b0a7a8ecad021b132bc28f42a2c99083 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 9 Feb 2023 01:29:41 +0530 Subject: [PATCH 0975/1038] Fix vitest type --- package.json | 7 +-- packages/mermaid/src/tests/MockedD3.ts | 2 + pnpm-lock.yaml | 63 ++++++++++++++++++++------ 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index b113afd9eb..67b1dd8e30 100644 --- a/package.json +++ b/package.json @@ -69,8 +69,9 @@ "@types/rollup-plugin-visualizer": "^4.2.1", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", - "@vitest/coverage-c8": "^0.28.0", - "@vitest/ui": "^0.28.0", + "@vitest/coverage-c8": "^0.28.4", + "@vitest/spy": "^0.28.4", + "@vitest/ui": "^0.28.4", "concurrently": "^7.5.0", "coveralls": "^3.1.1", "cypress": "^10.11.0", @@ -106,7 +107,7 @@ "ts-node": "^10.9.1", "typescript": "^4.8.4", "vite": "^3.2.3", - "vitest": "^0.28.0" + "vitest": "^0.28.4" }, "volta": { "node": "18.14.0" diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts index 284b21b08c..4600e2667b 100644 --- a/packages/mermaid/src/tests/MockedD3.ts +++ b/packages/mermaid/src/tests/MockedD3.ts @@ -1,3 +1,5 @@ +import type {} from '@vitest/spy'; + /** * This is a mocked/stubbed version of the d3 Selection type. Each of the main functions are all * mocked (via vi.fn()) so you can track if they have been called, etc. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ff618a17f..dc1844d363 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,10 +50,13 @@ importers: specifier: ^5.48.2 version: 5.48.2_yygwinqv3a2io74xmwofqb7uka '@vitest/coverage-c8': - specifier: ^0.28.0 + specifier: ^0.28.4 version: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu + '@vitest/spy': + specifier: ^0.28.4 + version: 0.28.4 '@vitest/ui': - specifier: ^0.28.0 + specifier: ^0.28.4 version: 0.28.4 concurrently: specifier: ^7.5.0 @@ -161,7 +164,7 @@ importers: specifier: ^3.2.3 version: 3.2.3_@types+node@18.11.9 vitest: - specifier: ^0.28.0 + specifier: ^0.28.4 version: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu packages/mermaid: @@ -4138,7 +4141,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 transitivePeerDependencies: - debug dev: true @@ -4466,7 +4469,7 @@ packages: check-error: 1.0.2 deep-eql: 4.1.3 get-func-name: 2.0.0 - loupe: 2.3.4 + loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -6936,7 +6939,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2: + /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6944,6 +6947,8 @@ packages: peerDependenciesMeta: debug: optional: true + dependencies: + debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -7483,7 +7488,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -8799,12 +8804,6 @@ packages: resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} dev: true - /loupe/2.3.4: - resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} - dependencies: - get-func-name: 2.0.0 - dev: true - /loupe/2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: @@ -11822,7 +11821,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 3.2.3_@types+node@18.11.9 + vite: 4.0.1_@types+node@18.11.9 transitivePeerDependencies: - '@types/node' - less @@ -11933,6 +11932,40 @@ packages: fsevents: 2.3.2 dev: true + /vite/4.0.1_@types+node@18.11.9: + resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.9 + esbuild: 0.16.7 + postcss: 8.4.20 + resolve: 1.22.1 + rollup: 3.7.4 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vitepress-plugin-search/1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am: resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} @@ -12023,7 +12056,7 @@ packages: tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 3.2.3_@types+node@18.11.9 + vite: 4.0.1_@types+node@18.11.9 vite-node: 0.28.4_@types+node@18.11.9 why-is-node-running: 2.2.2 transitivePeerDependencies: From 4d12fb046440b4d1756ee6ccfc68d8140694adab Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Wed, 8 Feb 2023 23:58:12 +0000 Subject: [PATCH 0976/1038] build(lint:fix): cache eslint in pnpm run lint:fix Cache eslint in `pnpm run lint:fix`. This was added to the `pnpm run lint` script in b7f9495 (build: add eslint --cache file, 2022-08-27), but we didn't add it to `pnpm run lint:fix` due to worries about cache invalidation. However, we switched to using `--cache-strategy content` in b3e509b7 (build(lint): cache eslint with strategy content, 2023-02-05), which should avoid any caching issues. Co-authored-by: Sidharth Vinod --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 67b1dd8e30..54443fda72 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", - "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", + "lint:fix": "eslint --cache --cache-strategy content --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run", "cypress:open": "cypress open", From d45eda1c60152dd45c4316a8b703bf984069d7e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 20:17:21 +0000 Subject: [PATCH 0977/1038] chore(deps): update dependency @types/uuid to v9 --- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 3dd6c5af09..0d514102bb 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -73,7 +73,7 @@ "@types/micromatch": "^4.0.2", "@types/prettier": "^2.7.1", "@types/stylis": "^4.0.2", - "@types/uuid": "^8.3.4", + "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.42.1", "@typescript-eslint/parser": "^5.42.1", "chokidar": "^3.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc1844d363..7ba014f293 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -228,8 +228,8 @@ importers: specifier: ^4.0.2 version: 4.0.2 '@types/uuid': - specifier: ^8.3.4 - version: 8.3.4 + specifier: ^9.0.0 + version: 9.0.0 '@typescript-eslint/eslint-plugin': specifier: ^5.42.1 version: 5.42.1_qxgr6oy2qtsmmpo3f6iejuryuq @@ -3110,8 +3110,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@types/uuid/8.3.4: - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + /@types/uuid/9.0.0: + resolution: {integrity: sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==} dev: true /@types/web-bluetooth/0.0.16: @@ -4141,7 +4141,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 transitivePeerDependencies: - debug dev: true @@ -6939,7 +6939,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2_debug@4.3.2: + /follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6947,8 +6947,6 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -7488,7 +7486,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug From bb3a48c91a4412aeb08ceab0c4b4952e6341f373 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 00:42:44 +0000 Subject: [PATCH 0978/1038] chore(deps): update actions/configure-pages action to v3 --- .github/workflows/publish-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 85bc79f6eb..2153e11be7 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -40,7 +40,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Setup Pages - uses: actions/configure-pages@v2 + uses: actions/configure-pages@v3 - name: Run Build run: pnpm --filter mermaid run docs:build:vitepress From 3a89cc7993b7e32a70fcbeb25846f5c3c1105b90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 00:47:08 +0000 Subject: [PATCH 0979/1038] chore(deps): update dependency jsdom to v21 --- package.json | 4 +-- packages/mermaid/package.json | 4 +-- pnpm-lock.yaml | 68 +++++++++++++++++++++++------------ 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 67b1dd8e30..83d905b002 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@types/eslint": "^8.4.10", "@types/express": "^4.17.14", "@types/js-yaml": "^4.0.5", - "@types/jsdom": "^20.0.1", + "@types/jsdom": "^21.0.0", "@types/lodash": "^4.14.188", "@types/mdast": "^3.0.10", "@types/node": "^18.11.9", @@ -95,7 +95,7 @@ "jest": "^29.3.1", "jison": "^0.4.18", "js-yaml": "^4.1.0", - "jsdom": "^20.0.2", + "jsdom": "^21.0.0", "lint-staged": "^13.0.3", "path-browserify": "^1.0.1", "pnpm": "^7.15.0", diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 0d514102bb..9eb4e8b1e9 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -68,7 +68,7 @@ "devDependencies": { "@types/d3": "^7.4.0", "@types/dompurify": "^2.4.0", - "@types/jsdom": "^20.0.1", + "@types/jsdom": "^21.0.0", "@types/lodash-es": "^4.17.6", "@types/micromatch": "^4.0.2", "@types/prettier": "^2.7.1", @@ -84,7 +84,7 @@ "globby": "^13.1.2", "jison": "^0.4.18", "js-base64": "^3.7.2", - "jsdom": "^20.0.2", + "jsdom": "^21.0.0", "micromatch": "^4.0.5", "path-browserify": "^1.0.1", "prettier": "^2.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ba014f293..456727fcda 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,8 +26,8 @@ importers: specifier: ^4.0.5 version: 4.0.5 '@types/jsdom': - specifier: ^20.0.1 - version: 20.0.1 + specifier: ^21.0.0 + version: 21.1.0 '@types/lodash': specifier: ^4.14.188 version: 4.14.188 @@ -51,7 +51,7 @@ importers: version: 5.48.2_yygwinqv3a2io74xmwofqb7uka '@vitest/coverage-c8': specifier: ^0.28.4 - version: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu + version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki '@vitest/spy': specifier: ^0.28.4 version: 0.28.4 @@ -128,8 +128,8 @@ importers: specifier: ^4.1.0 version: 4.1.0 jsdom: - specifier: ^20.0.2 - version: 20.0.2 + specifier: ^21.0.0 + version: 21.1.0 lint-staged: specifier: ^13.0.3 version: 13.0.3 @@ -165,7 +165,7 @@ importers: version: 3.2.3_@types+node@18.11.9 vitest: specifier: ^0.28.4 - version: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu + version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki packages/mermaid: dependencies: @@ -213,8 +213,8 @@ importers: specifier: ^2.4.0 version: 2.4.0 '@types/jsdom': - specifier: ^20.0.1 - version: 20.0.1 + specifier: ^21.0.0 + version: 21.1.0 '@types/lodash-es': specifier: ^4.17.6 version: 4.17.6 @@ -261,8 +261,8 @@ importers: specifier: ^3.7.2 version: 3.7.2 jsdom: - specifier: ^20.0.2 - version: 20.0.2 + specifier: ^21.0.0 + version: 21.1.0 micromatch: specifier: ^4.0.5 version: 4.0.5 @@ -2936,8 +2936,8 @@ packages: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: true - /@types/jsdom/20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + /@types/jsdom/21.1.0: + resolution: {integrity: sha512-leWreJOdnuIxq9Y70tBVm/bvTuh31DSlF/r4l7Cfi4uhVQqLHD0Q4v301GMisEMwwbMgF7ZKxuZ+Jbd4NcdmRw==} dependencies: '@types/node': 18.11.9 '@types/tough-cookie': 4.0.2 @@ -3411,13 +3411,13 @@ packages: vue: 3.2.45 dev: true - /@vitest/coverage-c8/0.28.4_ppxbkcip27yigfcjmn2ppf4tvu: + /@vitest/coverage-c8/0.28.4_vun5xzxu3tkrssf3erdbijyyki: resolution: {integrity: sha512-btelLBxaWhHnywXRQxDlrvPhGdnuIaD3XulsxcZRIcnpLPbFu39dNTT0IYu2QWP2ZZrV0AmNtdLIfD4c77zMAg==} dependencies: c8: 7.12.0 picocolors: 1.0.0 std-env: 3.3.2 - vitest: 0.28.4_ppxbkcip27yigfcjmn2ppf4tvu + vitest: 0.28.4_vun5xzxu3tkrssf3erdbijyyki transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -5721,6 +5721,10 @@ packages: resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} dev: true + /decimal.js/10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + /decode-named-character-reference/1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: @@ -8420,8 +8424,8 @@ packages: engines: {node: '>=12.0.0'} dev: true - /jsdom/20.0.2: - resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} + /jsdom/21.1.0: + resolution: {integrity: sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==} engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 @@ -8430,12 +8434,12 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.0 + acorn: 8.8.1 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.4.1 + decimal.js: 10.4.3 domexception: 4.0.0 escodegen: 2.0.0 form-data: 4.0.0 @@ -8448,12 +8452,12 @@ packages: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.2 - w3c-xmlserializer: 3.0.0 + w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.9.0 + ws: 8.12.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -12009,7 +12013,7 @@ packages: - terser dev: true - /vitest/0.28.4_ppxbkcip27yigfcjmn2ppf4tvu: + /vitest/0.28.4_vun5xzxu3tkrssf3erdbijyyki: resolution: {integrity: sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg==} engines: {node: '>=v14.16.0'} hasBin: true @@ -12044,7 +12048,7 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - jsdom: 20.0.2 + jsdom: 21.1.0 local-pkg: 0.4.2 pathe: 1.1.0 picocolors: 1.0.0 @@ -12148,6 +12152,13 @@ packages: xml-name-validator: 4.0.0 dev: true + /w3c-xmlserializer/4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + /wait-on/6.0.0_debug@4.3.2: resolution: {integrity: sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==} engines: {node: '>=10.0.0'} @@ -12497,6 +12508,19 @@ packages: optional: true dev: true + /ws/8.12.0: + resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} + 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 + dev: true + /ws/8.5.0: resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} engines: {node: '>=10.0.0'} From 72e8b7fb38973208097b53a7b7fe5071d80fc404 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 00:49:20 +0000 Subject: [PATCH 0980/1038] chore(deps): update dependency rimraf to v4 --- package.json | 2 +- packages/mermaid-example-diagram/package.json | 2 +- packages/mermaid-mindmap/package.json | 2 +- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 22 ++++++++++++------- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 67b1dd8e30..3bc79e20c3 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "pnpm": "^7.15.0", "prettier": "^2.7.1", "prettier-plugin-jsdoc": "^0.4.2", - "rimraf": "^3.0.2", + "rimraf": "^4.0.0", "rollup-plugin-visualizer": "^5.8.3", "start-server-and-test": "^1.14.0", "ts-node": "^10.9.1", diff --git a/packages/mermaid-example-diagram/package.json b/packages/mermaid-example-diagram/package.json index 8e958806a7..13ab587cc5 100644 --- a/packages/mermaid-example-diagram/package.json +++ b/packages/mermaid-example-diagram/package.json @@ -51,7 +51,7 @@ "dependencies": {}, "devDependencies": { "concurrently": "^7.5.0", - "rimraf": "^3.0.2" + "rimraf": "^4.0.0" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid-mindmap/package.json b/packages/mermaid-mindmap/package.json index e79e2df4f3..8c861097bb 100644 --- a/packages/mermaid-mindmap/package.json +++ b/packages/mermaid-mindmap/package.json @@ -50,7 +50,7 @@ "@types/cytoscape": "^3.19.9", "concurrently": "^7.5.0", "mermaid": "workspace:*", - "rimraf": "^3.0.2" + "rimraf": "^4.0.0" }, "resolutions": { "d3": "^7.0.0" diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 0d514102bb..cf44d7afb1 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -91,7 +91,7 @@ "remark": "^14.0.2", "remark-frontmatter": "^4.0.1", "remark-gfm": "^3.0.1", - "rimraf": "^3.0.2", + "rimraf": "^4.0.0", "start-server-and-test": "^1.14.0", "typedoc": "^0.23.18", "typedoc-plugin-markdown": "^3.13.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ba014f293..fe9715b1e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,8 +146,8 @@ importers: specifier: ^0.4.2 version: 0.4.2_prettier@2.7.1 rimraf: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^4.0.0 + version: 4.1.2 rollup-plugin-visualizer: specifier: ^5.8.3 version: 5.8.3 @@ -282,8 +282,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 rimraf: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^4.0.0 + version: 4.1.2 start-server-and-test: specifier: ^1.14.0 version: 1.14.0 @@ -312,8 +312,8 @@ importers: specifier: ^7.5.0 version: 7.5.0 rimraf: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^4.0.0 + version: 4.1.2 packages/mermaid-mindmap: dependencies: @@ -349,8 +349,8 @@ importers: specifier: workspace:* version: link:../mermaid rimraf: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^4.0.0 + version: 4.1.2 tests/webpack: dependencies: @@ -10546,6 +10546,12 @@ packages: glob: 7.2.3 dev: true + /rimraf/4.1.2: + resolution: {integrity: sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==} + engines: {node: '>=14'} + hasBin: true + dev: true + /robust-predicates/3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} dev: false From 886d1c15c4fa147fb43af3cdaea3fa310f446d3f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 00:51:38 +0000 Subject: [PATCH 0981/1038] chore(deps): update timonvs/pr-labeler-action action to v4 --- .github/workflows/pr-labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 107743c6a9..0a53c6e424 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -8,6 +8,6 @@ jobs: runs-on: ubuntu-latest steps: - name: Label PR - uses: TimonVS/pr-labeler-action@v3 + uses: TimonVS/pr-labeler-action@v4 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 34c98717d5fe6e548d3cf8fa3244cbf23ece7f21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 05:44:09 +0000 Subject: [PATCH 0982/1038] chore(deps): update actions/dependency-review-action action to v3 --- .github/workflows/dependency-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 845c763e8c..34b14c395b 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,4 +17,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@v3 - name: 'Dependency Review' - uses: actions/dependency-review-action@v2 + uses: actions/dependency-review-action@v3 From 08ac41113f55d8af357e750b953757e010efec8a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 05:54:04 +0000 Subject: [PATCH 0983/1038] chore(deps): update dependency vite to v4 --- package.json | 2 +- pnpm-lock.yaml | 40 +++------------------------------------- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 91d9316b3f..36bc5bae80 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "start-server-and-test": "^1.14.0", "ts-node": "^10.9.1", "typescript": "^4.8.4", - "vite": "^3.2.3", + "vite": "^4.0.0", "vitest": "^0.28.4" }, "volta": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5fbd25bbe3..d59edac9fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -161,8 +161,8 @@ importers: specifier: ^4.8.4 version: 4.8.4 vite: - specifier: ^3.2.3 - version: 3.2.3_@types+node@18.11.9 + specifier: ^4.0.0 + version: 4.0.1_@types+node@18.11.9 vitest: specifier: ^0.28.4 version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki @@ -11866,41 +11866,7 @@ packages: optional: true dependencies: esbuild: 0.15.13 - postcss: 8.4.18 - resolve: 1.22.1 - rollup: 2.79.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vite/3.2.3_@types+node@18.11.9: - resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 18.11.9 - esbuild: 0.15.13 - postcss: 8.4.18 + postcss: 8.4.20 resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: From 004432fae9bc8592a5820560bde4d619d11c8e92 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 9 Feb 2023 11:28:27 +0530 Subject: [PATCH 0984/1038] Fix types --- .vite/build.ts | 15 ++++++++------- packages/mermaid/src/docs/vite.config.ts | 5 ++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index 019461c499..71f94bc69f 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -20,13 +20,14 @@ const visualizerOptions = (packageName: string, core = false): PluginOption[] => if (packageName !== 'mermaid' || !visualize) { return []; } - return ['network', 'treemap', 'sunburst'].map((chartType) => - visualizer({ - filename: `./stats/${chartType}${core ? '.core' : ''}.html`, - template: chartType as TemplateType, - gzipSize: true, - brotliSize: true, - }) + return ['network', 'treemap', 'sunburst'].map( + (chartType) => + visualizer({ + filename: `./stats/${chartType}${core ? '.core' : ''}.html`, + template: chartType as TemplateType, + gzipSize: true, + brotliSize: true, + }) as PluginOption ); }; diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts index 356e9398ca..5a7682553a 100644 --- a/packages/mermaid/src/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -1,6 +1,5 @@ -import { defineConfig, searchForWorkspaceRoot } from 'vite'; +import { defineConfig, type PluginOption, searchForWorkspaceRoot } from 'vite'; import path from 'path'; -// @ts-ignore: still in alpha import { SearchPlugin } from 'vitepress-plugin-search'; const virtualModuleId = 'virtual:mermaid-config'; @@ -8,7 +7,7 @@ const resolvedVirtualModuleId = '\0' + virtualModuleId; export default defineConfig({ plugins: [ - SearchPlugin(), + SearchPlugin() as PluginOption, { // TODO: will be fixed in the next vitepress release. name: 'fix-virtual', From f6d9868e35489e00875650c61864af063159f917 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 9 Feb 2023 11:34:20 +0530 Subject: [PATCH 0985/1038] chore: Lint fix --- README.zh-CN.md | 4 +--- packages/mermaid/README.zh-CN.md | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index b7ffc5bc8d..2b96a29333 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -325,9 +325,7 @@ _很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在 来自 Knut Sveidqvist: -> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ ->_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ ->_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ +> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ > _同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ > _感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ > > _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md index 9f709a81a7..1537e9af50 100644 --- a/packages/mermaid/README.zh-CN.md +++ b/packages/mermaid/README.zh-CN.md @@ -325,9 +325,7 @@ _很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在 来自 Knut Sveidqvist: -> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ ->_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ ->_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ +> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ > _同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ > _感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ > > _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ From ad6a43cf813e211ece95dd99b7b935c88f9fb2a5 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 9 Feb 2023 12:46:05 +0530 Subject: [PATCH 0986/1038] Add logo to readme --- README.md | 28 +++++++++++++++-- README.zh-CN.md | 28 +++++++++++++++-- packages/mermaid/README.md | 46 ++++++++++++++++++++++------ packages/mermaid/README.zh-CN.md | 52 +++++++++++++++++++++++--------- 4 files changed, 123 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 9fed47a691..2b621807e2 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,31 @@ -# mermaid +

    + +

    +

    +Mermaid +

    +

    +Generate diagrams from markdown-like text. +

    +

    + +

    + +

    +Live Editor! +

    +

    + Documentation | Getting Started | Join Us +

    +

    +简体中文 +

    + +
    +
    [![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) -English | [简体中文](./README.zh-CN.md) - :trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category "The most exciting use of technology"!!!** diff --git a/README.zh-CN.md b/README.zh-CN.md index 2b96a29333..5c137a5e0e 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,9 +1,31 @@ -# mermaid +

    + +

    +

    +Mermaid +

    +

    +通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。 +

    +

    + +

    + +

    +Live Editor! +

    +

    + 文档 | 入门 | 加入我们 +

    +

    +English +

    + +
    +
    [![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) -[English](./README.md) | 简体中文 - :trophy: **Mermaid 被提名并获得了 [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) 的 "The most exciting use of technology" 奖项!!!** diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md index e6c7db6085..2b621807e2 100644 --- a/packages/mermaid/README.md +++ b/packages/mermaid/README.md @@ -1,8 +1,30 @@ -# mermaid - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) - -English | [简体中文](./README.zh-CN.md) +

    + +

    +

    +Mermaid +

    +

    +Generate diagrams from markdown-like text. +

    +

    + +

    + +

    +Live Editor! +

    +

    + Documentation | Getting Started | Join Us +

    +

    +简体中文 +

    + +
    +
    + +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) @@ -26,12 +48,12 @@ Mermaid addresses this problem by enabling users to create easily modifiable dia
    Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    -[Tutorials](./docs/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md). +[Tutorials](./docs/config/Tutorials.md) has video tutorials. +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). -You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md). +You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md), [Usage](./docs/usage.md) and [Tutorials](./docs/Tutorials.md). +For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md). 🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) @@ -337,7 +359,11 @@ To report a vulnerability, please e-mail security@mermaid.live with a descriptio A quick note from Knut Sveidqvist: -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ +> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ +> +> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ +> +> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ > > _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md index 1537e9af50..5c137a5e0e 100644 --- a/packages/mermaid/README.zh-CN.md +++ b/packages/mermaid/README.zh-CN.md @@ -1,8 +1,30 @@ -# mermaid - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) - -[English](./README.md) | 简体中文 +

    + +

    +

    +Mermaid +

    +

    +通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。 +

    +

    + +

    + +

    +Live Editor! +

    +

    + 文档 | 入门 | 加入我们 +

    +

    +English +

    + +
    +
    + +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) @@ -24,9 +46,9 @@ Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markd Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。

    Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。
    -你可以访问 [教程](./docs/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 +你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/misc/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 -如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/n00b-overview.md), [用法](./docs/usage.md) 和 [教程](./docs/Tutorials.md). +如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md). 🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) @@ -39,7 +61,7 @@ Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://merma
    -### 流程图 [文档 - live editor] +### 流程图 [文档 - live editor] ``` flowchart LR @@ -57,7 +79,7 @@ C -->|One| D[Result 1] C -->|Two| E[Result 2] ``` -### 时序图 [文档 - live editor] +### 时序图 [文档 - live editor] ``` sequenceDiagram @@ -83,7 +105,7 @@ John->>Bob: How about you? Bob-->>John: Jolly good! ``` -### 甘特图 [文档 - live editor] +### 甘特图 [文档 - live editor] ``` gantt @@ -107,7 +129,7 @@ gantt Parallel 4 : des6, after des4, 1d ``` -### 类图 [文档 - live editor] +### 类图 [文档 - live editor] ``` classDiagram @@ -147,7 +169,7 @@ class Class10 { } ``` -### 状态图 [[docs - live editor] +### 状态图 [[docs - live editor] ``` stateDiagram-v2 @@ -169,7 +191,7 @@ Moving --> Crash Crash --> [*] ``` -### 饼图 [文档 - live editor] +### 饼图 [文档 - live editor] ``` pie @@ -185,9 +207,9 @@ pie "Rats" : 15 ``` -### Git 图 [实验特性 - live editor] +### Git 图 [实验特性 - live editor] -### 用户体验旅程图 [文档 - live editor] +### 用户体验旅程图 [文档 - live editor] ``` journey From fd8fb96ec2e20ee76358337f409c23ce92f2f83d Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 10 Feb 2023 12:14:58 +0530 Subject: [PATCH 0987/1038] chore: Copy readme before publishing --- packages/mermaid/.gitignore | 3 +- packages/mermaid/README.md | 372 ------------------------------- packages/mermaid/README.zh-CN.md | 356 ----------------------------- packages/mermaid/package.json | 2 +- 4 files changed, 3 insertions(+), 730 deletions(-) delete mode 100644 packages/mermaid/README.md delete mode 100644 packages/mermaid/README.zh-CN.md diff --git a/packages/mermaid/.gitignore b/packages/mermaid/.gitignore index 1a961ffe08..6ed32bcf7a 100644 --- a/packages/mermaid/.gitignore +++ b/packages/mermaid/.gitignore @@ -1,2 +1,3 @@ src/vitepress -src/docs/config/setup \ No newline at end of file +src/docs/config/setup +README.* \ No newline at end of file diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md deleted file mode 100644 index 2b621807e2..0000000000 --- a/packages/mermaid/README.md +++ /dev/null @@ -1,372 +0,0 @@ -

    - -

    -

    -Mermaid -

    -

    -Generate diagrams from markdown-like text. -

    -

    - -

    - -

    -Live Editor! -

    -

    - Documentation | Getting Started | Join Us -

    -

    -简体中文 -

    - -
    -
    - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) - - - -:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category "The most exciting use of technology"!!!** - -**Thanks to all involved, people committing pull requests, people answering questions! 🙏** - -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! - -## About - - - -Mermaid is a JavaScript-based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. - -> Doc-Rot is a Catch-22 that Mermaid helps to solve. - -Diagramming and documentation costs precious developer time and gets outdated quickly. -But not having diagrams or docs ruins productivity and hurts organizational learning.
    -Mermaid addresses this problem by enabling users to create easily modifiable diagrams. It can also be made part of production scripts (and other pieces of code).
    -
    - -Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    -[Tutorials](./docs/config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). - -You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). - -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md). - -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) - -In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. - - - - - - - -## Examples - -**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).** - - - -### Flowchart [docs - live editor] - -``` -flowchart LR - -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -```mermaid -flowchart LR - -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -### Sequence diagram [docs - live editor] - -``` -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -### Gantt chart [docs - live editor] - -``` -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -```mermaid -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -### Class diagram [docs - live editor] - -``` -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -```mermaid -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -### State diagram [docs - live editor] - -``` -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -```mermaid -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -### Pie chart [docs - live editor] - -``` -pie -"Dogs" : 386 -"Cats" : 85.9 -"Rats" : 15 -``` - -```mermaid -pie -"Dogs" : 386 -"Cats" : 85.9 -"Rats" : 15 -``` - -### Git graph [experimental - live editor] - -### User Journey diagram [docs - live editor] - -``` - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -```mermaid - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -### C4 diagram [docs] - -``` -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -```mermaid -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -## Release - -For those who have the permission to do so: - -Update version number in `package.json`. - -```sh -npm publish -``` - -The above command generates files into the `dist` folder and publishes them to npmjs.org. - -## Related projects - -- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) -- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) -- [HTTP Server](https://github.com/TomWright/mermaid-server) - -## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) - -Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out. - -Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md) - -## Security and safe diagrams - -For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. - -As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security. - -_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._ - -## Reporting vulnerabilities - -To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. - -## Appreciation - -A quick note from Knut Sveidqvist: - -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ -> -> _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ -> -> _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ -> -> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ - ---- - -_Mermaid was created by Knut Sveidqvist for easier documentation._ diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md deleted file mode 100644 index 5c137a5e0e..0000000000 --- a/packages/mermaid/README.zh-CN.md +++ /dev/null @@ -1,356 +0,0 @@ -

    - -

    -

    -Mermaid -

    -

    -通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。 -

    -

    - -

    - -

    -Live Editor! -

    -

    - 文档 | 入门 | 加入我们 -

    -

    -English -

    - -
    -
    - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) - - - -:trophy: **Mermaid 被提名并获得了 [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) 的 "The most exciting use of technology" 奖项!!!** - -**感谢所有参与进来提交 PR,解答疑问的人们! 🙏** - -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! - -## 关于 Mermaid - - - -Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。 - -> Doc-Rot 是 Mermaid 致力于解决的一个难题。 - -绘图和编写文档花费了开发者宝贵的开发时间,而且随着业务的变更,它很快就会过期。 但是如果缺少了图表或文档,对于生产力和团队新人的业务学习都会产生巨大的阻碍。
    -Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。
    -
    -Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。
    -你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/misc/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 - -如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md). - -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) - - - -## 示例 - -**下面是一些可以使用 Mermaid 创建的图表示例。点击 [语法](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference) 查看详情。** - -
    - - -### 流程图 [文档 - live editor] - -``` -flowchart LR -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -```mermaid -flowchart LR -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -### 时序图 [文档 - live editor] - -``` -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -### 甘特图 [文档 - live editor] - -``` -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -```mermaid -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -### 类图 [文档 - live editor] - -``` -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -```mermaid -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -### 状态图 [[docs - live editor] - -``` -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -```mermaid -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -### 饼图 [文档 - live editor] - -``` -pie -"Dogs" : 386 -"Cats" : 85 -"Rats" : 15 -``` - -```mermaid -pie -"Dogs" : 386 -"Cats" : 85 -"Rats" : 15 -``` - -### Git 图 [实验特性 - live editor] - -### 用户体验旅程图 [文档 - live editor] - -``` - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -```mermaid - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -### C4 图 [文档] - -``` -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -```mermaid -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -## 发布 - -对于有权限的同学来说,你可以通过以下步骤来完成发布操作: - -更新 `package.json` 中的版本号,然后执行如下命令: - -```sh -npm publish -``` - -以上的命令会将文件打包到 `dist` 目录并发布至 npmjs.org. - -## 相关项目 - -- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) -- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) -- [HTTP Server](https://github.com/TomWright/mermaid-server) - -## 贡献者 [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) - -Mermaid 是一个不断发展中的社区,并且还在接收新的贡献者。有很多不同的方式可以参与进来,而且我们还在寻找额外的帮助。如果你想知道如何开始贡献,请查看 [这个 issue](https://github.com/mermaid-js/mermaid/issues/866)。 - -关于如何贡献的详细信息可以在 [贡献指南](CONTRIBUTING.md) 中找到。 - -## 安全 - -对于公开网站来说,从互联网上的用户处检索文本、存储供后续在浏览器中展示的内容可能是不安全的,理由是用户的内容可能嵌入一些数据加载完成之后就会运行的恶意脚本,这些对于 Mermaid 来说毫无疑问是一个风险,尤其是 mermaid 图表还包含了许多在 html 中使用的字符,这意味着我们难以使用常规的手段来过滤不安全代码,因为这些常规手段会造成图表损坏。我们仍然在努力对获取到的代码进行安全过滤并不断完善我们的程序,但很难保证没有漏洞。 - -作为拥有外部用户的网站的额外安全级别,我们很高兴推出一个新的安全级别,其中的图表在沙盒 iframe 中渲染,防止代码中的 javascript 被执行,这是在安全性方面迈出的一大步。 - -_很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在可能的恶意代码被阻止时,也会损失部分交互能力_。 - -## 报告漏洞 - -如果想要报告漏洞,请发送邮件到 security@mermaid.live, 并附上问题的描述、复现问题的步骤、受影响的版本,以及解决问题的方案(如果有的话)。 - -## 鸣谢 - -来自 Knut Sveidqvist: - -> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库!_ > _同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ > _感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ -> -> _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ - ---- - -_Mermaid 是由 Knut Sveidqvist 创建,它为了更简单的文档编写而生。_ diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index 7cb8c96a85..436e8ebd47 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -33,7 +33,7 @@ "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress", "docs:spellcheck": "cspell --config ../../cSpell.json \"src/docs/**/*.md\"", "release": "pnpm build", - "prepublishOnly": "pnpm -w run build" + "prepublishOnly": "cpy '../../README.*' ./ --cwd=. && pnpm -w run build" }, "repository": { "type": "git", From 3e9978a58c5189ed83fc3486bff098f15a4e3662 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 10 Feb 2023 12:31:14 +0530 Subject: [PATCH 0988/1038] docs: Add CDN to top links, remove changelog Co-authored-by: Alois Klink --- README.md | 13 +++++++++---- README.zh-CN.md | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2b621807e2..c4872905c4 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Generate diagrams from markdown-like text. Live Editor!

    - Documentation | Getting Started | Join Us + 📖 Documentation | 🚀 Getting Started | 🌐 CDN | 🙌 Join Us

    简体中文 @@ -24,7 +24,14 @@ Generate diagrams from markdown-like text.

    -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) +[![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) +[![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) +[![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) +[![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) +[![NPM Downloads](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) +[![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) @@ -55,8 +62,6 @@ You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include- For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) - In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. diff --git a/README.zh-CN.md b/README.zh-CN.md index 5c137a5e0e..356d416f12 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -15,7 +15,7 @@ Mermaid Live Editor!

    - 文档 | 入门 | 加入我们 + 📖 文档 | 🚀 入门 | 🌐 CDN | 🙌 加入我们

    English @@ -24,7 +24,14 @@ Mermaid

    -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) +[![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) +[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) +[![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) +[![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) +[![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) +[![NPM Downloads](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) +[![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) +[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social&logo=twitter)](https://twitter.com/mermaidjs_) @@ -50,8 +57,6 @@ Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://merma 如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) - ## 示例 From e0286be8d27ba070e8e60cc235311bdba4c9c513 Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Fri, 10 Feb 2023 08:58:58 +0100 Subject: [PATCH 0989/1038] Corrected typo --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c96f2c8d7a..d3438794ad 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "build:vite": "ts-node-esm --transpileOnly .vite/build.ts", "build:mermaid": "pnpm build:vite --mermaid", "build:viz": "pnpm build:mermaid --visualize", - "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-example-diagran/tsconfig.json --emitDeclarationOnly", + "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-example-diagram/tsconfig.json --emitDeclarationOnly", "build:watch": "pnpm build:vite --watch", "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", From a956be7bbf337987e5c89b041afcfbe621e549fc Mon Sep 17 00:00:00 2001 From: Per Brolin Date: Fri, 10 Feb 2023 11:03:25 +0100 Subject: [PATCH 0990/1038] Release candidate --- package.json | 2 +- packages/mermaid/package.json | 2 +- pnpm-lock.yaml | 14 +------------- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index d3438794ad..ca421afd57 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mermaid-monorepo", "private": true, - "version": "9.3.0-rc1", + "version": "9.4.0", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", "packageManager": "pnpm@7.25.1", diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index cae7d43a81..e723dcd6f0 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "9.3.0", + "version": "9.4.0-rc.2", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "./dist/mermaid.min.js", "module": "./dist/mermaid.core.mjs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eee2aea418..d2048997a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -352,23 +352,11 @@ importers: specifier: ^3.0.2 version: 3.0.2 - packages/mermaid-example-diagram-new: - devDependencies: - concurrently: - specifier: ^7.5.0 - version: 7.5.0 - mermaid: - specifier: workspace:* - version: link:../mermaid - rimraf: - specifier: ^3.0.2 - version: 3.0.2 - tests/webpack: dependencies: '@mermaid-js/mermaid-example-diagram': specifier: workspace:* - version: link:../../packages/mermaid-example-diagram-new + version: link:../../packages/mermaid-example-diagram mermaid: specifier: workspace:* version: link:../../packages/mermaid From 9d756654609f525e1d58b0e0ea858f58be72c829 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Mon, 13 Feb 2023 10:55:24 +0530 Subject: [PATCH 0991/1038] Fix links to integrations.md --- README.md | 4 ++-- README.zh-CN.md | 2 +- docs/intro/index.md | 6 +++--- docs/intro/n00b-gettingStarted.md | 4 ++-- packages/mermaid/src/docs/index.md | 2 +- packages/mermaid/src/docs/intro/index.md | 6 +++--- packages/mermaid/src/docs/intro/n00b-gettingStarted.md | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index c4872905c4..f4cf8e105c 100644 --- a/README.md +++ b/README.md @@ -56,9 +56,9 @@ Mermaid addresses this problem by enabling users to create easily modifiable dia Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    [Tutorials](./docs/config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/ecosystem/integrations.md). -You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). +You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/ecosystem/integrations.md). For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md). diff --git a/README.zh-CN.md b/README.zh-CN.md index 356d416f12..65cf38645e 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -53,7 +53,7 @@ Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markd Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。

    Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。
    -你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/misc/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 +你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/ecosystem/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md). diff --git a/docs/intro/index.md b/docs/intro/index.md index e7db076e0d..9fbfd3baa9 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -31,11 +31,11 @@ But not having diagrams or docs ruins productivity and hurts organizational lear Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).

    Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    [Tutorials](../config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../ecosystem/integrations.md). For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../ecosystem/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -243,7 +243,7 @@ journey ### CDN - https://unpkg.com/mermaid@/dist/ + https://cdn.jsdelivr.net/npm/mermaid@/dist/ To select a version: diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 94ccb89820..0826c32c08 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -17,7 +17,7 @@ This section talks about the different ways to deploy Mermaid. Learning the [Syn ## Four ways of using mermaid: 1. Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live). -2. Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with. +2. Using [mermaid plugins](../ecosystem/integrations.md) with programs you are familiar with. 3. Calling the Mermaid JavaScript API. 4. Deploying Mermaid as a dependency. @@ -85,7 +85,7 @@ and to View, Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    [Tutorials](../config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../ecosystem/integrations.md). For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) +🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../ecosystem/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -55,7 +55,7 @@ In our release process we rely heavily on visual regression tests using [applito ### CDN ``` -https://unpkg.com/mermaid@/dist/ +/mermaid@/dist/ ``` To select a version: diff --git a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md index a4dd7662f2..c347f2ef39 100644 --- a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md +++ b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md @@ -11,7 +11,7 @@ This section talks about the different ways to deploy Mermaid. Learning the [Syn ## Four ways of using mermaid: 1. Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live). -2. Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with. +2. Using [mermaid plugins](../ecosystem/integrations.md) with programs you are familiar with. 3. Calling the Mermaid JavaScript API. 4. Deploying Mermaid as a dependency. @@ -68,7 +68,7 @@ and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/ ## 2. Using Mermaid Plugins: -You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations.md). +You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../ecosystem/integrations.md). **This is covered in greater detail in the [Usage section](../config/usage.md)** From 027296df680f67feef5373c9581c09734846b275 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 15 Feb 2023 13:54:33 +0100 Subject: [PATCH 0992/1038] Working version before applying direction logic --- cypress/platform/knsv2.html | 20 ++- packages/mermaid/src/dagre-wrapper/nodes.js | 1 + .../flowchart/elk/flowRenderer-elk.js | 160 +++++++++++++++++- 3 files changed, 170 insertions(+), 11 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index ec9baed8f7..05c79d82d8 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -54,13 +54,17 @@ -

    +    
     %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
    -graph TB
    -      a --> b
    -      a --> c
    -      b --> d
    -      c --> d
    +graph RL
    +a{The cat in the hat} -- 1o --> b
    +a -- 2o --> c
    +a -- 3o --> d
    +g --2i--> a
    +d --1i--> a
    +h --3i -->a
    +b --> d(The dog in the hog)
    +c --> d
         
     flowchart-elk TB
    @@ -227,7 +231,7 @@
         Customer->>+Merchant: Receives goods or services
             
    -
    +    
     mindmap
       root((mindmap))
         Origins
    @@ -247,7 +251,7 @@
           Mermaid
         

    -
    +    
       example-diagram
         
    diff --git a/packages/mermaid/src/dagre-wrapper/nodes.js b/packages/mermaid/src/dagre-wrapper/nodes.js index 694ba074d7..5bd18d0771 100644 --- a/packages/mermaid/src/dagre-wrapper/nodes.js +++ b/packages/mermaid/src/dagre-wrapper/nodes.js @@ -1007,6 +1007,7 @@ const class_box = (parent, node) => { }; const shapes = { + rhombus: question, question, rect, labelRect, diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js index 19ca0ccc17..d2960129bd 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js @@ -13,6 +13,8 @@ import { interpolateToCurve, getStylesFromArray } from '../../../utils'; import ELK from 'elkjs/lib/elk.bundled.js'; const elk = new ELK(); +const portPos = {}; + const conf = {}; export const setConf = function (cnf) { const keys = Object.keys(cnf); @@ -95,8 +97,36 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook labelData.labelNode = vertexNode; } + const ports = [ + { + id: vertex.id + '-west', + layoutOptions: { + 'port.side': 'WEST', + }, + }, + { + id: vertex.id + '-east', + layoutOptions: { + 'port.side': 'EAST', + }, + }, + { + id: vertex.id + '-south', + layoutOptions: { + 'port.side': 'SOUTH', + }, + }, + { + id: vertex.id + '-north', + layoutOptions: { + 'port.side': 'NORTH', + }, + }, + ]; + let radious = 0; let _shape = ''; + let layoutOptions = {}; // Set the shape based parameters switch (vertex.type) { case 'round': @@ -108,6 +138,9 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook break; case 'diamond': _shape = 'question'; + layoutOptions = { + portConstraints: 'FIXED_SIDE', + }; break; case 'hexagon': _shape = 'hexagon'; @@ -184,8 +217,10 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook const data = { id: vertex.id, + ports: vertex.type === 'diamond' ? ports : [], // labelStyle: styles.labelStyle, // shape: _shape, + layoutOptions, labelText: vertexText, labelData, // labels: [{ text: vertexText }], @@ -235,6 +270,83 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook return graph; }; +const getNextPosition = (position, direction) => { + if (direction === 'in') { + // switch (position) { + // case 'north': + // return 'east'; + // case 'east': + // return 'west'; + // case 'west': + // return 'south'; + // case 'south': + // return 'north'; + // default: + // return 'north'; + // } + return 'north'; + } else { + switch (position) { + case 'south': + return 'west'; + case 'west': + return 'east'; + case 'east': + return 'south'; + // case 'north': + // return 'south'; + default: + return 'south'; + } + } +}; + +const getNextPort = (node, direction) => { + if (!portPos[node]) { + portPos[node] = { + inPosition: 'north', + outPosition: 'south', + }; + } + const result = direction === 'in' ? portPos[node].inPosition : portPos[node].outPosition; + + if (direction === 'in') { + portPos[node].inPosition = getNextPosition(portPos[node].inPosition, direction); + } else { + portPos[node].outPosition = getNextPosition(portPos[node].outPosition, direction); + } + return result; +}; + +const getEdgeStartEndPoint = (edge) => { + let source = edge.start; + let target = edge.end; + + const startNode = nodeDb[source]; + const endNode = nodeDb[target]; + console.log('getEdgeStartEndPoint abc77', { source, target, startNode, endNode }); + + if (!startNode || !endNode) { + return { source, target }; + } + + if (startNode.type === 'diamond') { + source = `${source}-${getNextPort(source, 'out')}`; + } + + if (endNode.type === 'diamond') { + target = `${target}-${getNextPort(target, 'in')}`; + } + + // Add the edge to the graph + // graph.edges.push({ + // id: 'e' + edge.start + edge.end, + // sources: [edge.start], + // targets: [edge.end], + console.log('getEdgeStartEndPoint abc78', { source, target }); + return { source, target }; +}; + /** * Add edges to graph based on parsed graph definition * @@ -375,11 +487,15 @@ export const addEdges = function (edges, diagObj, graph, svg) { const labelEl = insertEdgeLabel(labelsEl, edgeData); // console.log('labelEl', labelEl, edgeData.width); + + // calculate start and end points of the edge + const { source, target } = getEdgeStartEndPoint(edge); + log.info('abc78 source and target', source, target); // Add the edge to the graph graph.edges.push({ id: 'e' + edge.start + edge.end, - sources: [edge.start], - targets: [edge.end], + sources: [source], + targets: [target], labelEl: labelEl, labels: [ { @@ -624,12 +740,15 @@ export const draw = async function (text, id, _version, diagObj) { 'elk.hierarchyHandling': 'INCLUDE_CHILDREN', 'org.eclipse.elk.padding': '[top=100, left=100, bottom=110, right=110]', 'elk.layered.spacing.edgeNodeBetweenLayers': '30', + // 'elk.layered.mergeEdges': 'true', 'elk.direction': 'DOWN', + // 'elk.ports.sameLayerEdges': true, + // 'nodePlacement.strategy': 'SIMPLE', }, children: [], edges: [], }; - log.info('Drawing flowchart using v3 renderer'); + log.info('Drawing flowchart using v3 renderer', elk); // Set the direction, // Fetch the default direction, use TD if none was found @@ -731,8 +850,43 @@ export const draw = async function (text, id, _version, diagObj) { } }); insertChildren(graph.children, parentLookupDb); + // graph.children[0].shape = 'rhombus'; + // graph.children[0].ports = [ + // { + // id: 'a-p1', + // layoutOptions: { + // 'port.side': 'WEST', + // }, + // }, + // { + // id: 'a-p2', + // layoutOptions: { + // 'port.side': 'EAST', + // }, + // }, + // { + // id: 'a-p3', + // layoutOptions: { + // 'port.side': 'SOUTH', + // }, + // }, + // { + // id: 'a-p4', + // layoutOptions: { + // 'port.side': 'NORTH', + // }, + // }, + // ]; + // graph.children[0].layoutOptions = { + // portConstraints: 'FIXED_SIDE', + // }; + // graph.edges[0].sources[0] = 'a-south'; + // graph.edges[1].sources[0] = 'a-west'; + // graph.edges[2].targets[0] = 'a-east'; + log.info('after layout', JSON.stringify(graph, null, 2)); const g = await elk.layout(graph); drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); + log.info('after layout', g); g.edges?.map((edge) => { insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb); }); From eed427b4acc447502bd9a1b94923fa6704683dff Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 15 Feb 2023 14:10:38 +0100 Subject: [PATCH 0993/1038] Adding simple direction logic --- cypress/platform/knsv2.html | 4 +- .../flowchart/elk/flowRenderer-elk.js | 183 +++++++++--------- 2 files changed, 96 insertions(+), 91 deletions(-) diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index 05c79d82d8..fccd65004b 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -56,7 +56,7 @@
     %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
    -graph RL
    +graph BT
     a{The cat in the hat} -- 1o --> b
     a -- 2o --> c
     a -- 3o --> d
    @@ -272,7 +272,7 @@
           mermaid.initialize({
             theme: 'forest',
             startOnLoad: true,
    -        logLevel: 0,
    +        logLevel: 5,
             flowchart: {
               // defaultRenderer: 'elk',
               useMaxWidth: false,
    diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js
    index d2960129bd..3dba2f22b3 100644
    --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js
    +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js
    @@ -270,80 +270,122 @@ export const addVertices = function (vert, svgId, root, doc, diagObj, parentLook
       return graph;
     };
     
    -const getNextPosition = (position, direction) => {
    -  if (direction === 'in') {
    -    // switch (position) {
    -    //   case 'north':
    -    //     return 'east';
    -    //   case 'east':
    -    //     return 'west';
    -    //   case 'west':
    -    //     return 'south';
    -    //   case 'south':
    -    //     return 'north';
    -    //   default:
    -    //     return 'north';
    -    // }
    -    return 'north';
    -  } else {
    -    switch (position) {
    -      case 'south':
    -        return 'west';
    -      case 'west':
    -        return 'east';
    -      case 'east':
    -        return 'south';
    -      // case 'north':
    -      //   return 'south';
    -      default:
    -        return 'south';
    -    }
    -  }
    +const getNextPosition = (position, edgeDirection, graphDirection) => {
    +  const portPos = {
    +    TB: {
    +      in: {
    +        north: 'north',
    +      },
    +      out: {
    +        south: 'west',
    +        west: 'east',
    +        east: 'south',
    +      },
    +    },
    +    LR: {
    +      in: {
    +        west: 'west',
    +      },
    +      out: {
    +        east: 'south',
    +        south: 'north',
    +        north: 'east',
    +      },
    +    },
    +    RL: {
    +      in: {
    +        east: 'east',
    +      },
    +      out: {
    +        west: 'north',
    +        north: 'south',
    +        south: 'west',
    +      },
    +    },
    +    BT: {
    +      in: {
    +        south: 'south',
    +      },
    +      out: {
    +        north: 'east',
    +        east: 'west',
    +        west: 'north',
    +      },
    +    },
    +  };
    +  log.info('abc88', graphDirection, edgeDirection, position);
    +  return portPos[graphDirection][edgeDirection][position];
    +  // return 'south';
     };
     
    -const getNextPort = (node, direction) => {
    +const getNextPort = (node, edgeDirection, graphDirection) => {
    +  log.info('getNextPort abc88', { node, edgeDirection, graphDirection });
       if (!portPos[node]) {
    -    portPos[node] = {
    -      inPosition: 'north',
    -      outPosition: 'south',
    -    };
    +    switch (graphDirection) {
    +      case 'TB':
    +        portPos[node] = {
    +          inPosition: 'north',
    +          outPosition: 'south',
    +        };
    +        break;
    +      case 'BT':
    +        portPos[node] = {
    +          inPosition: 'south',
    +          outPosition: 'north',
    +        };
    +        break;
    +      case 'RL':
    +        portPos[node] = {
    +          inPosition: 'east',
    +          outPosition: 'west',
    +        };
    +        break;
    +      case 'LR':
    +        portPos[node] = {
    +          inPosition: 'west',
    +          outPosition: 'east',
    +        };
    +        break;
    +    }
       }
    -  const result = direction === 'in' ? portPos[node].inPosition : portPos[node].outPosition;
    -
    -  if (direction === 'in') {
    -    portPos[node].inPosition = getNextPosition(portPos[node].inPosition, direction);
    +  const result = edgeDirection === 'in' ? portPos[node].inPosition : portPos[node].outPosition;
    +
    +  if (edgeDirection === 'in') {
    +    portPos[node].inPosition = getNextPosition(
    +      portPos[node].inPosition,
    +      edgeDirection,
    +      graphDirection
    +    );
       } else {
    -    portPos[node].outPosition = getNextPosition(portPos[node].outPosition, direction);
    +    portPos[node].outPosition = getNextPosition(
    +      portPos[node].outPosition,
    +      edgeDirection,
    +      graphDirection
    +    );
       }
       return result;
     };
     
    -const getEdgeStartEndPoint = (edge) => {
    +const getEdgeStartEndPoint = (edge, dir) => {
       let source = edge.start;
       let target = edge.end;
     
       const startNode = nodeDb[source];
       const endNode = nodeDb[target];
    -  console.log('getEdgeStartEndPoint abc77', { source, target, startNode, endNode });
     
       if (!startNode || !endNode) {
         return { source, target };
       }
     
       if (startNode.type === 'diamond') {
    -    source = `${source}-${getNextPort(source, 'out')}`;
    +    source = `${source}-${getNextPort(source, 'out', dir)}`;
       }
     
       if (endNode.type === 'diamond') {
    -    target = `${target}-${getNextPort(target, 'in')}`;
    +    target = `${target}-${getNextPort(target, 'in', dir)}`;
       }
     
       // Add the edge to the graph
    -  // graph.edges.push({
    -  //   id: 'e' + edge.start + edge.end,
    -  //   sources: [edge.start],
    -  //   targets: [edge.end],
    -  console.log('getEdgeStartEndPoint abc78', { source, target });
       return { source, target };
     };
     
    @@ -358,10 +400,10 @@ const getEdgeStartEndPoint = (edge) => {
      * @param svg
      */
     export const addEdges = function (edges, diagObj, graph, svg) {
    -  // log.info('abc78 edges = ', edges);
    +  log.info('abc78 edges = ', edges);
       const labelsEl = svg.insert('g').attr('class', 'edgeLabels');
       let linkIdCnt = {};
    -
    +  let dir = diagObj.db.getDirection();
       let defaultStyle;
       let defaultLabelStyle;
     
    @@ -486,11 +528,10 @@ export const addEdges = function (edges, diagObj, graph, svg) {
         edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd;
     
         const labelEl = insertEdgeLabel(labelsEl, edgeData);
    -    // console.log('labelEl', labelEl, edgeData.width);
     
         // calculate start and end points of the edge
    -    const { source, target } = getEdgeStartEndPoint(edge);
    -    log.info('abc78 source and target', source, target);
    +    const { source, target } = getEdgeStartEndPoint(edge, dir);
    +    log.debug('abc78 source and target', source, target);
         // Add the edge to the graph
         graph.edges.push({
           id: 'e' + edge.start + edge.end,
    @@ -500,7 +541,6 @@ export const addEdges = function (edges, diagObj, graph, svg) {
           labels: [
             {
               width: edgeData.width,
    -          // width: 80,
               height: edgeData.height,
               orgWidth: edgeData.width,
               orgHeight: edgeData.height,
    @@ -512,8 +552,6 @@ export const addEdges = function (edges, diagObj, graph, svg) {
             },
           ],
           edgeData,
    -      // targetPort: 'PortSide.NORTH',
    -      // id: cnt,
         });
       });
       return graph;
    @@ -850,39 +888,6 @@ export const draw = async function (text, id, _version, diagObj) {
         }
       });
       insertChildren(graph.children, parentLookupDb);
    -  // graph.children[0].shape = 'rhombus';
    -  // graph.children[0].ports = [
    -  //   {
    -  //     id: 'a-p1',
    -  //     layoutOptions: {
    -  //       'port.side': 'WEST',
    -  //     },
    -  //   },
    -  //   {
    -  //     id: 'a-p2',
    -  //     layoutOptions: {
    -  //       'port.side': 'EAST',
    -  //     },
    -  //   },
    -  //   {
    -  //     id: 'a-p3',
    -  //     layoutOptions: {
    -  //       'port.side': 'SOUTH',
    -  //     },
    -  //   },
    -  //   {
    -  //     id: 'a-p4',
    -  //     layoutOptions: {
    -  //       'port.side': 'NORTH',
    -  //     },
    -  //   },
    -  // ];
    -  // graph.children[0].layoutOptions = {
    -  //   portConstraints: 'FIXED_SIDE',
    -  // };
    -  // graph.edges[0].sources[0] = 'a-south';
    -  // graph.edges[1].sources[0] = 'a-west';
    -  // graph.edges[2].targets[0] = 'a-east';
       log.info('after layout', JSON.stringify(graph, null, 2));
       const g = await elk.layout(graph);
       drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0);
    
    From 0c38f2028177e0e48679f4d0b8774b3a36beba13 Mon Sep 17 00:00:00 2001
    From: Per Brolin 
    Date: Wed, 15 Feb 2023 14:17:46 +0100
    Subject: [PATCH 0994/1038] Clearing sequence diagram before rendering
    
    ---
     packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts | 3 +++
     1 file changed, 3 insertions(+)
    
    diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts
    index ce850c9f1b..9ab84ab60a 100644
    --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts
    +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts
    @@ -631,6 +631,9 @@ function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoop
     export const draw = function (_text: string, id: string, _version: string, diagObj: Diagram) {
       const { securityLevel, sequence } = configApi.getConfig();
       conf = sequence;
    +  diagObj.db.clear();
    +  // Parse the graph definition
    +  diagObj.parser.parse(text);
       // Handle root and Document for when rendering in sandbox mode
       let sandboxElement;
       if (securityLevel === 'sandbox') {
    
    From aef989fe0357c88f66055809b440bd70e3981619 Mon Sep 17 00:00:00 2001
    From: Per Brolin 
    Date: Wed, 15 Feb 2023 15:11:23 +0100
    Subject: [PATCH 0995/1038] Corrected sequenceRenderer
    
    ---
     packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts
    index 9ab84ab60a..e4ce05350c 100644
    --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts
    +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts
    @@ -633,7 +633,7 @@ export const draw = function (_text: string, id: string, _version: string, diagO
       conf = sequence;
       diagObj.db.clear();
       // Parse the graph definition
    -  diagObj.parser.parse(text);
    +  diagObj.parser.parse(_text);
       // Handle root and Document for when rendering in sandbox mode
       let sandboxElement;
       if (securityLevel === 'sandbox') {
    
    From 343e48302eb0871f66847d73f559b6e729548c2d Mon Sep 17 00:00:00 2001
    From: Knut Sveidqvist 
    Date: Wed, 15 Feb 2023 15:12:52 +0100
    Subject: [PATCH 0996/1038] Fix for direction issue with elk rendering
    
    ---
     .../mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js     | 2 ++
     packages/mermaid/src/diagrams/flowchart/flowDb.js              | 3 +++
     2 files changed, 5 insertions(+)
    
    diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js
    index 3dba2f22b3..73b37e9f74 100644
    --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js
    +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js
    @@ -313,6 +313,7 @@ const getNextPosition = (position, edgeDirection, graphDirection) => {
           },
         },
       };
    +  portPos.TD = portPos.TB;
       log.info('abc88', graphDirection, edgeDirection, position);
       return portPos[graphDirection][edgeDirection][position];
       // return 'south';
    @@ -323,6 +324,7 @@ const getNextPort = (node, edgeDirection, graphDirection) => {
       if (!portPos[node]) {
         switch (graphDirection) {
           case 'TB':
    +      case 'TD':
             portPos[node] = {
               inPosition: 'north',
               outPosition: 'south',
    diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js
    index 147ad5b6a2..2e6b840b5e 100644
    --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js
    +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js
    @@ -238,6 +238,9 @@ export const setDirection = function (dir) {
       if (direction.match(/.*v/)) {
         direction = 'TB';
       }
    +  if (direction === 'TD') {
    +    direction = 'TB';
    +  }
     };
     
     /**
    
    From 97614b8af56a122022a71267996c0646b4a1e312 Mon Sep 17 00:00:00 2001
    From: Per Brolin 
    Date: Wed, 15 Feb 2023 15:54:02 +0100
    Subject: [PATCH 0997/1038] Updated to 9.4.0
    
    ---
     packages/mermaid/package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
    index e723dcd6f0..f8864fb17b 100644
    --- a/packages/mermaid/package.json
    +++ b/packages/mermaid/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "mermaid",
    -  "version": "9.4.0-rc.2",
    +  "version": "9.4.0",
       "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
       "main": "./dist/mermaid.min.js",
       "module": "./dist/mermaid.core.mjs",
    
    From 31afd7499b8b041779bd8e7bd3a689fdc8fafa70 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 12:05:41 +0530
    Subject: [PATCH 0998/1038] chore: Linear build
    
    ---
     package.json                                          |  2 +-
     packages/mermaid/src/diagrams/mindmap/mindmap.spec.js | 11 +----------
     .../mermaid/src/diagrams/mindmap/types/index.d.ts     |  7 -------
     packages/mermaid/src/docs/.vitepress/theme/mermaid.ts | 11 -----------
     4 files changed, 2 insertions(+), 29 deletions(-)
     delete mode 100644 packages/mermaid/src/diagrams/mindmap/types/index.d.ts
    
    diff --git a/package.json b/package.json
    index 24a7d29016..3a48476096 100644
    --- a/package.json
    +++ b/package.json
    @@ -20,7 +20,7 @@
         "build:viz": "pnpm build:mermaid --visualize",
         "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-example-diagram/tsconfig.json --emitDeclarationOnly",
         "build:watch": "pnpm build:vite --watch",
    -    "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"",
    +    "build": "pnpm run -r clean && pnpm build:types && pnpm build:vite",
         "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"",
         "release": "pnpm build",
         "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .",
    diff --git a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js
    index 8c90f774f9..e8793e86ab 100644
    --- a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js
    +++ b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js
    @@ -1,16 +1,7 @@
     import { parser as mindmap } from './parser/mindmap';
     import * as mindmapDB from './mindmapDb';
    -// import { injectUtils } from './mermaidUtils';
     // Todo fix utils functions for tests
    -import {
    -  // log,
    -  setLogLevel,
    -  // getConfig,
    -  // sanitizeText,
    -  // setupGraphViewBox,
    -} from '../../diagram-api/diagramAPI';
    -
    -// injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox);
    +import { setLogLevel } from '../../diagram-api/diagramAPI';
     
     describe('when parsing a mindmap ', function () {
       beforeEach(function () {
    diff --git a/packages/mermaid/src/diagrams/mindmap/types/index.d.ts b/packages/mermaid/src/diagrams/mindmap/types/index.d.ts
    deleted file mode 100644
    index 999ff2f493..0000000000
    --- a/packages/mermaid/src/diagrams/mindmap/types/index.d.ts
    +++ /dev/null
    @@ -1,7 +0,0 @@
    -export {};
    -
    -declare global {
    -  interface Window {
    -    mermaid: any; // 👈️ turn off type checking
    -  }
    -}
    diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts
    index 52c9e88f2f..2234ef4980 100644
    --- a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts
    +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts
    @@ -1,17 +1,6 @@
     import mermaid, { type MermaidConfig } from 'mermaid';
    -// import mindmap from '@mermaid-js/mermaid-mindmap';
    -// import timeline from '@mermaid-js/mermaid-timeline';
    -
    -const init = (async () => {
    -  try {
    -    await mermaid.registerExternalDiagrams([]);
    -  } catch (e) {
    -    console.error(e);
    -  }
    -})();
     
     export const render = async (id: string, code: string, config: MermaidConfig): Promise => {
    -  await init;
       mermaid.initialize(config);
       const svg = await mermaid.renderAsync(id, code);
       return svg;
    
    From 2b3019fb949e100e7044096c5b78acfb2ced4e05 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 12:16:00 +0530
    Subject: [PATCH 0999/1038] Set node heap size
    
    ---
     .github/workflows/build.yml | 2 ++
     1 file changed, 2 insertions(+)
    
    diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
    index 2a70b5901d..36d6273911 100644
    --- a/.github/workflows/build.yml
    +++ b/.github/workflows/build.yml
    @@ -17,6 +17,8 @@ jobs:
         strategy:
           matrix:
             node-version: [18.x]
    +    env:
    +      NODE_OPTIONS: '--max_old_space_size=4096'
         steps:
           - uses: actions/checkout@v3
     
    
    From 8df965bd606d4acd173e316f6992328ac2383516 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 12:21:24 +0530
    Subject: [PATCH 1000/1038] chore: Set node heap size
    
    ---
     .github/workflows/e2e.yml          | 2 ++
     .github/workflows/lint.yml         | 2 ++
     .github/workflows/publish-docs.yml | 2 ++
     .github/workflows/test.yml         | 2 ++
     package.json                       | 2 +-
     5 files changed, 9 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
    index aff5852dbb..de55f65343 100644
    --- a/.github/workflows/e2e.yml
    +++ b/.github/workflows/e2e.yml
    @@ -8,6 +8,8 @@ permissions:
     jobs:
       build:
         runs-on: ubuntu-latest
    +    env:
    +      NODE_OPTIONS: '--max_old_space_size=4096'
         strategy:
           fail-fast: false
           matrix:
    diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
    index a21fbc0056..f5b13c7513 100644
    --- a/.github/workflows/lint.yml
    +++ b/.github/workflows/lint.yml
    @@ -18,6 +18,8 @@ jobs:
         strategy:
           matrix:
             node-version: [18.x]
    +    env:
    +      NODE_OPTIONS: '--max_old_space_size=4096'
         steps:
           - uses: actions/checkout@v3
     
    diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml
    index 2153e11be7..1ac646de13 100644
    --- a/.github/workflows/publish-docs.yml
    +++ b/.github/workflows/publish-docs.yml
    @@ -24,6 +24,8 @@ jobs:
       # Build job
       build:
         runs-on: ubuntu-latest
    +    env:
    +      NODE_OPTIONS: '--max_old_space_size=4096'
         steps:
           - name: Checkout
             uses: actions/checkout@v3
    diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
    index 6397e53051..63c52ce8f5 100644
    --- a/.github/workflows/test.yml
    +++ b/.github/workflows/test.yml
    @@ -11,6 +11,8 @@ jobs:
         strategy:
           matrix:
             node-version: [18.x]
    +    env:
    +      NODE_OPTIONS: '--max_old_space_size=4096'
         steps:
           - uses: actions/checkout@v3
     
    diff --git a/package.json b/package.json
    index 3a48476096..24a7d29016 100644
    --- a/package.json
    +++ b/package.json
    @@ -20,7 +20,7 @@
         "build:viz": "pnpm build:mermaid --visualize",
         "build:types": "tsc -p ./packages/mermaid/tsconfig.json --emitDeclarationOnly && tsc -p ./packages/mermaid-example-diagram/tsconfig.json --emitDeclarationOnly",
         "build:watch": "pnpm build:vite --watch",
    -    "build": "pnpm run -r clean && pnpm build:types && pnpm build:vite",
    +    "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"",
         "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"",
         "release": "pnpm build",
         "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .",
    
    From e9cc9f4005e3b14048794789529ea032f0939afe Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 12:26:27 +0530
    Subject: [PATCH 1001/1038] chore: Set node heap size
    
    ---
     .github/workflows/publish-docs.yml | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml
    index 85bc79f6eb..1ac646de13 100644
    --- a/.github/workflows/publish-docs.yml
    +++ b/.github/workflows/publish-docs.yml
    @@ -24,6 +24,8 @@ jobs:
       # Build job
       build:
         runs-on: ubuntu-latest
    +    env:
    +      NODE_OPTIONS: '--max_old_space_size=4096'
         steps:
           - name: Checkout
             uses: actions/checkout@v3
    @@ -40,7 +42,7 @@ jobs:
             run: pnpm install --frozen-lockfile
     
           - name: Setup Pages
    -        uses: actions/configure-pages@v2
    +        uses: actions/configure-pages@v3
     
           - name: Run Build
             run: pnpm --filter mermaid run docs:build:vitepress
    
    From b89b90dbb99c9dae87956009882ebd5fd670ba92 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Mon, 13 Feb 2023 10:55:24 +0530
    Subject: [PATCH 1002/1038] Fix links to integrations.md
    
    ---
     README.md                                              | 4 ++--
     README.zh-CN.md                                        | 2 +-
     docs/intro/index.md                                    | 6 +++---
     docs/intro/n00b-gettingStarted.md                      | 4 ++--
     packages/mermaid/src/docs/index.md                     | 2 +-
     packages/mermaid/src/docs/intro/index.md               | 6 +++---
     packages/mermaid/src/docs/intro/n00b-gettingStarted.md | 4 ++--
     7 files changed, 14 insertions(+), 14 deletions(-)
    
    diff --git a/README.md b/README.md
    index 970a5b54f7..a47831282b 100644
    --- a/README.md
    +++ b/README.md
    @@ -27,9 +27,9 @@ Mermaid addresses this problem by enabling users to create easily modifiable dia
     
     Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    [Tutorials](./docs/config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/ecosystem/integrations.md). -You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/misc/integrations.md). +You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/ecosystem/integrations.md). For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/community/n00b-overview.md), [Usage](./docs/config/usage.md) and [Tutorials](./docs/config/Tutorials.md). diff --git a/README.zh-CN.md b/README.zh-CN.md index 3c77d0255a..df2769e745 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -24,7 +24,7 @@ Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markd Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。

    Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。
    -你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/misc/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 +你可以访问 [教程](./docs/config/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/ecosystem/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/community/n00b-overview.md), [用法](./docs/config/usage.md) 和 [教程](./docs/config/Tutorials.md). diff --git a/docs/intro/index.md b/docs/intro/index.md index e7227aeee7..e846e0a35b 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -31,11 +31,11 @@ But not having diagrams or docs ruins productivity and hurts organizational lear Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).

    Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    [Tutorials](../config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../ecosystem/integrations.md). For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../ecosystem/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -243,7 +243,7 @@ journey ### CDN - https://cdn.jsdelivr.net/npm@/dist/ + https://cdn.jsdelivr.net/npm/mermaid@/dist/ To select a version: diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md index 94ccb89820..0826c32c08 100644 --- a/docs/intro/n00b-gettingStarted.md +++ b/docs/intro/n00b-gettingStarted.md @@ -17,7 +17,7 @@ This section talks about the different ways to deploy Mermaid. Learning the [Syn ## Four ways of using mermaid: 1. Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live). -2. Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with. +2. Using [mermaid plugins](../ecosystem/integrations.md) with programs you are familiar with. 3. Calling the Mermaid JavaScript API. 4. Deploying Mermaid as a dependency. @@ -85,7 +85,7 @@ and to View, Mermaid allows even non-programmers to easily create detailed and diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    [Tutorials](../config/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../misc/integrations.md). +Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](../ecosystem/integrations.md). For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](../community/n00b-overview.md) and [Usage](../config/usage.md). -🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../misc/integrations.md) +🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/development.md) | 🔌 [Plug-Ins](../ecosystem/integrations.md) > 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/knsv/mermaid/issues/866). @@ -55,7 +55,7 @@ In our release process we rely heavily on visual regression tests using [applito ### CDN ``` -@/dist/ +/mermaid@/dist/ ``` To select a version: diff --git a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md index a4dd7662f2..c347f2ef39 100644 --- a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md +++ b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md @@ -11,7 +11,7 @@ This section talks about the different ways to deploy Mermaid. Learning the [Syn ## Four ways of using mermaid: 1. Using the Mermaid Live Editor at [mermaid.live](https://mermaid.live). -2. Using [mermaid plugins](../misc/integrations.md) with programs you are familiar with. +2. Using [mermaid plugins](../ecosystem/integrations.md) with programs you are familiar with. 3. Calling the Mermaid JavaScript API. 4. Deploying Mermaid as a dependency. @@ -68,7 +68,7 @@ and to View, https://mermaid.live/view?gist=https://gist.github.com/sidharthv96/ ## 2. Using Mermaid Plugins: -You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../misc/integrations.md). +You can generate mermaid diagrams from within popular applications using plug-ins. It can be done in the same way, you would use the Live Editor. Here's a list of [Mermaid Plugins](../ecosystem/integrations.md). **This is covered in greater detail in the [Usage section](../config/usage.md)** From 62f7fb082e2da605858cc093a87825d01e983c8f Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 12:47:00 +0530 Subject: [PATCH 1003/1038] Update vitepress --- packages/mermaid/package.json | 4 +- pnpm-lock.yaml | 417 ++++++++++++++++++++++++++-------- 2 files changed, 327 insertions(+), 94 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index f8864fb17b..cb105abf4c 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -101,8 +101,8 @@ "typedoc-plugin-markdown": "^3.13.6", "typescript": "^4.8.4", "unist-util-flatmap": "^1.0.0", - "vitepress": "^1.0.0-alpha.31", - "vitepress-plugin-search": "^1.0.4-alpha.16" + "vitepress": "^1.0.0-alpha.46", + "vitepress-plugin-search": "^1.0.4-alpha.19" }, "files": [ "dist", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d2048997a2..810df73a4d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -309,11 +309,11 @@ importers: specifier: ^1.0.0 version: 1.0.0 vitepress: - specifier: ^1.0.0-alpha.31 - version: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y + specifier: ^1.0.0-alpha.46 + version: 1.0.0-alpha.46_tbpndr44ulefs3hehwpi2mkf2y vitepress-plugin-search: - specifier: ^1.0.4-alpha.16 - version: 1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am + specifier: ^1.0.4-alpha.19 + version: 1.0.4-alpha.19_g67lr3vgasogkevpbew55lljzq packages/mermaid-example-diagram: dependencies: @@ -373,25 +373,25 @@ importers: packages: - /@algolia/autocomplete-core/1.7.2: - resolution: {integrity: sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==} + /@algolia/autocomplete-core/1.7.4: + resolution: {integrity: sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==} dependencies: - '@algolia/autocomplete-shared': 1.7.2 + '@algolia/autocomplete-shared': 1.7.4 dev: true - /@algolia/autocomplete-preset-algolia/1.7.2_qs6lk5nhygj2o3hj4sf6xnr724: - resolution: {integrity: sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==} + /@algolia/autocomplete-preset-algolia/1.7.4_qs6lk5nhygj2o3hj4sf6xnr724: + resolution: {integrity: sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.7.2 + '@algolia/autocomplete-shared': 1.7.4 '@algolia/client-search': 4.14.2 algoliasearch: 4.14.2 dev: true - /@algolia/autocomplete-shared/1.7.2: - resolution: {integrity: sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==} + /@algolia/autocomplete-shared/1.7.4: + resolution: {integrity: sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==} dev: true /@algolia/cache-browser-local-storage/4.14.2: @@ -1689,14 +1689,14 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@docsearch/css/3.3.0: - resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} + /@docsearch/css/3.3.3: + resolution: {integrity: sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==} dev: true - /@docsearch/js/3.3.0_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-oFXWRPNvPxAzBhnFJ9UCFIYZiQNc3Yrv6912nZHw/UIGxsyzKpNRZgHq8HDk1niYmOSoLKtVFcxkccpQmYGFyg==} + /@docsearch/js/3.3.3_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-2xAv2GFuHzzmG0SSZgf8wHX0qZX8n9Y1ZirKUk5Wrdc+vH9CL837x2hZIUdwcPZI9caBA+/CzxsS68O4waYjUQ==} dependencies: - '@docsearch/react': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y + '@docsearch/react': 3.3.3_tbpndr44ulefs3hehwpi2mkf2y preact: 10.11.0 transitivePeerDependencies: - '@algolia/client-search' @@ -1705,8 +1705,8 @@ packages: - react-dom dev: true - /@docsearch/react/3.3.0_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==} + /@docsearch/react/3.3.3_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -1719,9 +1719,9 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.7.2 - '@algolia/autocomplete-preset-algolia': 1.7.2_qs6lk5nhygj2o3hj4sf6xnr724 - '@docsearch/css': 3.3.0 + '@algolia/autocomplete-core': 1.7.4 + '@algolia/autocomplete-preset-algolia': 1.7.4_qs6lk5nhygj2o3hj4sf6xnr724 + '@docsearch/css': 3.3.3 algoliasearch: 4.14.2 transitivePeerDependencies: - '@algolia/client-search' @@ -1745,6 +1745,15 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.16.17: + resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm/0.16.7: resolution: {integrity: sha512-yhzDbiVcmq6T1/XEvdcJIVcXHdLjDJ5cQ0Dp9R9p9ERMBTeO1dR5tc8YYv8zwDeBw1xZm+Eo3MRo8cwclhBS0g==} engines: {node: '>=12'} @@ -1763,6 +1772,15 @@ packages: dev: true optional: true + /@esbuild/android-arm64/0.16.17: + resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64/0.16.7: resolution: {integrity: sha512-tYFw0lBJSEvLoGzzYh1kXuzoX1iPkbOk3O29VqzQb0HbOy7t/yw1hGkvwoJhXHwzQUPsShyYcTgRf6bDBcfnTw==} engines: {node: '>=12'} @@ -1781,6 +1799,15 @@ packages: dev: true optional: true + /@esbuild/android-x64/0.16.17: + resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64/0.16.7: resolution: {integrity: sha512-3P2OuTxwAtM3k/yEWTNUJRjMPG1ce8rXs51GTtvEC5z1j8fC1plHeVVczdeHECU7aM2/Buc0MwZ6ciM/zysnWg==} engines: {node: '>=12'} @@ -1799,6 +1826,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64/0.16.17: + resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64/0.16.7: resolution: {integrity: sha512-VUb9GK23z8jkosHU9yJNUgQpsfJn+7ZyBm6adi2Ec5/U241eR1tAn82QicnUzaFDaffeixiHwikjmnec/YXEZg==} engines: {node: '>=12'} @@ -1817,6 +1853,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64/0.16.17: + resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64/0.16.7: resolution: {integrity: sha512-duterlv3tit3HI9vhzMWnSVaB1B6YsXpFq1Ntd6Fou82BB1l4tucYy3FI9dHv3tvtDuS0NiGf/k6XsdBqPZ01w==} engines: {node: '>=12'} @@ -1835,6 +1880,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64/0.16.17: + resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64/0.16.7: resolution: {integrity: sha512-9kkycpBFes/vhi7B7o0cf+q2WdJi+EpVzpVTqtWFNiutARWDFFLcB93J8PR1cG228sucsl3B+7Ts27izE6qiaQ==} engines: {node: '>=12'} @@ -1853,6 +1907,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64/0.16.17: + resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64/0.16.7: resolution: {integrity: sha512-5Ahf6jzWXJ4J2uh9dpy5DKOO+PeRUE/9DMys6VuYfwgQzd6n5+pVFm58L2Z2gRe611RX6SdydnNaiIKM3svY7g==} engines: {node: '>=12'} @@ -1871,6 +1934,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm/0.16.17: + resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm/0.16.7: resolution: {integrity: sha512-QqJnyCfu5OF78Olt7JJSZ7OSv/B4Hf+ZJWp4kkq9xwMsgu7yWq3crIic8gGOpDYTqVKKMDAVDgRXy5Wd/nWZyQ==} engines: {node: '>=12'} @@ -1889,6 +1961,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64/0.16.17: + resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64/0.16.7: resolution: {integrity: sha512-2wv0xYDskk2+MzIm/AEprDip39a23Chptc4mL7hsHg26P0gD8RUhzmDu0KCH2vMThUI1sChXXoK9uH0KYQKaDg==} engines: {node: '>=12'} @@ -1907,6 +1988,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32/0.16.17: + resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32/0.16.7: resolution: {integrity: sha512-APVYbEilKbD5ptmKdnIcXej2/+GdV65TfTjxR2Uk8t1EsOk49t6HapZW6DS/Bwlvh5hDwtLapdSumIVNGxgqLg==} engines: {node: '>=12'} @@ -1934,6 +2024,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.16.17: + resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.16.7: resolution: {integrity: sha512-5wPUAGclplQrAW7EFr3F84Y/d++7G0KykohaF4p54+iNWhUnMVU8Bh2sxiEOXUy4zKIdpHByMgJ5/Ko6QhtTUw==} engines: {node: '>=12'} @@ -1952,6 +2051,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el/0.16.17: + resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el/0.16.7: resolution: {integrity: sha512-hxzlXtWF6yWfkE/SMTscNiVqLOAn7fOuIF3q/kiZaXxftz1DhZW/HpnTmTTWrzrS7zJWQxHHT4QSxyAj33COmA==} engines: {node: '>=12'} @@ -1970,6 +2078,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64/0.16.17: + resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64/0.16.7: resolution: {integrity: sha512-WM83Dac0LdXty5xPhlOuCD5Egfk1xLND/oRLYeB7Jb/tY4kzFSDgLlq91wYbHua/s03tQGA9iXvyjgymMw62Vw==} engines: {node: '>=12'} @@ -1988,6 +2105,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64/0.16.17: + resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64/0.16.7: resolution: {integrity: sha512-3nkNnNg4Ax6MS/l8O8Ynq2lGEVJYyJ2EoY3PHjNJ4PuZ80EYLMrFTFZ4L/Hc16AxgtXKwmNP9TM0YKNiBzBiJQ==} engines: {node: '>=12'} @@ -2006,6 +2132,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x/0.16.17: + resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x/0.16.7: resolution: {integrity: sha512-3SA/2VJuv0o1uD7zuqxEP+RrAyRxnkGddq0bwHQ98v1KNlzXD/JvxwTO3T6GM5RH6JUd29RTVQTOJfyzMkkppA==} engines: {node: '>=12'} @@ -2024,6 +2159,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64/0.16.17: + resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64/0.16.7: resolution: {integrity: sha512-xi/tbqCqvPIzU+zJVyrpz12xqciTAPMi2fXEWGnapZymoGhuL2GIWIRXg4O2v5BXaYA5TSaiKYE14L0QhUTuQg==} engines: {node: '>=12'} @@ -2042,6 +2186,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64/0.16.17: + resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64/0.16.7: resolution: {integrity: sha512-NUsYbq3B+JdNKn8SXkItFvdes9qTwEoS3aLALtiWciW/ystiCKM20Fgv9XQBOXfhUHyh5CLEeZDXzLOrwBXuCQ==} engines: {node: '>=12'} @@ -2060,6 +2213,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64/0.16.17: + resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64/0.16.7: resolution: {integrity: sha512-qjwzsgeve9I8Tbsko2FEkdSk2iiezuNGFgipQxY/736NePXDaDZRodIejYGWOlbYXugdxb0nif5yvypH6lKBmA==} engines: {node: '>=12'} @@ -2078,6 +2240,15 @@ packages: dev: true optional: true + /@esbuild/sunos-x64/0.16.17: + resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64/0.16.7: resolution: {integrity: sha512-mFWDz4RoBTzPphTCkM7Kc7Qpa0o/Z01acajR+Ai7LdfKgcP/C6jYOaKwv7nKzD0+MjOT20j7You9g4ozYy1dKQ==} engines: {node: '>=12'} @@ -2096,6 +2267,15 @@ packages: dev: true optional: true + /@esbuild/win32-arm64/0.16.17: + resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64/0.16.7: resolution: {integrity: sha512-m39UmX19RvEIuC8sYZ0M+eQtdXw4IePDSZ78ZQmYyFaXY9krq4YzQCK2XWIJomNLtg4q+W5aXr8bW3AbqWNoVg==} engines: {node: '>=12'} @@ -2114,6 +2294,15 @@ packages: dev: true optional: true + /@esbuild/win32-ia32/0.16.17: + resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32/0.16.7: resolution: {integrity: sha512-1cbzSEZA1fANwmT6rjJ4G1qQXHxCxGIcNYFYR9ctI82/prT38lnwSRZ0i5p/MVXksw9eMlHlet6pGu2/qkXFCg==} engines: {node: '>=12'} @@ -2132,6 +2321,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64/0.16.17: + resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64/0.16.7: resolution: {integrity: sha512-QaQ8IH0JLacfGf5cf0HCCPnQuCTd/dAI257vXBgb/cccKGbH/6pVtI1gwhdAQ0Y48QSpTIFrh9etVyNdZY+zzw==} engines: {node: '>=12'} @@ -3404,14 +3602,14 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/4.0.0_vite@4.0.1+vue@3.2.45: + /@vitejs/plugin-vue/4.0.0_vite@4.1.1+vue@3.2.45: resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.0.1 + vite: 4.1.1 vue: 3.2.45 dev: true @@ -3469,7 +3667,7 @@ packages: '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.18 + postcss: 8.4.20 source-map: 0.6.1 dev: true @@ -3480,8 +3678,8 @@ packages: '@vue/shared': 3.2.45 dev: true - /@vue/devtools-api/6.4.5: - resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} + /@vue/devtools-api/6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} dev: true /@vue/reactivity-transform/3.2.45: @@ -3529,24 +3727,24 @@ packages: resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} dev: true - /@vueuse/core/9.6.0_vue@3.2.45: - resolution: {integrity: sha512-qGUcjKQXHgN+jqXEgpeZGoxdCbIDCdVPz3QiF1uyecVGbMuM63o96I1GjYx5zskKgRI0FKSNsVWM7rwrRMTf6A==} + /@vueuse/core/9.12.0_vue@3.2.45: + resolution: {integrity: sha512-h/Di8Bvf6xRcvS/PvUVheiMYYz3U0tH3X25YxONSaAUBa841ayMwxkuzx/DGUMCW/wHWzD8tRy2zYmOC36r4sg==} dependencies: '@types/web-bluetooth': 0.0.16 - '@vueuse/metadata': 9.6.0 - '@vueuse/shared': 9.6.0_vue@3.2.45 + '@vueuse/metadata': 9.12.0 + '@vueuse/shared': 9.12.0_vue@3.2.45 vue-demi: 0.13.11_vue@3.2.45 transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata/9.6.0: - resolution: {integrity: sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w==} + /@vueuse/metadata/9.12.0: + resolution: {integrity: sha512-9oJ9MM9lFLlmvxXUqsR1wLt1uF7EVbP5iYaHJYqk+G2PbMjY6EXvZeTjbdO89HgoF5cI6z49o2zT/jD9SVoNpQ==} dev: true - /@vueuse/shared/9.6.0_vue@3.2.45: - resolution: {integrity: sha512-/eDchxYYhkHnFyrb00t90UfjCx94kRHxc7J1GtBCqCG4HyPMX+krV9XJgVtWIsAMaxKVU4fC8NSUviG1JkwhUQ==} + /@vueuse/shared/9.12.0_vue@3.2.45: + resolution: {integrity: sha512-TWuJLACQ0BVithVTRbex4Wf1a1VaRuSpVeyEd4vMUWl54PzlE0ciFUshKCXnlLuD0lxIaLK4Ypj3NXYzZh4+SQ==} dependencies: vue-demi: 0.13.11_vue@3.2.45 transitivePeerDependencies: @@ -3965,6 +4163,10 @@ packages: engines: {node: '>=12'} dev: true + /ansi-sequence-parser/1.1.0: + resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} + dev: true + /ansi-styles/2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} @@ -4109,7 +4311,7 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 transitivePeerDependencies: - debug dev: true @@ -6180,6 +6382,36 @@ packages: esbuild-windows-arm64: 0.15.13 dev: true + /esbuild/0.16.17: + resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.17 + '@esbuild/android-arm64': 0.16.17 + '@esbuild/android-x64': 0.16.17 + '@esbuild/darwin-arm64': 0.16.17 + '@esbuild/darwin-x64': 0.16.17 + '@esbuild/freebsd-arm64': 0.16.17 + '@esbuild/freebsd-x64': 0.16.17 + '@esbuild/linux-arm': 0.16.17 + '@esbuild/linux-arm64': 0.16.17 + '@esbuild/linux-ia32': 0.16.17 + '@esbuild/linux-loong64': 0.16.17 + '@esbuild/linux-mips64el': 0.16.17 + '@esbuild/linux-ppc64': 0.16.17 + '@esbuild/linux-riscv64': 0.16.17 + '@esbuild/linux-s390x': 0.16.17 + '@esbuild/linux-x64': 0.16.17 + '@esbuild/netbsd-x64': 0.16.17 + '@esbuild/openbsd-x64': 0.16.17 + '@esbuild/sunos-x64': 0.16.17 + '@esbuild/win32-arm64': 0.16.17 + '@esbuild/win32-ia32': 0.16.17 + '@esbuild/win32-x64': 0.16.17 + dev: true + /esbuild/0.16.7: resolution: {integrity: sha512-P6OBFYFSQOGzfApqCeYKqfKRRbCIRsdppTXFo4aAvtiW3o8TTyiIplBvHJI171saPAiy3WlawJHCveJVIOIx1A==} engines: {node: '>=12'} @@ -6907,7 +7139,7 @@ packages: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: true - /follow-redirects/1.15.2: + /follow-redirects/1.15.2_debug@4.3.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -6915,6 +7147,8 @@ packages: peerDependenciesMeta: debug: optional: true + dependencies: + debug: 4.3.2 dev: true /foreground-child/2.0.0: @@ -7454,7 +7688,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2 + follow-redirects: 1.15.2_debug@4.3.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -10015,6 +10249,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /preact/10.11.0: resolution: {integrity: sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==} dev: true @@ -10525,6 +10768,14 @@ packages: fsevents: 2.3.2 dev: true + /rollup/3.15.0: + resolution: {integrity: sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /rollup/3.7.4: resolution: {integrity: sha512-jN9rx3k5pfg9H9al0r0y1EYKSeiRANZRYX32SuNXAnKzh6cVyf4LZVto1KAuDnbHT03E1CpsgqDKaqQ8FZtgxw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -10748,6 +10999,15 @@ packages: vscode-textmate: 6.0.0 dev: true + /shiki/0.14.1: + resolution: {integrity: sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==} + dependencies: + ansi-sequence-parser: 1.1.0 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -11778,39 +12038,6 @@ packages: - terser dev: true - /vite/3.2.3: - resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.15.13 - postcss: 8.4.18 - resolve: 1.22.1 - rollup: 2.79.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/3.2.3_@types+node@18.11.9: resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -11845,7 +12072,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.1: + /vite/4.0.1_@types+node@18.11.9: resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -11870,6 +12097,7 @@ packages: terser: optional: true dependencies: + '@types/node': 18.11.9 esbuild: 0.16.7 postcss: 8.4.20 resolve: 1.22.1 @@ -11878,8 +12106,8 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.1_@types+node@18.11.9: - resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} + /vite/4.1.1: + resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -11903,21 +12131,19 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.9 - esbuild: 0.16.7 - postcss: 8.4.20 + esbuild: 0.16.17 + postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.7.4 + rollup: 3.15.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vitepress-plugin-search/1.0.4-alpha.16_ifjhkyx3os4sbm7zdnvthc52am: - resolution: {integrity: sha512-D+rs7bwzH+IO+7T9NlxvqSOqmSKbN1yHxUoqClTy5JH+DomL3CcrH2TgSvXc2s58ztlc1dC07c7THo4cNjlUAg==} + /vitepress-plugin-search/1.0.4-alpha.19_g67lr3vgasogkevpbew55lljzq: + resolution: {integrity: sha512-WFOPn5dStyMINd+rVjNxbEmGa7U+qGHLxLnda56EG+ATil1i0yOauGhJEh5LPMvuCUVIA9tInJnFXklOBb39dA==} engines: {node: ^14.13.1 || ^16.7.0 || >=18} peerDependencies: flexsearch: ^0.7.31 - vite: 2 || 3 vitepress: ^1.0.0-alpha.13 vue: '3' dependencies: @@ -11925,23 +12151,22 @@ packages: '@types/markdown-it': 12.2.3 flexsearch: 0.7.31 markdown-it: 13.0.1 - vite: 3.2.3 - vitepress: 1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y + vitepress: 1.0.0-alpha.46_tbpndr44ulefs3hehwpi2mkf2y vue: 3.2.45 dev: true - /vitepress/1.0.0-alpha.31_tbpndr44ulefs3hehwpi2mkf2y: - resolution: {integrity: sha512-FWFXLs7WLbFbemxjBWo2S2+qUZCIoeLLyAKfVUpIu3LUB8oQ8cyIANRGO6f6zsM51u2bvJU9Sm+V6Z0WjOWS2Q==} + /vitepress/1.0.0-alpha.46_tbpndr44ulefs3hehwpi2mkf2y: + resolution: {integrity: sha512-HiKiHzC0iTPsRsKs8XcsMeMzCpcCt5LWcX9mpDr288Ju+nQf1G8A2+Wm44ZkBsVv4EHxFK4ChmWyZrL1OJUXpg==} hasBin: true dependencies: - '@docsearch/css': 3.3.0 - '@docsearch/js': 3.3.0_tbpndr44ulefs3hehwpi2mkf2y - '@vitejs/plugin-vue': 4.0.0_vite@4.0.1+vue@3.2.45 - '@vue/devtools-api': 6.4.5 - '@vueuse/core': 9.6.0_vue@3.2.45 + '@docsearch/css': 3.3.3 + '@docsearch/js': 3.3.3_tbpndr44ulefs3hehwpi2mkf2y + '@vitejs/plugin-vue': 4.0.0_vite@4.1.1+vue@3.2.45 + '@vue/devtools-api': 6.5.0 + '@vueuse/core': 9.12.0_vue@3.2.45 body-scroll-lock: 4.0.0-beta.0 - shiki: 0.11.1 - vite: 4.0.1 + shiki: 0.14.1 + vite: 4.1.1 vue: 3.2.45 transitivePeerDependencies: - '@algolia/client-search' @@ -12043,10 +12268,18 @@ packages: resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} dev: true + /vscode-oniguruma/1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true + /vscode-textmate/6.0.0: resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} dev: true + /vscode-textmate/8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true + /vscode-uri/3.0.6: resolution: {integrity: sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==} dev: true From 037504785c26dd18ee797cfdf93a5e9f5f551f6a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 12:47:28 +0530 Subject: [PATCH 1004/1038] chore: Defer elk loading --- .../mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js index 73b37e9f74..5a786eee94 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js @@ -9,9 +9,9 @@ import { log } from '../../../logger'; import { setupGraphViewbox } from '../../../setupGraphViewbox'; import common, { evaluate } from '../../common/common'; import { interpolateToCurve, getStylesFromArray } from '../../../utils'; +import ELK from 'elkjs'; -import ELK from 'elkjs/lib/elk.bundled.js'; -const elk = new ELK(); +let elk; const portPos = {}; @@ -766,6 +766,9 @@ const insertChildren = (nodeArray, parentLookupDb) => { */ export const draw = async function (text, id, _version, diagObj) { + if (!elk) { + elk = new ELK(); + } // Add temporary render element diagObj.db.clear(); nodeDb = {}; From 533bd7da3c1932f87d9970588b9fa93d57ddb6c7 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 12:56:32 +0530 Subject: [PATCH 1005/1038] chore: Add file extension for dynamic import --- .github/workflows/publish-docs.yml | 1 + packages/mermaid-example-diagram/src/detector.ts | 2 +- packages/mermaid/src/diagrams/flowchart/elk/detector.ts | 2 +- packages/mermaid/src/diagrams/mindmap/detector.ts | 2 +- packages/mermaid/src/diagrams/timeline/detector.ts | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 1ac646de13..c05edc6013 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -54,6 +54,7 @@ jobs: # Deployment job deploy: + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} environment: name: github-pages runs-on: ubuntu-latest diff --git a/packages/mermaid-example-diagram/src/detector.ts b/packages/mermaid-example-diagram/src/detector.ts index fdf7345bb4..93fd427628 100644 --- a/packages/mermaid-example-diagram/src/detector.ts +++ b/packages/mermaid-example-diagram/src/detector.ts @@ -7,7 +7,7 @@ const detector = (txt: string) => { }; const loader = async () => { - const { diagram } = await import('./diagram-definition'); + const { diagram } = await import('./diagram-definition.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/flowchart/elk/detector.ts b/packages/mermaid/src/diagrams/flowchart/elk/detector.ts index 1d825e35c4..41760ff4dd 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/detector.ts +++ b/packages/mermaid/src/diagrams/flowchart/elk/detector.ts @@ -16,7 +16,7 @@ const detector: DiagramDetector = (txt: string, config?: MermaidConfig): boolean }; const loader = async () => { - const { diagram } = await import('./diagram-definition'); + const { diagram } = await import('./diagram-definition.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/mindmap/detector.ts b/packages/mermaid/src/diagrams/mindmap/detector.ts index 82664225b8..c96b190971 100644 --- a/packages/mermaid/src/diagrams/mindmap/detector.ts +++ b/packages/mermaid/src/diagrams/mindmap/detector.ts @@ -6,7 +6,7 @@ const detector = (txt: string) => { }; const loader = async () => { - const { diagram } = await import('./diagram-definition'); + const { diagram } = await import('./diagram-definition.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/timeline/detector.ts b/packages/mermaid/src/diagrams/timeline/detector.ts index 9d06d6438a..faa86a72c6 100644 --- a/packages/mermaid/src/diagrams/timeline/detector.ts +++ b/packages/mermaid/src/diagrams/timeline/detector.ts @@ -7,7 +7,7 @@ const detector = (txt: string) => { }; const loader = async () => { - const { diagram } = await import('./diagram-definition'); + const { diagram } = await import('./diagram-definition.js'); return { id, diagram }; }; From 0db2657b7b44fa0bd7ad7d9ac1a3af99cb1ecbf0 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 13:05:53 +0530 Subject: [PATCH 1006/1038] Test publish docs --- .github/workflows/publish-docs.yml | 1 + .github/workflows/release-preview-publish.yml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index c05edc6013..fea3696f83 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -5,6 +5,7 @@ on: push: branches: - master + pull_request: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/.github/workflows/release-preview-publish.yml b/.github/workflows/release-preview-publish.yml index 5f4936ab68..b18b874170 100644 --- a/.github/workflows/release-preview-publish.yml +++ b/.github/workflows/release-preview-publish.yml @@ -7,6 +7,8 @@ on: jobs: publish: + env: + NODE_OPTIONS: '--max_old_space_size=4096' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 83797eef386f061c75308ea1b5fa7f904e554619 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 14:21:33 +0530 Subject: [PATCH 1007/1038] elk web-worker --- packages/mermaid/package.json | 3 ++- .../mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js | 2 +- pnpm-lock.yaml | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index d16e237940..e4480286ff 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -66,7 +66,8 @@ "non-layered-tidy-tree-layout": "^2.0.2", "stylis": "^4.1.2", "ts-dedent": "^2.2.0", - "uuid": "^9.0.0" + "uuid": "^9.0.0", + "web-worker": "^1.2.0" }, "devDependencies": { "@types/cytoscape": "^3.19.9", diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js index 5a786eee94..15624fc573 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js @@ -9,7 +9,7 @@ import { log } from '../../../logger'; import { setupGraphViewbox } from '../../../setupGraphViewbox'; import common, { evaluate } from '../../common/common'; import { interpolateToCurve, getStylesFromArray } from '../../../utils'; -import ELK from 'elkjs'; +import ELK from 'elkjs/lib/elk.bundled.js'; let elk; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c121e365fd..f20f951672 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -214,6 +214,9 @@ importers: uuid: specifier: ^9.0.0 version: 9.0.0 + web-worker: + specifier: ^1.2.0 + version: 1.2.0 devDependencies: '@types/cytoscape': specifier: ^3.19.9 @@ -12435,6 +12438,10 @@ packages: minimalistic-assert: 1.0.1 dev: true + /web-worker/1.2.0: + resolution: {integrity: sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==} + dev: false + /webdriver/7.16.11: resolution: {integrity: sha512-6nBOXae4xuBH4Nqvi/zvtwjnxSLTONBpxOiRJtQ68CYTYv5+w3m8CsaWy3HbK/0XXa++NYl62bDNn70OGEKb+Q==} engines: {node: '>=12.0.0'} From 76fdc00b06463a6c57f52f5459ee60ca0fa2ec5b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 14:41:22 +0530 Subject: [PATCH 1008/1038] Remove heap option --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 36d6273911..2a70b5901d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,8 +17,6 @@ jobs: strategy: matrix: node-version: [18.x] - env: - NODE_OPTIONS: '--max_old_space_size=4096' steps: - uses: actions/checkout@v3 From b8315cec6c851253954e3bba336ae8d9dfc667db Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 14:42:47 +0530 Subject: [PATCH 1009/1038] Dynamic elk import --- packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js index 15624fc573..d8239742c4 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js @@ -9,7 +9,6 @@ import { log } from '../../../logger'; import { setupGraphViewbox } from '../../../setupGraphViewbox'; import common, { evaluate } from '../../common/common'; import { interpolateToCurve, getStylesFromArray } from '../../../utils'; -import ELK from 'elkjs/lib/elk.bundled.js'; let elk; @@ -767,6 +766,7 @@ const insertChildren = (nodeArray, parentLookupDb) => { export const draw = async function (text, id, _version, diagObj) { if (!elk) { + const ELK = await import('elkjs/lib/elk.bundled.js'); elk = new ELK(); } // Add temporary render element From c815c84e1c7d226f0d06e1da97f8e5f34e26f8a3 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 16 Feb 2023 15:00:35 +0530 Subject: [PATCH 1010/1038] Fix elk import --- cypress/platform/sidv.html | 5 +---- .../mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/cypress/platform/sidv.html b/cypress/platform/sidv.html index 539288464f..fce3c0082d 100644 --- a/cypress/platform/sidv.html +++ b/cypress/platform/sidv.html @@ -65,7 +65,7 @@
     flowchart-elk LR
       subgraph A
    -  a -->b
    +  a --> b
       end
       subgraph B
       b
    @@ -246,10 +246,7 @@
         
     
         
     ```
     
    +From version 9.4.0 you can simplify this code to:
    +
    +    
    +
    +or is you prefere not using an esm package:
    +
    +```html
    +
    +```
    +
    +Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
    +
     You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    diff --git a/docs/syntax/timeline.md b/docs/syntax/timeline.md
    index 4e917bc109..dbbb3521e8 100644
    --- a/docs/syntax/timeline.md
    +++ b/docs/syntax/timeline.md
    @@ -459,4 +459,16 @@ Let's put them to use, and see how our sample diagram looks in different themes:
               2010 : Pinterest
     ```
     
    +## Integrating with your library/website.
    +
    +Timeline uses experimental lazy loading & async rendering features which could change in the future.The lazy loading is important in order to be able to add additional diagrams going forward.
    +
    +You can use this method to add mermaid including the timeline diagram to a web page:
    +
    +```html
    +
    +```
    +
    +Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
    +
     You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md
    index 833f269417..9bb8e9d786 100644
    --- a/packages/mermaid/src/docs/syntax/mindmap.md
    +++ b/packages/mermaid/src/docs/syntax/mindmap.md
    @@ -164,14 +164,32 @@ Root
     
     ## Integrating with your library/website.
     
    -Mindmap uses the experimental lazy loading & async rendering features which could change in the future.
    +Mindmap uses the experimental lazy loading & async rendering features which could change in the future. From version 9.4.0 this diagram is included in mermaid but use lazy loading in order to keep the size of mermaid down. This is important in order to be able to add additional diagrams going forward.
    +
    +You can still use the pre 9.4.0 method to add mermaid with mindmaps to a web page:
     
     ```html
     
     ```
     
    +From version 9.4.0 you can simplify this code to:
    +
    +```
    +
    +```
    +
    +or is you prefere not using an esm package:
    +
    +```html
    +
    +```
    +
    +Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
    +
     You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    diff --git a/packages/mermaid/src/docs/syntax/timeline.md b/packages/mermaid/src/docs/syntax/timeline.md
    index 76fdb5e60d..7841560369 100644
    --- a/packages/mermaid/src/docs/syntax/timeline.md
    +++ b/packages/mermaid/src/docs/syntax/timeline.md
    @@ -291,4 +291,16 @@ Let's put them to use, and see how our sample diagram looks in different themes:
               2010 : Pinterest
     ```
     
    +## Integrating with your library/website.
    +
    +Timeline uses experimental lazy loading & async rendering features which could change in the future.The lazy loading is important in order to be able to add additional diagrams going forward.
    +
    +You can use this method to add mermaid including the timeline diagram to a web page:
    +
    +```html
    +
    +```
    +
    +Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
    +
     You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    
    From b22978dfb2daf6bf8fde5fc50d2f1d45f3a0281c Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 16:52:15 +0530
    Subject: [PATCH 1018/1038] Fix timeline and mindmap
    
    ---
     docs/syntax/mindmap.md                       | 12 +++++++-----
     docs/syntax/timeline.md                      |  4 ++--
     packages/mermaid/src/docs/syntax/mindmap.md  |  6 +++---
     packages/mermaid/src/docs/syntax/timeline.md |  4 ++--
     4 files changed, 14 insertions(+), 12 deletions(-)
    
    diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md
    index f97ecc99fc..81649351a0 100644
    --- a/docs/syntax/mindmap.md
    +++ b/docs/syntax/mindmap.md
    @@ -270,11 +270,13 @@ You can still use the pre 9.4.0 method to add mermaid with mindmaps to a web pag
     
     From version 9.4.0 you can simplify this code to:
     
    -    
    +```html
    +
    +```
     
    -or is you prefere not using an esm package:
    +or if you prefer not using the ESM package:
     
     ```html
     
    @@ -282,4 +284,4 @@ or is you prefere not using an esm package:
     
     Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
     
    -You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done.
    diff --git a/docs/syntax/timeline.md b/docs/syntax/timeline.md
    index dbbb3521e8..943f247a00 100644
    --- a/docs/syntax/timeline.md
    +++ b/docs/syntax/timeline.md
    @@ -469,6 +469,6 @@ You can use this method to add mermaid including the timeline diagram to a web p
     
     ```
     
    -Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
    +Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render timeline.
     
    -You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done.
    diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md
    index 9bb8e9d786..cce7d2e3d4 100644
    --- a/packages/mermaid/src/docs/syntax/mindmap.md
    +++ b/packages/mermaid/src/docs/syntax/mindmap.md
    @@ -178,13 +178,13 @@ You can still use the pre 9.4.0 method to add mermaid with mindmaps to a web pag
     
     From version 9.4.0 you can simplify this code to:
     
    -```
    +```html
     
     ```
     
    -or is you prefere not using an esm package:
    +or if you prefer not using the ESM package:
     
     ```html
     
    @@ -192,4 +192,4 @@ or is you prefere not using an esm package:
     
     Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
     
    -You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done.
    diff --git a/packages/mermaid/src/docs/syntax/timeline.md b/packages/mermaid/src/docs/syntax/timeline.md
    index 7841560369..94a485d229 100644
    --- a/packages/mermaid/src/docs/syntax/timeline.md
    +++ b/packages/mermaid/src/docs/syntax/timeline.md
    @@ -301,6 +301,6 @@ You can use this method to add mermaid including the timeline diagram to a web p
     
     ```
     
    -Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render mind maps.
    +Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render timeline.
     
    -You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/fcf53c98c25604c90a218104268c339be53035a6/src/lib/util/mermaid.ts) to see how the async loading is done.
    +You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done.
    
    From b10d243995b9b832e9fe716355936461fcf415bf Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 17:07:03 +0530
    Subject: [PATCH 1019/1038] Fix release-publish
    
    ---
     .github/workflows/release-publish.yml | 17 ++++++++++-------
     1 file changed, 10 insertions(+), 7 deletions(-)
    
    diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml
    index 6f0806de14..3cc454f4f6 100644
    --- a/.github/workflows/release-publish.yml
    +++ b/.github/workflows/release-publish.yml
    @@ -11,18 +11,21 @@ jobs:
           - uses: actions/checkout@v3
           - uses: fregante/setup-git-user@v1
     
    -      - name: Setup Node.js
    +      - uses: pnpm/action-setup@v2
    +        # uses version from "packageManager" field in package.json
    +
    +      - name: Setup Node.js v18
             uses: actions/setup-node@v3
             with:
    +          cache: pnpm
               node-version: 18.x
    -      - name: Install Yarn
    -        run: npm i yarn --global
    -
    -      - name: Install Json
    -        run: npm i json --global
     
           - name: Install Packages
    -        run: yarn install --frozen-lockfile
    +        run: |
    +          pnpm install --frozen-lockfile
    +          npm i json --global
    +        env:
    +          CYPRESS_CACHE_FOLDER: .cache/Cypress
     
           - name: Prepare release
             run: |
    
    From 86cfb1bb60fa64f4b2b6700b55976ccd863e69f0 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 17:09:02 +0530
    Subject: [PATCH 1020/1038] Skip precommit hooks on CI
    
    ---
     .github/workflows/release-publish.yml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml
    index 3cc454f4f6..28094453e4 100644
    --- a/.github/workflows/release-publish.yml
    +++ b/.github/workflows/release-publish.yml
    @@ -34,7 +34,7 @@ jobs:
               git checkout -t origin/release/$VERSION
               npm version --no-git-tag-version --allow-same-version $VERSION
               git add package.json
    -          git commit -m "Bump version $VERSION"
    +          git commit -nm "Bump version $VERSION"
               git checkout -t origin/master
               git merge -m "Release $VERSION" --no-ff release/$VERSION
               git push --no-verify
    
    From d543bc0411baf64ad9754bdb7572101287d2635e Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 17:27:51 +0530
    Subject: [PATCH 1021/1038] docs: fix links
    
    ---
     packages/mermaid/src/docs/.vitepress/config.ts         | 2 +-
     packages/mermaid/src/docs/.vitepress/theme/redirect.ts | 4 ++--
     2 files changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts
    index 396029a96a..9b01fdbdec 100644
    --- a/packages/mermaid/src/docs/.vitepress/config.ts
    +++ b/packages/mermaid/src/docs/.vitepress/config.ts
    @@ -41,7 +41,7 @@ function nav() {
           link: '/config/Tutorials',
           activeMatch: '/config/',
         },
    -    { text: 'Integrations', link: '/misc/integrations', activeMatch: '/misc/' },
    +    { text: 'Integrations', link: '/ecosystem/integrations', activeMatch: '/ecosystem/' },
         {
           text: version,
           items: [
    diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts
    index 0109aea10d..936d6f7e29 100644
    --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts
    +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts
    @@ -31,7 +31,7 @@ const idRedirectMap: Record = {
       c4c: 'syntax/c4c',
       classdiagram: 'syntax/classDiagram',
       configuration: 'config/configuration',
    -  demos: 'misc/integrations',
    +  demos: 'ecosystem/integrations',
       development: 'community/development',
       directives: 'config/directives',
       entityrelationshipdiagram: 'syntax/entityRelationshipDiagram',
    @@ -40,7 +40,7 @@ const idRedirectMap: Record = {
       flowchart: 'syntax/flowchart',
       gantt: 'syntax/gantt',
       gitgraph: 'syntax/gitgraph',
    -  integrations: 'misc/integrations',
    +  integrations: 'ecosystem/integrations',
       'language-highlight': '',
       markdown: '',
       mermaidapi: 'config/usage',
    
    From ccaa99937fbd2a71068d7151ee723214c1861e66 Mon Sep 17 00:00:00 2001
    From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
    Date: Thu, 16 Feb 2023 12:27:04 +0000
    Subject: [PATCH 1022/1038] chore(deps): update dependency cypress to v12
    
    ---
     package.json   |   2 +-
     pnpm-lock.yaml | 295 ++-----------------------------------------------
     2 files changed, 12 insertions(+), 285 deletions(-)
    
    diff --git a/package.json b/package.json
    index 901e7908fd..e05563f39c 100644
    --- a/package.json
    +++ b/package.json
    @@ -74,7 +74,7 @@
         "@vitest/ui": "^0.28.4",
         "concurrently": "^7.5.0",
         "coveralls": "^3.1.1",
    -    "cypress": "^10.11.0",
    +    "cypress": "^12.0.0",
         "cypress-image-snapshot": "^4.0.1",
         "esbuild": "^0.17.0",
         "eslint": "^8.32.0",
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index 04d2d2b5a1..a388cf654b 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -65,11 +65,11 @@ importers:
             specifier: ^3.1.1
             version: 3.1.1
           cypress:
    -        specifier: ^10.11.0
    -        version: 10.11.0
    +        specifier: ^12.0.0
    +        version: 12.5.1
           cypress-image-snapshot:
             specifier: ^4.0.1
    -        version: 4.0.1_bg25yee4qeg7mpleuvd346a3tq
    +        version: 4.0.1_cypress@12.5.1+jest@29.3.1
           esbuild:
             specifier: ^0.17.0
             version: 0.17.0
    @@ -1742,15 +1742,6 @@ packages:
           jsdoc-type-pratt-parser: 3.1.0
         dev: true
     
    -  /@esbuild/android-arm/0.15.13:
    -    resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/android-arm/0.16.17:
         resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
         engines: {node: '>=12'}
    @@ -2021,15 +2012,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-loong64/0.15.13:
    -    resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-loong64/0.16.17:
         resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
         engines: {node: '>=12'}
    @@ -4349,7 +4331,7 @@ packages:
       /axios/0.21.4_debug@4.3.2:
         resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
         dependencies:
    -      follow-redirects: 1.15.2_debug@4.3.2
    +      follow-redirects: 1.15.2
         transitivePeerDependencies:
           - debug
         dev: true
    @@ -5428,14 +5410,14 @@ packages:
         resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
         dev: true
     
    -  /cypress-image-snapshot/4.0.1_bg25yee4qeg7mpleuvd346a3tq:
    +  /cypress-image-snapshot/4.0.1_cypress@12.5.1+jest@29.3.1:
         resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==}
         engines: {node: '>=8'}
         peerDependencies:
           cypress: ^4.5.0
         dependencies:
           chalk: 2.4.2
    -      cypress: 10.11.0
    +      cypress: 12.5.1
           fs-extra: 7.0.1
           glob: 7.2.3
           jest-image-snapshot: 4.2.0_jest@29.3.1
    @@ -5445,9 +5427,9 @@ packages:
           - jest
         dev: true
     
    -  /cypress/10.11.0:
    -    resolution: {integrity: sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA==}
    -    engines: {node: '>=12.0.0'}
    +  /cypress/12.5.1:
    +    resolution: {integrity: sha512-ZmCmJ3lsyeOpBfh410m5+AO2CO1AxAzFBt7k6/uVbNcrNZje1vdiwYTpj2ksPKg9mjr9lR6V8tmlDNMvr4H/YQ==}
    +    engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0}
         hasBin: true
         requiresBuild: true
         dependencies:
    @@ -6214,216 +6196,6 @@ packages:
         resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
         dev: true
     
    -  /esbuild-android-64/0.15.13:
    -    resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-android-arm64/0.15.13:
    -    resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-darwin-64/0.15.13:
    -    resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-darwin-arm64/0.15.13:
    -    resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-freebsd-64/0.15.13:
    -    resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-freebsd-arm64/0.15.13:
    -    resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-32/0.15.13:
    -    resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-64/0.15.13:
    -    resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-arm/0.15.13:
    -    resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-arm64/0.15.13:
    -    resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-mips64le/0.15.13:
    -    resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-ppc64le/0.15.13:
    -    resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-riscv64/0.15.13:
    -    resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-s390x/0.15.13:
    -    resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-netbsd-64/0.15.13:
    -    resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-openbsd-64/0.15.13:
    -    resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-sunos-64/0.15.13:
    -    resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-windows-32/0.15.13:
    -    resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-windows-64/0.15.13:
    -    resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-windows-arm64/0.15.13:
    -    resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild/0.15.13:
    -    resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -    requiresBuild: true
    -    optionalDependencies:
    -      '@esbuild/android-arm': 0.15.13
    -      '@esbuild/linux-loong64': 0.15.13
    -      esbuild-android-64: 0.15.13
    -      esbuild-android-arm64: 0.15.13
    -      esbuild-darwin-64: 0.15.13
    -      esbuild-darwin-arm64: 0.15.13
    -      esbuild-freebsd-64: 0.15.13
    -      esbuild-freebsd-arm64: 0.15.13
    -      esbuild-linux-32: 0.15.13
    -      esbuild-linux-64: 0.15.13
    -      esbuild-linux-arm: 0.15.13
    -      esbuild-linux-arm64: 0.15.13
    -      esbuild-linux-mips64le: 0.15.13
    -      esbuild-linux-ppc64le: 0.15.13
    -      esbuild-linux-riscv64: 0.15.13
    -      esbuild-linux-s390x: 0.15.13
    -      esbuild-netbsd-64: 0.15.13
    -      esbuild-openbsd-64: 0.15.13
    -      esbuild-sunos-64: 0.15.13
    -      esbuild-windows-32: 0.15.13
    -      esbuild-windows-64: 0.15.13
    -      esbuild-windows-arm64: 0.15.13
    -    dev: true
    -
       /esbuild/0.16.17:
         resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==}
         engines: {node: '>=12'}
    @@ -7181,7 +6953,7 @@ packages:
         resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==}
         dev: true
     
    -  /follow-redirects/1.15.2_debug@4.3.2:
    +  /follow-redirects/1.15.2:
         resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
         engines: {node: '>=4.0'}
         peerDependencies:
    @@ -7189,8 +6961,6 @@ packages:
         peerDependenciesMeta:
           debug:
             optional: true
    -    dependencies:
    -      debug: 4.3.2
         dev: true
     
       /foreground-child/2.0.0:
    @@ -7730,7 +7500,7 @@ packages:
         engines: {node: '>=8.0.0'}
         dependencies:
           eventemitter3: 4.0.7
    -      follow-redirects: 1.15.2_debug@4.3.2
    +      follow-redirects: 1.15.2
           requires-port: 1.0.0
         transitivePeerDependencies:
           - debug
    @@ -10276,15 +10046,6 @@ packages:
         resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
         dev: true
     
    -  /postcss/8.4.18:
    -    resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    dependencies:
    -      nanoid: 3.3.4
    -      picocolors: 1.0.0
    -      source-map-js: 1.0.2
    -    dev: true
    -
       /postcss/8.4.20:
         resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==}
         engines: {node: ^10 || ^12 || >=14}
    @@ -12106,40 +11867,6 @@ packages:
           - terser
         dev: true
     
    -  /vite/3.2.3_@types+node@18.11.9:
    -    resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    -    hasBin: true
    -    peerDependencies:
    -      '@types/node': '>= 14'
    -      less: '*'
    -      sass: '*'
    -      stylus: '*'
    -      sugarss: '*'
    -      terser: ^5.4.0
    -    peerDependenciesMeta:
    -      '@types/node':
    -        optional: true
    -      less:
    -        optional: true
    -      sass:
    -        optional: true
    -      stylus:
    -        optional: true
    -      sugarss:
    -        optional: true
    -      terser:
    -        optional: true
    -    dependencies:
    -      '@types/node': 18.11.9
    -      esbuild: 0.15.13
    -      postcss: 8.4.18
    -      resolve: 1.22.1
    -      rollup: 2.79.1
    -    optionalDependencies:
    -      fsevents: 2.3.2
    -    dev: true
    -
       /vite/4.0.1_@types+node@18.11.9:
         resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==}
         engines: {node: ^14.18.0 || >=16.0.0}
    
    From 4ed6ec1a4dd4d406f1bb28551fcca19f84bb19c4 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Thu, 16 Feb 2023 18:00:41 +0530
    Subject: [PATCH 1023/1038] Add highlight tag info in contributing.md
    
    ---
     CONTRIBUTING.md                               | 22 +++++++++++++++++++
     docs/syntax/flowchart.md                      |  3 ++-
     packages/mermaid/src/docs/syntax/flowchart.md |  4 +++-
     3 files changed, 27 insertions(+), 2 deletions(-)
    
    diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
    index cf199c39b6..b0320b36e1 100644
    --- a/CONTRIBUTING.md
    +++ b/CONTRIBUTING.md
    @@ -63,6 +63,28 @@ flowchart LR
     
     ```
     
    +You can use `note`, `tip`, `warning` and `danger` in triple backticks to add a note, tip, warning or danger box.
    +Do not use vitepress specific markdown syntax `::: warning` as it will not be processed correctly.
    +
    +````
    +```note
    +Note content
    +```
    +
    +```tip
    +Tip content
    +```
    +
    +```warning
    +Warning content
    +```
    +
    +```danger
    +Danger content
    +```
    +
    +````
    +
     **_DO NOT CHANGE FILES IN `/docs`_**
     
     ### The official documentation site
    diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md
    index 6ef8a10468..fd0408c456 100644
    --- a/docs/syntax/flowchart.md
    +++ b/docs/syntax/flowchart.md
    @@ -30,7 +30,8 @@ flowchart LR
         id
     ```
     
    -> **Note** The id is what is displayed in the box.
    +> **Note**
    +> The id is what is displayed in the box.
     
     ### A node with text
     
    diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md
    index 587b3b1fcd..5896e05188 100644
    --- a/packages/mermaid/src/docs/syntax/flowchart.md
    +++ b/packages/mermaid/src/docs/syntax/flowchart.md
    @@ -21,7 +21,9 @@ flowchart LR
         id
     ```
     
    -> **Note** The id is what is displayed in the box.
    +```note
    +The id is what is displayed in the box.
    +```
     
     ### A node with text
     
    
    From e31924eadc02e88ab1c06da748078db573ae3d52 Mon Sep 17 00:00:00 2001
    From: Aiello 
    Date: Sat, 18 Feb 2023 23:21:20 +0800
    Subject: [PATCH 1024/1038] fix(api): tree shaking package.json import
    
    Manually tree shaking import statement of package.json
    ---
     packages/mermaid/src/mermaidAPI.ts | 10 +++++-----
     1 file changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
    index 68db59b34f..fe9c003848 100644
    --- a/packages/mermaid/src/mermaidAPI.ts
    +++ b/packages/mermaid/src/mermaidAPI.ts
    @@ -13,7 +13,7 @@
     import { select } from 'd3';
     import { compile, serialize, stringify } from 'stylis';
     // @ts-ignore: TODO Fix ts errors
    -import pkg from '../package.json';
    +import { version } from '../package.json';
     import * as configApi from './config';
     import { addDiagrams } from './diagram-api/diagram-orchestration';
     import classDb from './diagrams/class/classDb';
    @@ -506,9 +506,9 @@ const render = function (
       // -------------------------------------------------------------------------------
       // Draw the diagram with the renderer
       try {
    -    diag.renderer.draw(text, id, pkg.version, diag);
    +    diag.renderer.draw(text, id, version, diag);
       } catch (e) {
    -    errorRenderer.draw(text, id, pkg.version);
    +    errorRenderer.draw(text, id, version);
         throw e;
       }
     
    @@ -708,9 +708,9 @@ const renderAsync = async function (
       // -------------------------------------------------------------------------------
       // Draw the diagram with the renderer
       try {
    -    await diag.renderer.draw(text, id, pkg.version, diag);
    +    await diag.renderer.draw(text, id, version, diag);
       } catch (e) {
    -    errorRenderer.draw(text, id, pkg.version);
    +    errorRenderer.draw(text, id, version);
         throw e;
       }
     
    
    From 3c4a6a19bb243002dcebccf31b186abb8c215ab8 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sat, 18 Feb 2023 22:35:14 +0530
    Subject: [PATCH 1025/1038] fix: Vite, D3, Vitest Types
    
    ---
     docs/config/setup/modules/mermaidAPI.md       |  22 +-
     package.json                                  |   8 +-
     packages/mermaid/package.json                 |   2 +-
     .../src/diagrams/error/errorRenderer.ts       |   1 +
     packages/mermaid/src/docs/vite.config.ts      |  13 +-
     packages/mermaid/src/mermaidAPI.ts            |   1 +
     packages/mermaid/src/tests/MockedD3.ts        |   2 +-
     pnpm-lock.yaml                                | 645 ++++++++----------
     tsconfig.json                                 |   2 +-
     9 files changed, 312 insertions(+), 384 deletions(-)
    
    diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md
    index 02d0fcf494..bd9833c5be 100644
    --- a/docs/config/setup/modules/mermaidAPI.md
    +++ b/docs/config/setup/modules/mermaidAPI.md
    @@ -20,7 +20,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi)
     
     #### Defined in
     
    -[mermaidAPI.ts:74](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L74)
    +[mermaidAPI.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L75)
     
     ## Variables
     
    @@ -90,7 +90,7 @@ mermaid.initialize(config);
     
     #### Defined in
     
    -[mermaidAPI.ts:886](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L886)
    +[mermaidAPI.ts:887](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L887)
     
     ## Functions
     
    @@ -121,7 +121,7 @@ Return the last node appended
     
     #### Defined in
     
    -[mermaidAPI.ts:287](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L287)
    +[mermaidAPI.ts:288](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L288)
     
     ---
     
    @@ -147,7 +147,7 @@ the cleaned up svgCode
     
     #### Defined in
     
    -[mermaidAPI.ts:238](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L238)
    +[mermaidAPI.ts:239](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L239)
     
     ---
     
    @@ -173,7 +173,7 @@ the string with all the user styles
     
     #### Defined in
     
    -[mermaidAPI.ts:167](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L167)
    +[mermaidAPI.ts:168](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L168)
     
     ---
     
    @@ -196,7 +196,7 @@ the string with all the user styles
     
     #### Defined in
     
    -[mermaidAPI.ts:215](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L215)
    +[mermaidAPI.ts:216](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L216)
     
     ---
     
    @@ -223,7 +223,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
     
     #### Defined in
     
    -[mermaidAPI.ts:151](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L151)
    +[mermaidAPI.ts:152](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L152)
     
     ---
     
    @@ -243,7 +243,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
     
     #### Defined in
     
    -[mermaidAPI.ts:131](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L131)
    +[mermaidAPI.ts:132](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L132)
     
     ---
     
    @@ -263,7 +263,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
     
     #### Defined in
     
    -[mermaidAPI.ts:102](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L102)
    +[mermaidAPI.ts:103](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L103)
     
     ---
     
    @@ -289,7 +289,7 @@ Put the svgCode into an iFrame. Return the iFrame code
     
     #### Defined in
     
    -[mermaidAPI.ts:266](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L266)
    +[mermaidAPI.ts:267](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L267)
     
     ---
     
    @@ -314,4 +314,4 @@ Remove any existing elements from the given document
     
     #### Defined in
     
    -[mermaidAPI.ts:337](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L337)
    +[mermaidAPI.ts:338](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L338)
    diff --git a/package.json b/package.json
    index 3a48476096..e78ac88929 100644
    --- a/package.json
    +++ b/package.json
    @@ -34,7 +34,7 @@
         "test:watch": "vitest --watch",
         "test:coverage": "vitest --coverage",
         "prepublishOnly": "pnpm build && pnpm test",
    -    "prepare": "concurrently \"husky install\" \"pnpm build\"",
    +    "prepare": "husky install && pnpm build",
         "pre-commit": "lint-staged"
       },
       "repository": {
    @@ -103,11 +103,11 @@
         "prettier-plugin-jsdoc": "^0.4.2",
         "rimraf": "^4.0.0",
         "rollup-plugin-visualizer": "^5.8.3",
    -    "start-server-and-test": "^1.14.0",
    +    "start-server-and-test": "^1.15.4",
         "ts-node": "^10.9.1",
         "typescript": "^4.8.4",
    -    "vite": "^3.2.3",
    -    "vitest": "^0.28.4"
    +    "vite": "^4.1.1",
    +    "vitest": "^0.28.5"
       },
       "volta": {
         "node": "18.14.0"
    diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
    index e4480286ff..977c16f18c 100644
    --- a/packages/mermaid/package.json
    +++ b/packages/mermaid/package.json
    @@ -56,7 +56,7 @@
         "cytoscape": "^3.23.0",
         "cytoscape-cose-bilkent": "^4.1.0",
         "cytoscape-fcose": "^2.1.0",
    -    "d3": "^7.0.0",
    +    "d3": "^7.4.0",
         "dagre-d3-es": "7.0.8",
         "dompurify": "2.4.3",
         "elkjs": "^0.8.2",
    diff --git a/packages/mermaid/src/diagrams/error/errorRenderer.ts b/packages/mermaid/src/diagrams/error/errorRenderer.ts
    index b4e267684d..60877cb8d0 100644
    --- a/packages/mermaid/src/diagrams/error/errorRenderer.ts
    +++ b/packages/mermaid/src/diagrams/error/errorRenderer.ts
    @@ -1,4 +1,5 @@
     /** Created by knut on 14-12-11. */
    +// @ts-ignore TODO: Investigate D3 issue
     import { select } from 'd3';
     import { log } from '../../logger';
     import { getErrorMessage } from '../../utils';
    diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts
    index 3f29b497dc..dc5661de08 100644
    --- a/packages/mermaid/src/docs/vite.config.ts
    +++ b/packages/mermaid/src/docs/vite.config.ts
    @@ -1,4 +1,4 @@
    -import { defineConfig, searchForWorkspaceRoot } from 'vite';
    +import { defineConfig, searchForWorkspaceRoot, PluginOption } from 'vite';
     import path from 'path';
     // @ts-ignore: still in alpha
     import { SearchPlugin } from 'vitepress-plugin-search';
    @@ -13,12 +13,12 @@ export default defineConfig({
           // TODO: will be fixed in the next vitepress release.
           name: 'fix-virtual',
     
    -      async resolveId(id) {
    +      async resolveId(id: string) {
             if (id === virtualModuleId) {
               return resolvedVirtualModuleId;
             }
           },
    -      async load(this, id) {
    +      async load(this, id: string) {
             if (id === resolvedVirtualModuleId) {
               return `export default ${JSON.stringify({
                 securityLevel: 'loose',
    @@ -26,20 +26,15 @@ export default defineConfig({
               })};`;
             }
           },
    -    },
    +    } as PluginOption,
       ],
       resolve: {
         alias: {
           mermaid: path.join(__dirname, '../../dist/mermaid.esm.min.mjs'), // Use this one to build
    -
           '@mermaid-js/mermaid-example-diagram': path.join(
             __dirname,
             '../../../mermaid-example-diagram/dist/mermaid-example-diagram.esm.min.mjs'
           ), // Use this one to build
    -      // '@mermaid-js/mermaid-timeline': path.join(
    -      //   __dirname,
    -      //   '../../../mermaid-timeline/dist/mermaid-timeline.esm.min.mjs'
    -      // ),
         },
       },
       server: {
    diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
    index 68db59b34f..aea67548e6 100644
    --- a/packages/mermaid/src/mermaidAPI.ts
    +++ b/packages/mermaid/src/mermaidAPI.ts
    @@ -10,6 +10,7 @@
      *
      * In addition to the render function, a number of behavioral configuration options are available.
      */
    +// @ts-ignore TODO: Investigate D3 issue
     import { select } from 'd3';
     import { compile, serialize, stringify } from 'stylis';
     // @ts-ignore: TODO Fix ts errors
    diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts
    index 4600e2667b..ccf21a269b 100644
    --- a/packages/mermaid/src/tests/MockedD3.ts
    +++ b/packages/mermaid/src/tests/MockedD3.ts
    @@ -1,4 +1,4 @@
    -import type {} from '@vitest/spy';
    +import type {} from '@vitest/spy/dist/index';
     
     /**
      * This is a mocked/stubbed version of the d3 Selection type. Each of the main functions are all
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index f20f951672..dc4250983b 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -45,10 +45,10 @@ importers:
             version: 4.2.1
           '@typescript-eslint/eslint-plugin':
             specifier: ^5.48.2
    -        version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi
    +        version: 5.48.2_azmbqzqvrlvblbdtiwxwvyvjjy
           '@typescript-eslint/parser':
             specifier: ^5.48.2
    -        version: 5.48.2_yygwinqv3a2io74xmwofqb7uka
    +        version: 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
           '@vitest/coverage-c8':
             specifier: ^0.28.4
             version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki
    @@ -87,7 +87,7 @@ importers:
             version: 7.1.0
           eslint-plugin-jest:
             specifier: ^27.1.5
    -        version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4
    +        version: 27.1.5_i5clxtuiaceouxhg5syqkw5wwi
           eslint-plugin-jsdoc:
             specifier: ^39.6.2
             version: 39.6.2_eslint@8.32.0
    @@ -152,20 +152,20 @@ importers:
             specifier: ^5.8.3
             version: 5.8.3
           start-server-and-test:
    -        specifier: ^1.14.0
    -        version: 1.14.0
    +        specifier: ^1.15.4
    +        version: 1.15.4
           ts-node:
             specifier: ^10.9.1
    -        version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54
    +        version: 10.9.1_w6ufic3jqylcjznzspnj4wjqfe
           typescript:
             specifier: ^4.8.4
    -        version: 4.8.4
    +        version: 4.9.5
           vite:
    -        specifier: ^3.2.3
    -        version: 3.2.3_@types+node@18.11.9
    +        specifier: ^4.1.1
    +        version: 4.1.1_@types+node@18.11.9
           vitest:
    -        specifier: ^0.28.4
    -        version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki
    +        specifier: ^0.28.5
    +        version: 0.28.5_vun5xzxu3tkrssf3erdbijyyki
     
       packages/mermaid:
         dependencies:
    @@ -182,8 +182,8 @@ importers:
             specifier: ^2.1.0
             version: 2.1.0_cytoscape@3.23.0
           d3:
    -        specifier: ^7.0.0
    -        version: 7.6.1
    +        specifier: ^7.4.0
    +        version: 7.8.2
           dagre-d3-es:
             specifier: 7.0.8
             version: 7.0.8
    @@ -1260,11 +1260,11 @@ packages:
           '@types/node': 14.18.29
           chalk: 4.1.2
           cosmiconfig: 7.0.1
    -      cosmiconfig-typescript-loader: 4.1.0_nxlrwu45zhpwmwjzs33dzt3ak4
    +      cosmiconfig-typescript-loader: 4.1.0_2uclxasecupgvdn72amnhmyg7y
           lodash: 4.17.21
           resolve-from: 5.0.0
    -      ts-node: 10.9.1_sqjhzn5m3vxyw66a2xhtc43hby
    -      typescript: 4.8.4
    +      ts-node: 10.9.1_yxpazyh7n5pql7jdaglasgwqki
    +      typescript: 4.9.5
         transitivePeerDependencies:
           - '@swc/core'
           - '@swc/wasm'
    @@ -1760,15 +1760,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/android-arm/0.16.7:
    -    resolution: {integrity: sha512-yhzDbiVcmq6T1/XEvdcJIVcXHdLjDJ5cQ0Dp9R9p9ERMBTeO1dR5tc8YYv8zwDeBw1xZm+Eo3MRo8cwclhBS0g==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/android-arm/0.17.0:
         resolution: {integrity: sha512-hlbX5ym1V5kIKvnwFhm6rhar7MNqfJrZyYTNfk6+WS1uQfQmszFgXeyPH2beP3lSCumZyqX0zMBfOqftOpZ7GA==}
         engines: {node: '>=12'}
    @@ -1787,15 +1778,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/android-arm64/0.16.7:
    -    resolution: {integrity: sha512-tYFw0lBJSEvLoGzzYh1kXuzoX1iPkbOk3O29VqzQb0HbOy7t/yw1hGkvwoJhXHwzQUPsShyYcTgRf6bDBcfnTw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/android-arm64/0.17.0:
         resolution: {integrity: sha512-77GVyD7ToESy/7+9eI8z62GGBdS/hsqsrpM+JA4kascky86wHbN29EEFpkVvxajPL7k6mbLJ5VBQABdj7n9FhQ==}
         engines: {node: '>=12'}
    @@ -1814,15 +1796,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/android-x64/0.16.7:
    -    resolution: {integrity: sha512-3P2OuTxwAtM3k/yEWTNUJRjMPG1ce8rXs51GTtvEC5z1j8fC1plHeVVczdeHECU7aM2/Buc0MwZ6ciM/zysnWg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/android-x64/0.17.0:
         resolution: {integrity: sha512-TroxZdZhtAz0JyD0yahtjcbKuIXrBEAoAazaYSeR2e2tUtp9uXrcbpwFJF6oxxOiOOne6y7l4hx4YVnMW/tdFw==}
         engines: {node: '>=12'}
    @@ -1841,15 +1814,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/darwin-arm64/0.16.7:
    -    resolution: {integrity: sha512-VUb9GK23z8jkosHU9yJNUgQpsfJn+7ZyBm6adi2Ec5/U241eR1tAn82QicnUzaFDaffeixiHwikjmnec/YXEZg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/darwin-arm64/0.17.0:
         resolution: {integrity: sha512-wP/v4cgdWt1m8TS/WmbaBc3NZON10eCbm6XepdVc3zJuqruHCzCKcC9dTSTEk50zX04REcRcbIbdhTMciQoFIg==}
         engines: {node: '>=12'}
    @@ -1868,15 +1832,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/darwin-x64/0.16.7:
    -    resolution: {integrity: sha512-duterlv3tit3HI9vhzMWnSVaB1B6YsXpFq1Ntd6Fou82BB1l4tucYy3FI9dHv3tvtDuS0NiGf/k6XsdBqPZ01w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/darwin-x64/0.17.0:
         resolution: {integrity: sha512-R4WB6D6V9KGO/3LVTT8UlwRJO26IBFatOdo/bRXksfJR0vyOi2/lgmAAMBSpgcnnwvts9QsWiyM++mTTlwRseA==}
         engines: {node: '>=12'}
    @@ -1895,15 +1850,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/freebsd-arm64/0.16.7:
    -    resolution: {integrity: sha512-9kkycpBFes/vhi7B7o0cf+q2WdJi+EpVzpVTqtWFNiutARWDFFLcB93J8PR1cG228sucsl3B+7Ts27izE6qiaQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/freebsd-arm64/0.17.0:
         resolution: {integrity: sha512-FO7+UEZv79gen2df8StFYFHZPI9ADozpFepLZCxY+O8sYLDa1rirvenmLwJiOHmeQRJ5orYedFeLk1PFlZ6t8Q==}
         engines: {node: '>=12'}
    @@ -1922,15 +1868,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/freebsd-x64/0.16.7:
    -    resolution: {integrity: sha512-5Ahf6jzWXJ4J2uh9dpy5DKOO+PeRUE/9DMys6VuYfwgQzd6n5+pVFm58L2Z2gRe611RX6SdydnNaiIKM3svY7g==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/freebsd-x64/0.17.0:
         resolution: {integrity: sha512-qCsNRsVTaC3ekwZcb2sa7l1gwCtJK3EqCWyDgpoQocYf3lRpbAzaCvqZSF2+NOO64cV+JbedXPsFiXU1aaVcIg==}
         engines: {node: '>=12'}
    @@ -1949,15 +1886,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-arm/0.16.7:
    -    resolution: {integrity: sha512-QqJnyCfu5OF78Olt7JJSZ7OSv/B4Hf+ZJWp4kkq9xwMsgu7yWq3crIic8gGOpDYTqVKKMDAVDgRXy5Wd/nWZyQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-arm/0.17.0:
         resolution: {integrity: sha512-Y2G2NU6155gcfNKvrakVmZV5xUAEhXjsN/uKtbKKRnvee0mHUuaT3OdQJDJKjHVGr6B0898pc3slRpI1PqspoQ==}
         engines: {node: '>=12'}
    @@ -1976,15 +1904,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-arm64/0.16.7:
    -    resolution: {integrity: sha512-2wv0xYDskk2+MzIm/AEprDip39a23Chptc4mL7hsHg26P0gD8RUhzmDu0KCH2vMThUI1sChXXoK9uH0KYQKaDg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-arm64/0.17.0:
         resolution: {integrity: sha512-js4Vlch5XJQYISbDVJd2hsI/MsfVUz6d/FrclCE73WkQmniH37vFpuQI42ntWAeBghDIfaPZ6f9GilhwGzVFUg==}
         engines: {node: '>=12'}
    @@ -2003,15 +1922,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-ia32/0.16.7:
    -    resolution: {integrity: sha512-APVYbEilKbD5ptmKdnIcXej2/+GdV65TfTjxR2Uk8t1EsOk49t6HapZW6DS/Bwlvh5hDwtLapdSumIVNGxgqLg==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-ia32/0.17.0:
         resolution: {integrity: sha512-7tl/jSPkF59R3zeFDB2/09zLGhcM7DM+tCoOqjJbQjuL6qbMWomGT2RglCqRFpCSdzBx0hukmPPgUAMlmdj0sQ==}
         engines: {node: '>=12'}
    @@ -2039,15 +1949,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-loong64/0.16.7:
    -    resolution: {integrity: sha512-5wPUAGclplQrAW7EFr3F84Y/d++7G0KykohaF4p54+iNWhUnMVU8Bh2sxiEOXUy4zKIdpHByMgJ5/Ko6QhtTUw==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-loong64/0.17.0:
         resolution: {integrity: sha512-OG356F7dIVVF+EXJx5UfzFr1I5l6ES53GlMNSr3U1MhlaVyrP9um5PnrSJ+7TSDAzUC7YGjxb2GQWqHLd5XFoA==}
         engines: {node: '>=12'}
    @@ -2066,15 +1967,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-mips64el/0.16.7:
    -    resolution: {integrity: sha512-hxzlXtWF6yWfkE/SMTscNiVqLOAn7fOuIF3q/kiZaXxftz1DhZW/HpnTmTTWrzrS7zJWQxHHT4QSxyAj33COmA==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-mips64el/0.17.0:
         resolution: {integrity: sha512-LWQJgGpxrjh2x08UYf6G5R+Km7zhkpCvKXtFQ6SX0fimDvy1C8kslgFHGxLS0wjGV8C4BNnENW/HNy57+RB7iA==}
         engines: {node: '>=12'}
    @@ -2093,15 +1985,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-ppc64/0.16.7:
    -    resolution: {integrity: sha512-WM83Dac0LdXty5xPhlOuCD5Egfk1xLND/oRLYeB7Jb/tY4kzFSDgLlq91wYbHua/s03tQGA9iXvyjgymMw62Vw==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-ppc64/0.17.0:
         resolution: {integrity: sha512-f40N8fKiTQslUcUuhof2/syOQ+DC9Mqdnm9d063pew+Ptv9r6dBNLQCz4300MOfCLAbb0SdnrcMSzHbMehXWLw==}
         engines: {node: '>=12'}
    @@ -2120,15 +2003,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-riscv64/0.16.7:
    -    resolution: {integrity: sha512-3nkNnNg4Ax6MS/l8O8Ynq2lGEVJYyJ2EoY3PHjNJ4PuZ80EYLMrFTFZ4L/Hc16AxgtXKwmNP9TM0YKNiBzBiJQ==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-riscv64/0.17.0:
         resolution: {integrity: sha512-sc/pvLexRvxgEbmeq7LfLGnzUBFi/E2MGbnQj3CG8tnQ90tWPTi+9CbZEgIADhj6CAlCCmqxpUclIV1CRVUOTw==}
         engines: {node: '>=12'}
    @@ -2147,15 +2021,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-s390x/0.16.7:
    -    resolution: {integrity: sha512-3SA/2VJuv0o1uD7zuqxEP+RrAyRxnkGddq0bwHQ98v1KNlzXD/JvxwTO3T6GM5RH6JUd29RTVQTOJfyzMkkppA==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-s390x/0.17.0:
         resolution: {integrity: sha512-7xq9/kY0vunCL2vjHKdHGI+660pCdeEC6K6TWBVvbTGXvT8s/qacfxMgr8PCeQRbNUZLOA13G6/G1+c0lYXO1A==}
         engines: {node: '>=12'}
    @@ -2174,15 +2039,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-x64/0.16.7:
    -    resolution: {integrity: sha512-xi/tbqCqvPIzU+zJVyrpz12xqciTAPMi2fXEWGnapZymoGhuL2GIWIRXg4O2v5BXaYA5TSaiKYE14L0QhUTuQg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-x64/0.17.0:
         resolution: {integrity: sha512-o7FhBLONk1mLT2ytlj/j/WuJcPdhWcVpysSJn1s9+zRdLwLKveipbPi5SIasJIqMq0T4CkQW76pxJYMqz9HrQA==}
         engines: {node: '>=12'}
    @@ -2201,15 +2057,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/netbsd-x64/0.16.7:
    -    resolution: {integrity: sha512-NUsYbq3B+JdNKn8SXkItFvdes9qTwEoS3aLALtiWciW/ystiCKM20Fgv9XQBOXfhUHyh5CLEeZDXzLOrwBXuCQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/netbsd-x64/0.17.0:
         resolution: {integrity: sha512-V6xXsv71b8vwFCW/ky82Rs//SbyA+ORty6A7Mzkg33/4NbYZ/1Vcbk7qAN5oi0i/gS4Q0+7dYT7NqaiVZ7+Xjw==}
         engines: {node: '>=12'}
    @@ -2228,15 +2075,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/openbsd-x64/0.16.7:
    -    resolution: {integrity: sha512-qjwzsgeve9I8Tbsko2FEkdSk2iiezuNGFgipQxY/736NePXDaDZRodIejYGWOlbYXugdxb0nif5yvypH6lKBmA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/openbsd-x64/0.17.0:
         resolution: {integrity: sha512-StlQor6A0Y9SSDxraytr46Qbz25zsSDmsG3MCaNkBnABKHP3QsngOCfdBikqHVVrXeK0KOTmtX92/ncTGULYgQ==}
         engines: {node: '>=12'}
    @@ -2255,15 +2093,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/sunos-x64/0.16.7:
    -    resolution: {integrity: sha512-mFWDz4RoBTzPphTCkM7Kc7Qpa0o/Z01acajR+Ai7LdfKgcP/C6jYOaKwv7nKzD0+MjOT20j7You9g4ozYy1dKQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/sunos-x64/0.17.0:
         resolution: {integrity: sha512-K64Wqw57j8KrwjR3QjsuzN/qDGK6Cno6QYtIlWAmGab5iYPBZCWz7HFtF2a86/130LmUsdXqOID7J0SmjjRFIQ==}
         engines: {node: '>=12'}
    @@ -2282,15 +2111,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/win32-arm64/0.16.7:
    -    resolution: {integrity: sha512-m39UmX19RvEIuC8sYZ0M+eQtdXw4IePDSZ78ZQmYyFaXY9krq4YzQCK2XWIJomNLtg4q+W5aXr8bW3AbqWNoVg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/win32-arm64/0.17.0:
         resolution: {integrity: sha512-hly6iSWAf0hf3aHD18/qW7iFQbg9KAQ0RFGG9plcxkhL4uGw43O+lETGcSO/PylNleFowP/UztpF6U4oCYgpPw==}
         engines: {node: '>=12'}
    @@ -2309,15 +2129,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/win32-ia32/0.16.7:
    -    resolution: {integrity: sha512-1cbzSEZA1fANwmT6rjJ4G1qQXHxCxGIcNYFYR9ctI82/prT38lnwSRZ0i5p/MVXksw9eMlHlet6pGu2/qkXFCg==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/win32-ia32/0.17.0:
         resolution: {integrity: sha512-aL4EWPh0nyC5uYRfn+CHkTgawd4DjtmwquthNDmGf6Ht6+mUc+bQXyZNH1QIw8x20hSqFc4Tf36aLLWP/TPR3g==}
         engines: {node: '>=12'}
    @@ -2336,15 +2147,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/win32-x64/0.16.7:
    -    resolution: {integrity: sha512-QaQ8IH0JLacfGf5cf0HCCPnQuCTd/dAI257vXBgb/cccKGbH/6pVtI1gwhdAQ0Y48QSpTIFrh9etVyNdZY+zzw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/win32-x64/0.17.0:
         resolution: {integrity: sha512-W6IIQ9Rt43I/GqfXeBFLk0TvowKBoirs9sw2LPfhHax6ayMlW5PhFzSJ76I1ac9Pk/aRcSMrHWvVyZs8ZPK2wA==}
         engines: {node: '>=12'}
    @@ -2726,6 +2528,10 @@ packages:
         resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==}
         dev: true
     
    +  /@sideway/formula/3.0.1:
    +    resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
    +    dev: true
    +
       /@sideway/pinpoint/2.0.0:
         resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
         dev: true
    @@ -3373,7 +3179,7 @@ packages:
           - supports-color
         dev: true
     
    -  /@typescript-eslint/eslint-plugin/5.48.2_iljmjqxcygjq3saipl7gerxpvi:
    +  /@typescript-eslint/eslint-plugin/5.48.2_azmbqzqvrlvblbdtiwxwvyvjjy:
         resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         peerDependencies:
    @@ -3384,18 +3190,18 @@ packages:
           typescript:
             optional: true
         dependencies:
    -      '@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka
    +      '@typescript-eslint/parser': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
           '@typescript-eslint/scope-manager': 5.48.2
    -      '@typescript-eslint/type-utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka
    -      '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka
    +      '@typescript-eslint/type-utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
    +      '@typescript-eslint/utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
           debug: 4.3.4
           eslint: 8.32.0
           ignore: 5.2.0
           natural-compare-lite: 1.4.0
           regexpp: 3.2.0
           semver: 7.3.8
    -      tsutils: 3.21.0_typescript@4.8.4
    -      typescript: 4.8.4
    +      tsutils: 3.21.0_typescript@4.9.5
    +      typescript: 4.9.5
         transitivePeerDependencies:
           - supports-color
         dev: true
    @@ -3420,7 +3226,7 @@ packages:
           - supports-color
         dev: true
     
    -  /@typescript-eslint/parser/5.48.2_yygwinqv3a2io74xmwofqb7uka:
    +  /@typescript-eslint/parser/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm:
         resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         peerDependencies:
    @@ -3432,10 +3238,10 @@ packages:
         dependencies:
           '@typescript-eslint/scope-manager': 5.48.2
           '@typescript-eslint/types': 5.48.2
    -      '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4
    +      '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.5
           debug: 4.3.4
           eslint: 8.32.0
    -      typescript: 4.8.4
    +      typescript: 4.9.5
         transitivePeerDependencies:
           - supports-color
         dev: true
    @@ -3476,7 +3282,7 @@ packages:
           - supports-color
         dev: true
     
    -  /@typescript-eslint/type-utils/5.48.2_yygwinqv3a2io74xmwofqb7uka:
    +  /@typescript-eslint/type-utils/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm:
         resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         peerDependencies:
    @@ -3486,12 +3292,12 @@ packages:
           typescript:
             optional: true
         dependencies:
    -      '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4
    -      '@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka
    +      '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.5
    +      '@typescript-eslint/utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
           debug: 4.3.4
           eslint: 8.32.0
    -      tsutils: 3.21.0_typescript@4.8.4
    -      typescript: 4.8.4
    +      tsutils: 3.21.0_typescript@4.9.5
    +      typescript: 4.9.5
         transitivePeerDependencies:
           - supports-color
         dev: true
    @@ -3527,7 +3333,28 @@ packages:
           - supports-color
         dev: true
     
    -  /@typescript-eslint/typescript-estree/5.48.2_typescript@4.8.4:
    +  /@typescript-eslint/typescript-estree/5.42.1_typescript@4.9.5:
    +    resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      typescript: '*'
    +    peerDependenciesMeta:
    +      typescript:
    +        optional: true
    +    dependencies:
    +      '@typescript-eslint/types': 5.42.1
    +      '@typescript-eslint/visitor-keys': 5.42.1
    +      debug: 4.3.4
    +      globby: 11.1.0
    +      is-glob: 4.0.3
    +      semver: 7.3.8
    +      tsutils: 3.21.0_typescript@4.9.5
    +      typescript: 4.9.5
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
    +  /@typescript-eslint/typescript-estree/5.48.2_typescript@4.9.5:
         resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         peerDependencies:
    @@ -3542,12 +3369,32 @@ packages:
           globby: 11.1.0
           is-glob: 4.0.3
           semver: 7.3.8
    -      tsutils: 3.21.0_typescript@4.8.4
    -      typescript: 4.8.4
    +      tsutils: 3.21.0_typescript@4.9.5
    +      typescript: 4.9.5
         transitivePeerDependencies:
           - supports-color
         dev: true
     
    +  /@typescript-eslint/utils/5.42.1_et5x32uxl7z5ldub3ye5rhlyqm:
    +    resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
    +    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    +    peerDependencies:
    +      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
    +    dependencies:
    +      '@types/json-schema': 7.0.11
    +      '@types/semver': 7.3.12
    +      '@typescript-eslint/scope-manager': 5.42.1
    +      '@typescript-eslint/types': 5.42.1
    +      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.9.5
    +      eslint: 8.32.0
    +      eslint-scope: 5.1.1
    +      eslint-utils: 3.0.0_eslint@8.32.0
    +      semver: 7.3.8
    +    transitivePeerDependencies:
    +      - supports-color
    +      - typescript
    +    dev: true
    +
       /@typescript-eslint/utils/5.42.1_yygwinqv3a2io74xmwofqb7uka:
         resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    @@ -3568,7 +3415,7 @@ packages:
           - typescript
         dev: true
     
    -  /@typescript-eslint/utils/5.48.2_yygwinqv3a2io74xmwofqb7uka:
    +  /@typescript-eslint/utils/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm:
         resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==}
         engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
         peerDependencies:
    @@ -3578,7 +3425,7 @@ packages:
           '@types/semver': 7.3.12
           '@typescript-eslint/scope-manager': 5.48.2
           '@typescript-eslint/types': 5.48.2
    -      '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4
    +      '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.5
           eslint: 8.32.0
           eslint-scope: 5.1.1
           eslint-utils: 3.0.0_eslint@8.32.0
    @@ -3644,6 +3491,14 @@ packages:
           chai: 4.3.7
         dev: true
     
    +  /@vitest/expect/0.28.5:
    +    resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==}
    +    dependencies:
    +      '@vitest/spy': 0.28.5
    +      '@vitest/utils': 0.28.5
    +      chai: 4.3.7
    +    dev: true
    +
       /@vitest/runner/0.28.4:
         resolution: {integrity: sha512-Q8UV6GjDvBSTfUoq0QXVCNpNOUrWu4P2qvRq7ssJWzn0+S0ojbVOxEjMt+8a32X6SdkhF8ak+2nkppsqV0JyNQ==}
         dependencies:
    @@ -3652,12 +3507,26 @@ packages:
           pathe: 1.1.0
         dev: true
     
    +  /@vitest/runner/0.28.5:
    +    resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==}
    +    dependencies:
    +      '@vitest/utils': 0.28.5
    +      p-limit: 4.0.0
    +      pathe: 1.1.0
    +    dev: true
    +
       /@vitest/spy/0.28.4:
         resolution: {integrity: sha512-8WuhfXLlvCXpNXEGJW6Gc+IKWI32435fQJLh43u70HnZ1otJOa2Cmg2Wy2Aym47ZnNCP4NolF+8cUPwd0MigKQ==}
         dependencies:
           tinyspy: 1.0.2
         dev: true
     
    +  /@vitest/spy/0.28.5:
    +    resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==}
    +    dependencies:
    +      tinyspy: 1.0.2
    +    dev: true
    +
       /@vitest/ui/0.28.4:
         resolution: {integrity: sha512-LQfCCFc17n49mwtraV9/NAWl2DUqJS/9ZEa3fqJjoYO+HowdseQ5jvWflpzliCyfrIAh6cXVo1bNzHnDXe0cbw==}
         dependencies:
    @@ -3678,6 +3547,16 @@ packages:
           pretty-format: 27.5.1
         dev: true
     
    +  /@vitest/utils/0.28.5:
    +    resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==}
    +    dependencies:
    +      cli-truncate: 3.1.0
    +      diff: 5.1.0
    +      loupe: 2.3.6
    +      picocolors: 1.0.0
    +      pretty-format: 27.5.1
    +    dev: true
    +
       /@vue/compiler-core/3.2.45:
         resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==}
         dependencies:
    @@ -4257,6 +4136,10 @@ packages:
         resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
         dev: true
     
    +  /arg/5.0.2:
    +    resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
    +    dev: true
    +
       /argparse/1.0.10:
         resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
         dependencies:
    @@ -4354,6 +4237,15 @@ packages:
           - debug
         dev: true
     
    +  /axios/0.27.2_debug@4.3.4:
    +    resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
    +    dependencies:
    +      follow-redirects: 1.15.2_debug@4.3.2
    +      form-data: 4.0.0
    +    transitivePeerDependencies:
    +      - debug
    +    dev: true
    +
       /babel-jest/29.3.1_@babel+core@7.12.3:
         resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
    @@ -5103,7 +4995,7 @@ packages:
           layout-base: 2.0.1
         dev: false
     
    -  /cosmiconfig-typescript-loader/4.1.0_nxlrwu45zhpwmwjzs33dzt3ak4:
    +  /cosmiconfig-typescript-loader/4.1.0_2uclxasecupgvdn72amnhmyg7y:
         resolution: {integrity: sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==}
         engines: {node: '>=12', npm: '>=6'}
         peerDependencies:
    @@ -5114,8 +5006,8 @@ packages:
         dependencies:
           '@types/node': 14.18.29
           cosmiconfig: 7.0.1
    -      ts-node: 10.9.1_sqjhzn5m3vxyw66a2xhtc43hby
    -      typescript: 4.8.4
    +      ts-node: 10.9.1_yxpazyh7n5pql7jdaglasgwqki
    +      typescript: 4.9.5
         dev: true
     
       /cosmiconfig/7.0.1:
    @@ -5733,42 +5625,6 @@ packages:
           d3-transition: 3.0.1_d3-selection@3.0.0
         dev: false
     
    -  /d3/7.6.1:
    -    resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==}
    -    engines: {node: '>=12'}
    -    dependencies:
    -      d3-array: 3.2.0
    -      d3-axis: 3.0.0
    -      d3-brush: 3.0.0
    -      d3-chord: 3.0.1
    -      d3-color: 3.1.0
    -      d3-contour: 4.0.0
    -      d3-delaunay: 6.0.2
    -      d3-dispatch: 3.0.1
    -      d3-drag: 3.0.0
    -      d3-dsv: 3.0.1
    -      d3-ease: 3.0.1
    -      d3-fetch: 3.0.1
    -      d3-force: 3.0.0
    -      d3-format: 3.1.0
    -      d3-geo: 3.0.1
    -      d3-hierarchy: 3.1.2
    -      d3-interpolate: 3.0.1
    -      d3-path: 3.0.1
    -      d3-polygon: 3.0.1
    -      d3-quadtree: 3.0.1
    -      d3-random: 3.0.1
    -      d3-scale: 4.0.2
    -      d3-scale-chromatic: 3.0.0
    -      d3-selection: 3.0.0
    -      d3-shape: 3.1.0
    -      d3-time: 3.0.0
    -      d3-time-format: 4.1.0
    -      d3-timer: 3.0.1
    -      d3-transition: 3.0.1_d3-selection@3.0.0
    -      d3-zoom: 3.0.0
    -    dev: false
    -
       /d3/7.8.2:
         resolution: {integrity: sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ==}
         engines: {node: '>=12'}
    @@ -6454,36 +6310,6 @@ packages:
           '@esbuild/win32-x64': 0.16.17
         dev: true
     
    -  /esbuild/0.16.7:
    -    resolution: {integrity: sha512-P6OBFYFSQOGzfApqCeYKqfKRRbCIRsdppTXFo4aAvtiW3o8TTyiIplBvHJI171saPAiy3WlawJHCveJVIOIx1A==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -    requiresBuild: true
    -    optionalDependencies:
    -      '@esbuild/android-arm': 0.16.7
    -      '@esbuild/android-arm64': 0.16.7
    -      '@esbuild/android-x64': 0.16.7
    -      '@esbuild/darwin-arm64': 0.16.7
    -      '@esbuild/darwin-x64': 0.16.7
    -      '@esbuild/freebsd-arm64': 0.16.7
    -      '@esbuild/freebsd-x64': 0.16.7
    -      '@esbuild/linux-arm': 0.16.7
    -      '@esbuild/linux-arm64': 0.16.7
    -      '@esbuild/linux-ia32': 0.16.7
    -      '@esbuild/linux-loong64': 0.16.7
    -      '@esbuild/linux-mips64el': 0.16.7
    -      '@esbuild/linux-ppc64': 0.16.7
    -      '@esbuild/linux-riscv64': 0.16.7
    -      '@esbuild/linux-s390x': 0.16.7
    -      '@esbuild/linux-x64': 0.16.7
    -      '@esbuild/netbsd-x64': 0.16.7
    -      '@esbuild/openbsd-x64': 0.16.7
    -      '@esbuild/sunos-x64': 0.16.7
    -      '@esbuild/win32-arm64': 0.16.7
    -      '@esbuild/win32-ia32': 0.16.7
    -      '@esbuild/win32-x64': 0.16.7
    -    dev: true
    -
       /esbuild/0.17.0:
         resolution: {integrity: sha512-4yGk3rD95iS/wGzrx0Ji5czZcx1j2wvfF1iAJaX2FIYLB6sU6wYkDeplpZHzfwQw2yXGXsAoxmO6LnMQkl04Kg==}
         engines: {node: '>=12'}
    @@ -6605,7 +6431,7 @@ packages:
           htmlparser2: 8.0.1
         dev: true
     
    -  /eslint-plugin-jest/27.1.5_5rcd23qw3h5vuffwo2owxb3hw4:
    +  /eslint-plugin-jest/27.1.5_i5clxtuiaceouxhg5syqkw5wwi:
         resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==}
         engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
         peerDependencies:
    @@ -6618,8 +6444,8 @@ packages:
           jest:
             optional: true
         dependencies:
    -      '@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi
    -      '@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka
    +      '@typescript-eslint/eslint-plugin': 5.48.2_azmbqzqvrlvblbdtiwxwvyvjjy
    +      '@typescript-eslint/utils': 5.42.1_et5x32uxl7z5ldub3ye5rhlyqm
           eslint: 8.32.0
           jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi
         transitivePeerDependencies:
    @@ -8247,7 +8073,7 @@ packages:
           pretty-format: 29.3.1
           slash: 3.0.0
           strip-json-comments: 3.1.1
    -      ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54
    +      ts-node: 10.9.1_w6ufic3jqylcjznzspnj4wjqfe
         transitivePeerDependencies:
           - supports-color
         dev: true
    @@ -8624,6 +8450,16 @@ packages:
           '@sideway/pinpoint': 2.0.0
         dev: true
     
    +  /joi/17.7.1:
    +    resolution: {integrity: sha512-teoLhIvWE298R6AeJywcjR4sX2hHjB3/xJX4qPjg+gTg+c0mzUDsziYlqPmLomq9gVsfaMcgPaGc7VxtD/9StA==}
    +    dependencies:
    +      '@hapi/hoek': 9.3.0
    +      '@hapi/topo': 5.1.0
    +      '@sideway/address': 4.1.4
    +      '@sideway/formula': 3.0.1
    +      '@sideway/pinpoint': 2.0.0
    +    dev: true
    +
       /jpeg-js/0.4.4:
         resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==}
         dev: true
    @@ -9673,6 +9509,10 @@ packages:
         resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
         dev: true
     
    +  /minimist/1.2.8:
    +    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
    +    dev: true
    +
       /mkdirp/0.5.6:
         resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
         hasBin: true
    @@ -10840,14 +10680,6 @@ packages:
           fsevents: 2.3.2
         dev: true
     
    -  /rollup/3.7.4:
    -    resolution: {integrity: sha512-jN9rx3k5pfg9H9al0r0y1EYKSeiRANZRYX32SuNXAnKzh6cVyf4LZVto1KAuDnbHT03E1CpsgqDKaqQ8FZtgxw==}
    -    engines: {node: '>=14.18.0', npm: '>=8.0.0'}
    -    hasBin: true
    -    optionalDependencies:
    -      fsevents: 2.3.2
    -    dev: true
    -
       /run-parallel/1.2.0:
         resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
         dependencies:
    @@ -10864,6 +10696,12 @@ packages:
           tslib: 2.4.0
         dev: true
     
    +  /rxjs/7.8.0:
    +    resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
    +    dependencies:
    +      tslib: 2.4.0
    +    dev: true
    +
       /sade/1.8.1:
         resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
         engines: {node: '>=6'}
    @@ -11332,6 +11170,23 @@ packages:
           - supports-color
         dev: true
     
    +  /start-server-and-test/1.15.4:
    +    resolution: {integrity: sha512-ucQtp5+UCr0m4aHlY+aEV2JSYNTiMZKdSKK/bsIr6AlmwAWDYDnV7uGlWWEtWa7T4XvRI5cPYcPcQgeLqpz+Tg==}
    +    engines: {node: '>=6'}
    +    hasBin: true
    +    dependencies:
    +      arg: 5.0.2
    +      bluebird: 3.7.2
    +      check-more-types: 2.24.0
    +      debug: 4.3.4
    +      execa: 5.1.1
    +      lazy-ass: 1.6.0
    +      ps-tree: 1.2.0
    +      wait-on: 7.0.1_debug@4.3.4
    +    transitivePeerDependencies:
    +      - supports-color
    +    dev: true
    +
       /statuses/1.5.0:
         resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
         engines: {node: '>= 0.6'}
    @@ -11692,7 +11547,7 @@ packages:
         engines: {node: '>=6.10'}
         dev: false
     
    -  /ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54:
    +  /ts-node/10.9.1_w6ufic3jqylcjznzspnj4wjqfe:
         resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
         hasBin: true
         peerDependencies:
    @@ -11718,12 +11573,12 @@ packages:
           create-require: 1.1.1
           diff: 4.0.2
           make-error: 1.3.6
    -      typescript: 4.8.4
    +      typescript: 4.9.5
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
         dev: true
     
    -  /ts-node/10.9.1_sqjhzn5m3vxyw66a2xhtc43hby:
    +  /ts-node/10.9.1_yxpazyh7n5pql7jdaglasgwqki:
         resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
         hasBin: true
         peerDependencies:
    @@ -11749,7 +11604,7 @@ packages:
           create-require: 1.1.1
           diff: 4.0.2
           make-error: 1.3.6
    -      typescript: 4.8.4
    +      typescript: 4.9.5
           v8-compile-cache-lib: 3.0.1
           yn: 3.1.1
         dev: true
    @@ -11772,6 +11627,16 @@ packages:
           typescript: 4.8.4
         dev: true
     
    +  /tsutils/3.21.0_typescript@4.9.5:
    +    resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
    +    engines: {node: '>= 6'}
    +    peerDependencies:
    +      typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
    +    dependencies:
    +      tslib: 1.14.1
    +      typescript: 4.9.5
    +    dev: true
    +
       /tunnel-agent/0.6.0:
         resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
         dependencies:
    @@ -11874,6 +11739,12 @@ packages:
         hasBin: true
         dev: true
     
    +  /typescript/4.9.5:
    +    resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
    +    engines: {node: '>=4.2.0'}
    +    hasBin: true
    +    dev: true
    +
       /uc.micro/1.0.6:
         resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
         dev: true
    @@ -12095,7 +11966,7 @@ packages:
           picocolors: 1.0.0
           source-map: 0.6.1
           source-map-support: 0.5.21
    -      vite: 4.0.1_@types+node@18.11.9
    +      vite: 4.1.1_@types+node@18.11.9
         transitivePeerDependencies:
           - '@types/node'
           - less
    @@ -12106,42 +11977,31 @@ packages:
           - terser
         dev: true
     
    -  /vite/3.2.3_@types+node@18.11.9:
    -    resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==}
    -    engines: {node: ^14.18.0 || >=16.0.0}
    +  /vite-node/0.28.5_@types+node@18.11.9:
    +    resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==}
    +    engines: {node: '>=v14.16.0'}
         hasBin: true
    -    peerDependencies:
    -      '@types/node': '>= 14'
    -      less: '*'
    -      sass: '*'
    -      stylus: '*'
    -      sugarss: '*'
    -      terser: ^5.4.0
    -    peerDependenciesMeta:
    -      '@types/node':
    -        optional: true
    -      less:
    -        optional: true
    -      sass:
    -        optional: true
    -      stylus:
    -        optional: true
    -      sugarss:
    -        optional: true
    -      terser:
    -        optional: true
         dependencies:
    -      '@types/node': 18.11.9
    -      esbuild: 0.15.13
    -      postcss: 8.4.18
    -      resolve: 1.22.1
    -      rollup: 2.79.1
    -    optionalDependencies:
    -      fsevents: 2.3.2
    +      cac: 6.7.14
    +      debug: 4.3.4
    +      mlly: 1.1.0
    +      pathe: 1.1.0
    +      picocolors: 1.0.0
    +      source-map: 0.6.1
    +      source-map-support: 0.5.21
    +      vite: 4.1.1_@types+node@18.11.9
    +    transitivePeerDependencies:
    +      - '@types/node'
    +      - less
    +      - sass
    +      - stylus
    +      - sugarss
    +      - supports-color
    +      - terser
         dev: true
     
    -  /vite/4.0.1_@types+node@18.11.9:
    -    resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==}
    +  /vite/4.1.1:
    +    resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==}
         engines: {node: ^14.18.0 || >=16.0.0}
         hasBin: true
         peerDependencies:
    @@ -12165,16 +12025,15 @@ packages:
           terser:
             optional: true
         dependencies:
    -      '@types/node': 18.11.9
    -      esbuild: 0.16.7
    -      postcss: 8.4.20
    +      esbuild: 0.16.17
    +      postcss: 8.4.21
           resolve: 1.22.1
    -      rollup: 3.7.4
    +      rollup: 3.15.0
         optionalDependencies:
           fsevents: 2.3.2
         dev: true
     
    -  /vite/4.1.1:
    +  /vite/4.1.1_@types+node@18.11.9:
         resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==}
         engines: {node: ^14.18.0 || >=16.0.0}
         hasBin: true
    @@ -12199,6 +12058,7 @@ packages:
           terser:
             optional: true
         dependencies:
    +      '@types/node': 18.11.9
           esbuild: 0.16.17
           postcss: 8.4.21
           resolve: 1.22.1
    @@ -12295,7 +12155,7 @@ packages:
           tinybench: 2.3.1
           tinypool: 0.3.1
           tinyspy: 1.0.2
    -      vite: 4.0.1_@types+node@18.11.9
    +      vite: 4.1.1_@types+node@18.11.9
           vite-node: 0.28.4_@types+node@18.11.9
           why-is-node-running: 2.2.2
         transitivePeerDependencies:
    @@ -12307,6 +12167,63 @@ packages:
           - terser
         dev: true
     
    +  /vitest/0.28.5_vun5xzxu3tkrssf3erdbijyyki:
    +    resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==}
    +    engines: {node: '>=v14.16.0'}
    +    hasBin: true
    +    peerDependencies:
    +      '@edge-runtime/vm': '*'
    +      '@vitest/browser': '*'
    +      '@vitest/ui': '*'
    +      happy-dom: '*'
    +      jsdom: '*'
    +    peerDependenciesMeta:
    +      '@edge-runtime/vm':
    +        optional: true
    +      '@vitest/browser':
    +        optional: true
    +      '@vitest/ui':
    +        optional: true
    +      happy-dom:
    +        optional: true
    +      jsdom:
    +        optional: true
    +    dependencies:
    +      '@types/chai': 4.3.4
    +      '@types/chai-subset': 1.3.3
    +      '@types/node': 18.11.9
    +      '@vitest/expect': 0.28.5
    +      '@vitest/runner': 0.28.5
    +      '@vitest/spy': 0.28.5
    +      '@vitest/ui': 0.28.4
    +      '@vitest/utils': 0.28.5
    +      acorn: 8.8.1
    +      acorn-walk: 8.2.0
    +      cac: 6.7.14
    +      chai: 4.3.7
    +      debug: 4.3.4
    +      jsdom: 21.1.0
    +      local-pkg: 0.4.2
    +      pathe: 1.1.0
    +      picocolors: 1.0.0
    +      source-map: 0.6.1
    +      std-env: 3.3.2
    +      strip-literal: 1.0.0
    +      tinybench: 2.3.1
    +      tinypool: 0.3.1
    +      tinyspy: 1.0.2
    +      vite: 4.1.1_@types+node@18.11.9
    +      vite-node: 0.28.5_@types+node@18.11.9
    +      why-is-node-running: 2.2.2
    +    transitivePeerDependencies:
    +      - less
    +      - sass
    +      - stylus
    +      - sugarss
    +      - supports-color
    +      - terser
    +    dev: true
    +
       /vm2/3.9.11:
         resolution: {integrity: sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==}
         engines: {node: '>=6.0'}
    @@ -12418,6 +12335,20 @@ packages:
           - debug
         dev: true
     
    +  /wait-on/7.0.1_debug@4.3.4:
    +    resolution: {integrity: sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==}
    +    engines: {node: '>=12.0.0'}
    +    hasBin: true
    +    dependencies:
    +      axios: 0.27.2_debug@4.3.4
    +      joi: 17.7.1
    +      lodash: 4.17.21
    +      minimist: 1.2.8
    +      rxjs: 7.8.0
    +    transitivePeerDependencies:
    +      - debug
    +    dev: true
    +
       /walker/1.0.8:
         resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
         dependencies:
    diff --git a/tsconfig.json b/tsconfig.json
    index fe107f205c..c66d627845 100644
    --- a/tsconfig.json
    +++ b/tsconfig.json
    @@ -76,7 +76,7 @@
         // "isolatedModules": true,                          /* Ensure that each file can be safely transpiled without relying on other imports. */
         // "allowSyntheticDefaultImports": true,             /* Allow 'import x from y' when a module doesn't have a default export. */
         "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
    -    // "preserveSymlinks": true,                         /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
    +    "preserveSymlinks": true /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */,
         "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
     
         /* Type Checking */
    
    From 0f36bbf3e1fed1b7cbec9bffb5c189f654fc5153 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sat, 18 Feb 2023 23:45:45 +0530
    Subject: [PATCH 1026/1038] Revert #4034
    
    ---
     packages/mermaid/package.json                 |   2 +-
     .../mermaid/src/diagrams/gantt/ganttDb.js     |   2 +-
     .../src/diagrams/gantt/ganttDb.spec.ts        |   2 +-
     .../src/diagrams/gantt/ganttRenderer.js       |   2 +-
     pnpm-lock.yaml                                | 243 +-----------------
     5 files changed, 7 insertions(+), 244 deletions(-)
    
    diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
    index 977c16f18c..18ea3e428d 100644
    --- a/packages/mermaid/package.json
    +++ b/packages/mermaid/package.json
    @@ -62,7 +62,7 @@
         "elkjs": "^0.8.2",
         "khroma": "^2.0.0",
         "lodash-es": "^4.17.21",
    -    "moment": "^2.29.4",
    +    "moment-mini": "^2.29.4",
         "non-layered-tidy-tree-layout": "^2.0.2",
         "stylis": "^4.1.2",
         "ts-dedent": "^2.2.0",
    diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js
    index 273a02d586..a1c74dd62f 100644
    --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js
    +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js
    @@ -1,4 +1,4 @@
    -import moment from 'moment';
    +import moment from 'moment-mini';
     import { sanitizeUrl } from '@braintree/sanitize-url';
     import { log } from '../../logger';
     import * as configApi from '../../config';
    diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts
    index 2b0e9f435c..09df96f12f 100644
    --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts
    +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts
    @@ -1,5 +1,5 @@
     // @ts-nocheck TODO: Fix TS
    -import moment from 'moment';
    +import moment from 'moment-mini';
     import ganttDb from './ganttDb';
     import { convert } from '../../tests/util';
     
    diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js
    index 360322b68c..faec35a862 100644
    --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js
    +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js
    @@ -1,4 +1,4 @@
    -import moment from 'moment';
    +import moment from 'moment-mini';
     import { log } from '../../logger';
     import {
       select,
    diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
    index dc4250983b..68b78bd144 100644
    --- a/pnpm-lock.yaml
    +++ b/pnpm-lock.yaml
    @@ -199,7 +199,7 @@ importers:
           lodash-es:
             specifier: ^4.17.21
             version: 4.17.21
    -      moment:
    +      moment-mini:
             specifier: ^2.29.4
             version: 2.29.4
           non-layered-tidy-tree-layout:
    @@ -1742,15 +1742,6 @@ packages:
           jsdoc-type-pratt-parser: 3.1.0
         dev: true
     
    -  /@esbuild/android-arm/0.15.13:
    -    resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/android-arm/0.16.17:
         resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
         engines: {node: '>=12'}
    @@ -1931,15 +1922,6 @@ packages:
         dev: true
         optional: true
     
    -  /@esbuild/linux-loong64/0.15.13:
    -    resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==}
    -    engines: {node: '>=12'}
    -    cpu: [loong64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
       /@esbuild/linux-loong64/0.16.17:
         resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
         engines: {node: '>=12'}
    @@ -6070,216 +6052,6 @@ packages:
         resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
         dev: true
     
    -  /esbuild-android-64/0.15.13:
    -    resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-android-arm64/0.15.13:
    -    resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [android]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-darwin-64/0.15.13:
    -    resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-darwin-arm64/0.15.13:
    -    resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [darwin]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-freebsd-64/0.15.13:
    -    resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [freebsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-freebsd-arm64/0.15.13:
    -    resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [freebsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-32/0.15.13:
    -    resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-64/0.15.13:
    -    resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-arm/0.15.13:
    -    resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-arm64/0.15.13:
    -    resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-mips64le/0.15.13:
    -    resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==}
    -    engines: {node: '>=12'}
    -    cpu: [mips64el]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-ppc64le/0.15.13:
    -    resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==}
    -    engines: {node: '>=12'}
    -    cpu: [ppc64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-riscv64/0.15.13:
    -    resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==}
    -    engines: {node: '>=12'}
    -    cpu: [riscv64]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-linux-s390x/0.15.13:
    -    resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==}
    -    engines: {node: '>=12'}
    -    cpu: [s390x]
    -    os: [linux]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-netbsd-64/0.15.13:
    -    resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [netbsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-openbsd-64/0.15.13:
    -    resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [openbsd]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-sunos-64/0.15.13:
    -    resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [sunos]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-windows-32/0.15.13:
    -    resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==}
    -    engines: {node: '>=12'}
    -    cpu: [ia32]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-windows-64/0.15.13:
    -    resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==}
    -    engines: {node: '>=12'}
    -    cpu: [x64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild-windows-arm64/0.15.13:
    -    resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==}
    -    engines: {node: '>=12'}
    -    cpu: [arm64]
    -    os: [win32]
    -    requiresBuild: true
    -    dev: true
    -    optional: true
    -
    -  /esbuild/0.15.13:
    -    resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==}
    -    engines: {node: '>=12'}
    -    hasBin: true
    -    requiresBuild: true
    -    optionalDependencies:
    -      '@esbuild/android-arm': 0.15.13
    -      '@esbuild/linux-loong64': 0.15.13
    -      esbuild-android-64: 0.15.13
    -      esbuild-android-arm64: 0.15.13
    -      esbuild-darwin-64: 0.15.13
    -      esbuild-darwin-arm64: 0.15.13
    -      esbuild-freebsd-64: 0.15.13
    -      esbuild-freebsd-arm64: 0.15.13
    -      esbuild-linux-32: 0.15.13
    -      esbuild-linux-64: 0.15.13
    -      esbuild-linux-arm: 0.15.13
    -      esbuild-linux-arm64: 0.15.13
    -      esbuild-linux-mips64le: 0.15.13
    -      esbuild-linux-ppc64le: 0.15.13
    -      esbuild-linux-riscv64: 0.15.13
    -      esbuild-linux-s390x: 0.15.13
    -      esbuild-netbsd-64: 0.15.13
    -      esbuild-openbsd-64: 0.15.13
    -      esbuild-sunos-64: 0.15.13
    -      esbuild-windows-32: 0.15.13
    -      esbuild-windows-64: 0.15.13
    -      esbuild-windows-arm64: 0.15.13
    -    dev: true
    -
       /esbuild/0.16.17:
         resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==}
         engines: {node: '>=12'}
    @@ -9529,8 +9301,8 @@ packages:
           ufo: 1.0.1
         dev: true
     
    -  /moment/2.29.4:
    -    resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==}
    +  /moment-mini/2.29.4:
    +    resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==}
         dev: false
     
       /mri/1.2.0:
    @@ -10116,15 +9888,6 @@ packages:
         resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
         dev: true
     
    -  /postcss/8.4.18:
    -    resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==}
    -    engines: {node: ^10 || ^12 || >=14}
    -    dependencies:
    -      nanoid: 3.3.4
    -      picocolors: 1.0.0
    -      source-map-js: 1.0.2
    -    dev: true
    -
       /postcss/8.4.20:
         resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==}
         engines: {node: ^10 || ^12 || >=14}
    
    From bd98f1477f5c5fe1333c5e2dac2e2143a624b418 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sat, 18 Feb 2023 23:46:11 +0530
    Subject: [PATCH 1027/1038] Revert #4034
    
    ---
     packages/mermaid/src/logger.ts | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts
    index 8bd46d6dbd..b1c035e225 100644
    --- a/packages/mermaid/src/logger.ts
    +++ b/packages/mermaid/src/logger.ts
    @@ -2,7 +2,7 @@
     /* eslint-disable @typescript-eslint/no-unused-vars */
     /* eslint-disable @typescript-eslint/no-empty-function */
     /* eslint-disable no-console */
    -import moment from 'moment';
    +import moment from 'moment-mini';
     
     export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
     
    
    From ea8128e881e2e1beaba5af094c59be5e79a639d0 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sat, 18 Feb 2023 23:48:09 +0530
    Subject: [PATCH 1028/1038] RC version
    
    ---
     packages/mermaid/package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
    index 18ea3e428d..08b6a57acd 100644
    --- a/packages/mermaid/package.json
    +++ b/packages/mermaid/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "mermaid",
    -  "version": "9.4.0",
    +  "version": "9.4.2-rc.1",
       "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
       "main": "./dist/mermaid.min.js",
       "module": "./dist/mermaid.core.mjs",
    
    From 631ff8fb9e286285f9b510e7301b785d53087dcd Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 19 Feb 2023 00:37:11 +0530
    Subject: [PATCH 1029/1038] chore: Remove cjs from build
    
    ---
     .vite/build.ts                | 6 ------
     packages/mermaid/package.json | 5 ++---
     2 files changed, 2 insertions(+), 9 deletions(-)
    
    diff --git a/.vite/build.ts b/.vite/build.ts
    index e3c9471738..268db32702 100644
    --- a/.vite/build.ts
    +++ b/.vite/build.ts
    @@ -62,12 +62,6 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
           sourcemap: true,
           entryFileNames: `${name}.esm${minify ? '.min' : ''}.mjs`,
         },
    -    {
    -      name,
    -      format: 'umd',
    -      sourcemap: true,
    -      entryFileNames: `${name}${minify ? '.min' : ''}.js`,
    -    },
       ];
     
       if (core) {
    diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
    index e4480286ff..580b297da7 100644
    --- a/packages/mermaid/package.json
    +++ b/packages/mermaid/package.json
    @@ -1,13 +1,12 @@
     {
       "name": "mermaid",
    -  "version": "9.4.0",
    +  "version": "10.0.0-rc.1",
       "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
    -  "main": "./dist/mermaid.min.js",
       "module": "./dist/mermaid.core.mjs",
    +  "type": "module",
       "types": "./dist/mermaid.d.ts",
       "exports": {
         ".": {
    -      "require": "./dist/mermaid.min.js",
           "import": "./dist/mermaid.core.mjs",
           "types": "./dist/mermaid.d.ts"
         },
    
    From 45adc5fb6b64b1337b9212caa0b9f2c371df6b34 Mon Sep 17 00:00:00 2001
    From: Sidharth Vinod 
    Date: Sun, 19 Feb 2023 00:58:36 +0530
    Subject: [PATCH 1030/1038] Remove CJS builds from docs
    
    ---
     docs/intro/n00b-gettingStarted.md                      | 2 +-
     docs/syntax/mindmap.md                                 | 8 +-------
     docs/syntax/timeline.md                                | 4 +++-
     packages/mermaid/src/docs/intro/n00b-gettingStarted.md | 2 +-
     packages/mermaid/src/docs/syntax/mindmap.md            | 8 +-------
     packages/mermaid/src/docs/syntax/timeline.md           | 4 +++-
     6 files changed, 10 insertions(+), 18 deletions(-)
    
    diff --git a/docs/intro/n00b-gettingStarted.md b/docs/intro/n00b-gettingStarted.md
    index 40d98cb43a..87592ba278 100644
    --- a/docs/intro/n00b-gettingStarted.md
    +++ b/docs/intro/n00b-gettingStarted.md
    @@ -135,7 +135,7 @@ b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm
     ```
     
     **Notes**:
    -Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.min.js` for brevity. However, doing the opposite lets you control when it starts looking for `
    `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
    ` tags may have loaded on the execution of `mermaid.min.js` file. +Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.esm.min.mjs` for brevity. However, doing the opposite lets you control when it starts looking for `
    `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
    ` tags may have loaded on the execution of `mermaid.esm.min.mjs` file. `startOnLoad` is one of the parameters that can be defined by `mermaid.initialize()` diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 4fa953daf9..362fd85c7f 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -262,7 +262,7 @@ You can still use the pre 9.4.0 method to add mermaid with mindmaps to a web pag ```html @@ -276,12 +276,6 @@ From version 9.4.0 you can simplify this code to: ``` -or if you prefer not using the ESM package: - -```html - -``` - Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps. You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/docs/syntax/timeline.md b/docs/syntax/timeline.md index 6e3be305f0..1c7e6e0020 100644 --- a/docs/syntax/timeline.md +++ b/docs/syntax/timeline.md @@ -466,7 +466,9 @@ Timeline uses experimental lazy loading & async rendering features which could c You can use this method to add mermaid including the timeline diagram to a web page: ```html - + ``` Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render timeline. diff --git a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md index c347f2ef39..cfc16e707f 100644 --- a/packages/mermaid/src/docs/intro/n00b-gettingStarted.md +++ b/packages/mermaid/src/docs/intro/n00b-gettingStarted.md @@ -118,7 +118,7 @@ b. The importing of mermaid library through the `mermaid.esm.js` or `mermaid.esm ``` **Notes**: -Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.min.js` for brevity. However, doing the opposite lets you control when it starts looking for `
    `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
    ` tags may have loaded on the execution of `mermaid.min.js` file. +Rendering in Mermaid is initialized by `mermaid.initialize()` call. You can place `mermaid.initialize()` inside `mermaid.esm.min.mjs` for brevity. However, doing the opposite lets you control when it starts looking for `
    `tags inside the web page with `mermaid.initialize()`. This is useful when you think that not all `
    ` tags may have loaded on the execution of `mermaid.esm.min.mjs` file. `startOnLoad` is one of the parameters that can be defined by `mermaid.initialize()` diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md index cce7d2e3d4..968277334e 100644 --- a/packages/mermaid/src/docs/syntax/mindmap.md +++ b/packages/mermaid/src/docs/syntax/mindmap.md @@ -170,7 +170,7 @@ You can still use the pre 9.4.0 method to add mermaid with mindmaps to a web pag ```html @@ -184,12 +184,6 @@ From version 9.4.0 you can simplify this code to: ``` -or if you prefer not using the ESM package: - -```html - -``` - Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps. You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/packages/mermaid/src/docs/syntax/timeline.md b/packages/mermaid/src/docs/syntax/timeline.md index 94a485d229..bed8d8ef51 100644 --- a/packages/mermaid/src/docs/syntax/timeline.md +++ b/packages/mermaid/src/docs/syntax/timeline.md @@ -298,7 +298,9 @@ Timeline uses experimental lazy loading & async rendering features which could c You can use this method to add mermaid including the timeline diagram to a web page: ```html - + ``` Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render timeline. From d22e8d92c6e33ac659e198f0818cfc8112179fa0 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 01:10:15 +0530 Subject: [PATCH 1031/1038] chore: Remove all non async render/parse/init --- .../external-diagrams-example-diagram.html | 2 +- docs/config/setup/modules/mermaidAPI.md | 22 +- docs/syntax/mindmap.md | 2 - docs/syntax/timeline.md | 2 - packages/mermaid/src/__mocks__/mermaidAPI.ts | 1 - .../src/docs/.vitepress/theme/mermaid.ts | 2 +- packages/mermaid/src/docs/syntax/mindmap.md | 2 - packages/mermaid/src/docs/syntax/timeline.md | 2 - packages/mermaid/src/mermaid.spec.ts | 6 +- packages/mermaid/src/mermaid.ts | 126 +--------- packages/mermaid/src/mermaidAPI.spec.ts | 8 +- packages/mermaid/src/mermaidAPI.ts | 222 +----------------- tests/webpack/src/index.js | 2 +- 13 files changed, 32 insertions(+), 367 deletions(-) diff --git a/cypress/platform/external-diagrams-example-diagram.html b/cypress/platform/external-diagrams-example-diagram.html index 9d2cad778f..a1339d4e63 100644 --- a/cypress/platform/external-diagrams-example-diagram.html +++ b/cypress/platform/external-diagrams-example-diagram.html @@ -17,7 +17,7 @@

    Should correctly load a third-party diagram using registerDiagram

    await mermaid.registerExternalDiagrams([exampleDiagram]); await mermaid.initialize({ logLevel: 0 }); - await mermaid.initThrowsErrorsAsync(); + await mermaid.initThrowsErrors(); if (window.Cypress) { window.rendered = true; } diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index bd9833c5be..2cdeb597a0 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -26,7 +26,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) ### mermaidAPI -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `boolean` ; `parseAsync`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `string` ; `renderAsync`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> ## mermaidAPI configuration defaults @@ -90,7 +90,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:887](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L887) +[mermaidAPI.ts:671](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L671) ## Functions @@ -121,7 +121,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:288](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L288) +[mermaidAPI.ts:278](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L278) --- @@ -147,7 +147,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:239](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L239) +[mermaidAPI.ts:229](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L229) --- @@ -173,7 +173,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:168](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L168) +[mermaidAPI.ts:158](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L158) --- @@ -196,7 +196,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:216](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L216) +[mermaidAPI.ts:206](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L206) --- @@ -223,7 +223,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:152](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L152) +[mermaidAPI.ts:142](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L142) --- @@ -243,7 +243,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:132](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L132) +[mermaidAPI.ts:122](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L122) --- @@ -263,7 +263,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:103](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L103) +[mermaidAPI.ts:93](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L93) --- @@ -289,7 +289,7 @@ Put the svgCode into an iFrame. Return the iFrame code #### Defined in -[mermaidAPI.ts:267](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L267) +[mermaidAPI.ts:257](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L257) --- @@ -314,4 +314,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:338](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L338) +[mermaidAPI.ts:328](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L328) diff --git a/docs/syntax/mindmap.md b/docs/syntax/mindmap.md index 362fd85c7f..ad8aab77f4 100644 --- a/docs/syntax/mindmap.md +++ b/docs/syntax/mindmap.md @@ -276,6 +276,4 @@ From version 9.4.0 you can simplify this code to: ``` -Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps. - You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/docs/syntax/timeline.md b/docs/syntax/timeline.md index 1c7e6e0020..58b12313d4 100644 --- a/docs/syntax/timeline.md +++ b/docs/syntax/timeline.md @@ -471,6 +471,4 @@ You can use this method to add mermaid including the timeline diagram to a web p ``` -Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render timeline. - You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 12c1652bcf..50018bcadf 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -21,7 +21,6 @@ function parse(text: string, parseError?: ParseErrorFunction): boolean { // original version cannot be modified since it was frozen with `Object.freeze()` export const mermaidAPI = { render: vi.fn(), - renderAsync: vi.fn(), parse, parseDirective: vi.fn(), initialize: vi.fn(), diff --git a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts index 2234ef4980..c5b57f8865 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/mermaid.ts @@ -2,6 +2,6 @@ import mermaid, { type MermaidConfig } from 'mermaid'; export const render = async (id: string, code: string, config: MermaidConfig): Promise => { mermaid.initialize(config); - const svg = await mermaid.renderAsync(id, code); + const svg = await mermaid.render(id, code); return svg; }; diff --git a/packages/mermaid/src/docs/syntax/mindmap.md b/packages/mermaid/src/docs/syntax/mindmap.md index 968277334e..c8a2526919 100644 --- a/packages/mermaid/src/docs/syntax/mindmap.md +++ b/packages/mermaid/src/docs/syntax/mindmap.md @@ -184,6 +184,4 @@ From version 9.4.0 you can simplify this code to: ``` -Note that more complex integrations that use the **render** function directly need to use the **renderAsync** method instead in order to render mind maps. - You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/packages/mermaid/src/docs/syntax/timeline.md b/packages/mermaid/src/docs/syntax/timeline.md index bed8d8ef51..ef48d2b617 100644 --- a/packages/mermaid/src/docs/syntax/timeline.md +++ b/packages/mermaid/src/docs/syntax/timeline.md @@ -303,6 +303,4 @@ You can use this method to add mermaid including the timeline diagram to a web p ``` -Note that more complex integrations that the **render** function directly need to use the **renderAsync** method instead in order to render timeline. - You can also refer the implementation in the live editor [here](https://github.com/mermaid-js/mermaid-live-editor/blob/develop/src/lib/util/mermaid.ts) to see how the async loading is done. diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index aa797af0e5..f9709510e1 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -48,7 +48,7 @@ describe('when using mermaid and ', function () { const node = document.createElement('div'); node.appendChild(document.createTextNode('graph TD;\na;')); - mermaid.initThrowsErrors(undefined, node); + await mermaid.initThrowsErrors(undefined, node); // mermaidAPI.render function has been mocked, since it doesn't yet work // in Node.JS (only works in browser) expect(mermaidAPI.render).toHaveBeenCalled(); @@ -72,9 +72,9 @@ describe('when using mermaid and ', function () { ) ).rejects.toThrow('Failed to load 1 external diagrams'); - expect(() => mermaid.initThrowsErrorsAsync(undefined, node)).not.toThrow(); + expect(() => mermaid.initThrowsErrors(undefined, node)).not.toThrow(); // should still render, even if lazyLoadedDiagrams fails - expect(mermaidAPI.renderAsync).toHaveBeenCalled(); + expect(mermaidAPI.render).toHaveBeenCalled(); }); it('should defer diagram load based on parameter', async () => { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index be06c21679..540e0368ea 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -50,7 +50,7 @@ const init = async function ( callback?: Function ) { try { - await initThrowsErrorsAsync(config, nodes, callback); + await initThrowsErrors(config, nodes, callback); } catch (e) { log.warn('Syntax Error rendering'); if (isDetailedError(e)) { @@ -87,96 +87,6 @@ const handleError = (error: unknown, errors: DetailedError[], parseError?: Parse } }; -const initThrowsErrors = function ( - config?: MermaidConfig, - // eslint-disable-next-line no-undef - nodes?: string | HTMLElement | NodeListOf, - // eslint-disable-next-line @typescript-eslint/ban-types - callback?: Function -) { - const conf = mermaidAPI.getConfig(); - if (config) { - // This is a legacy way of setting config. It is not documented and should be removed in the future. - // @ts-ignore: TODO Fix ts errors - mermaid.sequenceConfig = config; - } - - // if last argument is a function this is the callback function - log.debug(`${!callback ? 'No ' : ''}Callback function found`); - let nodesToProcess: ArrayLike; - if (nodes === undefined) { - nodesToProcess = document.querySelectorAll('.mermaid'); - } else if (typeof nodes === 'string') { - nodesToProcess = document.querySelectorAll(nodes); - } else if (nodes instanceof HTMLElement) { - nodesToProcess = [nodes]; - } else if (nodes instanceof NodeList) { - nodesToProcess = nodes; - } else { - throw new Error('Invalid argument nodes for mermaid.init'); - } - - log.debug(`Found ${nodesToProcess.length} diagrams`); - if (config?.startOnLoad !== undefined) { - log.debug('Start On Load: ' + config?.startOnLoad); - mermaidAPI.updateSiteConfig({ startOnLoad: config?.startOnLoad }); - } - - // generate the id of the diagram - const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); - - let txt: string; - const errors: DetailedError[] = []; - - // element is the current div with mermaid class - // eslint-disable-next-line unicorn/prefer-spread - for (const element of Array.from(nodesToProcess)) { - log.info('Rendering diagram: ' + element.id); - /*! Check if previously processed */ - if (element.getAttribute('data-processed')) { - continue; - } - element.setAttribute('data-processed', 'true'); - - const id = `mermaid-${idGenerator.next()}`; - - // Fetch the graph definition including tags - txt = element.innerHTML; - - // transforms the html to pure text - txt = dedent(utils.entityDecode(txt)) // removes indentation, required for YAML parsing - .trim() - .replace(//gi, '
    '); - - const init = utils.detectInit(txt); - if (init) { - log.debug('Detected early reinit: ', init); - } - try { - mermaidAPI.render( - id, - txt, - (svgCode: string, bindFunctions?: (el: Element) => void) => { - element.innerHTML = svgCode; - if (callback !== undefined) { - callback(id); - } - if (bindFunctions) { - bindFunctions(element); - } - }, - element - ); - } catch (error) { - handleError(error, errors, mermaid.parseError); - } - } - if (errors.length > 0) { - // TODO: We should be throwing an error object. - throw errors[0]; - } -}; - /** * This is an internal function and should not be made public, as it will likely change. * @internal @@ -204,10 +114,6 @@ const loadExternalDiagrams = async (...diagrams: ExternalDiagramDefinition[]) => /** * Equivalent to {@link init}, except an error will be thrown on error. * - * @alpha - * @deprecated This is an internal function and will very likely be modified in v10, or earlier. - * We recommend staying with {@link initThrowsErrors} if you don't need `lazyLoadedDiagrams`. - * * @param config - **Deprecated** Mermaid sequenceConfig. * @param nodes - One of: * - A DOM Node @@ -216,7 +122,7 @@ const loadExternalDiagrams = async (...diagrams: ExternalDiagramDefinition[]) => * @param callback - Function that is called with the id of each generated mermaid diagram. * @returns Resolves on success, otherwise the {@link Promise} will be rejected. */ -const initThrowsErrorsAsync = async function ( +const initThrowsErrors = async function ( config?: MermaidConfig, nodes?: string | HTMLElement | NodeListOf, // eslint-disable-next-line @typescript-eslint/ban-types @@ -282,7 +188,7 @@ const initThrowsErrorsAsync = async function ( log.debug('Detected early reinit: ', init); } try { - await mermaidAPI.renderAsync( + await mermaidAPI.render( id, txt, (svgCode: string, bindFunctions?: (el: Element) => void) => { @@ -369,10 +275,6 @@ const setParseErrorHandler = function (newParseErrorHandler: (err: any, hash: an mermaid.parseError = newParseErrorHandler; }; -const parse = (txt: string) => { - return mermaidAPI.parse(txt, mermaid.parseError); -}; - const executionQueue: (() => Promise)[] = []; let executionQueueRunning = false; const executeQueue = async () => { @@ -395,15 +297,14 @@ const executeQueue = async () => { /** * @param txt - The mermaid code to be parsed. - * @deprecated This is an internal function and should not be used. Will be removed in v10. */ -const parseAsync = (txt: string): Promise => { +const parse = (txt: string): Promise => { return new Promise((resolve, reject) => { // This promise will resolve when the mermaidAPI.render call is done. // It will be queued first and will be executed when it is first in line const performCall = () => new Promise((res, rej) => { - mermaidAPI.parseAsync(txt, mermaid.parseError).then( + mermaidAPI.parse(txt, mermaid.parseError).then( (r) => { // This resolves for the promise for the queue handling res(r); @@ -422,10 +323,7 @@ const parseAsync = (txt: string): Promise => { }); }; -/** - * @deprecated This is an internal function and should not be used. Will be removed in v10. - */ -const renderAsync = ( +const render = ( id: string, text: string, cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, @@ -436,7 +334,7 @@ const renderAsync = ( // It will be queued first and will be executed when it is first in line const performCall = () => new Promise((res, rej) => { - mermaidAPI.renderAsync(id, text, cb, container).then( + mermaidAPI.render(id, text, cb, container).then( (r) => { // This resolves for the promise for the queue handling res(r); @@ -461,12 +359,9 @@ const mermaid: { parseError?: ParseErrorFunction; mermaidAPI: typeof mermaidAPI; parse: typeof parse; - parseAsync: typeof parseAsync; - render: typeof mermaidAPI.render; - renderAsync: typeof renderAsync; + render: typeof render; init: typeof init; initThrowsErrors: typeof initThrowsErrors; - initThrowsErrorsAsync: typeof initThrowsErrorsAsync; registerExternalDiagrams: typeof registerExternalDiagrams; initialize: typeof initialize; contentLoaded: typeof contentLoaded; @@ -476,12 +371,9 @@ const mermaid: { diagrams: {}, mermaidAPI, parse, - parseAsync, - render: mermaidAPI.render, - renderAsync, + render, init, initThrowsErrors, - initThrowsErrorsAsync, registerExternalDiagrams, initialize, parseError: undefined, diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index 67138435ef..e86b9b15fc 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -720,10 +720,10 @@ describe('mermaidAPI', function () { const diagramText = `${diagramType}\n accTitle: ${a11yTitle}\n accDescr: ${a11yDescr}\n`; const expectedDiagramType = testedDiagram.expectedType; - it('aria-roledscription is set to the diagram type, addSVGa11yTitleDescription is called', () => { + it('aria-roledscription is set to the diagram type, addSVGa11yTitleDescription is called', async () => { const a11yDiagramInfo_spy = vi.spyOn(accessibility, 'setA11yDiagramInfo'); const a11yTitleDesc_spy = vi.spyOn(accessibility, 'addSVGa11yTitleDescription'); - mermaidAPI.render(id, diagramText); + await mermaidAPI.render(id, diagramText); expect(a11yDiagramInfo_spy).toHaveBeenCalledWith( expect.anything(), expectedDiagramType @@ -735,7 +735,7 @@ describe('mermaidAPI', function () { }); }); - describe('renderAsync', () => { + describe('render', () => { // Be sure to add async before each test (anonymous) method // These are more like integration tests right now because nothing is mocked. @@ -775,7 +775,7 @@ describe('mermaidAPI', function () { it('aria-roledscription is set to the diagram type, addSVGa11yTitleDescription is called', async () => { const a11yDiagramInfo_spy = vi.spyOn(accessibility, 'setA11yDiagramInfo'); const a11yTitleDesc_spy = vi.spyOn(accessibility, 'addSVGa11yTitleDescription'); - await mermaidAPI.renderAsync(id, diagramText); + await mermaidAPI.render(id, diagramText); expect(a11yDiagramInfo_spy).toHaveBeenCalledWith( expect.anything(), expectedDiagramType diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 55a3055ebe..275ec656b6 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -80,17 +80,7 @@ export type D3Element = any; * @param text - The mermaid diagram definition. * @param parseError - If set, handles errors. */ -function parse(text: string, parseError?: ParseErrorFunction): boolean { - addDiagrams(); - const diagram = new Diagram(text, parseError); - return diagram.parse(text, parseError); -} - -/** - * @param text - The mermaid diagram definition. - * @param parseError - If set, handles errors. - */ -async function parseAsync(text: string, parseError?: ParseErrorFunction): Promise { +async function parse(text: string, parseError?: ParseErrorFunction): Promise { addDiagrams(); const diagram = await getDiagramFromText(text, parseError); return diagram.parse(text, parseError); @@ -375,214 +365,8 @@ export const removeExistingElements = ( * element will be removed when rendering is completed. * @returns Returns the rendered element as a string containing the SVG definition. */ -const render = function ( - id: string, - text: string, - cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, - svgContainingElement?: Element -): string { - addDiagrams(); - - configApi.reset(); - - // Add Directives. Must do this before getting the config and before creating the diagram. - const graphInit = utils.detectInit(text); - if (graphInit) { - directiveSanitizer(graphInit); - configApi.addDirective(graphInit); - } - - const config = configApi.getConfig(); - log.debug(config); - - // Check the maximum allowed text size - // TODO: Remove magic number - if (text.length > (config?.maxTextSize ?? 50000)) { - text = MAX_TEXTLENGTH_EXCEEDED_MSG; - } - - // clean up text CRLFs - text = text.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; - - const idSelector = '#' + id; - const iFrameID = 'i' + id; - const iFrameID_selector = '#' + iFrameID; - const enclosingDivID = 'd' + id; - const enclosingDivID_selector = '#' + enclosingDivID; - - let root: any = select('body'); - - const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX; - const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE; - - const fontFamily = config.fontFamily; - - // ------------------------------------------------------------------------------- - // Define the root d3 node - // In regular execution the svgContainingElement will be the element with a mermaid class - - if (svgContainingElement !== undefined) { - if (svgContainingElement) { - svgContainingElement.innerHTML = ''; - } - - if (isSandboxed) { - // If we are in sandboxed mode, we do everything mermaid related in a (sandboxed )iFrame - const iframe = sandboxedIframe(select(svgContainingElement), iFrameID); - root = select(iframe.nodes()[0]!.contentDocument!.body); - root.node().style.margin = 0; - } else { - root = select(svgContainingElement); - } - appendDivSvgG(root, id, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD); - } else { - // No svgContainingElement was provided - - // If there is an existing element with the id, we remove it. This likely a previously rendered diagram - removeExistingElements(document, id, enclosingDivID, iFrameID); - - // Add the temporary div used for rendering with the enclosingDivID. - // This temporary div will contain a svg with the id == id - - if (isSandboxed) { - // If we are in sandboxed mode, we do everything mermaid related in a (sandboxed) iFrame - const iframe = sandboxedIframe(select('body'), iFrameID); - root = select(iframe.nodes()[0]!.contentDocument!.body); - root.node().style.margin = 0; - } else { - root = select('body'); - } - - appendDivSvgG(root, id, enclosingDivID); - } - - text = encodeEntities(text); - - // ------------------------------------------------------------------------------- - // Create the diagram - - // Important that we do not create the diagram until after the directives have been included - let diag; - let parseEncounteredException; - - try { - // diag = new Diagram(text); - diag = getDiagramFromText(text); - if ('then' in diag) { - throw new Error('Diagram is a promise. Use renderAsync.'); - } - } catch (error) { - diag = new Diagram('error'); - parseEncounteredException = error; - } - - // Get the temporary div element containing the svg (the parent HTML Element) - const element = root.select(enclosingDivID_selector).node(); - const graphType = diag.type; - - // ------------------------------------------------------------------------------- - // Create and insert the styles (user styles, theme styles, config styles) - // These are dealing with HTML Elements, not d3 nodes. - - // Insert an element into svg. This is where we put the styles - const svg = element.firstChild; - const firstChild = svg.firstChild; - const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) - ? diag.renderer.getClasses(text, diag) - : {}; - - const rules = createUserStyles( - config, - graphType, - // @ts-ignore convert renderer to TS. - diagramClassDefs, - idSelector - ); - - // svg is a HTML element (not a d3 node) - const style1 = document.createElement('style'); - style1.innerHTML = rules; - svg.insertBefore(style1, firstChild); - - // ------------------------------------------------------------------------------- - // Draw the diagram with the renderer - try { - diag.renderer.draw(text, id, version, diag); - } catch (e) { - errorRenderer.draw(text, id, version); - throw e; - } - - // This is the d3 node for the svg element - const svgNode = root.select(`${enclosingDivID_selector} svg`); - const a11yTitle = diag.db.getAccTitle?.(); - const a11yDescr = diag.db.getAccDescription?.(); - addA11yInfo(graphType, svgNode, a11yTitle, a11yDescr); - - // ------------------------------------------------------------------------------- - // Clean up SVG code - root.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', XMLNS_XHTML_STD); - - // Fix for when the base tag is used - let svgCode = root.select(enclosingDivID_selector).node().innerHTML; - - log.debug('config.arrowMarkerAbsolute', config.arrowMarkerAbsolute); - svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute)); - - if (isSandboxed) { - const svgEl = root.select(enclosingDivID_selector + ' svg').node(); - svgCode = putIntoIFrame(svgCode, svgEl); - } else if (!isLooseSecurityLevel) { - // Sanitize the svgCode using DOMPurify - svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: DOMPURIFY_TAGS, - ADD_ATTR: DOMPURIFY_ATTR, - }); - } - - // ------------------------------------------------------------------------------- - // Do any callbacks (cb = callback) - if (cb !== undefined) { - switch (graphType) { - case 'flowchart': - case 'flowchart-v2': - cb(svgCode, flowDb.bindFunctions); - break; - case 'gantt': - cb(svgCode, ganttDb.bindFunctions); - break; - case 'class': - case 'classDiagram': - cb(svgCode, classDb.bindFunctions); - break; - default: - cb(svgCode); - } - } else { - log.debug('CB = undefined!'); - } - attachFunctions(); - - // ------------------------------------------------------------------------------- - // Remove the temporary element if appropriate - const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; - const node = select(tmpElementSelector).node(); - if (node && 'remove' in node) { - node.remove(); - } - - if (parseEncounteredException) { - throw parseEncounteredException; - } - - return svgCode; -}; - -/** - * @deprecated This is an internal function and should not be used. Will be removed in v10. - */ -const renderAsync = async function ( +const render = async function ( id: string, text: string, cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, @@ -886,9 +670,7 @@ function addA11yInfo( export const mermaidAPI = Object.freeze({ render, - renderAsync, parse, - parseAsync, parseDirective, initialize, getConfig: configApi.getConfig, diff --git a/tests/webpack/src/index.js b/tests/webpack/src/index.js index 0929726941..51738aa62c 100644 --- a/tests/webpack/src/index.js +++ b/tests/webpack/src/index.js @@ -4,7 +4,7 @@ const mermaid = require('mermaid'); import mindmap from '@mermaid-js/mermaid-mindmap'; const render = async (graph) => { - const svg = await mermaid.renderAsync('dummy', graph); + const svg = await mermaid.render('dummy', graph); console.log(svg); document.getElementById('graphDiv').innerHTML = svg; }; From eaa84d2d910f1817e9744c019ef18a0ee7b97526 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 13:08:13 +0530 Subject: [PATCH 1032/1038] feat: Break render and parse types Both render and parse are async now. Return type of render contains svg and bindFunctions. Parse will not throw error if parseOptions.silent is passed. --- V10-BreakingChanges.md | 22 ++++- .../interfaces/mermaidAPI.RenderResult.md | 78 ++++++++++++++++++ docs/config/setup/modules/mermaidAPI.md | 28 ++++--- packages/mermaid/src/Diagram.ts | 81 +++++-------------- .../mermaid/src/diagram-api/detectType.ts | 3 +- packages/mermaid/src/diagram-api/types.ts | 1 + .../src/diagrams/class/classRenderer-v2.js | 22 ----- .../src/diagrams/sequence/sequenceRenderer.ts | 5 +- packages/mermaid/src/errors.ts | 6 ++ packages/mermaid/src/mermaid.ts | 59 +++++++------- packages/mermaid/src/mermaidAPI.ts | 80 +++++++++--------- 11 files changed, 213 insertions(+), 172 deletions(-) create mode 100644 docs/config/setup/interfaces/mermaidAPI.RenderResult.md create mode 100644 packages/mermaid/src/errors.ts diff --git a/V10-BreakingChanges.md b/V10-BreakingChanges.md index bd9110d1a3..e3322a3a11 100644 --- a/V10-BreakingChanges.md +++ b/V10-BreakingChanges.md @@ -1,5 +1,25 @@ -# A collection of updates that change the behaviour +# A collection of updates that change the behavior + +## Async + +`init`, `parse`, `render` are now async. ## Lazy loading and asynchronisity - Invalid dates are rendered as syntax error instead of returning best guess or the current date + +## ParseError is removed + +```js +//< v10.0.0 +mermaid.parse(text, parseError); + +//>= v10.0.0 +await mermaid.parse(text).catch(parseError); +// or +try { + await mermaid.parse(text); +} catch (err) { + parseError(err); +} +``` diff --git a/docs/config/setup/interfaces/mermaidAPI.RenderResult.md b/docs/config/setup/interfaces/mermaidAPI.RenderResult.md new file mode 100644 index 0000000000..b95b0acff8 --- /dev/null +++ b/docs/config/setup/interfaces/mermaidAPI.RenderResult.md @@ -0,0 +1,78 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.RenderResult.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.RenderResult.md). + +# Interface: RenderResult + +[mermaidAPI](../modules/mermaidAPI.md).RenderResult + +Function that renders an svg with a graph from a chart definition. Usage example below. + +```javascript +mermaidAPI.initialize({ + startOnLoad: true, +}); +$(function () { + const graphDefinition = 'graph TB\na-->b'; + const cb = function (svgGraph) { + console.log(svgGraph); + }; + mermaidAPI.render('id1', graphDefinition, cb); +}); +``` + +**`Param`** + +The id for the SVG element (the element to be rendered) + +**`Param`** + +The text for the graph definition + +**`Param`** + +Callback which is called after rendering is finished with the svg code as in param. + +**`Param`** + +HTML element where the svg will be inserted. (Is usually element with the .mermaid class) +If no svgContainingElement is provided then the SVG element will be appended to the body. +Selector to element in which a div with the graph temporarily will be +inserted. If one is provided a hidden div will be inserted in the body of the page instead. The +element will be removed when rendering is completed. + +## Properties + +### bindFunctions + +• `Optional` **bindFunctions**: (`element`: `Element`) => `void` + +#### Type declaration + +▸ (`element`): `void` + +##### Parameters + +| Name | Type | +| :-------- | :-------- | +| `element` | `Element` | + +##### Returns + +`void` + +#### Defined in + +[mermaidAPI.ts:382](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L382) + +--- + +### svg + +• **svg**: `string` + +#### Defined in + +[mermaidAPI.ts:381](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L381) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 2cdeb597a0..f75dd85c71 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -6,6 +6,10 @@ # Module: mermaidAPI +## Interfaces + +- [RenderResult](../interfaces/mermaidAPI.RenderResult.md) + ## References ### default @@ -20,13 +24,13 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) #### Defined in -[mermaidAPI.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L75) +[mermaidAPI.ts:71](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L71) ## Variables ### mermaidAPI -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseError?`: `ParseErrorFunction`) => `Promise`<`boolean`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `cb?`: (`svgCode`: `string`, `bindFunctions?`: (`element`: `Element`) => `void`) => `void`, `svgContainingElement?`: `Element`) => `Promise`<`string`> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseOptions?`: { `silent?`: `boolean` }) => `Promise`<`boolean` | `void`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `svgContainingElement?`: `Element`) => `Promise`<[`RenderResult`](../interfaces/mermaidAPI.RenderResult.md)> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> ## mermaidAPI configuration defaults @@ -90,7 +94,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:671](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L671) +[mermaidAPI.ts:666](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L666) ## Functions @@ -121,7 +125,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:278](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L278) +[mermaidAPI.ts:289](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L289) --- @@ -147,7 +151,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:229](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L229) +[mermaidAPI.ts:240](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L240) --- @@ -173,7 +177,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:158](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L158) +[mermaidAPI.ts:169](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L169) --- @@ -196,7 +200,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:206](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L206) +[mermaidAPI.ts:217](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L217) --- @@ -223,7 +227,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:142](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L142) +[mermaidAPI.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L153) --- @@ -243,7 +247,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:122](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L122) +[mermaidAPI.ts:133](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L133) --- @@ -263,7 +267,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:93](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L93) +[mermaidAPI.ts:104](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L104) --- @@ -289,7 +293,7 @@ Put the svgCode into an iFrame. Return the iFrame code #### Defined in -[mermaidAPI.ts:257](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L257) +[mermaidAPI.ts:268](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L268) --- @@ -314,4 +318,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:328](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L328) +[mermaidAPI.ts:339](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L339) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 1f68e52ba7..3a0818854f 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -3,26 +3,24 @@ import { log } from './logger'; import { getDiagram, registerDiagram } from './diagram-api/diagramAPI'; import { detectType, getDiagramLoader } from './diagram-api/detectType'; import { extractFrontMatter } from './diagram-api/frontmatter'; -import { isDetailedError } from './utils'; -import type { DetailedError } from './utils'; +import { UnknownDiagramError } from './errors'; +import { DetailedError } from './utils'; export type ParseErrorFunction = (err: string | DetailedError | unknown, hash?: any) => void; - export class Diagram { type = 'graph'; parser; renderer; db; - private detectTypeFailed = false; - constructor(public txt: string, parseError?: ParseErrorFunction) { + private detectError?: UnknownDiagramError; + constructor(public text: string) { + this.text += '\n'; const cnf = configApi.getConfig(); - this.txt = txt; try { - this.type = detectType(txt, cnf); + this.type = detectType(text, cnf); } catch (e) { - this.handleError(e, parseError); this.type = 'error'; - this.detectTypeFailed = true; + this.detectError = e as UnknownDiagramError; } const diagram = getDiagram(this.type); log.debug('Type ' + this.type); @@ -46,44 +44,19 @@ export class Diagram { diagram.init(cnf); log.info('Initialized diagram ' + this.type, cnf); } - this.txt += '\n'; - - this.parse(this.txt, parseError); + this.parse(); } - parse(text: string, parseError?: ParseErrorFunction): boolean { - if (this.detectTypeFailed) { - return false; - } - try { - text = text + '\n'; - this.db.clear?.(); - this.parser.parse(text); - return true; - } catch (error) { - this.handleError(error, parseError); + parse() { + if (this.detectError) { + throw this.detectError; } - return false; + this.db.clear?.(); + this.parser.parse(this.text); } - handleError(error: unknown, parseError?: ParseErrorFunction) { - // Is this the correct way to access mermaid's parseError() - // method ? (or global.mermaid.parseError()) ? - - if (parseError === undefined) { - // No mermaid.parseError() handler defined, so re-throw it - throw error; - } - - if (isDetailedError(error)) { - // Handle case where error string and hash were - // wrapped in object like`const error = { str, hash };` - parseError(error.str, error.hash); - return; - } - - // Otherwise, assume it is just an error string and pass it on - parseError(error as string); + async render(id: string, version: string) { + await this.renderer.draw(this.text, id, version, this); } getParser() { @@ -95,10 +68,7 @@ export class Diagram { } } -export const getDiagramFromText = ( - txt: string, - parseError?: ParseErrorFunction -): Diagram | Promise => { +export const getDiagramFromText = async (txt: string): Promise => { const type = detectType(txt, configApi.getConfig()); try { // Trying to find the diagram @@ -106,19 +76,12 @@ export const getDiagramFromText = ( } catch (error) { const loader = getDiagramLoader(type); if (!loader) { - throw new Error(`Diagram ${type} not found.`); + throw new UnknownDiagramError(`Diagram ${type} not found.`); } - // TODO: Uncomment for v10 - // // Diagram not available, loading it - // const { diagram } = await loader(); - // registerDiagram(type, diagram, undefined, diagram.injectUtils); - // // new diagram will try getDiagram again and if fails then it is a valid throw - return loader().then(({ diagram }) => { - registerDiagram(type, diagram, undefined); - return new Diagram(txt, parseError); - }); + // Diagram not available, loading it + // new diagram will try getDiagram again and if fails then it is a valid throw + const { id, diagram } = await loader(); + registerDiagram(id, diagram); } - return new Diagram(txt, parseError); + return new Diagram(txt); }; - -export default Diagram; diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts index b75e914fb9..3c9237e5be 100644 --- a/packages/mermaid/src/diagram-api/detectType.ts +++ b/packages/mermaid/src/diagram-api/detectType.ts @@ -7,6 +7,7 @@ import type { ExternalDiagramDefinition, } from './types'; import { frontMatterRegex } from './frontmatter'; +import { UnknownDiagramError } from '../errors'; const directive = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; const anyComment = /\s*%%.*\n/gm; @@ -44,7 +45,7 @@ export const detectType = function (text: string, config?: MermaidConfig): strin } } - throw new Error(`No diagram type detected for text: ${text}`); + throw new UnknownDiagramError(`No diagram type detected for text: ${text}`); }; export const registerLazyLoadedDiagrams = (...diagrams: ExternalDiagramDefinition[]) => { diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts index d600195770..0811365638 100644 --- a/packages/mermaid/src/diagram-api/types.ts +++ b/packages/mermaid/src/diagram-api/types.ts @@ -18,6 +18,7 @@ export interface DiagramDb { setDiagramTitle?: (title: string) => void; getAccTitle?: () => string; getAccDescription?: () => string; + bindFunctions?: (element: Element) => void; } export interface DiagramDefinition { diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.js b/packages/mermaid/src/diagrams/class/classRenderer-v2.js index d95c29fd5f..b7e538583f 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.js +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.js @@ -348,19 +348,6 @@ export const setConf = function (cnf) { */ export const draw = function (text, id, _version, diagObj) { log.info('Drawing class - ', id); - // diagObj.db.clear(); - // const parser = diagObj.db.parser; - // parser.yy = classDb; - - // Parse the graph definition - // try { - // parser.parse(text); - // } catch (err) { - // log.debug('Parsing failed'); - // } - - // Fetch the default direction, use TD if none was found - //let dir = 'TD'; const conf = getConfig().flowchart; const securityLevel = getConfig().securityLevel; @@ -384,15 +371,6 @@ export const draw = function (text, id, _version, diagObj) { return {}; }); - // let subG; - // const subGraphs = flowDb.getSubGraphs(); - // log.info('Subgraphs - ', subGraphs); - // for (let i = subGraphs.length - 1; i >= 0; i--) { - // subG = subGraphs[i]; - // log.info('Subgraph - ', subG); - // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes); - // } - // Fetch the vertices/nodes and edges/links from the parsed graph definition const classes = diagObj.db.getClasses(); const relations = diagObj.db.getRelations(); diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index e4ce05350c..acee7bbe52 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -2,15 +2,12 @@ import { select, selectAll } from 'd3'; import svgDraw, { drawText, fixLifeLineHeights } from './svgDraw'; import { log } from '../../logger'; -// import { parser } from './parser/sequenceDiagram'; import common from '../common/common'; -// import sequenceDb from './sequenceDb'; import * as configApi from '../../config'; import assignWithDepth from '../../assignWithDepth'; import utils from '../../utils'; import { configureSvgSize } from '../../setupGraphViewbox'; -import Diagram from '../../Diagram'; -import { convert } from '../../tests/util'; +import { Diagram } from '../../Diagram'; let conf = {}; diff --git a/packages/mermaid/src/errors.ts b/packages/mermaid/src/errors.ts new file mode 100644 index 0000000000..e3650c5a98 --- /dev/null +++ b/packages/mermaid/src/errors.ts @@ -0,0 +1,6 @@ +export class UnknownDiagramError extends Error { + constructor(message: string) { + super(message); + this.name = 'UnknownDiagramError'; + } +} diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 540e0368ea..c4499bbc32 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -7,7 +7,7 @@ import dedent from 'ts-dedent'; import { MermaidConfig } from './config.type'; import { log } from './logger'; import utils from './utils'; -import { mermaidAPI } from './mermaidAPI'; +import { mermaidAPI, RenderResult } from './mermaidAPI'; import { registerLazyLoadedDiagrams } from './diagram-api/detectType'; import type { ParseErrorFunction } from './Diagram'; import { isDetailedError } from './utils'; @@ -44,10 +44,8 @@ export type { MermaidConfig, DetailedError, ExternalDiagramDefinition, ParseErro */ const init = async function ( config?: MermaidConfig, - // eslint-disable-next-line no-undef nodes?: string | HTMLElement | NodeListOf, - // eslint-disable-next-line @typescript-eslint/ban-types - callback?: Function + callback?: (id: string) => unknown ) { try { await initThrowsErrors(config, nodes, callback); @@ -125,8 +123,7 @@ const loadExternalDiagrams = async (...diagrams: ExternalDiagramDefinition[]) => const initThrowsErrors = async function ( config?: MermaidConfig, nodes?: string | HTMLElement | NodeListOf, - // eslint-disable-next-line @typescript-eslint/ban-types - callback?: Function + callback?: (id: string) => unknown ) { const conf = mermaidAPI.getConfig(); @@ -188,20 +185,14 @@ const initThrowsErrors = async function ( log.debug('Detected early reinit: ', init); } try { - await mermaidAPI.render( - id, - txt, - (svgCode: string, bindFunctions?: (el: Element) => void) => { - element.innerHTML = svgCode; - if (callback !== undefined) { - callback(id); - } - if (bindFunctions) { - bindFunctions(element); - } - }, - element - ); + const { svg, bindFunctions } = await mermaidAPI.render(id, txt, element); + element.innerHTML = svg; + if (callback) { + callback(id); + } + if (bindFunctions) { + bindFunctions(element); + } } catch (error) { handleError(error, errors, mermaid.parseError); } @@ -296,15 +287,24 @@ const executeQueue = async () => { }; /** - * @param txt - The mermaid code to be parsed. + * Parse the text and validate the syntax. + * @param text - The mermaid diagram definition. + * @param parseOptions - Options for parsing. + * @returns true if the diagram is valid, false otherwise if parseOptions.silent is true. + * @throws Error if the diagram is invalid and parseOptions.silent is false. */ -const parse = (txt: string): Promise => { +const parse = async ( + text: string, + parseOptions?: { + silent?: boolean; + } +): Promise => { return new Promise((resolve, reject) => { // This promise will resolve when the mermaidAPI.render call is done. // It will be queued first and will be executed when it is first in line const performCall = () => new Promise((res, rej) => { - mermaidAPI.parse(txt, mermaid.parseError).then( + mermaidAPI.parse(text, parseOptions).then( (r) => { // This resolves for the promise for the queue handling res(r); @@ -313,6 +313,7 @@ const parse = (txt: string): Promise => { }, (e) => { log.error('Error parsing', e); + mermaid.parseError?.(e); rej(e); reject(e); } @@ -323,18 +324,13 @@ const parse = (txt: string): Promise => { }); }; -const render = ( - id: string, - text: string, - cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, - container?: Element -): Promise => { +const render = (id: string, text: string, container?: Element): Promise => { return new Promise((resolve, reject) => { // This promise will resolve when the mermaidAPI.render call is done. // It will be queued first and will be executed when it is first in line const performCall = () => new Promise((res, rej) => { - mermaidAPI.render(id, text, cb, container).then( + mermaidAPI.render(id, text, container).then( (r) => { // This resolves for the promise for the queue handling res(r); @@ -343,6 +339,7 @@ const render = ( }, (e) => { log.error('Error parsing', e); + mermaid.parseError?.(e); rej(e); reject(e); } @@ -355,7 +352,6 @@ const render = ( const mermaid: { startOnLoad: boolean; - diagrams: any; parseError?: ParseErrorFunction; mermaidAPI: typeof mermaidAPI; parse: typeof parse; @@ -368,7 +364,6 @@ const mermaid: { setParseErrorHandler: typeof setParseErrorHandler; } = { startOnLoad: true, - diagrams: {}, mermaidAPI, parse, render, diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 275ec656b6..5a71bb08e2 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -17,11 +17,7 @@ import { compile, serialize, stringify } from 'stylis'; import { version } from '../package.json'; import * as configApi from './config'; import { addDiagrams } from './diagram-api/diagram-orchestration'; -import classDb from './diagrams/class/classDb'; -import flowDb from './diagrams/flowchart/flowDb'; -import ganttDb from './diagrams/gantt/ganttDb'; -import Diagram, { getDiagramFromText } from './Diagram'; -import type { ParseErrorFunction } from './Diagram'; +import { Diagram, getDiagramFromText } from './Diagram'; import errorRenderer from './diagrams/error/errorRenderer'; import { attachFunctions } from './interactionDb'; import { log, setLogLevel } from './logger'; @@ -37,7 +33,7 @@ import { parseDirective } from './directiveUtils'; // diagram names that support classDef statements const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram', 'stateDiagram-v2']; - +const MAX_TEXTLENGTH = 50_000; const MAX_TEXTLENGTH_EXCEEDED_MSG = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; @@ -74,16 +70,34 @@ interface DiagramStyleClassDef { // @ts-ignore Could replicate the type definition in d3. This also makes it possible to use the untyped info from the js diagram files. export type D3Element = any; -// ---------------------------------------------------------------------------- - /** + * Parse the text and validate the syntax. * @param text - The mermaid diagram definition. - * @param parseError - If set, handles errors. + * @param parseOptions - Options for parsing. + * @returns true if the diagram is valid, false otherwise if parseOptions.silent is true. + * @throws Error if the diagram is invalid and parseOptions.silent is false. */ -async function parse(text: string, parseError?: ParseErrorFunction): Promise { + +async function parse( + text: string, + parseOptions?: { + silent?: boolean; + } +): Promise { addDiagrams(); - const diagram = await getDiagramFromText(text, parseError); - return diagram.parse(text, parseError); + let error; + try { + const diagram = await getDiagramFromText(text); + diagram.parse(); + } catch (err) { + error = err; + } + if (parseOptions?.silent) { + return error === undefined; + } + if (error) { + throw error; + } } /** @@ -366,12 +380,16 @@ export const removeExistingElements = ( * @returns Returns the rendered element as a string containing the SVG definition. */ +export interface RenderResult { + svg: string; + bindFunctions?: (element: Element) => void; +} + const render = async function ( id: string, text: string, - cb?: (svgCode: string, bindFunctions?: (element: Element) => void) => void, svgContainingElement?: Element -): Promise { +): Promise { addDiagrams(); configApi.reset(); @@ -387,8 +405,7 @@ const render = async function ( log.debug(config); // Check the maximum allowed text size - // TODO: Remove magic number - if (text.length > (config?.maxTextSize ?? 50000)) { + if (text.length > (config?.maxTextSize ?? MAX_TEXTLENGTH)) { text = MAX_TEXTLENGTH_EXCEEDED_MSG; } @@ -453,11 +470,10 @@ const render = async function ( // Create the diagram // Important that we do not create the diagram until after the directives have been included - let diag; + let diag: Diagram; let parseEncounteredException; try { - // diag = new Diagram(text); diag = await getDiagramFromText(text); } catch (error) { diag = new Diagram('error'); @@ -510,7 +526,7 @@ const render = async function ( root.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', XMLNS_XHTML_STD); // Fix for when the base tag is used - let svgCode = root.select(enclosingDivID_selector).node().innerHTML; + let svgCode: string = root.select(enclosingDivID_selector).node().innerHTML; log.debug('config.arrowMarkerAbsolute', config.arrowMarkerAbsolute); svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute)); @@ -526,27 +542,6 @@ const render = async function ( }); } - // ------------------------------------------------------------------------------- - // Do any callbacks (cb = callback) - if (cb !== undefined) { - switch (graphType) { - case 'flowchart': - case 'flowchart-v2': - cb(svgCode, flowDb.bindFunctions); - break; - case 'gantt': - cb(svgCode, ganttDb.bindFunctions); - break; - case 'class': - case 'classDiagram': - cb(svgCode, classDb.bindFunctions); - break; - default: - cb(svgCode); - } - } else { - log.debug('CB = undefined!'); - } attachFunctions(); // ------------------------------------------------------------------------------- @@ -561,7 +556,10 @@ const render = async function ( throw parseEncounteredException; } - return svgCode; + return { + svg: svgCode, + bindFunctions: diag.db.bindFunctions, + }; }; /** From d2927435ab18ee172a544ad648fc49812ad84289 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 13:09:31 +0530 Subject: [PATCH 1033/1038] Fix tests --- packages/mermaid/src/__mocks__/mermaidAPI.ts | 19 +- packages/mermaid/src/diagram.spec.ts | 31 +- .../flowchart/flowRenderer.addEdges.spec.js | 2 +- .../diagrams/sequence/sequenceDiagram.spec.js | 350 +++++++++--------- packages/mermaid/src/mermaid.spec.ts | 47 +-- packages/mermaid/src/mermaidAPI.spec.ts | 81 ++-- 6 files changed, 269 insertions(+), 261 deletions(-) diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 50018bcadf..95b87d990d 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -5,23 +5,14 @@ */ import * as configApi from '../config'; import { vi } from 'vitest'; -import { addDiagrams } from '../diagram-api/diagram-orchestration'; -import Diagram, { type ParseErrorFunction } from '../Diagram'; - -// Normally, we could just do the following to get the original `parse()` -// implementation, however, requireActual returns a promise and it's not documented how to use withing mock file. - -/** {@inheritDoc mermaidAPI.parse} */ -function parse(text: string, parseError?: ParseErrorFunction): boolean { - addDiagrams(); - const diagram = new Diagram(text, parseError); - return diagram.parse(text, parseError); -} +import { mermaidAPI as mAPI } from '../mermaidAPI'; // original version cannot be modified since it was frozen with `Object.freeze()` export const mermaidAPI = { - render: vi.fn(), - parse, + render: vi.fn().mockResolvedValue({ + svg: '', + }), + parse: mAPI.parse, parseDirective: vi.fn(), initialize: vi.fn(), getConfig: configApi.getConfig, diff --git a/packages/mermaid/src/diagram.spec.ts b/packages/mermaid/src/diagram.spec.ts index ebe088a868..a862c79361 100644 --- a/packages/mermaid/src/diagram.spec.ts +++ b/packages/mermaid/src/diagram.spec.ts @@ -1,18 +1,18 @@ import { describe, test, expect } from 'vitest'; -import Diagram, { getDiagramFromText } from './Diagram'; +import { Diagram, getDiagramFromText } from './Diagram'; import { addDetector } from './diagram-api/detectType'; import { addDiagrams } from './diagram-api/diagram-orchestration'; addDiagrams(); describe('diagram detection', () => { - test('should detect inbuilt diagrams', () => { - const graph = getDiagramFromText('graph TD; A-->B') as Diagram; + test('should detect inbuilt diagrams', async () => { + const graph = (await getDiagramFromText('graph TD; A-->B')) as Diagram; expect(graph).toBeInstanceOf(Diagram); expect(graph.type).toBe('flowchart-v2'); - const sequence = getDiagramFromText( + const sequence = (await getDiagramFromText( 'sequenceDiagram; Alice->>+John: Hello John, how are you?' - ) as Diagram; + )) as Diagram; expect(sequence).toBeInstanceOf(Diagram); expect(sequence.type).toBe('sequence'); }); @@ -44,14 +44,15 @@ describe('diagram detection', () => { expect(diagram.type).toBe('loki'); }); - test('should throw the right error for incorrect diagram', () => { - expect(() => getDiagramFromText('graph TD; A-->')).toThrowErrorMatchingInlineSnapshot(` -"Parse error on line 3: -graph TD; A--> ---------------^ -Expecting 'AMP', 'ALPHA', 'COLON', 'PIPE', 'TESTSTR', 'DOWN', 'DEFAULT', 'NUM', 'COMMA', 'MINUS', 'BRKT', 'DOT', 'PUNCTUATION', 'UNICODE_TEXT', 'PLUS', 'EQUALS', 'MULT', 'UNDERSCORE', got 'EOF'" - `); - expect(() => getDiagramFromText('sequenceDiagram; A-->B')).toThrowErrorMatchingInlineSnapshot(` + test('should throw the right error for incorrect diagram', async () => { + await expect(getDiagramFromText('graph TD; A-->')).rejects.toThrowErrorMatchingInlineSnapshot(` + "Parse error on line 2: + graph TD; A--> + --------------^ + Expecting 'AMP', 'ALPHA', 'COLON', 'PIPE', 'TESTSTR', 'DOWN', 'DEFAULT', 'NUM', 'COMMA', 'MINUS', 'BRKT', 'DOT', 'PUNCTUATION', 'UNICODE_TEXT', 'PLUS', 'EQUALS', 'MULT', 'UNDERSCORE', got 'EOF'" + `); + await expect(getDiagramFromText('sequenceDiagram; A-->B')).rejects + .toThrowErrorMatchingInlineSnapshot(` "Parse error on line 1: ...quenceDiagram; A-->B -----------------------^ @@ -59,8 +60,8 @@ Expecting 'TXT', got 'NEWLINE'" `); }); - test('should throw the right error for unregistered diagrams', () => { - expect(() => getDiagramFromText('thor TD; A-->B')).toThrowError( + test('should throw the right error for unregistered diagrams', async () => { + await expect(getDiagramFromText('thor TD; A-->B')).rejects.toThrowError( 'No diagram type detected for text: thor TD; A-->B' ); }); diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js index 41868e2035..01b6163cb8 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js @@ -1,7 +1,7 @@ import flowDb from './flowDb'; import flowParser from './parser/flow'; import flowRenderer from './flowRenderer'; -import Diagram from '../../Diagram'; +import { Diagram } from '../../Diagram'; import { addDiagrams } from '../../diagram-api/diagram-orchestration'; addDiagrams(); diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index 80850c2f2a..72daca932d 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -2,7 +2,7 @@ import { vi } from 'vitest'; import * as configApi from '../../config'; import mermaidAPI from '../../mermaidAPI'; -import Diagram from '../../Diagram'; +import { Diagram } from '../../Diagram'; import { addDiagrams } from '../../diagram-api/diagram-orchestration'; /** @@ -176,14 +176,14 @@ Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`); diagram.db.clear(); }); - it('should handle a sequenceDiagram definition', function () { + it('should handle a sequenceDiagram definition', async function () { const str = ` sequenceDiagram Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str, diagram); + await mermaidAPI.parse(str, diagram); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -194,18 +194,18 @@ Bob-->Alice: I am good thanks!`; expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should not show sequence numbers per default', function () { + it('should not show sequence numbers per default', async () => { const str = ` sequenceDiagram Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers expect(diagram.db.showSequenceNumbers()).toBe(false); }); - it('should show sequence numbers when autonumber is enabled', function () { + it('should show sequence numbers when autonumber is enabled', async () => { const str = ` sequenceDiagram autonumber @@ -213,11 +213,11 @@ Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers expect(diagram.db.showSequenceNumbers()).toBe(true); }); - it('should handle a sequenceDiagram definition with a title:', function () { + it('should handle a sequenceDiagram definition with a title:', async () => { const str = ` sequenceDiagram title: Diagram Title @@ -225,7 +225,7 @@ Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -240,7 +240,7 @@ Bob-->Alice: I am good thanks!`; expect(title).toBe('Diagram Title'); }); - it('should handle a sequenceDiagram definition with a title without a :', function () { + it('should handle a sequenceDiagram definition with a title without a :', async () => { const str = ` sequenceDiagram title Diagram Title @@ -248,7 +248,7 @@ Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -263,7 +263,7 @@ Bob-->Alice: I am good thanks!`; expect(title).toBe('Diagram Title'); }); - it('should handle a sequenceDiagram definition with a accessibility title and description (accDescr)', function () { + it('should handle a sequenceDiagram definition with a accessibility title and description (accDescr)', async () => { const str = ` sequenceDiagram title: Diagram Title @@ -272,13 +272,13 @@ accDescr: Accessibility Description Alice->Bob:Hello Bob, how are you? `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); expect(diagram.db.getDiagramTitle()).toBe('Diagram Title'); expect(diagram.db.getAccTitle()).toBe('This is the title'); expect(diagram.db.getAccDescription()).toBe('Accessibility Description'); const messages = diagram.db.getMessages(); }); - it('should handle a sequenceDiagram definition with a accessibility title and multiline description (accDescr)', function () { + it('should handle a sequenceDiagram definition with a accessibility title and multiline description (accDescr)', async () => { const str = ` sequenceDiagram accTitle: This is the title @@ -289,19 +289,19 @@ Description Alice->Bob:Hello Bob, how are you? `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); expect(diagram.db.getAccTitle()).toBe('This is the title'); expect(diagram.db.getAccDescription()).toBe('Accessibility\nDescription'); const messages = diagram.db.getMessages(); }); - it('should space in actor names', function () { + it('should space in actor names', async () => { const str = ` sequenceDiagram Alice->Bob:Hello Bob, how are - you? Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -312,13 +312,13 @@ Bob-->Alice: I am good thanks!`; expect(messages[0].from).toBe('Alice'); expect(messages[1].from).toBe('Bob'); }); - it('should handle dashes in actor names', function () { + it('should handle dashes in actor names', async () => { const str = ` sequenceDiagram Alice-in-Wonderland->Bob:Hello Bob, how are - you? Bob-->Alice-in-Wonderland:I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors['Alice-in-Wonderland'].description).toBe('Alice-in-Wonderland'); expect(actors.Bob.description).toBe('Bob'); @@ -330,7 +330,7 @@ Bob-->Alice-in-Wonderland:I am good thanks!`; expect(messages[1].from).toBe('Bob'); }); - it('should handle dashes in participant names', function () { + it('should handle dashes in participant names', async () => { const str = ` sequenceDiagram participant Alice-in-Wonderland @@ -338,7 +338,7 @@ participant Bob Alice-in-Wonderland->Bob:Hello Bob, how are - you? Bob-->Alice-in-Wonderland:I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(Object.keys(actors)).toEqual(['Alice-in-Wonderland', 'Bob']); expect(actors['Alice-in-Wonderland'].description).toBe('Alice-in-Wonderland'); @@ -351,7 +351,7 @@ Bob-->Alice-in-Wonderland:I am good thanks!`; expect(messages[1].from).toBe('Bob'); }); - it('should alias participants', function () { + it('should alias participants', async () => { const str = ` sequenceDiagram participant A as Alice @@ -359,7 +359,7 @@ participant B as Bob A->B:Hello Bob, how are you? B-->A: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); @@ -372,7 +372,7 @@ B-->A: I am good thanks!`; expect(messages[0].from).toBe('A'); expect(messages[1].from).toBe('B'); }); - it('should alias a mix of actors and participants apa12', function () { + it('should alias a mix of actors and participants apa12', async () => { const str = ` sequenceDiagram actor Alice as Alice2 @@ -385,7 +385,7 @@ sequenceDiagram John->>Mandy: Hi Mandy Mandy ->>Joan: Hi Joan`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(Object.keys(actors)).toEqual(['Alice', 'Bob', 'John', 'Mandy', 'Joan']); @@ -400,7 +400,7 @@ sequenceDiagram expect(messages[0].from).toBe('Alice'); expect(messages[4].to).toBe('Joan'); }); - it('should alias actors apa13', function () { + it('should alias actors apa13', async () => { const str = ` sequenceDiagram actor A as Alice @@ -408,7 +408,7 @@ actor B as Bob A->B:Hello Bob, how are you? B-->A: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(Object.keys(actors)).toEqual(['A', 'B']); @@ -420,12 +420,12 @@ B-->A: I am good thanks!`; expect(messages[0].from).toBe('A'); expect(messages[1].from).toBe('B'); }); - it('should handle in async messages', function () { + it('should handle in async messages', async () => { const str = ` sequenceDiagram Alice-xBob:Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -435,12 +435,12 @@ Alice-xBob:Hello Bob, how are you?`; expect(messages.length).toBe(1); expect(messages[0].type).toBe(diagram.db.LINETYPE.SOLID_CROSS); }); - it('should handle in async dotted messages', function () { + it('should handle in async dotted messages', async () => { const str = ` sequenceDiagram Alice--xBob:Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -450,12 +450,12 @@ Alice--xBob:Hello Bob, how are you?`; expect(messages.length).toBe(1); expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED_CROSS); }); - it('should handle in sync messages', function () { + it('should handle in sync messages', async () => { const str = ` sequenceDiagram Alice-)Bob:Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -465,12 +465,12 @@ Alice-)Bob:Hello Bob, how are you?`; expect(messages.length).toBe(1); expect(messages[0].type).toBe(diagram.db.LINETYPE.SOLID_POINT); }); - it('should handle in sync dotted messages', function () { + it('should handle in sync dotted messages', async () => { const str = ` sequenceDiagram Alice--)Bob:Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -480,12 +480,12 @@ Alice--)Bob:Hello Bob, how are you?`; expect(messages.length).toBe(1); expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED_POINT); }); - it('should handle in arrow messages', function () { + it('should handle in arrow messages', async () => { const str = ` sequenceDiagram Alice->>Bob:Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -495,10 +495,10 @@ Alice->>Bob:Hello Bob, how are you?`; expect(messages.length).toBe(1); expect(messages[0].type).toBe(diagram.db.LINETYPE.SOLID); }); - it('should handle in arrow messages', function () { + it('should handle in arrow messages', async () => { const str = 'sequenceDiagram\n' + 'Alice-->>Bob:Hello Bob, how are you?'; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -508,7 +508,7 @@ Alice->>Bob:Hello Bob, how are you?`; expect(messages.length).toBe(1); expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED); }); - it('should handle actor activation', function () { + it('should handle actor activation', async () => { const str = ` sequenceDiagram Alice-->>Bob:Hello Bob, how are you? @@ -516,7 +516,7 @@ activate Bob Bob-->>Alice:Hello Alice, I'm fine and you? deactivate Bob`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -531,13 +531,13 @@ deactivate Bob`; expect(messages[3].type).toBe(diagram.db.LINETYPE.ACTIVE_END); expect(messages[3].from.actor).toBe('Bob'); }); - it('should handle actor one line notation activation', function () { + it('should handle actor one line notation activation', async () => { const str = ` sequenceDiagram Alice-->>+Bob:Hello Bob, how are you? Bob-->>- Alice:Hello Alice, I'm fine and you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -552,7 +552,7 @@ deactivate Bob`; expect(messages[3].type).toBe(diagram.db.LINETYPE.ACTIVE_END); expect(messages[3].from.actor).toBe('Bob'); }); - it('should handle stacked activations', function () { + it('should handle stacked activations', async () => { const str = ` sequenceDiagram Alice-->>+Bob:Hello Bob, how are you? @@ -560,7 +560,7 @@ deactivate Bob`; Bob-->>- Alice:Hello Alice, please meet Carol? Carol->>- Bob:Oh Bob, I'm so happy to be here!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); expect(actors.Bob.description).toBe('Bob'); @@ -579,7 +579,7 @@ deactivate Bob`; expect(messages[7].type).toBe(diagram.db.LINETYPE.ACTIVE_END); expect(messages[7].from.actor).toBe('Carol'); }); - it('should handle fail parsing when activating an inactive participant', function () { + it('should handle fail parsing when activating an inactive participant', async () => { const str = ` sequenceDiagram participant user as End User @@ -598,14 +598,14 @@ deactivate Bob`; let error = false; try { - mermaidAPI.parse(str); + await mermaidAPI.parse(str); } catch (e) { error = true; } expect(error).toBe(true); }); - it('should handle comments in a sequenceDiagram', function () { + it('should handle comments in a sequenceDiagram', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -613,7 +613,7 @@ deactivate Bob`; Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -624,7 +624,7 @@ deactivate Bob`; expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should handle new lines in a sequenceDiagram', function () { + it('should handle new lines in a sequenceDiagram', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -634,7 +634,7 @@ deactivate Bob`; Bob-->Alice: I am good thanks! `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -645,11 +645,11 @@ deactivate Bob`; expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should handle semicolons', function () { + it('should handle semicolons', async () => { const str = ` sequenceDiagram;Alice->Bob: Hello Bob, how are you?;Note right of Bob: Bob thinks;Bob-->Alice: I am good thanks!;`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -660,7 +660,7 @@ sequenceDiagram;Alice->Bob: Hello Bob, how are you?;Note right of Bob: Bob think expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should handle one leading space in lines in a sequenceDiagram', function () { + it('should handle one leading space in lines in a sequenceDiagram', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -669,7 +669,7 @@ sequenceDiagram Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -680,7 +680,7 @@ Bob-->Alice: I am good thanks!`; expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should handle several leading spaces in lines in a sequenceDiagram', function () { + it('should handle several leading spaces in lines in a sequenceDiagram', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -689,7 +689,7 @@ sequenceDiagram Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -700,7 +700,7 @@ Bob-->Alice: I am good thanks!`; expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should handle several leading spaces in lines in a sequenceDiagram', function () { + it('should handle several leading spaces in lines in a sequenceDiagram', async () => { const str = ` sequenceDiagram participant Alice @@ -714,7 +714,7 @@ Note right of John: Rational thoughts
    prevail... John->Bob: How about you? Bob-->John: Jolly good!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -725,7 +725,7 @@ Bob-->John: Jolly good!`; expect(messages[0].from).toBe('Alice'); expect(messages[2].from).toBe('John'); }); - it('should handle different line breaks', function () { + it('should handle different line breaks', async () => { const str = ` sequenceDiagram participant 1 as multiline
    text @@ -742,7 +742,7 @@ note right of 4: multiline
    text note right of 1: multiline
    text `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors['1'].description).toBe('multiline
    text'); @@ -760,7 +760,7 @@ note right of 1: multiline
    text expect(messages[6].message).toBe('multiline
    text'); expect(messages[7].message).toBe('multiline
    text'); }); - it('should handle notes and messages without wrap specified', function () { + it('should handle notes and messages without wrap specified', async () => { const str = ` sequenceDiagram participant 1 @@ -777,7 +777,7 @@ note right of 4: multiline
    text note right of 1:nowrap: multiline
    text `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[0].message).toBe('single-line text'); @@ -799,7 +799,7 @@ note right of 1:nowrap: multiline
    text expect(messages[6].wrap).toBe(false); expect(messages[7].wrap).toBe(false); }); - it('should handle notes and messages with wrap specified', function () { + it('should handle notes and messages with wrap specified', async () => { const str = ` sequenceDiagram participant 1 @@ -812,7 +812,7 @@ note right of 2:wrap: single-line text note right of 3:wrap: multiline
    text `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[0].message).toBe('single-line text'); @@ -824,7 +824,7 @@ note right of 3:wrap: multiline
    text expect(messages[2].wrap).toBe(true); expect(messages[3].wrap).toBe(true); }); - it('should handle notes and messages with nowrap or line breaks', function () { + it('should handle notes and messages with nowrap or line breaks', async () => { const str = ` sequenceDiagram participant 1 @@ -833,7 +833,7 @@ participant 2 note right of 2: single-line text `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[0].message).toBe('single-line text'); @@ -841,20 +841,20 @@ note right of 2: single-line text expect(messages[0].wrap).toBe(false); expect(messages[1].wrap).toBe(false); }); - it('should handle notes over a single actor', function () { + it('should handle notes over a single actor', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? Note over Bob: Bob thinks `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].from).toBe('Bob'); expect(messages[1].to).toBe('Bob'); }); - it('should handle notes over multiple actors', function () { + it('should handle notes over multiple actors', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -862,7 +862,7 @@ Note over Alice,Bob: confusion Note over Bob,Alice: resolution `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].from).toBe('Alice'); @@ -870,7 +870,7 @@ Note over Bob,Alice: resolution expect(messages[2].from).toBe('Bob'); expect(messages[2].to).toBe('Alice'); }); - it('should handle loop statements', function () { + it('should handle loop statements', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -882,7 +882,7 @@ loop Multiple happy responses Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -893,7 +893,7 @@ end`; expect(messages[0].from).toBe('Alice'); expect(messages[1].from).toBe('Bob'); }); - it('should add a rect around sequence', function () { + it('should add a rect around sequence', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -904,7 +904,7 @@ end`; end `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -917,7 +917,7 @@ end`; expect(messages[4].type).toEqual(diagram.db.LINETYPE.RECT_END); }); - it('should allow for nested rects', function () { + it('should allow for nested rects', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -929,7 +929,7 @@ end`; Bob-->Alice: I am good thanks end `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -944,7 +944,7 @@ end`; expect(messages[5].type).toEqual(diagram.db.LINETYPE.DOTTED_OPEN); expect(messages[6].type).toEqual(diagram.db.LINETYPE.RECT_END); }); - it('should handle opt statements', function () { + it('should handle opt statements', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -956,7 +956,7 @@ opt Perhaps a happy response Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); actors.Bob.description = 'Bob'; @@ -967,7 +967,7 @@ end`; expect(messages[0].from).toBe('Alice'); expect(messages[1].from).toBe('Bob'); }); - it('should handle alt statements', function () { + it('should handle alt statements', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -981,7 +981,7 @@ else isSick Bob-->Alice: Feel sick... end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); @@ -993,7 +993,7 @@ end`; expect(messages[0].from).toBe('Alice'); expect(messages[1].from).toBe('Bob'); }); - it('should handle alt statements with multiple elses', function () { + it('should handle alt statements with multiple elses', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1008,7 +1008,7 @@ Bob-->Alice: Feel sick... else default Bob-->Alice: :-) end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages.length).toBe(9); expect(messages[1].from).toBe('Bob'); @@ -1020,14 +1020,14 @@ end`; expect(messages[7].from).toBe('Bob'); expect(messages[8].type).toBe(diagram.db.LINETYPE.ALT_END); }); - it('should handle critical statements without options', function () { + it('should handle critical statements without options', async () => { const str = ` sequenceDiagram critical Establish a connection to the DB Service-->DB: connect end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Service.description).toBe('Service'); @@ -1040,7 +1040,7 @@ sequenceDiagram expect(messages[1].from).toBe('Service'); expect(messages[2].type).toBe(diagram.db.LINETYPE.CRITICAL_END); }); - it('should handle critical statements with options', function () { + it('should handle critical statements with options', async () => { const str = ` sequenceDiagram critical Establish a connection to the DB @@ -1051,7 +1051,7 @@ sequenceDiagram Service-->Service: Log different error end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Service.description).toBe('Service'); @@ -1068,7 +1068,7 @@ sequenceDiagram expect(messages[5].from).toBe('Service'); expect(messages[6].type).toBe(diagram.db.LINETYPE.CRITICAL_END); }); - it('should handle break statements', function () { + it('should handle break statements', async () => { const str = ` sequenceDiagram Consumer-->API: Book something @@ -1078,7 +1078,7 @@ sequenceDiagram end API-->BillingService: Start billing process`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Consumer.description).toBe('Consumer'); @@ -1094,7 +1094,7 @@ sequenceDiagram expect(messages[4].type).toBe(diagram.db.LINETYPE.BREAK_END); expect(messages[5].from).toBe('API'); }); - it('should handle par statements a sequenceDiagram', function () { + it('should handle par statements a sequenceDiagram', async () => { const str = ` sequenceDiagram par Parallel one @@ -1108,7 +1108,7 @@ Alice->>Bob: What do you think about it? Bob-->>Alice: It's good! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.Alice.description).toBe('Alice'); @@ -1121,26 +1121,26 @@ end`; expect(messages[1].from).toBe('Alice'); expect(messages[2].from).toBe('Bob'); }); - it('should handle special characters in signals', function () { + it('should handle special characters in signals', async () => { const str = 'sequenceDiagram\n' + 'Alice->Bob: -:<>,;# comment'; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[0].message).toBe('-:<>,'); }); - it('should handle special characters in notes', function () { + it('should handle special characters in notes', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? Note right of Bob: -:<>,;# comment`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe('-:<>,'); }); - it('should handle special characters in loop', function () { + it('should handle special characters in loop', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1148,12 +1148,12 @@ loop -:<>,;# comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe('-:<>,'); }); - it('should handle special characters in opt', function () { + it('should handle special characters in opt', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1161,12 +1161,12 @@ opt -:<>,;# comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe('-:<>,'); }); - it('should handle special characters in alt', function () { + it('should handle special characters in alt', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1176,13 +1176,13 @@ else ,<>:-#; comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe('-:<>,'); expect(messages[3].message).toBe(',<>:-'); }); - it('should handle special characters in par', function () { + it('should handle special characters in par', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1192,13 +1192,13 @@ and ,<>:-#; comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe('-:<>,'); expect(messages[3].message).toBe(',<>:-'); }); - it('should handle no-label loop', function () { + it('should handle no-label loop', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1206,13 +1206,13 @@ loop Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe(''); expect(messages[2].message).toBe('I am good thanks!'); }); - it('should handle no-label opt', function () { + it('should handle no-label opt', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1220,13 +1220,13 @@ opt # comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe(''); expect(messages[2].message).toBe('I am good thanks!'); }); - it('should handle no-label alt', function () { + it('should handle no-label alt', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1235,7 +1235,7 @@ else # comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe(''); @@ -1243,7 +1243,7 @@ end`; expect(messages[3].message).toBe(''); expect(messages[4].message).toBe('I am good thanks!'); }); - it('should handle no-label par', function () { + it('should handle no-label par', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1252,7 +1252,7 @@ and # comment Bob-->Alice: I am good thanks! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const messages = diagram.db.getMessages(); expect(messages[1].message).toBe(''); @@ -1261,7 +1261,7 @@ end`; expect(messages[4].message).toBe('I am good thanks!'); }); - it('should handle links', function () { + it('should handle links', async () => { const str = ` sequenceDiagram participant a as Alice @@ -1275,7 +1275,7 @@ link a: Swagger @ https://swagger.contoso.com link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.a.links['Repo']).toBe('https://repo.contoso.com/'); expect(actors.b.links['Repo']).toBe(undefined); @@ -1288,7 +1288,7 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com expect(actors.a.links['Tests']).toBe('https://tests.contoso.com/?svc=alice@contoso.com'); }); - it('should handle properties EXPERIMENTAL: USE WITH CAUTION', function () { + it('should handle properties EXPERIMENTAL: USE WITH CAUTION', async () => { //Be aware that the syntax for "properties" is likely to be changed. const str = ` sequenceDiagram @@ -1299,7 +1299,7 @@ properties a: {"class": "internal-service-actor", "icon": "@clock"} properties b: {"class": "external-service-actor", "icon": "@computer"} `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(actors.a.properties['class']).toBe('internal-service-actor'); expect(actors.b.properties['class']).toBe('external-service-actor'); @@ -1308,7 +1308,7 @@ properties b: {"class": "external-service-actor", "icon": "@computer"} expect(actors.c.properties['class']).toBe(undefined); }); - it('should handle box', function () { + it('should handle box', async () => { const str = ` sequenceDiagram box green Group 1 @@ -1324,14 +1324,14 @@ link a: Swagger @ https://swagger.contoso.com link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const boxes = diagram.db.getBoxes(); expect(boxes[0].name).toEqual('Group 1'); expect(boxes[0].actorKeys).toEqual(['a', 'b']); expect(boxes[0].fill).toEqual('green'); }); - it('should handle box without color', function () { + it('should handle box without color', async () => { const str = ` sequenceDiagram box Group 1 @@ -1347,14 +1347,14 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const boxes = diagram.db.getBoxes(); expect(boxes[0].name).toEqual('Group 1'); expect(boxes[0].actorKeys).toEqual(['a', 'b']); expect(boxes[0].fill).toEqual('transparent'); }); - it('should handle box without description', function () { + it('should handle box without description', async () => { const str = ` sequenceDiagram box Aqua @@ -1370,7 +1370,7 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const boxes = diagram.db.getBoxes(); expect(boxes[0].name).toBeFalsy(); expect(boxes[0].actorKeys).toEqual(['a', 'b']); @@ -1403,7 +1403,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { diagram.renderer.bounds.init(); conf = diagram.db.getConfig(); }); - it('should handle a simple bound call', function () { + it('should handle a simple bound call', async () => { diagram.renderer.bounds.insert(100, 100, 200, 200); const { bounds } = diagram.renderer.bounds.getBounds(); @@ -1412,7 +1412,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(200); expect(bounds.stopy).toBe(200); }); - it('should handle an expanding bound', function () { + it('should handle an expanding bound', async () => { diagram.renderer.bounds.insert(100, 100, 200, 200); diagram.renderer.bounds.insert(25, 50, 300, 400); @@ -1422,7 +1422,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(300); expect(bounds.stopy).toBe(400); }); - it('should handle inserts within the bound without changing the outer bounds', function () { + it('should handle inserts within the bound without changing the outer bounds', async () => { diagram.renderer.bounds.insert(100, 100, 200, 200); diagram.renderer.bounds.insert(25, 50, 300, 400); diagram.renderer.bounds.insert(125, 150, 150, 200); @@ -1433,7 +1433,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(300); expect(bounds.stopy).toBe(400); }); - it('should handle a loop without expanding the area', function () { + it('should handle a loop without expanding the area', async () => { diagram.renderer.bounds.insert(25, 50, 300, 400); diagram.renderer.bounds.verticalPos = 150; diagram.renderer.bounds.newLoop(); @@ -1454,7 +1454,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(300); expect(bounds.stopy).toBe(400); }); - it('should handle multiple loops withtout expanding the bounds', function () { + it('should handle multiple loops withtout expanding the bounds', async () => { diagram.renderer.bounds.insert(100, 100, 1000, 1000); diagram.renderer.bounds.verticalPos = 200; diagram.renderer.bounds.newLoop(); @@ -1485,7 +1485,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(1000); expect(bounds.stopy).toBe(1000); }); - it('should handle a loop that expands the area', function () { + it('should handle a loop that expands the area', async () => { diagram.renderer.bounds.insert(100, 100, 200, 200); diagram.renderer.bounds.verticalPos = 200; diagram.renderer.bounds.newLoop(); @@ -1555,13 +1555,13 @@ Bob-->Alice: I am good thanks!`); }); ['tspan', 'fo', 'old', undefined].forEach(function (textPlacement) { it(` -it should handle one actor, when textPlacement is ${textPlacement}`, function () { +it should handle one actor, when textPlacement is ${textPlacement}`, async () => { const str = ` sequenceDiagram participant Alice`; // mermaidAPI.reinitialize({ sequence: { textPlacement: textPlacement } }); - mermaidAPI.parse(str); + await mermaidAPI.parse(str); // diagram.renderer.setConf(mermaidAPI.getConfig().sequence); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); @@ -1572,7 +1572,7 @@ participant Alice`; expect(bounds.stopy).toBe(conf.height); }); }); - it('should handle same actor with different whitespace properly', function () { + it('should handle same actor with different whitespace properly', async () => { const str = ` sequenceDiagram participant Alice @@ -1580,12 +1580,12 @@ participant Alice participant Alice `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); const actors = diagram.db.getActors(); expect(Object.keys(actors)).toEqual(['Alice']); }); - it('should handle one actor and a centered note', function () { + it('should handle one actor and a centered note', async () => { const str = ` sequenceDiagram participant Alice @@ -1593,7 +1593,7 @@ Note over Alice: Alice thinks `; expect(mermaidAPI.getConfig().sequence.mirrorActors).toBeFalsy(); - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1603,13 +1603,13 @@ Note over Alice: Alice thinks // 10 comes from mock of text height expect(bounds.stopy).toBe(models.lastNote().stopy); }); - it('should handle one actor and a note to the left', function () { + it('should handle one actor and a note to the left', async () => { const str = ` sequenceDiagram participant Alice Note left of Alice: Alice thinks`; - mermaidAPI.parse(str, diagram); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1619,13 +1619,13 @@ Note left of Alice: Alice thinks`; // 10 comes from mock of text height expect(bounds.stopy).toBe(models.lastNote().stopy); }); - it('should handle one actor and a note to the right', function () { + it('should handle one actor and a note to the right', async () => { const str = ` sequenceDiagram participant Alice Note right of Alice: Alice thinks`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1635,12 +1635,12 @@ Note right of Alice: Alice thinks`; // 10 comes from mock of text height expect(bounds.stopy).toBe(models.lastNote().stopy); }); - it('should handle two actors', function () { + it('should handle two actors', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1649,7 +1649,7 @@ Alice->Bob: Hello Bob, how are you?`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should handle two actors in a box', function () { + it('should handle two actors in a box', async () => { const str = ` sequenceDiagram box rgb(34, 56, 0) Group1 @@ -1658,7 +1658,7 @@ participant Bob end Alice->Bob: Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1667,13 +1667,13 @@ Alice->Bob: Hello Bob, how are you?`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin + conf.boxTextMargin * 2); expect(bounds.stopy).toBe(models.lastMessage().stopy + 20); }); - it('should handle two actors with init directive', function () { + it('should handle two actors with init directive', async () => { const str = ` %%{init: {'logLevel': 0}}%% sequenceDiagram Alice->Bob: Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1684,7 +1684,7 @@ Alice->Bob: Hello Bob, how are you?`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should handle two actors with init directive with multiline directive', function () { + it('should handle two actors with init directive with multiline directive', async () => { const str = ` %%{init: { 'logLevel': 0}}%% sequenceDiagram @@ -1693,7 +1693,7 @@ wrap }%% Alice->Bob: Hello Bob, how are you?`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const msgs = diagram.db.getMessages(); @@ -1706,7 +1706,7 @@ Alice->Bob: Hello Bob, how are you?`; expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); expect(msgs.every((v) => v.wrap)).toBe(true); }); - it('should handle two actors and two centered shared notes', function () { + it('should handle two actors and two centered shared notes', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? @@ -1714,7 +1714,7 @@ Note over Alice,Bob: Looks Note over Bob,Alice: Looks back `; // mermaidAPI.initialize({logLevel:0}) - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1723,13 +1723,13 @@ Note over Bob,Alice: Looks back expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastNote().stopy); }); - it('should draw two actors and two messages', function () { + it('should draw two actors and two messages', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? Bob->Alice: Fine!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1738,14 +1738,14 @@ Bob->Alice: Fine!`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two actors notes to the right', function () { + it('should draw two actors notes to the right', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? Note right of Bob: Bob thinks Bob->Alice: Fine!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1757,14 +1757,14 @@ Bob->Alice: Fine!`; expect(bounds.stopx).toBe(expStopX); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two actors notes to the left', function () { + it('should draw two actors notes to the left', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? Note left of Alice: Bob thinks Bob->Alice: Fine!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1774,14 +1774,14 @@ Bob->Alice: Fine!`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two actors notes to the left with text wrapped (inline)', function () { + it('should draw two actors notes to the left with text wrapped (inline)', async () => { const str = ` sequenceDiagram Alice->>Bob:wrap: Hello Bob, how are you? If you are not available right now, I can leave you a message. Please get back to me as soon as you can! Note left of Alice: Bob thinks Bob->>Alice: Fine!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1793,7 +1793,7 @@ Bob->>Alice: Fine!`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two actors notes to the left with text wrapped (directive)', function () { + it('should draw two actors notes to the left with text wrapped (directive)', async () => { const str = ` %%{init: { 'theme': 'dark' } }%% sequenceDiagram @@ -1802,7 +1802,7 @@ Alice->>Bob: Hello Bob, how are you? If you are not available right now, I can l Note left of Alice: Bob thinks Bob->>Alice: Fine!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1816,7 +1816,7 @@ Bob->>Alice: Fine!`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two actors notes to the left with text wrapped and the init directive sets the theme to dark', function () { + it('should draw two actors notes to the left with text wrapped and the init directive sets the theme to dark', async () => { const str = ` %%{init:{'theme':'dark'}}%% sequenceDiagram @@ -1825,7 +1825,7 @@ Alice->>Bob: Hello Bob, how are you? If you are not available right now, I can l Note left of Alice: Bob thinks Bob->>Alice: Fine!`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1839,7 +1839,7 @@ Bob->>Alice: Fine!`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two actors, notes to the left with text wrapped and the init directive sets the theme to dark and fontFamily to Menlo, fontSize to 18, and fontWeight to 800', function () { + it('should draw two actors, notes to the left with text wrapped and the init directive sets the theme to dark and fontFamily to Menlo, fontSize to 18, and fontWeight to 800', async () => { const str = ` %%{init: { "theme": "dark", 'config': { "fontFamily": "Menlo", "fontSize": 18, "messageFontWeight": 400, "wrap": true }}}%% sequenceDiagram @@ -1847,7 +1847,7 @@ Alice->>Bob: Hello Bob, how are you? If you are not available right now, I can l Note left of Alice: Bob thinks Bob->>Alice: Fine!`; // mermaidAPI.initialize({ logLevel: 0 }); - mermaidAPI.parse(str, diagram); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1864,14 +1864,14 @@ Bob->>Alice: Fine!`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastMessage().stopy + 10); }); - it('should draw two loops', function () { + it('should draw two loops', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, how are you? loop Cheers Bob->Alice: Fine! end`; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1881,7 +1881,7 @@ end`; expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin); expect(bounds.stopy).toBe(models.lastLoop().stopy); }); - it('should draw background rect', function () { + it('should draw background rect', async () => { const str = ` sequenceDiagram Alice->Bob: Hello Bob, are you alright? @@ -1889,7 +1889,7 @@ end`; Bob->Alice: I feel surrounded by darkness end `; - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); expect(bounds.startx).toBe(0); @@ -1900,7 +1900,7 @@ end`; }); }); -describe('when rendering a sequenceDiagram with actor mirror activated', function () { +describe('when rendering a sequenceDiagram with actor mirror activated', () => { beforeAll(() => { let conf = { diagramMarginX: 50, @@ -1931,14 +1931,14 @@ describe('when rendering a sequenceDiagram with actor mirror activated', functio diagram.renderer.bounds.init(); }); ['tspan', 'fo', 'old', undefined].forEach(function (textPlacement) { - it('should handle one actor, when textPlacement is' + textPlacement, function () { + it('should handle one actor, when textPlacement is' + textPlacement, async () => { mermaidAPI.initialize(addConf(conf, 'textPlacement', textPlacement)); diagram.renderer.bounds.init(); const str = ` sequenceDiagram participant Alice`; diagram.renderer.bounds.init(); - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); const { bounds, models } = diagram.renderer.bounds.getBounds(); @@ -1950,7 +1950,7 @@ participant Alice`; }); }); -describe('when rendering a sequenceDiagram with directives', function () { +describe('when rendering a sequenceDiagram with directives', () => { beforeAll(function () { let conf = { diagramMarginX: 50, @@ -1975,7 +1975,7 @@ describe('when rendering a sequenceDiagram with directives', function () { diagram.renderer.bounds.init(); }); - it('should handle one actor, when theme is dark and logLevel is 1 DX1 (dfg1)', function () { + it('should handle one actor, when theme is dark and logLevel is 1 DX1 (dfg1)', async () => { const str = ` %%{init: { "theme": "dark", "logLevel": 1 } }%% sequenceDiagram @@ -1985,7 +1985,7 @@ participant Alice diagram = new Diagram(str); diagram.renderer.bounds.init(); - mermaidAPI.parse(str); + await mermaidAPI.parse(str); diagram.renderer.draw(str, 'tst', '1.2.3', diagram); @@ -2000,7 +2000,7 @@ participant Alice models.lastActor().y + models.lastActor().height + mermaid.sequence.boxMargin ); }); - it('should handle one actor, when logLevel is 3 (dfg0)', function () { + it('should handle one actor, when logLevel is 3 (dfg0)', async () => { const str = ` %%{initialize: { "logLevel": 3 }}%% sequenceDiagram @@ -2020,7 +2020,7 @@ participant Alice models.lastActor().y + models.lastActor().height + mermaid.sequence.boxMargin ); }); - it('should hide sequence numbers when autonumber is removed when autonumber is enabled', function () { + it('should hide sequence numbers when autonumber is removed when autonumber is enabled', async () => { const str1 = ` sequenceDiagram autonumber @@ -2028,7 +2028,7 @@ Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str1, diagram); + await mermaidAPI.parse(str1); diagram.renderer.draw(str1, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers expect(diagram.db.showSequenceNumbers()).toBe(true); @@ -2038,7 +2038,7 @@ Alice->Bob:Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!`; - mermaidAPI.parse(str2, diagram); + await mermaidAPI.parse(str2); diagram.renderer.draw(str2, 'tst', '1.2.3', diagram); expect(diagram.db.showSequenceNumbers()).toBe(false); }); diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index f9709510e1..f50661dcf2 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -6,12 +6,12 @@ const spyOn = vi.spyOn; vi.mock('./mermaidAPI'); afterEach(() => { - vi.restoreAllMocks(); + vi.clearAllMocks(); }); -describe('when using mermaid and ', function () { - describe('when detecting chart type ', function () { - it('should not start rendering with mermaid.startOnLoad set to false', function () { +describe('when using mermaid and ', () => { + describe('when detecting chart type ', () => { + it('should not start rendering with mermaid.startOnLoad set to false', async () => { mermaid.startOnLoad = false; document.body.innerHTML = '
    graph TD;\na;
    '; spyOn(mermaid, 'init'); @@ -19,7 +19,7 @@ describe('when using mermaid and ', function () { expect(mermaid.init).not.toHaveBeenCalled(); }); - it('should start rendering with both startOnLoad set', function () { + it('should start rendering with both startOnLoad set', async () => { mermaid.startOnLoad = true; document.body.innerHTML = '
    graph TD;\na;
    '; spyOn(mermaid, 'init'); @@ -27,7 +27,7 @@ describe('when using mermaid and ', function () { expect(mermaid.init).toHaveBeenCalled(); }); - it('should start rendering with mermaid.startOnLoad', function () { + it('should start rendering with mermaid.startOnLoad', async () => { mermaid.startOnLoad = true; document.body.innerHTML = '
    graph TD;\na;
    '; spyOn(mermaid, 'init'); @@ -35,7 +35,7 @@ describe('when using mermaid and ', function () { expect(mermaid.init).toHaveBeenCalled(); }); - it('should start rendering as a default with no changes performed', function () { + it('should start rendering as a default with no changes performed', async () => { document.body.innerHTML = '
    graph TD;\na;
    '; spyOn(mermaid, 'init'); mermaid.contentLoaded(); @@ -43,7 +43,7 @@ describe('when using mermaid and ', function () { }); }); - describe('when using #initThrowsErrors', function () { + describe('when using #initThrowsErrors', () => { it('should accept single node', async () => { const node = document.createElement('div'); node.appendChild(document.createTextNode('graph TD;\na;')); @@ -54,7 +54,8 @@ describe('when using mermaid and ', function () { expect(mermaidAPI.render).toHaveBeenCalled(); }); }); - describe('when using #registerExternalDiagrams', function () { + + describe('when using #registerExternalDiagrams', () => { it('should throw error (but still render) if registerExternalDiagrams fails', async () => { const node = document.createElement('div'); node.appendChild(document.createTextNode('graph TD;\na;')); @@ -137,19 +138,21 @@ describe('when using mermaid and ', function () { }); }); - describe('checking validity of input ', function () { - it('should throw for an invalid definition', function () { - expect(() => mermaid.parse('this is not a mermaid diagram definition')).toThrow(); + describe('checking validity of input ', () => { + it('should throw for an invalid definition', async () => { + await expect(mermaid.parse('this is not a mermaid diagram definition')).rejects.toThrow(); }); - it('should not throw for a valid flow definition', function () { - expect(() => mermaid.parse('graph TD;A--x|text including URL space|B;')).not.toThrow(); + it('should not throw for a valid flow definition', async () => { + await expect( + mermaid.parse('graph TD;A--x|text including URL space|B;') + ).resolves.not.toThrow(); }); - it('should throw for an invalid flow definition', function () { - expect(() => mermaid.parse('graph TQ;A--x|text including URL space|B;')).toThrow(); + it('should throw for an invalid flow definition', async () => { + await expect(mermaid.parse('graph TQ;A--x|text including URL space|B;')).rejects.toThrow(); }); - it('should not throw for a valid sequenceDiagram definition (mmds1)', function () { + it('should not throw for a valid sequenceDiagram definition (mmds1)', async () => { const text = 'sequenceDiagram\n' + 'Alice->Bob: Hello Bob, how are you?\n\n' + @@ -160,10 +163,10 @@ describe('when using mermaid and ', function () { 'else isSick\n' + 'Bob-->Alice: Feel sick...\n' + 'end'; - expect(() => mermaid.parse(text)).not.toThrow(); + await expect(mermaid.parse(text)).resolves.not.toThrow(); }); - it('should throw for an invalid sequenceDiagram definition', function () { + it('should throw for an invalid sequenceDiagram definition', async () => { const text = 'sequenceDiagram\n' + 'Alice:->Bob: Hello Bob, how are you?\n\n' + @@ -174,15 +177,15 @@ describe('when using mermaid and ', function () { 'else isSick\n' + 'Bob-->Alice: Feel sick...\n' + 'end'; - expect(() => mermaid.parse(text)).toThrow(); + await expect(mermaid.parse(text)).rejects.toThrow(); }); - it('should return false for invalid definition WITH a parseError() callback defined', function () { + it('should return false for invalid definition WITH a parseError() callback defined', async () => { let parseErrorWasCalled = false; mermaid.setParseErrorHandler(() => { parseErrorWasCalled = true; }); - expect(mermaid.parse('this is not a mermaid diagram definition')).toEqual(false); + await expect(mermaid.parse('this is not a mermaid diagram definition')).rejects.toThrow(); expect(parseErrorWasCalled).toEqual(true); }); }); diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index e86b9b15fc..b162378668 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -76,7 +76,7 @@ import { compile, serialize } from 'stylis'; // ------------------------------------------------------------------------------------- -describe('mermaidAPI', function () { +describe('mermaidAPI', () => { describe('encodeEntities', () => { it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => { const text = 'style this; is ; everything :something#not-nothing; and this too;'; @@ -515,13 +515,13 @@ describe('mermaidAPI', function () { }); }); - describe('initialize', function () { - beforeEach(function () { + describe('initialize', () => { + beforeEach(() => { document.body.innerHTML = ''; mermaidAPI.globalReset(); }); - it('copies a literal into the configuration', function () { + it('copies a literal into the configuration', () => { const orgConfig: any = mermaidAPI.getConfig(); expect(orgConfig.testLiteral).toBe(undefined); @@ -533,7 +533,7 @@ describe('mermaidAPI', function () { expect(config.testLiteral).toBe(true); }); - it('copies an object into the configuration', function () { + it('copies an object into the configuration', () => { const orgConfig: any = mermaidAPI.getConfig(); expect(orgConfig.testObject).toBe(undefined); @@ -559,7 +559,7 @@ describe('mermaidAPI', function () { expect(config.testObject.test3).toBe(true); }); - it('resets mermaid config to global defaults', function () { + it('resets mermaid config to global defaults', () => { const config = { logLevel: 0, securityLevel: 'loose', @@ -576,7 +576,7 @@ describe('mermaidAPI', function () { expect(mermaidAPI.getConfig().securityLevel).toBe('strict'); }); - it('prevents changes to site defaults (sneaky)', function () { + it('prevents changes to site defaults (sneaky)', () => { const config: any = { logLevel: 0, }; @@ -584,7 +584,7 @@ describe('mermaidAPI', function () { const siteConfig = mermaidAPI.getSiteConfig(); expect(mermaidAPI.getConfig().logLevel).toBe(0); config.secure = { - toString: function () { + toString: () => { mermaidAPI.initialize({ securityLevel: 'loose' }); }, }; @@ -595,7 +595,7 @@ describe('mermaidAPI', function () { expect(mermaidAPI.getSiteConfig()).toEqual(siteConfig); expect(mermaidAPI.getConfig()).toEqual(siteConfig); }); - it('prevents clobbering global defaults (direct)', function () { + it('prevents clobbering global defaults (direct)', () => { const config = assignWithDepth({}, mermaidAPI.defaultConfig); assignWithDepth(config, { logLevel: 0 }); @@ -611,7 +611,7 @@ describe('mermaidAPI', function () { ); expect(mermaidAPI.defaultConfig['logLevel']).toBe(5); }); - it('prevents changes to global defaults (direct)', function () { + it('prevents changes to global defaults (direct)', () => { let error: any = { message: '' }; try { mermaidAPI.defaultConfig['logLevel'] = 0; @@ -623,7 +623,7 @@ describe('mermaidAPI', function () { ); expect(mermaidAPI.defaultConfig['logLevel']).toBe(5); }); - it('prevents sneaky changes to global defaults (assignWithDepth)', function () { + it('prevents sneaky changes to global defaults (assignWithDepth)', () => { const config = { logLevel: 0, }; @@ -640,48 +640,61 @@ describe('mermaidAPI', function () { }); }); - describe('dompurify config', function () { - it('allows dompurify config to be set', function () { + describe('dompurify config', () => { + it('allows dompurify config to be set', () => { mermaidAPI.initialize({ dompurifyConfig: { ADD_ATTR: ['onclick'] } }); expect(mermaidAPI!.getConfig()!.dompurifyConfig!.ADD_ATTR).toEqual(['onclick']); }); }); - describe('parse', function () { + describe('parse', () => { mermaid.parseError = undefined; // ensure it parseError undefined - it('throws for an invalid definition (with no mermaid.parseError() defined)', function () { + it('throws for an invalid definition (with no mermaid.parseError() defined)', async () => { expect(mermaid.parseError).toEqual(undefined); - expect(() => mermaidAPI.parse('this is not a mermaid diagram definition')).toThrow(); + await expect( + mermaidAPI.parse('this is not a mermaid diagram definition') + ).rejects.toThrowError(); }); - it('throws for a nicer error for a invalid definition starting with `---`', function () { + it('throws for a nicer error for a invalid definition starting with `---`', async () => { expect(mermaid.parseError).toEqual(undefined); - expect(() => + await expect( mermaidAPI.parse(` --- title: a malformed YAML front-matter `) - ).toThrow( + ).rejects.toThrow( 'Diagrams beginning with --- are not valid. ' + 'If you were trying to use a YAML front-matter, please ensure that ' + "you've correctly opened and closed the YAML front-matter with unindented `---` blocks" ); }); - it('does not throw for a valid definition', function () { - expect(() => mermaidAPI.parse('graph TD;A--x|text including URL space|B;')).not.toThrow(); - }); - it('returns false for invalid definition WITH a parseError() callback defined', function () { - let parseErrorWasCalled = false; - // also test setParseErrorHandler() call working to set mermaid.parseError - expect( - mermaidAPI.parse('this is not a mermaid diagram definition', () => { - parseErrorWasCalled = true; - }) - ).toEqual(false); - expect(parseErrorWasCalled).toEqual(true); - }); - it('returns true for valid definition', function () { - expect(mermaidAPI.parse('graph TD;A--x|text including URL space|B;')).toEqual(true); + it('does not throw for a valid definition', async () => { + await expect( + mermaidAPI.parse('graph TD;A--x|text including URL space|B;') + ).resolves.not.toThrow(); + }); + it('throws for invalid definition', async () => { + await expect( + mermaidAPI.parse('this is not a mermaid diagram definition') + ).rejects.toThrowErrorMatchingInlineSnapshot( + '"No diagram type detected for text: this is not a mermaid diagram definition"' + ); + }); + it('returns false for invalid definition with silent option', async () => { + await expect( + mermaidAPI.parse('this is not a mermaid diagram definition', { silent: true }) + ).resolves.toBe(false); + }); + it('resolves for valid definition', async () => { + await expect( + mermaidAPI.parse('graph TD;A--x|text including URL space|B;') + ).resolves.not.toThrow(); + }); + it('returns true for valid definition with silent option', async () => { + await expect( + mermaidAPI.parse('graph TD;A--x|text including URL space|B;', { silent: true }) + ).resolves.toBe(true); }); }); From 735aceb37a3a5907c97e9de0ca243fa6ae1b31a4 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 14:03:11 +0530 Subject: [PATCH 1034/1038] Fix E2E Tests --- .vite/server.ts | 10 +--- cypress/platform/bundle-test.js | 16 ++---- cypress/platform/class.html | 4 +- cypress/platform/click_security_loose.html | 4 +- cypress/platform/click_security_other.html | 4 +- cypress/platform/click_security_sandbox.html | 4 +- cypress/platform/click_security_strict.html | 4 +- cypress/platform/css1.html | 4 +- cypress/platform/current2.html | 4 +- cypress/platform/e2e.html | 38 +------------ cypress/platform/flow.html | 4 +- cypress/platform/ghsa1.html | 14 ++--- cypress/platform/ghsa2.html | 6 +- cypress/platform/ghsa3.html | 16 +++--- cypress/platform/git-graph.html | 4 +- cypress/platform/gitgraph.html | 4 +- cypress/platform/gitgraph2.html | 4 +- cypress/platform/huge.html | 4 +- cypress/platform/info.html | 4 +- cypress/platform/interaction.html | 4 +- cypress/platform/per.html | 2 +- cypress/platform/regression/issue-1874.html | 18 +++--- cypress/platform/render-after-error.html | 15 +++-- cypress/platform/rerender.html | 16 +++--- cypress/platform/showcase_base.html | 4 +- cypress/platform/showcase_base_dark.html | 4 +- cypress/platform/showcase_dark.html | 4 +- cypress/platform/showcase_default.html | 4 +- cypress/platform/showcase_forest.html | 4 +- cypress/platform/showcase_neutral.html | 4 +- cypress/platform/sidv.html | 6 -- cypress/platform/subgraph.html | 4 +- cypress/platform/theme-directives.html | 4 +- cypress/platform/user-journey.html | 4 +- cypress/platform/vertices.html | 4 +- cypress/platform/viewer.js | 29 +++------- cypress/platform/xss.html | 4 +- cypress/platform/xss10.html | 11 ++-- cypress/platform/xss11.html | 11 ++-- cypress/platform/xss12.html | 11 ++-- cypress/platform/xss13.html | 11 ++-- cypress/platform/xss14.html | 11 ++-- cypress/platform/xss15.html | 11 ++-- cypress/platform/xss16.html | 11 ++-- cypress/platform/xss17.html | 11 ++-- cypress/platform/xss18.html | 11 ++-- cypress/platform/xss19.html | 11 ++-- cypress/platform/xss2.html | 6 +- cypress/platform/xss20.html | 10 ++-- cypress/platform/xss21.html | 12 ++-- cypress/platform/xss22.html | 4 +- cypress/platform/xss3.html | 4 +- cypress/platform/xss4.html | 9 ++- cypress/platform/xss5.html | 11 ++-- cypress/platform/xss6.html | 11 ++-- cypress/platform/xss7.html | 11 ++-- cypress/platform/xss8.html | 11 ++-- cypress/platform/xss9.html | 11 ++-- demos/c4context.html | 22 +++---- demos/classchart.html | 4 +- demos/dataflowchart.html | 4 +- demos/er.html | 2 +- demos/flowchart.html | 4 +- demos/gantt.html | 4 +- demos/git.html | 4 +- demos/journey.html | 4 +- demos/requirements.html | 4 +- demos/sequence.html | 4 +- demos/state.html | 4 +- demos/timeline.html | 4 +- docs/config/usage.md | 4 +- package.json | 4 +- packages/mermaid/src/docs/config/usage.md | 4 +- pnpm-lock.yaml | 60 +++++++++++++++++++- 74 files changed, 298 insertions(+), 334 deletions(-) diff --git a/.vite/server.ts b/.vite/server.ts index 0f1fef91d3..6f8959348b 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -1,13 +1,7 @@ -import express, { NextFunction, Request, Response } from 'express'; +import express from 'express'; +import cors from 'cors'; import { createServer as createViteServer } from 'vite'; -const cors = (req: Request, res: Response, next: NextFunction) => { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); - res.header('Access-Control-Allow-Headers', 'Content-Type'); - - next(); -}; async function createServer() { const app = express(); diff --git a/cypress/platform/bundle-test.js b/cypress/platform/bundle-test.js index a991918c4c..edd3dfbc43 100644 --- a/cypress/platform/bundle-test.js +++ b/cypress/platform/bundle-test.js @@ -49,13 +49,9 @@ mermaid.initialize({ ], }, }); -mermaid.render( - 'the-id-of-the-svg', - code, - (svg) => { - console.log(svg); - const elem = document.querySelector('#graph-to-be'); - elem.innerHTML = svg; - } - // ,document.querySelector('#tmp') -); +void (async () => { + const { svg } = await mermaid.render('the-id-of-the-svg', code); + console.log(svg); + const elem = document.querySelector('#graph-to-be'); + elem.innerHTML = svg; +})(); diff --git a/cypress/platform/class.html b/cypress/platform/class.html index 1d72c34a59..052dd18b9a 100644 --- a/cypress/platform/class.html +++ b/cypress/platform/class.html @@ -113,8 +113,8 @@

    info below

    callback Shape "callbackFunction" "This is a tooltip for a callback"
    - - + diff --git a/cypress/platform/click_security_other.html b/cypress/platform/click_security_other.html index 5338cac067..7dc75ea884 100644 --- a/cypress/platform/click_security_other.html +++ b/cypress/platform/click_security_other.html @@ -59,8 +59,8 @@ Add another diagram to demo page : 48h
    - - - - - - - - - - - + diff --git a/cypress/platform/flow.html b/cypress/platform/flow.html index ed70f80d03..0060ac3cb5 100644 --- a/cypress/platform/flow.html +++ b/cypress/platform/flow.html @@ -29,8 +29,8 @@ click a_a "http://www.aftonbladet.se" "apa"
    - - - - - diff --git a/cypress/platform/git-graph.html b/cypress/platform/git-graph.html index da6025f4bb..4cb2656f1b 100644 --- a/cypress/platform/git-graph.html +++ b/cypress/platform/git-graph.html @@ -43,8 +43,8 @@

    info below

    cssClass "BankAccount" customCss
    - - - - - - - - + - -

    Example

    @@ -26,4 +16,12 @@ 

    Example

    Note left of Ernie: Cookies are good
    + diff --git a/cypress/platform/render-after-error.html b/cypress/platform/render-after-error.html index f5165e0ee5..72ccac34c3 100644 --- a/cypress/platform/render-after-error.html +++ b/cypress/platform/render-after-error.html @@ -9,19 +9,18 @@
    - - diff --git a/cypress/platform/rerender.html b/cypress/platform/rerender.html index ab1b8e009d..44ffd8fa8e 100644 --- a/cypress/platform/rerender.html +++ b/cypress/platform/rerender.html @@ -9,20 +9,20 @@
    - - diff --git a/cypress/platform/showcase_base.html b/cypress/platform/showcase_base.html index 227d79cf7f..32a2ae72a1 100644 --- a/cypress/platform/showcase_base.html +++ b/cypress/platform/showcase_base.html @@ -313,8 +313,8 @@

    Showcases of diagrams

    merge release
    - - - - - - - - - - - - - - diff --git a/cypress/platform/xss11.html b/cypress/platform/xss11.html index ca97aeaab7..302f39ee90 100644 --- a/cypress/platform/xss11.html +++ b/cypress/platform/xss11.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss12.html b/cypress/platform/xss12.html index eb1bce3277..b1e2c1d0ab 100644 --- a/cypress/platform/xss12.html +++ b/cypress/platform/xss12.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss13.html b/cypress/platform/xss13.html index f2d90cddba..9f505ea7b8 100644 --- a/cypress/platform/xss13.html +++ b/cypress/platform/xss13.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss14.html b/cypress/platform/xss14.html index f429b355a2..e68b87b788 100644 --- a/cypress/platform/xss14.html +++ b/cypress/platform/xss14.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss15.html b/cypress/platform/xss15.html index 70ebe9f86e..3fa6b7151a 100644 --- a/cypress/platform/xss15.html +++ b/cypress/platform/xss15.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss16.html b/cypress/platform/xss16.html index 9325a70aa7..6f8a734eb6 100644 --- a/cypress/platform/xss16.html +++ b/cypress/platform/xss16.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss17.html b/cypress/platform/xss17.html index c498f3f3e4..bd7e1c57eb 100644 --- a/cypress/platform/xss17.html +++ b/cypress/platform/xss17.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss18.html b/cypress/platform/xss18.html index 3e9cfd35cd..ccacfadbb1 100644 --- a/cypress/platform/xss18.html +++ b/cypress/platform/xss18.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss19.html b/cypress/platform/xss19.html index ca747b39eb..7966abb8c1 100644 --- a/cypress/platform/xss19.html +++ b/cypress/platform/xss19.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss2.html b/cypress/platform/xss2.html index 18b4be6fc8..da95e37978 100644 --- a/cypress/platform/xss2.html +++ b/cypress/platform/xss2.html @@ -48,8 +48,8 @@ Alice->>Bob: Hi Bob Bob->>Alice: Hi Alice - - - diff --git a/cypress/platform/xss21.html b/cypress/platform/xss21.html index b2f67cd93c..7cfa17c9ee 100644 --- a/cypress/platform/xss21.html +++ b/cypress/platform/xss21.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss22.html b/cypress/platform/xss22.html index d7e47cd023..50ff3b7327 100644 --- a/cypress/platform/xss22.html +++ b/cypress/platform/xss22.html @@ -8,8 +8,8 @@ graph TD A --> B["<a href='javascript#9;t#colon;alert(document.location)'>AAA</a>"] - - diff --git a/cypress/platform/xss3.html b/cypress/platform/xss3.html index 78fabc4aa4..f01aab37e1 100644 --- a/cypress/platform/xss3.html +++ b/cypress/platform/xss3.html @@ -36,8 +36,8 @@ graph LR A --> B - - - diff --git a/cypress/platform/xss5.html b/cypress/platform/xss5.html index f87e655055..f7abf7a45c 100644 --- a/cypress/platform/xss5.html +++ b/cypress/platform/xss5.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss6.html b/cypress/platform/xss6.html index bc0f785614..7d7ae18d1b 100644 --- a/cypress/platform/xss6.html +++ b/cypress/platform/xss6.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss7.html b/cypress/platform/xss7.html index d8b2a7620c..177b4342ca 100644 --- a/cypress/platform/xss7.html +++ b/cypress/platform/xss7.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss8.html b/cypress/platform/xss8.html index cf2969f393..5852c2693f 100644 --- a/cypress/platform/xss8.html +++ b/cypress/platform/xss8.html @@ -49,8 +49,8 @@
    - - diff --git a/cypress/platform/xss9.html b/cypress/platform/xss9.html index 916f1506de..cf2ad1359f 100644 --- a/cypress/platform/xss9.html +++ b/cypress/platform/xss9.html @@ -49,8 +49,8 @@
    - - diff --git a/demos/c4context.html b/demos/c4context.html index e085e611cb..cf358b5501 100644 --- a/demos/c4context.html +++ b/demos/c4context.html @@ -217,8 +217,8 @@

    C4 context diagram demos


    - - - - diff --git a/demos/classchart.html b/demos/classchart.html index e8e48e482d..b20dda2a33 100644 --- a/demos/classchart.html +++ b/demos/classchart.html @@ -154,8 +154,8 @@

    Class diagram demos


    - - - - - - - - - - - - - diff --git a/package.json b/package.json index ddbb613814..8e4c50118c 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,9 @@ "@commitlint/cli": "^17.2.0", "@commitlint/config-conventional": "^17.2.0", "@cspell/eslint-plugin": "^6.14.2", + "@types/cors": "^2.8.13", "@types/eslint": "^8.4.10", - "@types/express": "^4.17.14", + "@types/express": "^4.17.17", "@types/js-yaml": "^4.0.5", "@types/jsdom": "^21.0.0", "@types/lodash": "^4.14.188", @@ -73,6 +74,7 @@ "@vitest/spy": "^0.28.4", "@vitest/ui": "^0.28.4", "concurrently": "^7.5.0", + "cors": "^2.8.5", "coveralls": "^3.1.1", "cypress": "^12.0.0", "cypress-image-snapshot": "^4.0.1", diff --git a/packages/mermaid/src/docs/config/usage.md b/packages/mermaid/src/docs/config/usage.md index c805c623a1..dd989069f9 100644 --- a/packages/mermaid/src/docs/config/usage.md +++ b/packages/mermaid/src/docs/config/usage.md @@ -327,8 +327,8 @@ The future proof way of setting the configuration is by using the initialization on what kind of integration you use. ```html - - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf6d9c342e..c99933c350 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,12 +16,15 @@ importers: '@cspell/eslint-plugin': specifier: ^6.14.2 version: 6.14.2 + '@types/cors': + specifier: ^2.8.13 + version: 2.8.13 '@types/eslint': specifier: ^8.4.10 version: 8.4.10 '@types/express': - specifier: ^4.17.14 - version: 4.17.14 + specifier: ^4.17.17 + version: 4.17.17 '@types/js-yaml': specifier: ^4.0.5 version: 4.0.5 @@ -61,6 +64,9 @@ importers: concurrently: specifier: ^7.5.0 version: 7.5.0 + cors: + specifier: ^2.8.5 + version: 2.8.5 coveralls: specifier: ^3.1.1 version: 3.1.1 @@ -2650,6 +2656,12 @@ packages: '@types/node': 18.11.9 dev: true + /@types/cors/2.8.13: + resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} + dependencies: + '@types/node': 18.11.9 + dev: true + /@types/cytoscape/3.19.9: resolution: {integrity: sha512-oqCx0ZGiBO0UESbjgq052vjDAy2X53lZpMrWqiweMpvVwKw/2IiYDdzPFK6+f4tMfdv9YKEM9raO5bAZc3UYBg==} dev: true @@ -2875,6 +2887,14 @@ packages: '@types/range-parser': 1.2.4 dev: true + /@types/express-serve-static-core/4.17.33: + resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} + dependencies: + '@types/node': 18.11.9 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + /@types/express/4.17.14: resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} dependencies: @@ -2884,6 +2904,15 @@ packages: '@types/serve-static': 1.15.0 dev: true + /@types/express/4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.33 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.0 + dev: true + /@types/flexsearch/0.7.3: resolution: {integrity: sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==} dev: true @@ -4222,7 +4251,7 @@ packages: /axios/0.27.2_debug@4.3.4: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.15.2_debug@4.3.2 + follow-redirects: 1.15.2_debug@4.3.4 form-data: 4.0.0 transitivePeerDependencies: - debug @@ -4965,6 +4994,14 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true + /cors/2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + /cose-base/1.0.3: resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} dependencies: @@ -6791,6 +6828,18 @@ packages: debug: 4.3.2 dev: true + /follow-redirects/1.15.2_debug@4.3.4: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.4 + dev: true + /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -9466,6 +9515,11 @@ packages: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true From 6aa3ea43ae4975b6bb03015e4e72aa97d7f9b8fe Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 14:13:30 +0530 Subject: [PATCH 1035/1038] Remove Readme --- packages/mermaid/README.md | 346 ------------------------------- packages/mermaid/README.zh-CN.md | 334 ----------------------------- 2 files changed, 680 deletions(-) delete mode 100644 packages/mermaid/README.md delete mode 100644 packages/mermaid/README.zh-CN.md diff --git a/packages/mermaid/README.md b/packages/mermaid/README.md deleted file mode 100644 index d453d2ec06..0000000000 --- a/packages/mermaid/README.md +++ /dev/null @@ -1,346 +0,0 @@ -# mermaid - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) - -English | [简体中文](./README.zh-CN.md) - - - -:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category "The most exciting use of technology"!!!** - -**Thanks to all involved, people committing pull requests, people answering questions! 🙏** - -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! - -## About - - - -Mermaid is a JavaScript-based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development. - -> Doc-Rot is a Catch-22 that Mermaid helps to solve. - -Diagramming and documentation costs precious developer time and gets outdated quickly. -But not having diagrams or docs ruins productivity and hurts organizational learning.
    -Mermaid addresses this problem by enabling users to create easily modifiable diagrams. It can also be made part of production scripts (and other pieces of code).
    -
    - -Mermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).
    -[Tutorials](./docs/Tutorials.md) has video tutorials. -Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md). - -You can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md). - -For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md), [Usage](./docs/usage.md) and [Tutorials](./docs/Tutorials.md). - -🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md) - -In our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests. - - - - - - - -## Examples - -**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).** - - - -### Flowchart [docs - live editor] - -``` -flowchart LR - -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -```mermaid -flowchart LR - -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -### Sequence diagram [docs - live editor] - -``` -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -### Gantt chart [docs - live editor] - -``` -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -```mermaid -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -### Class diagram [docs - live editor] - -``` -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -```mermaid -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -### State diagram [docs - live editor] - -``` -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -```mermaid -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -### Pie chart [docs - live editor] - -``` -pie -"Dogs" : 386 -"Cats" : 85.9 -"Rats" : 15 -``` - -```mermaid -pie -"Dogs" : 386 -"Cats" : 85.9 -"Rats" : 15 -``` - -### Git graph [experimental - live editor] - -### User Journey diagram [docs - live editor] - -``` - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -```mermaid - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -### C4 diagram [docs] - -``` -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -```mermaid -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -## Release - -For those who have the permission to do so: - -Update version number in `package.json`. - -```sh -npm publish -``` - -The above command generates files into the `dist` folder and publishes them to npmjs.org. - -## Related projects - -- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) -- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) -- [HTTP Server](https://github.com/TomWright/mermaid-server) - -## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) - -Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out. - -Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md) - -## Security and safe diagrams - -For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes. - -As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security. - -_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._ - -## Reporting vulnerabilities - -To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. - -## Appreciation - -A quick note from Knut Sveidqvist: - -> _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_ >_Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._ >_Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._ -> -> _Thank you to the ever-growing list of [contributors](https://github.com/knsv/mermaid/graphs/contributors) that brought the project this far!_ - ---- - -_Mermaid was created by Knut Sveidqvist for easier documentation._ diff --git a/packages/mermaid/README.zh-CN.md b/packages/mermaid/README.zh-CN.md deleted file mode 100644 index 3612ba0a91..0000000000 --- a/packages/mermaid/README.zh-CN.md +++ /dev/null @@ -1,334 +0,0 @@ -# mermaid - -[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid) [![NPM](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![Twitter Follow](https://img.shields.io/twitter/follow/mermaidjs_?style=social)](https://twitter.com/mermaidjs_) - -[English](./README.md) | 简体中文 - - - -:trophy: **Mermaid 被提名并获得了 [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) 的 "The most exciting use of technology" 奖项!!!** - -**感谢所有参与进来提交 PR,解答疑问的人们! 🙏** - -Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out! - -## 关于 Mermaid - - - -Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。 - -> Doc-Rot 是 Mermaid 致力于解决的一个难题。 - -绘图和编写文档花费了开发者宝贵的开发时间,而且随着业务的变更,它很快就会过期。 但是如果缺少了图表或文档,对于生产力和团队新人的业务学习都会产生巨大的阻碍。
    -Mermaid 通过允许用户创建便于修改的图表来解决这一难题,它也可以作为生产脚本(或其他代码)的一部分。
    -
    -Mermaid 甚至能让非程序员也能通过 [Mermaid Live Editor](https://mermaid.live/) 轻松创建详细的图表。
    -你可以访问 [教程](./docs/Tutorials.md) 来查看 Live Editor 的视频教程,也可以查看 [Mermaid 的集成和使用](./docs/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。 - -如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/n00b-overview.md), [用法](./docs/usage.md) 和 [教程](./docs/Tutorials.md). - -🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md) - - - -## 示例 - -**下面是一些可以使用 Mermaid 创建的图表示例。点击 [语法](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference) 查看详情。** - -
    - - -### 流程图 [文档 - live editor] - -``` -flowchart LR -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -```mermaid -flowchart LR -A[Hard] -->|Text| B(Round) -B --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -``` - -### 时序图 [文档 - live editor] - -``` -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -```mermaid -sequenceDiagram -Alice->>John: Hello John, how are you? -loop Healthcheck - John->>John: Fight against hypochondria -end -Note right of John: Rational thoughts! -John-->>Alice: Great! -John->>Bob: How about you? -Bob-->>John: Jolly good! -``` - -### 甘特图 [文档 - live editor] - -``` -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -```mermaid -gantt - section Section - Completed :done, des1, 2014-01-06,2014-01-08 - Active :active, des2, 2014-01-07, 3d - Parallel 1 : des3, after des1, 1d - Parallel 2 : des4, after des1, 1d - Parallel 3 : des5, after des3, 1d - Parallel 4 : des6, after des4, 1d -``` - -### 类图 [文档 - live editor] - -``` -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -```mermaid -classDiagram -Class01 <|-- AveryLongClass : Cool -<> Class01 -Class09 --> C2 : Where am I? -Class09 --* C3 -Class09 --|> Class07 -Class07 : equals() -Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla -class Class10 { - <> - int id - size() -} -``` - -### 状态图 [[docs - live editor] - -``` -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -```mermaid -stateDiagram-v2 -[*] --> Still -Still --> [*] -Still --> Moving -Moving --> Still -Moving --> Crash -Crash --> [*] -``` - -### 饼图 [文档 - live editor] - -``` -pie -"Dogs" : 386 -"Cats" : 85 -"Rats" : 15 -``` - -```mermaid -pie -"Dogs" : 386 -"Cats" : 85 -"Rats" : 15 -``` - -### Git 图 [实验特性 - live editor] - -### 用户体验旅程图 [文档 - live editor] - -``` - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -```mermaid - journey - title My working day - section Go to work - Make tea: 5: Me - Go upstairs: 3: Me - Do work: 1: Me, Cat - section Go home - Go downstairs: 5: Me - Sit down: 3: Me -``` - -### C4 图 [文档] - -``` -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -```mermaid -C4Context -title System Context diagram for Internet Banking System - -Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") -Person(customerB, "Banking Customer B") -Person_Ext(customerC, "Banking Customer C") -System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Person(customerD, "Banking Customer D", "A customer of the bank,
    with personal bank accounts.") - -Enterprise_Boundary(b1, "BankBoundary") { - - SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - - System_Boundary(b2, "BankBoundary2") { - System(SystemA, "Banking System A") - System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts.") - } - - System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") - SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") - - Boundary(b3, "BankBoundary3", "boundary") { - SystemQueue(SystemF, "Banking System F Queue", "A system of the bank, with personal bank accounts.") - SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") - } -} - -BiRel(customerA, SystemAA, "Uses") -BiRel(SystemAA, SystemE, "Uses") -Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") -Rel(SystemC, customerA, "Sends e-mails to") -``` - -## 发布 - -对于有权限的同学来说,你可以通过以下步骤来完成发布操作: - -更新 `package.json` 中的版本号,然后执行如下命令: - -```sh -npm publish -``` - -以上的命令会将文件打包到 `dist` 目录并发布至 npmjs.org. - -## 相关项目 - -- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli) -- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor) -- [HTTP Server](https://github.com/TomWright/mermaid-server) - -## 贡献者 [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) - -Mermaid 是一个不断发展中的社区,并且还在接收新的贡献者。有很多不同的方式可以参与进来,而且我们还在寻找额外的帮助。如果你想知道如何开始贡献,请查看 [这个 issue](https://github.com/mermaid-js/mermaid/issues/866)。 - -关于如何贡献的详细信息可以在 [贡献指南](CONTRIBUTING.md) 中找到。 - -## 安全 - -对于公开网站来说,从互联网上的用户处检索文本、存储供后续在浏览器中展示的内容可能是不安全的,理由是用户的内容可能嵌入一些数据加载完成之后就会运行的恶意脚本,这些对于 Mermaid 来说毫无疑问是一个风险,尤其是 mermaid 图表还包含了许多在 html 中使用的字符,这意味着我们难以使用常规的手段来过滤不安全代码,因为这些常规手段会造成图表损坏。我们仍然在努力对获取到的代码进行安全过滤并不断完善我们的程序,但很难保证没有漏洞。 - -作为拥有外部用户的网站的额外安全级别,我们很高兴推出一个新的安全级别,其中的图表在沙盒 iframe 中渲染,防止代码中的 javascript 被执行,这是在安全性方面迈出的一大步。 - -_很不幸的是,鱼与熊掌不可兼得,在这个场景下它意味着在可能的恶意代码被阻止时,也会损失部分交互能力_。 - -## 报告漏洞 - -如果想要报告漏洞,请发送邮件到 security@mermaid.live, 并附上问题的描述、复现问题的步骤、受影响的版本,以及解决问题的方案(如果有的话)。 - -## 鸣谢 - -来自 Knut Sveidqvist: - -> _特别感谢 [d3](https://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库! _ >_同样感谢 [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。_ >_感谢 [Tyler Long](https://github.com/tylerlong) 从 2017 年四月开始成为了项目的合作者。_ -> -> _感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!_ - ---- - -_Mermaid 是由 Knut Sveidqvist 创建,它为了更简单的文档编写而生。_ From 1684faf6325c55a0999e309b130a729363598340 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 14:15:50 +0530 Subject: [PATCH 1036/1038] Fix lint --- .vite/server.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/.vite/server.ts b/.vite/server.ts index 6f8959348b..35bc56cd17 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -2,7 +2,6 @@ import express from 'express'; import cors from 'cors'; import { createServer as createViteServer } from 'vite'; - async function createServer() { const app = express(); From 6e3d96e16dcf675c3049c8180094858d6af1382b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 14:18:09 +0530 Subject: [PATCH 1037/1038] fix Server --- .vite/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vite/server.ts b/.vite/server.ts index 35bc56cd17..650cd103d2 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -12,7 +12,7 @@ async function createServer() { appType: 'custom', // don't include Vite's default HTML handling middlewares }); - app.use(cors); + app.use(cors()); app.use(express.static('./packages/mermaid/dist')); // app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(express.static('./packages/mermaid-example-diagram/dist')); From 8c64a907211be0f9823658b0ee8254e696c041d9 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 19 Feb 2023 14:21:15 +0530 Subject: [PATCH 1038/1038] Fix docs --- .vite/server.ts | 1 - .../interfaces/mermaidAPI.RenderResult.md | 4 ++-- docs/config/setup/modules/mermaidAPI.md | 20 +++++++++---------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.vite/server.ts b/.vite/server.ts index 650cd103d2..7a65cba005 100644 --- a/.vite/server.ts +++ b/.vite/server.ts @@ -14,7 +14,6 @@ async function createServer() { app.use(cors()); app.use(express.static('./packages/mermaid/dist')); - // app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(express.static('./packages/mermaid-example-diagram/dist')); app.use(vite.middlewares); app.use(express.static('demos')); diff --git a/docs/config/setup/interfaces/mermaidAPI.RenderResult.md b/docs/config/setup/interfaces/mermaidAPI.RenderResult.md index b95b0acff8..89a8d70b2a 100644 --- a/docs/config/setup/interfaces/mermaidAPI.RenderResult.md +++ b/docs/config/setup/interfaces/mermaidAPI.RenderResult.md @@ -65,7 +65,7 @@ element will be removed when rendering is completed. #### Defined in -[mermaidAPI.ts:382](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L382) +[mermaidAPI.ts:385](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L385) --- @@ -75,4 +75,4 @@ element will be removed when rendering is completed. #### Defined in -[mermaidAPI.ts:381](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L381) +[mermaidAPI.ts:384](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L384) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index f75dd85c71..7d45a5a131 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -94,7 +94,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:666](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L666) +[mermaidAPI.ts:669](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L669) ## Functions @@ -125,7 +125,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:289](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L289) +[mermaidAPI.ts:292](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L292) --- @@ -151,7 +151,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:240](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L240) +[mermaidAPI.ts:243](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L243) --- @@ -177,7 +177,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:169](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L169) +[mermaidAPI.ts:172](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L172) --- @@ -200,7 +200,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:217](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L217) +[mermaidAPI.ts:220](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L220) --- @@ -227,7 +227,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L153) +[mermaidAPI.ts:156](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L156) --- @@ -247,7 +247,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:133](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L133) +[mermaidAPI.ts:136](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L136) --- @@ -267,7 +267,7 @@ with an enclosing block that has each of the cssClasses followed by !important; #### Defined in -[mermaidAPI.ts:104](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L104) +[mermaidAPI.ts:107](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L107) --- @@ -293,7 +293,7 @@ Put the svgCode into an iFrame. Return the iFrame code #### Defined in -[mermaidAPI.ts:268](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L268) +[mermaidAPI.ts:271](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L271) --- @@ -318,4 +318,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:339](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L339) +[mermaidAPI.ts:342](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L342)